diff --git a/settings/ajax/changegroupname.php b/settings/ajax/changegroupname.php
new file mode 100644
index 0000000000..cbf1e3e5e8
--- /dev/null
+++ b/settings/ajax/changegroupname.php
@@ -0,0 +1,24 @@
+ array(
+ "message" => $l->t('Group name has been changed.'),
+ "groupname" => $groupname,
+ )
+ )
+ );
+} else {
+ OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change group name"))));
+}
\ No newline at end of file
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 696fe01a91..b96c0806b9 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -52,11 +52,16 @@ table.nostyle td { padding: 0.2em 0; }
/* USERS */
.usercount { float: left; margin: 5px; }
+span.utils .delete, span.utils .rename {
+ float: left; position: relative; display: none;
+ margin: 3px; top: 4px;
+}
+#app-navigation ul li:hover > span.utils .delete,
+#app-navigation ul li:hover > span.utils .rename { display: block; }
span.utils .delete {
float: left; position: relative; display: none;
margin: 3px; top: 4px;
}
-#app-navigation ul li:hover > span.utils .delete { display: block; }
#usersearchform { position: absolute; top: 4px; right: 10px; }
#usersearchform label { font-weight: 700; }
form { display:inline; }
diff --git a/settings/js/users.js b/settings/js/users.js
index 5d4fbed2a2..f31367472a 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -632,6 +632,39 @@ $(document).ready(function () {
}
});
});
+
+ // Implements Groupname editing.
+ $('#app-navigation').on('click', 'span.utils>img.rename', function (event) {
+ event.stopPropagation();
+ var img = $(this);
+ var gid = img.parent().parent().attr('data-gid');
+ var groupname = escapeHTML(img.parent().parent().attr('data-gid'));
+ var input = $('');
+ img.css('display', 'none');
+ img.parent().parent().children('a').replaceWith(input);
+ input.focus();
+ input.keypress(function (event) {
+ if (event.keyCode === 13) {
+ if ($(this).val().length > 0) {
+ $.post(
+ OC.filePath('settings', 'ajax', 'changegroupname.php'),
+ { groupname: gid,
+ groupname: $(this).val()
+ }
+ );
+ input.blur();
+ } else {
+ input.blur();
+ }
+ }
+ });
+ input.blur(function () {
+ var input = $(this), groupname = input.val();
+ input.closest('li').attr('data-gid', groupname);
+ input.replaceWith('' + escapeHTML(groupname) + '');
+ img.css('display', '');
+ });
+ });
// Handle undo notifications
OC.Notification.hide();
diff --git a/settings/routes.php b/settings/routes.php
index 0e0f293b9b..1352fac838 100644
--- a/settings/routes.php
+++ b/settings/routes.php
@@ -44,6 +44,8 @@ $this->create('settings_users_changepassword', '/settings/users/changepassword')
->action('OC\Settings\ChangePassword\Controller', 'changeUserPassword');
$this->create('settings_ajax_changedisplayname', '/settings/ajax/changedisplayname.php')
->actionInclude('settings/ajax/changedisplayname.php');
+$this->create('settings_ajax_changegorupname', '/settings/ajax/changegroupname.php')
+ ->actionInclude('settings/ajax/changegroupname.php');
// personal
$this->create('settings_personal_changepassword', '/settings/personal/changepassword')
->post()
diff --git a/settings/templates/users.php b/settings/templates/users.php
index 8c624ff655..129f01282a 100644
--- a/settings/templates/users.php
+++ b/settings/templates/users.php
@@ -45,6 +45,8 @@ $_['subadmingroups'] = array_flip($items);
+ " title="t("change group name"))?>" />
@@ -137,7 +139,7 @@ $_['subadmingroups'] = array_flip($items);