Univention Bugzilla – Attachment 7675 Details for
Bug 41293
Add new feature of OU-spanning users to UCS@school user wizard
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
intermediate patch
41293.patch (text/plain), 8.54 KB, created by
Jürn Brodersen
on 2016-05-20 15:51:14 CEST
(
hide
)
Description:
intermediate patch
Filename:
MIME Type:
Creator:
Jürn Brodersen
Created:
2016-05-20 15:51:14 CEST
Size:
8.54 KB
patch
obsolete
>Index: umc/js/schoolwizards/Grid.js >=================================================================== >--- umc/js/schoolwizards/Grid.js (Revision 69403) >+++ umc/js/schoolwizards/Grid.js (Arbeitskopie) >@@ -181,7 +181,7 @@ > label: _('School') > }); > } >- columns = columns.concat(this.getGridColumns()); >+ columns = this.getGridColumns().concat(columns); > return columns; > }, > >Index: umc/js/schoolwizards/UserCopyWizard.js >=================================================================== >--- umc/js/schoolwizards/UserCopyWizard.js (nicht existent) >+++ umc/js/schoolwizards/UserCopyWizard.js (Arbeitskopie) >@@ -0,0 +1,121 @@ >+/* >+ * Copyright 2012-2016 Univention GmbH >+ * >+ * http://www.univention.de/ >+ * >+ * All rights reserved. >+ * >+ * The source code of this program is made available >+ * under the terms of the GNU Affero General Public License version 3 >+ * (GNU AGPL V3) as published by the Free Software Foundation. >+ * >+ * Binary versions of this program provided by Univention to you as >+ * well as other copyrighted, protected or trademarked materials like >+ * Logos, graphics, fonts, specific documentations and configurations, >+ * cryptographic keys etc. are subject to a license agreement between >+ * you and Univention and not subject to the GNU AGPL V3. >+ * >+ * In the case you use this program under the terms of the GNU AGPL V3, >+ * the program is provided in the hope that it will be useful, >+ * but WITHOUT ANY WARRANTY; without even the implied warranty of >+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+ * GNU Affero General Public License for more details. >+ * >+ * You should have received a copy of the GNU Affero General Public >+ * License with the Debian GNU/Linux or Univention distribution in file >+ * /usr/share/common-licenses/AGPL-3; if not, see >+ * <http://www.gnu.org/licenses/>. >+ */ >+ >+/*global define*/ >+ >+define([ >+ "dojo/_base/declare", >+ "dojo/_base/lang", >+ "dojo/_base/array", >+ "dojo/topic", >+ "umc/tools", >+ "umc/widgets/TextBox", >+ "umc/widgets/Text", >+ "umc/widgets/ComboBox", >+ "umc/widgets/MultiSelect", >+ "umc/widgets/PasswordInputBox", >+ "umc/modules/schoolwizards/Wizard", >+ "umc/i18n!umc/modules/schoolwizards" >+], function(declare, lang, array, topic, tools, TextBox, Text, ComboBox, MultiSelect, PasswordInputBox, Wizard, _) { >+ >+ return declare("umc.modules.schoolwizards.UserCopyWizard", [Wizard], { >+ description: _('Copy a user from a different school'), >+ >+ getGeneralPage: function() { >+ return { >+ name: 'general', >+ headerText: this.description, >+ widgets: [{ >+ type: TextBox, >+ name: 'firstname', >+ label: _('Firstname'), >+ }, { >+ type: TextBox, >+ name: 'lastname', >+ label: _('Lastname'), >+ }, { >+ type: TextBox, >+ name: 'name', >+ label: _('Username'), >+ }], >+ layout: [['firstname', 'lastname'],['name']] >+ }; >+ }, >+ >+ getItemPage: function() { >+ return { >+ name: 'item', >+ headerText: this.description, >+ helpText: _('Choose a user to copy'), >+ widgets: [{ >+ type: ComboBox, >+ name: 'username', >+ label: _('Username') >+ }, { >+ type: ComboBox, >+ name: 'school', >+ label: _('School') >+ }], >+ layout: [ >+ ['username'],['school'] >+ ] >+ }; >+ }, >+ >+ restart: function() { >+ tools.forIn(this.getPage('item')._form._widgets, function(iname, iwidget) { >+ if (iname === 'password') { >+ iwidget._setValueAttr(null); >+ } else if (iname !== 'school_class') { >+ iwidget.reset(); >+ } >+ }); >+ this.inherited(arguments); >+ }, >+ >+ addNote: function() { >+ var name = this.getWidget('item', 'name').get('value'); >+ var message = _('User "%s" has been successfully created. Continue to create another user or press "Cancel" to close this wizard.', name); >+ this.getPage('item').clearNotes(); >+ this.getPage('item').addNote(message); >+ }, >+ >+ onShow: function() { >+ }, >+ >+ getValues: function() { >+ var values = this.inherited(arguments); >+ if (!this.hasClassWidget()) { >+ delete values.school_class; >+ } >+ return values; >+ }, >+ }); >+}); >+ >Index: umc/js/schoolwizards/UserGrid.js >=================================================================== >--- umc/js/schoolwizards/UserGrid.js (Revision 69403) >+++ umc/js/schoolwizards/UserGrid.js (Arbeitskopie) >@@ -34,12 +34,15 @@ > "dojo/_base/lang", > "dojo/_base/array", > "dojo/topic", >+ "dojo/string", >+ "umc/tools", > "umc/widgets/TextBox", > "umc/widgets/ComboBox", > "umc/modules/schoolwizards/UserWizard", >+ "umc/modules/schoolwizards/UserCopyWizard", > "umc/modules/schoolwizards/Grid", > "umc/i18n!umc/modules/schoolwizards" >-], function(declare, lang, array, topic, TextBox, ComboBox, UserWizard, Grid, _) { >+], function(declare, lang, array, topic, string, tools, TextBox, ComboBox, UserWizard, UserCopyWizard, Grid, _) { > > return declare("umc.modules.schoolwizards.UserGrid", [Grid], { > >@@ -49,7 +52,65 @@ > objectNameSingular: _('school user'), > firstObject: _('the first school user'), > createObjectWizard: UserWizard, >+ copyObjectWizard: UserCopyWizard, >+ sortFields: ['name'], > >+ getGridColumnsWithSchool: function() { >+ return this.getGridColumns(); >+ }, >+ >+ getGridActions: function() { >+ return this.inherited(arguments).concat(this.getGridCopyToSchoolAction()); >+ }, >+ >+ getGridCopyToSchoolAction: function() { >+ return { >+ name: 'copyToSchool', >+ label: _('Copy a user to your school'), >+ description: _('Copy a %s to your school', this.objectNameSingular), >+ iconClass: 'umcIconAdd', >+ isContextAction: false, >+ isStandardAction: true, >+ callback: lang.hitch(this, 'copyObject') >+ }; >+ }, >+ >+ copyObject: function() { >+ this.copyWizard({ >+ editMode: false, >+ $dn$: null, >+ school: this.getSelectedSchool(), >+ type: this.getSelectedType(), >+ itemType: tools.capitalize(this.objectNameSingular), >+ objectType: null >+ }); >+ }, >+ >+ copyWizard: function(props) { >+ var wizard = new this.copyObjectWizard(lang.mixin({ >+ udmLinkEnabled: this.udmLinkEnabled, >+ store: this._grid.moduleStore, >+ schools: this.schools, >+ umcpCommand: lang.hitch(this, 'umcpCommand') >+ }, props)); >+ this.module.addChild(wizard); >+ this.module.selectChild(wizard); >+ var closeWizard = lang.hitch(this, function() { >+ this.module.selectChild(this); >+ this.module.removeChild(wizard); >+ }); >+ wizard.on('cancel', closeWizard); >+ wizard.on('finished', closeWizard); >+ >+ // TODO: test if still works... why does it exists? >+ if (!props.editMode && 'onShow' in wizard) { >+ // send a reload command to wizard >+ this.module.on('show', lang.hitch(this, function(evt) { >+ wizard.onShow(); >+ })); >+ } >+ }, >+ > getGridColumns: function() { > return [{ > name: 'display_name', >@@ -72,6 +133,14 @@ > // label: _('E-Mail address'), > // description: _('E-Mail address of the %s.', this.objectNameSingular) > }, { >+ name: 'schools', >+ label: _('School'), >+ formatter: lang.hitch(this, function(schools, id) { >+ var escaped_schools_str = string.escape(schools.join(', ')); >+ return '<span title="' + escaped_schools_str + '">' + escaped_schools_str + '</span>'; >+ }), >+ styles: 'white-space: nowrap; text-overflow: ellipsis;', >+ }, { > name: 'empty', // workaround: EnhancedGrid > label: ' ', > width: '10px', >Index: umc/js/schoolwizards/UserWizard.js >=================================================================== >--- umc/js/schoolwizards/UserWizard.js (Revision 69403) >+++ umc/js/schoolwizards/UserWizard.js (Arbeitskopie) >@@ -38,10 +38,11 @@ > "umc/widgets/TextBox", > "umc/widgets/Text", > "umc/widgets/ComboBox", >+ "umc/widgets/MultiSelect", > "umc/widgets/PasswordInputBox", > "umc/modules/schoolwizards/Wizard", > "umc/i18n!umc/modules/schoolwizards" >-], function(declare, lang, array, topic, tools, TextBox, Text, ComboBox, PasswordInputBox, Wizard, _) { >+], function(declare, lang, array, topic, tools, TextBox, Text, ComboBox, MultiSelect, PasswordInputBox, Wizard, _) { > > return declare("umc.modules.schoolwizards.UserWizard", [Wizard], { > description: _('Create a new user'), >@@ -151,6 +152,15 @@ > // ...and another one for Bug #30109 > return this.getWidget('item', 'password').isValid(); > }) >+ }, { >+ type: MultiSelect, >+ name: 'schools', >+ label: _('School'), >+ _setValueAttr: function(values) { >+ this.set('dynamicValues', function() {return values;}); >+ return; >+ }, >+ plugins: null > }], > layout: [ > ['firstname', 'lastname'], >@@ -157,7 +167,8 @@ > ['name'], > ['school_class', 'newClass'], > ['email'], >- ['password'] >+ ['password'], >+ ['schools'] > ] > }; > },
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 41293
:
7675
|
7709
|
7710
|
7712