Note that you don't / shouldn't update POT files directly; instead, you want to update the corresponding native en-US file ( Open-ILS/web/js/dojo/openils/reports/nls/en/us/reports.js in this case). "make newpot" generates updated POT files and will overwrite these changes based on the contents of reports.js. Similarly, just add entity definitions directly to lang.dtd rather than lang.dtd.pot -- or in this case hardcoding strings in the XUL -- heh :)
I suppose we could delete the POT files from SVN. I had checked them in to make it relatively easy for someone to grab a copy for their own translation purposes; but if it's going to cause confusion, I can turf them. Dan 2009/3/13 <[email protected]>: > Author: miker > Date: 2009-03-13 17:40:01 -0400 (Fri, 13 Mar 2009) > New Revision: 12510 > > Modified: > trunk/Open-ILS/web/reports/xul/source-browse.js > trunk/Open-ILS/web/reports/xul/source-setup.js > trunk/Open-ILS/web/reports/xul/template-config.js > trunk/Open-ILS/web/reports/xul/template_builder.xul > trunk/build/i18n/po/en-US/reports.js.pot > Log: > adding "Enable nullability selection" switch to allow complete control over > join types in templates > > Modified: trunk/Open-ILS/web/reports/xul/source-browse.js > =================================================================== > --- trunk/Open-ILS/web/reports/xul/source-browse.js 2009-03-13 12:27:40 > UTC (rev 12509) > +++ trunk/Open-ILS/web/reports/xul/source-browse.js 2009-03-13 21:40:01 > UTC (rev 12510) > @@ -48,11 +48,14 @@ > findAnscestorStack( item, 'treeitem', pathList > ); > > var fullpath = ''; > + > for (var j in pathList.reverse()) { > var n = > pathList[j].getAttribute('idlclass'); > var f = > pathList[j].getAttribute('field'); > + var j = > pathList[j].getAttribute('join'); > > if (f) fullpath += "-" + f; > + if (f && j != 'undefined') fullpath > += '>' + j; > > if (fullpath) fullpath += "."; > fullpath += n; > @@ -63,6 +66,7 @@ > > subtreeList.push( > { name : name, > + nullable : 'Default', > idlclass : idlclass, > map : map, > key : key, > @@ -72,6 +76,68 @@ > fullpath : fullpath > } > ); > + > + if ($('nullable-source-control').checked) { > + if (reltype == 'has_a') { > + subtreeList.push( > + { name : name, > + nullable : 'Parent', > //rpt_strings.LINK_NULLABLE_RIGHT, > + idlclass : idlclass, > + map : map, > + key : key, > + join : 'right', > + field : > field.getAttribute('name'), > + reltype : reltype, > + link : link, > + fullpath : fullpath + > '>right' > + } > + ); > + > + subtreeList.push( > + { name : name, > + nullable : 'None', > //rpt_strings.LINK_NULLABLE_NONE > + idlclass : idlclass, > + map : map, > + key : key, > + join : 'inner', > + field : > field.getAttribute('name'), > + reltype : reltype, > + link : link, > + fullpath : fullpath + > '>inner' > + } > + ); > + > + } else{ > + subtreeList.push( > + { name : name, > + nullable : 'Child', > //rpt_strings.LINK_NULLABLE_LEFT, > + idlclass : idlclass, > + map : map, > + key : key, > + join : 'left', > + field : > field.getAttribute('name'), > + reltype : reltype, > + link : link, > + fullpath : fullpath + > '>left' > + } > + ); > + > + subtreeList.push( > + { name : name, > + nullable : 'None', > //rpt_strings.LINK_NULLABLE_NONE > + idlclass : idlclass, > + map : map, > + key : key, > + join : 'inner', > + field : > field.getAttribute('name'), > + reltype : reltype, > + link : link, > + fullpath : fullpath + > '>inner' > + } > + ); > + > + } > + } > } > > populateSourcesSubtree( item.lastChild, subtreeList ); > > Modified: trunk/Open-ILS/web/reports/xul/source-setup.js > =================================================================== > --- trunk/Open-ILS/web/reports/xul/source-setup.js 2009-03-13 12:27:40 > UTC (rev 12509) > +++ trunk/Open-ILS/web/reports/xul/source-setup.js 2009-03-13 21:40:01 > UTC (rev 12510) > @@ -195,6 +195,7 @@ > }, > createTreeRow( > { }, > + createTreeCell( { label : '' } ), > createTreeCell( { label : name } ) > ), > createTreeChildren( { alternatingbackground : true } ) > @@ -218,11 +219,13 @@ > key : obj.key, > field : obj.field, > link : obj.link, > + join : obj['join'], > reltype : obj.reltype, > fullpath : obj.fullpath > }, > createTreeRow( > { }, > + createTreeCell( { label : > obj.nullable } ), > createTreeCell( { label : obj.name } ) > ), > createTreeChildren( { alternatingbackground : > true } ) > @@ -257,12 +260,28 @@ > var _label = _cname; > > if (atom.length > 1 && k == steps.length - 1) { > - var _f = getIDLField(classNode, atom[1]); > + var field_name = atom[1]; > + var join_type = field_name; > + > + field_name = field_name.split(/>/)[0]; > + join_type = join_type.split(/>/)[1]; > + > + var _f = getIDLField(classNode, field_name); > var _fname = _f.getAttributeNS(rptNS, 'label'); > if (!_fname) _fname = _f.getAttribute('name'); > if (_fname) _label += ' :: ' + _fname; > - } > + if (join_type) _label += ' (' + join_type + ')'; > + > + } else if (atom[1]){ > + var field_name = atom[1]; > + var join_type = field_name; > > + field_name = field_name.split(/>/)[0]; > + join_type = join_type.split(/>/)[1]; > + > + if (join_type) _label += ' (' + join_type + ')'; > + } > + > path_label.push(_label); > } > > > Modified: trunk/Open-ILS/web/reports/xul/template-config.js > =================================================================== > --- trunk/Open-ILS/web/reports/xul/template-config.js 2009-03-13 12:27:40 > UTC (rev 12509) > +++ trunk/Open-ILS/web/reports/xul/template-config.js 2009-03-13 21:40:01 > UTC (rev 12510) > @@ -77,19 +77,21 @@ > var field_class = item.getAttribute('idlclass'); > var datatype = item.getAttribute('datatype'); > var colname = item.getAttribute('idlfield'); > + var jointype = item.getAttribute('join'); > var field_label = > item.firstChild.firstChild.getAttribute('label'); > > var table_name = getSourceDefinition(field_class); > > if ( !rpt_rel_cache[relation_alias] ) { > rpt_rel_cache[relation_alias] = > - { label : class_label, > - alias : relation_alias, > - path : class_path, > - reltype : reltype, > + { label : class_label, > + alias : relation_alias, > + path : class_path, > + join : jointype, > + reltype : reltype, > idlclass : field_class, > - table : table_name, > - fields: { dis_tab : {}, filter_tab : {}, > aggfilter_tab : {} } > + table : table_name, > + fields : { dis_tab : {}, filter_tab : > {}, aggfilter_tab : {} } > }; > } > > @@ -101,6 +103,7 @@ > params : transform && > transform.getAttribute('params'), > transform_label: (transform && > transform.getAttribute('alias')) || rpt_strings.TEMPLATE_CONF_RAW_DATA, > alias : field_label, > + join : jointype, > datatype : datatype, > op : '=', > op_label : rpt_strings.TEMPLATE_CONF_EQUALS, > @@ -121,6 +124,7 @@ > params : transform && > transform.getAttribute('params'), > transform_label: (transform && > transform.getAttribute('alias')) || rpt_strings.TEMPLATE_CONF_RAW_DATA, > alias : field_label, > + join : jointype, > datatype : datatype, > op : '=', > op_label : rpt_strings.TEMPLATE_CONF_EQUALS, > @@ -824,36 +828,58 @@ > var current_obj = template.from; > var link; > while (link = table_path.shift()) { > - if (current_path) current_path += '-'; > - current_path += link; > > - var leaf = table_path.length == 0 ? true : false; > - > - current_obj.path = current_path; > - current_obj.table = getSourceDefinition( link.split(/-/)[0] ); > - > if (prev_link != '') { > var prev_class = getIDLClass( prev_link.split(/-/)[0] > ); > var prev_field = prev_link.split(/-/)[1]; > > + var prev_join = prev_field; > + > + prev_field = prev_field.split(/>/)[0]; > + prev_join = prev_join.split(/>/)[1]; > + > var current_link = getIDLLink( prev_class, prev_field > ); > current_obj.key = current_link.getAttribute('key'); > > - if ( > + //console.log("prev_link in fleshFromPath is: " + prev_link); > + //console.log("prev_join in fleshFromPath is: " + prev_join); > + > + if (prev_join) current_obj.type = prev_join > + else if ( > ( > current_link.getAttribute('reltype') > != 'has_a' || > prev_type == 'left' || > rel.reltype != 'has_a' > + > +// This disallows outer joins when the item is used in a filter > // ) && ( > // getKeys(rel.fields.filter_tab).length > == 0 && > // > getKeys(rel.fields.aggfitler_tab).length == 0 > + > ) > ) current_obj.type = 'left'; > > prev_type = current_obj.type; > + > } > > + if (current_path) current_path += '-'; > + current_path += link.split(/>/)[0]; > + > + var leaf = table_path.length == 0 ? true : false; > + > + current_obj.path = current_path; > + current_obj.table = getSourceDefinition( link.split(/-/)[0] ); > + > + > if (leaf) { > + > + var join_type = link.split(/-/)[1]; > + if (join_type) { > + join_type = join_type.split(/>/)[1]; > + if (join_type && join_type != 'undefined') > current_obj.type = join_type; > + } > + > current_obj.label = rel.label; > current_obj.alias = rel.alias; > current_obj.idlclass = rel.idlclass; > @@ -861,6 +887,13 @@ > } else { > var current_class = getIDLClass( link.split(/-/)[0] ); > var join_field = link.split(/-/)[1]; > + var join_type = join_field; > + > + join_field = join_field.split(/>/)[0]; > + join_type = join_type.split(/>/)[1]; > + > + //console.log("join_field in fleshFromPath is: " + join_field); > + > var join_link = getIDLLink(current_class, join_field); > > if (join_link.getAttribute('reltype') != 'has_a') { > > Modified: trunk/Open-ILS/web/reports/xul/template_builder.xul > =================================================================== > --- trunk/Open-ILS/web/reports/xul/template_builder.xul 2009-03-13 12:27:40 > UTC (rev 12509) > +++ trunk/Open-ILS/web/reports/xul/template_builder.xul 2009-03-13 21:40:01 > UTC (rev 12510) > @@ -76,10 +76,12 @@ > > ondblclick="sourceTreeHandlerDblClick(event)" > > > <treecols> > + <treecol label="Nullable" > flex="0"/> > <treecol primary="true" > label="&reports.xul.template_builder.source_name.label;" flex="1"/> > </treecols> > <treechildren id="sources-treetop" > alternatingbackground="true" /> > </tree> > + <checkbox id="nullable-source-control" label="Enable > nullability seletion"/> > </vbox> > </hbox> > > > Modified: trunk/build/i18n/po/en-US/reports.js.pot > =================================================================== > --- trunk/build/i18n/po/en-US/reports.js.pot 2009-03-13 12:27:40 UTC (rev > 12509) > +++ trunk/build/i18n/po/en-US/reports.js.pot 2009-03-13 21:40:01 UTC (rev > 12510) > @@ -400,3 +400,19 @@ > #: reports.js:TEMPLATE_CONF_NOT_IN reports.js:TEMPLATE_CONF_NO_MATCH > msgid "Field does not match one of list (comma separated):" > msgstr "" > + > +#: reports.js:LINK_NULLABLE_LEFT > +msgid "Child" > +msgstr "" > + > +#: reports.js:LINK_NULLABLE_RIGHT > +msgid "Parent" > +msgstr "" > + > +#: reports.js:LINK_NULLABLE_BOTH > +msgid "Both" > +msgstr "" > + > +#: reports.js:LINK_NULLABLE_NONE > +msgid "None" > +msgstr "" > > _______________________________________________ > open-ils-commits mailing list > [email protected] > http://list.georgialibraries.org/mailman/listinfo/open-ils-commits > -- Dan Scott Laurentian University
