Changeset 5887 in spip-zone


Ignore:
Timestamp:
Oct 4, 2006, 8:25:32 PM (15 years ago)
Author:
renato@…
Message:

a button to cancel the widget. Cancel can be also done by pressing esc or clicking outside any widget

Location:
_plugins_/_dev_/widgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/widgets/action/widgets_html.php

    r5882 r5887  
    5656                        echo $n->code();
    5757                        echo $n->input($type);
    58                         echo '<input type="submit" value="ok" />'."\n".'</form>'."\n";
     58                        echo '<input type="submit" value="ok" />'."\n";
     59                        echo '<input class="cancel_widget" type="button" value="cancel" />'."\n".'</form>'."\n";
    5960                }
    6061        }
  • _plugins_/_dev_/widgets/widgets.js

    r5878 r5887  
    1 // TODO: passer la valeur a afficher pour pouvoir faire CANCEL
    2 // en cliquant sur un bouton, ou hors de la div, ou en tapant ESC
    31
    42url_widgets_html = 'spip.php?action=widgets_html&class=';
    53
    6 $.setupwidget = function(){
     4$.setupwidget = function(e){
    75    var me = this;
    8 
     6    var me_orig = me.innerHTML;
    97    // reglages de taille mini/maxi; pas tres beau
    108    var w,h;
     
    2018         $(me)
    2119         .unclick()
     20         .click(function(e){e.stopPropagation();}) //avoid cancelling on click
    2221         .html(c)
    2322         .find('form')
     
    2524             $(me)
    2625             .html(c.responseText)
     26             .unclick() //remove the trap to avoid cancel onclick
    2727             .click($.setupwidget); // recursif
    2828           })
     
    3737             .each(function(){this.focus();})
    3838           .end()
     39           .find(".cancel_widget")
     40                 .click(cancel_widget) 
     41           .end()
    3942         .end()
    4043         ;
     44         $("html").keypress(exit_on_esc).click(cancel_widget);
    4145       }
    4246     );
     47     
     48    function cancel_widget() {
     49      $(me).html(me_orig) //restore original html
     50      .unclick() //remove the trap to avoid cancel onclick
     51      .click($.setupwidget);
     52      return false;
     53    }
     54    function exit_on_esc(e) {
     55      if(e.keyCode==27) {
     56        $("html").unkeypress(exit_on_esc);
     57        return cancel_widget();
     58      }
     59    }
     60    e.stopPropagation(); //do not cancel widgets when creating another one
    4361  }
    4462
Note: See TracChangeset for help on using the changeset viewer.