Skip to content

azerafati/angularjs-filemanager

 
 

Repository files navigation

AngularJS File Manager

Build Status Codacy Badge npm version GitHub issues Dependency Status Coverage Status npm GitHub license

This is a minimal and light-weight file manager to explore your files on the server developed in AngularJS using Bootstrap 4

This project is based on excellent work of Jonas Sciangula Street, but since he's not planning to maintain it I'm moving forward with my own fork.

There are example backend connectors in (e.g. PHP, PHP-FTP, Python, Java) or you can create your own backend connector following the connector API.

Install

1) Run npm i @azerafati/angularjs-filemanager --save

2) Install dependencies

3) Include the dependencies in your project

<!-- third party -->
  <script src="/node_modules/jquery/dist/jquery.min.js"></script>
  <script src="/node_modules/angular/angular.min.js"></script>
  <script src="/node_modules/angular-translate/dist/angular-translate.min.js"></script>
  <script src="/node_modules/ng-file-upload/dist/ng-file-upload.min.js"></script>
  <script src="/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

<!-- angularjs-filemanager -->
  <link rel="stylesheet" href="/node_modules/@azerafati/angularjs-filemanager/dist/angular-filemanager.css">
  <script src="node_modules/@azerafati/angularjs-filemanager/dist/angular-filemanager.js"></script>

4) Use the angular directive in your HTML

<angularjs-filemanager></angularjs-filemanager>
angular.module('AngularJS-FileManager').config(['fileManagerConfigProvider', function (config) {
  var defaults = config.$get();
  config.setBridge('/bridges/php-local/index.php');
  config.set({
    appName: 'AngularJS File Manager',
    pickCallback: function(item) {
      var msg = 'Picked %s "%s" for external use'
        .replace('%s', item.type)
        .replace('%s', item.fullPath());
      window.alert(msg);
    },

    allowedActions: angular.extend(defaults.allowedActions, {
      pickFiles: true,
      pickFolders: false,
    }),
  });
}]);

Features

  • Multiple file support
  • Multilanguage
  • List and Icon view
  • Multiple file upload
  • Pick files callback for third parties apps
  • Search files
  • Directory tree navigation
  • Copy, Move, Rename (Interactive UX)
  • Delete, Edit, Preview, Download
  • File permissions (Unix chmod style)
  • Mobile support

TODO

  • Drag and drop
  • Dropbox and Google Drive connectors
  • Remove usage of jQuery

Backend API

Read the docs


Create a new build with your changes

  gulp build || node node_modules/gulp/bin/gulp.js build

You can do many things by extending the configuration. Like hide the sidebar or the search button. See the list of default configurations.


Contribute

To contribute to the project you can simply fork this repo. To build a minified version, you can simply run the Gulp task gulp build. The minified/uglified files are created in the dist folder.

Versioning

For transparency into our release cycle and in striving to maintain backward compatibility, angular-filemanager is maintained under the Semantic Versioning guidelines.

Copyright and license

Code and documentation released under the MIT license.

Packages

No packages published

Languages

  • JavaScript 43.3%
  • PHP 19.0%
  • HTML 18.0%
  • Java 11.0%
  • Lua 5.1%
  • CSS 3.6%