diff --git a/dist/angular-filemanager.min.js b/dist/angular-filemanager.min.js index 937f3ec7..d322941a 100644 --- a/dist/angular-filemanager.min.js +++ b/dist/angular-filemanager.min.js @@ -1,2 +1,2 @@ -!function(e,n,t){"use strict";n.module("FileManagerApp",["pascalprecht.translate","ngCookies"]);t(e.document).on("shown.bs.modal",".modal",function(){setTimeout(function(){t("[autofocus]",this).focus()}.bind(this),100)}),t(e.document).on("click",function(){t("#context-menu").hide()}),t(e.document).on("contextmenu",".main-navigation .table-files td:first-child, .iconset a.thumbnail",function(e){t("#context-menu").hide().css({left:e.pageX,top:e.pageY}).show(),e.preventDefault()})}(window,angular,jQuery),function(e,n,t){"use strict";n.module("FileManagerApp").controller("FileManagerCtrl",["$scope","$translate","$cookies","fileManagerConfig","item","fileNavigator","fileUploader",function(n,r,a,i,o,s,l){n.config=i,n.appName=i.appName,n.reverse=!1,n.predicate=["model.type","model.name"],n.order=function(e){n.reverse=n.predicate[1]===e?!n.reverse:!1,n.predicate[1]=e},n.query="",n.temp=new o,n.fileNavigator=new s,n.fileUploader=l,n.uploadFileList=[],n.viewTemplate=a.viewTemplate||"main-table.html",n.setTemplate=function(e){n.viewTemplate=a.viewTemplate=e},n.changeLanguage=function(e){return e?r.use(a.language=e):void r.use(a.language||i.defaultLang)},n.touch=function(e){e=e instanceof o?e:new o,e.revert&&e.revert(),n.temp=e},n.smartClick=function(e){return e.isFolder()?n.fileNavigator.folderClick(e):e.isImage()?e.preview():e.isEditable()?(e.getContent(),n.touch(e),n.modal("edit")):void 0},n.modal=function(e,n){t("#"+e).modal(n?"hide":"show")},n.isInThisPath=function(e){var t=n.fileNavigator.currentPath.join("/");return-1!==t.indexOf(e)},n.edit=function(e){e.edit().then(function(){n.modal("edit",!0)})},n.changePermissions=function(e){e.changePermissions().then(function(){n.modal("changepermissions",!0)})},n.copy=function(e){var t=e.tempModel.path.join()===e.model.path.join();return t&&n.fileNavigator.fileNameExists(e.tempModel.name)?(e.error=r.instant("error_invalid_filename"),!1):void e.copy().then(function(){n.fileNavigator.refresh(),n.modal("copy",!0)})},n.compress=function(e){e.compress().then(function(){return n.fileNavigator.refresh(),n.config.compressAsync?void(e.asyncSuccess=!0):n.modal("compress",!0)},function(){e.asyncSuccess=!1})},n.extract=function(e){e.extract().then(function(){return n.fileNavigator.refresh(),n.config.extractAsync?void(e.asyncSuccess=!0):n.modal("extract",!0)},function(){e.asyncSuccess=!1})},n.remove=function(e){e.remove().then(function(){n.fileNavigator.refresh(),n.modal("delete",!0)})},n.rename=function(e){var t=e.tempModel.path.join()===e.model.path.join();return t&&n.fileNavigator.fileNameExists(e.tempModel.name)?(e.error=r.instant("error_invalid_filename"),!1):void e.rename().then(function(){n.fileNavigator.refresh(),n.modal("rename",!0)})},n.createFolder=function(e){var t=e.tempModel.name&&e.tempModel.name.trim();return e.tempModel.type="dir",e.tempModel.path=n.fileNavigator.currentPath,!t||n.fileNavigator.fileNameExists(t)?(n.temp.error=r.instant("error_invalid_filename"),!1):void e.createFolder().then(function(){n.fileNavigator.refresh(),n.modal("newfolder",!0)})},n.uploadFiles=function(){n.fileUploader.upload(n.uploadFileList,n.fileNavigator.currentPath).then(function(){n.fileNavigator.refresh(),n.modal("uploadfile",!0)},function(e){var t=e.result&&e.result.error||r.instant("error_uploading_files");n.temp.error=t})},n.getQueryParam=function(n){var t;return e.location.search.substr(1).split("&").forEach(function(e){return n===e.split("=")[0]?(t=e.split("=")[1],!1):void 0}),t},n.changeLanguage(n.getQueryParam("lang")),n.isWindows="Windows"===n.getQueryParam("server"),n.fileNavigator.refresh()}])}(window,angular,jQuery),function(e,n){"use strict";e.module("FileManagerApp").controller("ModalFileManagerCtrl",["$scope","$rootScope","fileNavigator",function(e,t,r){e.reverse=!1,e.predicate=["model.type","model.name"],e.order=function(n){e.reverse=e.predicate[1]===n?!e.reverse:!1,e.predicate[1]=n},e.fileNavigator=new r,t.select=function(e,t){t.tempModel.path=e.model.fullPath().split("/"),n("#selector").modal("hide")},t.openNavigator=function(t){e.fileNavigator.currentPath=t.model.path.slice(),e.fileNavigator.refresh(),n("#selector").modal("show")}}])}(angular,jQuery),function(e){"use strict";var n=e.module("FileManagerApp");n.directive("angularFilemanager",["$parse","fileManagerConfig",function(e,n){return{restrict:"EA",templateUrl:n.tplPath+"/main.html"}}]),n.directive("ngFile",["$parse",function(e){return{restrict:"A",link:function(n,t,r){var a=e(r.ngFile),i=a.assign;t.bind("change",function(){n.$apply(function(){i(n,t[0].files)})})}}}]),n.directive("ngRightClick",["$parse",function(e){return function(n,t,r){var a=e(r.ngRightClick);t.bind("contextmenu",function(e){n.$apply(function(){e.preventDefault(),a(n,{$event:e})})})}}])}(angular),function(e){"use strict";e.module("FileManagerApp").service("chmod",function(){var e=function(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");this.owner=n.owner,this.group=n.group,this.others=n.others}};return e.prototype.toOctal=function(e,n){var t=["owner","group","others"],r=[];for(var a in t){var i=t[a];r[a]=this[i].read&&this.octalValues.read||0,r[a]+=this[i].write&&this.octalValues.write||0,r[a]+=this[i].exec&&this.octalValues.exec||0}return(e||"")+r.join("")+(n||"")},e.prototype.toCode=function(e,n){var t=["owner","group","others"],r=[];for(var a in t){var i=t[a];r[a]=this[i].read&&this.codeValues.read||"-",r[a]+=this[i].write&&this.codeValues.write||"-",r[a]+=this[i].exec&&this.codeValues.exec||"-"}return(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=(""+e).replace(/\s/g,""),e=10===e.length?e.substr(1):e,/^[-rwx]{9}$/.test(e)){var n=[],t=e.match(/.{1,3}/g);for(var r in t){var a=this.getRwxObj();a.read=/r/.test(t[r]),a.write=/w/.test(t[r]),a.exec=/x/.test(t[r]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e.prototype.convertfromOctal=function(e){if(e=(""+e).replace(/\s/g,""),e=4===e.length?e.substr(1):e,/^[0-7]{3}$/.test(e)){var n=[],t=e.match(/.{1}/g);for(var r in t){var a=this.getRwxObj();a.read=/[4567]/.test(t[r]),a.write=/[2367]/.test(t[r]),a.exec=/[1357]/.test(t[r]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e})}(angular),function(e,n,t){"use strict";n.module("FileManagerApp").factory("item",["$http","$q","$translate","fileManagerConfig","chmod",function(r,a,i,o,s){var l=function(e,t){function r(e){var n=(e||"").toString().split(/[- :]/);return new Date(n[0],n[1]-1,n[2],n[3],n[4],n[5])}var a={name:e&&e.name||"",path:t||[],type:e&&e.type||"file",size:e&&parseInt(e.size||0),date:r(e&&e.date),perms:new s(e&&e.rights),content:e&&e.content||"",recursive:!1,sizeKb:function(){return Math.round(this.size/1024,1)},fullPath:function(){return("/"+this.path.join("/")+"/"+this.name).replace(/\/\//,"/")}};this.error="",this.inprocess=!1,this.model=n.copy(a),this.tempModel=n.copy(a)};return l.prototype.update=function(){n.extend(this.model,n.copy(this.tempModel))},l.prototype.revert=function(){n.extend(this.tempModel,n.copy(this.model)),this.error=""},l.prototype.deferredHandler=function(e,n,t){return e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&t&&(this.error=t),this.error?n.reject(e):(this.update(),n.resolve(e))},l.prototype.createFolder=function(){var e=this,n=a.defer(),t={params:{mode:"addfolder",path:e.tempModel.path.join("/"),name:e.tempModel.name}};return e.inprocess=!0,e.error="",r.post(o.createFolderUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_creating_folder"))})["finally"](function(n){e.inprocess=!1}),n.promise},l.prototype.rename=function(){var e=this,n=a.defer(),t={params:{mode:"rename",path:e.model.fullPath(),newPath:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.renameUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_renaming"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.copy=function(){var e=this,n=a.defer(),t={params:{mode:"copy",path:e.model.fullPath(),newPath:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.copyUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_copying"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.compress=function(){var e=this,n=a.defer(),t={params:{mode:"compress",path:e.model.fullPath(),destination:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.compressUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_compressing"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.extract=function(){var e=this,n=a.defer(),t={params:{mode:"extract",path:e.model.fullPath(),sourceFile:e.model.fullPath(),destination:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.extractUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_extracting"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.download=function(n){var r=this,a={mode:"download",preview:n,path:r.model.fullPath()},i=[o.downloadFileUrl,t.param(a)].join("?");"dir"!==r.model.type&&e.open(i,"_blank","")},l.prototype.preview=function(){var e=this;return e.download(!0)},l.prototype.getContent=function(){var e=this,n=a.defer(),t={params:{mode:"editfile",path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.getContentUrl,t).success(function(t){e.tempModel.content=e.model.content=t.result,e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_getting_content"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.remove=function(){var e=this,n=a.defer(),t={params:{mode:"delete",path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.removeUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_deleting"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.edit=function(){var e=this,n=a.defer(),t={params:{mode:"savefile",content:e.tempModel.content,path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.editUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_modifying"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.changePermissions=function(){var e=this,n=a.defer(),t={params:{mode:"changepermissions",path:e.tempModel.fullPath(),perms:e.tempModel.perms.toOctal(),permsCode:e.tempModel.perms.toCode(),recursive:e.tempModel.recursive}};return e.inprocess=!0,e.error="",r.post(o.permissionsUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_changing_perms"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.isFolder=function(){return"dir"===this.model.type},l.prototype.isEditable=function(){return!this.isFolder()&&o.isEditableFilePattern.test(this.model.name)},l.prototype.isImage=function(){return o.isImageFilePattern.test(this.model.name)},l.prototype.isCompressible=function(){return this.isFolder()},l.prototype.isExtractable=function(){return!this.isFolder()&&o.isExtractableFilePattern.test(this.model.name)},l}])}(window,angular,jQuery),function(e){"use strict";var n=e.module("FileManagerApp");n.filter("strLimit",["$filter",function(e){return function(n,t){return n.length<=t?n:e("limitTo")(n,t)+"..."}}]),n.filter("formatDate",["$filter",function(e){return function(e,n){return e instanceof Date?e.toISOString().substring(0,19).replace("T"," "):(e.toLocaleString||e.toString).apply(e)}}])}(angular),function(e){"use strict";e.module("FileManagerApp").provider("fileManagerConfig",function(){var n={appName:"https://github.com/joni2back/angular-filemanager",defaultLang:"en",listUrl:"bridges/php/handler.php",uploadUrl:"bridges/php/handler.php",renameUrl:"bridges/php/handler.php",copyUrl:"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",compressUrl:"bridges/php/handler.php",extractUrl:"bridges/php/handler.php",permissionsUrl:"bridges/php/handler.php",sidebar:!0,breadcrumb:!0,allowedActions:{rename:!0,copy:!0,edit:!0,changePermissions:!0,compress:!0,compressChooseName:!0,extract:!0,download:!0,preview:!0,remove:!0},enablePermissionsRecursive:!0,compressAsync:!0,extractAsync:!0,isEditableFilePattern:/\.(txt|html?|aspx?|ini|pl|py|md|css|js|log|htaccess|htpasswd|json|sql|xml|xslt?|sh|rb|as|bat|cmd|coffee|php[3-6]?|java|c|cbl|go|h|scala|vb)$/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(t){e.extend(n,t)}}})}(angular),function(e){"use strict";e.module("FileManagerApp").config(["$translateProvider",function(e){e.translations("en",{filemanager:"File Manager",language:"Language",english:"English",spanish:"Spanish",portuguese:"Portuguese",french:"French",confirm:"Confirm",cancel:"Cancel",close:"Close",upload_file:"Upload file",files_will_uploaded_to:"Files will be uploaded to",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_folder_name_for_compression:"Enter the folder 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",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",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"}),e.translations("pt",{filemanager:"Gerenciador de arquivos",language:"Língua",english:"Inglês",spanish:"Espanhol",portuguese:"Portugues",french:"Francês",confirm:"Confirmar",cancel:"Cancelar",close:"Fechar",upload_file:"Carregar arquivo",files_will_uploaded_to:"Os arquivos serão enviados para",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_folder_name_for_compression:"Digite o nome da pasta para Compressão",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",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",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"}),e.translations("es",{filemanager:"Administrador de archivos",language:"Idioma",english:"Ingles",spanish:"Español",portuguese:"Portugues",french:"Francés",confirm:"Confirmar",cancel:"Cancelar",close:"Cerrar",upload_file:"Subir archivo",files_will_uploaded_to:"Los archivos seran subidos a",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_folder_name_for_compression:"Ingrese el nombre de la carpeta 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",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",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"}),e.translations("fr",{filemanager:"Gestionnaire de fichier",language:"Langue",english:"Anglais",spanish:"Espagnol",portuguese:"Portugais",french:"Français",confirm:"Confirmer",cancel:"Annuler",close:"Fermer",upload_file:"Uploader un fichier",files_will_uploaded_to:"Les fichiers seront uploadé dans",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_folder_name_for_compression:"Entrer le nom du dossier 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",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",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"})}])}(angular),function(e){"use strict";e.module("FileManagerApp").service("fileNavigator",["$http","$q","fileManagerConfig","item",function(e,n,t,r){e.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";var a=function(){this.requesting=!1,this.fileList=[],this.currentPath=[],this.history=[],this.error=""};return a.prototype.deferredHandler=function(e,n,t){return"object"!=typeof e&&(this.error="Bridge response error, please check the docs."),!this.error&&e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&t&&(this.error=t),this.error?n.reject(e):n.resolve(e)},a.prototype.list=function(){var r=this,a=n.defer(),i=r.currentPath.join("/"),o={params:{mode:"list",onlyFolders:!1,path:"/"+i}};return r.requesting=!0,r.fileList=[],r.error="",e.post(t.listUrl,o).success(function(e){r.deferredHandler(e,a)}).error(function(e){r.deferredHandler(e,a,"Unknown error listing, check the response")})["finally"](function(e){r.requesting=!1}),a.promise},a.prototype.refresh=function(){var e=this,n=e.currentPath.join("/");return e.list().then(function(t){e.fileList=(t.result||[]).map(function(n){return new r(n,e.currentPath)}),e.buildTree(n)})},a.prototype.buildTree=function(e){function n(e,t,r){var a=r?r+"/"+t.model.name:t.model.name;if(e.name.trim()&&0!==r.trim().indexOf(e.name)&&(e.nodes=[]),e.name!==r)for(var i in e.nodes)n(e.nodes[i],t,r);else{for(var o in e.nodes)if(e.nodes[o].name===a)return;e.nodes.push({item:t,name:a,nodes:[]})}e.nodes=e.nodes.sort(function(e,n){return e.name\n
  • \n \n \n \n
  • \n
  • \n \n {{dir}}\n \n {{dir}}\n
  • \n
  • \n'),e.put("src/templates/item-context-menu.html",''),e.put("src/templates/item-toolbar.html",'
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n {{"wait" | translate}} ...\n
    '), +!function(e,n,t){"use strict";n.module("FileManagerApp",["pascalprecht.translate","ngCookies"]);t(e.document).on("shown.bs.modal",".modal",function(){setTimeout(function(){t("[autofocus]",this).focus()}.bind(this),100)}),t(e.document).on("click",function(){t("#context-menu").hide()}),t(e.document).on("contextmenu",".main-navigation .table-files td:first-child, .iconset a.thumbnail",function(e){t("#context-menu").hide().css({left:e.pageX,top:e.pageY}).show(),e.preventDefault()})}(window,angular,jQuery),function(e){"use strict";var n=e.module("FileManagerApp");n.directive("angularFilemanager",["$parse","fileManagerConfig",function(e,n){return{restrict:"EA",templateUrl:n.tplPath+"/main.html"}}]),n.directive("ngFile",["$parse",function(e){return{restrict:"A",link:function(n,t,r){var a=e(r.ngFile),i=a.assign;t.bind("change",function(){n.$apply(function(){i(n,t[0].files)})})}}}]),n.directive("ngRightClick",["$parse",function(e){return function(n,t,r){var a=e(r.ngRightClick);t.bind("contextmenu",function(e){n.$apply(function(){e.preventDefault(),a(n,{$event:e})})})}}])}(angular),function(e,n,t){"use strict";n.module("FileManagerApp").controller("FileManagerCtrl",["$scope","$translate","$cookies","fileManagerConfig","item","fileNavigator","fileUploader",function(n,r,a,i,o,s,l){n.config=i,n.appName=i.appName,n.reverse=!1,n.predicate=["model.type","model.name"],n.order=function(e){n.reverse=n.predicate[1]===e?!n.reverse:!1,n.predicate[1]=e},n.query="",n.temp=new o,n.fileNavigator=new s,n.fileUploader=l,n.uploadFileList=[],n.viewTemplate=a.viewTemplate||"main-table.html",n.setTemplate=function(e){n.viewTemplate=a.viewTemplate=e},n.changeLanguage=function(e){return e?r.use(a.language=e):void r.use(a.language||i.defaultLang)},n.touch=function(e){e=e instanceof o?e:new o,e.revert&&e.revert(),n.temp=e},n.smartClick=function(e){return e.isFolder()?n.fileNavigator.folderClick(e):e.isImage()?e.preview():e.isEditable()?(e.getContent(),n.touch(e),n.modal("edit")):void 0},n.modal=function(e,n){t("#"+e).modal(n?"hide":"show")},n.isInThisPath=function(e){var t=n.fileNavigator.currentPath.join("/");return-1!==t.indexOf(e)},n.edit=function(e){e.edit().then(function(){n.modal("edit",!0)})},n.changePermissions=function(e){e.changePermissions().then(function(){n.modal("changepermissions",!0)})},n.copy=function(e){var t=e.tempModel.path.join()===e.model.path.join();return t&&n.fileNavigator.fileNameExists(e.tempModel.name)?(e.error=r.instant("error_invalid_filename"),!1):void e.copy().then(function(){n.fileNavigator.refresh(),n.modal("copy",!0)})},n.compress=function(e){e.compress().then(function(){return n.fileNavigator.refresh(),n.config.compressAsync?void(e.asyncSuccess=!0):n.modal("compress",!0)},function(){e.asyncSuccess=!1})},n.extract=function(e){e.extract().then(function(){return n.fileNavigator.refresh(),n.config.extractAsync?void(e.asyncSuccess=!0):n.modal("extract",!0)},function(){e.asyncSuccess=!1})},n.remove=function(e){e.remove().then(function(){n.fileNavigator.refresh(),n.modal("delete",!0)})},n.rename=function(e){var t=e.tempModel.path.join()===e.model.path.join();return t&&n.fileNavigator.fileNameExists(e.tempModel.name)?(e.error=r.instant("error_invalid_filename"),!1):void e.rename().then(function(){n.fileNavigator.refresh(),n.modal("rename",!0)})},n.createFolder=function(e){var t=e.tempModel.name&&e.tempModel.name.trim();return e.tempModel.type="dir",e.tempModel.path=n.fileNavigator.currentPath,!t||n.fileNavigator.fileNameExists(t)?(n.temp.error=r.instant("error_invalid_filename"),!1):void e.createFolder().then(function(){n.fileNavigator.refresh(),n.modal("newfolder",!0)})},n.uploadFiles=function(){n.fileUploader.upload(n.uploadFileList,n.fileNavigator.currentPath).then(function(){n.fileNavigator.refresh(),n.modal("uploadfile",!0)},function(e){var t=e.result&&e.result.error||r.instant("error_uploading_files");n.temp.error=t})},n.getQueryParam=function(n){var t;return e.location.search.substr(1).split("&").forEach(function(e){return n===e.split("=")[0]?(t=e.split("=")[1],!1):void 0}),t},n.changeLanguage(n.getQueryParam("lang")),n.isWindows="Windows"===n.getQueryParam("server"),n.fileNavigator.refresh()}])}(window,angular,jQuery),function(e,n){"use strict";e.module("FileManagerApp").controller("ModalFileManagerCtrl",["$scope","$rootScope","fileNavigator",function(e,t,r){e.reverse=!1,e.predicate=["model.type","model.name"],e.order=function(n){e.reverse=e.predicate[1]===n?!e.reverse:!1,e.predicate[1]=n},e.fileNavigator=new r,t.select=function(e,t){t.tempModel.path=e.model.fullPath().split("/"),n("#selector").modal("hide")},t.openNavigator=function(t){e.fileNavigator.currentPath=t.model.path.slice(),e.fileNavigator.refresh(),n("#selector").modal("show")}}])}(angular,jQuery),function(e){"use strict";e.module("FileManagerApp").service("chmod",function(){var e=function(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");this.owner=n.owner,this.group=n.group,this.others=n.others}};return e.prototype.toOctal=function(e,n){var t=["owner","group","others"],r=[];for(var a in t){var i=t[a];r[a]=this[i].read&&this.octalValues.read||0,r[a]+=this[i].write&&this.octalValues.write||0,r[a]+=this[i].exec&&this.octalValues.exec||0}return(e||"")+r.join("")+(n||"")},e.prototype.toCode=function(e,n){var t=["owner","group","others"],r=[];for(var a in t){var i=t[a];r[a]=this[i].read&&this.codeValues.read||"-",r[a]+=this[i].write&&this.codeValues.write||"-",r[a]+=this[i].exec&&this.codeValues.exec||"-"}return(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=(""+e).replace(/\s/g,""),e=10===e.length?e.substr(1):e,/^[-rwx]{9}$/.test(e)){var n=[],t=e.match(/.{1,3}/g);for(var r in t){var a=this.getRwxObj();a.read=/r/.test(t[r]),a.write=/w/.test(t[r]),a.exec=/x/.test(t[r]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e.prototype.convertfromOctal=function(e){if(e=(""+e).replace(/\s/g,""),e=4===e.length?e.substr(1):e,/^[0-7]{3}$/.test(e)){var n=[],t=e.match(/.{1}/g);for(var r in t){var a=this.getRwxObj();a.read=/[4567]/.test(t[r]),a.write=/[2367]/.test(t[r]),a.exec=/[1357]/.test(t[r]),n.push(a)}return{owner:n[0],group:n[1],others:n[2]}}},e})}(angular),function(e,n,t){"use strict";n.module("FileManagerApp").factory("item",["$http","$q","$translate","fileManagerConfig","chmod",function(r,a,i,o,s){var l=function(e,t){function r(e){var n=(e||"").toString().split(/[- :]/);return new Date(n[0],n[1]-1,n[2],n[3],n[4],n[5])}var a={name:e&&e.name||"",path:t||[],type:e&&e.type||"file",size:e&&parseInt(e.size||0),date:r(e&&e.date),perms:new s(e&&e.rights),content:e&&e.content||"",recursive:!1,sizeKb:function(){return Math.round(this.size/1024,1)},fullPath:function(){return("/"+this.path.join("/")+"/"+this.name).replace(/\/\//,"/")}};this.error="",this.inprocess=!1,this.model=n.copy(a),this.tempModel=n.copy(a)};return l.prototype.update=function(){n.extend(this.model,n.copy(this.tempModel))},l.prototype.revert=function(){n.extend(this.tempModel,n.copy(this.model)),this.error=""},l.prototype.deferredHandler=function(e,n,t){return e&&"object"==typeof e||(this.error="Bridge response error, please check the docs"),e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&t&&(this.error=t),this.error?n.reject(e):(this.update(),n.resolve(e))},l.prototype.createFolder=function(){var e=this,n=a.defer(),t={params:{mode:"addfolder",path:e.tempModel.path.join("/"),name:e.tempModel.name}};return e.inprocess=!0,e.error="",r.post(o.createFolderUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_creating_folder"))})["finally"](function(n){e.inprocess=!1}),n.promise},l.prototype.rename=function(){var e=this,n=a.defer(),t={params:{mode:"rename",path:e.model.fullPath(),newPath:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.renameUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_renaming"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.copy=function(){var e=this,n=a.defer(),t={params:{mode:"copy",path:e.model.fullPath(),newPath:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.copyUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_copying"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.compress=function(){var e=this,n=a.defer(),t={params:{mode:"compress",path:e.model.fullPath(),destination:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.compressUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_compressing"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.extract=function(){var e=this,n=a.defer(),t={params:{mode:"extract",path:e.model.fullPath(),sourceFile:e.model.fullPath(),destination:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.extractUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_extracting"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.download=function(n){var r=this,a={mode:"download",preview:n,path:r.model.fullPath()},i=[o.downloadFileUrl,t.param(a)].join("?");"dir"!==r.model.type&&e.open(i,"_blank","")},l.prototype.preview=function(){var e=this;return e.download(!0)},l.prototype.getContent=function(){var e=this,n=a.defer(),t={params:{mode:"editfile",path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.getContentUrl,t).success(function(t){e.tempModel.content=e.model.content=t.result,e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_getting_content"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.remove=function(){var e=this,n=a.defer(),t={params:{mode:"delete",path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.removeUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_deleting"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.edit=function(){var e=this,n=a.defer(),t={params:{mode:"savefile",content:e.tempModel.content,path:e.tempModel.fullPath()}};return e.inprocess=!0,e.error="",r.post(o.editUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_modifying"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.changePermissions=function(){var e=this,n=a.defer(),t={params:{mode:"changepermissions",path:e.tempModel.fullPath(),perms:e.tempModel.perms.toOctal(),permsCode:e.tempModel.perms.toCode(),recursive:e.tempModel.recursive}};return e.inprocess=!0,e.error="",r.post(o.permissionsUrl,t).success(function(t){e.deferredHandler(t,n)}).error(function(t){e.deferredHandler(t,n,i.instant("error_changing_perms"))})["finally"](function(){e.inprocess=!1}),n.promise},l.prototype.isFolder=function(){return"dir"===this.model.type},l.prototype.isEditable=function(){return!this.isFolder()&&o.isEditableFilePattern.test(this.model.name)},l.prototype.isImage=function(){return o.isImageFilePattern.test(this.model.name)},l.prototype.isCompressible=function(){return this.isFolder()},l.prototype.isExtractable=function(){return!this.isFolder()&&o.isExtractableFilePattern.test(this.model.name)},l}])}(window,angular,jQuery),function(e){"use strict";var n=e.module("FileManagerApp");n.filter("strLimit",["$filter",function(e){return function(n,t){return n.length<=t?n:e("limitTo")(n,t)+"..."}}]),n.filter("formatDate",["$filter",function(e){return function(e,n){return e instanceof Date?e.toISOString().substring(0,19).replace("T"," "):(e.toLocaleString||e.toString).apply(e)}}])}(angular),function(e){"use strict";e.module("FileManagerApp").provider("fileManagerConfig",function(){var n={appName:"https://github.com/joni2back/angular-filemanager",defaultLang:"en",listUrl:"bridges/php/handler.php",uploadUrl:"bridges/php/handler.php",renameUrl:"bridges/php/handler.php",copyUrl:"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",compressUrl:"bridges/php/handler.php",extractUrl:"bridges/php/handler.php",permissionsUrl:"bridges/php/handler.php",sidebar:!0,breadcrumb:!0,allowedActions:{rename:!0,copy:!0,edit:!0,changePermissions:!0,compress:!0,compressChooseName:!0,extract:!0,download:!0,preview:!0,remove:!0},enablePermissionsRecursive:!0,compressAsync:!0,extractAsync:!0,isEditableFilePattern:/\.(txt|html?|aspx?|ini|pl|py|md|css|js|log|htaccess|htpasswd|json|sql|xml|xslt?|sh|rb|as|bat|cmd|coffee|php[3-6]?|java|c|cbl|go|h|scala|vb)$/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(t){e.extend(n,t)}}})}(angular),function(e){"use strict";e.module("FileManagerApp").config(["$translateProvider",function(e){e.translations("en",{filemanager:"File Manager",language:"Language",english:"English",spanish:"Spanish",portuguese:"Portuguese",french:"French",confirm:"Confirm",cancel:"Cancel",close:"Close",upload_file:"Upload file",files_will_uploaded_to:"Files will be uploaded to",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_folder_name_for_compression:"Enter the folder 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",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",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"}),e.translations("pt",{filemanager:"Gerenciador de arquivos",language:"Língua",english:"Inglês",spanish:"Espanhol",portuguese:"Portugues",french:"Francês",confirm:"Confirmar",cancel:"Cancelar",close:"Fechar",upload_file:"Carregar arquivo",files_will_uploaded_to:"Os arquivos serão enviados para",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_folder_name_for_compression:"Digite o nome da pasta para Compressão",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",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",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"}),e.translations("es",{filemanager:"Administrador de archivos",language:"Idioma",english:"Ingles",spanish:"Español",portuguese:"Portugues",french:"Francés",confirm:"Confirmar",cancel:"Cancelar",close:"Cerrar",upload_file:"Subir archivo",files_will_uploaded_to:"Los archivos seran subidos a",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_folder_name_for_compression:"Ingrese el nombre de la carpeta 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",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",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"}),e.translations("fr",{filemanager:"Gestionnaire de fichier",language:"Langue",english:"Anglais",spanish:"Espagnol",portuguese:"Portugais",french:"Français",confirm:"Confirmer",cancel:"Annuler",close:"Fermer",upload_file:"Uploader un fichier",files_will_uploaded_to:"Les fichiers seront uploadé dans",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_folder_name_for_compression:"Entrer le nom du dossier 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",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",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"})}])}(angular),function(e){"use strict";e.module("FileManagerApp").service("fileNavigator",["$http","$q","fileManagerConfig","item",function(e,n,t,r){e.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";var a=function(){this.requesting=!1,this.fileList=[],this.currentPath=[],this.history=[],this.error=""};return a.prototype.deferredHandler=function(e,n,t){return e&&"object"==typeof e||(this.error="Bridge response error, please check the docs"),!this.error&&e.result&&e.result.error&&(this.error=e.result.error),!this.error&&e.error&&(this.error=e.error.message),!this.error&&t&&(this.error=t),this.error?n.reject(e):n.resolve(e)},a.prototype.list=function(){var r=this,a=n.defer(),i=r.currentPath.join("/"),o={params:{mode:"list",onlyFolders:!1,path:"/"+i}};return r.requesting=!0,r.fileList=[],r.error="",e.post(t.listUrl,o).success(function(e){r.deferredHandler(e,a)}).error(function(e){r.deferredHandler(e,a,"Unknown error listing, check the response")})["finally"](function(e){r.requesting=!1}),a.promise},a.prototype.refresh=function(){var e=this,n=e.currentPath.join("/");return e.list().then(function(t){e.fileList=(t.result||[]).map(function(n){return new r(n,e.currentPath)}),e.buildTree(n)})},a.prototype.buildTree=function(e){function n(e,t,r){var a=r?r+"/"+t.model.name:t.model.name;if(e.name.trim()&&0!==r.trim().indexOf(e.name)&&(e.nodes=[]),e.name!==r)for(var i in e.nodes)n(e.nodes[i],t,r);else{for(var o in e.nodes)if(e.nodes[o].name===a)return;e.nodes.push({item:t,name:a,nodes:[]})}e.nodes=e.nodes.sort(function(e,n){return e.name\n
  • \n \n \n \n
  • \n
  • \n \n {{dir}}\n \n {{dir}}\n
  • \n
  • \n'),e.put("src/templates/item-context-menu.html",''),e.put("src/templates/item-toolbar.html",'
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n {{"wait" | translate}} ...\n
    '), e.put("src/templates/main-icons.html",'
    \n \n\n
    \n
    \n
    \n\n
    \n {{"no_files_in_folder" | translate}}...\n
    \n \n
    \n {{ fileNavigator.error }}\n
    \n
    '),e.put("src/templates/main-table-modal.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {{"name" | translate}}\n \n \n
    \n
    \n
    \n {{"no_folders_in_folder" | translate}}...\n \n \n
    \n {{ fileNavigator.error }}\n
    \n \n \n {{item.model.name | strLimit : 32}}\n \n \n \n
    '),e.put("src/templates/main-table.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {{"name" | translate}}\n \n \n
    \n
    \n
    \n {{"no_files_in_folder" | translate}}...\n
    \n {{ fileNavigator.error }}\n
    \n \n \n \n {{item.model.name | strLimit : 64}}\n \n \n
    \n
    '),e.put("src/templates/main.html",'
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    '),e.put("src/templates/modals.html",'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'),e.put("src/templates/navbar.html",''),e.put("src/templates/sidebar.html",'\n\n'),e.put("src/templates/spinner.html",'
    \n \n \n \n
    ')}]); \ No newline at end of file diff --git a/src/js/entities/item.js b/src/js/entities/item.js index e3fa1f34..d00c6b08 100644 --- a/src/js/entities/item.js +++ b/src/js/entities/item.js @@ -42,6 +42,9 @@ }; Item.prototype.deferredHandler = function(data, deferred, defaultMsg) { + if (!data || typeof data !== 'object') { + this.error = 'Bridge response error, please check the docs'; + } if (data.result && data.result.error) { this.error = data.result.error; } diff --git a/src/js/services/filenavigator.js b/src/js/services/filenavigator.js index b660125e..10ca5c68 100644 --- a/src/js/services/filenavigator.js +++ b/src/js/services/filenavigator.js @@ -14,8 +14,8 @@ }; FileNavigator.prototype.deferredHandler = function(data, deferred, defaultMsg) { - if (typeof data !== 'object') { - this.error = 'Bridge response error, please check the docs.'; + if (!data || typeof data !== 'object') { + this.error = 'Bridge response error, please check the docs'; } if (!this.error && data.result && data.result.error) { this.error = data.result.error; diff --git a/src/js/services/fileuploader.js b/src/js/services/fileuploader.js index e5132236..839fa060 100644 --- a/src/js/services/fileuploader.js +++ b/src/js/services/fileuploader.js @@ -3,25 +3,26 @@ angular.module('FileManagerApp').service('fileUploader', ['$http', '$q', 'fileManagerConfig', function ($http, $q, fileManagerConfig) { function deferredHandler(data, deferred, errorMessage) { + if (!data || typeof data !== 'object') { + return deferred.reject('Bridge response error, please check the docs'); + } if (data.result && data.result.error) { - return deferred.reject(data) + return deferred.reject(data); } if (data.error) { - return deferred.reject(data) + return deferred.reject(data); } if (errorMessage) { - return deferred.reject(errorMessage) + return deferred.reject(errorMessage); } deferred.resolve(data); } this.requesting = false; this.upload = function(fileList, path) { - if (! window.FormData) { throw new Error('Unsupported browser version'); } - var self = this; var form = new window.FormData(); var deferred = $q.defer();