You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
define([ |
|
"dojo/_base/lang", |
|
"dojo/_base/declare", |
|
"dijit/layout/ContentPane" |
|
], function(lang, declare, ContentPane){ |
|
|
|
return declare("dojox.widget.WizardPane", ContentPane, { |
|
// summary: |
|
// A panel in a `dojox.widget.Wizard` |
|
// description: |
|
// An extended ContentPane with additional hooks for passing named |
|
// functions to prevent the pane from going either forward or |
|
// backwards. |
|
|
|
// canGoBack: Boolean |
|
// If true, then can move back to a previous panel (by clicking the "Previous" button) |
|
canGoBack: true, |
|
|
|
// passFunction: String |
|
// Name of function that checks if it's OK to advance to the next panel. |
|
// If it's not OK (for example, mandatory field hasn't been entered), then |
|
// returns an error message (String) explaining the reason. Can return null (pass) |
|
// or a Boolean (true == pass) |
|
passFunction: null, |
|
|
|
// doneFunction: String |
|
// Name of function that is run if you press the "Done" button from this panel |
|
doneFunction: null, |
|
|
|
startup: function(){ |
|
this.inherited(arguments); |
|
if(this.isFirstChild){ this.canGoBack = false; } |
|
if(lang.isString(this.passFunction)){ |
|
this.passFunction = lang.getObject(this.passFunction); |
|
} |
|
if(lang.isString(this.doneFunction) && this.doneFunction){ |
|
this.doneFunction = lang.getObject(this.doneFunction); |
|
} |
|
}, |
|
|
|
_onShow: function(){ |
|
if(this.isFirstChild){ this.canGoBack = false; } |
|
this.inherited(arguments); |
|
}, |
|
|
|
_checkPass: function(){ |
|
// summary: |
|
// Called when the user presses the "next" button. |
|
// Calls passFunction to see if it's OK to advance to next panel, and |
|
// if it isn't, then display error. |
|
// Returns true to advance, false to not advance. If passFunction |
|
// returns a string, it is assumed to be a custom error message, and |
|
// is alert()'ed |
|
var r = true; |
|
if(this.passFunction && lang.isFunction(this.passFunction)){ |
|
var failMessage = this.passFunction(); |
|
switch(typeof failMessage){ |
|
case "boolean": |
|
r = failMessage; |
|
break; |
|
case "string": |
|
alert(failMessage); |
|
r = false; |
|
break; |
|
} |
|
} |
|
return r; // Boolean |
|
}, |
|
|
|
done: function(){ |
|
if(this.doneFunction && lang.isFunction(this.doneFunction)){ this.doneFunction(); } |
|
} |
|
}); |
|
|
|
}); |
|
|
|
|