From a7e6524ba95520fe381bf11d13fa8f1eb9f80776 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 9 Feb 2009 21:53:48 +0000 Subject: [PATCH] created read-only version of a single widget and edit pane git-svn-id: svn://svn.open-ils.org/ILS/trunk@12122 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../web/js/dojo/openils/widget/AutoFieldWidget.js | 98 +++++++++++++--------- Open-ILS/web/js/dojo/openils/widget/EditPane.js | 4 +- 2 files changed, 60 insertions(+), 42 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js b/Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js index c8aee0196b..43eee3643b 100644 --- a/Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js +++ b/Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js @@ -43,7 +43,7 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) { * Turn the value from the dojo widget into a value oils understands */ getFormattedValue : function() { - var value = this.widget.attr('value'); + var value = this.baseWidgetValue(); switch(this.idlField.datatype) { case 'bool': return (value) ? 't' : 'f' @@ -53,6 +53,12 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) { return value; } }, + + baseWidgetValue : function(value) { + var attr = (this.readOnly) ? 'content' : 'value'; + if(arguments.length) this.widget.attr(attr, value); + return this.widget.attr(attr, value); + }, getDisplayString : function() { var value = this.widgetValue; @@ -67,7 +73,7 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) { case 'org_unit': return fieldmapper.aou.findOrgUnit(value).shortname(); default: - return value; + return value+''; } }, @@ -76,43 +82,50 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) { if(this.widgetValue == null) this.widgetValue = (this.fmObject) ? this.fmObject[this.idlField.name]() : null; - switch(this.idlField.datatype) { - - case 'id': - dojo.require('dijit.form.TextBox'); - this.widget = new dijit.form.TextBox(this.dijitArgs, this.parentNode); - this.widget.attr('disabled', true); // never allow editing of IDs - break; - - case 'org_unit': - this._buildOrgSelector(); - break; - - case 'money': - dojo.require('dijit.form.CurrencyTextBox'); - this.widget = new dijit.form.CurrencyTextBox(this.dijitArgs, this.parentNode); - break; - - case 'timestamp': - dojo.require('dijit.form.DateTextBox'); - dojo.require('dojo.date.stamp'); - this.widget = new dijit.form.DateTextBox(this.dijitArgs, this.parentNode); - if(this.widgetValue != null) - this.widgetValue = dojo.date.stamp.fromISOString(this.widgetValue); - break; - - case 'bool': - dojo.require('dijit.form.CheckBox'); - this.widget = new dijit.form.CheckBox(this.dijitArgs, this.parentNode); - this.widgetValue = openils.Util.isTrue(this.widgetValue); - break; + if(this.readOnly) { + dojo.require('dijit.layout.ContentPane'); + this.widget = new dijit.layout.ContentPane(this.dijitArgs, this.parentNode); - case 'link': - if(this._buildLinkSelector()) break; + } else { - default: - dojo.require('dijit.form.TextBox'); - this.widget = new dijit.form.TextBox(this.dijitArgs, this.parentNode); + switch(this.idlField.datatype) { + + case 'id': + dojo.require('dijit.form.TextBox'); + this.widget = new dijit.form.TextBox(this.dijitArgs, this.parentNode); + this.widget.attr('disabled', true); // never allow editing of IDs + break; + + case 'org_unit': + this._buildOrgSelector(); + break; + + case 'money': + dojo.require('dijit.form.CurrencyTextBox'); + this.widget = new dijit.form.CurrencyTextBox(this.dijitArgs, this.parentNode); + break; + + case 'timestamp': + dojo.require('dijit.form.DateTextBox'); + dojo.require('dojo.date.stamp'); + this.widget = new dijit.form.DateTextBox(this.dijitArgs, this.parentNode); + if(this.widgetValue != null) + this.widgetValue = dojo.date.stamp.fromISOString(this.widgetValue); + break; + + case 'bool': + dojo.require('dijit.form.CheckBox'); + this.widget = new dijit.form.CheckBox(this.dijitArgs, this.parentNode); + this.widgetValue = openils.Util.isTrue(this.widgetValue); + break; + + case 'link': + if(this._buildLinkSelector()) break; + + default: + dojo.require('dijit.form.TextBox'); + this.widget = new dijit.form.TextBox(this.dijitArgs, this.parentNode); + } } if(!this.async) this._widgetLoaded(); @@ -167,10 +180,13 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) { * For widgets that run asynchronously, provide a callback for finishing up */ _widgetLoaded : function(value) { - if(this.widgetValue != null) - this.widget.attr('value', this.widgetValue); - if(this.idlField.name == this.fmIDL.pkey && this.fmIDL.pkey_sequence) - this.widget.attr('disabled', true); + if(this.readOnly) { + this.baseWidgetValue(this.getDisplayString()); + } else { + this.baseWidgetValue(this.widgetValue); + if(this.idlField.name == this.fmIDL.pkey && this.fmIDL.pkey_sequence) + this.widget.attr('disabled', true); + } if(this.onload) this.onload(this.widget, self); }, diff --git a/Open-ILS/web/js/dojo/openils/widget/EditPane.js b/Open-ILS/web/js/dojo/openils/widget/EditPane.js index b6e2384d12..ede92c7f79 100644 --- a/Open-ILS/web/js/dojo/openils/widget/EditPane.js +++ b/Open-ILS/web/js/dojo/openils/widget/EditPane.js @@ -29,6 +29,7 @@ if(!dojo._hasResource['openils.widget.EditPane']) { startup : function() { this.inherited(arguments); this.initAutoEnv(); + this.hideActionButtons = this.readOnly; var table = document.createElement('table'); var tbody = document.createElement('tbody'); @@ -59,7 +60,8 @@ if(!dojo._hasResource['openils.widget.EditPane']) { fmObject : this.fmObject, fmClass : this.fmClass, parentNode : valSpan, - orgLimitPerms : this.limitPerms + orgLimitPerms : this.limitPerms, + readOnly : this.readOnly }); widget.build(); -- 2.11.0