├── .eslintrc ├── thumb.jpg ├── public ├── favicon.ico └── fonts │ ├── acme.ttf │ ├── acme.woff2 │ ├── fontello.ttf │ ├── fontello.woff │ └── fontello.woff2 ├── postcss.config.js ├── .babelrc ├── client ├── scss │ ├── _globals.scss │ ├── _dropdown.scss │ ├── _reset.scss │ ├── _type.scss │ ├── _tooltip.scss │ ├── _variables.scss │ ├── _common.scss │ ├── _flexbox.scss │ ├── _prompt.scss │ ├── _mixins.scss │ ├── _forms.scss │ ├── _fontello.scss │ └── _modifiers.scss ├── components │ ├── ItemThumb.vue │ ├── LogoBar.vue │ ├── Welcome.vue │ ├── Spinner.vue │ ├── Modal.vue │ ├── ItemPlayer.vue │ ├── AppLogin.vue │ ├── Notify.vue │ ├── DropMenu.vue │ ├── ItemInfo.vue │ ├── ItemsRows.vue │ ├── ItemsGrid.vue │ ├── Options.vue │ ├── App.vue │ ├── Tabs.vue │ ├── UploadForm.vue │ ├── MovieForm.vue │ └── SideBar.vue ├── main.js └── scripts │ ├── Scroller.js │ ├── Viewport.js │ ├── Prompt.js │ ├── Polyfills.js │ └── Tooltip.js ├── .gitignore ├── server ├── modules │ ├── success.js │ ├── scanner.js │ ├── moviedb.js │ ├── users.js │ ├── stat.js │ └── drives.js ├── routes │ ├── app.js │ ├── devices.js │ ├── listings.js │ ├── moviedb.js │ ├── auth.js │ ├── maintenance.js │ └── transfers.js ├── views │ └── template.html ├── server.js └── user.js ├── common ├── api.js ├── config.example.js └── utils.js ├── package.json ├── README.md └── webpack.config.js /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ "html" ] 3 | } 4 | -------------------------------------------------------------------------------- /thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/thumb.jpg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/acme.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/fonts/acme.ttf -------------------------------------------------------------------------------- /public/fonts/acme.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/fonts/acme.woff2 -------------------------------------------------------------------------------- /public/fonts/fontello.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/fonts/fontello.ttf -------------------------------------------------------------------------------- /public/fonts/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/fonts/fontello.woff -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require( "autoprefixer" ) 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /public/fonts/fontello.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rainner/file-browser/HEAD/public/fonts/fontello.woff2 -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }], 4 | ["env", { "modules": false }] 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /client/scss/_globals.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Global vars and mixings for all components 3 | */ 4 | @import "./variables"; 5 | @import "./mixins"; 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | tmp/ 3 | build/ 4 | node_modules/ 5 | server/storage/ 6 | public/dist/ 7 | common/config.js 8 | package-lock.json 9 | npm-debug.log 10 | yarn-error.log 11 | -------------------------------------------------------------------------------- /server/modules/success.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Wrapper for successful responses 3 | */ 4 | module.exports = ( code, message, data ) => { 5 | return { 6 | statusCode: code || 200, 7 | message: message || 'Success', 8 | data: data, 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /server/routes/app.js: -------------------------------------------------------------------------------- 1 | /** 2 | * App static routes 3 | */ 4 | const routes = []; 5 | 6 | /** 7 | * Main app route 8 | * @return {html}: app template and bundles 9 | */ 10 | routes.push({ 11 | method: 'GET', 12 | path: '/', 13 | config: { 14 | auth: false, 15 | handler: ( request, reply ) => { 16 | return reply.file( 'template.html' ); 17 | } 18 | } 19 | }); 20 | 21 | // export routes 22 | module.exports = routes; 23 | -------------------------------------------------------------------------------- /server/views/template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |10 | This is a web application for browsing the contents 11 | of storage devices attached to this server. 12 |
13 |14 | Available storage devices are listed in the 15 | 18 | located to the left, along with saved favorite locations. 19 |
20 |21 | Start by selecting a device from the available 22 | list to start browsing it's contents. 23 |
24 |26 | Author: 27 | 28 | Rainner Lins 29 | 30 |
31 |