Serghey Rodin пре 10 година
родитељ
комит
c9c8697f28
1 измењених фајлова са 26 додато и 44 уклоњено
  1. 26 44
      web/js/file_manager.js

+ 26 - 44
web/js/file_manager.js

@@ -161,34 +161,16 @@ FM.setActive = function(index, box) {
     $(box + ' .active').removeClass('active');
     $(box + ' .active').removeClass('active');
     $(box).find('li.dir:eq('+index+')').addClass('active');
     $(box).find('li.dir:eq('+index+')').addClass('active');
     
     
-    //$(box).find('li:eq('+index+')').addClass('selected');
-    //var w_h = $(window).height() - 100;
     var w_offset = $(box).scrollTop();
     var w_offset = $(box).scrollTop();
     var w_height = $(box).height()
     var w_height = $(box).height()
     var pos = $(box).find('li.selected').position();
     var pos = $(box).find('li.selected').position();
-    //console.log(w_height);
-    //console.log(w_offset);
-    //console.log(pos);
+    
     var wwh = w_height - w_offset + pos.top;
     var wwh = w_height - w_offset + pos.top;
-    //console.info(wwh);
-    //console.info((pos.top + w_offset) + ' > ' + w_height);
-    //console.log((pos.top + w_offset) > w_height);
-/*    if (pos.top > w_height) {
-        var cur_elm = $(box).find('li.selected').position();
-        var cur_elm_height = $(box).find('li.selected').height();
-        //$(box).scrollTo(wwh - 350);
-        $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2);
-        
-    }
-    else {*/
-        var cur_elm = $(box).find('li.selected').position();
-        var cur_elm_height = $(box).find('li.selected').height();
 
 
-        $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2);
+    var cur_elm = $(box).find('li.selected').position();
+    var cur_elm_height = $(box).find('li.selected').height();
 
 
-    //}
-    
-    
+    $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2);
     
     
 
 
     FM['CURRENT_' + tab + '_LINE'] = index;
     FM['CURRENT_' + tab + '_LINE'] = index;
@@ -215,7 +197,6 @@ FM.setActive = function(index, box) {
 }
 }
 
 
 FM.setSecondInactive = function(index, box) {
 FM.setSecondInactive = function(index, box) {
-    //$(box + ' .active').removeClass('selected-inactive');
     $(box).find('li:eq('+index+')').addClass('selected-inactive');
     $(box).find('li:eq('+index+')').addClass('selected-inactive');
 
 
     FM.BG_LINE = index;
     FM.BG_LINE = index;
@@ -286,9 +267,7 @@ FM.goDown = function() {
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var index = FM['CURRENT_' + tab + '_LINE'];
     var index = FM['CURRENT_' + tab + '_LINE'];
     index += 1;
     index += 1;
-    /*if (index > ($(FM.CURRENT_TAB).find('li.dir').length - 1)) {
-        index = 0;
-    }*/
+
     if (index > ($(FM.CURRENT_TAB).find('li.dir').length - 1)) {
     if (index > ($(FM.CURRENT_TAB).find('li.dir').length - 1)) {
         index = $(FM.CURRENT_TAB).find('li.dir').length - 1;
         index = $(FM.CURRENT_TAB).find('li.dir').length - 1;
     }
     }
@@ -298,7 +277,7 @@ FM.goDown = function() {
 
 
 // reloads provided tab
 // reloads provided tab
 // reloads opposite tab if its needed
 // reloads opposite tab if its needed
-FM.openAndSync = function(dir, box, callback) {
+FM.openAndSync = function(dir, box, callback, forceOppositeSync) {
     var tab = FM.getTabLetter(box);
     var tab = FM.getTabLetter(box);
 
 
     var opposite_tab = 'A';
     var opposite_tab = 'A';
@@ -312,6 +291,9 @@ FM.openAndSync = function(dir, box, callback) {
         oppositeSyncNeeded = true;
         oppositeSyncNeeded = true;
     }
     }
 
 
+    if ('undefined' != typeof forceOppositeSync) {
+        oppositeSyncNeeded = forceOppositeSync;
+    }
 
 
     if (oppositeSyncNeeded) {
     if (oppositeSyncNeeded) {
         FM.open(dir, FM['TAB_' + opposite_tab], callback);
         FM.open(dir, FM['TAB_' + opposite_tab], callback);
@@ -365,11 +347,16 @@ FM.updateTopLevelPathBar = function(box, tab, path) {
     path = path.replace(FM.ROOT_DIR, '');
     path = path.replace(FM.ROOT_DIR, '');
     formattedPath.push('<a href="javascript:void(0)" onClick="FM.open(\''+FM.ROOT_DIR+'\', \''+box+'\')">'+FM.ROOT_DIR+'</span>');
     formattedPath.push('<a href="javascript:void(0)" onClick="FM.open(\''+FM.ROOT_DIR+'\', \''+box+'\')">'+FM.ROOT_DIR+'</span>');
 
 
+    var fullDirPath = FM.ROOT_DIR;
     $.each(path.split('/'), function(i, part) {
     $.each(path.split('/'), function(i, part) {
         if (part.trim() == '') {
         if (part.trim() == '') {
             return;
             return;
         }
         }
-        formattedPath.push('<a href="javascript:void(0)" onClick="FM.open(\''+part+'\', \''+box+'\')">'+part+'</span>');
+        fullDirPath += '/' + part; 
+        
+        fullDirPath = fullDirPath.replace(/\/\//g, '/');
+        
+        formattedPath.push('<a href="javascript:void(0)" onClick="FM.open(\''+fullDirPath+'\', \''+box+'\')">'+part+'</span>');
     });
     });
 
 
     $('.pwd-tab-' + tab).html(formattedPath.join(' / '));
     $('.pwd-tab-' + tab).html(formattedPath.join(' / '));
@@ -403,6 +390,7 @@ FM.sortItems = function(items, box) {
     $.each(items, function(i, o) {
     $.each(items, function(i, o) {
         if (i > 0) { // i == 0 means first .. element in list
         if (i > 0) { // i == 0 means first .. element in list
             if (FM.isItemFile(o) || FM.isItemLink(o)) {
             if (FM.isItemFile(o) || FM.isItemLink(o)) {
+                o.filetype = FM.getFileType(o.name);
                 files.push(o);
                 files.push(o);
             }
             }
             else {
             else {
@@ -411,7 +399,6 @@ FM.sortItems = function(items, box) {
         }
         }
     });
     });
 
 
-    //    var sort_type = $(box).parents('.window').find('.menu').find('.sort-by-v').val();
     var sort_type = FM.ORDER_TAB_A;
     var sort_type = FM.ORDER_TAB_A;
     if($(box).closest('.window').find('.menu').hasClass('menu-right')){
     if($(box).closest('.window').find('.menu').hasClass('menu-right')){
       sort_type = FM.ORDER_TAB_B;
       sort_type = FM.ORDER_TAB_B;
@@ -420,7 +407,7 @@ FM.sortItems = function(items, box) {
     switch (sort_type) {
     switch (sort_type) {
         case 'type_asc':
         case 'type_asc':
             files.sort(function (a, b) {
             files.sort(function (a, b) {
-                return a.name.localeCompare( b.name );
+                return a.filetype.localeCompare( b.filetype );
             });
             });
             dirs.sort(function (a, b) {
             dirs.sort(function (a, b) {
                 return a.name.localeCompare( b.name );
                 return a.name.localeCompare( b.name );
@@ -429,7 +416,7 @@ FM.sortItems = function(items, box) {
             break;
             break;
         case 'type_desc':
         case 'type_desc':
             files.sort(function (a, b) {
             files.sort(function (a, b) {
-                return a.name.localeCompare( b.name );
+                return b.filetype.localeCompare( a.filetype );
             });
             });
             dirs.sort(function (a, b) {
             dirs.sort(function (a, b) {
                 return a.name.localeCompare( b.name );
                 return a.name.localeCompare( b.name );
@@ -555,8 +542,6 @@ FM.downloadFileFromSubcontext = function(elm) {
 FM.openFile = function(dir, box, elm) {
 FM.openFile = function(dir, box, elm) {
     var tab = FM.getTabLetter(box);
     var tab = FM.getTabLetter(box);
 
 
-    //FM['TAB_'+tab+'_CURRENT_PATH'] = dir;
-
     var elm = $(elm).hasClass('dir') ? $(elm) : $(elm).closest('.dir');
     var elm = $(elm).hasClass('dir') ? $(elm) : $(elm).closest('.dir');
     var src = $.parseJSON($(elm).find('.source').val());
     var src = $.parseJSON($(elm).find('.source').val());
     
     
@@ -769,19 +754,16 @@ FM.checkBulkStatus = function(bulkStatuses, acc) {
     }
     }
 
 
     if (status == true) {
     if (status == true) {
-        //$('#popup .results').html(App.Constants.FM_DONE);
-        //$('.controls').html('<p class="ok" onClick="FM.bulkPopupClose();">'+App.Constants.FM_DONE+'</p>');
         FM.popupClose();
         FM.popupClose();
-        
-        var box = FM['TAB_' + tab];
-        var tab = FM.getTabLetter(FM.CURRENT_TAB);
-        FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box);
     }
     }
     else {
     else {
         $('#popup .results').show().html(msg);
         $('#popup .results').show().html(msg);
-        //$('.controls').html('<p class="ok" onClick="FM.bulkPopupClose();">'+App.Constants.FM_DONE+'</p>');
         $('#popup .ok').hide();
         $('#popup .ok').hide();
     }
     }
+    
+    var box = FM['TAB_' + tab];
+    var tab = FM.getTabLetter(FM.CURRENT_TAB);
+    FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box, function(){}, true);
 }
 }
 
 
 FM.bulkPopupClose = function() {
 FM.bulkPopupClose = function() {
@@ -901,7 +883,7 @@ FM.bulkCopy = function() {
             var src = $(ref).find('.source').val();
             var src = $(ref).find('.source').val();
             src = $.parseJSON(src);
             src = $.parseJSON(src);
 
 
-            if (!FM.isItemPseudo(o)) {
+            if (!FM.isItemPseudo(src)) {
                 cfr_html += '<div>'+src.name+'</div>';
                 cfr_html += '<div>'+src.name+'</div>';
                 numberOfItems++;
                 numberOfItems++;
             }
             }
@@ -1002,7 +984,7 @@ FM.bulkRemove = function() {
             var src = $(ref).find('.source').val();
             var src = $(ref).find('.source').val();
             src = $.parseJSON(src);
             src = $.parseJSON(src);
           
           
-            if (!FM.isItemPseudo(o)) {
+            if (!FM.isItemPseudo(src)) {
                 cfr_html += '<div>'+src.name+'</div>';
                 cfr_html += '<div>'+src.name+'</div>';
                 numberOfItems++;
                 numberOfItems++;
             }
             }
@@ -1355,7 +1337,7 @@ FM.setTabActive = function(box, action) {
 FM.confirmRename = function() {
 FM.confirmRename = function() {
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var box = FM['TAB_' + tab];
     var box = FM['TAB_' + tab];
-    var selected = $(FM['TAB_' + tab] ).find('.dir.selected');
+    var selected = $(FM['TAB_' + tab] ).find('.dir.active');
     if (!selected) {
     if (!selected) {
         return FM.displayError(
         return FM.displayError(
             App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
             App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
@@ -1531,7 +1513,7 @@ FM.confirmUnpackItem = function () {
 FM.confirmPackItem = function () {
 FM.confirmPackItem = function () {
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var tab = FM.getTabLetter(FM.CURRENT_TAB);
     var box = FM['TAB_' + tab];
     var box = FM['TAB_' + tab];
-    var selected = $(FM['TAB_' + tab] ).find('.dir.selected');
+    var selected = $(FM['TAB_' + tab] ).find('.dir.active');
     if (selected.length == 0) {
     if (selected.length == 0) {
         return FM.displayError(
         return FM.displayError(
             App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
             App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED