[OPEN-ILS-DEV] [open-ils-commits] r12510 - in trunk: Open-ILS/web/reports/xul build/i18n/po/en-US (miker)
Dan Scott
denials at gmail.com
Fri Mar 13 17:47:34 EDT 2009
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 <svn at svn.open-ils.org>:
> 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
> open-ils-commits at list.georgialibraries.org
> http://list.georgialibraries.org/mailman/listinfo/open-ils-commits
>
--
Dan Scott
Laurentian University
More information about the Open-ils-dev
mailing list