Univention Bugzilla – Bug 38190
Opening a user is too slow
Last modified: 2016-02-12 16:17:08 CET
If I open a user on demo.univention.de, it took between 2 to 4 seconds. A user should be opened in less than a second.
Created attachment 6796 [details] Performance when opening a user On my system: FF 1.9s Chromium: 1.6s On possibility for speeding up this process could be to see how to trigger widgets to load their data earlier in order to bundle these commands as early as possible.
Another option would be to pre-render the detail page (as it is currently rendered on the fly).
(In reply to Alexander Kläser from comment #2) > Another option would be to pre-render the detail page (as it is currently > rendered on the fly). Can we render it before having the meta data from the server?
(In reply to Florian Best from comment #3) > (In reply to Alexander Kläser from comment #2) > > Another option would be to pre-render the detail page (as it is currently > > rendered on the fly). > Can we render it before having the meta data from the server? This should be fine. We looked into the limiting factor of the opening process and concluded that the largest factor is the rendering of the page. Requests could be cached, but they would not influence the final speed very much, as they can be parallelized with the GET request that loads the full user data. Thus the page should be pre-rendered. To avoid problems, the page could be deleted and pre-rendered again when closing the detail page. However, re-using the same detail page instance for any user would avoid to slow down the interface when closing a detail page.
(In reply to Alexander Kläser from comment #4) > [...] > Thus the page should be pre-rendered. To avoid problems, the page > could be deleted and pre-rendered again when closing the detail page. @Alex+Drees: As discussed, could the both of you please have a look at this. I suggest to start with the above cited approach. This should be fine as a first step :) . As page rendering is performed in a asynchronous way, it should be fine to do when opening a UDM module. A strategy for multiple available UDM types could be as follows. Do no pre-render a detail page (or optionally pre-render a detail page of the UDM type that is used the most), but render the page on the fly as requested. After closing the detail page re-render a page for the same type again. This strategy should work for opening objects as well as creating new objects.
Created attachment 7100 [details] Patch: 2015-08-12 Opening a user is too slow With the help of Alex and Florian I am able to preload the Detailpage for 'users/user'. This cuts the load time down to 200ms or less. But for that I had to implement a lot of changes. So it is necessary to test the whole udm module. Currently I experience the following problem. If I close the wizard for creating a user/computer by clicking the cancel button - I'll get this js error: TypeError {stack: (...), message: "Cannot read property 'className' of null"} "TypeError: Cannot read property 'className' FYI: This will only appear if you close the wizard by clicking the cancel button. Using the x icon works fine
(In reply to Alexander Kramer from comment #6) > Created attachment 7100 [details] > Patch: 2015-08-12 Opening a user is too slow > > With the help of Alex and Florian I am able to preload the Detailpage for > 'users/user'. This cuts the load time down to 200ms or less. > > But for that I had to implement a lot of changes. So it is necessary to test > the whole udm module. > > Currently I experience the following problem. If I close the wizard for > creating a user/computer by clicking the cancel button - I'll get this js > error: > > TypeError {stack: (...), message: "Cannot read property 'className' of null"} > "TypeError: Cannot read property 'className' > > FYI: This will only appear if you close the wizard by clicking the cancel > button. Using the x icon works fine I tracked the error down to the following line inside udm/NewObjectDialog.js: createWizard.on('Cancel', lang.hitch(this, function() { topic.publish('/umc/actions', 'udm', this.moduleFlavor, 'create-wizard', 'cancel'); this.destroyRecursive(); this.hide().then(function() { --> detailsValues.detailPage.onCloseTab(); }); })); I tried to dig deeper inside detailsValues.detailPage.onCloseTab() but sadly I did not found something helpful. So I changed this.hide() to this.destroyRecursiv(). This solved the error.
> I tried to dig deeper inside detailsValues.detailPage.onCloseTab() but sadly > I did not found something helpful. So I changed this.hide() to > this.destroyRecursiv(). This solved the error. Simple reason: Inside udm.js closeDetailPage was called accidentally twice if one pressed the cancel button of the newDetailDialog. The error above appears during the second time, because the first run already destroyed the detailPage. I removed the second call.
Also added an event handler if newObjectDialog is canceld, to preload the Detailpage
UCS4.0-3 r 63275 Package: univention-management-console-module-udm Version: 5.1.25-87.605.201508271026 User: akramer Branch: ucs_4.0-0 Scope: errata4.0-3 r 63277 / r 63278 yaml file UCS4.1-0 r 63276 Successful build Package: univention-management-console-module-udm Version: 6.0.2-5.606.201508271045 User: akramer Branch: ucs_4.1-0 Scope:
It's not possible to open a object from remote anymore (e.g. opening the UCS@school class from the UCS@school wizards) TypeError: Cannot set property 'isFirstChild' of null at g._showChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:665:355) at g._transition (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:664:247) at g.selectChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:663:505) at l.selectChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:249:153) at declare._setDetailPage (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/umc/modules/udm.js:1632:9) at declare.createDetailPage (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/umc/modules/udm.js:1641:10) at b._hitchArgs (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:818:321) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:337) at h (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:263) at f.resolve (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:766:352) "TypeError: Cannot set property 'isFirstChild' of null at g._showChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:665:355) at g._transition (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:664:247) at g.selectChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:663:505) at l.selectChild (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:249:153) at declare._setDetailPage (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/umc/modules/udm.js:1632:9) at declare.createDetailPage (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/umc/modules/udm.js:1641:10) at b._hitchArgs (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:818:321) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:337) at h (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:263) at f.resolve (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:766:352) ---------------------------------------- rejected at a (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:765:243) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:496) at h (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:263) at f.resolve (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:766:352) at a (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:765:217) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:477) at h (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:263) at f.resolve (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:766:352) at a (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:765:217) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:477) ---------------------------------------- Error at f.then.b.then [as then] (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:767:143) at declare.buildRendering (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/umc/modules/udm.js:289:30) at c.create (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:1333:125) at c.postscript (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:1332:99) at new <anonymous> (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:1158:192) at null.<anonymous> (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:1263:244) at b.hitch (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:819:130) at e (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:764:337) at f.then.b.then [as then] (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:767:198) at l.openModule (http://ucs-2759.mydomain.intranet/univention-management-console/js_$20150210074722$/dojo/dojo.js:1261:207)"
(In reply to Florian Best from comment #11) > It's not possible to open a object from remote anymore (e.g. opening the > UCS@school class from the UCS@school wizards) > > TypeError: Cannot set property 'isFirstChild' of null How to reproduce: 0.) Preconditions: You need an UCS@School 4.1-0 Single Master with at least one class 1.) Logout from UMC 2.) Login 3.) Choose 'School administration' / 'Classes (schools)' 4.) Pick one random class 5.) Click the button 'Advanced Settings' Now loading the LDAP DetailPage should fail with the error above. I tracked it down to: udm.js / _setDetailPage / line 1632: this.selectChild(this._searchPage) this._searchPage is null, so you'll get TypeError: Cannot set property 'isFirstChild' of null The strange thing about this bug is, that it only occurs if you initially logged in. You can just close the failed Page, open it again and everything works fine.
Bug #38190: Check if _searchPage exists before selecting it UCS 4.0-3 / r64794 r64795 yaml file Package: univention-management-console-module-udm Version: 5.1.25-91.617.201510231123 Branch: ucs_4.0-0 Scope: errata4.0-3 UCS 4.1-0 / r64796 Successful build Package: univention-management-console-module-udm Version: 6.0.6-2.618.201510231135 User: akramer Branch: ucs_4.1-0
When trying to create a group the following traceback occurs: TypeError: Cannot read property 'childNodes' of null at Object.place (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:7024:20) at declare.addChild (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:22071:17) at declare._renderForm (https://master30.saml.dev/univention-management-console/js_$20152810082120$/umc/modules/udm/NewObjectDialog.js:185:9) at null.<anonymous> (https://master30.saml.dev/univention-management-console/js_$20152810082120$/umc/modules/udm/NewObjectDialog.js:116:11) at lang.hitch (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:37638:55) at signalListener (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35784:21) at signalWaiting (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35775:4) at Deferred.resolve (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35939:5) at https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:88893:16 at signalListener (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35784:21) "TypeError: Cannot read property 'childNodes' of null at Object.place (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:7024:20) at declare.addChild (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:22071:17) at declare._renderForm (https://master30.saml.dev/univention-management-console/js_$20152810082120$/umc/modules/udm/NewObjectDialog.js:185:9) at null.<anonymous> (https://master30.saml.dev/univention-management-console/js_$20152810082120$/umc/modules/udm/NewObjectDialog.js:116:11) at lang.hitch (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:37638:55) at signalListener (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35784:21) at signalWaiting (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35775:4) at Deferred.resolve (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35939:5) at https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:88893:16 at signalListener (https://master30.saml.dev/univention-management-console/js_$20152810082120$/dojo/dojo.js.uncompressed.js:35784:21)
(In reply to Florian Best from comment #14) > When trying to create a group the following traceback occurs: > > TypeError: Cannot read property 'childNodes' of null > at Object.place > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:7024:20) > at declare.addChild > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:22071:17) > at declare._renderForm > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > umc/modules/udm/NewObjectDialog.js:185:9) > at null.<anonymous> > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > umc/modules/udm/NewObjectDialog.js:116:11) > at lang.hitch > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:37638:55) > at signalListener > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35784:21) > at signalWaiting > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35775:4) > at Deferred.resolve > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35939:5) > at > https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:88893:16 > at signalListener > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35784:21) "TypeError: Cannot read property > 'childNodes' of null > at Object.place > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:7024:20) > at declare.addChild > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:22071:17) > at declare._renderForm > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > umc/modules/udm/NewObjectDialog.js:185:9) > at null.<anonymous> > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > umc/modules/udm/NewObjectDialog.js:116:11) > at lang.hitch > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:37638:55) > at signalListener > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35784:21) > at signalWaiting > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35775:4) > at Deferred.resolve > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35939:5) > at > https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:88893:16 > at signalListener > (https://master30.saml.dev/univention-management-console/js_$20152810082120$/ > dojo/dojo.js.uncompressed.js:35784:21) This is a problem that has been introduced along with Bug 38834. The following lines are executed at the bottom of udm/NewObjectDialog/buildRendering(): this.canContinue.then(createWizard); this.canContinue.then(undefined, lang.hitch(this._preWizard, 'selectCorrectChild')); this._notificationText = new NotificationText(); this.own(this._notificationText); this.addChild(this._notificationText, 0); As soon as "this.canContinue.then(createWizard)" is executed, destroyRecursive() is called as the NewObjectDialog does not need to be shown. As consequence, the last this.addChild() throws an exception since the dialog has already been destroyed (and thus this.domNode/this.containerNode do not exist). Ergo the traceback did not really crash something. I moved the last three lines to the top of the buildRendering() method. univention-management-console-module-udm (6.0.6-3): r65132 | Bug #38190: adjusted order of calls in NewObjectDialog:buildRendering() univention-management-console-module-udm (5.1.25-92): r65134 | Bug #38190: adjusted order of calls in NewObjectDialog:buildRendering() 2015-06-23-univention-management-console-module-udm.yaml: r65135 | Bug #38190: adjusted package version in YAML file
I needed another adjustment, as the dialog for creating a user would stand still after entering the password and hitting "create" due to a JS error. univention-management-console-module-udm (6.0.6-4): r65139 | Bug #38190: re-adjust order in NewObjectDialog:_renderForm() univention-management-console-module-udm (5.1.25-93): r65140 | Bug #38190: re-adjust order in NewObjectDialog:_renderForm() 2015-06-23-univention-management-console-module-udm.yaml: r65142 | Bug #38190: adjusted package version in YAML file
AFAIS, the changes work very well. I have just two points that can be addressed at a later point in time: * It would be great to preload detail pages for other object types (e.g., groups, maybe computers?), as well. * In the LDAP navigation module, when adding a new group to the LDAP root, I received the following traceback (which does not seem to do any harm): > TypeError: Cannot read property 'setDetails' of null(…) "TypeError: Cannot read property 'setDetails' of null > at null.<anonymous> (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm.js:1663:27) > at lang.hitch (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:40545:55) > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > at signalWaiting (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37560:4) > at canceler.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37724:5) > at http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:95770:16 > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > at signalWaiting (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37560:4) > at canceler.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37724:5) > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > ---------------------------------------- > rejected at signalDeferred (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37616:15) > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37587:5) > at signalWaiting (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37560:4) > at canceler.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37724:5) > at http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:95770:16 > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > at signalWaiting (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37560:4) > at canceler.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37724:5) > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > at signalWaiting (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37560:4) > ---------------------------------------- > Error > at Promise.canceler.then.promise.then [as then] (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37784:24) > at declare.createDetailPage (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm.js:1655:28) > at null.<anonymous> (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm.js:1561:10) > at lang.hitch (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:40545:55) > at target.(anonymous function).dispatcher [as onFirstPageFinished] (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:73846:38) > at declare.buildCreateWizard (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm/NewObjectDialog.js:198:9) > at null.<anonymous> (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm/NewObjectDialog.js:178:11) > at lang.hitch (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:40545:55) > at signalListener (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37569:21) > at canceler.then.promise.then [as then] (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js.uncompressed.js:37790:5)"logError @ dojo.js.uncompressed.js:80558(anonymous function) @ dojo.js.uncompressed.js:80605array.filter @ dojo.js.uncompressed.js:2718logRejected @ dojo.js.uncompressed.js:80600
Changes: OK YAML file: OK Merge to 4.1-0: OK → VERIFIED
Another one without real side effects to the UI. When closing the "Add a new user" dialog immediately, the following traceback occurs on the console log: > TypeError: Cannot set property 'value' of undefined(…) "TypeError: Cannot set property 'value' of undefined > at l._setDisplayedValueAttr (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1329:392) > at l._setValueAttr (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1328:169) > at e (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1157:92) > at l._setValueAttr (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1415:465) > at e (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1157:92) > at declare._setValueAttr (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm/ComboBox.js:106:9) > at c.set (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1339:329) > at l._setCustomValue (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1416:274) > at null.<anonymous> (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1420:315) > at b.hitch (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:820:23) > ---------------------------------------- > rejected at a (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:767:243) > at d (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:766:496) > at h (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:766:263) > at a.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:768:352) > at a (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:767:217) > at d (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:766:477) > at h (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:766:263) > at a.resolve (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:768:352) > at a (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:767:217) > at d (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:766:477) > ---------------------------------------- > Error > at a.then.b.then [as then] (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:769:143) > at http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:290:239 > at l._loadValues (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1420:211) > at e (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1157:92) > at declare._loadValues (http://172.17.0.2/univention-management-console/js_$20150411115441$/umc/modules/udm/ComboBox.js:75:10) > at l.startup (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1414:474) > at http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1336:46 > at Object.b.forEach (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:36:419) > at c.startup (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1335:471) > at e (http://172.17.0.2/univention-management-console/js_$20150411115441$/dojo/dojo.js:1157:92)
For the records... I have checked various use cases that could have been affected by the changes made: * Cancel and/or close a dialog (at different dialog pages) * Open various object types and create new instances * Verify that fields are correctly disabled (e.g., UIDs can be edited when creating a user, however they cannot when opening a user) * Open objects in a new module tab directly * Different browsers * Removal of objects * Creating/opening objects in the LDAP navigation module
(In reply to Alexander Kläser from comment #17) > AFAIS, the changes work very well. I have just two points that can be > addressed at a later point in time: > > * It would be great to preload detail pages for other object types (e.g., > groups, > maybe computers?), as well. → Bug 39777
<http://errata.software-univention.de/ucs/4.0/354.html>