Ignore:
Timestamp:
Feb 1, 2011, 3:40:17 PM (11 years ago)
Author:
work@…
Message:
  • migrated js, css to gdt
  • moved termEditor to gdt
  • fixed double imports, wrong usage of javascript (on ready, onPage, etc) in importer
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/views/importer/common/_on_page.gsp

    r1430 r1467  
    11<%
    2 /**
    3  * wizard refresh flow action
    4  *
    5  * When a page (/ partial) is rendered, any DOM event handlers need to be
    6  * (re-)attached. The af:ajaxButton, af:ajaxSubmitJs and af:redirect tags
    7  * supports calling a JavaScript after the page has been rendered by passing
    8  * the 'afterSuccess' argument.
    9  *
    10  * Example:     af:redirect afterSuccess="onPage();"
    11  *              af:redirect afterSuccess="console.log('redirecting...');"
    12  *
    13  * Generally one would expect this code to add jQuery event handlers to
    14  * DOM objects in the rendered page (/ partial).
    15  *
    16  * @author Jeroen Wesbeek
    17  * @since 20101206
    18  *
    19  * Revision information:
    20  * $Rev$
    21  * $Author$
    22  * $Date$
    23  */
     2        /**
     3        * wizard refresh flow action
     4        *
     5        * When a page (/ partial) is rendered, any DOM event handlers need to be
     6        * (re-)attached. The af:ajaxButton, af:ajaxSubmitJs and af:redirect tags
     7        * supports calling a JavaScript after the page has been rendered by passing
     8        * the 'afterSuccess' argument.
     9        *
     10        * Example:     af:redirect afterSuccess="onPage();"
     11        *              af:redirect afterSuccess="console.log('redirecting...');"
     12        *
     13        * Generally one would expect this code to add jQuery event handlers to
     14        * DOM objects in the rendered page (/ partial).
     15        *
     16        * @author Jeroen Wesbeek
     17         * @since 20101206
     18        *
     19         * Revision information:
     20        * $Rev$
     21        * $Author$
     22        * $Date$
     23        */
    2424%>
    2525<script type="text/javascript">
     26        // Initially called when starting the import wizard
     27        function onPage() {
     28                // GENERAL
     29                attachHelpTooltips();
     30                handleWizardTable();
    2631
    27     // Initially called when starting the import wizard
    28     function onPage() {
     32                // initialize the ontology chooser
     33                new OntologyChooser().init();
    2934
    30     $(document).ready(function() {
     35                // handle and initialize table(s)
     36                new TableEditor().init({
     37                        tableIdentifier : 'div.tableEditor',
     38                        rowIdentifier   : 'div.row',
     39                        columnIdentifier: 'div.column',
     40                        headerIdentifier: 'div.header'
     41                });
    3142
    32     handleWizardTable();   
     43                // handle term selects
     44                new SelectAddMore().init({
     45                        rel      : 'term',
     46                        url      : baseUrl + '/termEditor',
     47                        vars    : 'ontologies',
     48                        label   : 'add more...',
     49                        style   : 'addMore',
     50                        onClose : function(scope) {
     51                                refreshFlow();
     52                        }
     53                });
    3354
    34     $('#simplewizardform').submit(function() {
    35         if ($('#file').val() == "") {
    36             alert ("Please choose your Excel file to import.");
    37             return false
    38         } else
    39         if ($('#entity').val() == "") {
    40             $('#datatemplate').addClass("validationfail");
    41             return false
    42         } else
    43             $('#simplewizardform').submit();
     55                // handle template selects
     56                new SelectAddMore().init({
     57                        rel      : 'template',
     58                        url      : baseUrl + '/templateEditor',
     59                        vars    : 'entity,ontologies',
     60                        label   : 'add / modify..',
     61                        style   : 'modify',
     62                        onClose : function(scope) {
     63                                refreshFlow();
     64                        }
     65                });
    4466
    45         return false;
    46     });
    47     });
    48  }
     67                $('#simplewizardform').submit(function() {
     68                        if ($('#file').val() == "") {
     69                                alert("Please choose your Excel file to import.");
     70                                return false
     71                        } else
     72                        if ($('#entity').val() == "") {
     73                                $('#datatemplate').addClass("validationfail");
     74                                return false
     75                        } else {
     76                                $('#simplewizardform').submit();
     77                        }
    4978
    50  
    51 /**
    52  * Update one select based on another select
    53  *
    54  * @author
    55  * @see     http://www.grails.org/Tag+-+remoteFunction
    56  * @param   string  select (form) name
    57  * @param   string  JSON data
    58  * @param   boolean keep the first option
    59  * @param   int     selected option
    60  * @param   string  if null, show this as option instead
    61  * @void
    62  */
    63 function updateSelect(name,data,keepFirstOption,selected,presentNullAsThis) {
    64     var rselect = $('#'+name).get(0)
    65     var items = data
     79                        return false;
     80                });
     81        }
    6682
    67     // If a study has been selected, don't show the "Choose study" field, otherwise do
    68     if ($('#'+'entity :selected').text() == 'Study')
    69       $('#studyfield').hide();
    70     else $('#studyfield').show();
    7183
    72     $('select[name=template_id]').attr('entity', $('#'+'entity').val());
     84        /**
     85         * Update one select based on another select
     86         *
     87         * @author
     88         * @see  http://www.grails.org/Tag+-+remoteFunction
     89         * @param   string  select (form) name
     90         * @param   string  JSON data
     91         * @param   boolean keep the first option
     92         * @param   int  selected option
     93         * @param   string  if null, show this as option instead
     94         * @void
     95         */
     96        function updateSelect(name, data, keepFirstOption, selected, presentNullAsThis) {
     97                var rselect = $('#' + name).get(0)
     98                var items = data
    7399
    74     if (items) {
     100                // If a study has been selected, don't show the "Choose study" field, otherwise do
     101                if ($('#' + 'entity :selected').text() == 'Study')
     102                        $('#studyfield').hide();
     103                else $('#studyfield').show();
    75104
    76         // remove old options
    77         var start = (keepFirstOption) ? 0 : -1;
    78         var i = rselect.length
     105                $('select[name=template_id]').attr('entity', $('#' + 'entity').val());
    79106
    80         while (i > start) {
    81             rselect.remove(i)
    82             i--
    83         }
     107                if (items) {
    84108
    85         // add new options
    86         $.each(items,function() {
    87             var i = rselect.options.length
     109                        // remove old options
     110                        var start = (keepFirstOption) ? 0 : -1;
     111                        var i = rselect.length
    88112
    89             rselect.options[i] = new Option(
    90                 (presentNullAsThis && this.name == null) ? presentNullAsThis : this.name,
    91                 this.id
    92             );
    93             if (this.id == selected) rselect.options[i].selected = true
    94         });
    95     }
     113                        while (i > start) {
     114                                rselect.remove(i)
     115                                i--
     116                        }
    96117
    97  // handle template selects
    98   new SelectAddMore().init({
    99        rel     : 'typetemplate',
    100        url     : baseUrl + '/templateEditor',
    101        vars    : 'entity', // can be a comma separated list of variable names to pass on
    102        label   : 'add / modify ...',
    103        style   : 'modify',
    104        onClose : function(scope) {
    105            location.reload();
    106        }
    107     });
    108 }
     118                        // add new options
     119                        $.each(items, function() {
     120                                var i = rselect.options.length
     121
     122                                rselect.options[i] = new Option(
     123                                        (presentNullAsThis && this.name == null) ? presentNullAsThis : this.name,
     124                                        this.id
     125                                        );
     126                                if (this.id == selected) rselect.options[i].selected = true
     127                        });
     128                }
     129
     130                // handle template selects
     131                new SelectAddMore().init({
     132                        rel      : 'typetemplate',
     133                        url      : baseUrl + '/templateEditor',
     134                        vars    : 'entity', // can be a comma separated list of variable names to pass on
     135                        label   : 'add / modify ...',
     136                        style   : 'modify',
     137                        onClose : function(scope) {
     138                                location.reload();
     139                        }
     140                });
     141        }
    109142
    110143</script>
Note: See TracChangeset for help on using the changeset viewer.