Serials: pattern wizard bugfix
authorsenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 9 Sep 2010 13:44:18 +0000 (13:44 +0000)
committersenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 9 Sep 2010 13:44:18 +0000 (13:44 +0000)
Previously, you couldn't always compile the pattern at the end of the wizard
if you elected not to use certain parts of the wizard, such as enumeration
captions, even though to do so should be perfectly valid.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@17537 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/serial/pattern_wizard.js

index 95cbdec..38a23dd 100644 (file)
@@ -115,7 +115,7 @@ function CalendarChangeRow() {
     this.compile = function() {
         var type = node_by_name("type", this.element).value;
 
-        return this["_compile_" + type]();
+        return type ? this["_compile_" + type]() : [];
     };
 
     this._init.apply(this, arguments);
@@ -169,10 +169,13 @@ function CalendarChangeEditor() {
     };
 
     this.toggle = function(ev) {
-        (ev.target.checked ? show : hide)("calendar_change_editor_here");
+        this.active = ev.target.checked;
+        (this.active ? show : hide)("calendar_change_editor_here");
     };
 
     this.compile = function() {
+        if (!this.active) return [];
+
         return [
             "x",
             openils.Util.objectProperties(this.rows).sort(num_sort).map(
@@ -286,10 +289,13 @@ function ChronEditor() {
     };
 
     this.toggle = function(ev) {
-        (ev.target.checked ? show : hide)("chron_editor_here");
+        this.active = ev.target.checked;
+        (this.active ? show : hide)("chron_editor_here");
     };
 
     this.compile = function() {
+        if (!this.active) return [];
+
         return this.subfields.filter(
             function(subfield) { return Boolean(self.rows[subfield]); }
         ).reduce(
@@ -457,7 +463,9 @@ function EnumEditor() {
         var func;
         var use_calendar_change = dojo.byId("use_calendar_change");
 
-        if (ev.target.checked) {
+        this.active = ev.target.checked;
+
+        if (this.active) {
             func = show;
             use_calendar_change.disabled = false;
         } else {
@@ -471,6 +479,8 @@ function EnumEditor() {
     };
 
     this.compile = function() {
+        if (!this.active) return [];
+
         var rows = dojo.mixin({}, this.normal_rows, this.alt_rows);
         var subfields = [].concat(this.normal_subfields, this.alt_subfields);