-
Notifications
You must be signed in to change notification settings - Fork 578
Expand file tree
/
Copy pathangular-filemanager.min.js
More file actions
1 lines (1 loc) · 124 KB
/
angular-filemanager.min.js
File metadata and controls
1 lines (1 loc) · 124 KB
1
!function(r,i){"use strict";i.module("FileManagerApp",["pascalprecht.translate","ngFileUpload"]),i.element(r.document).on("shown.bs.modal",".modal",function(){r.setTimeout(function(){i.element("[autofocus]",this).focus()}.bind(this),100)}),i.element(r.document).on("click",function(){i.element("#context-menu").hide()}),i.element(r.document).on("contextmenu",'.main-navigation .table-files tr.item-list:has("td"), .item-list',function(e){var n=i.element("#context-menu");e.pageX>=r.innerWidth-n.width()&&(e.pageX-=n.width()),e.pageY>=r.innerHeight-n.height()&&(e.pageY-=n.height()),n.hide().css({left:e.pageX,top:e.pageY}).appendTo("body").show(),e.preventDefault()}),Array.prototype.find||(Array.prototype.find=function(e){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n,r=Object(this),i=r.length>>>0,a=arguments[1],t=0;t<i;t++)if(n=r[t],e.call(a,n,t,r))return n})}(window,angular),function(p){"use strict";p.module("FileManagerApp").controller("FileManagerCtrl",["$scope","$rootScope","$window","$translate","fileManagerConfig","item","fileNavigator","apiMiddleware",function(d,r,i,a,n,t,e,o){var s=i.localStorage;d.config=n,d.reverse=!1,d.predicate=["model.type","model.name"],d.order=function(e){d.reverse=d.predicate[1]===e&&!d.reverse,d.predicate[1]=e},d.query="",d.fileNavigator=new e,d.apiMiddleware=new o,d.uploadFileList=[],d.viewTemplate=s.getItem("viewTemplate")||"main-icons.html",d.fileList=[],d.temps=[],d.$watch("temps",function(){d.singleSelection()?d.temp=d.singleSelection():(d.temp=new t({rights:644}),d.temp.multiple=!0),d.temp.revert()}),d.fileNavigator.onRefresh=function(){d.temps=[],d.query="",r.selectedModalPath=d.fileNavigator.currentPath},d.setTemplate=function(e){s.setItem("viewTemplate",e),d.viewTemplate=e},d.changeLanguage=function(e){if(e)return s.setItem("language",e),a.use(e);a.use(s.getItem("language")||n.defaultLang)},d.isSelected=function(e){return-1!==d.temps.indexOf(e)},d.selectOrUnselect=function(e,n){var r=d.temps.indexOf(e),i=n&&3==n.which;if(n&&n.target.hasAttribute("prevent"))d.temps=[];else if(!(!e||i&&d.isSelected(e))){if(n&&n.shiftKey&&!i){var a=d.fileList,t=a.indexOf(e),o=d.temps[0],s=a.indexOf(o),l=void 0;if(o&&a.indexOf(o)<t){for(d.temps=[];s<=t;)l=a[s],d.isSelected(l)||d.temps.push(l),s++;return}if(o&&a.indexOf(o)>t){for(d.temps=[];t<=s;)l=a[s],d.isSelected(l)||d.temps.push(l),s--;return}}!n||i||!n.ctrlKey&&!n.metaKey?d.temps=[e]:d.isSelected(e)?d.temps.splice(r,1):d.temps.push(e)}},d.singleSelection=function(){return 1===d.temps.length&&d.temps[0]},d.totalSelecteds=function(){return{total:d.temps.length}},d.selectionHas=function(n){return d.temps.find(function(e){return e&&e.model.type===n})},d.prepareNewFolder=function(){var e=new t(null,d.fileNavigator.currentPath);return d.temps=[e],e},d.smartClick=function(e){var n=d.config.allowedActions.pickFiles;if(e.isFolder())return d.fileNavigator.folderClick(e);if("function"==typeof d.config.pickCallback&&n&&!0===d.config.pickCallback(e.model))return;return e.isImage()?d.config.previewImagesInModal?d.openImagePreview(e):d.apiMiddleware.download(e,!0):e.isEditable()?d.openEditItem(e):void 0},d.openImagePreview=function(){var e=d.singleSelection();d.apiMiddleware.apiHandler.inprocess=!0,d.modal("imagepreview",null,!0).find("#imagepreview-target").attr("src",d.getUrl(e)).unbind("load error").on("load error",function(){d.apiMiddleware.apiHandler.inprocess=!1,d.$apply()})},d.openEditItem=function(){var n=d.singleSelection();d.apiMiddleware.getContent(n).then(function(e){n.tempModel.content=n.model.content=e.result}),d.modal("edit")},d.modal=function(e,n,r){var i=p.element("#"+e);return i.modal(n?"hide":"show"),d.apiMiddleware.apiHandler.error="",d.apiMiddleware.apiHandler.asyncSuccess=!1,!r||i},d.modalWithPathSelector=function(e){return r.selectedModalPath=d.fileNavigator.currentPath,d.modal(e)},d.isInThisPath=function(e){return-1!==(d.fileNavigator.currentPath.join("/")+"/").indexOf(e+"/")},d.edit=function(){d.apiMiddleware.edit(d.singleSelection()).then(function(){d.modal("edit",!0)})},d.changePermissions=function(){d.apiMiddleware.changePermissions(d.temps,d.temp).then(function(){d.fileNavigator.refresh(),d.modal("changepermissions",!0)})},d.download=function(){var e=d.singleSelection();if(!d.selectionHas("dir"))return e?d.apiMiddleware.download(e):d.apiMiddleware.downloadMultiple(d.temps)},d.copy=function(){var e=d.singleSelection();if(e){var n=e.tempModel.name.trim();if(d.fileNavigator.fileNameExists(n)&&c(e))return d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1;if(!n)return d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1}d.apiMiddleware.copy(d.temps,r.selectedModalPath).then(function(){d.fileNavigator.refresh(),d.modal("copy",!0)})},d.compress=function(){var e=d.temp.tempModel.name.trim();return d.fileNavigator.fileNameExists(e)&&c(d.temp)?(d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1):e?void d.apiMiddleware.compress(d.temps,e,r.selectedModalPath).then(function(){if(d.fileNavigator.refresh(),!d.config.compressAsync)return d.modal("compress",!0);d.apiMiddleware.apiHandler.asyncSuccess=!0},function(){d.apiMiddleware.apiHandler.asyncSuccess=!1}):(d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1)},d.extract=function(){var e=d.temp,n=d.temp.tempModel.name.trim();return d.fileNavigator.fileNameExists(n)&&c(d.temp)?(d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1):n?void d.apiMiddleware.extract(e,n,r.selectedModalPath).then(function(){if(d.fileNavigator.refresh(),!d.config.extractAsync)return d.modal("extract",!0);d.apiMiddleware.apiHandler.asyncSuccess=!0},function(){d.apiMiddleware.apiHandler.asyncSuccess=!1}):(d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1)},d.remove=function(){d.apiMiddleware.remove(d.temps).then(function(){d.fileNavigator.refresh(),d.modal("remove",!0)})},d.move=function(){var e=d.singleSelection()||d.temps[0];if(e&&c(e))return d.apiMiddleware.apiHandler.error=a.instant("error_cannot_move_same_path"),!1;d.apiMiddleware.move(d.temps,r.selectedModalPath).then(function(){d.fileNavigator.refresh(),d.modal("move",!0)})},d.rename=function(){var e=d.singleSelection(),n=e.tempModel.name,r=e.tempModel.path.join("")===e.model.path.join("");if(!n||r&&d.fileNavigator.fileNameExists(n))return d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename"),!1;d.apiMiddleware.rename(e).then(function(){d.fileNavigator.refresh(),d.modal("rename",!0)})},d.createFolder=function(){var e=d.singleSelection(),n=e.tempModel.name;if(!n||d.fileNavigator.fileNameExists(n))return d.apiMiddleware.apiHandler.error=a.instant("error_invalid_filename");d.apiMiddleware.createFolder(e).then(function(){d.fileNavigator.refresh(),d.modal("newfolder",!0)})},d.addForUpload=function(e){d.uploadFileList=d.uploadFileList.concat(e),d.modal("uploadfile")},d.removeFromUpload=function(e){d.uploadFileList.splice(e,1)},d.uploadFiles=function(){d.apiMiddleware.upload(d.uploadFileList,d.fileNavigator.currentPath).then(function(){d.fileNavigator.refresh(),d.uploadFileList=[],d.modal("uploadfile",!0)},function(e){var n=e.result&&e.result.error||a.instant("error_uploading_files");d.apiMiddleware.apiHandler.error=n})},d.getUrl=function(e){return d.apiMiddleware.getUrl(e)};function l(n){var e=i.location.search.substr(1).split("&").filter(function(e){return n===e.split("=")[0]});return e[0]&&e[0].split("=")[1]||void 0}var c=function(e){var n=r.selectedModalPath.join("");return(e&&e.model.path.join(""))===n};d.changeLanguage(l("lang")),d.isWindows="Windows"===l("server"),d.fileNavigator.refresh()}])}(angular),function(e){"use strict";angular.module("FileManagerApp").controller("ModalFileManagerCtrl",["$scope","$rootScope","fileNavigator",function(n,r,e){n.reverse=!1,n.predicate=["model.type","model.name"],n.fileNavigator=new e,r.selectedModalPath=[],n.order=function(e){n.reverse=n.predicate[1]===e&&!n.reverse,n.predicate[1]=e},n.select=function(e){r.selectedModalPath=e.model.fullPath().split("/").filter(Boolean),n.modal("selector",!0)},n.selectCurrent=function(){r.selectedModalPath=n.fileNavigator.currentPath,n.modal("selector",!0)},n.selectedFilesAreChildOfPath=function(e){var r=e.model.fullPath();return n.temps.find(function(e){var n=e.model.fullPath();if(r==n)return!0})},r.openNavigator=function(e){n.fileNavigator.currentPath=e,n.fileNavigator.refresh(),n.modal("selector")},r.getSelectedPath=function(){var e="/"+r.selectedModalPath.filter(Boolean).join("/");return n.singleSelection()&&!n.singleSelection().isFolder()&&(e+="/"+n.singleSelection().tempModel.name),e.replace(/\/\//,"/")}}])}(),function(e){"use strict";var n=angular.module("FileManagerApp");n.directive("angularFilemanager",["$parse","fileManagerConfig",function(e,n){return{restrict:"EA",templateUrl:n.tplPath+"/main.html"}}]),n.directive("ngFile",["$parse",function(a){return{restrict:"A",link:function(e,n,r){var i=a(r.ngFile).assign;n.bind("change",function(){e.$apply(function(){i(e,n[0].files)})})}}}]),n.directive("ngRightClick",["$parse",function(a){return function(n,e,r){var i=a(r.ngRightClick);e.bind("contextmenu",function(e){n.$apply(function(){e.preventDefault(),i(n,{$event:e})})})}}])}(),function(e){"use strict";angular.module("FileManagerApp").service("chmod",function(){function e(e){if(this.owner=this.getRwxObj(),this.group=this.getRwxObj(),this.others=this.getRwxObj(),e){var n=isNaN(e)?this.convertfromCode(e):this.convertfromOctal(e);if(!n)throw new Error("Invalid chmod input data (%s)".replace("%s",e));this.owner=n.owner,this.group=n.group,this.others=n.others}}return e.prototype.toOctal=function(e,n){var r=[];return["owner","group","others"].forEach(function(e,n){r[n]=this[e].read&&this.octalValues.read||0,r[n]+=this[e].write&&this.octalValues.write||0,r[n]+=this[e].exec&&this.octalValues.exec||0}.bind(this)),(e||"")+r.join("")+(n||"")},e.prototype.toCode=function(e,n){var r=[];return["owner","group","others"].forEach(function(e,n){r[n]=this[e].read&&this.codeValues.read||"-",r[n]+=this[e].write&&this.codeValues.write||"-",r[n]+=this[e].exec&&this.codeValues.exec||"-"}.bind(this)),(e||"")+r.join("")+(n||"")},e.prototype.getRwxObj=function(){return{read:!1,write:!1,exec:!1}},e.prototype.octalValues={read:4,write:2,exec:1},e.prototype.codeValues={read:"r",write:"w",exec:"x"},e.prototype.convertfromCode=function(e){if(e=10===(e=(""+e).replace(/\s/g,"")).length?e.substr(1):e,/^[-rwxts]{9}$/.test(e)){var n=[],r=e.match(/.{1,3}/g);for(var i in r){var a=this.getRwxObj();a.read=/r/.test(r[i]),a.write=/w/.test(r[i]),a.exec=/x|t/.test(r[i]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e.prototype.convertfromOctal=function(e){if(e=4===(e=(""+e).replace(/\s/g,"")).length?e.substr(1):e,/^[0-7]{3}$/.test(e)){var n=[],r=e.match(/.{1}/g);for(var i in r){var a=this.getRwxObj();a.read=/[4567]/.test(r[i]),a.write=/[2367]/.test(r[i]),a.exec=/[1357]/.test(r[i]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e})}(),function(o){"use strict";o.module("FileManagerApp").factory("item",["fileManagerConfig","chmod",function(e,t){function n(e,n){var r,i,a={name:e&&e.name||"",path:n||[],type:e&&e.type||"file",size:e&&parseInt(e.size||0),date:(r=e&&e.date,i=(r||"").toString().split(/[- :]/),new Date(i[0],i[1]-1,i[2],i[3],i[4],i[5])),perms:new t(e&&e.rights),content:e&&e.content||"",recursive:!1,fullPath:function(){return("/"+this.path.filter(Boolean).join("/")+"/"+this.name).replace(/\/\//,"/")}};this.error="",this.processing=!1,this.model=o.copy(a),this.tempModel=o.copy(a)}return n.prototype.update=function(){o.extend(this.model,o.copy(this.tempModel))},n.prototype.revert=function(){o.extend(this.tempModel,o.copy(this.model)),this.error=""},n.prototype.isFolder=function(){return"dir"===this.model.type},n.prototype.isEditable=function(){return!this.isFolder()&&e.isEditableFilePattern.test(this.model.name)},n.prototype.isImage=function(){return e.isImageFilePattern.test(this.model.name)},n.prototype.isCompressible=function(){return this.isFolder()},n.prototype.isExtractable=function(){return!this.isFolder()&&e.isExtractableFilePattern.test(this.model.name)},n.prototype.isSelectable=function(){return this.isFolder()&&e.allowedActions.pickFolders||!this.isFolder()&&e.allowedActions.pickFiles},n}])}(angular),function(e){"use strict";var n=angular.module("FileManagerApp");n.filter("strLimit",["$filter",function(i){return function(e,n,r){return e.length<=n?e:i("limitTo")(e,n)+(r||"...")}}]),n.filter("fileExtension",["$filter",function(n){return function(e){return/\./.test(e)&&n("strLimit")(e.split(".").pop(),3,"..")||""}}]),n.filter("formatDate",["$filter",function(){return function(e){return e instanceof Date?e.toISOString().substring(0,19).replace("T"," "):(e.toLocaleString||e.toString).apply(e)}}]),n.filter("humanReadableFileSize",["$filter","fileManagerConfig",function(e,a){var t=[" kB"," MB"," GB"," TB","PB","EB","ZB","YB"],o=["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];return function(e){for(var n=-1,r=e;n++,1024<(r/=1024););var i=a.useBinarySizePrefixes?o[n]:t[n];return Math.max(r,.1).toFixed(1)+" "+i}}])}(),function(r){"use strict";r.module("FileManagerApp").provider("fileManagerConfig",function(){var n={appName:"angular-filemanager v1.5",defaultLang:"en",multiLang:!0,listUrl:"bridges/php/handler.php",uploadUrl:"bridges/php/handler.php",renameUrl:"bridges/php/handler.php",copyUrl:"bridges/php/handler.php",moveUrl:"bridges/php/handler.php",removeUrl:"bridges/php/handler.php",editUrl:"bridges/php/handler.php",getContentUrl:"bridges/php/handler.php",createFolderUrl:"bridges/php/handler.php",downloadFileUrl:"bridges/php/handler.php",downloadMultipleUrl:"bridges/php/handler.php",compressUrl:"bridges/php/handler.php",extractUrl:"bridges/php/handler.php",permissionsUrl:"bridges/php/handler.php",basePath:"/",searchForm:!0,sidebar:!0,breadcrumb:!0,allowedActions:{upload:!0,rename:!0,move:!0,copy:!0,edit:!0,changePermissions:!0,compress:!0,compressChooseName:!0,extract:!0,download:!0,downloadMultiple:!0,preview:!0,remove:!0,createFolder:!0,pickFiles:!1,pickFolders:!1},multipleDownloadFileName:"angular-filemanager.zip",filterFileExtensions:[],showExtensionIcons:!0,showSizeForDirectories:!1,useBinarySizePrefixes:!1,downloadFilesByAjax:!0,previewImagesInModal:!0,enablePermissionsRecursive:!0,compressAsync:!1,extractAsync:!1,pickCallback:null,isEditableFilePattern:/\.(txt|diff?|patch|svg|asc|cnf|cfg|conf|html?|.html|cfm|cgi|aspx?|ini|pl|py|md|css|cs|js|jsp|log|htaccess|htpasswd|gitignore|gitattributes|env|json|atom|eml|rss|markdown|sql|xml|xslt?|sh|rb|as|bat|cmd|cob|for|ftn|frm|frx|inc|lisp|scm|coffee|php[3-6]?|java|c|cbl|go|h|scala|vb|tmpl|lock|go|yml|yaml|tsv|lst)$/i,isImageFilePattern:/\.(jpe?g|gif|bmp|png|svg|tiff?)$/i,isExtractableFilePattern:/\.(gz|tar|rar|g?zip)$/i,tplPath:"src/templates"};return{$get:function(){return n},set:function(e){r.extend(n,e)}}})}(angular),function(e){"use strict";angular.module("FileManagerApp").config(["$translateProvider",function(e){e.useSanitizeValueStrategy(null),e.translations("en",{filemanager:"File Manager",language:"Language",english:"English",spanish:"Spanish",portuguese:"Portuguese",french:"French",german:"German",hebrew:"Hebrew",italian:"Italian",slovak:"Slovak",chinese_tw:"Traditional Chinese",chinese_cn:"Simple Chinese",russian:"Russian",ukrainian:"Ukrainian",turkish:"Turkish",persian:"Persian",polish:"Polish",dutch:"Dutch",korean:"Korean",confirm:"Confirm",cancel:"Cancel",close:"Close",upload_files:"Upload files",files_will_uploaded_to:"Files will be uploaded to",select_files:"Select files",uploading:"Uploading",permissions:"Permissions",select_destination_folder:"Select the destination folder",source:"Source",destination:"Destination",copy_file:"Copy file",sure_to_delete:"Are you sure to delete",change_name_move:"Change name / move",enter_new_name_for:"Enter new name for",extract_item:"Extract item",extraction_started:"Extraction started in a background process",compression_started:"Compression started in a background process",enter_folder_name_for_extraction:"Enter the folder name for the extraction of",enter_file_name_for_compression:"Enter the file name for the compression of",toggle_fullscreen:"Toggle fullscreen",edit_file:"Edit file",file_content:"File content",loading:"Loading",search:"Search",create_folder:"Create folder",create:"Create",folder_name:"Folder name",upload:"Upload",change_permissions:"Change permissions",change:"Change",details:"Details",icons:"Icons",list:"List",name:"Name",size:"Size",actions:"Actions",date:"Date",selection:"Selection",no_files_in_folder:"No files in this folder",no_folders_in_folder:"This folder not contains children folders",select_this:"Select this",go_back:"Go back",wait:"Wait",move:"Move",download:"Download",view_item:"View item",remove:"Delete",edit:"Edit",save:"Save",copy:"Copy",rename:"Rename",extract:"Extract",compress:"Compress",error_invalid_filename:"Invalid filename or already exists, specify another name",error_modifying:"An error occurred modifying the file",error_deleting:"An error occurred deleting the file or folder",error_renaming:"An error occurred renaming the file",error_copying:"An error occurred copying the file",error_compressing:"An error occurred compressing the file or folder",error_extracting:"An error occurred extracting the file",error_creating_folder:"An error occurred creating the folder",error_getting_content:"An error occurred getting the content of the file",error_changing_perms:"An error occurred changing the permissions of the file",error_uploading_files:"An error occurred uploading files",sure_to_start_compression_with:"Are you sure to compress",owner:"Owner",group:"Group",others:"Others",read:"Read",write:"Write",exec:"Exec",original:"Original",changes:"Changes",recursive:"Recursive",preview:"Item preview",open:"Open",these_elements:"these {{total}} elements",new_folder:"New folder",download_as_zip:"Download as ZIP"}),e.translations("nl",{filemanager:"Bestand beheerder",language:"Taal",english:"Engels",spanish:"Spaans",portuguese:"Portugees",french:"Frans",german:"Duits",hebrew:"Hebrews",slovak:"Slowakije",chinese:"Chinees",russian:"Russisch",ukrainian:"Oekraïens",turkish:"Turks",persian:"Perzisch",confirm:"Bevestigen",cancel:"Annuleren",close:"Sluiten",upload_files:"Bestanden uploaden",files_will_uploaded_to:"Bestanden worden geüpload naar",select_files:"Selecteer bestanden",uploading:"Uploaden",permissions:"Rechten",select_destination_folder:"Selecteer de map van bestemming",source:"Bron",destination:"Doel",copy_file:"Kopieer bestand",sure_to_delete:"Weet je zeker dat je wilt verwijderen",change_name_move:"Hernoemen / verplaatsen",enter_new_name_for:"Typ een nieuwe naam voor",extract_item:"Uitpakken",extraction_started:"Uitpakken gestart als achtergrond proces",compression_started:"Inpakken gestart als achtergrond proces",enter_folder_name_for_extraction:"Typ een map naar voor het uitpakken van",enter_file_name_for_compression:"Typ een bestandsnaam voor het inpakken van",toggle_fullscreen:"Volledigscherm",edit_file:"Bewerk bestand",file_content:"Bestandsinhoud",loading:"Laden",search:"Zoeken",create_folder:"Maak map",create:"Maak",folder_name:"Map naam",upload:"Uploaden",change_permissions:"Rechten aanpassen",change:"Aanpassen",details:"Details",icons:"Iconen",list:"Lijst",name:"Naam",size:"Grootte",actions:"Acties",date:"Datum",no_files_in_folder:"Geen bestanden in deze map",no_folders_in_folder:"Deze map bevat geen submappen",select_this:"Selecteer dit",go_back:"Ga terug",wait:"Wacht",move:"Verplaats",download:"Download",view_item:"Bekijk item",remove:"Verwijderen",edit:"Bewerken",save:"Bewerken",copy:"Kopiëren",rename:"Hernoemen",extract:"Uitpakken",compress:"Inpakken",error_invalid_filename:"Ongeldige bestandsnaam of bestand al aanwezig, kies een andere naam",error_modifying:"Er is een fout opgetreden met het bewerken van het bestand",error_deleting:"Er is een fout opgetreden tijdens het verwijderen van de bestand of map",error_renaming:"Er is een fout opgetreden tijdens het hernoemen van het bestand",error_copying:"Er is een fout opgetreden tijdens het kopiëren van het bestand",error_compressing:"Er is een fout opgetreden tijdens het inpakken van het bestand of map",error_extracting:"Er is een fout opgetreden tijdens het uitpakken van het bestand",error_creating_folder:"Er is een fout opgetreden tijdens het maken van de map",error_getting_content:"Er is een fout opgetreden tijdens het ophalen van de inhoud van het bestand",error_changing_perms:"Er is een fout opgetreden tijdens het aanpassen van de rechten van het bestand",error_uploading_files:"Er is een fout opgetreden tijdens het uploaden van de bestanden",sure_to_start_compression_with:"Weet je zeker dat je dit wilt inpakken",owner:"Eigenaar",group:"Groep",others:"Andere",read:"Lees",write:"Schrijf",exec:"Uitvoeren",original:"Origineel",changes:"Aanpassingen",recursive:"Recursieve",preview:"Item bekijken",open:"Openen",these_elements:"Deze {{total}} elementen",new_folder:"Nieuwe map",download_as_zip:"Download als ZIP"}),e.translations("he",{filemanager:"מנהל קבצים",language:"שפה",english:"אנגלית",spanish:"ספרדית",portuguese:"פורטוגזית",french:"צרפתית",german:"גרמנית",hebrew:"עברי",italian:"איטלקי",slovak:"סלובקי",chinese_tw:"סינית מסורתית",chinese_cn:"סינית פשוטה",russian:"רוּסִי",ukrainian:"אוקראיני",turkish:"טורקי",persian:"פַּרסִית",polish:"פולני",confirm:"אשר",cancel:"בטל",close:"סגור",upload_files:"העלה קבצים",files_will_uploaded_to:"הקבצים יעלו ל",select_files:"בחר קבצים",uploading:"מעלה",permissions:"הרשאות",select_destination_folder:"בחר תיקיית יעד",source:"מקור",destination:"יעד",copy_file:"העתק קובץ",sure_to_delete:"האם אתה בטוח שברצונך למחוק",change_name_move:"שנה שם / הזז",enter_new_name_for:"הקלד שם חדש עבור",extract_item:"חלץ פריט",extraction_started:"תהליך החילוץ מתבצע ברקע",compression_started:"תהליך הכיווץ מתבצע ברקע",enter_folder_name_for_extraction:"הקלד שם תיקייה לחילוץ עבור",enter_file_name_for_compression:"הזן את שם הקובץ עבור הדחיסה של",toggle_fullscreen:"הפעל/בטל מסך מלא",edit_file:"ערוך קובץ",file_content:"תוכן הקובץ",loading:"טוען",search:"חפש",create_folder:"צור תיקייה",create:"צור",folder_name:"שם תיקייה",upload:"העלה",change_permissions:"שנה הרשאות",change:"שנה",details:"פרטים",icons:"סמלים",list:"רשימה",name:"שם",size:"גודל",actions:"פעולות",date:"תאריך",selection:"בְּחִירָה",no_files_in_folder:"אין קבצים בתיקייה זו",no_folders_in_folder:"התיקייה הזו אינה כוללת תתי תיקיות",select_this:"בחר את זה",go_back:"חזור אחורה",wait:"חכה",move:"הזז",download:"הורד",view_item:"הצג פריט",remove:"מחק",edit:"ערוך",save:"ערוך",copy:"העתק",rename:"שנה שם",extract:"חלץ",compress:"כווץ",error_invalid_filename:"שם קובץ אינו תקין או קיים, ציין שם קובץ אחר",error_modifying:"התרחשה שגיאה בעת שינוי הקובץ",error_deleting:"התרחשה שגיאה בעת מחיקת הקובץ או התיקייה",error_renaming:"התרחשה שגיאה בעת שינוי שם הקובץ",error_copying:"התרחשה שגיאה בעת העתקת הקובץ",error_compressing:"התרחשה שגיאה בעת כיווץ הקובץ או התיקייה",error_extracting:"התרחשה שגיאה בעת חילוץ הקובץ או התיקייה",error_creating_folder:"התרחשה שגיאה בעת יצירת התיקייה",error_getting_content:"התרחשה שגיאה בעת בקשת תוכן הקובץ",error_changing_perms:"התרחשה שגיאה בעת שינוי הרשאות הקובץ",error_uploading_files:"התרחשה שגיאה בעת העלאת הקבצים",sure_to_start_compression_with:"האם אתה בטוח שברצונך לכווץ",owner:"בעלים",group:"קבוצה",others:"אחרים",read:"קריאה",write:"כתיבה",exec:"הרצה",original:"מקורי",changes:"שינויים",recursive:"רקורסיה",preview:"הצגת פריט",open:"פתח",new_folder:"תיקיה חדשה",download_as_zip:"להוריד כמו"}),e.translations("pt",{filemanager:"Gerenciador de arquivos",language:"Língua",english:"Inglês",spanish:"Espanhol",portuguese:"Portugues",french:"Francês",german:"Alemão",hebrew:"Hebraico",italian:"Italiano",slovak:"Eslovaco",chinese_tw:"Tradicional Chinesa",chinese_cn:"Chinês Simplificado",russian:"Russo",ukrainian:"Ucraniano",turkish:"Turco",persian:"Persa",polish:"Polonês",confirm:"Confirmar",cancel:"Cancelar",close:"Fechar",upload_files:"Carregar arquivos",files_will_uploaded_to:"Os arquivos serão enviados para",select_files:"Selecione os arquivos",uploading:"Carregar",permissions:"Autorizações",select_destination_folder:"Selecione a pasta de destino",source:"Origem",destination:"Destino",copy_file:"Copiar arquivo",sure_to_delete:"Tem certeza de que deseja apagar",change_name_move:"Renomear / mudança",enter_new_name_for:"Digite o novo nome para",extract_item:"Extrair arquivo",extraction_started:"A extração começou em um processo em segundo plano",compression_started:"A compressão começou em um processo em segundo plano",enter_folder_name_for_extraction:"Digite o nome da pasta para a extração de",enter_file_name_for_compression:"Digite o nome do arquivo para a compressão de",toggle_fullscreen:"Ativar/desativar tela cheia",edit_file:"Editar arquivo",file_content:"Conteúdo do arquivo",loading:"Carregando",search:"Localizar",create_folder:"Criar Pasta",create:"Criar",folder_name:"Nome da pasta",upload:"Fazer",change_permissions:"Alterar permissões",change:"Alterar",details:"Detalhes",icons:"Icones",list:"Lista",name:"Nome",size:"Tamanho",actions:"Ações",date:"Data",selection:"Seleção",no_files_in_folder:"Não há arquivos nesta pasta",no_folders_in_folder:"Esta pasta não contém subpastas",select_this:"Selecione esta",go_back:"Voltar",wait:"Espere",move:"Mover",download:"Baixar",view_item:"Veja o arquivo",remove:"Excluir",edit:"Editar",save:"Editar",copy:"Copiar",rename:"Renomear",extract:"Extrair",compress:"Comprimir",error_invalid_filename:"Nome do arquivo inválido ou nome de arquivo já existe, especifique outro nome",error_modifying:"Ocorreu um erro ao modificar o arquivo",error_deleting:"Ocorreu um erro ao excluir o arquivo ou pasta",error_renaming:"Ocorreu um erro ao mudar o nome do arquivo",error_copying:"Ocorreu um erro ao copiar o arquivo",error_compressing:"Ocorreu um erro ao comprimir o arquivo ou pasta",error_extracting:"Ocorreu um erro ao extrair o arquivo",error_creating_folder:"Ocorreu um erro ao criar a pasta",error_getting_content:"Ocorreu um erro ao obter o conteúdo do arquivo",error_changing_perms:"Ocorreu um erro ao alterar as permissões do arquivo",error_uploading_files:"Ocorreu um erro upload de arquivos",sure_to_start_compression_with:"Tem certeza que deseja comprimir",owner:"Proprietário",group:"Grupo",others:"Outros",read:"Leitura",write:"Escrita ",exec:"Execução",original:"Original",changes:"Mudanças",recursive:"Recursiva",preview:"Visualização",open:"Abrir",these_elements:"estes {{total}} elements",new_folder:"Nova pasta",download_as_zip:"Download como ZIP"}),e.translations("es",{filemanager:"Administrador de archivos",language:"Idioma",english:"Ingles",spanish:"Español",portuguese:"Portugues",french:"Francés",german:"Alemán",hebrew:"Hebreo",italian:"Italiano",slovak:"Eslovaco",chinese_tw:"Tradicional China",chinese_cn:"Chino Simplificado",russian:"Ruso",ukrainian:"Ucraniano",turkish:"Turco",persian:"Persa",polish:"Polaco",confirm:"Confirmar",cancel:"Cancelar",close:"Cerrar",upload_files:"Subir archivos",files_will_uploaded_to:"Los archivos seran subidos a",select_files:"Seleccione los archivos",uploading:"Subiendo",permissions:"Permisos",select_destination_folder:"Seleccione la carpeta de destino",source:"Origen",destination:"Destino",copy_file:"Copiar archivo",sure_to_delete:"Esta seguro que desea eliminar",change_name_move:"Renombrar / mover",enter_new_name_for:"Ingrese el nuevo nombre para",extract_item:"Extraer archivo",extraction_started:"La extraccion ha comenzado en un proceso de segundo plano",compression_started:"La compresion ha comenzado en un proceso de segundo plano",enter_folder_name_for_extraction:"Ingrese el nombre de la carpeta para la extraccion de",enter_file_name_for_compression:"Ingrese el nombre del archivo para la compresion de",toggle_fullscreen:"Activar/Desactivar pantalla completa",edit_file:"Editar archivo",file_content:"Contenido del archivo",loading:"Cargando",search:"Buscar",create_folder:"Crear carpeta",create:"Crear",folder_name:"Nombre de la carpeta",upload:"Subir",change_permissions:"Cambiar permisos",change:"Cambiar",details:"Detalles",icons:"Iconos",list:"Lista",name:"Nombre",size:"Tamaño",actions:"Acciones",date:"Fecha",selection:"Selección",no_files_in_folder:"No hay archivos en esta carpeta",no_folders_in_folder:"Esta carpeta no contiene sub-carpetas",select_this:"Seleccionar esta",go_back:"Volver",wait:"Espere",move:"Mover",download:"Descargar",view_item:"Ver archivo",remove:"Eliminar",edit:"Editar",save:"Editar",copy:"Copiar",rename:"Renombrar",extract:"Extraer",compress:"Comprimir",error_invalid_filename:"El nombre del archivo es invalido o ya existe",error_modifying:"Ocurrio un error al intentar modificar el archivo",error_deleting:"Ocurrio un error al intentar eliminar el archivo",error_renaming:"Ocurrio un error al intentar renombrar el archivo",error_copying:"Ocurrio un error al intentar copiar el archivo",error_compressing:"Ocurrio un error al intentar comprimir el archivo",error_extracting:"Ocurrio un error al intentar extraer el archivo",error_creating_folder:"Ocurrio un error al intentar crear la carpeta",error_getting_content:"Ocurrio un error al obtener el contenido del archivo",error_changing_perms:"Ocurrio un error al cambiar los permisos del archivo",error_uploading_files:"Ocurrio un error al subir archivos",sure_to_start_compression_with:"Esta seguro que desea comprimir",owner:"Propietario",group:"Grupo",others:"Otros",read:"Lectura",write:"Escritura",exec:"Ejecucion",original:"Original",changes:"Cambios",recursive:"Recursivo",preview:"Vista previa",open:"Abrir",these_elements:"estos {{total}} elementos",new_folder:"Nueva carpeta",download_as_zip:"Descargar como ZIP"}),e.translations("fr",{filemanager:"Gestionnaire de fichier",language:"Langue",english:"Anglais",spanish:"Espagnol",portuguese:"Portugais",french:"Français",german:"Allemand",hebrew:"Hébreu",italian:"Italien",slovak:"Slovaque",chinese_tw:"Traditionnelle Chinoise",chinese_cn:"Chinois Simplifié",russian:"Russe",ukrainian:"Ukrainien",turkish:"Turc",persian:"Persan",polish:"Polonais",confirm:"Confirmer",cancel:"Annuler",close:"Fermer",upload_files:"Télécharger des fichiers",files_will_uploaded_to:"Les fichiers seront uploadé dans",select_files:"Sélectionnez les fichiers",uploading:"Upload en cours",permissions:"Permissions",select_destination_folder:"Sélectionné le dossier de destination",source:"Source",destination:"Destination",copy_file:"Copier le fichier",sure_to_delete:"Êtes-vous sûr de vouloir supprimer",change_name_move:"Renommer / Déplacer",enter_new_name_for:"Entrer le nouveau nom pour",extract_item:"Extraires les éléments",extraction_started:"L'extraction a démarré en tâche de fond",compression_started:"La compression a démarré en tâche de fond",enter_folder_name_for_extraction:"Entrer le nom du dossier pour l'extraction de",enter_file_name_for_compression:"Entrez le nom de fichier pour la compression de",toggle_fullscreen:"Basculer en plein écran",edit_file:"Éditer le fichier",file_content:"Contenu du fichier",loading:"Chargement en cours",search:"Recherche",create_folder:"Créer un dossier",create:"Créer",folder_name:"Nom du dossier",upload:"Upload",change_permissions:"Changer les permissions",change:"Changer",details:"Details",icons:"Icons",list:"Liste",name:"Nom",size:"Taille",actions:"Actions",date:"Date",selection:"Sélection",no_files_in_folder:"Aucun fichier dans ce dossier",no_folders_in_folder:"Ce dossier ne contiens pas de dossier",select_this:"Sélectionner",go_back:"Retour",wait:"Patienter",move:"Déplacer",download:"Télécharger",view_item:"Voir l'élément",remove:"Supprimer",edit:"Éditer",save:"Éditer",copy:"Copier",rename:"Renommer",extract:"Extraire",compress:"Compresser",error_invalid_filename:"Nom de fichier invalide ou déjà existant, merci de spécifier un autre nom",error_modifying:"Une erreur est survenue pendant la modification du fichier",error_deleting:"Une erreur est survenue pendant la suppression du fichier ou du dossier",error_renaming:"Une erreur est survenue pendant le renommage du fichier",error_copying:"Une erreur est survenue pendant la copie du fichier",error_compressing:"Une erreur est survenue pendant la compression du fichier ou du dossier",error_extracting:"Une erreur est survenue pendant l'extraction du fichier",error_creating_folder:"Une erreur est survenue pendant la création du dossier",error_getting_content:"Une erreur est survenue pendant la récupération du contenu du fichier",error_changing_perms:"Une erreur est survenue pendant le changement des permissions du fichier",error_uploading_files:"Une erreur est survenue pendant l'upload des fichiers",sure_to_start_compression_with:"Êtes-vous sûre de vouloir compresser",owner:"Propriétaire",group:"Groupe",others:"Autres",read:"Lecture",write:"Écriture",exec:"Éxécution",original:"Original",changes:"Modifications",recursive:"Récursif",preview:"Aperçu",open:"Ouvrir",these_elements:"ces {{total}} éléments",new_folder:"Nouveau dossier",download_as_zip:"Télécharger comme ZIP"}),e.translations("de",{filemanager:"Dateimanager",language:"Sprache",english:"Englisch",spanish:"Spanisch",portuguese:"Portugiesisch",french:"Französisch",german:"Deutsch",hebrew:"Hebräisch",italian:"Italienisch",slovak:"Slowakisch",chinese_tw:"Traditionelles Chinesisch",chinese_cn:"Vereinfachtes Chinesisch",russian:"Russisch",ukrainian:"Ukrainisch",turkish:"Türkisch",persian:"Persisch",polish:"Polnisch",confirm:"Bestätigen",cancel:"Abbrechen",close:"Schließen",upload_files:"Hochladen von Dateien",files_will_uploaded_to:"Dateien werden hochgeladen nach",select_files:"Wählen Sie die Dateien",uploading:"Lade hoch",permissions:"Berechtigungen",select_destination_folder:"Wählen Sie einen Zielordner",source:"Quelle",destination:"Ziel",copy_file:"Datei kopieren",sure_to_delete:"Sind Sie sicher, dass Sie die Datei löschen möchten?",change_name_move:"Namen ändern / verschieben",enter_new_name_for:"Geben Sie den neuen Namen ein für",extract_item:"Archiv entpacken",extraction_started:"Entpacken hat im Hintergrund begonnen",compression_started:"Komprimierung hat im Hintergrund begonnen",enter_folder_name_for_extraction:"Geben Sie den Verzeichnisnamen für die Entpackung an von",enter_file_name_for_compression:"Geben Sie den Dateinamen für die Kompression an von",toggle_fullscreen:"Vollbild umschalten",edit_file:"Datei bearbeiten",file_content:"Dateiinhalt",loading:"Lade",search:"Suche",create_folder:"Ordner erstellen",create:"Erstellen",folder_name:"Verzeichnisname",upload:"Hochladen",change_permissions:"Berechtigungen ändern",change:"Ändern",details:"Details",icons:"Symbolansicht",list:"Listenansicht",name:"Name",size:"Größe",actions:"Aktionen",date:"Datum",selection:"Auswahl",no_files_in_folder:"Keine Dateien in diesem Ordner",no_folders_in_folder:"Dieser Ordner enthält keine Unterordner",select_this:"Auswählen",go_back:"Zurück",wait:"Warte",move:"Verschieben",download:"Herunterladen",view_item:"Datei ansehen",remove:"Löschen",edit:"Bearbeiten",save:"Bearbeiten",copy:"Kopieren",rename:"Umbenennen",extract:"Entpacken",compress:"Komprimieren",error_invalid_filename:"Ungültiger Dateiname oder existiert bereits",error_modifying:"Beim Bearbeiten der Datei ist ein Fehler aufgetreten",error_deleting:"Beim Löschen der Datei oder des Ordners ist ein Fehler aufgetreten",error_renaming:"Beim Umbennenen der Datei ist ein Fehler aufgetreten",error_copying:"Beim Kopieren der Datei ist ein Fehler aufgetreten",error_compressing:"Beim Komprimieren der Datei oder des Ordners ist ein Fehler aufgetreten",error_extracting:"Beim Entpacken der Datei ist ein Fehler aufgetreten",error_creating_folder:"Beim Erstellen des Ordners ist ein Fehler aufgetreten",error_getting_content:"Beim Laden des Dateiinhalts ist ein Fehler aufgetreten",error_changing_perms:"Beim Ändern der Dateiberechtigungen ist ein Fehler aufgetreten",error_uploading_files:"Beim Hochladen der Dateien ist ein Fehler aufgetreten",sure_to_start_compression_with:"Möchten Sie die Datei wirklich komprimieren?",owner:"Besitzer",group:"Gruppe",others:"Andere",read:"Lesen",write:"Schreiben",exec:"Ausführen",original:"Original",changes:"Änderungen",recursive:"Rekursiv",preview:"Dateivorschau",open:"Öffnen",these_elements:"diese {{total}} elemente",new_folder:"Neuer ordner",download_as_zip:"Download als ZIP"}),e.translations("sk",{filemanager:"Správca súborov",language:"Jazyk",english:"Angličtina",spanish:"Španielčina",portuguese:"Portugalčina",french:"Francúzština",german:"Nemčina",hebrew:"Hebrejčina",italian:"Italština",slovak:"Slovenčina",chinese_tw:"Tradičná Čínska",chinese_cn:"Zjednodušená Čínština",russian:"Ruský",ukrainian:"Ukrajinský",turkish:"Turecký",persian:"Perzský",polish:"Poľský",confirm:"Potvrdiť",cancel:"Zrušiť",close:"Zavrieť",upload_files:"Nahrávať súbory",files_will_uploaded_to:"Súbory budú nahrané do",select_files:"Vybrať súbory",uploading:"Nahrávanie",permissions:"Oprávnenia",select_destination_folder:"Vyberte cieľový príečinok",source:"Zdroj",destination:"Cieľ",copy_file:"Kopírovať súbor",sure_to_delete:"Ste si istý, že chcete vymazať",change_name_move:"Premenovať / Premiestniť",enter_new_name_for:"Zadajte nové meno pre",extract_item:"Rozbaliť položku",extraction_started:"Rozbaľovanie začalo v procese na pozadí",compression_started:"Kompresia začala v procese na pzoadí",enter_folder_name_for_extraction:"Zadajte názov priečinka na rozbalenie",enter_file_name_for_compression:"Zadajte názov súboru pre kompresiu",toggle_fullscreen:"Prepnúť režim na celú obrazovku",edit_file:"Upraviť súbor",file_content:"Obsah súboru",loading:"Načítavanie",search:"Hľadať",create_folder:"Vytvoriť priečinok",create:"Vytvoriť",folder_name:"Názov priećinka",upload:"Nahrať",change_permissions:"Zmeniť oprávnenia",change:"Zmeniť",details:"Podrobnosti",icons:"Ikony",list:"Zoznam",name:"Meno",size:"Veľkosť",actions:"Akcie",date:"Dátum",selection:"Výber",no_files_in_folder:"V tom to priečinku nie sú žiadne súbory",no_folders_in_folder:"Tento priečinok neobsahuje žiadne ďalšie priećinky",select_this:"Vybrať tento",go_back:"Ísť späť",wait:"Počkajte",move:"Presunúť",download:"Stiahnuť",view_item:"Zobraziť položku",remove:"Vymazať",edit:"Upraviť",save:"Upraviť",copy:"Kopírovať",rename:"Premenovať",extract:"Rozbaliť",compress:"Komprimovať",error_invalid_filename:"Neplatné alebo duplicitné meno súboru, vyberte iné meno",error_modifying:"Vyskytla sa chyba pri upravovaní súboru",error_deleting:"Vyskytla sa chyba pri mazaní súboru alebo priečinku",error_renaming:"Vyskytla sa chyba pri premenovaní súboru",error_copying:"Vyskytla sa chyba pri kopírovaní súboru",error_compressing:"Vyskytla sa chyba pri komprimovaní súboru alebo priečinka",error_extracting:"Vyskytla sa chyba pri rozbaľovaní súboru",error_creating_folder:"Vyskytla sa chyba pri vytváraní priečinku",error_getting_content:"Vyskytla sa chyba pri získavaní obsahu súboru",error_changing_perms:"Vyskytla sa chyba pri zmene oprávnení súboru",error_uploading_files:"Vyskytla sa chyba pri nahrávaní súborov",sure_to_start_compression_with:"Ste si istý, že chcete komprimovať",owner:"Vlastník",group:"Skupina",others:"Ostatní",read:"Čítanie",write:"Zapisovanie",exec:"Spúštanie",original:"Originál",changes:"Zmeny",recursive:"Rekurzívne",preview:"Náhľad položky",open:"Otvoriť",these_elements:"týchto {{total}} prvkov",new_folder:"Nový priečinok",download_as_zip:"Stiahnuť ako ZIP"}),e.translations("zh_cn",{filemanager:"文档管理器",language:"语言",english:"英语",spanish:"西班牙语",portuguese:"葡萄牙语",french:"法语",german:"德语",hebrew:"希伯来语",italian:"意大利",slovak:"斯洛伐克语",chinese_tw:"正体中文",chinese_cn:"简体中文",russian:"俄語",ukrainian:"烏克蘭",turkish:"土耳其",persian:"波斯語",polish:"波兰语",confirm:"确定",cancel:"取消",close:"关闭",upload_files:"上传文件",files_will_uploaded_to:"文件将上传到",select_files:"选择文件",uploading:"上传中",permissions:"权限",select_destination_folder:"选择目标文件",source:"源自",destination:"目的地",copy_file:"复制文件",sure_to_delete:"确定要删除?",change_name_move:"改名或移动?",enter_new_name_for:"输入新的名称",extract_item:"解压",extraction_started:"解压已经在后台开始",compression_started:"压缩已经在后台开始",enter_folder_name_for_extraction:"输入解压的目标文件夹",enter_file_name_for_compression:"输入要压缩的文件名",toggle_fullscreen:"切换全屏",edit_file:"编辑文件",file_content:"文件内容",loading:"加载中",search:"搜索",create_folder:"创建文件夹",create:"创建",folder_name:"文件夹名称",upload:"上传",change_permissions:"修改权限",change:"修改",details:"详细信息",icons:"图标",list:"列表",name:"名称",size:"尺寸",actions:"操作",date:"日期",selection:"选择",no_files_in_folder:"此文件夹没有文件",no_folders_in_folder:"此文件夹不包含子文件夹",select_this:"选择此文件",go_back:"后退",wait:"等待",move:"移动",download:"下载",view_item:"查看子项",remove:"删除",edit:"编辑",save:"编辑",copy:"复制",rename:"重命名",extract:"解压",compress:"压缩",error_invalid_filename:"非法文件名或文件已经存在, 请指定其它名称",error_modifying:"修改文件出错",error_deleting:"删除文件或文件夹出错",error_renaming:"重命名文件出错",error_copying:"复制文件出错",error_compressing:"压缩文件或文件夹出错",error_extracting:"解压文件出错",error_creating_folder:"创建文件夹出错",error_getting_content:"获取文件内容出错",error_changing_perms:"修改文件权限出错",error_uploading_files:"上传文件出错",sure_to_start_compression_with:"确定要压缩?",owner:"拥有者",group:"群组",others:"其他",read:"读取",write:"写入",exec:"执行",original:"原始",changes:"变化",recursive:"递归",preview:"成员预览",open:"打开",these_elements:"共 {{total}} 个",new_folder:"新文件夹",download_as_zip:"下载的ZIP"}),e.translations("zh_tw",{filemanager:"檔案管理員",language:"語言",english:"英語",spanish:"西班牙語",portuguese:"葡萄牙語",french:"法語",german:"德語",hebrew:"希伯來語",italian:"意大利",slovak:"斯洛伐克語",chinese_tw:"正體中文",chinese_cn:"簡體中文",russian:"俄語",ukrainian:"烏克蘭",turkish:"土耳其",persian:"波斯語",polish:"波蘭語",confirm:"確定",cancel:"取消",close:"關閉",upload_files:"上傳檔案",files_will_uploaded_to:"檔案將上傳到",select_files:"選擇檔案",uploading:"上傳中",permissions:"權限",select_destination_folder:"選擇目標檔案",source:"來自",destination:"目的地",copy_file:"複製檔案",sure_to_delete:"確定要刪除?",change_name_move:"更名或移動?",enter_new_name_for:"輸入新的名稱",extract_item:"解壓",extraction_started:"解壓已經在後台開始",compression_started:"壓縮已經在後台開始",enter_folder_name_for_extraction:"輸入解壓的目標資料匣",enter_file_name_for_compression:"輸入要壓縮的檔名",toggle_fullscreen:"切換全螢幕",edit_file:"編輯檔案",file_content:"檔案內容",loading:"載入中",search:"尋找",create_folder:"建立資料匣",create:"建立",folder_name:"資料匣名稱",upload:"上傳",change_permissions:"修改權限",change:"修改",details:"詳細內容",icons:"圖示",list:"列表",name:"名稱",size:"大小",actions:"操作",date:"日期",selection:"選擇",no_files_in_folder:"此資料匣沒有文件",no_folders_in_folder:"此資料匣不包含子資料匣",select_this:"選擇此資料匣",go_back:"後退",wait:"等待",move:"移動",download:"下載",view_item:"檢視",remove:"刪除",edit:"存檔",save:"存檔",copy:"複製",rename:"更改名稱",extract:"解壓",compress:"壓縮",error_invalid_filename:"非法檔名或檔案已經存在, 請指定其它檔名",error_modifying:"修改檔案出錯",error_deleting:"刪除檔案或資料夾出錯",error_renaming:"更改名稱發生出錯",error_copying:"複製檔案出錯",error_compressing:"壓縮檔案或資料匣出錯",error_extracting:"解壓檔案出錯",error_creating_folder:"建立資料匣出錯",error_getting_content:"獲取檔案內容出錯",error_changing_perms:"修改檔案權限出錯",error_uploading_files:"上傳檔案出錯",sure_to_start_compression_with:"確定要壓縮?",owner:"擁有者",group:"群組",others:"其他",read:"讀取",write:"寫入",exec:"執行",original:"現行",changes:"變更為",recursive:"包含所有子資料匣",preview:"預覽",open:"開啟",these_elements:"共 {{total}} 個",new_folder:"新資料匣",download_as_zip:"以ZIP下載"}),e.translations("ru",{filemanager:"Файловый менеджер",language:"Язык",english:"Английский",spanish:"Испанский",portuguese:"Португальский",french:"Французкий",german:"Немецкий",hebrew:"Хинди",italian:"итальянский",slovak:"Словацкий",chinese_tw:"Традиционный Китайский",chinese_cn:"Упрощенный Китайский",russian:"русский",ukrainian:"украинец",turkish:"турецкий",persian:"персидский",polish:"Польский",confirm:"Подьвердить",cancel:"Отменить",close:"Закрыть",upload_files:"Загрузка файлов",files_will_uploaded_to:"Файлы будут загружены в: ",select_files:"Выберите файлы",uploading:"Загрузка",permissions:"Разрешения",select_destination_folder:"Выберите папку назначения",source:"Источкик",destination:"Цель",copy_file:"Скопировать файл",sure_to_delete:"Действительно удалить?",change_name_move:"Переименовать / переместить",enter_new_name_for:"Новое имя для",extract_item:"Извлечь",extraction_started:"Извлечение начато",compression_started:"Сжатие начато",enter_folder_name_for_extraction:"Извлечь в укананную папку",enter_file_name_for_compression:"Введите имя архива",toggle_fullscreen:"На весь экран",edit_file:"Редактировать",file_content:"Содержимое файла",loading:"Загрузка",search:"Поиск",create_folder:"Создать папку",create:"Создать",folder_name:"Имя папки",upload:"Загрузить",change_permissions:"Изменить разрешения",change:"Изменить",details:"Свойства",icons:"Иконки",list:"Список",name:"Имя",size:"Размер",actions:"Действия",date:"Дата",selection:"выбор",no_files_in_folder:"Пустая папка",no_folders_in_folder:"Пустая папка",select_this:"Выбрать",go_back:"Назад",wait:"Подождите",move:"Переместить",download:"Скачать",view_item:"Отобразить содержимое",remove:"Удалить",edit:"Редактировать",save:"Редактировать",copy:"Скопировать",rename:"Переименовать",extract:"Извлечь",compress:"Сжать",error_invalid_filename:"Имя неверное или уже существует, выберите другое",error_modifying:"Произошла ошибка при модифицировании файла",error_deleting:"Произошла ошибка при удалении",error_renaming:"Произошла ошибка при переименовании файла",error_copying:"Произошла ошибка при копировании файла",error_compressing:"Произошла ошибка при сжатии",error_extracting:"Произошла ошибка при извлечении",error_creating_folder:"Произошла ошибка при создании папки",error_getting_content:"Произошла ошибка при получении содержимого",error_changing_perms:"Произошла ошибка при изменении разрешений",error_uploading_files:"Произошла ошибка при загрузке",sure_to_start_compression_with:"Действительно сжать",owner:"Владелец",group:"Группа",others:"Другие",read:"Чтение",write:"Запись",exec:"Выполнение",original:"По-умолчанию",changes:"Изменения",recursive:"Рекурсивно",preview:"Просмотр",open:"Открыть",these_elements:"всего {{total}} елементов",new_folder:"Новая папка",download_as_zip:"Download as ZIP"}),e.translations("ua",{filemanager:"Файловий менеджер",language:"Мова",english:"Англійська",spanish:"Іспанська",portuguese:"Португальська",french:"Французька",german:"Німецька",hebrew:"Хінді",italian:"італійський",slovak:"Словацька",chinese_tw:"традиційний Китайський",chinese_cn:"Cпрощена Китайська",russian:"російський",ukrainian:"український",turkish:"турецька",persian:"перський",polish:"Польська",confirm:"Підтвердити",cancel:"Відмінити",close:"Закрити",upload_files:"Завантаження файлів",files_will_uploaded_to:"Файли будуть завантажені у: ",select_files:"Виберіть файли",uploading:"Завантаження",permissions:"Дозволи",select_destination_folder:"Виберіть папку призначення",source:"Джерело",destination:"Ціль",copy_file:"Скопіювати файл",sure_to_delete:"Дійсно удалить?",change_name_move:"Перейменувати / перемістити",enter_new_name_for:"Нове ім'я для",extract_item:"Извлечь",extraction_started:"Извлечение начато",compression_started:"Архівацію почато",enter_folder_name_for_extraction:"Извлечь в укананную папку",enter_file_name_for_compression:"Введите имя архива",toggle_fullscreen:"На весь экран",edit_file:"Редагувати",file_content:"Вміст файлу",loading:"Завантаження",search:"Пошук",create_folder:"Створити папку",create:"Створити",folder_name:"Ім'я папки",upload:"Завантижити",change_permissions:"Змінити дозволи",change:"Редагувати",details:"Властивості",icons:"Іконки",list:"Список",name:"Ім'я",size:"Розмір",actions:"Дії",date:"Дата",selection:"вибір",no_files_in_folder:"Пуста папка",no_folders_in_folder:"Пуста папка",select_this:"Выбрати",go_back:"Назад",wait:"Зачекайте",move:"Перемістити",download:"Скачати",view_item:"Показати вміст",remove:"Видалити",edit:"Редагувати",save:"Редагувати",copy:"Копіювати",rename:"Переіменувати",extract:"Розархівувати",compress:"Архівувати",error_invalid_filename:"Ім'я певірне або вже існує, виберіть інше",error_modifying:"Виникла помилка при редагуванні файлу",error_deleting:"Виникла помилка при видаленні",error_renaming:"Виникла помилка при зміні імені файлу",error_copying:"Виникла помилка при коміюванні файлу",error_compressing:"Виникла помилка при стисненні",error_extracting:"Виникла помилка при розархівації",error_creating_folder:"Виникла помилка при створенні папки",error_getting_content:"Виникла помилка при отриманні вмісту",error_changing_perms:"Виникла помилка при зміні дозволів",error_uploading_files:"Виникла помилка при завантаженні",sure_to_start_compression_with:"Дійсно стиснути",owner:"Власник",group:"Група",others:"Інші",read:"Читання",write:"Запис",exec:"Виконання",original:"За замовчуванням",changes:"Зміни",recursive:"Рекурсивно",preview:"Перегляд",open:"Відкрити",these_elements:"усього {{total}} елементів",new_folder:"Нова папка",download_as_zip:"Download as ZIP"}),e.translations("tr",{filemanager:"Dosya Yöneticisi",language:"Dil",english:"İngilizce",spanish:"İspanyolca",portuguese:"Portekizce",french:"Fransızca",german:"Almanca",hebrew:"İbranice",italian:"İtalyanca",slovak:"Slovakça",chinese_tw:"Geleneksel Çin",chinese_cn:"Basitleştirilmiş Çince",russian:"Rusça",ukrainian:"Ukraynaca",turkish:"Türkçe",persian:"Farsça",polish:"Lehçe",confirm:"Onayla",cancel:"İptal Et",close:"Kapat",upload_files:"Dosya yükle",files_will_uploaded_to:"Dosyalar yüklenecektir.",select_files:"Dosya Seç",uploading:"Yükleniyor",permissions:"İzinler",select_destination_folder:"Hedef klasör seçin",source:"Kaynak",destination:"Hedef",copy_file:"Dosyayı kopyala",sure_to_delete:"Silmek istediğinden emin misin",change_name_move:"İsmini değiştir / taşı",enter_new_name_for:"Yeni ad girin",extract_item:"Dosya çıkar",extraction_started:"Çıkarma işlemi arkaplanda devam ediyor",compression_started:"Sıkıştırma işlemi arkaplanda başladı",enter_folder_name_for_extraction:"Çıkarılması için klasör adı girin",enter_file_name_for_compression:"Sıkıştırılması için dosya adı girin",toggle_fullscreen:"Tam ekran moduna geç",edit_file:"Dosyayı düzenle",file_content:"Dosya içeriği",loading:"Yükleniyor",search:"Ara",create_folder:"Klasör oluştur",create:"Oluştur",folder_name:"Klasör adı",upload:"Yükle",change_permissions:"İzinleri değiştir",change:"Değiştir",details:"Detaylar",icons:"simgeler",list:"Liste",name:"Adı",size:"Boyutu",actions:"İşlemler",date:"Tarih",selection:"Seçim",no_files_in_folder:"Klasörde hiç dosya yok",no_folders_in_folder:"Bu klasör alt klasör içermez",select_this:"Bunu seç",go_back:"Geri git",wait:"Bekle",move:"Taşı",download:"İndir",view_item:"Dosyayı görüntüle",remove:"Sil",edit:"Düzenle",save:"Düzenle",copy:"Kopyala",rename:"Yeniden Adlandır",extract:"Çıkart",compress:"Sıkıştır",error_invalid_filename:"Geçersiz dosya adı, bu dosya adına sahip dosya mevcut",error_modifying:"Dosya düzenlenirken bir hata oluştu",error_deleting:"Klasör veya dosya silinirken bir hata oluştu",error_renaming:"Dosya yeniden adlandırılırken bir hata oluştu",error_copying:"Dosya kopyalanırken bir hata oluştu",error_compressing:"Dosya veya klasör sıkıştırılırken bir hata oluştu",error_extracting:"Çıkartılırken bir hata oluştu",error_creating_folder:"Klasör oluşturulurken bir hata oluştu",error_getting_content:"Dosya detayları alınırken bir hata oluştu",error_changing_perms:"Dosyanın izini değiştirilirken bir hata oluştu",error_uploading_files:"Dosyalar yüklenirken bir hata oluştu",sure_to_start_compression_with:"Sıkıştırmak istediğinden emin misin",owner:"Sahip",group:"Grup",others:"Diğerleri",read:"Okuma",write:"Yazma",exec:"Gerçekleştir",original:"Orjinal",changes:"Değişiklikler",recursive:"Yinemeli",preview:"Dosyayı önizle",open:"Aç",these_elements:"{{total}} eleman",new_folder:"Yeni Klasör",download_as_zip:"ZIP olarak indir"}),e.translations("fa",{filemanager:"مدیریت فایل ها",language:"زبان",english:"انگلیسی",spanish:"اسپانیایی",portuguese:"پرتغالی",french:"فرانسه",german:"آلمانی",hebrew:"عبری",italian:"ایتالیایی",slovak:"اسلواک",chinese_tw:"چینی سنتی",chinese_cn:"چینی ساده شده",russian:"روسی",ukrainian:"اوکراینی",turkish:"ترکی",persian:"فارسی",polish:"لهستانی",confirm:"تایید",cancel:"رد",close:"بستن",upload_files:"آپلود فایل",files_will_uploaded_to:"فایل ها آپلود می شوند به",select_files:"انتخاب فایل ها",uploading:"در حال آپلود",permissions:"مجوز ها",select_destination_folder:"پوشه مقصد را انتخاب کنید",source:"مبدا",destination:"مقصد",copy_file:"کپی فایل",sure_to_delete:"مطمين هستید می خواهید حذف کنید؟",change_name_move:"تغییر نام و جابجایی",enter_new_name_for:"نام جدیدی وارد کنید برای",extract_item:"خارج کردن از حالت فشرده",extraction_started:"یک پروسه در پس زمینه شروع به خارج کردن از حالت فشرده کرد",compression_started:"یک پروسه در پس زمینه شروع به فشرده سازی کرد",enter_folder_name_for_extraction:"نام پوشه مقصد برای خارج کردن از حالت فشرده را وارد کنید",enter_file_name_for_compression:"نام پوشه مقصد برای فشرده سازی را وارد کنید",toggle_fullscreen:"تعویض حالت تمام صفحه",edit_file:"ویرایش",file_content:"محتویات",loading:"در حال بارگذاری",search:"جستجو",create_folder:"پوشه جدید",create:"ساختن",folder_name:"نام پوشه",upload:"آپلود",change_permissions:"تغییر مجوز ها",change:"تغییر",details:"جزییات",icons:"آیکون ها",list:"لیست",name:"نام",size:"سایز",actions:"اعمال",date:"تاریخ",selection:"انتخاب",no_files_in_folder:"هیچ فایلی در این پوشه نیست",no_folders_in_folder:"هیچ پوشه ای داخل این پوشه قرار ندارد",select_this:"انتخاب",go_back:"بازگشت",wait:"منتظر بمانید",move:"جابجایی",download:"دانلود",view_item:"مشاهده این مورد",remove:"حذف",edit:"ویرایش",save:"ویرایش",copy:"کپی",rename:"تغییر نام",extract:"خروج از حالت فشرده",compress:"فشرده سازی",error_invalid_filename:"نام فایل مورد درست نیست و یا قبلا استفاده شده است، لطفا نام دیگری وارد کنید",error_modifying:"در هنگام تغییر فایل خطایی پیش آمد",error_deleting:"در هنگام حذف فایل خطایی پیش آمد",error_renaming:"در هنگام تغییر نام فایل خطایی پیش آمد",error_copying:"در هنگام کپی کردن فایل خطایی پیش آمد",error_compressing:"در هنگام فشرده سازی فایل خطایی پیش آمد",error_extracting:"در هنگام خارک کردن فایل از حالت فشرده خطایی پیش آمد",error_creating_folder:"در هنگام ساخت پوشه خطایی پیش امد",error_getting_content:"در هنگام بارگذاری محتویات فایل خطایی رخ داد",error_changing_perms:"در هنگام تغییر مجوز های فایل خطایی رخ داد",error_uploading_files:"در آپلود فایل خطایی رخ داد",sure_to_start_compression_with:"مطمئن هستید فشرده سازی انجام شد؟",owner:"مالک فایل",group:"گروه",others:"دیگران",read:"خواندن",write:"نوشتن",exec:"اجرا کردن",original:"اصلی",changes:"تغییرات",recursive:"بازگشتی",preview:"پیش نمایش",open:"باز کردن",these_elements:"تعداد {{total}} مورد",new_folder:"پوشه جدید",download_as_zip:"به عنوان فایل فشرده دانلود شود"}),e.translations("pl",{filemanager:"Menadżer plików",language:"Język",english:"Angielski",spanish:"Hiszpański",portuguese:"Portugalski",french:"Francuski",german:"Niemiecki",hebrew:"Hebrajski",italian:"Włoski",slovak:"Słowacki",chinese_tw:"Tradycyjny Chiński",chinese_cn:"Chiński Uproszczony",russian:"Rosyjski",ukrainian:"Ukraiński",turkish:"Turecki",persian:"Perski",polish:"Polski",confirm:"Potwierdź",cancel:"Anuluj",close:"Zamknij",upload_files:"Wgraj pliki",files_will_uploaded_to:"Pliki będą umieszczone w katalogu",select_files:"Wybierz pliki",uploading:"Ładowanie",permissions:"Uprawnienia",select_destination_folder:"Wybierz folder docelowy",source:"Źródło",destination:"Cel",copy_file:"Kopiuj plik",sure_to_delete:"Jesteś pewien, że chcesz skasować",change_name_move:"Zmień nazwę / przenieś",enter_new_name_for:"Wpisz nową nazwę dla",extract_item:"Rozpakuj element",extraction_started:"Rozpakowywanie rozpoczęło się w tle",compression_started:"Kompresowanie rozpoczęło się w tle",enter_folder_name_for_extraction:"Wpisz nazwę folderu do rozpakowania",enter_file_name_for_compression:"Wpisz nazwę folderu do skompresowania",toggle_fullscreen:"Tryb pełnoekranowy",edit_file:"Edytuj plik",file_content:"Zawartość pliku",loading:"Ładowanie",search:"Szukaj",create_folder:"Stwórz folder",create:"Utwórz",folder_name:"Nazwa folderu",upload:"Wgraj",change_permissions:"Zmień uprawnienia",change:"Zmień",details:"Szczegóły",icons:"Ikony",list:"Lista",name:"Nazwa",size:"Rozmiar",actions:"Akcje",date:"Data",selection:"Zaznaczone",no_files_in_folder:"Brak plików w tym folderze",no_folders_in_folder:"Ten folder nie zawiera podfolderów",select_this:"Wybierz ten",go_back:"W górę",wait:"Wait",move:"Przenieś",download:"Pobierz",view_item:"Wyświetl",remove:"Usuń",edit:"Edycja",save:"Edycja",copy:"Kopiuj",rename:"Zmień nazwę",extract:"Rozpakuj",compress:"Skompresuj",error_invalid_filename:"Błędna nazwa pliku lub plik o takiej nazwie już istnieje, proszę użyć innej nazwy",error_modifying:"Wystąpił błąd podczas modyfikowania pliku",error_deleting:"Wystąpił błąd podczas usuwania pliku lub folderu",error_renaming:"Wystąpił błąd podczas zmiany nazwy pliku",error_copying:"Wystąpił błąd podczas kopiowania pliku",error_compressing:"Wystąpił błąd podczas kompresowania pliku lub folderu",error_extracting:"Wystąpił błąd podczas rozpakowywania pliku",error_creating_folder:"Wystąpił błąd podczas tworzenia nowego folderu",error_getting_content:"Wystąpił błąd podczas pobierania zawartości pliku",error_changing_perms:"Wystąpił błąd podczas zmiany uprawnień pliku",error_uploading_files:"Wystąpił błąd podczas wgrywania plików",sure_to_start_compression_with:"Jesteś pewien, że chcesz skompresować",owner:"Właściciel",group:"Grupa",others:"Inni",read:"Odczyt",write:"Zapis",exec:"Wykonywanie",original:"Oryginał",changes:"Zmiany",recursive:"Rekursywnie",preview:"Podgląd elementu",open:"Otwórz",these_elements:"te {{total}} elementy?",new_folder:"Nowy folder",download_as_zip:"Pobierz jako ZIP"}),e.translations("it",{filemanager:"Gestore File",language:"Lingua",english:"Inglese",spanish:"Spagnolo",portuguese:"Portoghese",french:"Francese",german:"Tedesco",hebrew:"Ebraico",slovak:"Slovacco",chinese_tw:"Cinese Tradizionale",chinese_cn:"Cinese",russian:"Russo",ukrainian:"Ucraino",turkish:"Turco",persian:"Persiano",polish:"Polacco",confirm:"Conferma",cancel:"Annulla",close:"Chiudi",upload_files:"Carica files",files_will_uploaded_to:"I files saranno caricati in",select_files:"Seleziona i files",uploading:"Trasferimento",permissions:"Permessi",select_destination_folder:"Select carterlla di destinazione",source:"Sorgente",destination:"Destinazione",copy_file:"Copia file",sure_to_delete:"Sicuro di voler eliminare",change_name_move:"Rinomina / sposta",enter_new_name_for:"Inserisci nuovo nome per",extract_item:"Estrai elemento",extraction_started:"Decompressione avviata da un processo in background",compression_started:"Compressione avviata da un processo in background",enter_folder_name_for_extraction:"Inserisci nome cartella per l'estrazione di",enter_file_name_for_compression:"Inserisci nome file per la compressione di",toggle_fullscreen:"Passa a schermo intero",edit_file:"Modifica file",file_content:"Contenuto del file",loading:"Caricamento",search:"Cerca",create_folder:"Crea cartella",create:"Crea",folder_name:"Nome cartella",upload:"Upload",change_permissions:"Modifica permessi",change:"Modifica",details:"Dettagli",icons:"Icone",list:"Lista",name:"Nome",size:"Dimensione",actions:"Azioni",date:"Data",selection:"Selezione",no_files_in_folder:"Nessun file nella cartella",no_folders_in_folder:"Questa cartella non contiene altre cartelle",select_this:"Seleziona questo",go_back:"Indietro",wait:"Attendere",move:"Sposta",download:"Scarica",view_item:"Visualizza elemento",remove:"Elimina",edit:"Modifica",save:"Modifica",copy:"Copia",rename:"Rinomina",extract:"Estrai",compress:"Comprimi",error_invalid_filename:"Nome file non valido o già esistente, specificarne un'altro",error_modifying:"Errore durante la modifica del file",error_deleting:"Errore durante l'eliminazione del file o della cartella",error_renaming:"Errore durante la rinomina del file",error_copying:"Errore durante la copia del file",error_compressing:"Errore durante la compressione del file o della cartella",error_extracting:"Errore durante l'estrazione del file",error_creating_folder:"Errore nella creazione della cartella",error_getting_content:"Errore nel recupero del contenuto del file",error_changing_perms:"Errore durante la modifica dei permessi del file",error_uploading_files:"Errore durante il trasferimento dei files",sure_to_start_compression_with:"Sicuro di voler comprimere",owner:"Proprietario",group:"Gruppo",others:"Altri",read:"Lettura",write:"Scrittura",exec:"Esecuzione",original:"Originario",changes:"Cambiamenti",recursive:"Ricorsivo",preview:"Anteprima",open:"Apri",these_elements:"questi {{total}} elementi",new_folder:"Nuova cartella",download_as_zip:"Scarica come file ZIP"}),e.translations("kr",{filemanager:"파일 관리자",language:"언어",english:"영어",spanish:"스페인어",portuguese:"포르투갈어",french:"프랑스어",german:"독일어",hebrew:"히브리어",italian:"이탈리아어",slovak:"슬로바키아어",chinese_tw:"중국어 번체",chinese_cn:"중국어 간체",russian:"러시아어",ukrainian:"우크라이나어",turkish:"터키어",persian:"페르시아어",polish:"폴란드어",dutch:"네덜란드어",confirm:"확인",cancel:"취소",close:"닫기",upload_files:"파일 업로드",files_will_uploaded_to:"업로드 경로",select_files:"파일 선택",uploading:"업로딩",permissions:"권한",select_destination_folder:"폴더 선택",source:"원본 경로",destination:"대상 경로",copy_file:"파일 복사",sure_to_delete:"선택한 폴더 및 파일을 삭제 하시겠습니까?",change_name_move:"이름 변경 / 이동",enter_new_name_for:"새로운 이름 입력",extract_item:"압축 풀기",extraction_started:"압축풀기 작업이 시작되었습니다. (작업은 백그라운드에서 진행됩니다.)",compression_started:"폴더압축 작업이 시작되었습니다. (작업은 백그라운드에서 진행됩니다.)",enter_folder_name_for_extraction:"압축 해제 할 폴더명 입력",enter_file_name_for_compression:"압축 파일 이름 입력",toggle_fullscreen:"전체 화면",edit_file:"파일 내용 수정",file_content:"파일 내용",loading:"로딩중",search:"검색",create_folder:"새폴더",create:"생성",folder_name:"폴더명",upload:"업로드",change_permissions:"권한 변경",change:"변경",details:"상세보기",icons:"아이콘",list:"목록",name:"이름",size:"크기",actions:"최근 작업",date:"날짜",selection:"선택된 폴더 및 파일",no_files_in_folder:"파일 목록이 없습니다.",no_folders_in_folder:"하위 폴더 목록이 없습니다.",select_this:"선택",go_back:"뒤로",wait:"대기중",move:"이동",download:"다운로드",view_item:"보기",remove:"삭제",edit:"수정",save:"저장",copy:"복사",rename:"이름 변경",extract:"압축 풀기",compress:"압축 하기",error_invalid_filename:"파일 이름이 잘못된 형식이거나 이미 존재하는 파일 이름입니다. 다른 이름으로 입력해 주세요.",error_modifying:"파일 수정중 오류가 발생하였습니다.",error_deleting:"파일 및 폴더 삭제중 오류가 발생하였습니다.",error_renaming:"파일 이름 변경 중 오류가 발생하였습니다.",error_copying:"파일 복사 중 오류가 발생하였습니다.",error_compressing:"폴더 및 파일을 압축하는 도중 오류가 발생하였습니다.",error_extracting:"파일 압축을 푸는 도중 오류가 발생하였습니다.",error_creating_folder:"폴더 생성 중 오류가 발생하였습니다.",error_getting_content:"파일 내용을 가져오는 도중 오류가 발생하였습니다.",error_changing_perms:"권한 변경 중 오류가 발생하였습니다.",error_uploading_files:"파일 업로드 중 오류가 발생하였습니다.",sure_to_start_compression_with:"폴더 및 파일 압축을 하시겠습니까?",owner:"소유자",group:"그룹",others:"기타",read:"읽기",write:"쓰기",exec:"실행",original:"변경 전",changes:"변경 후",recursive:"하위 폴더 및 파일 포함 변경",preview:"미리보기",open:"열기",these_elements:"({{total}}개 파일 및 폴더)",new_folder:"새 폴더",download_as_zip:"ZIP 파일 다운로드"})}])}(),function(e){"use strict";angular.module("FileManagerApp").service("apiHandler",["$http","$q","$window","$translate","$httpParamSerializer","Upload",function(l,d,c,p,m,s){l.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";function e(){this.inprocess=!1,this.asyncSuccess=!1,this.error=""}return e.prototype.deferredHandler=function(e,n,r,i){return e&&"object"==typeof e||(this.error="Error %s - Bridge response error, please check the API docs or this ajax response.".replace("%s",r)),404==r&&(this.error="Error 404 - Backend bridge is not working, please check the ajax response."),e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&i&&(this.error=i),this.error?n.reject(e):n.resolve(e)},e.prototype.list=function(e,n,r,i){var a=this,t=r||a.deferredHandler,o=d.defer(),s={action:"list",path:n,fileExtensions:i&&i.length?i:void 0};return a.inprocess=!0,a.error="",l.post(e,s).then(function(e){t(e.data,o,e.status)},function(e){t(e.data,o,e.status,"Unknown error listing, check the response")}).finally(function(){a.inprocess=!1}),o.promise},e.prototype.copy=function(e,n,r,i){var a=this,t=d.defer(),o={action:"copy",items:n,newPath:r};return i&&1===n.length&&(o.singleFilename=i),a.inprocess=!0,a.error="",l.post(e,o).then(function(e){a.deferredHandler(e.data,t,e.status)},function(e){a.deferredHandler(e.data,t,e.status,p.instant("error_copying"))}).finally(function(){a.inprocess=!1}),t.promise},e.prototype.move=function(e,n,r){var i=this,a=d.defer(),t={action:"move",items:n,newPath:r};return i.inprocess=!0,i.error="",l.post(e,t).then(function(e){i.deferredHandler(e.data,a,e.status)},function(e){i.deferredHandler(e.data,a,e.status,p.instant("error_moving"))}).finally(function(){i.inprocess=!1}),a.promise},e.prototype.remove=function(e,n){var r=this,i=d.defer(),a={action:"remove",items:n};return r.inprocess=!0,r.error="",l.post(e,a).then(function(e){r.deferredHandler(e.data,i,e.status)},function(e){r.deferredHandler(e.data,i,e.status,p.instant("error_deleting"))}).finally(function(){r.inprocess=!1}),i.promise},e.prototype.upload=function(e,n,r){var i=this,a=d.defer();i.inprocess=!0,i.progress=0,i.error="";for(var t={destination:n},o=0;o<r.length;o++)t["file-"+o]=r[o];return r&&r.length&&s.upload({url:e,data:t}).then(function(e){i.deferredHandler(e.data,a,e.status)},function(e){i.deferredHandler(e.data,a,e.status,"Unknown error uploading files")},function(e){i.progress=Math.min(100,parseInt(100*e.loaded/e.total))-1}).finally(function(){i.inprocess=!1,i.progress=0}),a.promise},e.prototype.getContent=function(e,n){var r=this,i=d.defer(),a={action:"getContent",item:n};return r.inprocess=!0,r.error="",l.post(e,a).then(function(e){r.deferredHandler(e.data,i,e.status)},function(e){r.deferredHandler(e.data,i,e.status,p.instant("error_getting_content"))}).finally(function(){r.inprocess=!1}),i.promise},e.prototype.edit=function(e,n,r){var i=this,a=d.defer(),t={action:"edit",item:n,content:r};return i.inprocess=!0,i.error="",l.post(e,t).then(function(e){i.deferredHandler(e.data,a,e.status)},function(e){i.deferredHandler(e.data,a,e.status,p.instant("error_modifying"))}).finally(function(){i.inprocess=!1}),a.promise},e.prototype.rename=function(e,n,r){var i=this,a=d.defer(),t={action:"rename",item:n,newItemPath:r};return i.inprocess=!0,i.error="",l.post(e,t).then(function(e){i.deferredHandler(e.data,a,e.status)},function(e){i.deferredHandler(e.data,a,e.status,p.instant("error_renaming"))}).finally(function(){i.inprocess=!1}),a.promise},e.prototype.getUrl=function(e,n){return n&&[e,m({action:"download",path:n})].join("?")},e.prototype.download=function(e,n,r,i,a){var t=this,o=this.getUrl(e,n);if(!i||a||!c.saveAs)return c.saveAs||c.console.log("Your browser dont support ajax download, downloading by default"),!!c.open(o,"_blank","");var s=d.defer();return t.inprocess=!0,l.get(o).then(function(e){var n=new c.Blob([e.data]);s.resolve(e.data),c.saveAs(n,r)},function(e){t.deferredHandler(e.data,s,e.status,p.instant("error_downloading"))}).finally(function(){t.inprocess=!1}),s.promise},e.prototype.downloadMultiple=function(e,n,r,i,a){var t=this,o=d.defer(),s=[e,m({action:"downloadMultiple",items:n,toFilename:r})].join("?");return i&&!a&&c.saveAs?(t.inprocess=!0,l.get(e).then(function(e){var n=new c.Blob([e.data]);o.resolve(e.data),c.saveAs(n,r)},function(e){t.deferredHandler(e.data,o,e.status,p.instant("error_downloading"))}).finally(function(){t.inprocess=!1}),o.promise):(c.saveAs||c.console.log("Your browser dont support ajax download, downloading by default"),!!c.open(s,"_blank",""))},e.prototype.compress=function(e,n,r,i){var a=this,t=d.defer(),o={action:"compress",items:n,destination:i,compressedFilename:r};return a.inprocess=!0,a.error="",l.post(e,o).then(function(e){a.deferredHandler(e.data,t,e.status)},function(e){a.deferredHandler(e.data,t,e.status,p.instant("error_compressing"))}).finally(function(){a.inprocess=!1}),t.promise},e.prototype.extract=function(e,n,r,i){var a=this,t=d.defer(),o={action:"extract",item:n,destination:i,folderName:r};return a.inprocess=!0,a.error="",l.post(e,o).then(function(e){a.deferredHandler(e.data,t,e.status)},function(e){a.deferredHandler(e.data,t,e.status,p.instant("error_extracting"))}).finally(function(){a.inprocess=!1}),t.promise},e.prototype.changePermissions=function(e,n,r,i,a){var t=this,o=d.defer(),s={action:"changePermissions",items:n,perms:r,permsCode:i,recursive:!!a};return t.inprocess=!0,t.error="",l.post(e,s).then(function(e){t.deferredHandler(e.data,o,e.status)},function(e){t.deferredHandler(e.data,o,e.status,p.instant("error_changing_perms"))}).finally(function(){t.inprocess=!1}),o.promise},e.prototype.createFolder=function(e,n){var r=this,i=d.defer(),a={action:"createFolder",newPath:n};return r.inprocess=!0,r.error="",l.post(e,a).then(function(e){r.deferredHandler(e.data,i,e.status)},function(e){r.deferredHandler(e.data,i,e.status,p.instant("error_creating_folder"))}).finally(function(){r.inprocess=!1}),i.promise},e}])}(),function(e){"use strict";angular.module("FileManagerApp").service("apiMiddleware",["$window","fileManagerConfig","apiHandler",function(i,o,e){function n(){this.apiHandler=new e}return n.prototype.getPath=function(e){return"/"+e.join("/")},n.prototype.getFileList=function(e){return(e||[]).map(function(e){return e&&e.model.fullPath()})},n.prototype.getFilePath=function(e){return e&&e.model.fullPath()},n.prototype.list=function(e,n){return this.apiHandler.list(o.listUrl,this.getPath(e),n)},n.prototype.copy=function(e,n){var r=this.getFileList(e),i=1===r.length?e[0].tempModel.name:void 0;return this.apiHandler.copy(o.copyUrl,r,this.getPath(n),i)},n.prototype.move=function(e,n){var r=this.getFileList(e);return this.apiHandler.move(o.moveUrl,r,this.getPath(n))},n.prototype.remove=function(e){var n=this.getFileList(e);return this.apiHandler.remove(o.removeUrl,n)},n.prototype.upload=function(e,n){if(!i.FormData)throw new Error("Unsupported browser version");var r=this.getPath(n);return this.apiHandler.upload(o.uploadUrl,r,e)},n.prototype.getContent=function(e){var n=this.getFilePath(e);return this.apiHandler.getContent(o.getContentUrl,n)},n.prototype.edit=function(e){var n=this.getFilePath(e);return this.apiHandler.edit(o.editUrl,n,e.tempModel.content)},n.prototype.rename=function(e){var n=this.getFilePath(e),r=e.tempModel.fullPath();return this.apiHandler.rename(o.renameUrl,n,r)},n.prototype.getUrl=function(e){var n=this.getFilePath(e);return this.apiHandler.getUrl(o.downloadFileUrl,n)},n.prototype.download=function(e,n){var r=this.getFilePath(e),i=e.model.name;if(!e.isFolder())return this.apiHandler.download(o.downloadFileUrl,r,i,o.downloadFilesByAjax,n)},n.prototype.downloadMultiple=function(e,n){var r=this.getFileList(e),i=(new Date).getTime().toString().substr(8,13)+"-"+o.multipleDownloadFileName;return this.apiHandler.downloadMultiple(o.downloadMultipleUrl,r,i,o.downloadFilesByAjax,n)},n.prototype.compress=function(e,n,r){var i=this.getFileList(e);return this.apiHandler.compress(o.compressUrl,i,n,this.getPath(r))},n.prototype.extract=function(e,n,r){var i=this.getFilePath(e);return this.apiHandler.extract(o.extractUrl,i,n,this.getPath(r))},n.prototype.changePermissions=function(e,n){var r=this.getFileList(e),i=n.tempModel.perms.toCode(),a=n.tempModel.perms.toOctal(),t=!!n.tempModel.recursive;return this.apiHandler.changePermissions(o.permissionsUrl,r,i,a,t)},n.prototype.createFolder=function(e){var n=e.tempModel.fullPath();return this.apiHandler.createFolder(o.createFolderUrl,n)},n}])}(),function(e){"use strict";angular.module("FileManagerApp").service("fileNavigator",["apiMiddleware","fileManagerConfig","item",function(e,n,s){function r(){this.apiMiddleware=new e,this.requesting=!1,this.fileList=[],this.currentPath=this.getBasePath(),this.history=[],this.error="",this.onRefresh=function(){}}return r.prototype.getBasePath=function(){var e=(n.basePath||"").replace(/^\//,"");return e.trim()?e.split("/"):[]},r.prototype.deferredHandler=function(e,n,r,i){return e&&"object"==typeof e||(this.error="Error %s - Bridge response error, please check the API docs or this ajax response.".replace("%s",r)),404==r&&(this.error="Error 404 - Backend bridge is not working, please check the ajax response."),200==r&&(this.error=null),!this.error&&e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&i&&(this.error=i),this.error?n.reject(e):n.resolve(e)},r.prototype.list=function(){return this.apiMiddleware.list(this.currentPath,this.deferredHandler.bind(this))},r.prototype.refresh=function(){var n=this;n.currentPath.length||(n.currentPath=this.getBasePath());var r=n.currentPath.join("/");return n.requesting=!0,n.fileList=[],n.list().then(function(e){n.fileList=(e.result||[]).map(function(e){return new s(e,n.currentPath)}),n.buildTree(r),n.onRefresh()}).finally(function(){n.requesting=!1})},r.prototype.buildTree=function(e){var n,r=[],i={};function t(e,n,r){var i=r?r+"/"+n.model.name:n.model.name;if(e.name&&e.name.trim()&&0!==r.trim().indexOf(e.name)&&(e.nodes=[]),e.name!==r)e.nodes.forEach(function(e){t(e,n,r)});else{for(var a in e.nodes)if(e.nodes[a].name===i)return;e.nodes.push({item:n,name:i,nodes:[]})}e.nodes=e.nodes.sort(function(e,n){return e.name.toLowerCase()<n.name.toLowerCase()?-1:e.name.toLowerCase()===n.name.toLowerCase()?0:1})}for(var a in this.history.length||this.history.push({name:this.getBasePath()[0]||"",nodes:[]}),function e(n,r){for(var i in r.push(n),n.nodes)e(n.nodes[i],r)}(this.history[0],r),n=e,(i=r.filter(function(e){return e.name===n})[0])&&(i.nodes=[]),this.fileList){var o=this.fileList[a];o instanceof s&&o.isFolder()&&t(this.history[0],o,e)}},r.prototype.folderClick=function(e){this.currentPath=[],e&&e.isFolder()&&(this.currentPath=e.model.fullPath().split("/").splice(1)),this.refresh()},r.prototype.upDir=function(){this.currentPath[0]&&(this.currentPath=this.currentPath.slice(0,-1),this.refresh())},r.prototype.goTo=function(e){this.currentPath=this.currentPath.slice(0,e+1),this.refresh()},r.prototype.fileNameExists=function(n){return this.fileList.find(function(e){return n&&e.model.name.trim()===n.trim()})},r.prototype.listHasFolders=function(){return this.fileList.find(function(e){return"dir"===e.model.type})},r.prototype.getCurrentFolderName=function(){return this.currentPath.slice(-1)[0]||"/"},r}])}(),angular.module("FileManagerApp").run(["$templateCache",function(e){e.put("src/templates/current-folder-breadcrumb.html",'<ol class="breadcrumb">\n <li>\n <a href="" ng-click="fileNavigator.goTo(-1)">\n {{"filemanager" | translate}}\n </a>\n </li>\n <li ng-repeat="(key, dir) in fileNavigator.currentPath track by key" ng-class="{\'active\':$last}" class="animated fast fadeIn">\n <a href="" ng-show="!$last" ng-click="fileNavigator.goTo(key)">\n {{dir | strLimit : 8}}\n </a>\n <span ng-show="$last">\n {{dir | strLimit : 12}}\n </span>\n </li>\n</ol>'),e.put("src/templates/item-context-menu.html",'<div id="context-menu" class="dropdown clearfix animated fast fadeIn">\n <ul class="dropdown-menu dropdown-right-click" role="menu" aria-labelledby="dropdownMenu" ng-show="temps.length">\n\n <li ng-show="singleSelection() && singleSelection().isFolder()">\n <a href="" tabindex="-1" ng-click="smartClick(singleSelection())">\n <i class="glyphicon glyphicon-folder-open"></i> {{\'open\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.pickCallback && singleSelection() && singleSelection().isSelectable()">\n <a href="" tabindex="-1" ng-click="config.pickCallback(singleSelection().model)">\n <i class="glyphicon glyphicon-hand-up"></i> {{\'select_this\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.download && !selectionHas(\'dir\') && singleSelection()">\n <a href="" tabindex="-1" ng-click="download()">\n <i class="glyphicon glyphicon-cloud-download"></i> {{\'download\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.downloadMultiple && !selectionHas(\'dir\') && !singleSelection()">\n <a href="" tabindex="-1" ng-click="download()">\n <i class="glyphicon glyphicon-cloud-download"></i> {{\'download_as_zip\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.preview && singleSelection().isImage() && singleSelection()">\n <a href="" tabindex="-1" ng-click="openImagePreview()">\n <i class="glyphicon glyphicon-picture"></i> {{\'view_item\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.rename && singleSelection()">\n <a href="" tabindex="-1" ng-click="modal(\'rename\')">\n <i class="glyphicon glyphicon-edit"></i> {{\'rename\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.move">\n <a href="" tabindex="-1" ng-click="modalWithPathSelector(\'move\')">\n <i class="glyphicon glyphicon-arrow-right"></i> {{\'move\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.copy && !selectionHas(\'dir\')">\n <a href="" tabindex="-1" ng-click="modalWithPathSelector(\'copy\')">\n <i class="glyphicon glyphicon-log-out"></i> {{\'copy\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.edit && singleSelection() && singleSelection().isEditable()">\n <a href="" tabindex="-1" ng-click="openEditItem()">\n <i class="glyphicon glyphicon-pencil"></i> {{\'edit\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.changePermissions">\n <a href="" tabindex="-1" ng-click="modal(\'changepermissions\')">\n <i class="glyphicon glyphicon-lock"></i> {{\'permissions\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.compress && (!singleSelection() || selectionHas(\'dir\'))">\n <a href="" tabindex="-1" ng-click="modal(\'compress\')">\n <i class="glyphicon glyphicon-compressed"></i> {{\'compress\' | translate}}\n </a>\n </li>\n\n <li ng-show="config.allowedActions.extract && singleSelection() && singleSelection().isExtractable()">\n <a href="" tabindex="-1" ng-click="modal(\'extract\')">\n <i class="glyphicon glyphicon-export"></i> {{\'extract\' | translate}}\n </a>\n </li>\n\n <li class="divider" ng-show="config.allowedActions.remove"></li>\n \n <li ng-show="config.allowedActions.remove">\n <a href="" tabindex="-1" ng-click="modal(\'remove\')">\n <i class="glyphicon glyphicon-trash"></i> {{\'remove\' | translate}}\n </a>\n </li>\n\n </ul>\n\n <ul class="dropdown-menu dropdown-right-click" role="menu" aria-labelledby="dropdownMenu" ng-show="!temps.length">\n <li ng-show="config.allowedActions.createFolder">\n <a href="" tabindex="-1" ng-click="modal(\'newfolder\') && prepareNewFolder()">\n <i class="glyphicon glyphicon-plus"></i> {{\'new_folder\' | translate}}\n </a>\n </li>\n <li ng-show="config.allowedActions.upload">\n <a href="" tabindex="-1" ng-click="modal(\'uploadfile\')">\n <i class="glyphicon glyphicon-cloud-upload"></i> {{\'upload_files\' | translate}}\n </a>\n </li>\n </ul>\n</div>'),e.put("src/templates/main-icons.html",'<div class="iconset noselect">\n <div class="item-list clearfix" ng-click="selectOrUnselect(null, $event)" ng-right-click="selectOrUnselect(null, $event)" prevent="true">\n <div class="col-120" ng-repeat="item in $parent.fileList = (fileNavigator.fileList | filter: {model:{name: query}})" ng-show="!fileNavigator.requesting && !fileNavigator.error">\n <a href="" class="thumbnail text-center" ng-click="selectOrUnselect(item, $event)" ng-dblclick="smartClick(item)" ng-right-click="selectOrUnselect(item, $event)" title="{{item.model.name}} ({{item.model.size | humanReadableFileSize}})" ng-class="{selected: isSelected(item)}">\n <div class="item-icon">\n <i class="glyphicon glyphicon-folder-open" ng-show="item.model.type === \'dir\'"></i>\n <i class="glyphicon glyphicon-file" data-ext="{{ item.model.name | fileExtension }}" ng-show="item.model.type === \'file\'" ng-class="{\'item-extension\': config.showExtensionIcons}"></i>\n </div>\n {{item.model.name | strLimit : 11 }}\n </a>\n </div>\n </div>\n\n <div ng-show="fileNavigator.requesting">\n <div ng-include="config.tplPath + \'/spinner.html\'"></div>\n </div>\n\n <div class="alert alert-warning" ng-show="!fileNavigator.requesting && fileNavigator.fileList.length < 1 && !fileNavigator.error">\n {{"no_files_in_folder" | translate}}...\n </div>\n \n <div class="alert alert-danger" ng-show="!fileNavigator.requesting && fileNavigator.error">\n {{ fileNavigator.error }}\n </div>\n</div>'),e.put("src/templates/main-table-modal.html",'<table class="table table-condensed table-modal-condensed mb0">\n <thead>\n <tr>\n <th>\n <a href="" ng-click="order(\'model.name\')">\n {{"name" | translate}}\n <span class="sortorder" ng-show="predicate[1] === \'model.name\'" ng-class="{reverse:reverse}"></span>\n </a>\n </th>\n <th class="text-right"></th>\n </tr>\n </thead>\n <tbody class="file-item">\n <tr ng-show="fileNavigator.requesting">\n <td colspan="2">\n <div ng-include="config.tplPath + \'/spinner.html\'"></div>\n </td>\n </tr>\n <tr ng-show="!fileNavigator.requesting && !fileNavigator.listHasFolders() && !fileNavigator.error">\n <td>\n {{"no_folders_in_folder" | translate}}...\n </td>\n <td class="text-right">\n <button class="btn btn-sm btn-default" ng-click="fileNavigator.upDir()">{{"go_back" | translate}}</button>\n </td>\n </tr>\n <tr ng-show="!fileNavigator.requesting && fileNavigator.error">\n <td colspan="2">\n {{ fileNavigator.error }}\n </td>\n </tr>\n <tr ng-repeat="item in fileNavigator.fileList | orderBy:predicate:reverse" ng-show="!fileNavigator.requesting && item.model.type === \'dir\'" ng-if="!selectedFilesAreChildOfPath(item)">\n <td>\n <a href="" ng-click="fileNavigator.folderClick(item)" title="{{item.model.name}} ({{item.model.size | humanReadableFileSize}})">\n <i class="glyphicon glyphicon-folder-close"></i>\n {{item.model.name | strLimit : 32}}\n </a>\n </td>\n <td class="text-right">\n <button class="btn btn-sm btn-default" ng-click="select(item)">\n <i class="glyphicon glyphicon-hand-up"></i> {{"select_this" | translate}}\n </button>\n </td>\n </tr>\n </tbody>\n</table>'),e.put("src/templates/main-table.html",'<table class="table mb0 table-files noselect">\n <thead>\n <tr>\n <th>\n <a href="" ng-click="order(\'model.name\')">\n {{"name" | translate}}\n <span class="sortorder" ng-show="predicate[1] === \'model.name\'" ng-class="{reverse:reverse}"></span>\n </a>\n </th>\n <th class="hidden-xs" ng-hide="config.hideSize">\n <a href="" ng-click="order(\'model.size\')">\n {{"size" | translate}}\n <span class="sortorder" ng-show="predicate[1] === \'model.size\'" ng-class="{reverse:reverse}"></span>\n </a>\n </th>\n <th class="hidden-sm hidden-xs" ng-hide="config.hideDate">\n <a href="" ng-click="order(\'model.date\')">\n {{"date" | translate}}\n <span class="sortorder" ng-show="predicate[1] === \'model.date\'" ng-class="{reverse:reverse}"></span>\n </a>\n </th>\n <th class="hidden-sm hidden-xs" ng-hide="config.hidePermissions">\n <a href="" ng-click="order(\'model.permissions\')">\n {{"permissions" | translate}}\n <span class="sortorder" ng-show="predicate[1] === \'model.permissions\'" ng-class="{reverse:reverse}"></span>\n </a>\n </th>\n </tr>\n </thead>\n <tbody class="file-item">\n <tr ng-show="fileNavigator.requesting">\n <td colspan="5">\n <div ng-include="config.tplPath + \'/spinner.html\'"></div>\n </td>\n </tr>\n <tr ng-show="!fileNavigator.requesting && fileNavigator.fileList.length < 1 && !fileNavigator.error">\n <td colspan="5">\n {{"no_files_in_folder" | translate}}...\n </td>\n </tr>\n <tr ng-show="!fileNavigator.requesting && fileNavigator.error">\n <td colspan="5">\n {{ fileNavigator.error }}\n </td>\n </tr>\n <tr class="item-list" ng-repeat="item in $parent.fileList = (fileNavigator.fileList | filter: {model:{name: query}} | orderBy:predicate:reverse)" ng-show="!fileNavigator.requesting" ng-click="selectOrUnselect(item, $event)" ng-dblclick="smartClick(item)" ng-right-click="selectOrUnselect(item, $event)" ng-class="{selected: isSelected(item)}">\n <td>\n <a href="" title="{{item.model.name}} ({{item.model.size | humanReadableFileSize}})">\n <i class="glyphicon glyphicon-folder-close" ng-show="item.model.type === \'dir\'"></i>\n <i class="glyphicon glyphicon-file" ng-show="item.model.type === \'file\'"></i>\n {{item.model.name | strLimit : 64}}\n </a>\n </td>\n <td class="hidden-xs">\n <span ng-show="item.model.type !== \'dir\' || config.showSizeForDirectories">\n {{item.model.size | humanReadableFileSize}}\n </span>\n </td>\n <td class="hidden-sm hidden-xs" ng-hide="config.hideDate">\n {{item.model.date | formatDate }}\n </td>\n <td class="hidden-sm hidden-xs" ng-hide="config.hidePermissions">\n {{item.model.perms.toCode(item.model.type === \'dir\'?\'d\':\'-\')}}\n </td>\n </tr>\n </tbody>\n</table>\n'),e.put("src/templates/main.html",'<div ng-controller="FileManagerCtrl">\n <div ng-include="config.tplPath + \'/navbar.html\'"></div>\n\n <div class="container-fluid">\n <div class="row">\n\n <div class="col-sm-4 col-md-3 sidebar file-tree animated slow fadeIn" ng-include="config.tplPath + \'/sidebar.html\'" ng-show="config.sidebar && fileNavigator.history[0]">\n </div>\n\n <div class="main" ng-class="config.sidebar && fileNavigator.history[0] && \'col-sm-8 col-md-9\'" ngf-model-options="{updateOn: \'drop\', allowInvalid: false, debounce: 0}" ngf-drop="addForUpload($files)" ngf-drag-over-class="\'upload-dragover\'" ngf-multiple="true">\n <div ng-include="config.tplPath + \'/\' + viewTemplate" class="main-navigation clearfix"></div>\n </div>\n </div>\n </div>\n\n <div ng-include="config.tplPath + \'/modals.html\'"></div>\n <div ng-include="config.tplPath + \'/item-context-menu.html\'"></div>\n</div>\n'),e.put("src/templates/modals.html",'<div class="modal animated fadeIn" id="imagepreview">\n <div class="modal-dialog">\n <div class="modal-content">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{"preview" | translate}}</h4>\n </div>\n <div class="modal-body">\n <div class="text-center">\n <img id="imagepreview-target" class="preview" alt="{{singleSelection().model.name}}" ng-class="{\'loading\': apiMiddleware.apiHandler.inprocess}">\n <span class="label label-warning" ng-show="apiMiddleware.apiHandler.inprocess">{{\'loading\' | translate}} ...</span>\n </div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"close" | translate}}</button>\n </div>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="remove">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="remove()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{"confirm" | translate}}</h4>\n </div>\n <div class="modal-body">\n {{\'sure_to_delete\' | translate}} <span ng-include data-src="\'selected-files-msg\'"></span>\n\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess" autofocus="autofocus">{{"remove" | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="move">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="move()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'move\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <div ng-include data-src="\'path-selector\'" class="clearfix"></div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'move\' | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n\n<div class="modal animated fadeIn" id="rename">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="rename()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'rename\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <label class="radio">{{\'enter_new_name_for\' | translate}} <b>{{singleSelection() && singleSelection().model.name}}</b></label>\n <input class="form-control" ng-model="singleSelection().tempModel.name" autofocus="autofocus">\n\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'rename\' | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="copy">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="copy()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'copy_file\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <div ng-show="singleSelection()">\n <label class="radio">{{\'enter_new_name_for\' | translate}} <b>{{singleSelection().model.name}}</b></label>\n <input class="form-control" ng-model="singleSelection().tempModel.name" autofocus="autofocus">\n </div>\n\n <div ng-include data-src="\'path-selector\'" class="clearfix"></div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"copy" | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="compress">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="compress()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'compress\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <div ng-show="apiMiddleware.apiHandler.asyncSuccess">\n <div class="label label-success error-msg">{{\'compression_started\' | translate}}</div>\n </div>\n <div ng-hide="apiMiddleware.apiHandler.asyncSuccess">\n <div ng-hide="config.allowedActions.compressChooseName">\n {{\'sure_to_start_compression_with\' | translate}} <b>{{singleSelection().model.name}}</b> ?\n </div>\n <div ng-show="config.allowedActions.compressChooseName">\n <label class="radio">\n {{\'enter_file_name_for_compression\' | translate}}\n <span ng-include data-src="\'selected-files-msg\'"></span>\n </label>\n <input class="form-control" ng-model="temp.tempModel.name" autofocus="autofocus">\n </div>\n </div>\n\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <div ng-show="apiMiddleware.apiHandler.asyncSuccess">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"close" | translate}}</button>\n </div>\n <div ng-hide="apiMiddleware.apiHandler.asyncSuccess">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'compress\' | translate}}</button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="extract" ng-init="singleSelection().emptyName()">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="extract()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'extract_item\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <div ng-show="apiMiddleware.apiHandler.asyncSuccess">\n <div class="label label-success error-msg">{{\'extraction_started\' | translate}}</div>\n </div>\n <div ng-hide="apiMiddleware.apiHandler.asyncSuccess">\n <label class="radio">{{\'enter_folder_name_for_extraction\' | translate}} <b>{{singleSelection().model.name}}</b></label>\n <input class="form-control" ng-model="singleSelection().tempModel.name" autofocus="autofocus">\n </div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <div ng-show="apiMiddleware.apiHandler.asyncSuccess">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"close" | translate}}</button>\n </div>\n <div ng-hide="apiMiddleware.apiHandler.asyncSuccess">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'extract\' | translate}}</button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="edit" ng-class="{\'modal-fullscreen\': fullscreen}">\n <div class="modal-dialog modal-lg">\n <div class="modal-content">\n <form ng-submit="edit()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <button type="button" class="close fullscreen" ng-click="fullscreen=!fullscreen">\n <i class="glyphicon glyphicon-fullscreen"></i>\n <span class="sr-only">{{\'toggle_fullscreen\' | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'edit_file\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <label class="radio bold">{{ singleSelection().model.fullPath() }}</label>\n <span class="label label-warning" ng-show="apiMiddleware.apiHandler.inprocess">{{\'loading\' | translate}} ...</span>\n <textarea class="form-control code" ng-model="singleSelection().tempModel.content" ng-show="!apiMiddleware.apiHandler.inprocess" autofocus="autofocus"></textarea>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'close\' | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-show="config.allowedActions.edit" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'save\' | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="newfolder">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="createFolder()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'new_folder\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <label class="radio">{{\'folder_name\' | translate}}</label>\n <input class="form-control" ng-model="singleSelection().tempModel.name" autofocus="autofocus">\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="apiMiddleware.apiHandler.inprocess">{{\'create\' | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="uploadfile">\n <div class="modal-dialog">\n <div class="modal-content">\n <form>\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{"upload_files" | translate}}</h4>\n </div>\n <div class="modal-body">\n <label class="radio">\n {{"files_will_uploaded_to" | translate}} \n <b>/{{fileNavigator.currentPath.join(\'/\')}}</b>\n </label>\n <button class="btn btn-default btn-block" ngf-select="$parent.addForUpload($files)" ngf-multiple="true">\n {{"select_files" | translate}}\n </button>\n \n <div class="upload-list">\n <ul class="list-group">\n <li class="list-group-item" ng-repeat="(index, uploadFile) in $parent.uploadFileList">\n <button class="btn btn-sm btn-danger pull-right" ng-click="$parent.removeFromUpload(index)">\n ×\n </button>\n <h5 class="list-group-item-heading">{{uploadFile.name}}</h5>\n <p class="list-group-item-text">{{uploadFile.size | humanReadableFileSize}}</p>\n </li>\n </ul>\n <div ng-show="apiMiddleware.apiHandler.inprocess">\n <em>{{"uploading" | translate}}... {{apiMiddleware.apiHandler.progress}}%</em>\n <div class="progress mb0">\n <div class="progress-bar active" role="progressbar" aria-valuenow="{{apiMiddleware.apiHandler.progress}}" aria-valuemin="0" aria-valuemax="100" style="width: {{apiMiddleware.apiHandler.progress}}%"></div>\n </div>\n </div>\n </div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <div>\n <button type="button" class="btn btn-default" data-dismiss="modal">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="!$parent.uploadFileList.length || apiMiddleware.apiHandler.inprocess" ng-click="uploadFiles()">{{\'upload\' | translate}}</button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="changepermissions">\n <div class="modal-dialog">\n <div class="modal-content">\n <form ng-submit="changePermissions()">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{\'change_permissions\' | translate}}</h4>\n </div>\n <div class="modal-body">\n <table class="table mb0">\n <thead>\n <tr>\n <th>{{\'permissions\' | translate}}</th>\n <th class="col-xs-1 text-center">{{\'read\' | translate}}</th>\n <th class="col-xs-1 text-center">{{\'write\' | translate}}</th>\n <th class="col-xs-1 text-center">{{\'exec\' | translate}}</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="(permTypeKey, permTypeValue) in temp.tempModel.perms">\n <td>{{permTypeKey | translate}}</td>\n <td ng-repeat="(permKey, permValue) in permTypeValue" class="col-xs-1 text-center" ng-click="main()">\n <label class="col-xs-12">\n <input type="checkbox" ng-model="temp.tempModel.perms[permTypeKey][permKey]">\n </label>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="checkbox" ng-show="config.enablePermissionsRecursive && selectionHas(\'dir\')">\n <label>\n <input type="checkbox" ng-model="temp.tempModel.recursive"> {{\'recursive\' | translate}}\n </label>\n </div>\n <div class="clearfix mt10">\n <span class="label label-primary pull-left" ng-hide="temp.multiple">\n {{\'original\' | translate}}: \n {{temp.model.perms.toCode(selectionHas(\'dir\') ? \'d\':\'-\')}} \n ({{temp.model.perms.toOctal()}})\n </span>\n <span class="label label-primary pull-right">\n {{\'changes\' | translate}}: \n {{temp.tempModel.perms.toCode(selectionHas(\'dir\') ? \'d\':\'-\')}} \n ({{temp.tempModel.perms.toOctal()}})\n </span>\n </div>\n <div ng-include data-src="\'error-bar\'" class="clearfix"></div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal">{{"cancel" | translate}}</button>\n <button type="submit" class="btn btn-primary" ng-disabled="">{{\'change\' | translate}}</button>\n </div>\n </form>\n </div>\n </div>\n</div>\n\n<div class="modal animated fadeIn" id="selector" ng-controller="ModalFileManagerCtrl">\n <div class="modal-dialog">\n <div class="modal-content">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal">\n <span aria-hidden="true">×</span>\n <span class="sr-only">{{"close" | translate}}</span>\n </button>\n <h4 class="modal-title">{{"select_destination_folder" | translate}}</h4>\n </div>\n <div class="modal-body">\n <div>\n <div ng-include="config.tplPath + \'/current-folder-breadcrumb.html\'"></div>\n <div ng-include="config.tplPath + \'/main-table-modal.html\'"></div>\n <hr />\n <button class="btn btn-sm btn-default" ng-click="selectCurrent()">\n <i class="glyphicon"></i> {{"select_this" | translate}}\n </button>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="apiMiddleware.apiHandler.inprocess">{{"close" | translate}}</button>\n </div>\n </div>\n </div>\n</div>\n\n<script type="text/ng-template" id="path-selector">\n <div class="panel panel-primary mt10 mb0">\n <div class="panel-body">\n <div class="detail-sources">\n <div class="like-code mr5"><b>{{"selection" | translate}}:</b>\n <span ng-include="\'selected-files-msg\'"></span>\n </div>\n </div>\n <div class="detail-sources">\n <div class="like-code mr5">\n <b>{{"destination" | translate}}:</b> {{ getSelectedPath() }}\n </div>\n <a href="" class="label label-primary" ng-click="openNavigator(fileNavigator.currentPath)">\n {{\'change\' | translate}}\n </a>\n </div>\n </div>\n </div>\n<\/script>\n\n<script type="text/ng-template" id="error-bar">\n <div class="label label-danger error-msg pull-left animated fadeIn" ng-show="apiMiddleware.apiHandler.error">\n <i class="glyphicon glyphicon-remove-circle"></i>\n <span>{{apiMiddleware.apiHandler.error}}</span>\n </div>\n<\/script>\n\n<script type="text/ng-template" id="selected-files-msg">\n <span ng-show="temps.length == 1">\n {{singleSelection().model.name}}\n </span>\n <span ng-show="temps.length > 1">\n {{\'these_elements\' | translate:totalSelecteds()}}\n <a href="" class="label label-primary" ng-click="showDetails = !showDetails">\n {{showDetails ? \'-\' : \'+\'}} {{\'details\' | translate}}\n </a>\n </span>\n <div ng-show="temps.length > 1 && showDetails">\n <ul class="selected-file-details">\n <li ng-repeat="tempItem in temps">\n <b>{{tempItem.model.name}}</b>\n </li>\n </ul>\n </div>\n<\/script>\n'),e.put("src/templates/navbar.html",'<nav class="navbar navbar-inverse">\n <div class="container-fluid">\n <div class="row">\n <div class="col-sm-9 col-md-10 hidden-xs">\n <div ng-show="!config.breadcrumb">\n <a class="navbar-brand hidden-xs ng-binding" href="">angular-{{"filemanager" | translate}}</a>\n </div>\n <div ng-include="config.tplPath + \'/current-folder-breadcrumb.html\'" ng-show="config.breadcrumb">\n </div>\n </div>\n <div class="col-sm-3 col-md-2">\n <div class="navbar-collapse">\n <div class="navbar-form navbar-right text-right">\n <div class="pull-left visible-xs" ng-if="fileNavigator.currentPath.length">\n <button class="btn btn-primary btn-flat" ng-click="fileNavigator.upDir()">\n <i class="glyphicon glyphicon-chevron-left"></i>\n </button>\n {{fileNavigator.getCurrentFolderName() | strLimit : 12}}\n </div>\n <div class="btn-group">\n <button class="btn btn-flat btn-sm dropdown-toggle" type="button" id="dropDownMenuSearch" data-toggle="dropdown" aria-expanded="true">\n <i class="glyphicon glyphicon-search mr2"></i>\n </button>\n <div class="dropdown-menu animated fast fadeIn pull-right" role="menu" aria-labelledby="dropDownMenuLang">\n <input type="text" class="form-control" ng-show="config.searchForm" placeholder="{{\'search\' | translate}}..." ng-model="$parent.query">\n </div>\n </div>\n\n <button class="btn btn-flat btn-sm" ng-click="$parent.setTemplate(\'main-icons.html\')" ng-show="$parent.viewTemplate !==\'main-icons.html\'" title="{{\'icons\' | translate}}">\n <i class="glyphicon glyphicon-th-large"></i>\n </button>\n\n <button class="btn btn-flat btn-sm" ng-click="$parent.setTemplate(\'main-table.html\')" ng-show="$parent.viewTemplate !==\'main-table.html\'" title="{{\'list\' | translate}}">\n <i class="glyphicon glyphicon-th-list"></i>\n </button>\n\n <div class="btn-group">\n <button class="btn btn-flat btn-sm dropdown-toggle" type="button" id="dropDownMenuLang" data-toggle="dropdown" aria-expanded="true" ng-show="config.multiLang">\n <i class="glyphicon glyphicon-globe mr2"></i>\n </button>\n\n <ul class="dropdown-menu scrollable-menu animated fast fadeIn pull-right" role="menu" aria-labelledby="dropDownMenuLang">\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'en\')">English</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'zh_tw\')">正體中文</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'zh_cn\')">简体中文</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'es\')">Español</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'nl\')">Nederlands</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'pt\')">Portugues</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'fr\')">Français</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'de\')">Deutsch</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'he\')">עברי</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'it\')">italiano</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'sk\')">Slovenčina</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'ru\')">русский</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'ua\')">український</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'tr\')">Türkçe</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'fa\')">فارسی</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'pl\')">Polski</a></li>\n <li role="presentation"><a role="menuitem" tabindex="-1" href="" ng-click="changeLanguage(\'kr\')">한국어</a></li>\n </ul>\n </div>\n\n <div class="btn-group">\n <button class="btn btn-flat btn-sm dropdown-toggle" type="button" id="more" data-toggle="dropdown" aria-expanded="true">\n <i class="glyphicon glyphicon-option-vertical"></i>\n </button>\n\n <ul class="dropdown-menu scrollable-menu animated fast fadeIn pull-right" role="menu" aria-labelledby="more">\n <li role="presentation" ng-show="config.allowedActions.createFolder" ng-click="modal(\'newfolder\') && prepareNewFolder()">\n <a href="" role="menuitem" tabindex="-1">\n <i class="glyphicon glyphicon-plus"></i> {{"new_folder" | translate}}\n </a>\n </li>\n <li role="presentation" ng-show="config.allowedActions.upload" ng-click="modal(\'uploadfile\')">\n <a href="" role="menuitem" tabindex="-1">\n <i class="glyphicon glyphicon-cloud-upload"></i> {{"upload_files" | translate}}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</nav>\n'),e.put("src/templates/sidebar.html",'<ul class="nav nav-sidebar file-tree-root">\n <li ng-repeat="item in fileNavigator.history" ng-include="\'folder-branch-item\'" ng-class="{\'active\': item.name == fileNavigator.currentPath.join(\'/\')}"></li>\n</ul>\n\n<script type="text/ng-template" id="folder-branch-item">\n <a href="" ng-click="fileNavigator.folderClick(item.item)" class="animated fast fadeInDown">\n\n <span class="point">\n <i class="glyphicon glyphicon-chevron-down" ng-show="isInThisPath(item.name)"></i>\n <i class="glyphicon glyphicon-chevron-right" ng-show="!isInThisPath(item.name)"></i>\n </span>\n\n <i class="glyphicon glyphicon-folder-open mr2" ng-show="isInThisPath(item.name)"></i>\n <i class="glyphicon glyphicon-folder-close mr2" ng-show="!isInThisPath(item.name)"></i>\n {{ (item.name.split(\'/\').pop() || fileNavigator.getBasePath().join(\'/\') || \'/\') | strLimit : 30 }}\n </a>\n <ul class="nav nav-sidebar">\n <li ng-repeat="item in item.nodes" ng-include="\'folder-branch-item\'" ng-class="{\'active\': item.name == fileNavigator.currentPath.join(\'/\')}"></li>\n </ul>\n<\/script>'),e.put("src/templates/spinner.html",'<div class="spinner-wrapper col-xs-12">\n <svg class="spinner-container" style="width:65px;height:65px" viewBox="0 0 44 44">\n <circle class="path" cx="22" cy="22" r="20" fill="none" stroke-width="4"></circle>\n </svg>\n</div>')}]);