[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/kcfinder/js/browser/ -> toolbar.js (source)

   1  <?php
   2  
   3  /** This file is part of KCFinder project
   4    *
   5    *      @desc Toolbar functionality
   6    *   @package KCFinder
   7    *   @version 2.21
   8    *    @author Pavel Tzonkov <[email protected]>
   9    * @copyright 2010 KCFinder Project
  10    *   @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
  11    *   @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
  12    *      @link http://kcfinder.sunhater.com
  13    */?>
  14  
  15  browser.initToolbar = function() {
  16      $('#toolbar a').click(function() {
  17          browser.hideDialog();
  18      });
  19  
  20      if (!_.kuki.isSet('displaySettings'))
  21          _.kuki.set('displaySettings', 'off');
  22  
  23      if (_.kuki.get('displaySettings') == 'on') {
  24          $('#toolbar a[href="kcact:settings"]').addClass('selected');
  25          $('#settings').css('display', 'block');
  26          browser.resize();
  27      }
  28  
  29      $('#toolbar a[href="kcact:settings"]').click(function () {
  30          if ($('#settings').css('display') == 'none') {
  31              $(this).addClass('selected');
  32              _.kuki.set('displaySettings', 'on');
  33              $('#settings').css('display', 'block');
  34              browser.fixFilesHeight();
  35          } else {
  36              $(this).removeClass('selected');
  37              _.kuki.set('displaySettings', 'off');
  38              $('#settings').css('display', 'none');
  39              browser.fixFilesHeight();
  40          }
  41          return false;
  42      });
  43  
  44      $('#toolbar a[href="kcact:refresh"]').click(function() {
  45          browser.refresh();
  46          return false;
  47      });
  48  
  49      if (window.opener || this.opener.TinyMCE || $('iframe', window.parent.document).get(0))
  50          $('#toolbar a[href="kcact:maximize"]').click(function() {
  51              browser.maximize(this);
  52              return false;
  53          });
  54      else
  55          $('#toolbar a[href="kcact:maximize"]').css('display', 'none');
  56  
  57      $('#toolbar a[href="kcact:about"]').click(function() {
  58          var html = '<div class="box about">' +
  59              '<div class="title"><a href="http://kcfinder.sunhater.com" target="_blank">KCFinder</a> v2.21</div>' +
  60              '<div>Licenses: GPLv2 & LGPLv2</div>' +
  61              '<div>Copyright &copy;2010 Pavel Tzonkov</div>' +
  62              '<button>' + _.htmlValue(browser.label("OK")) + '</button>' +
  63          '</div>';
  64          $('#dialog').html(html);
  65          browser.showDialog();
  66          $('#dialog button').get(0).focus();
  67          var close = function() {
  68              browser.hideDialog();
  69              browser.unshadow();
  70          }
  71          $('#dialog button').click(close);
  72          $('#dialog button').keypress(function(e) {
  73              if (e.keyCode == 27) close();
  74          });
  75          $('#dialog').unbind();
  76          return false;
  77      });
  78  
  79      this.initUploadButton();
  80  };
  81  
  82  browser.initUploadButton = function() {
  83      var btn = $('#toolbar a[href="kcact:upload"]');
  84      if (this.readonly) {
  85          btn.css('display', 'none');
  86          return;
  87      }
  88      var top = btn.get(0).offsetTop;
  89      var width = btn.outerWidth();
  90      var height = btn.outerHeight();
  91      $('#toolbar').prepend('<div id="upload" style="top:' + top + 'px;width:' + width + 'px;height:' + height + 'px">' +
  92          '<form enctype="multipart/form-data" method="post" target="uploadResponse" action="' + browser.baseGetData('upload') + '">' +
  93              '<input type="file" name="upload" onchange="browser.uploadFile(this.form)" style="height:' + height + 'px" />' +
  94              '<input type="hidden" name="dir" value="" />' +
  95          '</form>' +
  96      '</div>');
  97      $('#upload input').css('margin-left', "-" + ($('#upload input').outerWidth() - width) + "px");
  98      $('#upload').mouseover(function() {
  99          $('#toolbar a[href="kcact:upload"]').addClass('hover');
 100      });
 101      $('#upload').mouseout(function() {
 102          $('#toolbar a[href="kcact:upload"]').removeClass('hover');
 103      });
 104  };
 105  
 106  browser.uploadFile = function(form) {
 107      if (!this.dirWritable) {
 108          alert(this.label("Cannot write to upload folder."));
 109          $('#upload').detach();
 110          browser.initUploadButton();
 111          return;
 112      }
 113      form.elements[1].value = browser.dir;
 114      $('<iframe id="uploadResponse" name="uploadResponse" src="javascript:;"></iframe>').prependTo(document.body);
 115      $('#loading').html(this.label("Uploading file..."));
 116      $('#loading').css('display', 'inline');
 117      form.submit();
 118      $('#uploadResponse').load(function() {
 119          var response = $(this).contents().find('body').html();
 120          $('#loading').css('display', 'none');
 121          if (response.length && response.substr(0, 1) != '/')
 122              alert(response);
 123          else
 124              browser.refresh(response.substr(1, response.length - 1));
 125          $('#upload').detach();
 126          setTimeout(function() {
 127              $('#uploadResponse').detach();
 128          }, 1);
 129          browser.initUploadButton();
 130      });
 131  };
 132  
 133  browser.maximize = function(button) {
 134      if (window.opener) {
 135          window.moveTo(0, 0);
 136          width = screen.availWidth;
 137          height = screen.availHeight;
 138          if ($.browser.opera)
 139              height -= 50;
 140          window.resizeTo(width, height);
 141  
 142      } else if (browser.opener.TinyMCE) {
 143          var win, ifr, id;
 144  
 145          $('iframe', window.parent.document).each(function() {
 146              if (/^mce_\d+_ifr$/.test($(this).attr('id'))) {
 147                  id = parseInt($(this).attr('id').replace(/^mce_(\d+)_ifr$/, "$1"));
 148                  win = $('#mce_' + id, window.parent.document);
 149                  ifr = $('#mce_' + id + '_ifr', window.parent.document);
 150              }
 151          });
 152  
 153          if ($(button).hasClass('selected')) {
 154              $(button).removeClass('selected');
 155              win.css('left', browser.maximizeMCE.left + 'px');
 156              win.css('top', browser.maximizeMCE.top + 'px');
 157              win.css('width', browser.maximizeMCE.width + 'px');
 158              win.css('height', browser.maximizeMCE.height + 'px');
 159              ifr.css('width', browser.maximizeMCE.width - browser.maximizeMCE.Hspace + 'px');
 160              ifr.css('height', browser.maximizeMCE.height - browser.maximizeMCE.Vspace + 'px');
 161  
 162          } else {
 163              $(button).addClass('selected')
 164              browser.maximizeMCE = {
 165                  width: _.nopx(win.css('width')),
 166                  height: _.nopx(win.css('height')),
 167                  left: win.position().left,
 168                  top: win.position().top,
 169                  Hspace: _.nopx(win.css('width')) - _.nopx(ifr.css('width')),
 170                  Vspace: _.nopx(win.css('height')) - _.nopx(ifr.css('height'))
 171              };
 172              var width = $(window.parent).width();
 173              var height = $(window.parent).height();
 174              win.css('left', $(window.parent).scrollLeft() + 'px');
 175              win.css('top', $(window.parent).scrollTop() + 'px');
 176              win.css('width', width + 'px');
 177              win.css('height', height + 'px');
 178              ifr.css('width', width - browser.maximizeMCE.Hspace + 'px');
 179              ifr.css('height', height - browser.maximizeMCE.Vspace + 'px');
 180          }
 181  
 182      } else if ($('iframe', window.parent.document).get(0)) {
 183          var ifrm = $('iframe[name="' + window.name + '"]', window.parent.document);
 184          var parent = ifrm.parent();
 185          var width, height;
 186          if ($(button).hasClass('selected')) {
 187              $(button).removeClass('selected');
 188              if (browser.maximizeThread) {
 189                  clearInterval(browser.maximizeThread);
 190                  browser.maximizeThread = null;
 191              }
 192              if (browser.maximizeW) browser.maximizeW = null;
 193              if (browser.maximizeH) browser.maximizeH = null;
 194              $.each($('*', window.parent.document).get(), function(i, e) {
 195                  e.style.display = browser.maximizeDisplay[i];
 196              });
 197              ifrm.css('display', browser.maximizeCSS.display);
 198              ifrm.css('position', browser.maximizeCSS.position);
 199              ifrm.css('left', browser.maximizeCSS.left);
 200              ifrm.css('top', browser.maximizeCSS.top);
 201              ifrm.css('width', browser.maximizeCSS.width);
 202              ifrm.css('height', browser.maximizeCSS.height);
 203              $(window.parent).scrollLeft(browser.maximizeLest);
 204              $(window.parent).scrollTop(browser.maximizeTop);
 205  
 206          } else {
 207              $(button).addClass('selected');
 208              browser.maximizeCSS = {
 209                  display: ifrm.css('display'),
 210                  position: ifrm.css('position'),
 211                  left: ifrm.css('left'),
 212                  top: ifrm.css('top'),
 213                  width: ifrm.outerWidth() + 'px',
 214                  height: ifrm.outerHeight() + 'px'
 215              };
 216              browser.maximizeTop = $(window.parent).scrollTop();
 217              browser.maximizeLeft = $(window.parent).scrollLeft();
 218              browser.maximizeDisplay = [];
 219              $.each($('*', window.parent.document).get(), function(i, e) {
 220                  browser.maximizeDisplay[i] = $(e).css('display');
 221                  $(e).css('display', 'none');
 222              });
 223  
 224              ifrm.css('display', 'block');
 225              ifrm.parents().css('display', 'block');
 226              var resize = function() {
 227                  width = $(window.parent).width();
 228                  height = $(window.parent).height();
 229                  if (!browser.maximizeW || (browser.maximizeW != width) ||
 230                      !browser.maximizeH || (browser.maximizeH != height)
 231                  ) {
 232                      browser.maximizeW = width;
 233                      browser.maximizeH = height;
 234                      ifrm.css('width', width + 'px');
 235                      ifrm.css('height', height + 'px');
 236                      browser.resize();
 237                  }
 238              }
 239              ifrm.css('position', 'absolute');
 240              if ((ifrm.offset().left == ifrm.position().left) &&
 241                  (ifrm.offset().top == ifrm.position().top)
 242              ) {
 243                  ifrm.css('left', '0');
 244                  ifrm.css('top', '0');
 245              } else {
 246                  ifrm.css('left', - ifrm.offset().left +'px');
 247                  ifrm.css('top', - ifrm.offset().top + 'px');
 248              }
 249              resize();
 250              browser.maximizeThread = setInterval(resize, 250);
 251          }
 252      }
 253  };
 254  
 255  browser.refresh = function(selected) {
 256      this.fadeFiles();
 257      $.ajax({
 258          type: 'POST',
 259          url: browser.baseGetData('chDir'),
 260          data: {dir:browser.dir},
 261          async: false,
 262          success: function(xml) {
 263              if (browser.errors(xml)) return;
 264              var files = xml.getElementsByTagName('file');
 265              var dirWritable =
 266                  xml.getElementsByTagName('files')[0].getAttribute('dirWritable');
 267              browser.dirWritable = (dirWritable == 'yes');
 268              browser.loadFiles(files);
 269              browser.orderFiles(null, selected);
 270              browser.statusDir();
 271          },
 272          error: function(request, error) {
 273              $('#files > div').css({opacity:'', filter:''});
 274              $('#files').html(browser.label("Unknown error."));
 275          }
 276      });
 277  };


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1