From 278fb1345abbd1cf9ec7aa5cfede06f8c6cc2704 Mon Sep 17 00:00:00 2001
From: Marcelo Schmidt <marcelo.schmidt@konecty.com>
Date: Thu, 8 Oct 2015 11:28:01 -0300
Subject: [PATCH] Create channel settings tab bar icon

---
 .meteor/packages                              |  1 +
 .meteor/versions                              |  1 +
 .../client/stylesheets/channel-settings.less  | 17 ++++++++
 .../client/tabBar.coffee                      | 11 +++++
 .../client/views/channelSettings.coffee       |  7 ++++
 .../client/views/channelSettings.html         | 25 ++++++++++++
 .../i18n/en.i18n.json                         |  6 +++
 .../rocketchat-channel-settings/package.js    | 40 +++++++++++++++++++
 8 files changed, 108 insertions(+)
 create mode 100644 packages/rocketchat-channel-settings/client/stylesheets/channel-settings.less
 create mode 100644 packages/rocketchat-channel-settings/client/tabBar.coffee
 create mode 100644 packages/rocketchat-channel-settings/client/views/channelSettings.coffee
 create mode 100644 packages/rocketchat-channel-settings/client/views/channelSettings.html
 create mode 100644 packages/rocketchat-channel-settings/i18n/en.i18n.json
 create mode 100644 packages/rocketchat-channel-settings/package.js

diff --git a/.meteor/packages b/.meteor/packages
index 7e27d2e2ab7..19e32dbe3cf 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -44,6 +44,7 @@ rocketchat:slashcommands-leave
 rocketchat:spotify
 rocketchat:statistics
 rocketchat:webrtc
+rocketchat:channel-settings
 #rocketchat:chatops
 #rocketchat:livechat
 #rocketchat:hubot
diff --git a/.meteor/versions b/.meteor/versions
index 45238b76c83..4fcb93e66b1 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -125,6 +125,7 @@ reload@1.1.4
 retry@1.0.4
 rocketchat:authorization@0.0.1
 rocketchat:autolinker@0.0.1
+rocketchat:channel-settings@0.0.1
 rocketchat:chatops@0.0.1
 rocketchat:colors@0.0.1
 rocketchat:custom-oauth@1.0.0
diff --git a/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.less b/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.less
new file mode 100644
index 00000000000..0227c11170d
--- /dev/null
+++ b/packages/rocketchat-channel-settings/client/stylesheets/channel-settings.less
@@ -0,0 +1,17 @@
+.flex-tab {
+	.channel-settings {
+		margin-top: 60px;
+		padding: 20px;
+
+		form {
+			label {
+
+			}
+		}
+
+		.submit {
+			margin-top: 30px;
+			text-align: center;
+		}
+	}
+}
diff --git a/packages/rocketchat-channel-settings/client/tabBar.coffee b/packages/rocketchat-channel-settings/client/tabBar.coffee
new file mode 100644
index 00000000000..46bc83eacd8
--- /dev/null
+++ b/packages/rocketchat-channel-settings/client/tabBar.coffee
@@ -0,0 +1,11 @@
+Meteor.startup ->
+
+	RocketChat.callbacks.add 'enter-room', ->
+			RocketChat.TabBar.addButton
+				id: 'channel-settings'
+				i18nTitle: 'Channel_Settings'
+				icon: 'octicon octicon-gear'
+				template: 'channelSettings'
+				order: 0
+
+	, RocketChat.callbacks.priority.MEDIUM, 'enter-room-tabbar-channel-settings'
diff --git a/packages/rocketchat-channel-settings/client/views/channelSettings.coffee b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee
new file mode 100644
index 00000000000..5225bf4010b
--- /dev/null
+++ b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee
@@ -0,0 +1,7 @@
+Template.channelSettings.helpers
+	notDirect: ->
+		return ChatRoom.findOne(@rid).t isnt 'd'
+	roomType: ->
+		return ChatRoom.findOne(@rid).t
+
+Template.channelSettings.onCreated ->
diff --git a/packages/rocketchat-channel-settings/client/views/channelSettings.html b/packages/rocketchat-channel-settings/client/views/channelSettings.html
new file mode 100644
index 00000000000..c72ecae4ad6
--- /dev/null
+++ b/packages/rocketchat-channel-settings/client/views/channelSettings.html
@@ -0,0 +1,25 @@
+<template name="channelSettings">
+	<div class="control">
+		<div class="header">
+			<h2>{{_ "Room_Settings"}}</h2>
+		</div>
+	</div>
+	<div class="channel-settings scrollable">
+		<form>
+			<fieldset>
+				{{#if notDirect}}
+					<div class="input-line double-col">
+						<label>{{_ "Room_Type"}}</label>
+						<div>
+							<label><input type="radio" name="roomType" value="c" checked="{{$eq roomType 'c'}}" /> {{_ "Channel"}}</label>
+							<label><input type="radio" name="roomType" value="p" checked="{{$eq roomType 'p'}}" /> {{_ "Private_Group"}}</label>
+						</div>
+					</div>
+				{{/if}}
+			</fieldset>
+			<div class="submit">
+				<button class="button save"><i class="icon-send"></i><span>{{_ "Save_changes"}}</span></button>
+			</div>
+		</form>
+	</div>
+</template>
diff --git a/packages/rocketchat-channel-settings/i18n/en.i18n.json b/packages/rocketchat-channel-settings/i18n/en.i18n.json
new file mode 100644
index 00000000000..3a052c3d63b
--- /dev/null
+++ b/packages/rocketchat-channel-settings/i18n/en.i18n.json
@@ -0,0 +1,6 @@
+{
+	"Channel": "Channel",
+	"Private_Group": "Private Group",
+	"Room_Type": "Room Type",
+	"Room_Settings": "Room Settings"
+}
diff --git a/packages/rocketchat-channel-settings/package.js b/packages/rocketchat-channel-settings/package.js
new file mode 100644
index 00000000000..9cc6d0d9b7c
--- /dev/null
+++ b/packages/rocketchat-channel-settings/package.js
@@ -0,0 +1,40 @@
+Package.describe({
+	name: 'rocketchat:channel-settings',
+	version: '0.0.1',
+	summary: 'Channel Settings Panel',
+	git: ''
+});
+
+Package.onUse(function(api) {
+	api.versionsFrom('1.0');
+
+	api.use([
+		'coffeescript',
+		'templating',
+		'less@2.5.0',
+		'rocketchat:lib@0.0.1'
+	]);
+
+	api.addFiles([
+		'client/tabBar.coffee',
+		'client/views/channelSettings.html',
+		'client/views/channelSettings.coffee',
+		'client/stylesheets/channel-settings.less',
+	], 'client');
+
+	// TAPi18n
+	var _ = Npm.require('underscore');
+	var fs = Npm.require('fs');
+	tapi18nFiles = _.compact(_.map(fs.readdirSync('packages/rocketchat-channel-settings/i18n'), function(filename) {
+		if (fs.statSync('packages/rocketchat-channel-settings/i18n/' + filename).size > 16) {
+			return 'i18n/' + filename;
+		}
+	}));
+	api.use('tap:i18n@1.6.1');
+	api.imply('tap:i18n');
+	api.addFiles(tapi18nFiles);
+});
+
+Package.onTest(function(api) {
+
+});
-- 
GitLab