From 25739351559aeb212c5fc8aa1da1936c7dc60582 Mon Sep 17 00:00:00 2001
From: Sam <sam.saffron@gmail.com>
Date: Wed, 17 Jul 2013 15:10:49 +1000
Subject: [PATCH] improve security UI

---
 .../controllers/edit_category_controller.js        |  4 ++++
 .../templates/modal/edit_category.js.handlebars    | 14 ++++++++++----
 app/assets/stylesheets/application/modal.css.scss  | 11 ++++++-----
 config/locales/client.en.yml                       | 12 +++++-------
 4 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/app/assets/javascripts/discourse/controllers/edit_category_controller.js b/app/assets/javascripts/discourse/controllers/edit_category_controller.js
index 4c5d7080e..e19cb9757 100644
--- a/app/assets/javascripts/discourse/controllers/edit_category_controller.js
+++ b/app/assets/javascripts/discourse/controllers/edit_category_controller.js
@@ -105,6 +105,10 @@ Discourse.EditCategoryController = Discourse.ObjectController.extend(Discourse.M
     return false;
   },
 
+  editPermissions: function(){
+    this.set('editingPermissions', true);
+  },
+
   addPermission: function(group, permission_id){
     this.get('model').addPermission({group_name: group + "", permission: Discourse.PermissionType.create({id: permission_id})});
   },
diff --git a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
index b9b5e9720..900cb157a 100644
--- a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars
@@ -66,13 +66,19 @@
                 <span class="name"><span class="badge-group">{{group_name}}</span></span>
                 {{{i18n "category.can"}}}
                 <span class="permission">{{permission.description}}</span>
-                <a {{action removePermission this}}><i class="icon icon-remove-sign"></i></a>
+                {{#if controller.editingPermissions}}
+                  <a {{action removePermission this}}><i class="icon icon-remove-sign"></i></a>
+                {{/if}}
               </li>
             {{/each}}
           </ul>
-          {{view Ember.Select contentBinding="availableGroups" valueBinding="selectedGroup"}}
-          {{view Ember.Select class="permission-selector" optionValuePath="content.id" optionLabelPath="content.description" contentBinding="availablePermissions" valueBinding="selectedPermission"}}
-          <button {{action addPermission selectedGroup selectedPermission}} class="btn btn-small">{{i18n category.add_group}}</button>
+          {{#if controller.editingPermissions}}
+            {{view Ember.Select contentBinding="availableGroups" valueBinding="selectedGroup"}}
+            {{view Ember.Select class="permission-selector" optionValuePath="content.id" optionLabelPath="content.description" contentBinding="availablePermissions" valueBinding="selectedPermission"}}
+            <button {{action addPermission selectedGroup selectedPermission}} class="btn btn-small">{{i18n category.add_permission}}</button>
+          {{else}}
+            <button {{action editPermissions}} class="btn btn-small">{{i18n category.edit_permissions}}</button>
+          {{/if}}
         </section>
       </div>
       <div {{bindAttr class=":modal-tab :options-tab settingsSelected::invisible"}}>
diff --git a/app/assets/stylesheets/application/modal.css.scss b/app/assets/stylesheets/application/modal.css.scss
index df574efb6..92e059b6f 100644
--- a/app/assets/stylesheets/application/modal.css.scss
+++ b/app/assets/stylesheets/application/modal.css.scss
@@ -263,16 +263,17 @@
   }
 }
 
-.permission-selector{
-  width: 300px;
-}
 .permission-list{
   list-style:none;
-  margin: 0 0 15px;
+  margin: 0 0 30px;
   padding: 0;
   .name {
+    margin-right: 20px;
     display: inline-block;
-    min-width: 80px;
+    min-width: 100px;
+  }
+  .permission {
+    margin-left: 20px;
   }
   .icon-remove-sign {
     margin-left: 5px;
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 1d5a9735f..e83302dc6 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -905,12 +905,10 @@ en:
       change_in_category_topic: "Edit Description"
       hotness: "Hotness"
       already_used: 'This color has been used by another category'
-      is_secure: "Secure category?"
-      add_group: "Add Group"
       security: "Security"
-      allowed_groups: "Allowed Groups:"
       auto_close_label: "Auto-close topics after:"
-
+      edit_permissions: "Edit Permissions"
+      add_permission: "Add Permission"
 
     flagging:
       title: 'Why are you flagging this post?'
@@ -999,9 +997,9 @@ en:
     browser_update: 'Unfortunately, <a href="http://www.discourse.org/faq/#browser">your browser is too old to work on this Discourse forum</a>. Please <a href="http://browsehappy.com">upgrade your browser</a>.'
 
     permission_types:
-      full: "CREATE / REPLY / SEE"
-      create_post: "REPLY / SEE"
-      readonly: "SEE"
+      full: "Create / Reply / See"
+      create_post: "Reply / See"
+      readonly: "See"
 
   # This section is exported to the javascript for i18n in the admin section
   admin_js: