[Pkg-owncloud-commits] [owncloud] 63/70: fixing JS syntax errors

David Prévot taffit at moszumanska.debian.org
Mon Jul 14 17:38:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 66130ad3364214bb45b08013b68164cd2a661b77
Author: Thomas Müller <thomas.mueller at tmit.eu>
Date:   Wed Jul 9 14:30:28 2014 +0200

    fixing JS syntax errors
    
    remove the group in case the last user has removed from that group
    
    cleanup
    
    use .filterAttr()
---
 settings/ajax/userlist.php  |   3 ++
 settings/js/users/groups.js |   6 +--
 settings/js/users/users.js  | 101 ++++++++++++++++++++++++--------------------
 3 files changed, 62 insertions(+), 48 deletions(-)

diff --git a/settings/ajax/userlist.php b/settings/ajax/userlist.php
index 32237d6..2bf4068 100644
--- a/settings/ajax/userlist.php
+++ b/settings/ajax/userlist.php
@@ -34,6 +34,9 @@ if (isset($_GET['limit'])) {
 }
 if (isset($_GET['gid']) && !empty($_GET['gid'])) {
 	$gid = $_GET['gid'];
+	if ($gid === '_everyone') {
+		$gid = false;
+	}
 } else {
 	$gid = false;
 }
diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index e3acce5..22f5c9d 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -40,8 +40,8 @@ GroupList = {
 	},
 
 	modEveryoneCount: function(diff) {
-		$li = GroupList.getGroupLI(GroupList.everyoneGID);
-		count = GroupList.getUserCount($li) + diff;
+		var $li = GroupList.getGroupLI(GroupList.everyoneGID);
+		var count = GroupList.getUserCount($li) + diff;
 		GroupList.setUserCount($li, count);
 	},
 
@@ -140,7 +140,7 @@ GroupList = {
 					}
 					_.defer(function () {
 						$(lis).each(function () {
-							this.removeClass('transparent')
+							this.removeClass('transparent');
 						});
 					});
 				}
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 60e1e1d..7d567e2 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -20,8 +20,8 @@ var UserList = {
 
 	add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort) {
 		var $tr = $userListBody.find('tr:first-child').clone();
-		var subadminsEl;
-		var subadminSelect;
+		var subAdminsEl;
+		var subAdminSelect;
 		var groupsSelect;
 		if ($tr.find('div.avatardiv').length){
 			$tr.find('.avatardiv').imageplaceholder(username, displayname);
@@ -38,7 +38,7 @@ var UserList = {
 			.data('username', username)
 			.data('user-groups', groups);
 		if ($tr.find('td.subadmins').length > 0) {
-			subadminSelect = $('<select multiple="multiple" class="subadminsselect multiselect button" data-placehoder="subadmins" title="' + t('settings', 'Group Admin') + '">')
+			subAdminSelect = $('<select multiple="multiple" class="subadminsselect multiselect button" data-placehoder="subadmins" title="' + t('settings', 'Group Admin') + '">')
 				.data('username', username)
 				.data('user-groups', groups)
 				.data('subadmin', subadmin);
@@ -46,14 +46,14 @@ var UserList = {
 		}
 		$.each(this.availableGroups, function (i, group) {
 			groupsSelect.append($('<option value="' + escapeHTML(group) + '">' + escapeHTML(group) + '</option>'));
-			if (typeof subadminSelect !== 'undefined' && group !== 'admin') {
-				subadminSelect.append($('<option value="' + escapeHTML(group) + '">' + escapeHTML(group) + '</option>'));
+			if (typeof subAdminSelect !== 'undefined' && group !== 'admin') {
+				subAdminSelect.append($('<option value="' + escapeHTML(group) + '">' + escapeHTML(group) + '</option>'));
 			}
 		});
 		$tr.find('td.groups').empty().append(groupsSelect);
-		subadminsEl = $tr.find('td.subadmins');
-		if (subadminsEl.length > 0) {
-			subadminsEl.append(subadminSelect);
+		subAdminsEl = $tr.find('td.subadmins');
+		if (subAdminsEl.length > 0) {
+			subAdminsEl.append(subAdminSelect);
 		}
 		if ($tr.find('td.remove img').length === 0 && OC.currentUser !== username) {
 			var deleteImage = $('<img class="svg action">').attr({
@@ -73,23 +73,22 @@ var UserList = {
 				.find('option').attr('selected', null)
 				.first().attr('selected', 'selected');
 		} else {
-			if ($quotaSelect.find('option[value="' + quota + '"]').length > 0) {
-				$quotaSelect.find('option[value="' + quota + '"]').attr('selected', 'selected');
+			if ($quotaSelect.find('option').filterAttr('value', quota).length > 0) {
+				$quotaSelect.find('option').filterAttr('value', quota).attr('selected', 'selected');
 			} else {
 				$quotaSelect.append('<option value="' + escapeHTML(quota) + '" selected="selected">' + escapeHTML(quota) + '</option>');
 			}
 		}
 		$tr.find('td.storageLocation').text(storageLocation);
 
-		if(lastLogin === 0) {
-			var lastLoginRel = t('settings', 'never');
-			var lastLoginAbs = lastLoginRel;
-		} else {
+		var lastLoginRel = t('settings', 'never');
+		var lastLoginAbs = lastLoginRel;
+		if(lastLogin !== 0) {
 			lastLogin = new Date(lastLogin * 1000);
-			var lastLoginRel = relative_modified_date(lastLogin.getTime() / 1000);
-			var lastLoginAbs = formatDate(lastLogin.getTime());
+			lastLoginRel = relative_modified_date(lastLogin.getTime() / 1000);
+			lastLoginAbs = formatDate(lastLogin.getTime());
 		}
-		$tdLastLogin = $tr.find('td.lastLogin');
+		var $tdLastLogin = $tr.find('td.lastLogin');
 		$tdLastLogin.text(lastLoginRel);
 		//tooltip makes it complicated … to not insert new HTML, we adjust the
 		//original title. We use a temporary div to get back the html that we
@@ -124,8 +123,8 @@ var UserList = {
 		window.setTimeout(function(){
 			$quotaSelect.singleSelect();
 			UserList.applyGroupSelect(groupsSelect);
-			if (subadminSelect) {
-				UserList.applySubadminSelect(subadminSelect);
+			if (subAdminSelect) {
+				UserList.applySubadminSelect(subAdminSelect);
 			}
 		}, 0);
 		return $tr;
@@ -238,18 +237,17 @@ var UserList = {
 		UserList.getRow(uid).show();
 	},
 	markRemove: function(uid) {
-		$tr = UserList.getRow(uid);
-		groups = $tr.find('.groups .groupsselect').val();
-		for(i in groups) {
+		var $tr = UserList.getRow(uid);
+		var groups = $tr.find('.groups .groupsselect').val();
+		for(var i in groups) {
 			var gid = groups[i];
-			$li = GroupList.getGroupLI(gid);
-			userCount = GroupList.getUserCount($li);
-			if(userCount == 1) {
-				newUserCount = '';
+			var $li = GroupList.getGroupLI(gid);
+			var userCount = GroupList.getUserCount($li);
+			if(userCount === 1) {
+				GroupList.setUserCount($li, '');
 			} else {
-				newUserCount = userCount - 1;
+				GroupList.setUserCount($li, userCount - 1);
 			}
-			GroupList.setUserCount($li, newUserCount);
 		}
 		GroupList.decEveryoneCount();
 		UserList.hide(uid);
@@ -258,18 +256,17 @@ var UserList = {
 		UserList.getRow(uid).remove();
 	},
 	undoRemove: function(uid) {
-		$tr = UserList.getRow(uid);
-		groups = $tr.find('.groups .groupsselect').val();
-		for(i in groups) {
+		var $tr = UserList.getRow(uid);
+		var groups = $tr.find('.groups .groupsselect').val();
+		for(var i in groups) {
 			var gid = groups[i];
-			$li = GroupList.getGroupLI(gid);
-			userCount = GroupList.getUserCount($li);
-			if(userCount == 1) {
-				newUserCount = '';
+			var $li = GroupList.getGroupLI(gid);
+			var userCount = GroupList.getUserCount($li);
+			if(userCount === 1) {
+				GroupList.setUserCount($li, '');
 			} else {
-				newUserCount = userCount + 1;
+				GroupList.setUserCount($li, userCount + 1);
 			}
-			GroupList.setUserCount($li, newUserCount);
 		}
 		GroupList.incEveryoneCount();
 		UserList.getRow(uid).show();
@@ -359,7 +356,7 @@ var UserList = {
 					}, 0);
 				}
 				UserList.updating = false;
-		});
+			});
 	},
 
 	applyGroupSelect: function (element) {
@@ -388,23 +385,37 @@ var UserList = {
 					function (response) {
 						if (response.status === 'success') {
 							GroupList.update();
-							if (UserList.availableGroups.indexOf(response.data.groupname) === -1 &&
+							var groupName = response.data.groupname;
+							if (UserList.availableGroups.indexOf(groupName) === -1 &&
 								response.data.action === 'add'
 							) {
-								UserList.availableGroups.push(response.data.groupname);
+								UserList.availableGroups.push(groupName);
+							}
+
+							// in case this was the last user in that group the group has to be removed
+							var groupElement = GroupList.getGroupLI(groupName);
+							var userCount = GroupList.getUserCount(groupElement);
+							if (response.data.action === 'remove' && userCount === 1) {
+								_.without(UserList.availableGroups, groupName);
+								GroupList.remove(groupName);
+								$('.groupsselect option').filterAttr('value', groupName).remove();
+								$('.subadminsselect option').filterAttr('value', groupName).remove();
 							}
+
+
 						}
 						if (response.data.message) {
 							OC.Notification.show(response.data.message);
 						}
 					}
 				);
-			}
-		};
+			};
+		}
 		var addGroup = function (select, group) {
 			$('select[multiple]').each(function (index, element) {
 				$element = $(element);
-				if ($element.find('option[value="' + group + '"]').length === 0 && select.data('msid') !== $element.data('msid')) {
+				if ($element.find('option').filterAttr('value', group).length === 0 &&
+					select.data('msid') !== $element.data('msid')) {
 					$element.append('<option value="' + escapeHTML(group) + '">' + escapeHTML(group) + '</option>');
 				}
 			});
@@ -453,7 +464,7 @@ var UserList = {
 
 		var addSubAdmin = function (group) {
 			$('select[multiple]').each(function (index, element) {
-				if ($(element).find('option[value="' + group + '"]').length === 0) {
+				if ($(element).find('option').filterAttr('value', group).length === 0) {
 					$(element).append('<option value="' + escapeHTML(group) + '">' + escapeHTML(group) + '</option>');
 				}
 			});
@@ -634,7 +645,7 @@ $(document).ready(function () {
 					if (result.data.groups) {
 						var addedGroups = result.data.groups;
 						UserList.availableGroups = $.unique($.merge(UserList.availableGroups, addedGroups));
-						for (i in result.data.groups) {
+						for (var i in result.data.groups) {
 							var gid = result.data.groups[i];
 							$li = GroupList.getGroupLI(gid);
 							userCount = GroupList.getUserCount($li);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list