Backport IDL-chunking work for interfaces under web/templates, as well as
authorsenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 16 Sep 2010 02:39:56 +0000 (02:39 +0000)
committersenator <senator@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 16 Sep 2010 02:39:56 +0000 (02:39 +0000)
AutoWidget/AutoFieldWidget improvements to deal with some cases of not having
an IDL class preloaded.

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

Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js
Open-ILS/web/js/dojo/openils/widget/AutoWidget.js
Open-ILS/web/templates/base.tt2

index d94fd41..1fc77a0 100644 (file)
@@ -56,10 +56,17 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) {
             }
             this.dijitArgs['scrollOnFocus'] = false;
 
+
             // find the field description in the IDL if not provided
             if(this.fmObject) 
                 this.fmClass = this.fmObject.classname;
             this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+
+            if(this.fmClass && !this.fmIDL) {
+                fieldmapper.IDL.load([this.fmClass]);
+                this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+            }
+
             this.suppressLinkedFields = args.suppressLinkedFields || [];
 
             if(this.selfReference) {
@@ -358,6 +365,8 @@ if(!dojo._hasResource['openils.widget.AutoFieldWidget']) {
         _getLinkSelector : function() {
             var linkClass = this.idlField['class'];
             if(this.idlField.reltype != 'has_a')  return false;
+            if(!fieldmapper.IDL.fmclasses[linkClass]) // class neglected by AutoIDL
+                fieldmapper.IDL.load([this.fmClass]);
             if(!fieldmapper.IDL.fmclasses[linkClass].permacrud) return false;
             if(!fieldmapper.IDL.fmclasses[linkClass].permacrud.retrieve) return false;
 
index e4f11ab..6c065b1 100644 (file)
@@ -20,6 +20,10 @@ if(!dojo._hasResource['openils.widget.AutoWidget']) {
             if(this.fmObject)
                 this.fmClass = this.fmObject.classname;
             this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+            if(!this.fmIDL) {
+                fieldmapper.IDL.load([this.fmClass]);
+                this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+            }
             this.buildSortedFieldList();
         },
 
index 6bb7874..46c512e 100644 (file)
             href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %].css' />
         <link rel='stylesheet' type='text/css'
             href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %].css' />
-        <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js"
-            djConfig="parseOnLoad: true, isDebug:false"></script>
+        <script type="text/javascript">
+var djConfig = {parseOnLoad:true,isDebug:false,AutoIDL:[
+'aou','aout','pgt','lasso','mvr','acp','circ','ccmcmt','asvq','asva','asv','acplo','acqf','acqdfe',
+'vmp','cbs','viiad','vqarad','vqbrad','aoa','ac','aua','asvr','actscecm','acqim','acqct','acqexr',
+'acqpro','acqpron','acqipm','acqinv','acqie','acqii','acqpa','acqpc','acqpca','acqftr','acqfc','acqfy','acqfs',
+'acqfscred','acqofscred','acqfdeb','acqf','acqfat','acqfdt','acqfet','acqfst','acqfcb','acqafat','acqafet',
+'acqafst','acqafsb','acqafcb','acqfsrcct','acqfsrcat','acqfsrcb','acqfsb','acqfa','acqfap','acqpl','acqcr',
+'acqpo','acqpoh','acqpon','acqpoi','acqlih','acqliat','acqlin','acqlia','acqlid','acqliad','acqlimad',
+'acqligad','acqliuad','acqlipad','acqphsm','acqlilad','acqedi','acqedim','acqdf','acqdfe','acqdfa','acqda',
+'acqclt','acqclet','acqcl','acqcle','acqscl','acqscle','acqclp','acqclpa','acqlisum','acqft','acqftm','jub','sdist','ssub','sstr','scap','bre','siss','act', 'acpl', 'ccm', 'aiit', 'atevdef', 'ath', 'atreact', 'atval','crahp','crmf','crrf','crcd','cust','coust','cgf','czs','cbt','csp','brt','brsrc','bra','bram','brav']};
+        </script>
+        <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js"></script>
         <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/openils_dojo.js"></script>
         <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>
         <script type="text/javascript">