make updateCount work properly with new xp'd mode as well as without

This commit is contained in:
Arthur Schiwon 2014-11-21 16:23:56 +01:00
parent c07c338c90
commit 503de94392
2 changed files with 25 additions and 7 deletions

View File

@ -8,6 +8,7 @@ function LdapFilter(target, determineModeCallback) {
this.determineModeCallback = determineModeCallback;
this.foundFeatures = false;
this.activated = false;
this.countPending = false;
if( target === 'User' ||
target === 'Login' ||
@ -25,9 +26,13 @@ LdapFilter.prototype.activate = function() {
this.determineMode();
};
LdapFilter.prototype.compose = function() {
LdapFilter.prototype.compose = function(updateCount = false) {
var action;
if(updateCount) {
this.countPending = updateCount;
}
if(this.locked) {
this.lazyRunCompose = true;
return false;
@ -57,6 +62,7 @@ LdapFilter.prototype.compose = function() {
filter.afterComposeSuccess(result);
},
function () {
filter.countPending = false;
console.log('LDAP Wizard: could not compose filter. '+
'Please check owncloud.log');
}
@ -77,6 +83,10 @@ LdapFilter.prototype.afterDetectorsRan = function() {
*/
LdapFilter.prototype.afterComposeSuccess = function(result) {
LdapWizard.applyChanges(result);
if(this.countPending) {
this.countPending = false;
this.updateCount();
}
};
LdapFilter.prototype.determineMode = function() {

View File

@ -669,7 +669,8 @@ var LdapWizard = {
instantiateFilters: function() {
delete LdapWizard.userFilter;
LdapWizard.userFilter = new LdapFilter('User', function(mode) {
if(mode === LdapWizard.filterModeAssisted) {
if( !LdapWizard.admin.isExperienced()
|| mode === LdapWizard.filterModeAssisted) {
LdapWizard.userFilter.updateCount();
}
LdapWizard.userFilter.findFeatures();
@ -689,7 +690,8 @@ var LdapWizard = {
delete LdapWizard.groupFilter;
LdapWizard.groupFilter = new LdapFilter('Group', function(mode) {
if(mode === LdapWizard.filterModeAssisted) {
if( !LdapWizard.admin.isExperienced()
|| mode === LdapWizard.filterModeAssisted) {
LdapWizard.groupFilter.updateCount();
}
LdapWizard.groupFilter.findFeatures();
@ -775,6 +777,12 @@ var LdapWizard = {
if(triggerObj.id === 'ldap_loginfilter_username'
|| triggerObj.id === 'ldap_loginfilter_email') {
LdapWizard.loginFilter.compose();
} else if (!LdapWizard.admin.isExperienced()) {
if(triggerObj.id === 'ldap_userlist_filter') {
LdapWizard.userFilter.updateCount();
} else if (triggerObj.id === 'ldap_group_filter') {
LdapWizard.groupFilter.updateCount();
}
}
if($('#ldapSettings').tabs('option', 'active') == 0) {
@ -804,7 +812,7 @@ var LdapWizard = {
LdapWizard._save($('#'+originalObj)[0], $.trim(values));
if(originalObj === 'ldap_userfilter_objectclass'
|| originalObj === 'ldap_userfilter_groups') {
LdapWizard.userFilter.compose();
LdapWizard.userFilter.compose(!LdapWizard.admin.isExperienced());
//when user filter is changed afterwards, login filter needs to
//be adjusted, too
if(!LdapWizard.loginFilter) {
@ -815,7 +823,7 @@ var LdapWizard = {
LdapWizard.loginFilter.compose();
} else if(originalObj === 'ldap_groupfilter_objectclass'
|| originalObj === 'ldap_groupfilter_groups') {
LdapWizard.groupFilter.compose();
LdapWizard.groupFilter.compose(!LdapWizard.admin.isExperienced());
}
},
@ -885,10 +893,10 @@ var LdapWizard = {
LdapWizard._save({ id: modeKey }, LdapWizard.filterModeAssisted);
if(isUser) {
LdapWizard.blacklistRemove('ldap_userlist_filter');
LdapWizard.userFilter.compose();
LdapWizard.userFilter.compose(!LdapWizard.admin.isExperienced());
} else {
LdapWizard.blacklistRemove('ldap_group_filter');
LdapWizard.groupFilter.compose();
LdapWizard.groupFilter.compose(!LdapWizard.admin.isExperienced());
}
}
},