Univention Bugzilla – Attachment 4209 Details for
Bug 26214
MultiInput-Widgets informieren Form nicht über erfolgreiche Initialisierung
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Teilfix mit Debugausgaben
bug25630.patch (text/plain), 5.12 KB, created by
Sönke Schwardt-Krummrich
on 2012-02-22 13:41:37 CET
(
hide
)
Description:
Teilfix mit Debugausgaben
Filename:
MIME Type:
Creator:
Sönke Schwardt-Krummrich
Created:
2012-02-22 13:41:37 CET
Size:
5.12 KB
patch
obsolete
>diff --git a/ucs/management/univention-management-console-frontend/umc/widgets/Form.js b/ucs/management/univention-management-console-frontend/umc/widgets/Form.js >index 6d2d360..36e7f52 100644 >--- a/ucs/management/univention-management-console-frontend/umc/widgets/Form.js >+++ b/ucs/management/univention-management-console-frontend/umc/widgets/Form.js >@@ -218,10 +218,12 @@ dojo.declare("umc.widgets.Form", [ > // widget values have not been loaded completely so far > //console.log('iwidget:', iwidget.name); > ++this._initializingElements; >+ console.log("Form Init: " + iwidget.id); > var handle = this.connect(iwidget, 'onValuesLoaded', dojo.hitch(this, function() { > //console.log('onValuesLoaded:', iwidget.name, iwidget.get('value')); > // disconnect from the signal > this.disconnect(handle); >+ console.log("Form Callback: " + iwidget.id); > > // decrement the internal counter > --this._initializingElements; >diff --git a/ucs/management/univention-management-console-frontend/umc/widgets/MultiInput.js b/ucs/management/univention-management-console-frontend/umc/widgets/MultiInput.js >index 1e3a386..be9db81 100644 >--- a/ucs/management/univention-management-console-frontend/umc/widgets/MultiInput.js >+++ b/ucs/management/univention-management-console-frontend/umc/widgets/MultiInput.js >@@ -82,6 +82,8 @@ dojo.declare("umc.widgets.MultiInput", [ > > _lastDepends: null, > >+ _initializingElements: 0, >+ > _createHandler: function(ifunc) { > // This handler will be called by all subwidgets of the MultiInput widget. > // When the first request comes in, we will execute the function to compute >@@ -149,14 +151,48 @@ dojo.declare("umc.widgets.MultiInput", [ > > _loadValues: function(depends) { > // delegate the call to _loadValues to all widgets >+ console.log('MultiInput: _loadValues: ' + this.id); > this._lastDepends = depends; >- dojo.forEach(this._widgets, function(iwidgets) { >+ this._initializingElements = 0; >+ dojo.forEach(this._widgets, dojo.hitch(this, function(iwidgets) { >+ >+ dojo.forEach(iwidgets, dojo.hitch(this, function(jwidget) { >+ if ('onValuesLoaded' in jwidget && !(jwidget._valuesLoaded && !jwidget._deferredOrValues)) { >+ ++this._initializingElements; >+ console.log("MultiInput Init: " + jwidget.id); >+ var handle = this.connect(jwidget, 'onValuesLoaded', dojo.hitch(this, function() { >+ console.log("MultiInput Callback: " + jwidget.id); >+ // disconnect from the signal >+ this.disconnect(handle); >+ >+ // decrement the internal counter >+ --this._initializingElements; >+ >+ // send event when the last element has been initialized >+ if (0 === this._initializingElements) { >+ console.log('MultiInput: top: _initializingElements == 0 ==> calling onValuesLoaded'); >+ this.onValuesLoaded(); >+ } >+ })); >+ } >+ })); >+ > dojo.forEach(iwidgets, function(jwidget) { > if ('_loadValues' in jwidget) { > jwidget._loadValues(depends); > } > }); >- }); >+ })); >+ >+ // maybe all elements are already initialized >+ if (!this._initializingElements) { >+ console.log('MultiInput: bottom: _initializingElements == 0 ==> calling onValuesLoaded'); >+ this.onValuesLoaded(); >+ } >+ }, >+ >+ onValuesLoaded: function() { >+ // event stub > }, > > _setAllValues: function(_valList) { >@@ -400,13 +436,14 @@ dojo.declare("umc.widgets.MultiInput", [ > rowContainer.startup(); > this.addChild(rowContainer); > >- // call the _loadValues method by hand >- dojo.forEach(order, function(iname) { >- var iwidget = widgets[iname]; >- if ('_loadValues' in iwidget) { >- iwidget._loadValues(this._lastDepends); >- } >- }, this); >+// // call the _loadValues method by hand >+// dojo.forEach(order, function(iname) { >+// var iwidget = widgets[iname]; >+// if ('_loadValues' in iwidget) { >+// iwidget._loadValues(this._lastDepends); >+// } >+// }, this); >+ this._loadValues(this._lastDepends); > } > > // add the new button >diff --git a/ucs/management/univention-management-console-module-udm/umc/js/_udm/DetailPage.js b/ucs/management/univention-management-console-module-udm/umc/js/_udm/DetailPage.js >index ef230b1..4594ca6 100644 >--- a/ucs/management/univention-management-console-module-udm/umc/js/_udm/DetailPage.js >+++ b/ucs/management/univention-management-console-module-udm/umc/js/_udm/DetailPage.js >@@ -688,9 +688,16 @@ dojo.declare("umc.modules._udm.DetailPage", [ dijit.layout.ContentPane, umc.widg > this._form.getWidget( '$objecttype$' ).set( 'content', this._( 'Type: <i>%(type)s</i>', { type: vals.$labelObjectType$ } ) ); > this._form.getWidget( '$location$' ).set( 'content', this._( 'Position: <i>%(path)s</i>', { path: path } ) ); > >+ this._receivedObjFormData = this.getValues(); >+ this._receivedObjFormData.$policies$ = this._receivedObjOrigData.$policies$; >+ })); >+ >+ var handle = this.connect(this._form, 'onValuesInitialized', dojo.hitch(this, function() { >+ this.disconnect(handle); > // save the original form data > this._receivedObjFormData = this.getValues(); > this._receivedObjFormData.$policies$ = this._receivedObjOrigData.$policies$; >+ console.warn("ONVALUESINIT: 3b"); > })); > } > else {
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 26214
: 4209 |
4727
|
4728