Dotclear

Changeset 1133:0dfbbf5c4853 for themes


Ignore:
Timestamp:
03/26/13 15:37:52 (12 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Ductile theme now uses jQuery UI sortable for stickets ordering via drag'n'drop

File:
1 edited

Legend:

Unmodified
Added
Removed
  • themes/ductile/_prepend.php

    r683 r1133  
    2020     { 
    2121          global $core; 
    22            
     22          if ($core->blog->settings->system->theme != 'ductile') { return; } 
     23 
    2324          echo "\n".'<!-- Header directives for Ductile configuration -->'."\n"; 
    24           echo dcPage::jsToolMan(); 
    25  
    26           // Need some more Js 
    27           $core->auth->user_prefs->addWorkspace('accessibility');  
    28           $user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop; 
    29           if (!$user_dm_nodragdrop) { 
    30                echo <<<EOT 
     25          $core->auth->user_prefs->addWorkspace('accessibility'); 
     26          if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     27               echo 
     28                    dcPage::jsLoad('js/jquery/jquery-ui.custom.js'); 
     29                    echo <<<EOT 
    3130<script type="text/javascript"> 
    3231//<![CDATA[ 
    33  
    34 var dragsort = ToolMan.dragsort(); 
    3532$(function() { 
    36      dragsort.makeTableSortable($("#stickerslist").get(0), 
    37      dotclear.sortable.setHandle,dotclear.sortable.saveOrder); 
     33     $("#stickerslist").sortable({'cursor':'move'}); 
     34     $("#stickerslist tr").hover(function () { 
     35          $(this).css({'cursor':'move'}); 
     36     }, function () { 
     37          $(this).css({'cursor':'auto'}); 
     38     }); 
     39     $('#theme_config').submit(function() { 
     40          var order=[]; 
     41          $("#stickerslist tr td input.position").each(function() { 
     42               order.push(this.name.replace(/^order\[([^\]]+)\]$/,'$1')); 
     43          }); 
     44          $("input[name=ds_order]")[0].value = order.join(','); 
     45          return true; 
     46     }); 
     47     $("#stickerslist tr td input.position").hide(); 
     48     $("#stickerslist tr td.handle").addClass('handler'); 
    3849}); 
    39  
    40 dotclear.sortable = { 
    41      setHandle: function(item) { 
    42           var handle = $(item).find('td.handle').get(0); 
    43           while (handle.firstChild) { 
    44                handle.removeChild(handle.firstChild); 
    45           } 
    46  
    47           item.toolManDragGroup.setHandle(handle); 
    48           handle.className = handle.className+' handler'; 
    49      }, 
    50  
    51      saveOrder: function(item) { 
    52           var group = item.toolManDragGroup; 
    53           var order = document.getElementById('ds_order'); 
    54           group.register('dragend', function() { 
    55                order.value = ''; 
    56                items = item.parentNode.getElementsByTagName('tr'); 
    57  
    58                for (var i=0; i<items.length; i++) { 
    59                     order.value += items[i].id.substr(2)+','; 
    60                } 
    61           }); 
    62      } 
    63 }; 
    6450//]]> 
    6551</script> 
    6652EOT; 
    6753          } 
     54 
    6855     } 
    6956} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map