main.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <title><?=__('File Manager')?></title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <link rel="shortcut icon" href="/images/filemanager.ico?" type="image/x-icon">
  7. <link rel="icon" href="/images/filemanager.ico?" type="image/x-icon">
  8. <link rel="stylesheet" href="/css/file_manager.css" type="text/css" />
  9. <link rel="stylesheet" type="text/css" href="/css/uploadify.css" />
  10. <link href="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.2/fotorama.css" rel="stylesheet">
  11. <style type="text/css" media="print, screen and (min-width: 481px)"></style>
  12. <!-- link rel="shortcut icon" href="/2008/site/images/favicon.ico" type="image/x-icon" / -->
  13. <link rel="stylesheet" href="/css/jquery.arcticmodal.css">
  14. <link rel="stylesheet" href="/css/jquery.fileupload.css">
  15. </head>
  16. <body>
  17. <div id="main">
  18. <div class="window active">
  19. <a href="/" class="l-logo"></a>
  20. <div class="pwd pwd-tab-A"></div>
  21. <div class="menu menu-left menu-A">
  22. <?php $pre_tab = 'A';include($_SERVER['DOCUMENT_ROOT'].'/templates/file_manager/tab_menu.php'); ?>
  23. </div>
  24. <ul class="listing listing-left"></ul>
  25. </div>
  26. <div class="window">
  27. <div class="pwd pwd-tab-B"></div>
  28. <div class="menu menu-right menu-B">
  29. <?php $pre_tab = 'B';include($_SERVER['DOCUMENT_ROOT'].'/templates/file_manager/tab_menu.php'); ?>
  30. </div>
  31. <ul class="listing listing-right"></ul>
  32. </div>
  33. </div>
  34. <div class="warning-box inform hidden">
  35. <div class="close ripple"></div>
  36. <div class="message">Please Read the reading text at the reading write!</div>
  37. <div class="message-small">writing the reading text at the reading write writing the reading text at the reading write!</div>
  38. </div>
  39. <div class="warning-box reload hidden">
  40. <div class="message-small">Hit F5 to reload the page</div>
  41. </div>
  42. <div class="warning-box hidden">
  43. <div class="close ripple"></div>
  44. <div class="message">Please Read the reading text at the reading write!</div>
  45. <div class="message-small">writing the reading text at the reading write writing the reading text at the reading write!</div>
  46. </div>
  47. <ul class="context-menu tab-a sort-order hidden">
  48. <li entity="type"><span class="type active"><?=__('type')?></span><span class="up">&nbsp;</span></li>
  49. <li entity="size"><span class="size"><?=__('size')?></span><span class="up">&nbsp;</span></li>
  50. <li entity="date"><span class="date"><?=__('date')?></span><span class="up">&nbsp;</span></li>
  51. <li entity="name" class="last"><span class="name"><?=__('name')?></span><span class="up">&nbsp;</span></li>
  52. </ul>
  53. <ul class="context-menu tab-b sort-order hidden">
  54. <li entity="type"><span class="type active"><?=__('type')?></span><span class="up">&nbsp;</span></li>
  55. <li entity="size"><span class="size"><?=__('size')?></span><span class="up">&nbsp;</span></li>
  56. <li entity="date"><span class="date"><?=__('date')?></span><span class="up">&nbsp;</span></li>
  57. <li entity="name" class="last"><span class="name"><?=__('name')?></span><span class="up">&nbsp;</span></li>
  58. </ul>
  59. <div class="fotorama" data-auto="false"></div>
  60. <div class="progress-container hidden">
  61. <div class="progress-elm"><span class="title"><?=__('Initializing')?></span><span class="progress" style="backround-position: -96px; backround-position:-10px"></span><span class="close hidden"></span></div>
  62. </div>
  63. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  64. <script src="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.2/fotorama.js"></script>
  65. <script type="text/javascript" src="/js/jquery-ui.min.js"></script>
  66. <script src="/js/jquery.finder.js"></script>
  67. <script type="text/javascript" src="/js/hotkeys.js"></script>
  68. <script type="text/javascript" src="/js/app.js"></script>
  69. <script type="text/javascript"><?php echo include($_SERVER['DOCUMENT_ROOT'].'/js/i18n.js.php'); ?></script>
  70. <script type="text/javascript" src="/js/templates.js"></script>
  71. <script type="text/javascript" src="/js/floating_layer.js"></script>
  72. <script src="/js/ripple.js"></script>
  73. <script src="/js/jquery.iframe-transport.js"></script>
  74. <script src="/js/jquery.fileupload.js"></script>
  75. <script src="/js/jquery.arcticmodal.js"></script>
  76. <?php if (!empty($GLOBAL_JS)): ?>
  77. <?php echo $GLOBAL_JS; ?>
  78. <?php endif; ?>
  79. <script type="text/javascript" src="/js/file_manager.js"></script>
  80. <script type="text/javascript">
  81. $(function () {
  82. 'use strict';
  83. // Change this to the location of your server-side upload handler:
  84. var show_msg = false;
  85. var acc = $('<div>');
  86. $(['A', 'B']).each(function(k, letter) {
  87. var url = '/upload/';
  88. $('#file_upload_' + letter).fileupload({
  89. singleFileUploads: false,
  90. add: function (e, data) {
  91. FM.setTabActive(FM['TAB_'+letter]);
  92. var tab = FM.getTabLetter(FM.CURRENT_TAB);
  93. var file_relocation = FM['TAB_'+tab+'_CURRENT_PATH'];
  94. $('#file_upload_' + letter).fileupload("option", "url", url + '?dir=' + file_relocation);
  95. acc = $('<div>');
  96. show_msg = false;
  97. data.submit();
  98. $('.file-upload-button-' + tab).addClass('progress');
  99. },
  100. url: url,
  101. dataType: 'json',
  102. done: function (e, data) {
  103. var msg = '';
  104. $.each(data.result.files, function (index, file) {
  105. if ('undefined' != typeof file.error) {
  106. msg += '<p class="msg-item">' + file.name + ': ' + file.error + '</p>';
  107. }
  108. });
  109. if (msg != '') {
  110. var tpl = Tpl.get('popup_alert', 'FM');
  111. tpl.set(':TEXT', msg);
  112. FM.popupOpen(tpl.finalize());
  113. }
  114. //console.log(e);
  115. //console.log(data);
  116. },
  117. fail: function(e, data) {
  118. var msg = '';
  119. $.each(data.result.files, function (index, file) {
  120. if ('undefined' != typeof file.error) {
  121. msg += '<p class="msg-item">' + file.name + ': ' + file.error + '</p>';
  122. }
  123. });
  124. if (msg != '') {
  125. var tpl = Tpl.get('popup_alert', 'FM');
  126. tpl.set(':TEXT', msg);
  127. FM.popupOpen(tpl.finalize());
  128. }
  129. //console.log(e);
  130. //console.log(data);
  131. },
  132. always: function(e, data) {
  133. /*if (show_msg) {
  134. clearTimeout(window.ht_fd);
  135. var info = $('.warning-box.inform').clone(true);
  136. $(info).attr('id', 'file-upload-msg');
  137. $(info).find('.message').text('Bla bla bla');
  138. $(info).find('.message-small').html(acc);
  139. $(info).find('.close').bind('click', function() {
  140. $('#file-upload-msg').remove();
  141. });
  142. $('body').append($(info).removeClass('hidden'));
  143. window.ht_fd = setTimeout(function() {
  144. $('#file-upload-msg').fadeOut();
  145. }, 3000);
  146. }*/
  147. var tab = FM.getTabLetter(FM.CURRENT_TAB);
  148. var box = FM['TAB_' + tab];
  149. FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box);
  150. //$('.file-upload-button-' + tab).removeClass('progress');
  151. $('.file-upload-button-' + tab).addClass('done');
  152. setTimeout(function() {
  153. $('.file-upload-button-' + tab).removeClass('progress');
  154. $('.file-upload-button-' + tab).removeClass('done');
  155. }, 2000);
  156. $('.file-upload-button-' + tab).css('background-position', '-96px 0');
  157. },
  158. progressall: function (e, data) {
  159. var progress = parseInt(data.loaded / data.total * 100, 10);
  160. var tab = FM.getTabLetter(FM.CURRENT_TAB);
  161. $('.file-upload-button-' + tab).css('background-position', '-' + (100 - progress) + 'px 0');
  162. }
  163. })
  164. .prop('disabled', !$.support.fileInput)
  165. .parent().addClass($.support.fileInput ? undefined : 'disabled');
  166. });
  167. $.widget("shift.selectable", $.ui.selectable, {
  168. options: {}, // required
  169. previousIndex: -1, // additional attribute to store previous selection index
  170. currentIndex: -1, // additional attribute to store current selection index
  171. _create: function() { // required
  172. var self = this;
  173. $.ui.selectable.prototype._create.call(this); // default implementation
  174. // here is our addition, we are catching "selecting" event with shift key
  175. $(this.element).on('selectableselecting', function(event, ui){
  176. self.currentIndex = $(ui.selecting.tagName, event.target).index(ui.selecting);
  177. if(event.shiftKey && self.previousIndex > -1) {
  178. $(ui.selecting.tagName, event.target).slice(Math.min(self.previousIndex, self.currentIndex), 1 + Math.max(self.previousIndex, self.currentIndex)).addClass('ui-selected');
  179. self.previousIndex = -1;
  180. } else {
  181. self.previousIndex = self.currentIndex;
  182. }
  183. });
  184. },
  185. destroy: function() { // required, default implementation
  186. $.ui.selectable.prototype.destroy.call(this);
  187. },
  188. _setOption: function() { // required, default implementation
  189. $.ui.selectable.prototype._setOption.apply(this, arguments);
  190. }
  191. });
  192. var checkIfArchive = function(item) {console.log(item);
  193. var item = $(item).hasClass('dir') ? item : $(item).parents('.dir');
  194. var tab = FM.getTabLetter(FM.CURRENT_TAB);
  195. var src = $(item).find('.source').val();
  196. src = $.parseJSON(src);
  197. var tab = FM.getTabLetter(FM.CURRENT_TAB);
  198. if (FM.itemIsArchieve(src)) {
  199. $('.menu-'+tab+' .extract-btn').show();
  200. }
  201. else {
  202. $('.menu-'+tab+' .extract-btn').hide();
  203. }
  204. }
  205. $(".listing-left").selectable({
  206. selected: function (event, ui) {
  207. //console.log(ui);
  208. //console.log($(".listing-left .selected"));
  209. FM.setTabActive(FM.TAB_A, 'skip_highlights');
  210. $(".listing-left .active").removeClass('active');
  211. $(".listing-left .selected").each(function(i, o) {
  212. if (!$(o).hasClass('ui-selected')) {
  213. $(o).removeClass('selected');
  214. $(o).removeClass('active');
  215. }
  216. });
  217. $(ui.selected).addClass('selected');
  218. $(ui.selected).addClass('active');
  219. //$(ui.selected).addClass('active');
  220. checkIfArchive(ui.selected);
  221. $(".listing-left .ui-selected").addClass('selected');
  222. if ($(".listing-left .active").length > 0) {
  223. FM['CURRENT_A_LINE'] = $(".listing-left .active").index();
  224. }
  225. else {
  226. FM['CURRENT_A_LINE'] = 0;
  227. }
  228. FM.preselectedItems.A = [];
  229. /*FM.setTabActive(FM.TAB_A, 'skip_highlights');
  230. $(".listing-left .selected, .listing-left .ui-selectee").each(function(i, o) {
  231. if (!$(o).hasClass('ui-selected')) {
  232. $(o).removeClass('selected');
  233. $(o).removeClass('active');
  234. }
  235. });
  236. $(ui.selected).addClass('selected');
  237. $(ui.selected).addClass('active');
  238. checkIfArchive(ui.selected);
  239. $(".listing-left .ui-selected").addClass('selected');*/
  240. },
  241. unselected: function (event, ui) {
  242. FM.setTabActive(FM.TAB_A, 'skip_highlights');
  243. $(ui.unselected).removeClass('selected');
  244. $(ui.unselected).removeClass('active');
  245. if ($(".listing-left .active").length > 0) {
  246. FM['CURRENT_A_LINE'] = $(".listing-left .active").index();
  247. }
  248. else {
  249. FM['CURRENT_A_LINE'] = 0;
  250. }
  251. /*$(".listing-left .selected, .listing-left .ui-selectee").each(function(i, o) {
  252. if (!$(o).hasClass('ui-selected')) {
  253. $(o).removeClass('selected');
  254. $(o).removeClass('active');
  255. }
  256. });
  257. FM.setTabActive(FM.TAB_A, 'skip_highlights');
  258. $(ui.unselected).removeClass('selected');
  259. $(ui.selected).addClass('active');*/
  260. }
  261. });
  262. $(".listing-right").selectable({
  263. selected: function (event, ui) {
  264. FM.setTabActive(FM.TAB_B, 'skip_highlights');
  265. $(".listing-right .active").removeClass('active');
  266. $(".listing-right .selected").each(function(i, o) {
  267. if (!$(o).hasClass('ui-selected')) {
  268. $(o).removeClass('selected');
  269. $(o).removeClass('active');
  270. }
  271. });
  272. $(ui.selected).addClass('selected');
  273. $(ui.selected).addClass('active');
  274. //$(ui.selected).addClass('active');
  275. checkIfArchive(ui.selected);
  276. $(".listing-right .ui-selected").addClass('selected');
  277. if ($(".listing-right .active").length > 0) {
  278. FM['CURRENT_B_LINE'] = $(".listing-right .active").index();
  279. }
  280. else {
  281. FM['CURRENT_B_LINE'] = 0;
  282. }
  283. FM.preselectedItems.B = [];
  284. },
  285. unselected: function (event, ui) {
  286. FM.setTabActive(FM.TAB_B, 'skip_highlights');
  287. $(ui.unselected).removeClass('selected');
  288. $(ui.unselected).removeClass('active');
  289. if ($(".listing-right .active").length > 0) {
  290. FM['CURRENT_B_LINE'] = $(".listing-right .active").index();
  291. }
  292. else {
  293. FM['CURRENT_B_LINE'] = 0;
  294. }
  295. }
  296. });
  297. /*$(".listing-right").selectable({
  298. selected: function (event, ui) {
  299. $(".listing-left .selected").each(function(i, o) {
  300. if (!$(o).hasClass('ui-selected')) {
  301. $(o).removeClass('selected');
  302. }
  303. });
  304. FM.setTabActive(FM.TAB_B, 'skip_highlights');
  305. $(ui.selected).addClass('selected');
  306. checkIfArchive(ui.selected);
  307. $(".listing-left .ui-selected").addClass('selected');
  308. },
  309. unselected: function (event, ui) {
  310. $(".listing-left .selected").each(function(i, o) {
  311. if (!$(o).hasClass('ui-selected')) {
  312. $(o).removeClass('selected');
  313. }
  314. });
  315. FM.setTabActive(FM.TAB_B, 'skip_highlights');
  316. $(ui.unselected).removeClass('selected');
  317. }
  318. });*/
  319. });
  320. </script>
  321. </body>
  322. </html>