[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