mirror of
https://github.com/myvesta/vesta
synced 2025-07-16 10:03:23 -07:00
FileManager stuff
This commit is contained in:
parent
5c8e3d3489
commit
7565e8217f
13 changed files with 514 additions and 60 deletions
|
@ -625,3 +625,102 @@ input[type="checkbox"] {
|
|||
.subcontext-menu li {
|
||||
/*float: left;*/
|
||||
}
|
||||
|
||||
|
||||
.shortcuts {
|
||||
background: rgba(50, 50, 50, 0.9);
|
||||
display: inline-block;
|
||||
position: fixed;
|
||||
right: 20%;
|
||||
bottom: 0;
|
||||
color: #eee;
|
||||
width: 810px;
|
||||
border: 1px solid #333;
|
||||
font-family: arial;
|
||||
font-size: 13px;
|
||||
}
|
||||
.shortcuts .header {
|
||||
border-bottom: 1px solid #333;
|
||||
height: 43px;
|
||||
}
|
||||
.shortcuts .title {
|
||||
text-transform: uppercase;
|
||||
color: #ffcc00;
|
||||
padding: 7px 0 7px 14px;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
font-size: 11px;
|
||||
letter-spacing: 3px;
|
||||
font-weight: bold;
|
||||
line-height: 30px;
|
||||
}
|
||||
.shortcuts .close {
|
||||
background: url("/images/sprite.png") repeat scroll -408px -469px;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
float: right;
|
||||
height: 32px;
|
||||
padding-top: 11px;
|
||||
width: 46px;
|
||||
}
|
||||
.shortcuts .close:hover {
|
||||
background-color: #000;
|
||||
..
|
||||
}
|
||||
.shortcuts .close:active {
|
||||
background-color: #55c9c0;
|
||||
}
|
||||
.shortcuts ul {
|
||||
list-style-type: none;
|
||||
padding: 30px 10px;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
}
|
||||
.shortcuts ul li {
|
||||
padding: 5px 20px;
|
||||
}
|
||||
.shortcuts ul li.step-top {
|
||||
padding-top: 30px;
|
||||
}
|
||||
.shortcuts ul li span {
|
||||
color: #48F4EF;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
padding: 0 20px 0 0;
|
||||
text-align: right;
|
||||
width: 140px;
|
||||
}
|
||||
.shortcuts ul li span.bigger {
|
||||
font-size: 18px;
|
||||
}
|
||||
.shortcuts ul.note {
|
||||
font-style: italic;
|
||||
color: #9CA484;
|
||||
width: 700px;
|
||||
padding-left: 50px;
|
||||
}
|
||||
.shortcuts ul.note a {
|
||||
color: #9CA484;
|
||||
}
|
||||
|
||||
.to-shortcuts {
|
||||
display: inline-block;
|
||||
position: fixed;
|
||||
top: 95%;
|
||||
right: 1%;
|
||||
}
|
||||
.l-icon-shortcuts {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
background-image: url("/images/sprite.png");
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
background-position: -283px -68px;
|
||||
border-radius: 18px;
|
||||
}
|
||||
.l-icon-shortcuts:hover {
|
||||
background-color: #ccc;
|
||||
}
|
||||
.l-icon-shortcuts:active {
|
||||
background-color: #98D5CD;
|
||||
}
|
||||
|
|
28
web/css/styles.min.css
vendored
28
web/css/styles.min.css
vendored
|
@ -1867,7 +1867,7 @@ div.l-content > div.l-separator:nth-of-type(4) {
|
|||
}
|
||||
|
||||
|
||||
.l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-star-orange, .l-icon-star-blue {
|
||||
.l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-shortcuts, .l-icon-star-orange, .l-icon-star-blue {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
background-image: url("/images/sprite.png");
|
||||
|
@ -1928,6 +1928,19 @@ div.l-content > div.l-separator:nth-of-type(4) {
|
|||
background-position: -402px -68px;
|
||||
}
|
||||
|
||||
.l-icon-shortcuts {
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
background-position: -283px -68px;
|
||||
border-radius: 18px;
|
||||
}
|
||||
.l-icon-shortcuts:hover {
|
||||
background-color: #ccc;
|
||||
}
|
||||
.l-icon-shortcuts:active {
|
||||
background-color: #98D5CD;
|
||||
}
|
||||
|
||||
.l-icon-star-orange {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
|
@ -1974,9 +1987,17 @@ div.l-content > div.l-separator:nth-of-type(4) {
|
|||
display: inline-block;
|
||||
position: fixed;
|
||||
top: 92%;
|
||||
right: 3%;
|
||||
right: 4%;
|
||||
}
|
||||
|
||||
.to-shortcuts {
|
||||
display: inline-block;
|
||||
position: fixed;
|
||||
top: 92%;
|
||||
right: 1%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
#vstobjects {
|
||||
margin-top: -1px;
|
||||
|
@ -2737,6 +2758,7 @@ form#vstobjects.suspended {
|
|||
color: #eee;
|
||||
width: 800px;
|
||||
border: 1px solid #333;
|
||||
font-size: 13px;
|
||||
}
|
||||
.shortcuts .header {
|
||||
border-bottom: 1px solid #333;
|
||||
|
@ -2777,7 +2799,7 @@ form#vstobjects.suspended {
|
|||
padding: 5px 20px;
|
||||
}
|
||||
.shortcuts ul li.step-top {
|
||||
padding-bottom: 30px;
|
||||
padding-top: 30px;
|
||||
}
|
||||
.shortcuts ul li span {
|
||||
color: #48F4EF;
|
||||
|
|
|
@ -57,20 +57,24 @@ if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) {
|
|||
if ($fn) {
|
||||
$f = fopen ($fn, 'w+');
|
||||
fwrite($f, $_POST['contents']);
|
||||
fclose($f);
|
||||
|
||||
chmod($fn, 0644);
|
||||
|
||||
if ($f) {
|
||||
//copy($fn, $path);
|
||||
exec (VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}", $output, $return_var);
|
||||
|
||||
$error = check_return_code($return_var, $output);
|
||||
if ($return_var != 0) {
|
||||
var_dump(VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}");
|
||||
/*var_dump(VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}");
|
||||
var_dump($path);
|
||||
var_dump($output);
|
||||
var_dump($output);*/
|
||||
die('<p style="color: white">Error while saving file</p>');//echo '0';
|
||||
}
|
||||
}
|
||||
unlink($fn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// $content = file_get_contents($path);
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
@ -546,4 +546,54 @@ $LANG['en'] = array(
|
|||
'Create file' => 'Create file',
|
||||
'Create directory' => 'Create directory',
|
||||
|
||||
|
||||
'Add New object' => 'Add New object',
|
||||
'Save Form' => 'Save Form',
|
||||
'Cancel saving form' => 'Cancel saving form',
|
||||
'Go to USER list' => 'Go to USER list',
|
||||
'Go to WEB list' => 'Go to WEB list',
|
||||
'Go to DNS list' => 'Go to DNS list',
|
||||
'Go to MAIL list' => 'Go to MAIL list',
|
||||
'Go to DB list' => 'Go to DB list',
|
||||
'Go to CRON list' => 'Go to CRON list',
|
||||
'Go to BACKUP list' => 'Go to BACKUP list',
|
||||
'Focus on search' => 'Focus on search',
|
||||
'Display/Close shortcuts' => 'Display/Close shortcuts',
|
||||
'Go to Packages' => 'Go to Packages',
|
||||
'Go to IP' => 'Go to IP',
|
||||
'Go to Graphs' => 'Go to Graphs',
|
||||
'Go to Statistic' => 'Go to Statistic',
|
||||
'Go to Log' => 'Go to Log',
|
||||
'Go to Updates' => 'Go to Updates',
|
||||
'Go to Firewall' => 'Go to Firewall',
|
||||
'Go to File Manager' => 'Go to File Manager',
|
||||
'Go to Server' => 'Go to Server',
|
||||
|
||||
|
||||
'Upload' => 'Upload',
|
||||
'New File' => 'New File',
|
||||
'New Folder' => 'New Folder',
|
||||
'Download' => 'Download',
|
||||
'Rename' => 'Rename',
|
||||
'Copy' => 'Copy',
|
||||
'Archive' => 'Archive',
|
||||
'Delete' => 'Delete',
|
||||
'Save File (in text editor)' => 'Save File (in text editor)',
|
||||
'Display Shortcuts Hel' => 'Display Shortcuts Hel',
|
||||
'Close Popup / Cancel' => 'Close Popup / Cancel',
|
||||
'Move Cursor Up' => 'Move Cursor Up',
|
||||
'Move Cursor Dow' => 'Move Cursor Dow',
|
||||
'Switch to Left Tab' => 'Switch to Left Tab',
|
||||
'Switch to Right Tab' => 'Switch to Right Tab',
|
||||
'Switch Tab' => 'Switch Tab',
|
||||
'Go to the Top of File List' => 'Go to the Top of File List',
|
||||
'Go to the Last File' => 'Go to the Last File',
|
||||
'Open File/Enter Directory' => 'Open File/Enter Directory',
|
||||
'Go to Parent Directory' => 'Go to Parent Directory',
|
||||
'Select Current File' => 'Select Current File',
|
||||
'Select Bunch of Files' => 'Select Bunch of Files',
|
||||
'Append File to the Current Selection' => 'Append File to the Current Selection',
|
||||
'Select All Files' => 'Select All Files',
|
||||
'shortcuts are inspired by magnificent GNU <a href="https://www.midnight-commander.org/">Midnight Commander</a> file manager' => 'shortcuts are inspired by magnificent GNU <a href="https://www.midnight-commander.org/">Midnight Commander</a> file manager',
|
||||
|
||||
);
|
|
@ -546,7 +546,7 @@ FM.downloadFileFromSubcontext = function(elm) {
|
|||
FM.openFile = function(dir, box, elm) {
|
||||
var tab = FM.getTabLetter(box);
|
||||
|
||||
FM['TAB_'+tab+'_CURRENT_PATH'] = dir;
|
||||
//FM['TAB_'+tab+'_CURRENT_PATH'] = dir;
|
||||
|
||||
var elm = $(elm).hasClass('dir') ? $(elm) : $(elm).closest('.dir');
|
||||
var src = $.parseJSON($(elm).find('.source').val());
|
||||
|
@ -754,11 +754,11 @@ FM.checkBulkStatus = function(bulkStatuses, acc) {
|
|||
|
||||
if (status == true) {
|
||||
$('#popup .results').html(App.Constants.FM_DONE);
|
||||
$('.controls p').replaceWith('<p class="ok" onClick="FM.bulkPopupClose();">close</p>');
|
||||
$('.controls').html('<p class="ok" onClick="FM.bulkPopupClose();">'+App.Constants.FM_DONE+'</p>');
|
||||
}
|
||||
else {
|
||||
$('#popup .results').html(msg);
|
||||
$('.controls p').replaceWith('<p class="ok" onClick="FM.bulkPopupClose();">close</p>');
|
||||
$('.controls').html('<p class="ok" onClick="FM.bulkPopupClose();">'+App.Constants.FM_DONE+'</p>');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -795,49 +795,47 @@ FM.humanFileSizeUnit = function(size) {
|
|||
}
|
||||
|
||||
|
||||
FM.bulkCopy = function() {
|
||||
FM.bulkCopyDo = function() {
|
||||
var acc = $(FM.CURRENT_TAB).find('.dir.selected');
|
||||
if (acc.length > 0) {
|
||||
//FM.popupClose();
|
||||
|
||||
|
||||
var cfr_html = '';
|
||||
|
||||
var numberOfItems = 0;
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
|
||||
if (!FM.isItemPseudo(o)) {
|
||||
cfr_html += '<div>'+src.name+'</div>';
|
||||
numberOfItems++;
|
||||
}
|
||||
});
|
||||
|
||||
var tpl = Tpl.get('popup_bulk', 'FM');
|
||||
tpl.set(':ACTION', App.Constants.FM_YOU_ARE_COPYING);
|
||||
tpl.set(':TEXT', cfr_html);
|
||||
|
||||
FM.popupOpen(tpl.finalize());
|
||||
|
||||
|
||||
var bulkStatuses = [];
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
/*if (!FM.isItemPseudo(o)) {
|
||||
cfr_html += '<div>'+src.name+'</div>';
|
||||
}*/
|
||||
var tab = FM.getTabLetter(FM.CURRENT_TAB);
|
||||
if (FM.isItemPseudo(src)) {
|
||||
//cfr_html += '<div>'+src.name+'</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
var tab = FM.getTabLetter(FM.CURRENT_TAB);
|
||||
var opposite_tab = 'A';
|
||||
if (tab == 'A') {
|
||||
opposite_tab = 'B';
|
||||
}
|
||||
|
||||
if (FM.isItemPseudo(src)) {
|
||||
return FM.displayError(
|
||||
/*return FM.displayError(
|
||||
App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
|
||||
);
|
||||
);*/
|
||||
return;
|
||||
}
|
||||
|
||||
var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ];
|
||||
|
@ -863,6 +861,106 @@ FM.bulkCopy = function() {
|
|||
bulkStatuses.push(reply.message);
|
||||
}
|
||||
|
||||
FM.checkBulkStatus(bulkStatuses, acc);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
FM.bulkCopy = function() {
|
||||
var acc = $(FM.CURRENT_TAB).find('.dir.selected');
|
||||
if (acc.length > 0) {
|
||||
FM.popupClose();
|
||||
|
||||
var cfr_html = '';
|
||||
var numberOfItems = 0;
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
if (!FM.isItemPseudo(o)) {
|
||||
cfr_html += '<div>'+src.name+'</div>';
|
||||
numberOfItems++;
|
||||
}
|
||||
});
|
||||
|
||||
var tab = FM.getTabLetter(FM.CURRENT_TAB);
|
||||
var opposite_tab = 'A';
|
||||
if (tab == 'A') {
|
||||
opposite_tab = 'B';
|
||||
}
|
||||
var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ];
|
||||
if (dest == '') {
|
||||
dest = GLOBAL.ROOT_DIR;
|
||||
}
|
||||
|
||||
var tpl = Tpl.get('popup_bulk_copy', 'FM');
|
||||
tpl.set(':NUMBER_OF_ITEMS', numberOfItems);
|
||||
tpl.set(':DST_FILENAME', dest);
|
||||
//popup_bulk_copy
|
||||
|
||||
FM.popupOpen(tpl.finalize());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
FM.bulkRemoveDo = function() {
|
||||
var acc = $(FM.CURRENT_TAB).find('.dir.selected');
|
||||
if (acc.length > 0) {
|
||||
//FM.popupClose();
|
||||
|
||||
var cfr_html = '';
|
||||
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
if (!FM.isItemPseudo(o)) {
|
||||
cfr_html += '<div>'+src.name+'</div>';
|
||||
}
|
||||
});
|
||||
|
||||
var bulkStatuses = [];
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
var tab = FM.getTabLetter(FM.CURRENT_TAB);
|
||||
|
||||
var opposite_tab = 'A';
|
||||
if (tab == 'A') {
|
||||
opposite_tab = 'B';
|
||||
}
|
||||
|
||||
if (FM.isItemPseudo(src)) {
|
||||
return;
|
||||
/*return FM.displayError(
|
||||
App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
|
||||
);*/
|
||||
}
|
||||
|
||||
var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ];
|
||||
if (dest == '') {
|
||||
dest = GLOBAL.ROOT_DIR;
|
||||
}
|
||||
|
||||
var params = {
|
||||
item: src.full_path,
|
||||
dir: FM['TAB_' + tab + '_CURRENT_PATH']
|
||||
};
|
||||
|
||||
App.Ajax.request('delete_files', params, function(reply) {
|
||||
if (reply.result == true) {
|
||||
bulkStatuses.push(true);
|
||||
}
|
||||
else {
|
||||
//FM.showError('copy-items', reply.message);
|
||||
bulkStatuses.push(reply.message);
|
||||
}
|
||||
|
||||
FM.checkBulkStatus(bulkStatuses, acc);
|
||||
});
|
||||
});
|
||||
|
@ -871,6 +969,33 @@ FM.bulkCopy = function() {
|
|||
}
|
||||
|
||||
FM.bulkRemove = function() {
|
||||
var acc = $(FM.CURRENT_TAB).find('.dir.selected');
|
||||
if (acc.length > 0) {
|
||||
FM.popupClose();
|
||||
|
||||
var cfr_html = '';
|
||||
var numberOfItems = 0;
|
||||
$.each(acc, function(i, o) {
|
||||
var ref = $(o);
|
||||
var src = $(ref).find('.source').val();
|
||||
src = $.parseJSON(src);
|
||||
|
||||
if (!FM.isItemPseudo(o)) {
|
||||
cfr_html += '<div>'+src.name+'</div>';
|
||||
numberOfItems++;
|
||||
}
|
||||
});
|
||||
|
||||
var tpl = Tpl.get('popup_bulk_remove', 'FM');
|
||||
tpl.set(':NUMBER_OF_ITEMS', numberOfItems);
|
||||
//tpl.set(':DST_FILENAME', dest);
|
||||
|
||||
FM.popupOpen(tpl.finalize());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
FM.bulkRemove11111 = function() {
|
||||
var acc = $(FM.CURRENT_TAB).find('.dir.selected');
|
||||
if (acc.length > 0) {
|
||||
//FM.popupClose();
|
||||
|
@ -907,9 +1032,10 @@ FM.bulkRemove = function() {
|
|||
}
|
||||
|
||||
if (FM.isItemPseudo(src)) {
|
||||
return FM.displayError(
|
||||
return;
|
||||
/*return FM.displayError(
|
||||
App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED
|
||||
);
|
||||
);*/
|
||||
}
|
||||
|
||||
var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ];
|
||||
|
@ -1810,6 +1936,7 @@ $(document).ready(function() {
|
|||
shortcut.add("Esc",function() {
|
||||
FM.Env.RELOAD_IN_TIME = false;
|
||||
$('#reload-in-time').remove();
|
||||
$('.shortcuts').hide();
|
||||
if (FM.isPopupOpened()) {
|
||||
return FM.handlePopupCancel();
|
||||
}
|
||||
|
@ -1820,6 +1947,15 @@ $(document).ready(function() {
|
|||
'target': document
|
||||
});
|
||||
|
||||
shortcut.add("h", function(){
|
||||
$('.shortcuts').toggle();
|
||||
}, {
|
||||
'type': 'keydown',
|
||||
'propagate': false,
|
||||
'disable_in_input': true,
|
||||
'target': document
|
||||
});
|
||||
|
||||
shortcut.add("Down",function() {
|
||||
FM.goDown();
|
||||
},{
|
||||
|
@ -2014,6 +2150,7 @@ $(document).ready(function() {
|
|||
'disable_in_input': false,
|
||||
'target': document
|
||||
});
|
||||
|
||||
shortcut.add("a",function() {
|
||||
FM.packItem();
|
||||
},{
|
||||
|
@ -2023,8 +2160,6 @@ $(document).ready(function() {
|
|||
'target': document
|
||||
});
|
||||
|
||||
|
||||
|
||||
shortcut.add("d",function() {
|
||||
FM.downloadFiles();
|
||||
},{
|
||||
|
@ -2098,15 +2233,22 @@ $(document).ready(function() {
|
|||
$('.context-menu.sort-order').on('click', 'span', function(evt){
|
||||
FM.reOrderList($(evt.target));
|
||||
});
|
||||
|
||||
|
||||
$('.warning-box .close').on('click', function(evt){
|
||||
$(evt.target).closest('.warning-box').hide();
|
||||
});
|
||||
|
||||
$('.menu-A .extract-btn').hide();
|
||||
$('.menu-B .extract-btn').hide();
|
||||
|
||||
|
||||
|
||||
|
||||
$('.to-shortcuts').click(function(){
|
||||
$('.shortcuts').toggle();
|
||||
});
|
||||
|
||||
$('.shortcuts .close').click(function(){
|
||||
$('.shortcuts').hide();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ App.Constants.FM_COPY = '<?=__('Copy') ?>';
|
|||
App.Constants.FM_CANCEL = '<?=__('Cancel')?>';
|
||||
App.Constants.FM_RENAME = '<?=__('Rename')?>';
|
||||
App.Constants.FM_DELETE = '<?=__('Delete')?>';
|
||||
App.Constants.FM_CONFIRM_DELETE_BULK = '<?=__('Delete items')?>';
|
||||
App.Constants.FM_EXTRACT = '<?=__('Extract')?>';
|
||||
App.Constants.FM_CREATE = '<?=__('Create')?>';
|
||||
App.Constants.FM_PACK = '<?=__('Compress')?>';
|
||||
|
@ -71,6 +72,8 @@ App.Constants.FM_OK = '<?=__('OK')?>';
|
|||
App.Constants.FM_YOU_ARE_COPYING = '<?=__('YOU ARE COPYING')?>';
|
||||
App.Constants.FM_YOU_ARE_REMOVING = '<?=__('YOU ARE REMOVING')?>';
|
||||
|
||||
App.Constants.FM_COPY_BULK = '<?=__('Copy files')?>';
|
||||
|
||||
App.Constants.FM_CONFIRM_COPY = '<?=__('Are you sure you want to copy')?>';
|
||||
App.Constants.FM_CONFIRM_DELETE = '<?=__('Are you sure you want to delete')?>';
|
||||
App.Constants.FM_INTO_KEYWORD = '<?=__('into')?>';
|
||||
|
|
|
@ -10,11 +10,11 @@ App.Templates.html = {
|
|||
//
|
||||
|
||||
FM: {
|
||||
reload_in_time: [
|
||||
'<div id="reload-in-time" class="warning-box reload">\
|
||||
<div class="message-small">'+App.Constants.FM_HIT+' <span>F5</span> '+App.Constants.FM_TO_RELOAD_THE_PAGE+'</div>\
|
||||
</div>'
|
||||
],
|
||||
reload_in_time: [
|
||||
'<div id="reload-in-time" class="warning-box reload">\
|
||||
<div class="message-small">'+App.Constants.FM_HIT+' <span>F5</span> '+App.Constants.FM_TO_RELOAD_THE_PAGE+'</div>\
|
||||
</div>'
|
||||
],
|
||||
entry_line: ['<li class="dir">\
|
||||
<span class="marker">\
|
||||
</span>\
|
||||
|
@ -37,14 +37,33 @@ App.Templates.html = {
|
|||
<p class="ok" onClick="FM.popupClose();">'+App.Constants.FM_CLOSE+'</p>\
|
||||
</div>\
|
||||
</div>'],
|
||||
popup_bulk: ['<div class="confirm-box alarm popup-box">\
|
||||
popup_bulk_remove: ['<div class="confirm-box delete popup-box">\
|
||||
<div class="message">'+App.Constants.FM_CONFIRM_DELETE_BULK+' (~!:NUMBER_OF_ITEMS~!)?</div>\
|
||||
<div class="controls">\
|
||||
<p class="cancel" onClick="FM.popupClose();">'+App.Constants.FM_CANCEL+'</p>\
|
||||
<p class="ok" onClick="FM.bulkRemoveDo();">'+App.Constants.FM_DELETE+'</p>\
|
||||
</div>\
|
||||
</div>'],
|
||||
popup_bulk_copy: ['<div class="confirm-box copy popup-box">\
|
||||
<div class="message">'+App.Constants.FM_COPY_BULK+' (~!:NUMBER_OF_ITEMS~!) '+ App.Constants.FM_INTO_KEYWORD +':</div>\
|
||||
<div class="actions">\
|
||||
<input type="text" id="copy_dest" value="~!:DST_FILENAME~!" class="new-title">\
|
||||
</div>\
|
||||
<div class="results"></div>\
|
||||
<div class="message">'+App.Constants.FM_EXISTING_FILES_WILL_BE_REPLACED+'</div>\
|
||||
<div class="controls">\
|
||||
<p class="cancel" onClick="FM.popupClose();">'+App.Constants.FM_CANCEL+'</p>\
|
||||
<p class="ok" onClick="FM.bulkCopyDo();">'+App.Constants.FM_COPY+'</p>\
|
||||
</div>\
|
||||
</div>'],
|
||||
/*popup_bulk: ['<div class="confirm-box alarm popup-box">\
|
||||
<div class="message">~!:ACTION~!: <br />~!:TEXT~!</div>\
|
||||
<div class="results"></div>\
|
||||
<div class="controls">\
|
||||
<!-- p class="ok" onClick="FM.popupClose();">'+App.Constants.FM_CLOSE+'</p -->\
|
||||
<p><img src="/images/in_progress.gif"></p>\
|
||||
</div>\
|
||||
</div>'],
|
||||
</div>'],*/
|
||||
popup_delete: ['<div class="confirm-box delete popup-box">\
|
||||
<div class="message">'+App.Constants.FM_CONFIRM_DELETE+' <span class="title">"~!:FILENAME~!"</span>?</div>\
|
||||
<div class="controls">\
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<a href="#" class="to-top">
|
||||
<i class="l-icon-to-top"></i>
|
||||
</a>
|
||||
<a href="#" class="to-shortcuts">
|
||||
<i class="l-icon-shortcuts"></i>
|
||||
</a>
|
||||
|
||||
<div class="l-header">
|
||||
<div class="l-center">
|
||||
<a href="/" class="l-logo"></a>
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
<link rel="stylesheet" href="/css/jquery.fileupload.css">
|
||||
</head>
|
||||
<body>
|
||||
<a href="#" class="to-shortcuts">
|
||||
<i class="l-icon-shortcuts"></i>
|
||||
</a>
|
||||
|
||||
<div id="main">
|
||||
<div class="window active">
|
||||
<a href="/" class="l-logo"></a>
|
||||
|
@ -72,6 +76,43 @@
|
|||
<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>
|
||||
</div>
|
||||
|
||||
<div class="shortcuts" style="display:none">
|
||||
<div class="header">
|
||||
<div class="title">Shortcuts</div>
|
||||
<div class="close"></div>
|
||||
</div>
|
||||
<ul>
|
||||
<li><span class="key">u</span><?=__('Upload')?></li>
|
||||
<li><span class="key">n</span><?=__('New File')?></li>
|
||||
<li><span class="key">F7</span><?=__('New Folder')?></li>
|
||||
<li><span class="key">d</span><?=__('Download')?></li>
|
||||
<li><span class="key">F2 / <Shift>+F6</span><?=__('Rename')?></li>
|
||||
<li><span class="key">F5</span><?=__('Copy')?></li>
|
||||
<li><span class="key">a</span><?=__('Archive')?></li>
|
||||
<li><span class="key">F8 / Del</span><?=__('Delete')?></li>
|
||||
<li class="step-top"><span class="key"><Ctrl> + s</span><?=__('Save File (in text editor)')?></li>
|
||||
<li class="step-top"><span class="key">h</span><?=__('Display Shortcuts Help')?></li>
|
||||
<li class="step-top"><span class="key">Esc</span><?=__('Close Popup / Cancel')?></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><span class="key bigger">↑</span><?=__('Move Cursor Up')?></li>
|
||||
<li><span class="key bigger">↓</span><?=__('Move Cursor Down')?></li>
|
||||
<li><span class="key bigger">←</span><?=__('Switch to Left Tab')?></li>
|
||||
<li><span class="key bigger">→</span><?=__('Switch to Right Tab')?></li>
|
||||
<li><span class="key"><Tab></span><?=__('Switch Tab')?></li>
|
||||
<li><span class="key"><Home></span><?=__('Go to the Top of the File List')?></li>
|
||||
<li><span class="key"><End></span><?=__('Go to the Last File')?></li>
|
||||
<li class="step-top"><span class="key"><Enter></span><?=__('Open File / Enter Directory')?></li>
|
||||
<li><span class="key"><Backspace></span><?=__('Go to Parent Directory')?></li>
|
||||
<li class="step-top"><span class="key"><Insert> / <Space></span><?=__('Select Current File')?></li>
|
||||
<li><span class="key"><Shift> + click</span><?=__('Select Bunch of Files')?></li>
|
||||
<li><span class="key"><Ctrl> + click</span><?=__('Add File to the Current Selection')?></li>
|
||||
<li><span class="key"><Ctrl> + a</span><?=__('Select All Files')?></li>
|
||||
</ul>
|
||||
<ul class="note"><?=__('shortcuts are inspired by magnificent GNU <a href="https://www.midnight-commander.org/">Midnight Commander</a> file manager')?></ul>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.2/fotorama.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
|
||||
|
@ -346,6 +387,8 @@
|
|||
FM['CURRENT_B_LINE'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
/*$(".listing-right").selectable({
|
||||
selected: function (event, ui) {
|
||||
|
|
|
@ -460,11 +460,26 @@
|
|||
}
|
||||
);
|
||||
|
||||
shortcut.add("Esc", function(){
|
||||
$('.shortcuts').hide();
|
||||
}, {
|
||||
'type': 'keydown',
|
||||
'propagate': false,
|
||||
'disable_in_input': true,
|
||||
'target': document
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
$('.shortcuts .close').click(function(){
|
||||
$('.shortcuts').hide();
|
||||
});
|
||||
|
||||
$('.to-shortcuts').click(function(){
|
||||
$('.shortcuts').toggle();
|
||||
});
|
||||
|
||||
|
||||
VE.core.register();
|
||||
if (location.href.search(/list/) != -1) {
|
||||
var shift_select_ref = $('body').finderSelect({
|
||||
|
@ -511,30 +526,31 @@
|
|||
<div class="close"></div>
|
||||
</div>
|
||||
<ul>
|
||||
<li><span class="key">n</span>Add New object</li>
|
||||
<li><span class="key"><Ctrl> + Enter</span>Save Form</li>
|
||||
<li class="step-top"><span class="key"><Ctrl> + Backspace</span>Cancel saving form</li>
|
||||
<li><span class="key">n</span><?=__('Add New object')?></li>
|
||||
<li><span class="key"><Ctrl> + Enter</span><?=__('Save Form')?></li>
|
||||
<li><span class="key"><Ctrl> + Backspace</span><?=__('Cancel saving form')?></li>
|
||||
|
||||
<li><span class="key">1</span>Go to USER list</li>
|
||||
<li><span class="key">2</span>Go to WEB list</li>
|
||||
<li><span class="key">3</span>Go to DNS list</li>
|
||||
<li><span class="key">4</span>Go to MAIL list</li>
|
||||
<li><span class="key">5</span>Go to DB list</li>
|
||||
<li><span class="key">6</span>Go to CRON list</li>
|
||||
<li class="step-top"><span class="key">7</span>Go to BACKUP list</li>
|
||||
<li class="step-top"><span class="key">1</span><?=__('Go to USER list')?></li>
|
||||
<li><span class="key">2</span><?=__('Go to WEB list')?></li>
|
||||
<li><span class="key">3</span><?=__('Go to DNS list')?></li>
|
||||
<li><span class="key">4</span><?=__('Go to MAIL list')?></li>
|
||||
<li><span class="key">5</span><?=__('Go to DB list')?></li>
|
||||
<li><span class="key">6</span><?=__('Go to CRON list')?></li>
|
||||
<li><span class="key">7</span><?=__('Go to BACKUP list')?></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="step-top"><span class="key">f</span>Focus on search</li>
|
||||
<li class="step-top"><span class="key">h</span>Display/Close shortcuts</li>
|
||||
<li><span class="key">f</span><?=__('Focus on search')?></li>
|
||||
<li class="step-top"><span class="key">h</span><?=__('Display/Close shortcuts')?></li>
|
||||
|
||||
<li><span class="key"><Ctrl> + 1</span>Go to Packages</li>
|
||||
<li><span class="key"><Ctrl> + 2</span>Go to IP</li>
|
||||
<li><span class="key"><Ctrl> + 3</span>Go to Graphs</li>
|
||||
<li><span class="key"><Ctrl> + 4</span>Go to Statistics</li>
|
||||
<li><span class="key"><Ctrl> + 5</span>Go to Log</li>
|
||||
<li><span class="key"><Ctrl> + 6</span>Go to Updates</li>
|
||||
<li><span class="key"><Ctrl> + 7</span>Go to Firewall</li>
|
||||
<li><span class="key"><Ctrl> + 8</span>Go to Server</li>
|
||||
<li class="step-top"><span class="key"><Ctrl> + 1</span><?=__('Go to Packages')?></li>
|
||||
<li><span class="key"><Ctrl> + 2</span><?=__('Go to IP')?></li>
|
||||
<li><span class="key"><Ctrl> + 3</span><?=__('Go to Graphs')?></li>
|
||||
<li><span class="key"><Ctrl> + 4</span><?=__('Go to Statistics')?></li>
|
||||
<li><span class="key"><Ctrl> + 5</span><?=__('Go to Log')?></li>
|
||||
<li><span class="key"><Ctrl> + 6</span><?=__('Go to Updates')?></li>
|
||||
<li><span class="key"><Ctrl> + 7</span><?=__('Go to Firewall')?></li>
|
||||
<li><span class="key"><Ctrl> + 8</span><?=__('Go to File Manager')?></li>
|
||||
<li><span class="key"><Ctrl> + 9</span><?=__('Go to Server')?></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
<a href="#" class="to-top">
|
||||
<i class="l-icon-to-top"></i>
|
||||
</a>
|
||||
<a href="#" class="to-shortcuts">
|
||||
<i class="l-icon-shortcuts"></i>
|
||||
</a>
|
||||
<div class="l-header">
|
||||
<div class="l-center">
|
||||
<a href="/" class="l-logo"></a>
|
||||
|
@ -8,6 +11,7 @@
|
|||
<div class="l-menu clearfix">
|
||||
<div class="l-menu__item <?php if($TAB == 'STATS' ) echo 'l-menu__item--active' ?>"><a href="/list/stats/"><?=__('Statistics')?></a></div>
|
||||
<div class="l-menu__item <?php if($TAB == 'LOG' ) echo 'l-menu__item--active' ?>"><a href="/list/log/"><?=__('Log')?></a></div>
|
||||
<?php if ((isset($_SESSION['FILEMANAGER_KEY'])) && (!empty($_SESSION['FILEMANAGER_KEY']))) {?><div class="l-menu__item <?php if($TAB == 'FILEMANAGER' ) echo 'l-menu__item--active' ?>"><a href="/list/directory/"><?=__('File Manager')?></a></div><?php }?>
|
||||
</div>
|
||||
<!-- /.l-menu -->
|
||||
|
||||
|
|
|
@ -1,4 +1,36 @@
|
|||
<?php
|
||||
|
||||
//session_start();
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
//$user = $_SESSION['user'];
|
||||
|
||||
if (empty($panel)) {
|
||||
$command = VESTA_CMD."v-list-user '".$user."' 'json'";
|
||||
exec ($command, $output, $return_var);
|
||||
if ( $return_var > 0 ) {
|
||||
header("Location: /error/");
|
||||
exit;
|
||||
}
|
||||
$panel = json_decode(implode('', $output), true);
|
||||
}
|
||||
$user = array_keys($panel);
|
||||
$user = $user[0];
|
||||
|
||||
define('USERNAME', $user);
|
||||
|
||||
|
||||
/*
|
||||
// Check user session
|
||||
if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) {
|
||||
$_SESSION['request_uri'] = $_SERVER['REQUEST_URI'];
|
||||
header("Location: /login/");
|
||||
exit;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* jQuery File Upload Plugin PHP Class 8.1.0
|
||||
* https://github.com/blueimp/jQuery-File-Upload
|
||||
|
@ -1042,6 +1074,8 @@ class UploadHandler
|
|||
|
||||
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
|
||||
$index = null, $content_range = null) {
|
||||
|
||||
|
||||
$file = new \stdClass();
|
||||
$file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error,
|
||||
$index, $content_range);
|
||||
|
@ -1065,7 +1099,21 @@ class UploadHandler
|
|||
FILE_APPEND
|
||||
);
|
||||
} else {
|
||||
move_uploaded_file($uploaded_file, $file_path);
|
||||
chmod($uploaded_file, 0644);
|
||||
//move_uploaded_file($uploaded_file, $file_path);
|
||||
exec (VESTA_CMD . "v-copy-fs-file ". USERNAME ." {$uploaded_file} {$file_path}", $output, $return_var);
|
||||
|
||||
$error = check_return_code($return_var, $output);
|
||||
if ($return_var != 0) {
|
||||
//var_dump(VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}");
|
||||
//var_dump($path);
|
||||
//var_dump($output);
|
||||
$file->error = 'Error while saving file';
|
||||
/*var_dump(VESTA_CMD . "v-copy-fs-file ". USERNAME ." {$uploaded_file} {$file_path}");
|
||||
var_dump($return_var);
|
||||
var_dump($output);
|
||||
die();*/
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Non-multipart uploads (PUT method support)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue