Changeset 2312 in products


Ignore:
Timestamp:
May 13, 2010 7:05:47 PM (14 years ago)
Author:
mylan
Message:

Update default referencebrowser javascript / datagrid field to popup work correctly for new added row

Location:
quintagroup.referencedatagridfield/branches/plone4/quintagroup/referencedatagridfield
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.referencedatagridfield/branches/plone4/quintagroup/referencedatagridfield/_field.py

    r2308 r2312  
    3333        'macro': "referencedatagridwidget", 
    3434        'helper_css': ('datagridwidget.css','referencedatagridwidget.css'), 
    35         'helper_js': ('referencebrowser.js', 'datagridwidget.js',), 
     35        'helper_js': ('referencebrowser.js', 'datagridwidget.js', 'referencedatagridwidget.js'), 
    3636        'force_close_on_insert': True, 
    3737        'popup_name': 'datagridref_popup', 
  • quintagroup.referencedatagridfield/branches/plone4/quintagroup/referencedatagridfield/skins/referencedatagridfield/referencebrowser.js

    r2311 r2312  
    1 jq(function() { 
    2  
    3   // the overlay itself 
    4   jq('.addreference').overlay({ 
    5        closeOnClick: false, 
    6        onBeforeLoad: function() { 
    7            ov = jq('div#content').data('overlay'); 
    8            // close overlay, if there is one already 
    9            // we only allow one referencebrowser per time 
    10            if (ov) {ov.close(); } 
    11            var wrap = this.getContent().find('.overlaycontent'); 
    12            var src = this.getTrigger().attr('src'); 
    13            var srcfilter = src + ' >*'; 
    14            wrap.data('srcfilter', srcfilter); 
    15            jq('div#content').data('overlay', this); 
    16            resetHistory(); 
    17            wrap.load(srcfilter); 
    18            }, 
    19        onLoad: function() { 
    20            widget_id = this.getTrigger().attr('rel').substring(6); 
    21            disablecurrentrelations(widget_id); 
    22        }}); 
    23  
    24   // the breadcrumb-links and the links of the 'tree'-navigation 
    25   jq('[id^=atrb_] a.browsesite').live('click', function(event) { 
    26       var target = jq(this); 
    27       var src = target.attr('href'); 
    28       var wrap = target.parents('.overlaycontent'); 
    29       var srcfilter = src + ' >*'; 
    30       pushToHistory(wrap.data('srcfilter')); 
    31       wrap.data('srcfilter', srcfilter); 
    32       // the history we are constructing here is destinct from the 
    33       // srcfilter-history. here we construct a selection-widget, which 
    34       // is available, if the history_length-parameter is set on the widget 
    35       // the srcfilter-history is used for storing the URLs to make the 
    36       // 'Back'-link work. 
    37       var newoption = '<option value="' + src + '">' + target.attr('rel') + '</option>'; 
    38       refreshOverlay(wrap, srcfilter, newoption); 
    39       return false; 
    40       }); 
    41  
    42   // the links for inserting referencens 
    43   jq('[id^=atrb_] input.insertreference').live('click', function(event) { 
    44       var target = jq(this); 
    45       var wrap = target.parents('.overlaycontent'); 
    46       var fieldname = wrap.find('input[name=fieldName]').attr('value'); 
    47       var multi = wrap.find('input[name=multiValued]').attr('value'); 
    48       var close_window = wrap.find('input[name=close_window]').attr('value'); 
    49       var title = target.parents('tr').find('img').attr('alt'); 
    50       var uid = target.attr('rel'); 
    51       refbrowser_setReference(fieldname, uid, title, parseInt(multi)); 
    52       if (close_window === '1') { 
    53           overlay = jq('div#content').data('overlay'); 
    54           overlay.close(); 
    55       } else { 
    56           showMessage(title); 
    57       }; 
    58       jq(this).attr('disabled', 'disabled'); 
    59       }); 
    60  
    61  
    62   // the history menu 
    63   jq('[id^=atrb_] form#history select[name=path]').live('change', function(event) { 
    64       var target = jq(this); 
    65       var wrap = target.parents('.overlaycontent'); 
    66       src = jq('[id^=atrb_] form#history select[name=path] :selected').attr('value'); 
    67       var srcfilter = src + ' >*'; 
    68       refreshOverlay(wrap, srcfilter, ''); 
    69       return false; 
    70       }); 
    71  
    72   // the search form 
    73   jq('[id^=atrb_] form#search input[name=submit]').live('click', function(event) { 
    74       var target = jq(this); 
    75       var src = target.parents('form').attr('action'); 
    76       var wrap = target.parents('.overlaycontent'); 
    77       var fieldname = wrap.find('input[name=fieldName]').attr('value'); 
    78       var fieldrealname = wrap.find('input[name=fieldRealName]').attr('value'); 
    79       var at_url = wrap.find('input[name=at_url]').attr('value'); 
    80       var searchvalue = wrap.find('input[name=searchValue]').attr('value'); 
    81       var multi = wrap.find('input[name=multiValued]').attr('value'); 
    82       var close_window = wrap.find('input[name=close_window]').attr('value'); 
    83       qs = 'searchValue=' + searchvalue + '&fieldRealName=' + fieldrealname + 
    84         '&fieldName=' + fieldname + '&multiValued=' + multi + 
    85         '&close_window' + close_window + '&at_url=' + at_url; 
    86       var srcfilter = src + '?' + qs + ' >*'; 
    87       pushToHistory(wrap.data('srcfilter')); 
    88       wrap.data('srcfilter', srcfilter); 
    89       refreshOverlay(wrap, srcfilter, ''); 
    90       return false; 
    91       }); 
    92  
     1prepareRefPopup = function(context) { 
     2    jq(function() { 
     3 
     4      // the overlay itself 
     5      jq('.addreference', context).overlay({ 
     6           closeOnClick: false, 
     7           onBeforeLoad: function() { 
     8               ov = jq('div#content', this).data('overlay'); 
     9               // close overlay, if there is one already 
     10               // we only allow one referencebrowser per time 
     11               if (ov) {ov.close(); } 
     12               var wrap = this.getContent().find('.overlaycontent'); 
     13               var src = this.getTrigger().attr('src'); 
     14               var srcfilter = src + ' >*'; 
     15               wrap.data('srcfilter', srcfilter); 
     16               jq('div#content', this).data('overlay', this); 
     17               resetHistory(); 
     18               wrap.load(srcfilter); 
     19               }, 
     20           onLoad: function() { 
     21               widget_id = this.getTrigger().attr('rel').substring(6); 
     22               disablecurrentrelations(widget_id); 
     23           }}); 
     24 
     25      // the breadcrumb-links and the links of the 'tree'-navigation 
     26      jq('[id^=atrb_] a.browsesite', context).live('click', function(event) { 
     27          var target = jq(this); 
     28          var src = target.attr('href'); 
     29          var wrap = target.parents('.overlaycontent'); 
     30          var srcfilter = src + ' >*'; 
     31          pushToHistory(wrap.data('srcfilter')); 
     32          wrap.data('srcfilter', srcfilter); 
     33          // the history we are constructing here is destinct from the 
     34          // srcfilter-history. here we construct a selection-widget, which 
     35          // is available, if the history_length-parameter is set on the widget 
     36          // the srcfilter-history is used for storing the URLs to make the 
     37          // 'Back'-link work. 
     38          var newoption = '<option value="' + src + '">' + target.attr('rel') + '</option>'; 
     39          refreshOverlay(wrap, srcfilter, newoption); 
     40          return false; 
     41          }); 
     42 
     43      // the links for inserting referencens 
     44      jq('[id^=atrb_] input.insertreference', context).live('click', function(event) { 
     45          var target = jq(this); 
     46          var wrap = target.parents('.overlaycontent'); 
     47          var fieldname = wrap.find('input[name=fieldName]').attr('value'); 
     48          var multi = wrap.find('input[name=multiValued]').attr('value'); 
     49          var close_window = wrap.find('input[name=close_window]').attr('value'); 
     50          var title = target.parents('tr').find('img').attr('alt'); 
     51          var uid = target.attr('rel'); 
     52          refbrowser_setReference(fieldname, uid, title, parseInt(multi)); 
     53          if (close_window === '1') { 
     54              overlay = jq('div#content', this).data('overlay'); 
     55              overlay.close(); 
     56          } else { 
     57              showMessage(title); 
     58          }; 
     59          jq(this).attr('disabled', 'disabled'); 
     60          }); 
     61 
     62 
     63      // the history menu 
     64      jq('[id^=atrb_] form#history select[name=path]', context).live('change', function(event) { 
     65          var target = jq(this); 
     66          var wrap = target.parents('.overlaycontent'); 
     67          src = jq('[id^=atrb_] form#history select[name=path] :selected', this).attr('value'); 
     68          var srcfilter = src + ' >*'; 
     69          refreshOverlay(wrap, srcfilter, ''); 
     70          return false; 
     71          }); 
     72 
     73      // the search form 
     74      jq('[id^=atrb_] form#search input[name=submit]', context).live('click', function(event) { 
     75          var target = jq(this); 
     76          var src = target.parents('form').attr('action'); 
     77          var wrap = target.parents('.overlaycontent'); 
     78          var fieldname = wrap.find('input[name=fieldName]').attr('value'); 
     79          var fieldrealname = wrap.find('input[name=fieldRealName]').attr('value'); 
     80          var at_url = wrap.find('input[name=at_url]').attr('value'); 
     81          var searchvalue = wrap.find('input[name=searchValue]').attr('value'); 
     82          var multi = wrap.find('input[name=multiValued]').attr('value'); 
     83          var close_window = wrap.find('input[name=close_window]').attr('value'); 
     84          qs = 'searchValue=' + searchvalue + '&fieldRealName=' + fieldrealname + 
     85            '&fieldName=' + fieldname + '&multiValued=' + multi + 
     86            '&close_window' + close_window + '&at_url=' + at_url; 
     87          var srcfilter = src + '?' + qs + ' >*'; 
     88          pushToHistory(wrap.data('srcfilter')); 
     89          wrap.data('srcfilter', srcfilter); 
     90          refreshOverlay(wrap, srcfilter, ''); 
     91          return false; 
     92          }); 
     93 
     94    }); 
     95}; 
     96 
     97jq(document).ready(function(){ 
     98    prepareRefPopup(this); 
    9399}); 
     100jq.fn.prepRefPopup = function() { 
     101    prepareRefPopup(this); 
     102}; 
    94103 
    95104function disablecurrentrelations (widget_id) { 
  • quintagroup.referencedatagridfield/branches/plone4/quintagroup/referencedatagridfield/skins/referencedatagridfield/referencedatagridwidget.pt

    r2296 r2312  
    7777            <a class="referencedatagridwidget-add-button" id="datagridwidget-add-button" 
    7878                           tal:condition="field/allow_insert" 
    79                    tal:attributes='onclick python: "dataGridFieldFunctions.addRow(\"" + field.getName() + "\")"'>Add new</a> 
     79                   tal:attributes='onclick python: "dataGridFieldFunctions.addReferenceDataGridRow(\"" + field.getName() + "\")"'>Add new</a> 
    8080 
    8181                        <tal:comment replace="nothing"> 
Note: See TracChangeset for help on using the changeset viewer.