Dotclear

Changeset 1594:2c7be9167efb


Ignore:
Timestamp:
08/26/13 21:28:25 (11 years ago)
Author:
Nicolas <nikrou77@…>
Branch:
default
Message:

Fix issue 1541 : make action without javascript
Refactoring : only one form

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • admin/categories.php

    r1576 r1594  
    1616 
    1717# Remove a categories 
    18 if (!empty($_POST['categories'])) { 
     18if (!empty($_POST['categories']) && !empty($_POST['delete'])) { 
    1919     try { 
    2020          # Check if category where to move posts exists 
     
    5656 
    5757# Update order 
    58 if (!empty($_POST['categories_order'])) 
    59 { 
    60         $categories = json_decode($_POST['categories_order']); 
    61  
    62      foreach ($categories as $category) { 
    63              if (!empty($category->item_id)) { 
    64                   $core->blog->updCategoryPosition($category->item_id, $category->left, $category->right); 
    65           } 
    66      } 
     58if (!empty($_POST['save_order'])) 
     59{ 
     60     if (!empty($_POST['categories_order'])) { // js is enable 
     61         $categories = json_decode($_POST['categories_order']); 
     62 
     63         foreach ($categories as $category) { 
     64           if (!empty($category->item_id)) { 
     65          $core->blog->updCategoryPosition($category->item_id, $category->left, $category->right); 
     66           } 
     67         } 
     68     } elseif (!empty($_POST['cat_rank'])) { 
     69          function countChildren($t, $id) { 
     70               $c = 0; 
     71               foreach ($t as $k => $v) { 
     72                    if (preg_match('`^'.$id.'\..*`', $k)) { 
     73                         $c++; 
     74                    } 
     75               } 
     76 
     77               return $c; 
     78          } 
     79 
     80          $i = 1; 
     81          $ranks = array_flip($_POST['cat_rank']); 
     82          uksort($ranks, 'version_compare'); 
     83          foreach ($ranks as $str => $id) { 
     84               $core->blog->updCategoryPosition($id, $i, ($i + 2 * countChildren($ranks, $str) + 1)); 
     85               $i = $i+2; 
     86          } 
     87     } 
     88 
    6789     http::redirect('categories.php?reord=1'); 
    6890} 
     
    143165 
    144166     $ref_level = $level = $rs->level-1; 
     167     $parts = array(); 
    145168     while ($rs->fetch()) 
    146169     { 
     
    149172          if ($rs->level > $level) { 
    150173               echo str_repeat('<ul><li '.$attr.'>',$rs->level - $level); 
     174               $parts[] = 1; 
    151175          } elseif ($rs->level < $level) { 
    152176               echo str_repeat('</li></ul>',-($rs->level - $level)); 
     177               $parts = array_slice($parts,0,(count($parts) - ($level - $rs->level))); 
     178               $parts[count($parts)-1]++; 
     179          } else { 
     180               $parts[count($parts)-1]++; 
    153181          } 
    154182 
     
    157185          } 
    158186 
     187          $cat_rank = implode('.',$parts); 
    159188          echo 
    160189          '<p>'. 
     
    164193          sprintf(($rs->nb_post > 1 ? __('%d entries') : __('%d entry') ),$rs->nb_post).'</a>'. 
    165194          ', '.__('total:').' '.$rs->nb_total.') '. 
    166           '<span class="cat-url">'.__('URL:').' <code>'.html::escapeHTML($rs->cat_url).'</code></span></p>'; 
     195          '<span class="cat-url">'.__('URL:').' <code>'.html::escapeHTML($rs->cat_url).'</code></span>'. 
     196          form::field('cat_rank['.$rs->cat_id.']',10,10,$cat_rank,'cat-rank'). 
     197          '</p>'; 
    167198 
    168199          $level = $rs->level; 
     
    183214     '</p>'. 
    184215     '<p class="right">'. 
    185      $core->formNonce(). 
    186      '<input type="submit" value="'.__('Delete selected categories').'"/>'. 
     216     '<input type="submit" name="delete" value="'.__('Delete selected categories').'"/>'. 
    187217     '</p>'. 
    188      '</div>'. 
    189      '</form>'; 
     218     '</div>'; 
    190219 
    191220     echo '<h3 class="clear">'.__('Categories order').'</h3>'; 
    192221 
    193222     if ($core->auth->check('categories',$core->blog->id) && $rs->count()>1) { 
     223          if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     224               echo '<p class="no-js-hidden">'.__('To rearrange categories order, move items by drag and drop, then click on “Save categories order” button.').'</p>'; 
     225          } 
    194226          echo 
    195           '<form action="categories.php" method="post">'; 
    196           if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
    197                   echo '<p class="no-js-hidden">'.__('To rearrange categories order, move items by drag and drop, then click on “Save categories order” button.').'</p>'; 
    198           } 
    199           echo 
    200           '<p class="js-hidden">'.__('To rearrange categories order, change position number and click on “Save categories order” button.').'</p>'. 
     227          '<p class="dragdrop-hidden">'.__('To rearrange categories order, change position number and click on “Save categories order” button.').'</p>'. 
    201228          '<p>'. 
    202229          '<input type="hidden" id="categories_order" name="categories_order" value=""/>'. 
    203           '<input type="submit" id="save-set-order" value="'.__('Save categories order').'" />'. 
    204           $core->formNonce().'</p>'. 
    205           '</form>'; 
    206      } 
    207  
    208      echo 
    209      '<form action="categories.php" method="post" id="reset-order">'. 
    210      '<p><input type="submit" value="'.__('Reorder all categories on the top level').'" />'. 
    211      form::hidden(array('reset'),1). 
     230          '<input type="submit" name="save_order" id="save-set-order" value="'.__('Save categories order').'" />'. 
     231          '</p>'; 
     232     } 
     233 
     234     echo 
     235     '<p><input type="submit" name="reset" value="'.__('Reorder all categories on the top level').'" />'. 
    212236     $core->formNonce().'</p>'. 
    213237     '</form>'; 
  • admin/js/_categories.js

    r1563 r1594  
    11$(function() { 
    22     if ($.fn['nestedSortable']!==undefined) { 
     3          $('.dragdrop-hidden, .cat-rank').hide(); 
    34          $('#categories ul li').css('cursor','move'); 
    45          $('#save-set-order').prop('disabled',true).addClass('disabled'); 
     
    1819     }); 
    1920 
    20      dotclear.categoriesActionsHelper(); 
     21     $('input[name="delete"]').click(function() { 
     22          var nb_ckecked = $('input[name="categories[]"]:checked').length; 
     23          if (nb_ckecked==0) { 
     24               return false; 
     25          } 
    2126 
     27          return window.confirm(dotclear.msg.confirm_delete_categories.replace('%s',nb_ckecked)); 
     28     }); 
    2229 
    23      $('form#reset-order').submit(function() { 
     30     $('input[name="reset"]').click(function() { 
    2431          return window.confirm(dotclear.msg.confirm_reorder_categories); 
    2532     }); 
  • admin/js/common.js

    r1576 r1594  
    299299 
    300300               return true; 
    301           }); 
    302      }, 
    303  
    304      categoriesActionsHelper: function() { 
    305           $('#form-categories').submit(function() { 
    306               var nb_ckecked = $('input[name="categories[]"]:checked').length; 
    307               if (nb_ckecked==0) { 
    308                return false; 
    309               } 
    310  
    311               return window.confirm(dotclear.msg.confirm_delete_categories.replace('%s',nb_ckecked)); 
    312301          }); 
    313302     }, 
  • admin/style/default.css

    r1589 r1594  
    689689        outline: 1px dashed #4183C4; 
    690690        min-height: 2.5em; 
     691} 
     692#categories input.cat-rank { 
     693  float: right; 
     694  margin-left: 30px; 
    691695} 
    692696#save-set-order.disabled { 
  • locales/fr/main.po

    r1590 r1594  
    22462246msgstr "Êtes-vous certain de vouloir supprimer la catégorie \"%s\" ?" 
    22472247 
     2248#, php-format 
     2249msgid "Are you sure you want to delete selected categories (%s)?" 
     2250msgstr "Êtes-vous certain de vouloir supprimer les categories sélectionnées (%s) ?" 
     2251 
    22482252msgid "Are you sure you want to reorder all categories?" 
    22492253msgstr "Êtes-vous certain de vouloir réinitialiser l'ordre des catégories ?" 
Note: See TracChangeset for help on using the changeset viewer.

Sites map