From 4adbef4517897f7e279fab02b63ebbfda466a6fa Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Tue, 9 Aug 2016 19:22:45 +0300 Subject: [PATCH] FileManager move function + small bugfixes --- web/css/file_manager.css | 386 +++------------------- web/file_manager/fm_api.php | 28 +- web/file_manager/fm_core.php | 28 +- web/images/flat_icons.png | Bin 13365 -> 14074 bytes web/inc/i18n/ar.php | 5 + web/inc/i18n/bs.php | 5 + web/inc/i18n/cn.php | 5 + web/inc/i18n/cz.php | 5 + web/inc/i18n/da.php | 5 + web/inc/i18n/de.php | 5 + web/inc/i18n/el.php | 5 + web/inc/i18n/en.php | 5 + web/inc/i18n/es.php | 5 + web/inc/i18n/fa.php | 5 + web/inc/i18n/fi.php | 5 + web/inc/i18n/fr.php | 5 + web/inc/i18n/hu.php | 5 + web/inc/i18n/id.php | 5 + web/inc/i18n/it.php | 5 + web/inc/i18n/ja.php | 5 + web/inc/i18n/nl.php | 5 + web/inc/i18n/no.php | 5 + web/inc/i18n/pl.php | 5 + web/inc/i18n/pt-BR.php | 5 + web/inc/i18n/pt.php | 5 + web/inc/i18n/ro.php | 5 + web/inc/i18n/ru.php | 5 + web/inc/i18n/se.php | 5 + web/inc/i18n/tr.php | 5 + web/inc/i18n/tw.php | 5 + web/inc/i18n/ua.php | 5 + web/inc/i18n/vi.php | 5 + web/js/app.js | 10 +- web/js/file_manager.js | 414 +++++++++++++++++------- web/js/i18n.js.php | 3 + web/js/templates.js | 36 ++- web/templates/file_manager/main.php | 82 +---- web/templates/file_manager/tab_menu.php | 2 + 38 files changed, 563 insertions(+), 566 deletions(-) diff --git a/web/css/file_manager.css b/web/css/file_manager.css index bc9723c0..d8e5a26e 100644 --- a/web/css/file_manager.css +++ b/web/css/file_manager.css @@ -1,25 +1,12 @@ body { margin: 0; padding: 0; } .hidden { display: none; } -.l-logo { - background-color: #7B7B7B; - background-image: url("/images/sprite.png?1446554103"); - background-position: -117px -57px; - background-repeat: no-repeat; - border: 9px solid #7B7B7B; - display: inline-block; - float: left; - height: 22px; - margin-left: 0; - margin-top: 0; - width: 59px; -} +.l-logo { background-color: #7B7B7B; background-image: url("/images/sprite.png?1446554103"); background-position: -117px -57px; background-repeat: no-repeat; border: 9px solid #7B7B7B; display: inline-block; float: left; height: 22px; margin-left: 0; margin-top: 0; width: 59px; } #main{ display: inline-block; font-family: Arial; font-size: 15px; color: #777; width: 100%; } -.window { display: inline-block; float: left; /*border: 1px solid #eee;*/ width: 50%; height: 100%; background-color: #ececec; /*background: url(/images/background-dots.png) #ececec;*/ } +.window { display: inline-block; float: left; width: 50%; height: 100%; background-color: #ececec; } .window.active { background: #fff; } - .window.active .l-logo { background-color: #333; border-color: #333; } @@ -31,7 +18,7 @@ body { margin: 0; padding: 0; } .active .menu { box-shadow: 0 1px 11px -5px rgba(0, 0, 0, 0.5); } -.menu { /*background-color: #EEE;*/ display: inline-block; color: #999999; width: 100%; padding: 8px 0 7px 0; border-bottom: 1px solid #CFCFCD; border-left: 1px solid #CFCFCD; margin-left: -1px; } +.menu { display: inline-block; color: #999999; width: 100%; padding: 8px 0 7px 0; border-bottom: 1px solid #CFCFCD; border-left: 1px solid #CFCFCD; margin-left: -1px; } .menu div { display: inline-block; float: left; padding: 6px 5px 5px; font-size: 11px; margin: 0 3px; line-height: 14px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } @@ -44,6 +31,7 @@ body { margin: 0; padding: 0; } .menu div.button.small.rename { background: url("/images/flat_icons.png") no-repeat scroll -180px -180px; width: 12px; } .menu div.button.small.rights { background: url("/images/flat_icons.png") no-repeat scroll -237px -97px; } .menu div.button.small.copy { background: url("/images/flat_icons.png") no-repeat scroll -177px -210px; } +.menu div.button.small.move { background: url("/images/flat_icons.png") no-repeat scroll -231px -210px; } .menu div.button.small.download { background: url("/images/flat_icons.png") no-repeat scroll -176px -243px; } .menu div.button.small.extract { background: url("/images/flat_icons.png") no-repeat scroll -232px -35px; } .menu div.button.small.archive { background: url("/images/flat_icons.png") no-repeat scroll -175px -58px; } @@ -55,6 +43,7 @@ body { margin: 0; padding: 0; } .menu div.button.small.rename:hover { background-position: -207px -180px; } .menu div.button.small.rights:hover { background-position: -237px -122px; } .menu div.button.small.copy:hover { background-position: -204px -210px; } +.menu div.button.small.move:hover { background-position: -231px -243px; } .menu div.button.small.download:hover { background-position: -204px -243px; } .menu div.button.small.extract:hover { background: url("/images/flat_icons.png") no-repeat scroll -255px -35px; } .menu div.button.small.archive:hover { background: url("/images/flat_icons.png") no-repeat scroll -201px -35px; } @@ -69,21 +58,15 @@ body { margin: 0; padding: 0; } .menu div.button.del:hover { color: #FF5A5A; } - .menu div.button.disabled:hover, .menu div.button.disabled { opacity: 0.5; cursor: default; text-decoration: none; } - .menu .upload.button { color: #777; border: 1px solid #B7B7B7; background-color: #EAEAE8; text-transform: uppercase; font-size: 12px; text-decoration: none; margin-left: 8px; padding: 5px 12px; margin-right: 10px; border-radius: 3px; float: left; transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; font-size: 11px; line-height: 14px; } .window.active .menu .upload { border: 1px solid #AACC0D; background-color: #AACC0D; color: #FFF; } -.menu .upload.button.progress { background: url(/images/progress.gif) no-repeat /*-98px*/ -60px 0px #EBEBEB; border-color: #8A9079; color: transparent; padding: 3px 12px; height: 0; margin-top: 9px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -} - +.menu .upload.button.progress { background: url(/images/progress.gif) no-repeat /*-98px*/ -60px 0px #EBEBEB; border-color: #8A9079; color: transparent; padding: 3px 12px; height: 0; margin-top: 9px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; } .menu .upload.button.progress.done { background-color: #d1ff66; border-color: #8a9079; box-shadow: 0 0 9px 0 #d1ff38; color: transparent; height: 0; margin-top: 9px; padding: 3px 12px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; } - .menu .upload.button:hover, .window.active .menu .upload:hover { border: 1px solid #C0E60F; background-color: #C0E60F; color: #fff; } .menu .upload.button:active, .window.active .menu .upload:active { border: 1px solid #FFCC00; background-color: #FFCC00; color: #FFF; } @@ -107,7 +90,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li.file { } -/* .listing li .icon { background: url("/images/document.png") no-repeat scroll -2px 6px; float: left; margin-left: -17px; width: 13px; height: 24px; }*/ .listing li .icon { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; float: left; margin-left: -17px; width: 31px; height: 31px; margin-top: 1px; } .listing li .icon.filetype-dir { background: url("/images/flat_icons.png") no-repeat scroll -24px -98px; } .listing li .icon.filetype-link { background: url("/images/flat_icons.png") no-repeat scroll -97px -121px; } @@ -203,15 +185,7 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li .filename-holder { max-width: 40%; overflow: hidden; float: left; height: 35px; } .listing li .filename { color: #555; cursor: pointer; height: 32px; float: left; padding: 2px 7px 0 7px; border-radius: 3px; transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; } -/* .listing li .filename { background: url("/images/folder_.png") no-repeat scroll -2px 6px; color: #555; cursor: pointer; float: left; margin-left: -27px; padding-left: 19px; }*/ - .listing li .filename:hover { color: #333; background-color: #D1D0CF; } -/* -.listing li .filename:hover { color: #FFF; background-color: #6CB6B9; } -.listing li.selected .filename:hover { color: #FFF; } -.listing li.active .filename:hover { color: #FFF; background-color: #CAA335; } -.listing li.active.selected .filename:hover { color: #FFF; background-color: #60A885; } -*/ .listing li .filename a { color: #7D7D7D; text-decoration: none; } .listing li .mode { width: 51px; font-size: 11px; padding-top: 2px; } .listing li .owner { width: 11%; font-style: italic; color: #81A64F; font-size: 12px; padding-top: 2px; } @@ -221,58 +195,30 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li .time { width: 50px; font-size: 11px; padding-top: 2px; } .window.active .listing li.selected .mode { color: #7F7550; } -.window.active .listing li.selected .owner { /* color: #7F7550; */ } +.window.active .listing li.selected .owner { } .window.active .listing li.selected .size-value { color: #7F7550; } .window.active .listing li.selected .size-unit { color: #7F7550; } .window.active .listing li.selected .date { color: #7F7550; } .window.active .listing li.selected .time { color: #7F7550; } - -/* -.listing li.selected-inactive.selected { background-color: #e9e9e9; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } -.listing li.selected-inactive .mode, -.listing li.selected-inactive .time, -.listing li.selected-inactive .date { color: #999 !important; } -*/ - .listing li.selected { background-color: #DEDEDE; } -.listing.active li.selected { background-color: #ffd437 /*#7FD5D9*/; } +.listing.active li.selected { background-color: #ffd437; } .listing li.selected .filename:hover { color: #333; background-color: #F0B607; } - - - -/* ///.listing li.selected-inactive.selected.active { background-color: #dfc891; border-top: 1px solid #cdb885; border-bottom: 1px solid #cdb885; }*/ - -/* -.listing li.selected .filename { color: #333; } -.listing li.selected .date, -.listing li.selected .mode, -.listing li.selected .time { color: #777; } -.listing li.selected .owner { color: #31775A; } -.listing li.selected .size { color: #31775A; } -*/ .window.active .listing li.active { background-color: #FFDC5A; } .window.active .listing li.active .marker { background-color: #C2A84B; } .listing li.active { background-color: #DEDEDE; } .listing li.active .marker { background-color: #C2C2C2; } -/* ///.listing li.selected.active .filename { color: #fff29c; } */ .listing li.selected.active .marker { background-color: #3a8a96; } .listing li.selected-inactive { background-color: #DEDEDE; } -/*///.listing li.selected-inactive .marker { background-color: #7FD5D9; } -.listing li.selected-inactive .filename { color: #54A9A9; } */ - .listing li .filename a:hover { color: #3399FF; } .listing li:hover { background-color: #E5E5E5; cursor: pointer; } .window.active .listing li.active:hover { background-color: #FFE570; } -.listing li.selected:hover { background-color: /*#89E6EA*/#FFE570; } +.listing li.selected:hover { background-color: #FFE570; } .listing li.selected.active:hover { background-color: #FFE570; } - - - .context-menu { background-color: #333333; width: 200px; list-style-type: none; font-family: arial; padding-left: 0; } .context-menu li { border-bottom: 1px solid #555; padding: 12px 12px 12px 12px; color: #D6CEC1; font-size: 14px; cursor: pointer; } @@ -294,22 +240,16 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .context-menu.sort-order span.name, .context-menu.sort-order span.date, .context-menu.sort-order span.size, -.context-menu.sort-order span.type - { background: url("/images/flat_icons.png") repeat scroll -308px -105px; display: inline-block; padding: 12px 28px 12px 12px; width: 64px; } - - - +.context-menu.sort-order span.type { background: url("/images/flat_icons.png") repeat scroll -308px -105px; display: inline-block; padding: 12px 28px 12px 12px; width: 64px; } .context-menu.sort-order span.active { background-color: #FFCC00; color: #FFF; } - .context-menu.sort-order span:hover { background-color: #4B4B4B; color: #FFF; } .context-menu.sort-order span:active { background-color: #FFCC00; color: #FFF; } .confirm-box { background-color: #333; width: 480px; font-family: arial; margin-left: 50px; border-radius: 3px; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } -/*.confirm-box.replace { height: 230px; }*/ .confirm-box .message { color: #EBE697; font-size: 16px; padding: 25px; margin-bottom: 60px; display: inline-block; } .confirm-box .results, -.confirm-box .warning { color: #FF9500; font-size: 16px; padding: 25px; } +.confirm-box .warning { color: #ffc800; font-size: 16px; padding: 25px; } .confirm-box .warning .title, .confirm-box .message .title { color: #48B1B7; } .confirm-box .action-name { color: #B9CAD4; display: inline-block; float: left; margin-bottom: 28px; margin-left: 25px; } @@ -317,27 +257,22 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box .action-nam .checkbox { border: 1px solid #777; height: 10px; margin-right: 10px; margin-top: 3px; padding-top: 0; width: 10px; } .confirm-box .controls { border-top: 1px solid #555; display: inline-block; width: 100%; margin-bottom :9px; } -.confirm-box .controls .cancel { /*background-color: #e8e8e6;*/ border: 1px solid transparent; border-radius: 3px; color: #CCC; display: inline-block; float: left; font-size: 12px; margin: 12px 0 0 12px; padding: 7px 18px; text-transform: uppercase; cursor: pointer; } +.confirm-box .controls .cancel { border: 1px solid transparent; border-radius: 3px; color: #CCC; display: inline-block; float: left; font-size: 12px; margin: 12px 0 0 12px; padding: 7px 18px; text-transform: uppercase; cursor: pointer; } .confirm-box .controls .keep-original { color: #ccc; cursor: pointer; display: inline-block; float: left; margin: 11px 0 0 15px; padding: 7px; text-decoration: underline; } .confirm-box .controls .ok { margin: 12px 12px 0 0; border-radius: 3px; cursor: pointer; border: 1px solid #CACE33; background-color: #CACE33; color: #FFF; float: right; display: inline-block; font-size: 12px; padding: 7px 18px; text-transform: uppercase; width: 100px; text-align: center; height: 14px; } .confirm-box .controls .cancel:hover, -.confirm-box .controls .ok:hover { border: 1px solid #54BDAA; background-color: #54BDAA; /*border: 1px solid #6DB8D3; background-color: #6DB8D3;*/ color: #FFF; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } +.confirm-box .controls .ok:hover { border: 1px solid #54BDAA; background-color: #54BDAA; color: #FFF; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } .confirm-box .controls .cancel:active, .confirm-box .controls .ok:active { border: 1px solid #ccc; background-color: #ccc; } .confirm-box.delete .controls .ok { background-color: #ff9f89; border-color: #ff9f89; } .confirm-box.delete .controls .ok:hover { background-color: #FF6C6E; border-color: #FF6C6E; } - - .confirm-box .controls .keep-original:hover { color: #FFCC00; } .confirm-box .controls .keep-original:active { color: #6DB8D3; } -/*.confirm-box.delete { height: 183px; }*/ - .confirm-box .new-title { background-color: #292929; border: 1px solid #111; color: #eee; font-family: Arial; font-size: 16px; margin-bottom: 73px; margin-left: 27px; padding: 10px 14px; width: 396px; } .confirm-box .new-title:focus { border: 1px solid #FFCC00; box-shadow: 0 0 5px 0 rgba(255, 204, 0 , 0.3); } -/*.confirm-box.rename { height: 209px; } */ .confirm-box.rename .message { margin-bottom: 36px; } .confirm-box.rename .controls.replace { display: none; } .confirm-box.rename.warning .controls { display: none; } @@ -352,8 +287,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.chmod ul:last-of-type { margin-bottom: 38px; } .confirm-box.chmod li { list-style-type: none; } - -/*.confirm-box.archive { height: 468px; }*/ .confirm-box.archive .message { margin-bottom: 38px; } .confirm-box.archive.warning .controls, .confirm-box.archive .controls.replace, @@ -367,15 +300,12 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.unpack .message { margin-bottom: 0; } .confirm-box.pack .message { margin-bottom: 0; } - .confirm-box .actions select { background-color: #333333; border: 1px solid #ccc; color: #fff; font-family: Arial; font-size: 16px; margin-bottom: 27px; margin-left: 27px; padding: 10px 14px; } .confirm-box .actions .title { color: #ccc; font-family: Arial; line-height: 33px; padding-left: 27px; text-transform: capitalize; } .confirm-box .actions label { cursor: pointer; padding-left: 27px; color: #ebe697; } .confirm-box.unpack .actions { padding-bottom: 30px; } .confirm-box.unpack .actions input { margin-right: 5px; } - -/*.confirm-box.owner-mode { height: 484px; }*/ .confirm-box.owner-mode .warning { display: none; } .confirm-box.owner-mode.warning .warning { display: inline-block; } .confirm-box.owner-mode.warning .message { margin-bottom: -39px; } @@ -387,8 +317,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.owner-mode .recursive { margin-top: 30px; margin-bottom: 25px; } - - .warning-box { width: 60%; background-color: #ff9f89; border-bottom: 5px solid #ff6c6e; color: #FFF; font-family: arial; margin-left: auto; margin-right: auto; padding-bottom: 30px; margin-bottom: 50px; left: 20%; position: absolute; top: 0; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } .warning-box.inform { background-color: #72c5b2; border-color: #019174; } .warning-box.reload { width: 100px; background-color: #333; border-color: #222; z-index: 5000; left: 45%; opacity: 0.9; padding: 17px 27px; border-radius: 0 0 6px 6px; border: none; opacity: 0.9; } @@ -402,150 +330,53 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .warning-box.inform .close:hover { background-color: #019174; } - .fotorama--fullscreen .fotorama__fullscreen-icon { background-position: -64px 0 !important; } +.fileinput-button input { font-size: 14px !important; width: 90px; } -/* - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; +.progress-container { width: 100%; position: fixed; bottom: 1px; } +.progress-container .progress-elm { background-color: rgba(0, 0, 0, 0.5); border-radius: 3px; display: block; height: 12px; margin-left: auto; margin-right: auto; padding: 7px; width: 212px; } +.progress-container .progress-elm .title { color: #fff; display: inline-block; float: left; font-family: arial; font-size: 11px; margin-left: 4px; padding-right: 14px; padding-top: 0; text-transform: uppercase; } +.progress-container .progress-elm .progress { background: #ebebeb url("/images/progress.gif") no-repeat scroll 0px 0; border-color: #8a9079; border-radius: 3px; color: transparent; display: inline-block; height: 0; margin-top: 3px; padding: 3px 12px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; width: 60px; float: left; } +.progress-container .progress-elm .close { background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -428px -487px; cursor: pointer; display: inline-block; float: right; height: 7px; margin-right: 3px; margin-top: 3px; width: 7px; } +.progress-container .progress-elm .close:hover { border: 7px solid #333; margin-top: -4px; margin-right: -4px; background-color: #333; } +.progress-container .progress-elm .close:active { border: 7px solid #FFCC00; margin-top: -4px; margin-right: -4px; background-color: #FFCC00; } - box-shadow: 0 6px 15px rgba( 0, 0, 0, 0.23), 0 10px 18px rgba( 0, 0, 0, 0.16); - box-shadow: 0 3px 10px rgba(0, 0, 0, 0.23), 0 3px 10px rgba(0, 0, 0, 0.16); - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.64); +.checkbox-toolbar { float: left !important; } -*/ +.subcontext-control.hidden { display: none !important; } +.subcontext-control { color: red; } +.subcontext-menu-hidden { display: none; } +.subcontext-menu { position: absolute; background-color: yellow; padding: 10px; border: 1px solid red; } -/* +.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?1446554103") 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 20px; display: inline-block; float: left; width: 360px; } +.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; } +.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?1446554103"); width: 35px; height: 35px; background-position: -122px -283px; border-radius: 18px; } +.l-icon-shortcuts:hover { background-position: -160px -283px; } +.l-icon-shortcuts:active { background-position: -198px -283px; } - -- Для Дмитрия (удалить после прочтения): - - -- Аплоад прячет инпут, делая его прозрачным, и помещая поверх кнопку html (сделано для кроссбраузерности) - -- При стилизации кнопки для аплоада, важно задать такие же размеры для инпута с типом файла, - -- иначе он может быть больше или меньше стилизованной кнопки, что приведёт к вызову аплоад диалогового окна - -- при клике на неправильную область - - - -- вот файл инпут ----> .fileinput-button input -*/ -.fileinput-button input { - font-size: 14px !important; - width: 90px; -} - -.progress-container { - width: 100%; - position: fixed; - bottom: 1px; -} -.progress-container .progress-elm { - background-color: rgba(0, 0, 0, 0.5); - border-radius: 3px; - display: block; - height: 12px; - margin-left: auto; - margin-right: auto; - padding: 7px; - width: 212px; -} - -.progress-container .progress-elm .title { - color: #fff; - display: inline-block; - float: left; - font-family: arial; - font-size: 11px; - margin-left: 4px; - padding-right: 14px; - padding-top: 0; - text-transform: uppercase; -} - -.progress-container .progress-elm .progress { - background: #ebebeb url("/images/progress.gif") no-repeat scroll 0px 0; - border-color: #8a9079; - border-radius: 3px; - color: transparent; - display: inline-block; - height: 0; - margin-top: 3px; - padding: 3px 12px; - transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - width: 60px; - float: left; -} - -.progress-container .progress-elm .close { - background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -428px -487px; - cursor: pointer; - display: inline-block; - float: right; - height: 7px; - margin-right: 3px; - margin-top: 3px; - width: 7px; -} -.progress-container .progress-elm .close:hover { - border: 7px solid #333; - margin-top: -4px; - margin-right: -4px; - background-color: #333; -} -.progress-container .progress-elm .close:active { - border: 7px solid #FFCC00; - margin-top: -4px; - margin-right: -4px; - background-color: #FFCC00; -} - - - - - -.checkbox-toolbar { - float: left !important; -} -/*W -.check-label::before { - background-image: url("/images/sprite.png?1446554103"); - background-position: -232px -9px; - background-repeat: no-repeat; - background-size: 450px auto; - content: ""; - display: inline-block; - height: 16px; - width: 16px; - margin-top: -25px; - - border: 1px solid red; -} -input[type="checkbox"] { - display: none; -} - -.clicked-on.check-label::before, .checkbox-selected .check-label { - background-position: -225px -42px; - content: ""; - display: inline-block; - height: 27px; - left: -6px; - top: -6px; - width: 27px; -} -*/ @media (max-width: 1400px) { .listing li .filename-holder { width: 35%; } } - -@media (max-width: 1450px) { +@media (max-width: 1550px) { .menu div.button.mkfile, .menu div.button.mkdir { display: none; } .menu div.button.mkfile.small, @@ -553,14 +384,13 @@ input[type="checkbox"] { .listing li .filename-holder { max-width: 30%; } } -@media (max-width: 1320px) { +@media (max-width: 1500px) { .menu div.button.del { display: none; } .menu div.button.del.small { display: inline-block; } .listing li .filename-holder { max-width: 25%; } } - -@media (max-width: 1290px) { +@media (max-width: 1450px) { .menu div.button { display: none; } .menu div.button.medium, .menu div.button.small { display: inline-block; } @@ -572,7 +402,7 @@ input[type="checkbox"] { .listing li .mode { display: none; } } -@media (max-width: 890px) { +@media (max-width: 990px) { .window { width: 100%; } .window:nth-of-type(2){ display: none; } .listing li .owner { display: inline-block; } @@ -587,7 +417,7 @@ input[type="checkbox"] { .listing li .filename-holder { max-width: 30%; } } -@media (max-width: 600px) { +@media (max-width: 670px) { .menu div.button { display: none; } .menu div.button.medium, .menu div.button.small { display: inline-block; } @@ -615,123 +445,3 @@ input[type="checkbox"] { } -.subcontext-control.hidden { - display: none !important; -} - -.subcontext-control { - color: red; -} -.subcontext-menu-hidden { - display: none; -} - -.subcontext-menu { - position: absolute; - background-color: yellow; - padding: 10px; - border: 1px solid red; -} - -.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?1446554103") 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 20px; - display: inline-block; - float: left; - width: 360px; -} -.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; -} -.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?1446554103"); - width: 35px; - height: 35px; - background-position: -122px -283px; - border-radius: 18px; -} -.l-icon-shortcuts:hover { - background-position: -160px -283px; -} -.l-icon-shortcuts:active { - background-position: -198px -283px; -} diff --git a/web/file_manager/fm_api.php b/web/file_manager/fm_api.php index 009b65f8..0bb0effd 100644 --- a/web/file_manager/fm_api.php +++ b/web/file_manager/fm_api.php @@ -37,17 +37,29 @@ switch ($_REQUEST['action']) { case 'rename_file': $dir = $_REQUEST['dir']; - $item = $_REQUEST['item']; - $target_name = $_REQUEST['target_name']; - print json_encode($fm->renameFile($dir, $item, $target_name)); + $item = $dir . '/' . $_REQUEST['item']; + $target_name = $dir . '/' . $_REQUEST['target_name']; + print json_encode($fm->renameFile($item, $target_name)); break; case 'rename_directory': $dir = $_REQUEST['dir']; + $item = $dir.$_REQUEST['item']; + $target_name = $dir.$_REQUEST['target_name']; + + print json_encode($fm->renameDirectory($item, $target_name)); + break; + + case 'move_file': $item = $_REQUEST['item']; $target_name = $_REQUEST['target_name']; + print json_encode($fm->renameFile($item, $target_name)); + break; - print json_encode($fm->renameDirectory($dir, $item, $target_name)); + case 'move_directory': + $item = $_REQUEST['item']; + $target_name = $_REQUEST['target_name']; + print json_encode($fm->renameDirectory($item, $target_name)); break; case 'delete_files': @@ -98,11 +110,9 @@ switch ($_REQUEST['action']) { break; case 'pack_item': - $dir = $_REQUEST['dir']; - $target_dir = $_REQUEST['dir_target']; - $filename = $_REQUEST['filename']; - $item = $_REQUEST['item']; - print json_encode($fm->packItem($item, $dir, $target_dir, $filename)); + $items = $_REQUEST['items']; + $dst_item = $_REQUEST['dst_item']; + print json_encode($fm->packItem($items, $dst_item)); break; case 'backup': diff --git a/web/file_manager/fm_core.php b/web/file_manager/fm_core.php index 62cb304b..f2b65908 100644 --- a/web/file_manager/fm_core.php +++ b/web/file_manager/fm_core.php @@ -150,13 +150,18 @@ class FileManager { } } - function packItem($item, $dir, $target_dir, $filename) { - $item = $this->formatFullPath($item); - $dst_item = $this->formatFullPath($target_dir); + function packItem($items, $dst_item) { + $items_arr = explode(',', $items); + foreach($items_arr as $key => $item){ + $items_arr[$key] = $this->formatFullPath($item); + } + $items = implode(' ', $items_arr); + $dst_item = $this->formatFullPath($dst_item); $dst_item = str_replace('.tar.gz', '', $dst_item); - exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$item}", $output, $return_var); +// echo VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$items}"; + exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$items}", $output, $return_var); $error = self::check_return_code($return_var, $output); @@ -233,9 +238,12 @@ class FileManager { } } - function renameFile($dir, $item, $target_name) { - $item = $this->formatFullPath($dir . '/' . $item); - $dst_item = $this->formatFullPath($dir . '/' . $target_name); + function renameFile($item, $target_name) { +// $item = $this->formatFullPath($dir . '/' . $item); +// $dst_item = $this->formatFullPath($dir . '/' . $target_name); + + $item = $this->formatFullPath($item); + $dst_item = $this->formatFullPath($target_name); exec (VESTA_CMD . "v-move-fs-file {$this->user} {$item} {$dst_item}", $output, $return_var); @@ -254,9 +262,9 @@ class FileManager { } } - function renameDirectory($dir, $item, $target_name) { - $item = $this->formatFullPath($dir . $item); - $dst_item = $this->formatFullPath($dir . $target_name); + function renameDirectory($item, $target_name) { + $item = $this->formatFullPath($item); + $dst_item = $this->formatFullPath($target_name); if ($item == $dst_item) { return array( diff --git a/web/images/flat_icons.png b/web/images/flat_icons.png index c645adf153be460958598b1a8d32f91a46614111..f40609387e766895e71018bb777ef675b4a43f6c 100644 GIT binary patch literal 14074 zcmZ|01yodD^fr9yPU#eoZUm&k0i?T!5~LfYk&#uD|uI z?_2Nt{@=@*VeUD1Zk)5v-p}*wJ<*!#3V7I5*Z=_FDJjZn0{~JL_@cl>2U}2Wh)=

P$@))a_C^)S2Uq;a01He;2 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 ND9WqKmCKlZ_+LCJ>AnB} diff --git a/web/inc/i18n/ar.php b/web/inc/i18n/ar.php index c04b7f3f..fd7b5c46 100644 --- a/web/inc/i18n/ar.php +++ b/web/inc/i18n/ar.php @@ -591,6 +591,7 @@ $LANG['ar'] = array( 'NEW DIR' => 'مجلد جديد', 'DELETE' => 'حذف', 'RENAME' => 'إعادة تسمية', + 'MOVE' => 'MOVE', 'RIGHTS' => 'الحقوق', 'COPY' => 'نسخ', 'ARCHIVE' => 'ضغط', @@ -611,6 +612,7 @@ $LANG['ar'] = array( 'Copy' => 'نسخ', 'Cancel' => 'إلغاء', 'Rename' => 'إعادة تسمية', + 'Move' => 'Move', 'Change Rights' => 'تغيير الحقوق', 'Delete' => 'حذف', 'Extract' => 'فك ضغط', @@ -621,7 +623,9 @@ $LANG['ar'] = array( 'YOU ARE REMOVING' => 'تقوم بالحذف', 'Delete items' => 'حذف العناصر', 'Copy files' => 'نسخ الملفات', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'هل أنت متأكد أنك تريد نسخ', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'هل انت متأكد أنك تريد حذف', 'into' => 'إلى', 'existing files will be replaced' => 'الملفات الموجودة مسبقاً سوف تستبدل', @@ -674,6 +678,7 @@ $LANG['ar'] = array( 'Go to the Top of the File List' => 'إذهب إلى أعلى قائمة الملفات', 'Go to the Last File' => 'إذهب إلى آخر ملف', 'Open File / Enter Directory' => 'فتح ملف / مجلد', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'الذهاب للمجلد الأب', 'Select Current File' => 'حدد الملف الحالي', 'Select Bunch of Files' => 'حدد مجموعة ملفات', diff --git a/web/inc/i18n/bs.php b/web/inc/i18n/bs.php index ce9d3008..2801e41b 100644 --- a/web/inc/i18n/bs.php +++ b/web/inc/i18n/bs.php @@ -591,6 +591,7 @@ $LANG['bs'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['bs'] = array( 'Copy' => 'Kopirati', 'Cancel' => 'Odustati', 'Rename' => 'Izmijeniti', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Izbrisati', 'Extract' => 'Ekstraktovati', @@ -621,7 +623,9 @@ $LANG['bs'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['bs'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/cn.php b/web/inc/i18n/cn.php index 1234ada8..0e3b89cd 100644 --- a/web/inc/i18n/cn.php +++ b/web/inc/i18n/cn.php @@ -591,6 +591,7 @@ $LANG['cn'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['cn'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +623,9 @@ $LANG['cn'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['cn'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/cz.php b/web/inc/i18n/cz.php index 1c81a135..29e728c9 100644 --- a/web/inc/i18n/cz.php +++ b/web/inc/i18n/cz.php @@ -592,6 +592,7 @@ $LANG['cz'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['cz'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['cz'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['cz'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/da.php b/web/inc/i18n/da.php index 6fd4eb89..2650e694 100644 --- a/web/inc/i18n/da.php +++ b/web/inc/i18n/da.php @@ -593,6 +593,7 @@ $LANG['da'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -613,6 +614,7 @@ $LANG['da'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -623,7 +625,9 @@ $LANG['da'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -676,6 +680,7 @@ $LANG['da'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/de.php b/web/inc/i18n/de.php index 1c391505..32511012 100644 --- a/web/inc/i18n/de.php +++ b/web/inc/i18n/de.php @@ -591,6 +591,7 @@ $LANG['de'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['de'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +623,9 @@ $LANG['de'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['de'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index 22832944..4413cca0 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -592,6 +592,7 @@ $LANG['el'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['el'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['el'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['el'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/en.php b/web/inc/i18n/en.php index b9c52301..f40283d7 100644 --- a/web/inc/i18n/en.php +++ b/web/inc/i18n/en.php @@ -591,6 +591,7 @@ $LANG['en'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['en'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +623,9 @@ $LANG['en'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['en'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/es.php b/web/inc/i18n/es.php index 6a044cab..2e9f7ec9 100644 --- a/web/inc/i18n/es.php +++ b/web/inc/i18n/es.php @@ -591,6 +591,7 @@ $LANG['es'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['es'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +623,9 @@ $LANG['es'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['es'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/fa.php b/web/inc/i18n/fa.php index 28d74e70..9911a601 100644 --- a/web/inc/i18n/fa.php +++ b/web/inc/i18n/fa.php @@ -593,6 +593,7 @@ $LANG['fa'] = array( 'NEW DIR' => 'پوشه تازه', 'DELETE' => 'حذف', 'RENAME' => 'تغییر نام', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'رونوشت', 'ARCHIVE' => 'بايگاني', @@ -613,6 +614,7 @@ $LANG['fa'] = array( 'Copy' => 'كپي', 'Cancel' => 'لغو', 'Rename' => 'تغيير نام', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'حذف', 'Extract' => 'بیرون کشیدن', @@ -623,7 +625,9 @@ $LANG['fa'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'آيا از كپي كردن اطمينان داريد؟', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'آيا از حذف اطمينان داريد؟', 'into' => 'به', 'existing files will be replaced' => 'پرونده های موجود جایگزین خواهد شد', @@ -676,6 +680,7 @@ $LANG['fa'] = array( 'Go to the Top of the File List' => 'رفتن به ابتداي فهرست پرونده ها', 'Go to the Last File' => 'رفتن به آخرين پرونده', 'Open File / Enter Directory' => 'بازگردن پرونده/ورود به پوشه', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'رفتن به پوشه بالايي', 'Select Current File' => 'انتخاب فايل جاري', 'Select Bunch of Files' => 'انتخاب دسته اي پرونده ها', diff --git a/web/inc/i18n/fi.php b/web/inc/i18n/fi.php index 11d86a7c..5a16feca 100644 --- a/web/inc/i18n/fi.php +++ b/web/inc/i18n/fi.php @@ -592,6 +592,7 @@ $LANG['fi'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['fi'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['fi'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['fi'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/fr.php b/web/inc/i18n/fr.php index 6b2c6a9b..f06f61e5 100644 --- a/web/inc/i18n/fr.php +++ b/web/inc/i18n/fr.php @@ -591,6 +591,7 @@ $LANG['fr'] = array( 'NEW DIR' => 'RÉP.', 'DELETE' => 'SUPPR', 'RENAME' => 'RENOMMER', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIER', 'ARCHIVE' => 'ARCHIVER', @@ -611,6 +612,7 @@ $LANG['fr'] = array( 'Copy' => 'Copier', 'Cancel' => 'Annuler', 'Rename' => 'Renommer', + 'MOVE' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Supprimer', 'Extract' => 'Extraire', @@ -621,7 +623,9 @@ $LANG['fr'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['fr'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/hu.php b/web/inc/i18n/hu.php index a9b99bd9..1fed0348 100644 --- a/web/inc/i18n/hu.php +++ b/web/inc/i18n/hu.php @@ -595,6 +595,7 @@ $LANG['hu'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -615,6 +616,7 @@ $LANG['hu'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -625,7 +627,9 @@ $LANG['hu'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -678,6 +682,7 @@ $LANG['hu'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/id.php b/web/inc/i18n/id.php index f1965d9f..68343ab7 100644 --- a/web/inc/i18n/id.php +++ b/web/inc/i18n/id.php @@ -594,6 +594,7 @@ $LANG['id'] = array( 'NEW DIR' => 'DIREKTORI BARU', 'DELETE' => 'HAPUS', 'RENAME' => 'GANTI', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'SALIN', 'ARCHIVE' => 'ARSIP', @@ -614,6 +615,7 @@ $LANG['id'] = array( 'Copy' => 'Salin', 'Cancel' => 'Batal', 'Rename' => 'Ganti nama', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Hapus', 'Extract' => 'Ekstrak', @@ -624,7 +626,9 @@ $LANG['id'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Yakin mau disalin', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Yakin mau dihapus', 'into' => 'ke', 'existing files will be replaced' => 'file yg sudah ada akan diganti', @@ -677,6 +681,7 @@ $LANG['id'] = array( 'Go to the Top of the File List' => 'Pindah Ke atas dari Daftar File', 'Go to the Last File' => 'Pindah File terakhir', 'Open File / Enter Directory' => 'Buka File/Masuk ke Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ke Parent Directory', 'Select Current File' => 'Pilih File ini', 'Select Bunch of Files' => 'Pilih Bunch of Files', diff --git a/web/inc/i18n/it.php b/web/inc/i18n/it.php index 23fdba5d..566d4c3c 100644 --- a/web/inc/i18n/it.php +++ b/web/inc/i18n/it.php @@ -592,6 +592,7 @@ $LANG['it'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['it'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['it'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['it'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/ja.php b/web/inc/i18n/ja.php index c425a04c..459f948f 100644 --- a/web/inc/i18n/ja.php +++ b/web/inc/i18n/ja.php @@ -591,6 +591,7 @@ $LANG['ja'] = array( 'NEW DIR' => 'ディレクトリの作成', 'DELETE' => '削除', 'RENAME' => '名前の変更', + 'MOVE' => 'MOVE', 'RIGHTS' => '権限', 'COPY' => 'コピー', 'ARCHIVE' => 'アーカイブ', @@ -611,6 +612,7 @@ $LANG['ja'] = array( 'Copy' => 'コピー', 'Cancel' => 'キャンセル', 'Rename' => '名前の変更', + 'Move' => 'Move', 'Change Rights' => '権限の変更', 'Delete' => '削除', 'Extract' => '展開', @@ -621,7 +623,9 @@ $LANG['ja'] = array( 'YOU ARE REMOVING' => '削除中', 'Delete items' => '項目の削除', 'Copy files' => 'ファイルのコピー', + 'Move files' => 'Move files', 'Are you sure you want to copy' => '次のファイルをコピーしてもよろしいですか', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => '次のファイルを削除してもよろしいですか', 'into' => 'から', 'existing files will be replaced' => '既存のファイルは置き換えられます', @@ -674,6 +678,7 @@ $LANG['ja'] = array( 'Go to the Top of the File List' => 'ファイルリストの先頭に移動する', 'Go to the Last File' => '最後のファイルに移動する', 'Open File / Enter Directory' => 'ファイルを開く / ディレクトリに入る', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => '親ディレクトリに移動する', 'Select Current File' => 'ファイルを選択する', 'Select Bunch of Files' => 'ファイルを範囲選択する', diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index 5eff2d3e..9cd78966 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -592,6 +592,7 @@ $LANG['nl'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['nl'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['nl'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['nl'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/no.php b/web/inc/i18n/no.php index cd55ccf5..c583d522 100644 --- a/web/inc/i18n/no.php +++ b/web/inc/i18n/no.php @@ -592,6 +592,7 @@ $LANG['no'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['no'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['no'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['no'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index d4d509d5..3d4bd28a 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -591,6 +591,7 @@ $LANG['pl'] = array( 'NEW DIR' => 'NOWY FOLDER', 'DELETE' => 'USUŃ', 'RENAME' => 'ZMIEŃ NAZWĘ', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'KOPIUJ', 'ARCHIVE' => 'ARCHIWIZUJ', @@ -611,6 +612,7 @@ $LANG['pl'] = array( 'Copy' => 'Kopiuj', 'Cancel' => 'Anuluj', 'Rename' => 'Zmień nazwę', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Usuń', 'Extract' => 'Rozpakuj', @@ -621,7 +623,9 @@ $LANG['pl'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Czy jesteś pewny, że chcesz skopiować?', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Czy jesteś pewny, że chcesz usunąć?', 'into' => 'do', 'existing files will be replaced' => 'istniejące pliki zostaną zastąpione', @@ -674,6 +678,7 @@ $LANG['pl'] = array( 'Go to the Top of the File List' => 'Przejdź na górę listy plików', 'Go to the Last File' => 'Przejdź do ostatniego pliku', 'Open File / Enter Directory' => 'Otwórz plik/folder', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Przejdź do katalogu nadrzędnego', 'Select Current File' => 'Wybierz aktywny plik', 'Select Bunch of Files' => 'Wybierz kilka plików', diff --git a/web/inc/i18n/pt-BR.php b/web/inc/i18n/pt-BR.php index 94248614..0a4929fa 100644 --- a/web/inc/i18n/pt-BR.php +++ b/web/inc/i18n/pt-BR.php @@ -591,6 +591,7 @@ $LANG['pt-BR'] = array( 'NEW DIR' => 'NOVO DIR', 'DELETE' => 'DELETAR', 'RENAME' => 'RENOMEAR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIAR', 'ARCHIVE' => 'ARQUIVAR', @@ -611,6 +612,7 @@ $LANG['pt-BR'] = array( 'Copy' => 'Copiar', 'Cancel' => 'Cancelar', 'Rename' => 'Renomear', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Deletar', 'Extract' => 'Extrair', @@ -621,7 +623,9 @@ $LANG['pt-BR'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Tem certeza que deseja copiar', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Tem certeza que deseja deletar', 'into' => 'dentro', 'existing files will be replaced' => 'arquivos existentes serão substituídos', @@ -674,6 +678,7 @@ $LANG['pt-BR'] = array( 'Go to the Top of the File List' => 'Ir para o Início da Lista de Arquivo', 'Go to the Last File' => 'Ir para o último Arquivo', 'Open File / Enter Directory' => 'Abrir Arquivo/Digitar Diretório', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ir para o diretório principal', 'Select Current File' => 'Selecionar o Arquivo Atual', 'Select Bunch of Files' => 'Selecionar Vários Arquivos', diff --git a/web/inc/i18n/pt.php b/web/inc/i18n/pt.php index 76b8a657..dc78e38a 100644 --- a/web/inc/i18n/pt.php +++ b/web/inc/i18n/pt.php @@ -591,6 +591,7 @@ $LANG['pt'] = array( 'NEW DIR' => 'NOVO DIR', 'DELETE' => 'DELETAR', 'RENAME' => 'RENOMEAR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIAR', 'ARCHIVE' => 'ARQUIVAR', @@ -611,6 +612,7 @@ $LANG['pt'] = array( 'Copy' => 'Copiar', 'Cancel' => 'Cancelar', 'Rename' => 'Renomear', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Deletar', 'Extract' => 'Extrair', @@ -621,7 +623,9 @@ $LANG['pt'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Tem certeza que deseja copiar', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Tem certeza que deseja deletar', 'into' => 'dentro', 'existing files will be replaced' => 'arquivos existentes serão substituídos', @@ -674,6 +678,7 @@ $LANG['pt'] = array( 'Go to the Top of the File List' => 'Ir para o Início da Lista de Arquivo', 'Go to the Last File' => 'Ir para o último Arquivo', 'Open File / Enter Directory' => 'Abrir Arquivo/Digitar Diretório', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ir para o diretório principal', 'Select Current File' => 'Selecionar o Arquivo Atual', 'Select Bunch of Files' => 'Selecionar Vários Arquivos', diff --git a/web/inc/i18n/ro.php b/web/inc/i18n/ro.php index cb9fd788..77e0eb8f 100644 --- a/web/inc/i18n/ro.php +++ b/web/inc/i18n/ro.php @@ -592,6 +592,7 @@ $LANG['ro'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['ro'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['ro'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['ro'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 79bdb597..0055bf0a 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -592,6 +592,7 @@ $LANG['ru'] = array( 'NEW DIR' => 'ПАПКА', 'DELETE' => 'УДАЛИТЬ', 'RENAME' => 'ПЕРЕИМЕНОВАТЬ', + 'MOVE' => 'ПЕРЕМЕСТИТЬ', 'RIGHTS' => 'ПРАВА', 'COPY' => 'КОПИЯ', 'ARCHIVE' => 'АРХИВ', @@ -612,6 +613,7 @@ $LANG['ru'] = array( 'Copy' => 'Скопировать', 'Cancel' => 'Отмена', 'Rename' => 'Переименовать', + 'Move' => 'Пемеместить', 'Change Rights' => 'Сменить права', 'Delete' => 'Удалить', 'Extract' => 'Распаковать', @@ -622,7 +624,9 @@ $LANG['ru'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Переместить файлы', 'Are you sure you want to copy' => 'Вы уверены, что хотите скопировать', + 'Are you sure you want to move' => 'Вы уверены, что хотите переместить', 'Are you sure you want to delete' => 'Вы уверены, что хотите удалить', 'into' => 'в', 'existing files will be replaced' => 'существующие файлы будут перезаписаны', @@ -675,6 +679,7 @@ $LANG['ru'] = array( 'Go to the Top of the File List' => 'Перейти к первому файлу', 'Go to the Last File' => 'Перейти к последнему файлу', 'Open File / Enter Directory' => 'Открыть Файл/Папку', + 'Edit File' => 'Редактировать Файл', 'Go to Parent Directory' => 'Перейти в родительскую директорию', 'Select Current File' => 'Выбрать активный файл', 'Select Bunch of Files' => 'Выбрать блок файлов', diff --git a/web/inc/i18n/se.php b/web/inc/i18n/se.php index 0aa3b5e8..112ab91e 100644 --- a/web/inc/i18n/se.php +++ b/web/inc/i18n/se.php @@ -591,6 +591,7 @@ $LANG['se'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +612,7 @@ $LANG['se'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +623,9 @@ $LANG['se'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +678,7 @@ $LANG['se'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index a36dfb23..59be3cba 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -592,6 +592,7 @@ $LANG['tr'] = array( 'NEW DIR' => 'YENİ KLASÖR', 'DELETE' => 'SİL', 'RENAME' => 'YENİDEN ADLANDIR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'KOPYALA', 'ARCHIVE' => 'ARŞİVLE', @@ -612,6 +613,7 @@ $LANG['tr'] = array( 'Copy' => 'Kopyala', 'Cancel' => 'Vazgeç', 'Rename' => 'Yeniden Adlandır', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Sil', 'Extract' => 'Çıkart', @@ -622,7 +624,9 @@ $LANG['tr'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Kopyalamak istediğinizden emin misiniz', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Silmek istediğinizden emin misiniz', 'into' => 'into', 'existing files will be replaced' => 'varolan dosyalar değiştirilir', @@ -675,6 +679,7 @@ $LANG['tr'] = array( 'Go to the Top of the File List' => 'Dosya Listesinin Tepesine git', 'Go to the Last File' => 'Son Dosyaya git', 'Open File / Enter Directory' => 'Dosya Aç/Dizin Gir', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Üst Dizine Git', 'Select Current File' => 'Şuanki Dosyayı Seç', 'Select Bunch of Files' => 'Dosya Demetini Seç', diff --git a/web/inc/i18n/tw.php b/web/inc/i18n/tw.php index 405b6f61..dd04d75f 100644 --- a/web/inc/i18n/tw.php +++ b/web/inc/i18n/tw.php @@ -594,6 +594,7 @@ $LANG['tw'] = array( 'NEW DIR' => '新增資料夾', 'DELETE' => '刪除', 'RENAME' => '重新命名', + 'MOVE' => 'MOVE', 'RIGHTS' => '權限', 'COPY' => '複製', 'ARCHIVE' => '壓縮', @@ -614,6 +615,7 @@ $LANG['tw'] = array( 'Copy' => '複製', 'Cancel' => '取消', 'Rename' => '重新命名', + 'Move' => 'Move', 'Change Rights' => '修改權限', 'Delete' => '刪除', 'Extract' => '解壓縮', @@ -624,7 +626,9 @@ $LANG['tw'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => '確定要複製', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => '確定要刪除', 'into' => '資訊', 'existing files will be replaced' => '原本的檔案會被覆蓋', @@ -677,6 +681,7 @@ $LANG['tw'] = array( 'Go to the Top of the File List' => '回到檔案列表頂端', 'Go to the Last File' => '回到上個檔案', 'Open File / Enter Directory' => '開啟檔案 或 進入資料夾', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => '回到上一頁', 'Select Current File' => '選取目前的檔案', 'Select Bunch of Files' => '選取多個檔案', diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 2bebeb2f..ec29ed53 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -592,6 +592,7 @@ $LANG['ua'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +613,7 @@ $LANG['ua'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +624,9 @@ $LANG['ua'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +679,7 @@ $LANG['ua'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', diff --git a/web/inc/i18n/vi.php b/web/inc/i18n/vi.php index c226a207..eef37d80 100644 --- a/web/inc/i18n/vi.php +++ b/web/inc/i18n/vi.php @@ -591,6 +591,7 @@ $LANG['vi'] = array( 'NEW DIR' => 'Thêm thư mục mới', 'DELETE' => 'Xóa', 'RENAME' => 'Đổi tên', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'Sao chép', 'ARCHIVE' => 'Nén', @@ -611,6 +612,7 @@ $LANG['vi'] = array( 'Copy' => 'Sao chép', 'Cancel' => 'Hủy', 'Rename' => 'Đổi tên', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Xóa', 'Extract' => 'Giải nén', @@ -621,7 +623,9 @@ $LANG['vi'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Bạn có chắc chắn muốn sao chép', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Bạn có chắc chắn muốn xóa', 'into' => 'into', 'existing files will be replaced' => 'tệp tồn tại sẽ được ghi đè', @@ -674,6 +678,7 @@ $LANG['vi'] = array( 'Go to the Top of the File List' => 'Lên đầu danh sách tệp', 'Go to the Last File' => 'Di chuyển đến tệp cuối cùng', 'Open File / Enter Directory' => 'Mở tệp/Truy cập thư mục', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Về thư mục cha', 'Select Current File' => 'Chọn tệp hiện tại', 'Select Bunch of Files' => 'Chọn nhiều tệp', diff --git a/web/js/app.js b/web/js/app.js index 249fd89b..af335fa5 100644 --- a/web/js/app.js +++ b/web/js/app.js @@ -797,9 +797,9 @@ App.Ajax.request = function(method, data, callback, onError){ }*/ //App.Helpers.setAjaxBusy(method, data); data = data || {}; - + var prgs = $('.progress-container'); - + switch (method) { case 'cd': prgs.find('title').text('Opening dir'); @@ -825,8 +825,12 @@ App.Ajax.request = function(method, data, callback, onError){ prgs.find('title').text('Renaming file'); prgs.show(); break; + case 'copy_file': + case 'copy_directory': + prgs.find('title').text('Copying files'); + prgs.show(); + break; default: - break; } diff --git a/web/js/file_manager.js b/web/js/file_manager.js index cbf6ca6c..b467a0b1 100644 --- a/web/js/file_manager.js +++ b/web/js/file_manager.js @@ -314,7 +314,6 @@ FM.open = function(dir, box, callback) { 'dir': dir }; App.Ajax.request('cd', params, function(reply) { - //var tab = FM.getTabLetter(FM.CURRENT_TAB); FM.preselectedItems[tab] = []; if (reply.result == true) { var html = FM.generate_listing(reply.listing, box); @@ -324,17 +323,16 @@ FM.open = function(dir, box, callback) { } callback && callback(reply); - + var current_pwd = dir.trim() == '' ? FM.ROOT_DIR : dir; - + FM.updateTopLevelPathBar(box, tab, current_pwd); - - + var path_a = FM['TAB_A_CURRENT_PATH'] == '' ? FM.ROOT_DIR : FM['TAB_A_CURRENT_PATH']; var path_b = FM['TAB_B_CURRENT_PATH'] == '' ? FM.ROOT_DIR : FM['TAB_B_CURRENT_PATH']; var url = '/list/directory/?dir_a='+path_a+'&dir_b='+path_b; history.pushState({}, null, url); - + if (FM['CURRENT_' + tab + '_LINE'] == -1) { FM.setActive(0, FM.CURRENT_TAB); } @@ -738,7 +736,7 @@ FM.bulkOperation = function(ref) { $(ref).find('option[value=-1]').attr('selected', true); } -FM.checkBulkStatus = function(bulkStatuses, acc) { +FM.checkBulkStatus = function(bulkStatuses, acc, dont_reload) { var status = true; var msg = ''; if (bulkStatuses.length == acc.length) { @@ -760,10 +758,11 @@ FM.checkBulkStatus = function(bulkStatuses, acc) { $('#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.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box, function(){}, false); + var box = FM['TAB_' + tab]; + if(!dont_reload){ + FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); + } } } @@ -803,8 +802,6 @@ FM.humanFileSizeUnit = function(size) { 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) { @@ -825,7 +822,6 @@ FM.bulkCopyDo = function() { src = $.parseJSON(src); if (FM.isItemPseudo(src)) { - //cfr_html += '

'+src.name+'
'; return; } @@ -836,9 +832,6 @@ FM.bulkCopyDo = function() { } if (FM.isItemPseudo(src)) { - /*return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - );*/ return; } @@ -856,16 +849,18 @@ FM.bulkCopyDo = function() { dir_target: dest }; + App.Ajax.request(action, 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); + FM.checkBulkStatus(bulkStatuses, acc, true); + if(bulkStatuses.length == acc.length){ + FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); + } }); }); } @@ -960,7 +955,6 @@ FM.bulkRemoveDo = function() { bulkStatuses.push(true); } else { - //FM.showError('copy-items', reply.message); bulkStatuses.push(reply.message); } @@ -997,76 +991,6 @@ FM.bulkRemove = function() { } } - -FM.bulkRemove11111 = 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 += '
'+src.name+'
'; - } - }); - - var tpl = Tpl.get('popup_bulk', 'FM'); - tpl.set(':ACTION', App.Constants.FM_YOU_ARE_REMOVING); - 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); - - 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); - }); - }); - - } -} - FM.toggleAllItemsSelected = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; @@ -1398,6 +1322,198 @@ FM.renameItems = function() { FM.popupOpen(tpl.finalize()); } +FM.confirmMove = function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var box = FM['TAB_' + tab]; + var selected = $(FM['TAB_' + tab] ).find('.dir.active'); + if (!selected) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + var src = selected.find('.source').val(); + src = $.parseJSON(src); + + var target_name = $('#dst-name').val(); + + if (target_name.trim().length == 0) { + return FM.displayError( + App.Constants.FM_FILE_NAME_CANNOT_BE_EMPTY + ); + } + + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + var opposite_box = FM['TAB_' + opposite_tab]; + + var action = FM.isItemFile(src) ? 'move_file' : 'move_directory'; + + var params = { + item: FM['TAB_' + tab + '_CURRENT_PATH'] + '/' + src.name, + target_name: target_name + }; + + App.Ajax.request(action, params, function(reply) { + if (reply.result == true) { + FM.popupClose(); + FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); + FM.openAndSync(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], opposite_box); + } + else { + FM.showError('rename-items', reply.message); + } + }); +} + + +FM.moveItems = function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); + if (selected.length == 0) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + if (selected.length > 1) { // multi operation + return FM.bulkMove(); + } + + var src = selected.find('.source').val(); + src = $.parseJSON(src); + + if (FM.isItemPseudo(src)) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + + var dst = FM['TAB_' + opposite_tab + '_CURRENT_PATH']; + if (dst == '') { + dst = GLOBAL.ROOT_DIR; + } + + var tpl = Tpl.get('popup_move', 'FM'); + tpl.set(':FILENAME', src.full_path); + tpl.set(':DST_NAME', (dst + '/' + src.name).replace('//', '/')); + FM.popupOpen(tpl.finalize()); +} + +FM.bulkMove = 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(src)) { + cfr_html += '
'+src.name+'
'; + 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_move', 'FM'); + tpl.set(':NUMBER_OF_ITEMS', numberOfItems); + tpl.set(':DST_NAME', dest); + //popup_bulk_copy + + FM.popupOpen(tpl.finalize()); + } +} + +FM.bulkMoveDo = 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 += '
'+src.name+'
'; + numberOfItems++; + } + }); + + var bulkStatuses = []; + $.each(acc, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + var target_name = $('#dst-name').val(); + if (target_name.trim().length == 0) { + return FM.displayError( + App.Constants.FM_FILE_NAME_CANNOT_BE_EMPTY + ); + } + + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + + if (FM.isItemPseudo(src)) { + return; + } + + var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ]; + if (dest == '') { + dest = GLOBAL.ROOT_DIR; + } + var action = FM.isItemFile(src) ? 'move_file' : 'move_directory'; + + var params = { + item: FM['TAB_' + tab + '_CURRENT_PATH'] + '/' + src.name, + target_name: target_name + }; + + App.Ajax.request(action, 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); + if(bulkStatuses.length == acc.length){ + FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); + } + }); + }); + } +} + FM.confirmChmod = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; @@ -1540,9 +1656,6 @@ FM.confirmBulkChmod = function() { $('#popup .message').show().html(msg); $('#popup .ok').hide(); } - -// FM.popupClose(); -// FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); } } @@ -1635,6 +1748,7 @@ FM.popupOpen = function(html) { } FM.popupClose = function() { + $('#reload-in-time').remove(); clearTimeout(FM.Env.errorMessageHideTimeout); return $('#popup').flayer_close(); } @@ -1651,22 +1765,22 @@ FM.copyItems = function() { if (selected.length > 1) { // multi operation return FM.bulkCopy(); } - + var src = selected.find('.source').val(); src = $.parseJSON(src); - + if (FM.isItemPseudo(src)) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED ); } - + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; } - + var dst = FM['TAB_' + opposite_tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; @@ -1687,7 +1801,7 @@ FM.confirmUnpackItem = function () { App.Constants.FM_NO_FILE_SELECTED ); } - + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; @@ -1695,7 +1809,7 @@ FM.confirmUnpackItem = function () { var src = selected.find('.source').val(); src = $.parseJSON(src); - + if (FM.isItemPseudo(src)) { return FM.displayError( App.Constants.FM_NO_FILE_SELECTED @@ -1707,12 +1821,12 @@ FM.confirmUnpackItem = function () { App.Constants.FM_FILE_TYPE_NOT_SUPPORTED ); } - + var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var params = { item: src.full_path, filename: src.name, @@ -1733,47 +1847,63 @@ FM.confirmUnpackItem = function () { } FM.confirmPackItem = function () { + var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; - var selected = $(FM['TAB_' + tab] ).find('.dir.active'); + var selected = $(FM['TAB_' + tab] ).find('.dir.active, .dir.selected'); if (selected.length == 0) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED ); } - + if (selected.length == 1) { + var ref = $(selected[0]); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (FM.isItemPseudo(src)) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + } + + + if (selected.length > 0) { + var files_arr = []; + $.each(selected, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (!FM.isItemPseudo(o)) { + files_arr.push(src.full_path); + } + }); + } + + + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; } - var src = selected.find('.source').val(); - src = $.parseJSON(src); - - if (FM.isItemPseudo(src)) { - return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - ); - } - var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var params = { - item: src.full_path, - filename: src.name, - dir: FM['TAB_' + tab + '_CURRENT_PATH'], - dir_target: $('#pack-destination').val() + items: files_arr.join(','), + dst_item: $('#pack-destination').val() }; - App.Ajax.request('pack_item', params, function(reply) { if (reply.result == true) { FM.popupClose(); FM.open(FM['TAB_' + tab + '_CURRENT_PATH'], FM['TAB_' + tab]); - FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); +/// FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); } else { FM.showError('unpack_item', reply.message); @@ -1784,7 +1914,7 @@ FM.confirmPackItem = function () { FM.confirmCopyItems = function () { var tab = FM.getTabLetter(FM.CURRENT_TAB); var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); - + if (!selected) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED @@ -1822,7 +1952,6 @@ FM.confirmCopyItems = function () { App.Ajax.request(action, params, function(reply) { if (reply.result == true) { FM.popupClose(); - // FM.open(FM['TAB_' + tab + '_CURRENT_PATH'], FM['TAB_' + tab]); FM.openAndSync(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); } else { @@ -1962,12 +2091,11 @@ FM.triggerRefreshActionTrick = function() { $('#reload-in-time').remove(); FM.Env.RELOAD_IN_TIME = true; var tpl = Tpl.get('reload_in_time', 'FM'); - //tpl.set(':TIME_LEFT', FM.RELOAD_IN_TIME_SECONDS + 1); - + $('body').append(tpl.finalize()); - + var ref = $('#reload-in-time').find('.reload-in-time-counter'); - + var timeleft = FM.RELOAD_IN_TIME_SECONDS; FM.Env.reload_in_time_interval = setInterval(function() { @@ -2293,6 +2421,32 @@ $(document).ready(function() { 'target': document }); + shortcut.add("F4",function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var elm = $(FM.CURRENT_TAB).find('.dir:eq('+FM['CURRENT_'+tab+'_LINE']+')'); + + if (elm.length == 1) { + var src = $.parseJSON($(elm).find('.source').val()); + + if (src.type == 'd') { + } + else { + if(FM.IMG_FILETYPES.indexOf(src.filetype) >= 0 && src.filetype.length > 0) { + FM.fotoramaOpen(tab, 'img-' + elm.index()); + } + else { + FM.openFile(src.full_path, FM.CURRENT_TAB, elm); + } + } + } + },{ + 'type': 'keydown', + 'propagate': false, + 'disable_in_input': false, + 'target': document + }); + + shortcut.add("Enter",function() { if (FM.isPopupOpened()) { return FM.handlePopupSubmit(); @@ -2357,6 +2511,16 @@ $(document).ready(function() { 'target': document }); + shortcut.add("m",function() { + FM.moveItems(); + },{ + 'type': 'keydown', + 'propagate': false, + 'disable_in_input': true, + 'target': document + }); + + shortcut.add("shift+F6",function() { FM.renameItems(); },{ diff --git a/web/js/i18n.js.php b/web/js/i18n.js.php index 3200a356..f625beca 100644 --- a/web/js/i18n.js.php +++ b/web/js/i18n.js.php @@ -24,6 +24,7 @@ App.Constants.FM_DIRECTORY_NOT_AVAILABLE = ''; App.Constants.FM_CLOSE = ''; App.Constants.FM_COPY = ''; +App.Constants.FM_MOVE = ''; App.Constants.FM_CANCEL = ''; App.Constants.FM_RENAME = ''; App.Constants.FM_CHMOD = ''; @@ -38,8 +39,10 @@ App.Constants.FM_YOU_ARE_COPYING = ''; App.Constants.FM_YOU_ARE_REMOVING = ''; App.Constants.FM_COPY_BULK = ''; +App.Constants.FM_MOVE_BULK = ''; App.Constants.FM_CONFIRM_COPY = ''; +App.Constants.FM_CONFIRM_MOVE = ''; App.Constants.FM_CONFIRM_DELETE = ''; App.Constants.FM_INTO_KEYWORD = ''; App.Constants.FM_EXISTING_FILES_WILL_BE_REPLACED= ''; diff --git a/web/js/templates.js b/web/js/templates.js index 3c7f252c..1691c10f 100644 --- a/web/js/templates.js +++ b/web/js/templates.js @@ -64,14 +64,18 @@ App.Templates.html = {

'+App.Constants.FM_COPY+'

\ \ '], - /*popup_bulk: ['