From: senator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Thu, 9 Sep 2010 13:44:18 +0000 (+0000)
Subject: Serials: pattern wizard bugfix
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=5b187d515c9e1060e45bcd8bc17e88b610522ae3;p=evergreen%2Fmasslnc.git

Serials: pattern wizard bugfix

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
---

diff --git a/Open-ILS/xul/staff_client/server/serial/pattern_wizard.js b/Open-ILS/xul/staff_client/server/serial/pattern_wizard.js
index 95cbdec117..38a23dde15 100644
--- a/Open-ILS/xul/staff_client/server/serial/pattern_wizard.js
+++ b/Open-ILS/xul/staff_client/server/serial/pattern_wizard.js
@@ -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);