From 5b187d515c9e1060e45bcd8bc17e88b610522ae3 Mon Sep 17 00:00:00 2001 From: senator Date: Thu, 9 Sep 2010 13:44:18 +0000 Subject: [PATCH] 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 --- .../xul/staff_client/server/serial/pattern_wizard.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 95cbdec11..38a23dde1 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); -- 2.11.0