Changeset 89592 in spip-zone


Ignore:
Timestamp:
May 22, 2015, 6:31:41 PM (4 years ago)
Author:
kent1@…
Message:

Simplification et utilisation de la version 2.2.0 de zeroclipboard

Version 0.4.0

Location:
_plugins_/zeroclipboard/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/zeroclipboard/trunk/javascript/spip_zeroclipboard.js

    r72436 r89592  
    44
    55$(function(){
    6         function clipcomplete(client,text){
    7                 $(client.domElement)
    8                         .html(locale.zeroclipboard.link_title_copied)
    9                         .removeClass('copypaste_link')
    10                         .addClass('copypaste_copied')
    11                         .attr('title',locale.zeroclipboard.link_title_copied);
    12                 $('.copypaste_copied').not($(client.domElement)).each(function(){
    13                         $(this)
    14                                 .html(locale.zeroclipboard.link_title_copy)
    15                                 .toggleClass('copypaste_copied','copypaste_link')
    16                                 .attr('title',locale.zeroclipboard.link_title_copy);
     6        var copypaste_init = function(){
     7                $('.copypaste').each(function(){
     8                        if(!$(this).prev().is('.copypaste_container'))
     9                                $(this).before('<div class="copypaste_container" style="position:relative"><a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a></div>');
    1710                });
    18                 var width = $(client.domElement).width(),
    19                         height = $(client.domElement).height();
    20                 clip.setSize(width,height);
    21                 clip.setCurrent(client.domElement);
    22                 $(client.domElement).parent().next('.copypaste').focus().select();
    23         }
     11                $('.coloration_code .cadre_download').each(function(){
     12                        /**
     13                         * On ajoute la class si pas déjà fait
     14                         */
     15                        if(!$(this).is('.copypaste_container'))
     16                                $(this)
     17                                        .addClass('copypaste_container')
     18                                        .css({'position':"relative"})
     19                                        .append(' - <a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a>');
     20                });
     21                $('.coloration_code').each(function(){
     22                        if(!$(this).is('.code') && !$(this).find('.cadre_download')[0] && !$(this).next().is('.cadre_download') && $(this).attr('data-clipboard-text') != '')
     23                                $(this).append('<p class="download cadre_download copypaste_container" style="position:relative"><a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a></p>');
     24                });
     25               
     26                $('.cadre_download a.copypaste_link').each(function() {
     27                        var code = $(this).parent('.cadre_download').prev('.cadre'),me = this;
     28                        var content_data = code.attr('data-clipboard-text'),
     29                                width = $(this).width(),height = $(this).height();
     30                        if(!content_data && $(this).parent().find('a').eq(0)){
     31                                $.get($(this).parent().find('a').eq(0).attr('href'),function(data) {
     32                                        $(me).parent().append('<div style="display:none" class="data-clipboard-hidden">'+data+'</div>');
     33                                });
     34                        }else{
     35                                $(me).attr('data-clipboard-text',content_data);
     36                        }
     37                });
     38                ZeroClipboard.destroy();
     39                var clip = new ZeroClipboard( $('.copypaste_link') );
    2440
    25         var copypaste_init = function(){
    26                 clip = new ZeroClipboard();
    27                 if(ZeroClipboard.detectFlashSupport()){
    28                         clip.on('mouseover',function(client){});
    29                         clip.on('mousedown',function(client){});
    30                         clip.on('complete',clipcomplete);
    31                         $('.copypaste').each(function(){
    32                                 if(!$(this).prev().is('.copypaste_container'))
    33                                         $(this).before('<div class="copypaste_container" style="position:relative"><a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a></div>');
    34                                 $(this).prev('div').find('a').unbind('mouseover').mouseover( function() {
    35                                         if(!clip.htmlBridge)
    36                                                 clip.glue(this);
    37                                         else{
    38                                                 clip.setCurrent(this);
    39                                                 var width = $(this).width(),
    40                                                         height = $(this).height();
    41                                                 clip.setSize(width,height);
    42                                                 clip.domElement = $(this);
    43                                         }
    44                                         clip.setText($(this).parent().next('.copypaste').val());
    45                                         clip.receiveEvent('mouseover', null);
    46                                 });
    47                         });
    48                         /**
    49                          * Ajouter le lien dans le <p class="cadre_download"...
    50                          */
    51                         $('.coloration_code .cadre_download').each(function(){
    52                                 /**
    53                                  * On ajoute la class si pas déjà fait
    54                                  */
    55                                 if(!$(this).is('.copypaste_container'))
    56                                         $(this)
    57                                                 .addClass('copypaste_container')
    58                                                 .css({'position':"relative"})
    59                                                 .append(' - <a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a>');
    60                         });
    61                         $('.coloration_code').each(function(){
    62                                 if(!$(this).find('.cadre_download')[0] && !$(this).next().is('.cadre_download') && $(this).attr('data-clipboard-text') != '')
    63                                         $(this).append('<p class="download cadre_download copypaste_container" style="position:relative"><a title="'+locale.zeroclipboard.link_title_copy+'" class="copypaste_link">'+locale.zeroclipboard.link_title_copy+'</a></p>');
    64                         });
    65                        
    66                         $('.cadre_download a.copypaste_link').unbind('mouseover').mouseover(function() {
    67                                 var code = $(this).parent('.cadre_download').prev('.cadre'),me = this;
    68                                 var content_data = code.attr('data-clipboard-text'),
    69                                         width = $(this).width(),height = $(this).height();
    70                                 clip.domElement = me;
    71                                 if(!content_data){
    72                                         $.get($(this).parent().find('a').eq(0).attr('href'),function(data) {
    73                                                 content_data = data;
    74                                                 clip.setText(content_data);
    75                                                 clip.setCurrent(me);
    76                                                 clip.setSize(width,height);
    77                                                 clip.receiveEvent('mouseover', null);
    78                                                 $(me).parent('.cadre_download').prev('.cadre').attr('data-clipboard-text',content_data);
    79                                         });
    80                                 }else{
    81                                         clip.setText(content_data);
    82                                         clip.setCurrent(me);
    83                                         clip.setSize(width,height);
    84                                         clip.receiveEvent('mouseover', null);
     41                clip.on('ready', function(event) {
     42                        $('.copypaste_copied').html(locale.zeroclipboard.link_title_copy)
     43                                .attr('title',locale.zeroclipboard.link_title_copy)
     44                                .removeClass('copypaste_copied');
     45                        clip.on('copy', function(event) {
     46                                if(typeof($(event.target).attr('data-clipboard-text')) == "undefined"){
     47                                        event.clipboardData.setData('text/plain', $(event.target).parent().find('.data-clipboard-hidden').html());
    8548                                }
    8649                        });
    87                         var copies = $('.copypaste_container');
    88                         if(copies.size() && !clip.htmlBridge){
    89                                 clip.setText($('.copypaste').eq(0).val());
    90                                 clip.glue($('.copypaste_container')[0]);
    91                                 clip.receiveEvent('mouseover', null);
    92                         }
    93                 }
     50                        clip.on('aftercopy', function(event) {
     51                                if(event.data['text/plain'] != undefined){
     52                                        $(event.target)
     53                                                .html(locale.zeroclipboard.link_title_copied).attr('title',locale.zeroclipboard.link_title_copied).addClass('copypaste_copied');
     54                                        $('.copypaste_copied').not($(event.target)).each(function(i){
     55                                                $(this)
     56                                                        .html(locale.zeroclipboard.link_title_copy)
     57                                                        .attr('title',locale.zeroclipboard.link_title_copy)
     58                                                        .removeClass('copypaste_copied');
     59                                        });
     60                                }
     61                        });
     62                });
     63
     64                clip.on( 'error', function(event) {
     65                        ZeroClipboard.destroy();
     66                });
    9467        }
    9568        copypaste_init();
    96         onAjaxLoad(copypaste_init);
    9769});
    9870})(jQuery);
  • _plugins_/zeroclipboard/trunk/paquet.xml

    r72195 r89592  
    22        prefix="zeroclipboard"
    33        categorie="divers"
    4         version="0.3.0"
     4        version="0.4.0"
    55        etat="stable"
    6         compatibilite="[3.0.5;3.0.*]"
     6        compatibilite="[3.0.5;3.1.*]"
    77        logo="images/zeroclipboard_logo.png"
    88        documentation="http://www.mediaspip.net/technical-documentation/plugins-used-by-mediaspip/article/copier-coller-facile-zeroclipboard"
     
    1717        <pipeline nom="insert_head" inclure="zeroclipboard_pipelines.php" />
    1818        <pipeline nom="jquery_plugins" inclure="zeroclipboard_pipelines.php" />
    19         <lib nom="zeroclipboard-1.1.7" lien="https://github.com/jonrohan/ZeroClipboard/archive/v1.1.7.zip" />
     19        <lib nom="zeroclipboard-2.2.0" lien="https://github.com/zeroclipboard/zeroclipboard/archive/v2.2.0.zip" />
    2020</paquet>
  • _plugins_/zeroclipboard/trunk/zeroclipboard.js.html

    r72195 r89592  
    33#HTTP_HEADER{Vary: Accept-Encoding}
    44
    5 ZeroClipboard.setDefaults({moviePath:'#EVAL{_DIR_LIB_ZEROCLIPBOARD}ZeroClipboard.swf'});
     5ZeroClipboard.config({swfPath:'#EVAL{_DIR_LIB_ZEROCLIPBOARD}dist/ZeroClipboard.swf'});
    66
    77if(typeof(window.locale) == 'undefined') window.locale = {};
  • _plugins_/zeroclipboard/trunk/zeroclipboard_options.php

    r72195 r89592  
    1010 * On définit le chemin du répertoire _DIR_LIB_ZEROCLIPBOARD
    1111 */
    12 define('_DIR_LIB_ZEROCLIPBOARD',_DIR_LIB.'zeroclipboard-1.1.7/');
     12define('_DIR_LIB_ZEROCLIPBOARD',_DIR_LIB.'zeroclipboard-2.2.0/');
    1313?>
  • _plugins_/zeroclipboard/trunk/zeroclipboard_pipelines.php

    r72195 r89592  
    5353function zeroclipboard_jquery_plugins($plugins){
    5454        if(!test_espace_prive())
    55                 $plugins[] = _DIR_LIB_ZEROCLIPBOARD.'ZeroClipboard.js';
     55                $plugins[] = _DIR_LIB_ZEROCLIPBOARD.'dist/ZeroClipboard.js';
    5656        else
    57                 $plugins[] = str_replace(_DIR_RACINE,'',_DIR_LIB_ZEROCLIPBOARD).'ZeroClipboard.js';
     57                $plugins[] = str_replace(_DIR_RACINE,'',_DIR_LIB_ZEROCLIPBOARD).'dist/ZeroClipboard.js';
    5858        $plugins[] = 'javascript/spip_zeroclipboard.js';
    5959
Note: See TracChangeset for help on using the changeset viewer.