[ Index ]

WordPress Cross Reference

title

Body

[close]

/wp-admin/js/ -> gallery.js (source)

   1  /* global unescape, getUserSetting, setUserSetting */
   2  
   3  jQuery(document).ready(function($) {
   4      var gallerySortable, gallerySortableInit, sortIt, clearAll, w, desc = false;
   5  
   6      gallerySortableInit = function() {
   7          gallerySortable = $('#media-items').sortable( {
   8              items: 'div.media-item',
   9              placeholder: 'sorthelper',
  10              axis: 'y',
  11              distance: 2,
  12              handle: 'div.filename',
  13              stop: function() {
  14                  // When an update has occurred, adjust the order for each item
  15                  var all = $('#media-items').sortable('toArray'), len = all.length;
  16                  $.each(all, function(i, id) {
  17                      var order = desc ? (len - i) : (1 + i);
  18                      $('#' + id + ' .menu_order input').val(order);
  19                  });
  20              }
  21          } );
  22      };
  23  
  24      sortIt = function() {
  25          var all = $('.menu_order_input'), len = all.length;
  26          all.each(function(i){
  27              var order = desc ? (len - i) : (1 + i);
  28              $(this).val(order);
  29          });
  30      };
  31  
  32      clearAll = function(c) {
  33          c = c || 0;
  34          $('.menu_order_input').each( function() {
  35              if ( this.value === '0' || c ) {
  36                  this.value = '';
  37              }
  38          });
  39      };
  40  
  41      $('#asc').click( function() {
  42          desc = false;
  43          sortIt();
  44          return false;
  45      });
  46      $('#desc').click( function() {
  47          desc = true;
  48          sortIt();
  49          return false;
  50      });
  51      $('#clear').click( function() {
  52          clearAll(1);
  53          return false;
  54      });
  55      $('#showall').click( function() {
  56          $('#sort-buttons span a').toggle();
  57          $('a.describe-toggle-on').hide();
  58          $('a.describe-toggle-off, table.slidetoggle').show();
  59          $('img.pinkynail').toggle(false);
  60          return false;
  61      });
  62      $('#hideall').click( function() {
  63          $('#sort-buttons span a').toggle();
  64          $('a.describe-toggle-on').show();
  65          $('a.describe-toggle-off, table.slidetoggle').hide();
  66          $('img.pinkynail').toggle(true);
  67          return false;
  68      });
  69  
  70      // initialize sortable
  71      gallerySortableInit();
  72      clearAll();
  73  
  74      if ( $('#media-items>*').length > 1 ) {
  75          w = wpgallery.getWin();
  76  
  77          $('#save-all, #gallery-settings').show();
  78          if ( typeof w.tinyMCE !== 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
  79              wpgallery.mcemode = true;
  80              wpgallery.init();
  81          } else {
  82              $('#insert-gallery').show();
  83          }
  84      }
  85  });
  86  
  87  jQuery(window).unload( function () { tinymce = tinyMCE = wpgallery = null; } ); // Cleanup
  88  
  89  /* gallery settings */
  90  var tinymce = null, tinyMCE, wpgallery;
  91  
  92  wpgallery = {
  93      mcemode : false,
  94      editor : {},
  95      dom : {},
  96      is_update : false,
  97      el : {},
  98  
  99      I : function(e) {
 100          return document.getElementById(e);
 101      },
 102  
 103      init: function() {
 104          var t = this, li, q, i, it, w = t.getWin();
 105  
 106          if ( ! t.mcemode ) {
 107              return;
 108          }
 109  
 110          li = ('' + document.location.search).replace(/^\?/, '').split('&');
 111          q = {};
 112          for (i=0; i<li.length; i++) {
 113              it = li[i].split('=');
 114              q[unescape(it[0])] = unescape(it[1]);
 115          }
 116  
 117          if ( q.mce_rdomain ) {
 118              document.domain = q.mce_rdomain;
 119          }
 120  
 121          // Find window & API
 122          tinymce = w.tinymce;
 123          tinyMCE = w.tinyMCE;
 124          t.editor = tinymce.EditorManager.activeEditor;
 125  
 126          t.setup();
 127      },
 128  
 129      getWin : function() {
 130          return window.dialogArguments || opener || parent || top;
 131      },
 132  
 133      setup : function() {
 134          var t = this, a, ed = t.editor, g, columns, link, order, orderby;
 135          if ( ! t.mcemode ) {
 136              return;
 137          }
 138  
 139          t.el = ed.selection.getNode();
 140  
 141          if ( t.el.nodeName !== 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
 142              if ( ( g = ed.dom.select('img.wpGallery') ) && g[0] ) {
 143                  t.el = g[0];
 144              } else {
 145                  if ( getUserSetting('galfile') === '1' ) {
 146                      t.I('linkto-file').checked = 'checked';
 147                  }
 148                  if ( getUserSetting('galdesc') === '1' ) {
 149                      t.I('order-desc').checked = 'checked';
 150                  }
 151                  if ( getUserSetting('galcols') ) {
 152                      t.I('columns').value = getUserSetting('galcols');
 153                  }
 154                  if ( getUserSetting('galord') ) {
 155                      t.I('orderby').value = getUserSetting('galord');
 156                  }
 157                  jQuery('#insert-gallery').show();
 158                  return;
 159              }
 160          }
 161  
 162          a = ed.dom.getAttrib(t.el, 'title');
 163          a = ed.dom.decode(a);
 164  
 165          if ( a ) {
 166              jQuery('#update-gallery').show();
 167              t.is_update = true;
 168  
 169              columns = a.match(/columns=['"]([0-9]+)['"]/);
 170              link = a.match(/link=['"]([^'"]+)['"]/i);
 171              order = a.match(/order=['"]([^'"]+)['"]/i);
 172              orderby = a.match(/orderby=['"]([^'"]+)['"]/i);
 173  
 174              if ( link && link[1] ) {
 175                  t.I('linkto-file').checked = 'checked';
 176              }
 177              if ( order && order[1] ) {
 178                  t.I('order-desc').checked = 'checked';
 179              }
 180              if ( columns && columns[1] ) {
 181                  t.I('columns').value = '' + columns[1];
 182              }
 183              if ( orderby && orderby[1] ) {
 184                  t.I('orderby').value = orderby[1];
 185              }
 186          } else {
 187              jQuery('#insert-gallery').show();
 188          }
 189      },
 190  
 191      update : function() {
 192          var t = this, ed = t.editor, all = '', s;
 193  
 194          if ( ! t.mcemode || ! t.is_update ) {
 195              s = '[gallery' + t.getSettings() + ']';
 196              t.getWin().send_to_editor(s);
 197              return;
 198          }
 199  
 200          if ( t.el.nodeName !== 'IMG' ) {
 201              return;
 202          }
 203  
 204          all = ed.dom.decode( ed.dom.getAttrib( t.el, 'title' ) );
 205          all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
 206          all += t.getSettings();
 207  
 208          ed.dom.setAttrib(t.el, 'title', all);
 209          t.getWin().tb_remove();
 210      },
 211  
 212      getSettings : function() {
 213          var I = this.I, s = '';
 214  
 215          if ( I('linkto-file').checked ) {
 216              s += ' link="file"';
 217              setUserSetting('galfile', '1');
 218          }
 219  
 220          if ( I('order-desc').checked ) {
 221              s += ' order="DESC"';
 222              setUserSetting('galdesc', '1');
 223          }
 224  
 225          if ( I('columns').value !== 3 ) {
 226              s += ' columns="' + I('columns').value + '"';
 227              setUserSetting('galcols', I('columns').value);
 228          }
 229  
 230          if ( I('orderby').value !== 'menu_order' ) {
 231              s += ' orderby="' + I('orderby').value + '"';
 232              setUserSetting('galord', I('orderby').value);
 233          }
 234  
 235          return s;
 236      }
 237  };


Generated: Tue Mar 25 01:41:18 2014 WordPress honlapkészítés: online1.hu