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