From e6c0d1c28af1905009067ac925bae0d0cd56c027 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 12:17:04 +0000 Subject: [PATCH 001/134] initial commit --- .babelrc | 13 + .eslintignore | 2 + .eslintrc.js | 27 ++ .gitignore | 12 + .travis.yml | 22 + CODE_OF_CONDUCT.md | 46 ++ CONTRIBUTING.md | 14 + LICENSE.md | 201 ++++++++ README.md | 3 + assets/build/build.js | 31 ++ assets/build/check-versions.js | 48 ++ assets/build/config.js | 26 + assets/build/dev.js | 35 ++ assets/build/service-worker-dev.js | 17 + assets/build/service-worker-prod.js | 55 +++ assets/build/utils.js | 70 +++ assets/build/vue-loader.conf.js | 12 + assets/build/webpack.base.conf.js | 69 +++ assets/build/webpack.dev.conf.js | 81 ++++ assets/build/webpack.prod.conf.js | 127 +++++ assets/index.html | 116 +++++ assets/src/App.vue | 78 +++ assets/src/assets/fonts/material/icons.woff2 | Bin 0 -> 47620 bytes .../fonts/roboto/medium-cyrillic-ext.woff2 | Bin 0 -> 15292 bytes .../assets/fonts/roboto/medium-cyrillic.woff2 | Bin 0 -> 10060 bytes .../fonts/roboto/medium-greek-ext.woff2 | Bin 0 -> 1412 bytes .../assets/fonts/roboto/medium-greek.woff2 | Bin 0 -> 7176 bytes .../fonts/roboto/medium-latin-ext.woff2 | Bin 0 -> 11912 bytes .../assets/fonts/roboto/medium-latin.woff2 | Bin 0 -> 14596 bytes .../fonts/roboto/medium-vietnamese.woff2 | Bin 0 -> 4780 bytes .../fonts/roboto/normal-cyrillic-ext.woff2 | Bin 0 -> 15832 bytes .../assets/fonts/roboto/normal-cyrillic.woff2 | Bin 0 -> 9996 bytes .../fonts/roboto/normal-greek-ext.woff2 | Bin 0 -> 1432 bytes .../assets/fonts/roboto/normal-greek.woff2 | Bin 0 -> 7208 bytes .../fonts/roboto/normal-latin-ext.woff2 | Bin 0 -> 12008 bytes .../assets/fonts/roboto/normal-latin.woff2 | Bin 0 -> 14584 bytes .../fonts/roboto/normal-vietnamese.woff2 | Bin 0 -> 4896 bytes assets/src/assets/logo.svg | 5 + assets/src/components/Header.vue | 220 +++++++++ assets/src/components/Languages.vue | 23 + assets/src/components/Search.vue | 265 ++++++++++ assets/src/components/Sidebar.vue | 90 ++++ assets/src/components/buttons/Copy.vue | 17 + assets/src/components/buttons/Delete.vue | 17 + assets/src/components/buttons/Download.vue | 39 ++ assets/src/components/buttons/Info.vue | 17 + assets/src/components/buttons/Move.vue | 17 + assets/src/components/buttons/Rename.vue | 17 + assets/src/components/buttons/Schedule.vue | 21 + assets/src/components/buttons/Share.vue | 17 + assets/src/components/buttons/SwitchView.vue | 36 ++ assets/src/components/buttons/Upload.vue | 17 + assets/src/components/files/Editor.vue | 143 ++++++ assets/src/components/files/Listing.vue | 381 +++++++++++++++ assets/src/components/files/ListingItem.vue | 158 ++++++ assets/src/components/files/Preview.vue | 139 ++++++ assets/src/components/prompts/Copy.vue | 69 +++ assets/src/components/prompts/Delete.vue | 80 +++ assets/src/components/prompts/Download.vue | 47 ++ assets/src/components/prompts/FileList.vue | 140 ++++++ assets/src/components/prompts/Help.vue | 34 ++ assets/src/components/prompts/Info.vue | 122 +++++ assets/src/components/prompts/Move.vue | 70 +++ .../src/components/prompts/NewArchetype.vue | 76 +++ assets/src/components/prompts/NewDir.vue | 60 +++ assets/src/components/prompts/NewFile.vue | 61 +++ assets/src/components/prompts/Prompts.vue | 87 ++++ assets/src/components/prompts/Rename.vue | 84 ++++ assets/src/components/prompts/Replace.vue | 31 ++ assets/src/components/prompts/Schedule.vue | 47 ++ assets/src/components/prompts/Share.vue | 162 +++++++ assets/src/css/base.css | 214 ++++++++ assets/src/css/dashboard.css | 420 ++++++++++++++++ assets/src/css/editor.css | 184 +++++++ assets/src/css/fonts.css | 137 ++++++ assets/src/css/header.css | 260 ++++++++++ assets/src/css/listing.css | 237 +++++++++ assets/src/css/login.css | 76 +++ assets/src/css/mobile.css | 113 +++++ assets/src/css/styles.css | 228 +++++++++ assets/src/i18n/en.yaml | 201 ++++++++ assets/src/i18n/es.yaml | 202 ++++++++ assets/src/i18n/fr.yaml | 194 ++++++++ assets/src/i18n/index.js | 61 +++ assets/src/i18n/ja.yaml | 201 ++++++++ assets/src/i18n/pt.yaml | 204 ++++++++ assets/src/i18n/zh-cn.yaml | 199 ++++++++ assets/src/i18n/zh-tw.yaml | 199 ++++++++ assets/src/main.js | 54 +++ assets/src/router/index.js | 161 +++++++ assets/src/store/getters.js | 5 + assets/src/store/index.js | 42 ++ assets/src/store/mutations.js | 81 ++++ assets/src/utils/api.js | 455 ++++++++++++++++++ assets/src/utils/auth.js | 69 +++ assets/src/utils/buttons.js | 66 +++ assets/src/utils/codemirror.js | 60 +++ assets/src/utils/cookie.js | 4 + assets/src/utils/css.js | 28 ++ assets/src/utils/url.js | 12 + assets/src/views/Files.vue | 231 +++++++++ assets/src/views/Layout.vue | 43 ++ assets/src/views/Login.vue | 71 +++ assets/src/views/Settings.vue | 20 + assets/src/views/errors/403.vue | 13 + assets/src/views/errors/404.vue | 13 + assets/src/views/errors/500.vue | 13 + assets/src/views/settings/Global.vue | 187 +++++++ assets/src/views/settings/Profile.vue | 109 +++++ assets/src/views/settings/User.vue | 319 ++++++++++++ assets/src/views/settings/Users.vue | 48 ++ .../img/icons/android-chrome-192x192.png | Bin 0 -> 4299 bytes .../img/icons/android-chrome-512x512.png | Bin 0 -> 12300 bytes .../img/icons/apple-touch-icon-120x120.png | Bin 0 -> 2930 bytes .../img/icons/apple-touch-icon-152x152.png | Bin 0 -> 3723 bytes .../img/icons/apple-touch-icon-180x180.png | Bin 0 -> 8893 bytes .../img/icons/apple-touch-icon-60x60.png | Bin 0 -> 1910 bytes .../img/icons/apple-touch-icon-76x76.png | Bin 0 -> 1977 bytes assets/static/img/icons/apple-touch-icon.png | Bin 0 -> 4299 bytes assets/static/img/icons/favicon-16x16.png | Bin 0 -> 918 bytes assets/static/img/icons/favicon-32x32.png | Bin 0 -> 1645 bytes assets/static/img/icons/favicon.ico | Bin 0 -> 1150 bytes .../img/icons/msapplication-icon-144x144.png | Bin 0 -> 3515 bytes assets/static/img/icons/mstile-150x150.png | Bin 0 -> 3668 bytes assets/static/manifest.json | 20 + assets/static/share/404.html | 50 ++ assets/static/share/index.html | 86 ++++ package.json | 88 ++++ 128 files changed, 9592 insertions(+) create mode 100644 .babelrc create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 assets/build/build.js create mode 100644 assets/build/check-versions.js create mode 100644 assets/build/config.js create mode 100644 assets/build/dev.js create mode 100644 assets/build/service-worker-dev.js create mode 100644 assets/build/service-worker-prod.js create mode 100644 assets/build/utils.js create mode 100644 assets/build/vue-loader.conf.js create mode 100644 assets/build/webpack.base.conf.js create mode 100644 assets/build/webpack.dev.conf.js create mode 100644 assets/build/webpack.prod.conf.js create mode 100644 assets/index.html create mode 100644 assets/src/App.vue create mode 100644 assets/src/assets/fonts/material/icons.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-cyrillic.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-greek-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-greek.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-latin-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-latin.woff2 create mode 100644 assets/src/assets/fonts/roboto/medium-vietnamese.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-cyrillic.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-greek-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-greek.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-latin-ext.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-latin.woff2 create mode 100644 assets/src/assets/fonts/roboto/normal-vietnamese.woff2 create mode 100644 assets/src/assets/logo.svg create mode 100644 assets/src/components/Header.vue create mode 100644 assets/src/components/Languages.vue create mode 100644 assets/src/components/Search.vue create mode 100644 assets/src/components/Sidebar.vue create mode 100644 assets/src/components/buttons/Copy.vue create mode 100644 assets/src/components/buttons/Delete.vue create mode 100644 assets/src/components/buttons/Download.vue create mode 100644 assets/src/components/buttons/Info.vue create mode 100644 assets/src/components/buttons/Move.vue create mode 100644 assets/src/components/buttons/Rename.vue create mode 100644 assets/src/components/buttons/Schedule.vue create mode 100644 assets/src/components/buttons/Share.vue create mode 100644 assets/src/components/buttons/SwitchView.vue create mode 100644 assets/src/components/buttons/Upload.vue create mode 100644 assets/src/components/files/Editor.vue create mode 100644 assets/src/components/files/Listing.vue create mode 100644 assets/src/components/files/ListingItem.vue create mode 100644 assets/src/components/files/Preview.vue create mode 100644 assets/src/components/prompts/Copy.vue create mode 100644 assets/src/components/prompts/Delete.vue create mode 100644 assets/src/components/prompts/Download.vue create mode 100644 assets/src/components/prompts/FileList.vue create mode 100644 assets/src/components/prompts/Help.vue create mode 100644 assets/src/components/prompts/Info.vue create mode 100644 assets/src/components/prompts/Move.vue create mode 100644 assets/src/components/prompts/NewArchetype.vue create mode 100644 assets/src/components/prompts/NewDir.vue create mode 100644 assets/src/components/prompts/NewFile.vue create mode 100644 assets/src/components/prompts/Prompts.vue create mode 100644 assets/src/components/prompts/Rename.vue create mode 100644 assets/src/components/prompts/Replace.vue create mode 100644 assets/src/components/prompts/Schedule.vue create mode 100644 assets/src/components/prompts/Share.vue create mode 100644 assets/src/css/base.css create mode 100644 assets/src/css/dashboard.css create mode 100644 assets/src/css/editor.css create mode 100644 assets/src/css/fonts.css create mode 100644 assets/src/css/header.css create mode 100644 assets/src/css/listing.css create mode 100644 assets/src/css/login.css create mode 100644 assets/src/css/mobile.css create mode 100644 assets/src/css/styles.css create mode 100644 assets/src/i18n/en.yaml create mode 100644 assets/src/i18n/es.yaml create mode 100644 assets/src/i18n/fr.yaml create mode 100644 assets/src/i18n/index.js create mode 100644 assets/src/i18n/ja.yaml create mode 100644 assets/src/i18n/pt.yaml create mode 100644 assets/src/i18n/zh-cn.yaml create mode 100644 assets/src/i18n/zh-tw.yaml create mode 100644 assets/src/main.js create mode 100644 assets/src/router/index.js create mode 100644 assets/src/store/getters.js create mode 100644 assets/src/store/index.js create mode 100644 assets/src/store/mutations.js create mode 100644 assets/src/utils/api.js create mode 100644 assets/src/utils/auth.js create mode 100644 assets/src/utils/buttons.js create mode 100644 assets/src/utils/codemirror.js create mode 100644 assets/src/utils/cookie.js create mode 100644 assets/src/utils/css.js create mode 100644 assets/src/utils/url.js create mode 100644 assets/src/views/Files.vue create mode 100644 assets/src/views/Layout.vue create mode 100644 assets/src/views/Login.vue create mode 100644 assets/src/views/Settings.vue create mode 100644 assets/src/views/errors/403.vue create mode 100644 assets/src/views/errors/404.vue create mode 100644 assets/src/views/errors/500.vue create mode 100644 assets/src/views/settings/Global.vue create mode 100644 assets/src/views/settings/Profile.vue create mode 100644 assets/src/views/settings/User.vue create mode 100644 assets/src/views/settings/Users.vue create mode 100644 assets/static/img/icons/android-chrome-192x192.png create mode 100644 assets/static/img/icons/android-chrome-512x512.png create mode 100644 assets/static/img/icons/apple-touch-icon-120x120.png create mode 100644 assets/static/img/icons/apple-touch-icon-152x152.png create mode 100644 assets/static/img/icons/apple-touch-icon-180x180.png create mode 100644 assets/static/img/icons/apple-touch-icon-60x60.png create mode 100644 assets/static/img/icons/apple-touch-icon-76x76.png create mode 100644 assets/static/img/icons/apple-touch-icon.png create mode 100644 assets/static/img/icons/favicon-16x16.png create mode 100644 assets/static/img/icons/favicon-32x32.png create mode 100644 assets/static/img/icons/favicon.ico create mode 100644 assets/static/img/icons/msapplication-icon-144x144.png create mode 100644 assets/static/img/icons/mstile-150x150.png create mode 100644 assets/static/manifest.json create mode 100644 assets/static/share/404.html create mode 100644 assets/static/share/index.html create mode 100644 package.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..a2a58cff --- /dev/null +++ b/.babelrc @@ -0,0 +1,13 @@ +{ + "presets": [ + ["env", { "modules": false }], + "stage-2" + ], + "plugins": ["transform-runtime"], + "env": { + "test": { + "presets": ["env", "stage-2"], + "plugins": [ "istanbul" ] + } + } +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..34af3774 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +build/*.js +config/*.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..67c085d6 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,27 @@ +// http://eslint.org/docs/user-guide/configuring + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + }, + // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style + extends: 'standard', + // required to lint *.vue files + plugins: [ + 'html' + ], + // add your custom rules here + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c4bbc189 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules/ +*/dist/* +*.db +*.db.lock +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.idea +.vscode +package-lock.json +yarn.lock \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..7092fe76 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: go + +go: 1.x + +env: + - "PATH=/home/travis/gopath/bin:$PATH" + +install: + - go get ./... + # Install gometalinter and certain linters + - go get github.com/alecthomas/gometalinter + - go get github.com/client9/misspell/cmd/misspell + - go get github.com/gordonklaus/ineffassign + - go get golang.org/x/tools/cmd/goimports + - go get github.com/tsenart/deadcode + +script: + - gometalinter --disable-all -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --exclude="rice-box.go" --tests ./... + - go test ./... -timeout 30s + +after_success: + - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..f0cc78e8 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hacdias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..2b7e1bab --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Contributing + +If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: + +1. `go get github.com/hacdias/filemanager/cmd/filemanager` +2. `cd $GOPATH/src/github.com/hacdias/filemanager` +3. `npm install` +4. `npm run dev` - regenerates the static assets automatically +5. `go install github.com/hacdias/filemanager/cmd/filemanager` +6. Execute `$GOPATH/bin/filemanager` + +The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. + +If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/hacdias/filemanager/caddy/filemanager`. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..5e0fd33c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,201 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "{}" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright {yyyy} {name of copyright owner} + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 00000000..73012ccc --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# filemanager + +TODO diff --git a/assets/build/build.js b/assets/build/build.js new file mode 100644 index 00000000..c7c0fbdb --- /dev/null +++ b/assets/build/build.js @@ -0,0 +1,31 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('./config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.assetsRoot, config.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + }) +}) diff --git a/assets/build/check-versions.js b/assets/build/check-versions.js new file mode 100644 index 00000000..f9133e24 --- /dev/null +++ b/assets/build/check-versions.js @@ -0,0 +1,48 @@ +var chalk = require('chalk') +var semver = require('semver') +var packageConfig = require('../../package.json') +var shell = require('shelljs') +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +var versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + } +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + var warnings = [] + for (var i = 0; i < versionRequirements.length; i++) { + var mod = versionRequirements[i] + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + for (var i = 0; i < warnings.length; i++) { + var warning = warnings[i] + console.log(' ' + warning) + } + console.log() + process.exit(1) + } +} diff --git a/assets/build/config.js b/assets/build/config.js new file mode 100644 index 00000000..885ac29d --- /dev/null +++ b/assets/build/config.js @@ -0,0 +1,26 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + index: path.resolve(__dirname, '../dist/index.html'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + assetsPublicPath: '{{ .BaseURL }}/', + build: { + env: { + NODE_ENV: '"production"' + }, + productionSourceMap: true, + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: { + NODE_ENV: '"development"' + }, + produceSourceMap: true + } +} diff --git a/assets/build/dev.js b/assets/build/dev.js new file mode 100644 index 00000000..9b42a437 --- /dev/null +++ b/assets/build/dev.js @@ -0,0 +1,35 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'development' + +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('./config') +var webpackConfig = require('./webpack.dev.conf') +var fs = require('fs') + +if (fs.existsSync('./rice-box.go')) { + fs.unlinkSync('./rice-box.go') +} + +if (fs.existsSync('./plugins/rice-box.go')) { + fs.unlinkSync('./plugins/rice-box.go') +} + +rm(path.join(config.assetsRoot, config.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + }) +}) diff --git a/assets/build/service-worker-dev.js b/assets/build/service-worker-dev.js new file mode 100644 index 00000000..979e1962 --- /dev/null +++ b/assets/build/service-worker-dev.js @@ -0,0 +1,17 @@ +// This service worker file is effectively a 'no-op' that will reset any +// previous service worker registered for the same host:port combination. +// In the production build, this file is replaced with an actual service worker +// file that will precache your site's local assets. +// See https://github.com/facebookincubator/create-react-app/issues/2272#issuecomment-302832432 + +self.addEventListener('install', () => self.skipWaiting()); + +self.addEventListener('activate', () => { + self.clients.matchAll({ type: 'window' }).then(windowClients => { + for (let windowClient of windowClients) { + // Force open pages to refresh, so that they have a chance to load the + // fresh navigation response from the local dev server. + windowClient.navigate(windowClient.url); + } + }); +}); \ No newline at end of file diff --git a/assets/build/service-worker-prod.js b/assets/build/service-worker-prod.js new file mode 100644 index 00000000..1179ec20 --- /dev/null +++ b/assets/build/service-worker-prod.js @@ -0,0 +1,55 @@ +(function() { + 'use strict'; + + // Check to make sure service workers are supported in the current browser, + // and that the current page is accessed from a secure origin. Using a + // service worker from an insecure origin will trigger JS console errors. + const isLocalhost = Boolean(window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.1/8 is considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) + ); + + window.addEventListener('load', function() { + if ('serviceWorker' in navigator && + (window.location.protocol === 'https:' || isLocalhost)) { + navigator.serviceWorker.register('{{ .BaseURL }}/sw.js') + .then(function(registration) { + // updatefound is fired if service-worker.js changes. + registration.onupdatefound = function() { + // updatefound is also fired the very first time the SW is installed, + // and there's no need to prompt for a reload at that point. + // So check here to see if the page is already controlled, + // i.e. whether there's an existing service worker. + if (navigator.serviceWorker.controller) { + // The updatefound event implies that registration.installing is set + const installingWorker = registration.installing; + + installingWorker.onstatechange = function() { + switch (installingWorker.state) { + case 'installed': + // At this point, the old content will have been purged and the + // fresh content will have been added to the cache. + // It's the perfect time to display a "New content is + // available; please refresh." message in the page's interface. + break; + + case 'redundant': + throw new Error('The installing ' + + 'service worker became redundant.'); + + default: + // Ignore + } + }; + } + }; + }).catch(function(e) { + console.error('Error during service worker registration:', e); + }); + } + }); +})(); diff --git a/assets/build/utils.js b/assets/build/utils.js new file mode 100644 index 00000000..616ceb3a --- /dev/null +++ b/assets/build/utils.js @@ -0,0 +1,70 @@ +var path = require('path') +var config = require('./config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + var assetsSubDirectory = config.assetsSubDirectory + + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + var cssLoader = { + loader: 'css-loader', + options: { + minimize: process.env.NODE_ENV === 'production', + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + var loaders = [cssLoader] + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + return output +} diff --git a/assets/build/vue-loader.conf.js b/assets/build/vue-loader.conf.js new file mode 100644 index 00000000..a17529fc --- /dev/null +++ b/assets/build/vue-loader.conf.js @@ -0,0 +1,12 @@ +var utils = require('./utils') +var config = require('./config') +var isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: isProduction + ? config.build.productionSourceMap + : config.dev.produceSourceMap, + extract: isProduction + }) +} diff --git a/assets/build/webpack.base.conf.js b/assets/build/webpack.base.conf.js new file mode 100644 index 00000000..f8188022 --- /dev/null +++ b/assets/build/webpack.base.conf.js @@ -0,0 +1,69 @@ +var path = require('path') +var utils = require('./utils') +var config = require('./config') +var vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +module.exports = { + entry: { + app: './assets/src/main.js' + }, + output: { + path: config.assetsRoot, + filename: '[name].js', + publicPath: config.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src') + } + }, + module: { + rules: [ + { + test: /\.(yml|yaml)$/, + loader: 'yml-loader' + }, + { + test: /\.(js|vue)$/, + loader: 'eslint-loader', + enforce: 'pre', + include: [resolve('src'), resolve('test')], + options: { + formatter: require('eslint-friendly-formatter') + } + }, + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + // limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + } +} diff --git a/assets/build/webpack.dev.conf.js b/assets/build/webpack.dev.conf.js new file mode 100644 index 00000000..dd75ac4e --- /dev/null +++ b/assets/build/webpack.dev.conf.js @@ -0,0 +1,81 @@ +var fs = require('fs') +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('./config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +var CopyWebpackPlugin = require('copy-webpack-plugin') + +module.exports = merge(baseWebpackConfig, { + watch: true, + module: { + rules: utils.styleLoaders({ + sourceMap: config.dev.produceSourceMap, + extract: true + }) + }, + devtool: '#cheap-module-eval-source-map', + output: { + path: config.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + new webpack.NoEmitOnErrorsPlugin(), + new FriendlyErrorsPlugin(), + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.index, + template: 'assets/index.html', + inject: true, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency', + serviceWorkerLoader: `` + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../../node_modules/codemirror/mode/*/*'), + to: path.join(config.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js') + } + ]) + ] +}) diff --git a/assets/build/webpack.prod.conf.js b/assets/build/webpack.prod.conf.js new file mode 100644 index 00000000..bf992924 --- /dev/null +++ b/assets/build/webpack.prod.conf.js @@ -0,0 +1,127 @@ +var fs = require('fs') +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('./config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var CopyWebpackPlugin = require('copy-webpack-plugin') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') +var SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin') +var UglifyJS = require('uglify-js') + +var env = config.build.env + +var webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true + }) + }, + devtool: config.build.productionSourceMap ? '#source-map' : false, + output: { + path: config.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.assetsSubDirectory, + ignore: ['.*'] + }, + { + from: path.resolve(__dirname, '../../node_modules/codemirror/mode/*/*'), + to: path.join(config.assetsSubDirectory, 'js/codemirror/mode/[name]/[name].js'), + transform: function (source, path) { + let result = UglifyJS.minify(source.toString('utf8')) + if (result.error !== undefined) { + return source + } + return result.code + } + } + ]), + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: { + safe: true + } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.index, + template: 'assets/index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true, + minifyCSS: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency', + serviceWorkerLoader: `` + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + // service worker caching + new SWPrecacheWebpackPlugin({ + cacheId: 'File Browser', + filename: 'sw.js', + replacePrefix: '{{ .BaseURL }}/', + staticFileGlobs: ['dist/**/*.{js,html,css}'], + minify: true, + stripPrefix: 'dist/' + }) + ] +}) + +if (config.build.bundleAnalyzerReport) { + var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/assets/index.html b/assets/index.html new file mode 100644 index 00000000..8abc3097 --- /dev/null +++ b/assets/index.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + File Browser + + + + + + + + + + + + + + + + + + + {{ if .ReCaptcha -}} + + {{ end }} + + <% for (var chunk of webpack.chunks) { + for (var file of chunk.files) { + if (file.match(/\.(js|css)$/)) { %> + <% }}} %> + + + + +
+ +
+
+
+
+
+
+
+ + <%= htmlWebpackPlugin.options.serviceWorkerLoader %> + + diff --git a/assets/src/App.vue b/assets/src/App.vue new file mode 100644 index 00000000..ba1aa39d --- /dev/null +++ b/assets/src/App.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/assets/src/assets/fonts/material/icons.woff2 b/assets/src/assets/fonts/material/icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..05a8ab5d2e69c71d6e69bdafbf1601dd5dff2b07 GIT binary patch literal 47620 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

dwtib={~_1^@O~rS8<3sA|t04JLL!-NxZX$5n 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

MOQ9ju8O#jB4RxdN~9kw5@Or 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic.woff2 b/assets/src/assets/fonts/roboto/medium-cyrillic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3ca824db64d0186f7e52b1f7464413a638f9f18 GIT binary patch literal 10060 zcmV-SC$rdhPew8T0RR9104GcU5dZ)H09up)04D1I0ssI200000000000000000000 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 mb=gU~>F$4Gvd<#C<9HE{ARVQ^Cs&+nPJhBM@ zc~=Qmjy6|g9I`e@fFodiQDzsJmF+rKKJiZ+FU|uMDNjL_{hC^tZlQlho-L{w+ z<&I1%Xfcs6YUlbe2MRNY(a3;KXoW78PtXl5&;z~D&jMAddro$38ZZpg zU?$5T5Rj3``u?VOv}$@W8>X{h2G8j)MEcJ{A&+$yvY0x{tkIJDlyS}R`BJa)4qwjl zKs@-My}SCn{0sGntoiT1xh`Gy$e1DNmOHh@JkFyqbuR_;($J2?@E>QnU6_KDVbn@+ zS)6W~&^Euv`>_YVtnN$7qnwnq_EyLVsXILgLW7 ztNNsX%m@W@jXbbaRmcW!YfNmqNy>g(#%jae1co?YPG1 zfMVTje-wgflcmLoBHUUk8cGKS_#W$07T7QUjdYfOSe^>g)gqsCvMQ#XebRg}i$=+91;(h~3V9JaOPIqB` z@tqV=Sq`-LFflkH;Msyvr!`~DG+pcuqt zOi0#obu#qL3UGMZLX#RHqkZP~l4BrVGFN95vbmb+jUF2}m}TGjPf?U}lWol8Rkd|~ zm3xPu_qVBp+W>{w*o-j4Zq%lQ{7Bq(E|A)X%xw(!bxdUBIwnk|vilB&n=AvhpHLp) zL$Q%)gZ)b&0Wln`NpCQMr>TI)p3cvt1YSwa<2pXnkVKktEq$Gnnmt_@#mC6wlNpI* zqt8qF$IkOedfptd-p%yIlLT6Q%0a{vpJAXGC3xWd zGG&ND6u~>ibu>gs%o3WoU!}mO7JNo>Gsdm#_=uF#$_b!8^;>-d+!Q6#F@luL(17;C zCE0<2wD;aBnnP>P1vJQ5?oQAo{1dIf#diScpU(TD6wY)EUZ1L5Lv>279ipE)C^$nH z8UQ{k?B*R7tw2=>p-6hUft)4`vGki@f|1gg|97HFxCA9~vNkM_541YY z`9bP?uV1Gn+t5)U8T-c2Tj!~yrlg~b@}!3}$JMT%?>e=3^fJtp*V(-5T|R`6aW{o@ zmu>NS_j{T7-`?qk`On>df%5JN5xE{RQD0x2))6w#A9B84D-m@JaER8ASO`>CK#-vZ z%7#}EO<&Rqa#jEl7}GZ}WWMTZ>{rI)AhvPxJ&efYp0t#1K%u?ANk(@`S4>8^5Q*Ju zyXd>MjX*NDomN_-ljrOkxYb4v;4E#lnNlp%G{bEtB&=1TF{=1%qr&e(1q_$WndX#u zG@Kd~vUY6(H-Xe^UjjK+f@E6|BlauYf+t0Q232^Vo}D*;VHx)2&HFn*EIhB+SJ8okPh zu9>?wU(Ne(2nG*WhG#&S0Ldk#Jb+1^DWX4YZq5K&v`-#Dpo20^ELKq2(zj{Vl1gvM zRWtjWIItMH2t1^I40#Rvk9(}Bg~Ih}>(X_MwMjFqvsk8WwoF{%GB-1Dw2nX5n!|N@ z$KAml@Hnj~-zlmy&aW}4BgYxkx1#I`dW5MV{ekzrFxrl%ey(^{r_7Lz_xBLW{QC(C zQKm&A3MhV0ES+@BlC`NUs9{B9xM{)`Y+*}qmCN0gT<2Yfbnd#luFUte zowXCDo!wlKvUefxr?q4*siMZ>r8lm(S(LY1RmOkBb3WhRw;$VrQG!A|-A5qC87i$9 zyTYY`C3Fu4P9T{GkjT~l%lXpyS5n@5Loe}=7okN-z{<8#VsH{FLWeYc>T5dgS8P!E z>UEc}ac<6s%&w%W$A2enFh z^2vpFiG_IP_W~PZpa*zRDHN#VAPR7Al=0+Q3YDMYk1|dahqj%d-K}(~6)HRUH>5BMtlrs>UPAe{F3`JV5mteG=}4S6bKJ}?GeK?7*`se4G~$U6-C)=nu6O;0NcTSx zxIuX`K;qFfqP@EB3&B+h=duIw9)$wb*VKu4&?vTjy%nzYmP_vfIt9Ylo8CvJiApR~ zykU9df8FdZ_OF!QchPjCKIWDNMN|L3E&ndZg>S|sQ-WQ3=c6cj=R69G6|%7)iWJQR z+?D*sG;~guMzrs_Kx0kXFj6R~onzVZx(yXPUb$ZhE>}qSEof~frsbcD>4+)a z%-{)SRX=dY`VW8m^@*1hbNTvY;=>V%PpOZBK*D-bgn-;_Z%Ij1Hu{zQC#fZcZz) zzF|4nqihL=TiMC4y+vVOwtT%Nx@KS(i=r-@T}%n*3#oWi3&*UH+30dM?dO-$R&K`U z-}I_eoE;^ukH1_mEa~;P)~2DHPg|>oqx-Q&enguU8MJFx9EnxRiYYf#7#oF-Mv!w+ zte{|y7Wg<6^c9M7N<5~}?rmPBLr_2LO;z$LIEVW3s*W+Sl3a)oWf3}k(i^V{xh2fE zQ>I*3^7r&Adsm%S(g(RUO46?z(?*R`W^-PS6vxR}Nl)77l^g=zIBwoCaxyBeaWr+K z*T$~wr;R+V$M|s*N#aW1_!yL zWAXhaGwCSVmZnTBmWCTDf_f|{ILjcSoLW#5r|ye)tx48d$Y8TL-&jj5w!#)`qSg}2 z$h+DC8%>3^(IzEYXRUnos?{1$N1Hs>5t3(>jrHb@(&Z$Z)7EQO1Gib#7Cf~USd^ek zyzDv~ErYe%iZHvxTAM80^tAIBBlR2nFCtBYqWhaV`bMdh?^>g<%EST9geu8Jwp~zN zhah$nZXCkbmSlOcR`K*=R$ZLwyOuuPNDu1wgdRk6;%%LRU@XFj)GN;myCaJFrbj!g zX`H%Q7O_&Ewjauf*b+aDYu^*GkM&_p^RBl2SwGB1!~y2J(ajoj9n>n$4mt;rJS;md iB>Z*wRg(#i;d>LdW9fVQrS%SD&x0d(T^@u10002A;bAiX literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 b/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7e1a807819496f6e3e52ce083544104841602e05 GIT binary patch literal 1412 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 K>W@?d0002eJ=}u; literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 b/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..604b89354421a545b529e76acaacb9c7f5d50988 GIT binary patch literal 11912 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 OA2`Fug|G}F3IG6(|K7_0 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-latin.woff2 b/assets/src/assets/fonts/roboto/medium-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5f96609d81a812b8f2557a4e9bba6db29205ae0e GIT binary patch literal 14596 zcmV+fIs3+UPew8T0RR91067Ez5dZ)H0Duqx063rk0ssI200000000000000000000 z0000Rnh+d;2nJvPhBydT34=Tl3<`n90D-S<5`ky|HUcCAhIR{sJ^%zD1%ez0APj*_ z8ya#Y?AU~W^FRbVU-vw-12JqIh9(DcV?-j~J@Boy#(Y0?Y+sUYl6eH@Pg|&G8 z==fIZhz~&!mf4p2yT(KF+y850Z~L|+wz1hp9bKhj_0;4=qb`9+tE?=`-Me9&TmX?D z0ATFH)2Z*@UDAtCIE7Ow#jh-4PtjXivVMa0N(3iMy*~ zo6q(ISTN15-AUg?6DrDdT&K!Q7oGG83RV^ZTeiI~rO-;3#Dnr!F*n(~(ljIS=zltE zAdbzE1N1{)A{}GjUr}D!tzJJV< z_xhPg3Z1Qh0zj$)RO%!@uw*-+56Qs?uKuSFc1f4-Qq*axwB0)u@bGryw}?I-fVErl zcYp!?Md3N#0ty3eQfJjlOKd;4*wpa>*FRU4C&{rlmc3v*4@rE0C|I!M{EVI51I|5C zb@vrf(R^1DHPu7kezE)+1nZ=@p;@Dd<@2g#F{HzIAs>iHx7%#hbkL{m_a<9T9NZt3 zf|wY69r@~KXAMr|L>8g+KH<9vA!n_Qy$q*kXE$eCKPxpfcqnVo)-1Lr_yY zHpKV%m7O3@tnO8l=`{~jU(Zd}K()#n)9KIZm%@Lxba5M?dMiNsvWV!6!6hK1;KGeN z51xGa2^1t)h%g!vqD1Q;L84@7GGx-pk*7eRVx<-_T4Jefw%cK+U3ROoN4357+3%=h zjyvI`8iB7xt2XT}x$KIouDR}xyNIxcFf^1RxQb$?#;X&GIQWw8kesq}3Ct%YVU#-m zBJQ4eG9f_{o$PhaE%|p9+)+$5r#*|=GTU|m8aOs&a`$}vQgI+Dq`rksLE2<;7V<9QR8Plv+ADW{!rwpHSi5*#{rxwt#x zAwiPtuA6g0Eh1%PODv7%J6g1A8|?$HjO7uCyDuIRB*`{Mvlgw|v_CTvDdh=JNT$9r zp}WS&!sU=x*j3kDZyC~vUtwP*9@e(AJZm4XTbMq@CFy|thS&LR} z+T-$2S6p??^+Af?)0}!P?~%e^(L`LG-{}y9U7e1GnTE7|fS>8V;j=p)LN|*g>n!@R$$tKy!! zt*b^2N6z(~_8R@Mj(X9D5PzH@-2Rhj6WW2sX?DG>-rj|c&@QxycP6*nw{ri$@4_#A z)uXn!%(s`(HkR~U*W9 z*H*_=uG`}`qA;K#Yu>U4ZI|cTGb*2V*^!9-_4eL>)=2AQm64O_d;8FSYY7lR{>yr| z?-Mu<_9VR}H#=z4$i*FT3w4st^uF7oAH_JjbN%2J+i6~MYu`!HwU@Q-`jf};xqEO1 z7J&Zfv8Da`4*yyRx(=CN;|+#!-|6|8k2mnh*ywKkgWrZFC~zlXZV9Or`5u}J4-B;+ zJYk~Abr#1`0%;?;+RBi{PL7TWs*@rmoXz~l%_7UV+oqk5ORmd$&+{li32XuxWN|@p zWod3Q+~x47Tx#A-_{j2=$FK7F3t%EpjvxiX6bhH6Q6xgKNF}0_idLqxa$Qu2i*g`L zk7j1(Jaw$OtSE-VVpyKhO0kwoVm)XpEQZ7~iEWi*yDF4Ddl=RB<2v976GxrIamrb& z8mdyYn#eU*r55c>U0R#D>^gJ9hGl|or&AIcM`__fb}_G6UL4l2nA+2^Le!x#exZgXTqMy@9EBQ^;M=15v<5@gMmHD}FOU?Jsu=@9cGdry6} zuw}MR&q{=~4HiD4LEqakhQXPt#&X?on;4?xYoUI%c;qXeO|kgMK?i55ApiQuayXVc z>-1jb5YLm$K=|4Ql721~CK_ZB>hQ*lbtoy>A~{^or&lf}5uFd0?>Nw&XsS?_=fV1A zJ>$!m+Bv}!7<>x$J6E`vrwdOnon zFl8sON$;U%U|!>``>N&ZJgvcb&%F1aTohe2#I3k9QBKV?Oq=P>^h`BOwQElL|6gjL zs(3xMDrYph;JFW^&D1NVYU(QA-tf`S`UY+v=)ZdZyP?ne2zo(Kgp09@j*Ipc!b;Ri zzEydZ!2;&>JFZ{?t^o<2qaD8jJP%$6P6V%~ zg}oBI0eldg3qAxsK14Ho0xUa%Pl7LkH-azW;J*rd8GHl03w#rN3)}#{4ZaUP0Db^| z2yOyD0zU^I1;3yj-vWLK{s=w|{zRYuR`6%=5AYT6Pw+2r8~8W)e=Bi{^X~xtyzfI< ze-ZA4asZSA!Cerapi8+2;yageFU0pQ=02D#eAPt|+z*o_uDTS02Vt_zwUkj%3@wONp|Wd6nw`;3#LRI0MVr~`{k z%alQ^B<)&6(?`jx13_*Ll>eB_`yq3Hkr!GavKl z&Dw#enZv6GDRZFIAf8r$wnaV7B^pXe`5exKBOwvL?2ceu0d z&? z+w}380SZi&Vt390B)Z57SY zB|F(b;8fH*@YJo5gf+B%d^J3R0Ri;POsJ0CQdBAU)X?sqm(5&aPvhwUPkP6z!w-VOqWWJq^qtS5ybt^Y=D80R{s7cFAl8C) zSB*A#;p6p|6C5<6q_+5-qs5#5XcGyWlCBf=(IWVEzB(u&N|Hse-fp(p2ne2nH5((s zT375Z<`M@@M0#(v#B8BRGOHLfB?2CYvcE@vDcK;Xdkhp~9h^989rV($n0cc>gLAw& z)G*|lS4tIz1MphEY6SH{4n{>Tqk&)(ucFhka9-|<$gPn|fT+0HQ3um|U5LEV5tO9@ zh8T3fYqys_^#xTyof(+*)Y%f?+)3Fw*Q%uVNFhNf1JxEXtv$D{QGuFDN-ItdwHO>I zQwR|>RAw|nDqTq5M@l-*VFxNGd9~FLTy!7D8Nd0qSk3&g${$vPB^EMstXx=>!6OW5 z8-;v>Bb*}0cO8wWOyF+ff~LqW8q@TS36NO3Ko?j-SYKr;ER;ZK0?0a5WJju8ooq0z418mr03uoRJpegx8|v1x4z zQ8m&5#Jh4AjAb}#Wa5*IWu3rjqpFOJM33@7?;we>zXe~=9UHJ}X+jG+0)NrHn2CnH z)qTM7bb|~1$RrTTmIj6?li?Gan?vD7tvpHCT-9@~$O3Dq5^$k66Mvh#oRv_* zdd1V=40!-URuk@3J_`e`=2&Ddt}WyNp6b;TCzmY*YB{+Rp7)OhLT0hD#jk053Ys|8UIha|T? zrjDB}J)i?p<&}(1mh#&?+7+!%oU_c)-^{R>-%*xN(Ij7=7>Wh3>+INqovtEeMG|49 zf{QI~Jm8M0QkbavYn4_z|2zvpIk;W^8*%Y~C&y~7b5*?zO7Sf4_p9`+-+ zgF9`^1zq!GPG@8H8R6^LnFSaYa(5_F-~rqrKE|9x z#L`xZ9#D^f7Njyjb%KL!ynRcfgsI7U1kpLSrwmGe3^hmhPPvx)QStb0Ppol zk9b$~i$^EbPCA9#-5JB;kA{iSRB1>#%5m4kM7Q~fer6jF&w=8J!J5{tYZOgFB{V@@ z1nN3-srr2?J0!5fsWG8m%snQ-vw=uIxAWQ34+Pu?b&yG7pAN=fS^hehd-F=kTTtDX?>8UFzX7fh6M1 zjcYN>z}%fq+fnIcRJ`2eF1W}4YQ-c;C)ACckh0aGxVg0gH$l}y%S6X^tgJh+)_uE1 z8#rrvhzX*!+gX&P35xZzv@C>8!)n(iqT$}bx?Z~-Me5{qW6037S ze-I1;8OJkEv}-B&rY$Lx(CN%1p_^x-)w;8yRbhQyv31dus5?!s6p@&YD7;I@a@^A< zcQGWkGJxBY$--xv;3+iycjgiMK5tUy)B4p~9H$e;_T3%N6K|Bj34-hPc3r)N<>A6f zxp{WJT#Q4)$*@$H8o&4mTz$bXZ_%^5Q}JnnHH7^{KPWRd8_i^n{?9$^%7-0US-bW7 zpnmCHpfL&0S?-u2lF64JQ=V7C`dp2N3KV;~q$~a+h^L%{N-|Xxb3&SiGwC0kgnqe) z9CUA-eAuWl$wQ9ANpkQ^GT-ckh{dz}z)mpQg(fM63U-MD9l5*_li_MYT0^PYn_j9t zHp-IL9-g|M1HSFNF^Oigz)-kx{Jy)fbz0MVt?ip>IIrf%jUOo|7tt<$}|+zNjnk+9he zo5v4h6|vgCwz~QoAv;SB{|XzkstxdP+Q=LAG|2e8&ffUFC#$T#VB!ea)O zMrMjQZ5LQp>pnoBQ3y+Fk#BhZpfi<>OQyP~>9YNbam zl>=rq#sftg+!uQ|og{`eM-!23I)9rW5Zt)iJ0>QPQ3LzcG(8FJTuJDr8H$S?V{hgw z5o?U2>LbTEk?&62k*@c0tKX17fe@J`?GfBd1H2+!V6|+bx4=hP=J^*fxipM2gZMjF? zjFg(mUop+EBiVKdtCl9Cl*g>JR{Sbym@7T}p8mPyw`qPY`oYR|oUEj%D&uSef`2<0 zNbTT$)Qm4S@hz8qYUY3Qedv@Bn(pBq;OAkF@c-+w;Hj6dI?1ViX1jOIf;aMnBz-Dmj9ZbQM#Q5iKv-1p&5-4a@maiex(> zkBuUWxGi+PL=^qBB7+slv}Y}!RBqkO9ZN~rQ=~*cK6)5UW}oH0J~*XhuTgg&#by73 z%S9Hc-l%RrdMO?LLag;>hR<#J^*gvPxYqqv!WRNZmo(wQ}^AS)5fcr1- zTXS&Maq{r}^$AZvk?hmgH8n(h1SW@u5unv z`KCkOMq)$SnR-p8!bT&}Aze&E(7&e{-VxIe=EStX|I}`9`=cC+p7y_uXfI4`8lFK4 zUsyqBEqq^i9Ta((lg$4QtB11j#q0Wp@Oy`0xarwXHK~G$h=UuEU z?s??U)$Nb(u6*rbxW{0F!eX(=XOt*%S};h3y<@OLpP`Rt%aVb-|1HB@k9QX{Zk{*) z%=J!R#@SmddT#5|>X*O6*Dd;gTy&C&ar5RV zD)MFjmuvriVc}g^=F(-gjz+b*?!B}iI*OW@R8Zc&$Cqv|z?y)bqYqQl^~pF@EdyhS3xxQf09^E^ z$SBcsx1h+L0F;k+Ai9S=j8b0nh={4|Tfh1-{n@w0*pyE|Lq7dPuVQy5k#UJ7rp>XB zT*lGX;>K>}@q_PhO~eFzt+zVH>?=df65UU>D8?;q##Pq|SETE>tJJqB_}Y;M5Y>P2 zEg#)-X(Z_u54_IB8M?weo$UPGtr?y}Ssp3m(uCuhHWms<;T=22HE#>ti% zZmuF$_x5=eLz3ojkCd&|&{pi?KJ;~QG@ZjswC0^NG#kKL&G-o%9`X(-^}CA}i=pGD z**^Zbkv=MbC86Q#+bs9H|HBXwo`I2Wac4p1t;;ud?y~%<;;2efWE!K+WN2~Mzc`U% zy>)obQk{^mvZ>e~OFLDPjrSpPKlzl&bX zFYzB-+?!CMq!7X}X~}rt12fCaw%IrZw8O7~$}IKoQ&2ijZ)^Md;ukDuhcD_X4PV;s zcU`Kj?`TjGR9-J@fODSJrOf0Zyc*P%^IFtzmYB4dP&6?*9(bida~|tX_H%>#fk$xT zbkX(Ayn_(R4B;G^8biWS;cgaL2y5@@7`K|xmp7M=N;puN(+L;2N=iPFi10FH*%;aQ zy)iHquVA`JpWcz>`uR)h^1;;kOlDSox}@63qwGhwB%j^9Jxu>`yPAGO)1us;izWW| z4OaRokBtmZyA0zqf4{jTp*-Hu1$Wu33S~~o&iVe&GMYEEZb%P&?wXgh4!$sNcDIIGffgUzg>8vxBRbV8GtUQC~KkTO~A%XEP-|i}(o>UXM z&@_GGj9x4a6W!zOz_%?bekxjl`?H#o^!ZqT$#d{Bsi+WJ>raluf!*IDE<;MaBa^ss zv%KsPVYv8rl>_k%M15U?VrfjmXhcD_lCORF_!~B3M_K`c!*u| z1U*G&gb=GDlH#I`{ZY@~9^XItQAzB4h~@wUOKTP4l;T|-C?eo zhOw+*Q!wT>2v|p-Et4WQuY=e^!-yjvo>rr)mtM3C1N%l9eSVH^{?`5u*9`%i zj4_tCZ!;fZxEUbqjSUbR4x2t`#Tqxsc;n~b>62whWMXKn&8186f7YqlAGrlC?{Jhw z{@zH)+2mFFbIMVh@cN9}+g+918-Y!F4S_K6{$7{wYeS%b41~8k_Y;K&tSd=4tEC)ix-&$ir12b{o(cwcJ|FwWs24Flg4PJh(Iy+)-QMD81)Q&Gh3 zfV--&pQ^Q5(HjiV4r{o5a*>({bXiIl0r_!)S;=(R*Cy}1dO2{|o6msy!R#!&jkPsh z9*byK*qKMzXP&eVk!IbV)q3o+*kWN`?p{W4!9`v6-u7OYHk*!o{cEe6X8h_tZS8IB zR!V&c1b&#_K0Ww`(KFN7`j~Kuq1m+lrOIW^_S+l<`X>f?JlBLMKW*GS;6;JPwzt-| z#(0UKgO;_=Yn|?Z#c3}tlk2vUSN{!L3gdboS;p6|TAw+8{LC!4@x_z-K>g(PI~Yt) z&|DmLYe=0OH%8E%%4_JTQSZ#7@ za$a9t>_gJ9;p~ygPu21XEj_WVoE$vOTBh*mMEL1tzTg<%6Bsy2?ij*-u)2eaqSY(DlR3-`~~IH`bry zBy`jVG8a%nn4Boa$HXV6k*QvV!()L}X_>DiDd`2szJUT%de%ykm4hgm==Ug0OePb} zxTx@;={KlPZ_t6$hk=u?QC~K8o{Ds&|4{=)@l(e+^IQ^La$WA9-}lV*O!UkXppFY5 zDV#!^LSvg}oBT%oqg@RSWUuaK&f(oNvG=nlfX@rD)QDu)r)DIl9*tKjZ-QX?L0xr@ zU}Xr!yMcFd>-fsb6a$eS9UhhFYGs49i}ULbb<9%0p?4= zpfP?VXGcd1&uU@~O_-;lvXr~BP|T)4jJpQRTc0at$z40q<7hGxV?1KEZ2mGEjt%r1 zjlObBb?f7XJh8-K;v(U}wc*Xas?jK2BNe44PXCq|YC?WG@sWpsg49+=cyRPjvOn zib-h(u*VuuC?n`2w*wlz{WV6VuLg=s-V9c@uz13PEX7a>T&J_&fJ8;w~s5Yapw2L^#Pt;82sUuSz&yonR7KK)=| zzz?!WgYdPq4X1kBrPgMi7WDxlANHBfLZijJKz25i#a61f>@|18M6)E#)Zt5`EPVOV zbpDg?JO^W=Jco?adknxAl0Ch=b%sxm{gMk?(I=fqRF`pHhyI;RZDg!@R zv?kL>pBI%JG=A$fbawT1a7H@lo$zL!cMX3HCdQFRfeQyrdkLK!iMhq(1cX+hKYhWV67=FuY~CoXNm}GM)SaYZjQg1^iotniCRhX@un3;1KF)vkwFb z{l4)1tX1FG6#2c>1}S#-nX**A1Pux~M?Y1m@qL}K)vP%e!u}34HN$6iFb_O+X5->0 zVwjoXGc!#)RWH)?e_nSTLk^Ci53fnF zoia6X-5Bihj$1P9h6r*F(5;3qqLw2w>ndAVhM{D(Zq26u~-53fg*}nTfnQ`dcs|!(ArE|6!w`w2?wK z`)B@WZdzrIYSIphV4fPms3%TDrnJ1pM1Y&`oXF+x;3tl8Oc^DMiGKc@N|RiqnGJy{ zD{HxrkMNo0r#~i;8zXA{p-&(gT-1Ak-rM3?w9Dz166Hdi#}1-srB zn#2mn0Hnm&fxA+gVk)QRtAD%%FAzjgp(&p`KDp(M9F<-v-Z9>Z+NVL|nVaX$SI3-8 z00ekPzcbY$^NzWILw~V-k?a?`6wg#?IzF5xLtV~aDmg~&oq3oW9QsC0 z-RK>C!TI@LyTu6eu>8Lp9UnQtMSL<`TM}Nnv~=U~jXl|sXZ<*N(XF1-#ogaB`}mII zqkn*=h@SQHnvIiJ{(OjV-l~`b$i!vqx_P7#P^8W&3 zQ2$*sxCOYCf=jv(!YWq$Hs7(LScytk&aPcq2*In`&~L^vPPeKEVasT94Cne+`G8%L zF2qWlwy_G9l{)?AstpaB_>n>vYk!2~&x4(veKUHV(zuF6O&S*!$CjnWd4r6_8S23{ zARY`hGKf{U=nQu%P9-EVHk2CUxoR(*ufBvnR_|S2Kd(3x{aJ26KdLnM-;Bp_Cof7A zj16U)@m$l(_4YH~#+`buu|cr$+#Xu4@19~nkIXwUa5P4v4OHG_7UeClDDTvi>kCH= zS5V4?MOh6N6@HlW!1;LQ2^k~sZk#rk<32@>NBW}>tS z{CXuZ0S;}1bQRklleoC*tX4k5Fzf`dg}JLZs9=g4LR#UTfA z^A9U8*Q*rstCf2q7Dp-&6#E{O>aP%s3+l`W%GU0H-!nD26iEUnCb_oLmOc~v*Rnb- z`Am-#Y6#9Xvyy6kB@4{IYCg0ZTcdRS=USCs$^X}mTOC2Uyeg|yNxQh^eyNK0gB5Lp z`p^Ju{3!Z8y=`^kf)@uxJ2|u+#t>*jwQ4Q(>lyW&M&|2Q#|XLC7)9FXU|t`C@?5TO zBgEB|^hx~{V|4HJ-8^0@aka&@{XP4Bvuhbew4s)zHI#8Bc`^#L4_Ndjklz3WFI0aI zfQGDW-^4Z~E0H#htY0&gPA`;#0W@W^?Q{JAl)Kt5^B_)FN$=F3(thKmSL_-kt!s(v%8bOlQ_M20KcDr-Q@PV|!B#hjqRe=5;2H|u{ zj(6{uASy z4-N|S5!Kpilh(pjL9RS6X!l;j|Chfy|5lX+f)F2&p$?vuWL9g{GvQ<23 z(f43FdVJ#x>=z$qhwzX;y#$X&L&B!F)?3vBj$dmmp)3puG}-$Ac}3u||=$ z0@C@h<}eR&4~7<645fsc+}k!zn;etn&3YED2I73X{kEsX$WMzo^6?oWJyMlNNUII> zxRB*p&fFlhdKqmiAl4vMgc&e_!rzb&yIrhCBNFU@g1MTHdI)Xxpv-ITIiTZh@L1yw zy4~ENzn$u_y(2QV;5JDTdA6)BvlvlGD@3Sf(GL`F`=H=xEKN|5?Xfq-%GACqj^=_m zBeFZ^VAtSvK0;86E(3g-fP5xohw@_en!7tbK*5c-A*n6^0(2Cj;KEsI(4YZ>$b2^v zY~KC-0`9{39S+GA%^&{<1r#;e>+6g3-Tm-Hz&nB2A0b@9cCGCY&ToKk`H092V;hD3 z*0p7k91%q_E~>U5@IH}kK*Fe>j=$hF%5^Gc>5@Gq9am{o;uA3`ZHpS*fij3EO%0Y0 z&@QX^P&n5nG@^Jyx}n6#@3>^+Vx#AZI!rNJ$=N zlRhr61L`H~CUpqedZ_7#g$CLa{{DFXEDSrWF&yP*q+YwyNg+ z1yDCJ3X!PeZ(c?1sr)NcClM!KI8-1Onv{gNtZR#~9smf-l(6+UWnOfU2pc|twd8{9 zM(us3v(Ap0GQ6U3GHz&2A4}~)Qauv6jK-+OL8bF#W zz8XFdxq8@?4QjlrAA}kjyO$2Tb zkI0Hp-MxfnQ_h!%X>C|v_)r$6Go78zO((ZdgpCb>UUkm>3=sL5ZOKWxsOC+r23bQ@ zC-ME3>IP^(m#1hgxnjj_(84#&CXv>4u;_=D01C4U(sYur>CEN}datu+u9b9{SW`<$ zi$o`+D3_!{A6nx>)VS;W?1u4|<~f^L;&n4{K6w+z?Y{9}^Zx+9Z2Y3h6Pk1oRa_uz zEV#!_d@*1a8Ce-5Vo4SPPMBkUh}ECP8k@_tkPRfu2s9&HRm`n)_e3IX_Q6sR)71KY zOKiSdDM10Is$~->OIi#}^hLQCt6*416?O4Ua51grULKLQG zXF&siWBYf{sc&N;%di|~EtXc0voeN6Ee)wRFEHXfd0EIbq=@8}l9Z@FwmW2bZeiKv z->W=dspiMzCxK4yLPZ02l+6V-_Yz|>II2>`4MNT3bW;b8#Lv!8Wzi5XKoX#Nh1T{# zcFx?Ez}n10XUHdQe;>TvneiJcC0pifi2Ud*I>#nhLY|j3zR==&BUy3If*tI3NOtAq zixvnRYl{rKZ2hcg+OAF(I=HjjTwi3i(V@E-C#R8nf|)+kV=vQD8r zu0gES8Y^F(3A5k47PDHfT6f@=dN<^rp_iSxP7CY0qnr&+=VahbNxHdDRiG?8vh z%($+CSdu=(rfpPWkG;=Ry1vh8%3Ds(C~Z=xG}{{Yc%|(5yv5VOGlI$y(IO47C)sYicwCXFRHXZ=d2I;YThN(V<>a1p+Amosxr3E(b z`wAll;AL?@NdX>`kdWIgm!OQE6$#!)5JJQ}I^`g=+|8v27W$%2m7u0brnY10|J&_J zru-~MKb!An7C=I$_rP>iLZ0ySY4gzS%qvNalgZ&Mr*dS3Ieoha6Fkpx){O8GwcDp6 zQExYg67sRD(j_j`-ImzPqrqj#aie*)GknfHlI%RJ%kwvI>T|qEviDf!Vh$!Ec;@*2 zf{s;0M1m^XIgOhzHl)OfZE5t=(Va(K(k9DFWB_k?B`DENSLf0Dt1a?2wH-UhY zk+GO^Meh~?@oi+7vPdgj!PO4wWzUFgY&FDjHBxo=L6H@-V;P~c|3iNb$@0(@hMCq* z>!$VEDr)s>jcv^i<>L3j-$09{K&fMSGzPXa1^6BI57o~%S_4uP!Y%E@HDHX z#bmXzV_(shCK&ObBS%JbY|T5>xZKabg-hC<`p|ZFR0GF6yODPaz*itK@RV^IVfDdo z7?!X+0{5Ky80SY9l&F{CPpqmMtV{MqowfPk90*q^ZV!>GsLW8R;F?KXk` zHCrMxg1FK_R#^9_9PjFxYio+l`> zz5EkV!XZ=wr+pAYRPjfncVoyb5I{ACX4QdhMvBu^KD5EGVCZuXS8f!Wuq1UG;?kt{ zC@%^|;=B;EzkFPcFqM;+KIs>4Q%=H;GI(|4=N$=Be!`YEcURlRts6v(D=cC`Qa~LE z0#XuUWwe}jq*&ff0o69fSBBIgbe(w@OVYOkppVgakWft$qQm}L4^r<;HzxI(R3-~A~# zf?XXh8Kmdg8ASY9%>a~|d*W~O zEet$63AD<~58?BcF5tob?ZdidJw)$`&+B4%5-0q*6{U(oS*!%zu~m5_!G|oALJ&aY zMp34&x|1T6jw205wGnCDRw&!ShOgE;+sqk`yV;ddjeO+PeF7#>t5R{43as@2P0qQx z6kVL(3|&?RVv!RcyCQ%yn-&bQyz(Nt>rgZfuN!cULdux|3Ig(iTf?`_*UB69>l4mn z6GkNS6jk6srh~r;p6;lzqFfqhtI{-QEq$Dh%Z*DovzD~JAYuc7O7<&9H%A75`cYHw z`49MEc@9|(YwXFZKq|g9`h2XO4bVIUTfN2@HoK?7IDpKK?ynP78db2B$YRQ8(k`6% zVl17N=#rgLU12Zy$jnr_vekp!uHHbD%FDxnWD%l0Orfp})tp6MQcn<#>bN09KZ+M_ zoH-D3;{_C<*+rQuZ%*#FL2{O++puJ-G)M0Oy6SA@nn<1|CMJk2{P(QXRv0U`kXoAEh1PTWksK>yHx6kk(?1xUGi?ULv4)#!ts}Q9#2#=v*`qLqGV@F?ugHfxqS>iRB8T?nh0% zvf37NTKAeu(AuPDvs&A9LZ|P*ivTHh52gvN-g-iEG|^Jdu->feHMkl=;w+)l?2P-f z)J(*S2TsxnF$C$c6FrBg(_&$Rv`K>AOGV-35to8;3Yfv<^MRTAqmM!s%c)M1J_qP*-aljlfI zIY9wGn&l|DRwj5iw zx?UP9UbV%LV`dv|)m<$=*^oKn%9+pb!!_24*_o_4jJ=rtQ!QC5K0^v-XGv~03}L;J zZ8Li^2i#gfyKwc|>-i)94(k~>{m1?!TL=$GXGug(_D3antUk*7yKQkF|g+8*fEY~_>!nbD#m-f^!pSf@d! zQo|B)=>@{7tS7lu#GeGX>XG=y-^~o?1ax8k>I7ac<1;u^SzcOo|I3$;SeM(4I&5S+5f>M=l z>z2U~cBUp?_dKYityY{5Se8Gg=YI<76vaa)xpjd#bxobw--MXnwp{J937M!gzKQhN zg~m#Q^0ZYG*DL$hpDTi z=%Kql4EkrK9(r+bKjntVfi%R>Z91?bSS5fDzX|%&;E0b%@!`xMy{g`{H?yH1M8lUE zA^9jjkjiyipgki0KtuF`)K8z(-@^byXFBviEm?wCou$%2^loqd1G>1bf7XhS;5W^4 z_f5Qf|1v1nEc@mIB8$WGf!5o$0kLa3Tr}6&Y2x|lcZT_P0Z#dbK{eXaXT5S{YS5Hc z8w+PJc4T!s9)*m8rOW2f6+g3U$p`ceM@@lhP|Z%3~D#LMIt601MP_c0002AM`*|Z literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 b/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d92b712507a5d24f7910ccd4c2394570d4f405b5 GIT binary patch literal 4780 zcmV;d5>xGWPew8T0RR9101~VK5dZ)H04pE>01`_80ssI200000000000000000000 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 ilgW1vW5`h!}HUcCAgd7Wk5C8-q1%eOcS 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 WCa?E`${Nr6J&WjV<7!di4FCYRVoq}a literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-greek-ext.woff2 b/assets/src/assets/fonts/roboto/normal-greek-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ed0b13ca09d1372918d42c2a7e3f944b762d80dc GIT binary patch literal 1432 zcmV;J1!wwqPew8T0RR9100o!;5&!@I010pa00le%0ssI200000000000000000000 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�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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-latin-ext.woff2 b/assets/src/assets/fonts/roboto/normal-latin-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0c7aec28f513926a7e749abc12863001e2f1b65c GIT binary patch literal 12008 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 GC;$N0_xDr) literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-latin.woff2 b/assets/src/assets/fonts/roboto/normal-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..120796bb71997275eafef44818771a32bd857e12 GIT binary patch literal 14584 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 literal 0 HcmV?d00001 diff --git a/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 b/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7936b665b54003fab3aafced6d6ae16c751d3736 GIT binary patch literal 4896 zcmV+*6W{E2Pew8T0RR91023ep5&!@I04{U@0206e0ssI200000000000000000000 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 Stqovy*8;1vBH2AlK^6c6HeG@M literal 0 HcmV?d00001 diff --git a/assets/src/assets/logo.svg b/assets/src/assets/logo.svg new file mode 100644 index 00000000..62e6798a --- /dev/null +++ b/assets/src/assets/logo.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/src/components/Header.vue b/assets/src/components/Header.vue new file mode 100644 index 00000000..46a10b84 --- /dev/null +++ b/assets/src/components/Header.vue @@ -0,0 +1,220 @@ + + + diff --git a/assets/src/components/Languages.vue b/assets/src/components/Languages.vue new file mode 100644 index 00000000..e40a634d --- /dev/null +++ b/assets/src/components/Languages.vue @@ -0,0 +1,23 @@ + + + diff --git a/assets/src/components/Search.vue b/assets/src/components/Search.vue new file mode 100644 index 00000000..b5b434f3 --- /dev/null +++ b/assets/src/components/Search.vue @@ -0,0 +1,265 @@ + + + diff --git a/assets/src/components/Sidebar.vue b/assets/src/components/Sidebar.vue new file mode 100644 index 00000000..6c18d1c3 --- /dev/null +++ b/assets/src/components/Sidebar.vue @@ -0,0 +1,90 @@ + + + diff --git a/assets/src/components/buttons/Copy.vue b/assets/src/components/buttons/Copy.vue new file mode 100644 index 00000000..164cf347 --- /dev/null +++ b/assets/src/components/buttons/Copy.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Delete.vue b/assets/src/components/buttons/Delete.vue new file mode 100644 index 00000000..bb3c0fdf --- /dev/null +++ b/assets/src/components/buttons/Delete.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Download.vue b/assets/src/components/buttons/Download.vue new file mode 100644 index 00000000..bcef980b --- /dev/null +++ b/assets/src/components/buttons/Download.vue @@ -0,0 +1,39 @@ + + + diff --git a/assets/src/components/buttons/Info.vue b/assets/src/components/buttons/Info.vue new file mode 100644 index 00000000..164e59c9 --- /dev/null +++ b/assets/src/components/buttons/Info.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Move.vue b/assets/src/components/buttons/Move.vue new file mode 100644 index 00000000..5d9250f4 --- /dev/null +++ b/assets/src/components/buttons/Move.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Rename.vue b/assets/src/components/buttons/Rename.vue new file mode 100644 index 00000000..a2fd2cbf --- /dev/null +++ b/assets/src/components/buttons/Rename.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/Schedule.vue b/assets/src/components/buttons/Schedule.vue new file mode 100644 index 00000000..0484d6bd --- /dev/null +++ b/assets/src/components/buttons/Schedule.vue @@ -0,0 +1,21 @@ + + + diff --git a/assets/src/components/buttons/Share.vue b/assets/src/components/buttons/Share.vue new file mode 100644 index 00000000..40c769f5 --- /dev/null +++ b/assets/src/components/buttons/Share.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/buttons/SwitchView.vue b/assets/src/components/buttons/SwitchView.vue new file mode 100644 index 00000000..bc954caa --- /dev/null +++ b/assets/src/components/buttons/SwitchView.vue @@ -0,0 +1,36 @@ + + + diff --git a/assets/src/components/buttons/Upload.vue b/assets/src/components/buttons/Upload.vue new file mode 100644 index 00000000..f5d738ad --- /dev/null +++ b/assets/src/components/buttons/Upload.vue @@ -0,0 +1,17 @@ + + + diff --git a/assets/src/components/files/Editor.vue b/assets/src/components/files/Editor.vue new file mode 100644 index 00000000..f0367f3a --- /dev/null +++ b/assets/src/components/files/Editor.vue @@ -0,0 +1,143 @@ + + + diff --git a/assets/src/components/files/Listing.vue b/assets/src/components/files/Listing.vue new file mode 100644 index 00000000..93fd3179 --- /dev/null +++ b/assets/src/components/files/Listing.vue @@ -0,0 +1,381 @@ + + + diff --git a/assets/src/components/files/ListingItem.vue b/assets/src/components/files/ListingItem.vue new file mode 100644 index 00000000..3217ee20 --- /dev/null +++ b/assets/src/components/files/ListingItem.vue @@ -0,0 +1,158 @@ + + + diff --git a/assets/src/components/files/Preview.vue b/assets/src/components/files/Preview.vue new file mode 100644 index 00000000..78aecc9a --- /dev/null +++ b/assets/src/components/files/Preview.vue @@ -0,0 +1,139 @@ + + + diff --git a/assets/src/components/prompts/Copy.vue b/assets/src/components/prompts/Copy.vue new file mode 100644 index 00000000..b1523d1c --- /dev/null +++ b/assets/src/components/prompts/Copy.vue @@ -0,0 +1,69 @@ + + + diff --git a/assets/src/components/prompts/Delete.vue b/assets/src/components/prompts/Delete.vue new file mode 100644 index 00000000..10d1fe80 --- /dev/null +++ b/assets/src/components/prompts/Delete.vue @@ -0,0 +1,80 @@ + + + diff --git a/assets/src/components/prompts/Download.vue b/assets/src/components/prompts/Download.vue new file mode 100644 index 00000000..6eb743b1 --- /dev/null +++ b/assets/src/components/prompts/Download.vue @@ -0,0 +1,47 @@ + + + diff --git a/assets/src/components/prompts/FileList.vue b/assets/src/components/prompts/FileList.vue new file mode 100644 index 00000000..15e9c538 --- /dev/null +++ b/assets/src/components/prompts/FileList.vue @@ -0,0 +1,140 @@ + + + diff --git a/assets/src/components/prompts/Help.vue b/assets/src/components/prompts/Help.vue new file mode 100644 index 00000000..95f983b8 --- /dev/null +++ b/assets/src/components/prompts/Help.vue @@ -0,0 +1,34 @@ + + + + diff --git a/assets/src/components/prompts/Info.vue b/assets/src/components/prompts/Info.vue new file mode 100644 index 00000000..f26450a6 --- /dev/null +++ b/assets/src/components/prompts/Info.vue @@ -0,0 +1,122 @@ + + + diff --git a/assets/src/components/prompts/Move.vue b/assets/src/components/prompts/Move.vue new file mode 100644 index 00000000..8df25dd8 --- /dev/null +++ b/assets/src/components/prompts/Move.vue @@ -0,0 +1,70 @@ + + + diff --git a/assets/src/components/prompts/NewArchetype.vue b/assets/src/components/prompts/NewArchetype.vue new file mode 100644 index 00000000..6ec99fb4 --- /dev/null +++ b/assets/src/components/prompts/NewArchetype.vue @@ -0,0 +1,76 @@ + + + + diff --git a/assets/src/components/prompts/NewDir.vue b/assets/src/components/prompts/NewDir.vue new file mode 100644 index 00000000..7730ad22 --- /dev/null +++ b/assets/src/components/prompts/NewDir.vue @@ -0,0 +1,60 @@ + + + + diff --git a/assets/src/components/prompts/NewFile.vue b/assets/src/components/prompts/NewFile.vue new file mode 100644 index 00000000..c7729b9c --- /dev/null +++ b/assets/src/components/prompts/NewFile.vue @@ -0,0 +1,61 @@ + + + + diff --git a/assets/src/components/prompts/Prompts.vue b/assets/src/components/prompts/Prompts.vue new file mode 100644 index 00000000..84bc4e12 --- /dev/null +++ b/assets/src/components/prompts/Prompts.vue @@ -0,0 +1,87 @@ + + + diff --git a/assets/src/components/prompts/Rename.vue b/assets/src/components/prompts/Rename.vue new file mode 100644 index 00000000..3c65b99b --- /dev/null +++ b/assets/src/components/prompts/Rename.vue @@ -0,0 +1,84 @@ + + + diff --git a/assets/src/components/prompts/Replace.vue b/assets/src/components/prompts/Replace.vue new file mode 100644 index 00000000..a310e9f4 --- /dev/null +++ b/assets/src/components/prompts/Replace.vue @@ -0,0 +1,31 @@ + + + diff --git a/assets/src/components/prompts/Schedule.vue b/assets/src/components/prompts/Schedule.vue new file mode 100644 index 00000000..fbb5b772 --- /dev/null +++ b/assets/src/components/prompts/Schedule.vue @@ -0,0 +1,47 @@ + + + + diff --git a/assets/src/components/prompts/Share.vue b/assets/src/components/prompts/Share.vue new file mode 100644 index 00000000..5408af6a --- /dev/null +++ b/assets/src/components/prompts/Share.vue @@ -0,0 +1,162 @@ + + + + diff --git a/assets/src/css/base.css b/assets/src/css/base.css new file mode 100644 index 00000000..c6eeaa79 --- /dev/null +++ b/assets/src/css/base.css @@ -0,0 +1,214 @@ +body { + font-family: 'Roboto', sans-serif; + padding-top: 4em; + background-color: #fafafa; + color: #333333; +} + +* { + box-sizing: border-box; +} + +*, +*:hover, +*:active, +*:focus { + outline: 0 +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; +} + +audio, +video { + width: 100%; +} + +pre { + padding: 1em; + border: 1px solid #e6e6e6; + border-radius: 0.5em; + background-color: #f5f5f5; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + word-wrap: break-word; +} + +input, +button { + outline: 0 !important; +} + +input[type="submit"], +button { + border: 0; + padding: .5em 1em; + margin-left: .5em; + border-radius: .1em; + cursor: pointer; + background: #2196f3; + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.05); + transition: .1s ease all; +} + +input[type="submit"]:hover, +button:hover { + background-color: #1E88E5; +} + +input[type="submit"].block, +button.block { + display: block; + width: 100%; + margin: 0 0 1em; +} + +button.delete { + background: #F44336; +} + +button.delete:hover { + background: #D32F2F; +} + +button.cancel { + background-color: #ECEFF1; + color: #37474F; +} + +button.cancel:hover { + background-color: #e9eaeb; +} + +button.flat, +input[type="submit"].flat { + color: #1E88E5; + background: transparent; + box-shadow: 0 0 0; + border: 0; + margin-left: 0; + text-transform: uppercase; +} + +button.flat:hover, +input[type="submit"].flat:hover { + background: rgba(0,0,0,0.05) +} + +button.flat.delete { + color: #F44336; +} + +button.flat.cancel { + color: #ccc; +} + +button.flat[disabled] { + color: #ccc; + cursor: not-allowed; +} + +.mobile-only { + display: none !important; +} + +.container { + width: 95%; + max-width: 960px; + margin: 1em auto 0; +} + +i.spin { + animation: 1s spin linear infinite; +} + +#app { + transition: .2s ease padding; +} + +#app.multiple { + padding-bottom: 4em; +} + +nav { + width: 16em; + position: fixed; + top: 4em; + left: 0; +} + +nav .action { + width: 100%; + display: block; + border-radius: 0; + font-size: 1.1em; + padding: .5em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +nav>div { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} + +nav .action>* { + vertical-align: middle; +} + +main { + min-height: 1em; + margin: 0 1em 1em auto; + width: calc(100% - 19em); +} + +#breadcrumbs { + height: 3em; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +#breadcrumbs span, +#breadcrumbs { + display: flex; + align-items: center; + color: #6f6f6f; +} + +#breadcrumbs a { + color: inherit; + transition: .1s ease-in; + border-radius: .125em; +} + +#breadcrumbs a:hover { + background-color: rgba(0,0,0, 0.05); +} + +#breadcrumbs span a { + padding: .2em; +} + +#progress { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 3px; + z-index: 9999999999; +} + +#progress div { + height: 100%; + background-color: #40c4ff; + width: 0; + transition: .2s ease width; +} diff --git a/assets/src/css/dashboard.css b/assets/src/css/dashboard.css new file mode 100644 index 00000000..dbb22548 --- /dev/null +++ b/assets/src/css/dashboard.css @@ -0,0 +1,420 @@ +.dashboard { + max-width: 600px; + margin: 1em 0; +} + +a { + color: inherit +} + +select, +textarea, +input[type="text"], +input[type="password"] { + padding: 0.5em 0; + line-height: 1; + display: block; + border: 0; + border-bottom: 1px solid #dddddd; + transition: .2s ease border; + width: 100%; + background: transparent; +} + +textarea { + line-height: 1.15; + padding: .5em; + border: 1px solid #ddd; + font-family: monospace; + min-height: 10em; + resize: none; + border-radius: 2px; +} + +.dashboard #locale, +.dashboard #username, +.dashboard #password, +.dashboard #scope { + max-width: 18em; +} + +.dashboard #locale { + margin-top: .5em; +} + +textarea:focus, +textarea:hover, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="text"]:hover, +input[type="password"]:hover { + border-color: #2979ff; +} + +input.red { + border-color: red; +} + +input.green { + border-color: green; +} + +.dashboard p label { + margin-bottom: .2em; + display: block; + font-size: .8em; + font-weight: 500; + color: rgba(0, 0, 0, 0.57); +} + +li code, +p code { + background: rgba(0, 0, 0, 0.05); + padding: .1em; + border-radius: .2em; +} + +.small { + font-size: .8em; + line-height: 1.5; +} + +.dashboard #nav { + list-style: none; + display: flex; + color: rgb(84, 110, 122); + font-weight: 500; + margin: 0 0 1em; + font-size: .8em; + text-align: center; + justify-content: space-between; + padding: 0; +} + +.dashboard #nav li { + width: 100%; + padding: 0 0 1em; + border-bottom: 2px solid rgba(0, 0, 0, 0.05); +} + +.dashboard #nav li.active { + border-color: #2196f3 +} + +.dashboard #nav i { + font-size: 1em; + vertical-align: middle; +} + +table { + border-collapse: collapse; + width: 100%; +} + +table tr { + border-bottom: 1px solid #ccc; +} + +table tr:last-child { + border: 0; +} + +table th { + font-weight: 500; + color: #757575; + text-align: left; +} + +table th, +table td { + padding: .5em 0; +} + +table td.small { + width: 1em; +} + +table tr>*:first-child { + padding-left: 1em; +} + +table tr>*:last-child { + padding-right: 1em; +} + +.card { + position: relative; + margin: .5rem 0 1rem 0; + background-color: #fff; + border-radius: 2px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); +} + +.card.floating { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 99999; + max-width: 25em; + width: 90%; + max-height: 95%; + z-index: 99999; + animation: .1s show forwards; +} + +.card>*>*:first-child { + margin-top: 0; +} + +.card>*>*:last-child { + margin-bottom: 0; +} + +.card .card-title { + padding: 1.5em 1em 1em; + display: flex; +} + +.card .card-title>*:first-child { + margin-right: auto; +} + +.card>div { + padding: 1em 1em; +} + +.card>div:first-child { + padding-top: 1.5em; +} + +.card>div:last-child { + padding-bottom: 1.5em; +} + +.card .card-title * { + margin: 0; +} + +.card .card-action { + text-align: right; +} + +.card .card-content.full { + padding-bottom: 0; +} + +.card h2 { + font-weight: 500; +} + +.card h3 { + color: rgba(0, 0, 0, 0.53); + font-size: 1em; + font-weight: 500; + margin: 2em 0 1em; +} + +.card-content table { + margin: 0 -1em; + width: calc(100% + 2em); +} + +.card code { + word-wrap: break-word; +} + +.card#download { + max-width: 15em; +} + +.card#share ul { + list-style: none; + padding: 0; + margin: 0; +} + +.card#share ul li { + display: flex; + justify-content: space-between; + align-items: center; +} + +.card#share ul li a { + color: #2196F3; + cursor: pointer; + margin-right: auto; +} + +.card#share ul li .action i { + font-size: 1em; +} + +.card#share ul li input, +.card#share ul li select { + padding: .2em; + margin-right: .5em; + border: 1px solid #dadada; +} + +.card#share .action.copy-clipboard::after { + content: 'Copied!'; + position: absolute; + left: -25%; + width: 150%; + font-size: .6em; + text-align: center; + background: #44a6f5; + color: #fff; + padding: .5em .2em; + border-radius: .4em; + top: -2em; + transition: .1s ease opacity; + opacity: 0; +} + +.card#share .action.copy-clipboard.active::after { + opacity: 1; +} + +.overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 9999; + animation: .1s show forwards; +} + + +/* * * * * * * * * * * * * * * * + * PROMPT - MOVE * + * * * * * * * * * * * * * * * */ + +.file-list { + max-height: 50vh; + overflow: auto; + list-style: none; + margin: 0; + padding: 0; + width: 100%; +} + +.file-list li { + width: 100%; + user-select: none; + border-radius: .2em; + padding: .3em; +} + +.file-list li[aria-selected=true] { + background: #2196f3 !important; + color: #fff !important; + transition: .1s ease all; +} + +.file-list li:hover { + background-color: #e9eaeb; + cursor: pointer; +} + +.file-list li:before { + content: "folder"; + color: #6f6f6f; + vertical-align: middle; + line-height: 1.4; + font-family: 'Material Icons'; + font-size: 1.75em; + margin-right: .25em; +} + +.file-list li[aria-selected=true]:before { + color: white; +} + +.help { + max-width: 24em; +} + +.help ul { + padding: 0; + margin: 1em 0; + list-style: none; +} + +@keyframes show { + 0% { + display: none; + opacity: 0; + } + 1% { + display: block; + opacity: 0; + } + 100% { + display: block; + opacity: 1; + } +} + +.collapsible { + border-top: 1px solid rgba(0,0,0,0.1); +} + +.collapsible:last-of-type { + border-bottom: 1px solid rgba(0,0,0,0.1); +} + +.collapsible > input { + display: none; +} + +.collapsible > label { + padding: 1em 0; + cursor: pointer; + border-right: 0; + border-left: 0; + display: flex; + justify-content: space-between; +} + +.collapsible > label * { + margin: 0; + color: rgba(0,0,0,0.57); +} + +.collapsible > label i { + transition: .2s ease transform; + user-select: none; +} + +.collapsible .collapse { + max-height: 0; + overflow: hidden; + transition: .2s ease all; +} + +.collapsible > input:checked ~ .collapse { + padding-top: 1em; + padding-bottom: 1em; + max-height: 20em; +} + +.collapsible > input:checked ~ label i { + transform: rotate(180deg) +} + +.card .collapsible { + width: calc(100% + 2em); + margin: 0 -1em; +} + +.card .collapsible > label { + padding: 1em; +} + +.card .collapsible .collapse { + padding: 0 1em; +} diff --git a/assets/src/css/editor.css b/assets/src/css/editor.css new file mode 100644 index 00000000..971bf423 --- /dev/null +++ b/assets/src/css/editor.css @@ -0,0 +1,184 @@ +@import "~codemirror/lib/codemirror.css"; +@import "~codemirror/theme/ttcn.css"; +#editor { + max-width: 800px; + margin: 0 auto; +} + +#editor .CodeMirror { + box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px; + margin: 2em 0; + border-radius: .5em; +} + +#editor h2 { + color: rgba(0, 0, 0, 0.3); + font-weight: 500; +} + +.CodeMirror { + height: auto; +} + +.markdown .CodeMirror { + padding: .75em; +} + +.cm-s-markdown .CodeMirror-gutter { + border-right: 1px solid #eff3f5; + padding-right: 5px; + margin-right: 15px; + min-width: 2.5em; + padding-bottom: 30px; +} + +.cm-s-markdown .CodeMirror-cursor { + border-right: 2px solid #667880; +} + +.cm-s-markdown .CodeMirror-lines { + margin: 0; +} + +.cm-s-markdown { + color: #3D494E; +} + +.cm-s-markdown span.cm-header { + color: #3D494E; + font-weight: bold; +} + +.cm-s-markdown span.cm-variable-2 { + color: #3D494E; +} + +.cm-s-markdown span.cm-meta { + color: #516066; +} + +.cm-s-markdown span.cm-hr { + color: #516066; +} + +.cm-s-markdown span.cm-comment { + color: #868f93; +} + +.cm-s-markdown span.cm-qualifier { + color: #868f93; +} + +.cm-s-markdown span.cm-number { + color: #197987; +} + +.cm-s-markdown span.cm-variable { + color: #197987; +} + +.cm-s-markdown span.cm-builtin { + color: #197987; +} + +.cm-s-markdown span.cm-link { + color: #197987; + text-decoration: underline; +} + +.cm-s-markdown span.cm-tag { + color: #197987; +} + +.cm-s-markdown span.cm-string { + color: #48abb9; +} + +.cm-s-markdown span.cm-string-2 { + color: #48abb9; +} + +.cm-s-markdown span.cm-quote { + color: #48abb9; +} + +.cm-s-markdown span.cm-atom { + color: #48abb9; +} + +.cm-s-markdown span.cm-property { + color: #82a367; +} + +.cm-s-markdown span.cm-operator { + color: #82a367; +} + +.cm-s-markdown span.cm-variable-3 { + color: #82a367; +} + +.cm-s-markdown span.cm-attribute { + color: #90bb74; +} + +.cm-s-markdown span.cm-def { + color: #90bb74; +} + +.cm-s-markdown span.cm-keyword { + color: #ec6c45; +} + +.cm-s-markdown span.cm-bracket { + color: #ec6c45; +} + +.cm-s-markdown span.cm-error { + color: #e45346; +} + +.cm-s-markdown span.cm-em { + font-style: italic; +} + +.cm-s-markdown span.cm-strong { + font-weight: bold; +} + +.cm-s-markdown .cm-header-1 { + font-size: 200%; + line-height: 200%; +} + +.cm-s-markdown .cm-header-2 { + font-size: 160%; + line-height: 160%; +} + +.cm-s-markdown .cm-header-3 { + font-size: 125%; + line-height: 125%; +} + +.cm-s-markdown .cm-header-4 { + font-size: 110%; + line-height: 110%; +} + +.cm-s-markdown .cm-comment { + background: rgba(0, 0, 0, .05); + border-radius: 2px; +} + +.cm-s-markdown .cm-link { + color: #7f8c8d; +} + +.cm-s-markdown .cm-url { + color: #aab2b3; +} + +.cm-s-markdown .cm-strikethrough { + text-decoration: line-through; +} diff --git a/assets/src/css/fonts.css b/assets/src/css/fonts.css new file mode 100644 index 00000000..f355f0e8 --- /dev/null +++ b/assets/src/css/fonts.css @@ -0,0 +1,137 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-cyrillic-ext.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-cyrillic.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-greek-ext.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-greek.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-vietnamese.woff2) format('woff2'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-latin-ext.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../assets/fonts/roboto/normal-latin.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-cyrillic-ext.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-cyrillic.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-greek-ext.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-greek.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-vietnamese.woff2) format('woff2'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-latin-ext.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../assets/fonts/roboto/medium-latin.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} + +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: local('Material Icons'), local('MaterialIcons-Regular'), url(../assets/fonts/material/icons.woff2) format('woff2'); +} + +.prompt .file-list ul li:before, +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: 'liga'; +} diff --git a/assets/src/css/header.css b/assets/src/css/header.css new file mode 100644 index 00000000..7d559daf --- /dev/null +++ b/assets/src/css/header.css @@ -0,0 +1,260 @@ +header { + z-index: 1000; + background-color: #fff; + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + position: fixed; + top: 0; + left: 0; + width: 100%; + padding: 0; + display: flex; +} + +header .overlay { + width: 0; + height: 0; +} + +header a, +header a:hover { + color: inherit; +} + +header>div:first-child>.action, +header img { + margin-right: 1em; +} + +header img { + height: 2.5em; +} + +header>div:first-child>.action { + display: none; +} + +header>div { + display: flex; + width: 100%; + padding: 0.5em 0.5em 0.5em 1em; + align-items: center; +} + +header .action span { + display: none; +} + +header>div div { + vertical-align: middle; + position: relative; +} + +header>div:last-child div { + display: flex; +} + +header>div:first-child { + height: 4em; +} + +header>div:last-child { + justify-content: flex-end; +} + +header .search-button { + display: none; +} + +#more { + display: none; +} + +#search { + position: relative; + height: 100%; + width: 100%; + max-width: 25em; +} + +#search.active { + position: fixed; + top: 0; + right: 0; + width: 100%; + max-width: 100%; + height: 100%; + z-index: 9999; +} + +#search #input { + background-color: #f5f5f5; + display: flex; + padding: 0.75em; + border-radius: 0.3em; + transition: .1s ease all; + align-items: center; + z-index: 2; +} + +#search.active #input { + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + background-color: #fff; + height: 4em; +} + +#search.active>div { + border-radius: 0 !important; +} + +#search.active i, +#search.active input { + color: #212121; +} + +#search #input>.action, +#search #input>i { + margin-right: 0.3em; + user-select: none; +} + +#search input { + width: 100%; + border: 0; + background-color: transparent; + line-height: 0; + padding: 0; +} + +#search #result { + visibility: visible; + max-height: none; + background-color: #f8f8f8; + text-align: left; + padding: 0; + color: rgba(0, 0, 0, 0.6); + height: 0; + transition: .1s ease height, .1s ease padding; + overflow-x: hidden; + overflow-y: auto; + z-index: 1; +} + +#search #result>div>*:first-child { + margin-top: 0; +} + +#search.active #result { + padding: .5em; + height: calc(100% - 4em); +} + +#search ul { + padding: 0; + margin: 0; + list-style: none; +} + +#search li { + margin-bottom: .5em; +} + +#search #result>div { + max-width: 45em; + margin: 0 auto; +} + +#search #result #renew { + width: 100%; + text-align: center; + display: none; + margin: 0; + max-width: none; +} + +#search.ongoing #result #renew { + display: block; +} + +#search.active #result i { + color: #ccc; +} + +#search.active #result>p>i { + text-align: center; + margin: 0 auto; + display: table; +} + +#search.active #result ul li a { + display: flex; + align-items: center; + padding: .3em 0; +} + +#search.active #result ul li a i { + margin-right: .3em; +} + +#search::-webkit-input-placeholder { + color: rgba(255, 255, 255, .5); +} + +#search:-moz-placeholder { + opacity: 1; + color: rgba(255, 255, 255, .5); +} + +#search::-moz-placeholder { + opacity: 1; + color: rgba(255, 255, 255, .5); +} + +#search:-ms-input-placeholder { + color: rgba(255, 255, 255, .5); +} + +#search .boxes { + border: 1px solid rgba(0, 0, 0, 0.075); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + background: #fff; + margin: 1em 0; +} + +#search .boxes h3 { + margin: 0; + font-weight: 500; + font-size: 1em; + color: #212121; + padding: .5em; +} + +#search .boxes>div { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-right: -1em; + margin-bottom: -1em; +} + +#search .boxes>div>div { + background: #2196F3; + color: #fff; + text-align: center; + width: 10em; + padding: 1em; + cursor: pointer; + margin-bottom: 1em; + margin-right: 1em; + flex-grow: 1; +} + +#search .boxes p { + margin: 1em 0 0; +} + +#search .boxes i { + color: #fff !important; + font-size: 3.5em; +} diff --git a/assets/src/css/listing.css b/assets/src/css/listing.css new file mode 100644 index 00000000..02bd8d9c --- /dev/null +++ b/assets/src/css/listing.css @@ -0,0 +1,237 @@ +#listing h2 { + margin: 0 0 0 0.5em; + font-size: .9em; + color: rgba(0, 0, 0, 0.38); + font-weight: 500; +} + +#listing .item div:last-of-type * { + text-overflow: ellipsis; + overflow: hidden; +} + +#listing>div { + display: flex; + padding: 0; + flex-wrap: wrap; + justify-content: flex-start; + position: relative; +} + +#listing .item { + background-color: #fff; + position: relative; + display: flex; + flex-wrap: nowrap; + color: #6f6f6f; + transition: .1s ease background, .1s ease opacity; + align-items: center; + cursor: pointer; +} + +#listing .item div:last-of-type { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +#listing .item p { + margin: 0; +} + +#listing .item .size, +#listing .item .modified { + font-size: 0.9em; +} + +#listing .item .name { + font-weight: bold; +} + +#listing .item i { + font-size: 4em; + margin-right: 0.1em; + vertical-align: bottom; +} + +.message { + text-align: center; + font-size: 2em; + margin: 1em auto; + display: block !important; + width: 95%; + color: rgba(0, 0, 0, 0.3); + font-weight: 500; +} + +.message i { + font-size: 2.5em; + margin-bottom: .2em; + display: block; +} + +#listing.mosaic { + padding-top: 1em; + margin: 0 -0.5em; +} + +#listing.mosaic .item { + width: calc(33% - 1em); + margin: .5em; + padding: 0.5em; + border-radius: 0.2em; + box-shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .12); +} + +#listing.mosaic .item:hover { + box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24) !important; +} + +#listing.mosaic .header { + display: none; +} + +#listing.mosaic .item div:first-of-type { + width: 5em; +} + +#listing.mosaic .item div:last-of-type { + width: calc(100% - 5vw); +} + +#listing.list { + flex-direction: column; + padding-top: 3.25em; + width: 100%; + max-width: 100%; + margin: 0; +} + +#listing.list .item { + width: 100%; + margin: 0; + border: 1px solid rgba(0, 0, 0, 0.1); + padding: 1em; + border-top: 0; +} + +#listing.list h2 { + display: none; +} + +#listing .item[aria-selected=true] { + background: #2196f3 !important; + color: #fff !important; +} + +#listing.list .item div:first-of-type { + width: 3em; +} + +#listing.list .item div:first-of-type i { + font-size: 2em; +} + +#listing.list .item div:last-of-type { + width: calc(100% - 3em); + display: flex; + align-items: center; +} + +#listing.list .item .name { + width: 50%; +} + +#listing.list .item .size { + width: 25%; +} + +#listing .item.header { + display: none !important; + background-color: #ccc; +} + +#listing.list .header i { + font-size: 1.5em; + vertical-align: middle; + margin-left: .2em; +} + +#listing.list .item.header { + display: flex !important; + background: #fafafa; + position: fixed; + width: calc(100% - 19em); + top: 7em; + right: 1em; + z-index: 999; + padding: .85em; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +#listing.list .item.header>div:first-child { + width: 0; +} + +#listing.list .item.header .name { + margin-right: 3em; +} + +#listing.list .header a { + color: inherit; +} + +#listing.list .item.header>div:first-child { + width: 0; +} + +#listing.list .name { + font-weight: normal; +} + +#listing.list .item.header .name { + margin-right: 3em; +} + +#listing.list .header span { + vertical-align: middle; +} + +#listing.list .header i { + opacity: 0; + transition: .1s ease all; +} + +#listing.list .header p:hover i, +#listing.list .header .active i { + opacity: 1; +} + +#listing.list .item.header .active { + font-weight: bold; +} + +#listing #multiple-selection { + position: fixed; + bottom: -4em; + left: 0; + z-index: 99999; + width: 100%; + background-color: #2196f3; + height: 4em; + display: flex !important; + padding: 0.5em 0.5em 0.5em 1em; + justify-content: space-between; + align-items: center; + transition: .2s ease bottom; +} + +#listing #multiple-selection.active { + bottom: 0; +} + +#listing #multiple-selection p, +#listing #multiple-selection i { + color: #fff; +} diff --git a/assets/src/css/login.css b/assets/src/css/login.css new file mode 100644 index 00000000..01788f0b --- /dev/null +++ b/assets/src/css/login.css @@ -0,0 +1,76 @@ +#login { + background: #fff; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +#login img { + width: 4em; + height: 4em; + margin: 0 auto; + display: block; +} + +#login h1 { + text-align: center; + font-size: 2.5em; + margin: .4em 0 .67em; +} + +#login form { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + max-width: 16em; + width: 90%; +} + +#login.recaptcha form { + min-width: 304px; +} + +#login #recaptcha { + margin: .5em 0 0; +} + +#login input { + width: 100%; + width: 100%; + margin: .5em 0 0; +} + +#login .wrong { + background: #F44336; + color: #fff; + padding: .5em; + text-align: center; + animation: .2s opac forwards; +} + +@keyframes opac { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +#login input[type="text"], +#login input[type="password"] { + padding: .5em 1em; + border: 1px solid #e9e9e9; + transition: .2s ease border; + color: #333; +} + +#login input[type="text"]:focus, +#login input[type="password"]:focus, +#login input[type="text"]:hover, +#login input[type="password"]:hover { + border-color: #9f9f9f; +} diff --git a/assets/src/css/mobile.css b/assets/src/css/mobile.css new file mode 100644 index 00000000..05d4d46b --- /dev/null +++ b/assets/src/css/mobile.css @@ -0,0 +1,113 @@ +@media (max-width: 1024px) { + nav { + width: 10em + } +} + +@media (max-width: 1024px) { + #listing.list .item.header, + main { + width: calc(100% - 13em) + } +} + +@media (max-width: 736px) { + #more { + display: inherit + } + header .overlay { + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.1); + } + #dropdown { + position: fixed; + top: 1em; + right: 1em; + display: block; + background-color: #fff; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + transform: scale(0); + transition: .1s ease-in-out transform; + transform-origin: top right; + z-index: 99999; + } + #dropdown > div { + display: block; + } + #dropdown.active { + transform: scale(1); + } + #dropdown .action { + display: flex; + align-items: center; + border-radius: 0; + width: 100%; + } + #dropdown .action span:not(.counter) { + display: inline-block; + padding: .4em; + } + #dropdown .counter { + left: 2.25em; + } + #file-selection { + position: fixed; + bottom: 1em; + left: 50%; + transform: translateX(-50%); + display: flex; + align-items: center; + background: #fff; + box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px; + width: 95%; + max-width: 20em; + } + #file-selection .action { + border-radius: 50%; + width: auto; + } + #file-selection > span { + display: inline-block; + margin-left: 1em; + color: #6f6f6f; + margin-right: auto; + } + nav { + top: 0; + z-index: 99999; + background: #fff; + height: 100%; + width: 16em; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + transition: .1s ease left; + left: -17em; + } + nav.active { + left: 0; + } + header .search-button, + header>div:first-child>.action { + display: inherit; + } + header img { + display: none; + } + #listing { + margin-bottom: 5em; + } + #listing.list .item.header, + main { + width: calc(100% - 2em); + } + main { + margin: 0 1em; + width: calc(100% - 2em); + } + #search { + display: none; + } + #search.active { + display: block; + } +} diff --git a/assets/src/css/styles.css b/assets/src/css/styles.css new file mode 100644 index 00000000..69335280 --- /dev/null +++ b/assets/src/css/styles.css @@ -0,0 +1,228 @@ +@import "~normalize.css/normalize.css"; +@import "~noty/lib/noty.css"; +@import "./fonts.css"; +@import "./base.css"; +@import "./header.css"; +@import "./listing.css"; +@import "./editor.css"; +@import "./dashboard.css"; +@import "./login.css"; + +/* * * * * * * * * * * * * * * * + * ACTION * + * * * * * * * * * * * * * * * */ + +.action { + display: inline-block; + cursor: pointer; + transition: 0.2s ease all; + border: 0; + margin: 0; + color: #546E7A; + border-radius: 50%; + background: transparent; + padding: 0; + box-shadow: none; + vertical-align: middle; + text-align: left; + position: relative; +} + +.action.disabled { + opacity: 0.2; + cursor: not-allowed; +} + +.action i { + padding: 0.4em; + transition: .1s ease-in-out all; + border-radius: 50%; +} + +.action:hover { + background-color: rgba(0, 0, 0, .1); +} + +.action ul { + position: absolute; + top: 0; + color: #7d7d7d; + list-style: none; + margin: 0; + padding: 0; + flex-direction: column; + display: flex; +} + +.action ul li { + line-height: 1; + padding: .7em; + transition: .1s ease background-color; +} + +.action ul li:hover { + background-color: rgba(0, 0, 0, 0.04); +} + +#click-overlay { + display: none; + position: fixed; + cursor: pointer; + top: 0; + left: 0; + height: 100%; + width: 100%; +} + +#click-overlay.active { + display: block; +} + +.action .counter { + display: block; + position: absolute; + bottom: 0; + right: 0; + background: #2196f3; + color: #fff; + border-radius: 50%; + font-size: .75em; + width: 1.5em; + height: 1.5em; + text-align: center; + line-height: 1.25em; + border: 2px solid white; +} + + +/* PREVIEWER */ + +#previewer { + background-color: rgba(0, 0, 0, 0.9); + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 9999; + overflow: hidden; +} + +#previewer .bar { + width: 100%; + text-align: right; + display: flex; + padding: 0.5em; + height: 3.7em; +} + +#previewer .action:first-of-type { + margin-right: auto; +} + +#previewer .action i { + color: #fff; +} + +#previewer .action:hover { + background-color: rgba(255, 255, 255, 0.3) +} + +#previewer .action span { + display: none; +} + +#previewer .preview { + margin: 2em auto 4em; + max-width: 80%; + text-align: center; + height: calc(100vh - 9.7em); +} + +#previewer .preview pre { + text-align: left; + overflow: auto; +} + +#previewer .preview pre, +#previewer .preview video, +#previewer .preview img { + max-height: 100%; + margin: 0; +} + +#previewer .pdf { + width: 100%; + height: 100%; +} + +#previewer h2.message { + color: rgba(255, 255, 255, 0.5) +} + +#previewer>button { + margin: 0; + position: fixed; + top: 50%; + transform: translateY(-50%); +} + +#previewer>button:first-of-type { + left: 0.5em; +} + +#previewer>button:last-of-type { + right: 0.5em; +} + + +/* * * * * * * * * * * * * * * * + * PROMPT * + * * * * * * * * * * * * * * * */ + +.noty_buttons { + text-align: right; + padding: 0 10px 10px !important; +} + +.noty_buttons button { + background: rgba(0, 0, 0, 0.05); + border: 1px solid rgba(0,0,0,0.1); + box-shadow: 0 0 0 0; + font-size: 14px; +} + +/* * * * * * * * * * * * * * * * + * FOOTER * + * * * * * * * * * * * * * * * */ + +.credits { + font-size: 0.6em; + margin: 3em 2.5em; + color: #a5a5a5; +} + +.credits span { + display: block; + margin: .3em 0; +} + +.credits a, +.credits a:hover { + color: inherit; + cursor: pointer; +} + + +/* * * * * * * * * * * * * * * * + * ANIMATIONS * + * * * * * * * * * * * * * * * */ + +@keyframes spin { + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} + +@import './mobile.css'; diff --git a/assets/src/i18n/en.yaml b/assets/src/i18n/en.yaml new file mode 100644 index 00000000..1b3ec70e --- /dev/null +++ b/assets/src/i18n/en.yaml @@ -0,0 +1,201 @@ +permanent: Permanent +buttons: + cancel: Cancel + close: Close + copy: Copy + copyFile: Copy file + copyToClipboard: Copy to clipboard + create: Create + delete: Delete + download: Download + info: Info + more: More + move: Move + moveFile: Move file + new: New + next: Next + ok: OK + replace: Replace + previous: Previous + rename: Rename + reportIssue: Report Issue + save: Save + search: Search + select: Select + share: Share + publish: Publish + selectMultiple: Select multiple + schedule: Schedule + switchView: Switch view + toggleSidebar: Toggle sidebar + update: Update + upload: Upload + permalink: Get Permanent Link +success: + linkCopied: Link copied! +errors: + forbidden: You're not welcome here. + internal: Something really went wrong. + notFound: This location can't be reached. +files: + folders: Folders + files: Files + body: Body + clear: Clear + closePreview: Close preview + home: Home + lastModified: Last modified + loading: Loading... + lonely: It feels lonely here... + metadata: Metadata + multipleSelectionEnabled: Multiple selection enabled + name: Name + size: Size + sortByName: Sort by name + sortBySize: Sort by size + sortByLastModified: Sort by last modified +help: + click: select file or directory + ctrl: + click: select multiple files or directories + f: opens search + s: save a file or download the directory where you are + del: delete selected items + doubleClick: open a file or directory + esc: clear selection and/or close the prompt + f1: this information + f2: rename file + help: Help +login: + password: Password + submit: Login + username: Username + wrongCredentials: Wrong credentials +prompts: + copy: Copy + copyMessage: 'Choose the place to copy your files:' + currentlyNavigating: 'Currently navigating on:' + deleteMessageMultiple: Are you sure you want to delete {count} file(s)? + deleteMessageSingle: Are you sure you want to delete this file/folder? + deleteTitle: Delete files + displayName: 'Display Name:' + download: Download files + downloadMessage: Choose the format you want to download. + error: Something went wrong + fileInfo: File information + filesSelected: "{count} files selected." + lastModified: Last Modified + move: Move + moveMessage: 'Choose new house for your file(s)/folder(s):' + newDir: New directory + newDirMessage: Write the name of the new directory. + newFile: New file + newFileMessage: Write the name of the new file. + numberDirs: Number of directories + numberFiles: Number of files + replace: Replace + replaceMessage: > + One of the files you're trying to upload is conflicting because of its name. + Do you wish to replace the existing one? + rename: Rename + renameMessage: Insert a new name for + show: Show + size: Size + schedule: Schedule + scheduleMessage: Pick a date and time to schedule the publication of this post. + newArchetype: Create a new post based on an archetype. Your file will be created on content folder. +settings: + admin: Admin + administrator: Administrator + allowCommands: Execute commands + allowEdit: Edit, rename and delete files or directories + allowNew: Create new files and directories + allowPublish: Publish new posts and pages + avoidChanges: "(leave blank to avoid changes)" + changePassword: Change Password + commands: Commands + commandsHelp: > + Here you can set commands that are executed in the named events. You + write one command per line. If the event is related to files, such as before and + after saving, the environment variable "FILE" will be available with the path + of the file. + commandsUpdated: Commands updated! + customStylesheet: Custom Stylesheet + examples: Examples + globalSettings: Global Settings + language: Language + lockPassword: Prevent the user from changing the password + newPassword: Your new password + newPasswordConfirm: Confirm your new password + newUser: New User + password: Password + passwordUpdated: Password updated! + permissions: Permissions + permissionsHelp: > + You can set the user to be an administrator or choose the permissions + individually. If you select "Administrator", all of the other options will be + automatically checked. The management of users remains a privilege of an administrator. + profileSettings: Profile Settings + ruleExample1: > + prevents the access to any dot file (such as .git, .gitignore) in + every folder. + ruleExample2: blocks the access to the file named Caddyfile on the root of the scope. + rules: Rules + rulesHelp1: > + Here you can define a set of allow and disallow rules for this specific + user. The blocked files won't show up in the listings and they wont be accessible + to the user. We support regex and paths relative to the users scope. + rulesHelp2: > + Each rule goes in one different line and must start with the keyword + {0} or {1}. Then you should write {2} if you are using a regular expression and + then the expression or the path. + scope: Scope + settingsUpdated: Settings updated! + user: User + userCommands: Commands + userCommandsHelp: > + A space separated list with the available commands for this user. + Example: + userCreated: User created! + userDeleted: User deleted! + userManagement: User Management + username: Username + users: Users + userUpdated: User updated! +sidebar: + help: Help + logout: Logout + myFiles: My files + newFile: New file + newFolder: New folder + settings: Settings + siteSettings: Site Settings + hugoNew: Hugo New + preview: Preview +search: + images: Images + music: Music + pdf: PDF + pressToExecute: Press enter to execute. + pressToSearch: Press enter to search. + search: Search... + searchOrCommand: Search or execute a command... + searchOrSupportedCommand: 'Search or use one of your supported commands:' + type: Type and press enter to search. + types: Types + video: Video + writeToSearch: Write here to search +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: Time Unit + seconds: Seconds + minutes: Minutes + hours: Hours + days: Days diff --git a/assets/src/i18n/es.yaml b/assets/src/i18n/es.yaml new file mode 100644 index 00000000..78e875f1 --- /dev/null +++ b/assets/src/i18n/es.yaml @@ -0,0 +1,202 @@ +permanent: Permanente +buttons: + cancel: Cancelar + close: Cerrar + copy: Copiar + copyFile: Copiar archivo + copyToClipboard: Copiar al portapapeles + create: Crear + delete: Borrar + download: Descargar + info: Info + more: Más + move: Mover + moveFile: Mover archivo + new: Nuevo + next: Siguiente + ok: OK + replace: Reemplazar + previous: Anterior + rename: Renombrar + reportIssue: Reportar problema + save: Guardar + search: Buscar + select: Seleccionar + share: Compartir + publish: Publicar + selectMultiple: Selección múltiple + schedule: Programar + switchView: Cambiar vista + toggleSidebar: Mostrar/Ocultar menú + update: Actualizar + upload: Subir + permalink: Link permanente +success: + linkCopied: ¡Link copiado! +errors: + forbidden: No eres bienvenido aquí. + internal: La verdad es que algo ha ido mal. + notFound: No se puede acceder a este lugar. +files: + folders: Carpetas + files: Archivos + body: Cuerpo + clear: Limpiar + closePreview: Cerrar vista previa + home: Inicio + lastModified: Última modificación + loading: Cargando... + lonely: Uno se siente muy sólo aquí... + metadata: Metadatos + multipleSelectionEnabled: Selección múltiple activada + name: Nombre + size: Tamaño + sortByName: Ordenar por nombre + sortBySize: Ordenar por tamaño + sortByLastModified: Ordenar por última modificación +help: + click: seleccionar archivo o carpeta + ctrl: + click: seleccionar múltiples archivos o carpetas + f: abre la búsqueda + s: guarda un archivo o lo descarga a la carpeta en la que estás + del: elimina los items seleccionados + doubleClick: abre un archivo o carpeta + esc: limpia la selección y/o cierra la ventana + f1: esta información + f2: renombrar archivo + help: Ayuda +login: + password: Contraseña + submit: Iniciar sesión + username: Usuario + wrongCredentials: Usuario y/o contraseña incorrectos +prompts: + copy: Copiar + copyMessage: 'Elige el lugar donde quieres copiar tus archivos:' + currentlyNavigating: 'Actualmente estás en:' + deleteMessageMultiple: ¿Estás seguro que quieres eliminar {count} archivo(s)? + deleteMessageSingle: ¿Estás seguro que quieres eliminar este archivo/carpeta? + deleteTitle: Borrar archivos + displayName: 'Nombre:' + download: Descargar archivos + downloadMessage: Elige el formato de descarga. + error: Algo ha fallado + fileInfo: Información del archivo + filesSelected: "{count} archivos seleccionados." + lastModified: Última modificación + move: Mover + moveMessage: 'Elige una nueva casa para tus archivo(s)/carpeta(s):' + newDir: Nueva carpeta + newDirMessage: Escribe el nombre de la nueva carpeta. + newFile: Nuevo archivo + newFileMessage: Escribe el nombre del nuevo archivo. + numberDirs: Número de carpetas + numberFiles: Número de archivos + replace: Reemplazar + replaceMessage: > + Uno de los archivos ue intentas subir está creando conflicto por su nombre. + ¿Quieres cambiar el nombre del ya existente? + rename: Renombrar + renameMessage: Escribe el nuevo nombre para + show: Mostrar + size: Tamaño + schedule: Programar + scheduleMessage: Elige una hora y fecha para programar la publicación de este post. + newArchetype: Crea un nuevo post basado en un arquetipo. Tu archivo será creado en la carpeta de contenido. +settings: + admin: Admin + administrator: Administrador + allowCommands: Ejecutar comandos + allowEdit: Editar, renombrar y borrar archivos o carpetas + allowNew: Crear nuevos archivos y carpetas + allowPublish: Publicar nuevos posts y páginas + avoidChanges: "(dejar en blanco para evitar cambios)" + changePassword: Cambiar contraseña + commands: Comandos + commandsHelp: > + Aquí puedes crear comandos que serán ejecutados en los eventos. Debes + escribir un comando por linea. Si el evento está relacionado con archivos, como + por ejemplo, antes y después de guardar, la variable de entorno "FILE" estará + disponible en la ruta del archivo. + commandsUpdated: ¡Comandos actualizados! + customStylesheet: Modificar hoja de estilos + examples: Ejemplos + globalSettings: Ajustes globales + language: Idioma + lockPassword: Evitar que el usuario cambie la contraseña + newPassword: Tu nueva contraseña + newPasswordConfirm: Confirma tu contraseña + newUser: Nuevo usuario + password: Contraseña + passwordUpdated: ¡Contraseña actualizada! + permissions: Permisos + permissionsHelp: > + Puedes nombrar al usuario como administrador o elegir los permisos + individualmente. Si seleccionas "Administrador", todas las otras opciones + serán activadas automáticamente. La administración de usuarios es un privilegio de administrador. + profileSettings: Ajustes del perfil + ruleExample1: > + previene el acceso a una extensión de archivo (Como .git) en + cada carpeta. + ruleExample2: bloquea el acceso al archivo llamado Caddyfile en la carpeta raíz. + rules: Reglas + rulesHelp1: > + Aquí puedes definir un conjunto de reglas de permisos para este usuario + específico. Los archivos bloqueados no se mostrarán en las listas y no serán accesibles + por el usuario. Puedes utilizar regex y rutas relativas a la raíz del usuario. + rulesHelp2: > + Cada regla va en una línea diferente, y debe comenzar con la palabra clave + {0} or {1}. Entonces, debes escribir {2} si estás usando una expresión regular (REGEX) y + luego la expresión o la ruta. + scope: Raíz + settingsUpdated: ¡Ajustes actualizados! + user: Usuario + userCommands: Comandos + userCommandsHelp: > + Una lista separada por espacios con los comandos permitidos para este usuario. + Ejemplo: + userCreated: ¡Usuario creado! + userDeleted: ¡Usuario eliminado! + userManagement: Administración de usuarios + username: Usuario + users: Usuarios + userUpdated: ¡Usuario actualizado! +sidebar: + help: Ayuda + logout: Cerrar sesión + myFiles: Mis archivos + newFile: Nuevo archivo + newFolder: Nueva carpeta + settings: Ajustes + siteSettings: Ajustes del sitio + hugoNew: Nuevo Hugo + preview: Vista previa +search: + images: Images + music: Música + pdf: PDF + pressToExecute: Presiona enter para ejecutar. + pressToSearch: Presiona enter para buscar. + search: Buscar... + searchOrCommand: Buscar o ejecutar un comando... + searchOrSupportedCommand: 'Buscar o ejecutar uno de los comandos soportados:' + type: Escribe y presiona enter para buscar. + types: Tipos + video: Vídeo + writeToSearch: Escribe aquí para buscar +languages: + en: English + fr: Français + pt: Português + es: Español + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + +time: + unit: Unidad + seconds: Segundos + minutes: Minutos + hours: Horas + days: Días diff --git a/assets/src/i18n/fr.yaml b/assets/src/i18n/fr.yaml new file mode 100644 index 00000000..5d94d5a7 --- /dev/null +++ b/assets/src/i18n/fr.yaml @@ -0,0 +1,194 @@ +permanent: Permanent +buttons: + cancel: Annuler + close: Fermer + copy: Copier + copyFile: Copier le fichier + copyToClipboard: Copier dans le presse-papier + create: Créer + delete: Supprimer + download: Télécharger + info: Info + more: Plus + move: Déplacer + moveFile: Déplacer le fichier + new: Nouveau + next: Suivant + ok: OK + replace: Remplacer + previous: Précédent + rename: Renommer + reportIssue: Rapport d'erreur + save: Enregistrer + search: Chercher + select: Sélectionner + share: Partager + publish: Publier + selectMultiple: Sélection multiple + schedule: Fixer la date + switchView: Changer le mode d'affichage + toggleSidebar: Afficher/Masquer la barre latérale + update: Mettre à jour + upload: Importer + permalink: Obtenir un lien permanent +errors: + forbidden: Vous n'êtes pas autorisé à être ici. + internal: Aïe ! Quelque chose s'est mal passé. + notFound: Impossible d'accéder à cet emplacement. +files: + folders: Dossiers + files: Fichiers + body: Corps + clear: Fermer + closePreview: Fermer la prévisualisation + home: Accueil + lastModified: Dernière modification + loading: Chargement... + lonely: Il semble qu'il n'y ai rien par ici... + metadata: Metadonnées + multipleSelectionEnabled: Sélection multiple activée + name: Nom + size: Taille + sortByName: Trier par nom + sortBySize: Trier par taille + sortByLastModified: Trier par date de dernière modification +help: + click: Sélectionner un élément + ctrl: + click: Sélectionner plusieurs éléments + f: Ouvrir l'invité de recherche + s: Télécharger l'élément actuel + del: Supprimer les éléments sélectionnés + doubleClick: Ouvrir un élément + esc: Désélectionner et/ou fermer la boîte de dialogue + f1: Ouvrir l'aide + f2: Renommer le fichier + help: Aide +login: + password: Mot de passe + submit: Se connecter + username: Utilisateur + wrongCredentials: Identifiants incorrects ! +prompts: + copy: Copier + copyMessage: 'Choisissez l''emplacement où copier la sélection :' + currentlyNavigating: 'Dossier courant :' + deleteMessageMultiple: Etes-vous sûr de vouloir supprimer ces {count} élément(s) ? + deleteMessageSingle: Etes-vous sûr de vouloir supprimer cet élément ? + deleteTitle: Supprimer + displayName: 'Nom :' + download: Télécharger + downloadMessage: 'Choisissez le format de téléchargement :' + error: Quelque chose s'est mal passé + fileInfo: Informations + filesSelected: "{count} éléments sélectionnés" + lastModified: Dernière modification + move: Déplacer + moveMessage: 'Choisissez l''emplacement où déplacer la sélection :' + newDir: Nouveau dossier + newDirMessage: 'Nom du nouveau dossier :' + newFile: Nouveau fichier + newFileMessage: 'Nom du nouveau fichier :' + numberDirs: Nombre de dossiers + numberFiles: Nombre de fichiers + replace: Remplacer + replaceMessage: > + Un des fichiers que vous êtes en train d'importer a le même nom qu'un autre déjà présent. + Voulez-vous remplacer le fichier actuel par le nouveau ? + rename: Renommer + renameMessage: Nouveau nom pour + show: Montrer + size: Taille + schedule: Fixer la date + scheduleMessage: Choisissez une date pour planifier la publication de ce post + newArchetype: Créer un nouveau post basé sur un archétype. Votre fichier sera créé dans le dossier de contenu. +settings: + admin: Admin + administrator: Administrateur + allowCommands: Exécuter des commandes + allowEdit: Editer, renommer et supprimer des fichiers ou des dossiers + allowNew: Créer de nouveaux fichiers et dossiers + allowPublish: Publier de nouveaux posts et pages + avoidChanges: "(Laisser vide pour conserver l'actuel)" + changePassword: Modifier le mot de passe + commands: Commandes + commandsHelp: > + Ici vous pouvez définir des commandes qui seront exécutées lors de l'évènement correspondant. + Vous devez indiquer une commande par ligne. Si l'évènement est en rapport avec des fichiers, + par exemple avant et après enregistrement, la variable d'environement "FILE" sera disponible + et contiendra le chemin d'accès vers le fichier. + commandsUpdated: Commandes mises à jour ! + customStylesheet: Feuille de style personnalisée + examples: Exemples + globalSettings: Paramètres généraux + language: Langue + newPassword: Votre nouveau mot de passe + newPasswordConfirm: Confirmation du nouveau mot de passe + newUser: Nouvel Utilisateur + password: Mot de passe + passwordUpdated: Mot de passe mis à jour ! + permissions: Permissions + permissionsHelp: > + Vous pouvez définir l'utilisateur comme étant un administrateur ou encore choisir les + permissions individuellement. Si vous sélectionnez "Administrateur", toutes les autres + options seront automatiquement activées. La gestion des utilisateurs est un privilège que + seul l'administrateur possède. + profileSettings: Paramètres du profil + ruleExample1: Bloque l'accès à tous les fichiers commençant par un point (comme par exemple .git, .gitignore) dans tous les dossiers + ruleExample2: Bloque l'accès au fichier nommé "Caddyfile" à la racine du dossier utilisateur + rules: Règles + rulesHelp1: > + Vous pouvez définir ici un ensemble de règles pour cet utilisateur. + Les fichiers bloqués ne seront pas affichés et ne seront pas accessibles par l'utilisateur. + Les expressions régulières sont supportées et les chemins d'accès sont relatifs par rapport au dossier de l'utilisateur. + rulesHelp2: > + Chaque règle est définie sur une ligne différente et doit commencer par le mot clé {0} ou {1}. + Vous devez ensuite ajouter {2} si vous utilisez une expression régulière puis l'expression en question ou bien seulement le chemin d'accès. + scope: Portée du dossier utilisateur + settingsUpdated: Les paramètres ont été mis à jour ! + user: Utilisateur + userCommands: Commandes + userCommandsHelp: 'Une liste séparée par des espaces des commandes permises pour l''utilisateur. Exemple :' + userCreated: Utilisateur créé ! + userDeleted: Utilisateur supprimé ! + userManagement: Gestion des utilisateurs + username: Nom d'utilisateur + users: Utilisateurs + userUpdated: Utilisateur mis à jour ! +sidebar: + help: Aide + logout: Se déconnecter + myFiles: Mes fichiers + newFile: Nouveau fichier + newFolder: Nouveau dossier + settings: Paramètres + siteSettings: Paramètres du site + hugoNew: Nouveau Hugo + preview: Prévisualiser +search: + images: Images + music: Musique + pdf: PDF + pressToExecute: Appuyez sur Entrée pour exécuter + pressToSearch: Appuyez sur Entrée pour lancer la recherche + search: Recherche en cours... + searchOrCommand: Rechercher ou exécuter une commande... + searchOrSupportedCommand: 'Lancez une recherche ou exécutez une commande parmis les suivantes :' + type: Tapez votre recherche et appuyez sur Entrée + types: Types + video: Video + writeToSearch: Ecrivez ici pour lancer une recherche +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: Unité de temps + seconds: Secondes + minutes: Minutes + hours: Heures + days: Jours diff --git a/assets/src/i18n/index.js b/assets/src/i18n/index.js new file mode 100644 index 00000000..7ce5ffe5 --- /dev/null +++ b/assets/src/i18n/index.js @@ -0,0 +1,61 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import en from './en.yaml' +import fr from './fr.yaml' +import pt from './pt.yaml' +import ja from './ja.yaml' +import zhCN from './zh-cn.yaml' +import zhTW from './zh-tw.yaml' +import es from './es.yaml' + +Vue.use(VueI18n) + +export function detectLocale () { + let locale = (navigator.language || navigator.browserLangugae).toLowerCase() + switch (true) { + case /^en.*/i.test(locale): + locale = 'en' + break + case /^fr.*/i.test(locale): + locale = 'fr' + break + case /^pt.*/i.test(locale): + locale = 'pt' + break + case /^ja.*/i.test(locale): + locale = 'ja' + break + case /^zh-CN/i.test(locale): + locale = 'zh-cn' + break + case /^zh-TW/i.test(locale): + locale = 'zh-tw' + break + case /^zh.*/i.test(locale): + locale = 'zh-cn' + break + case /^es.*/i.test(locale): + locale = 'es' + break + default: + locale = 'en' + } + + return locale +} + +const i18n = new VueI18n({ + locale: detectLocale(), + fallbackLocale: 'en', + messages: { + 'en': en, + 'fr': fr, + 'pt': pt, + 'ja': ja, + 'zh-cn': zhCN, + 'zh-tw': zhTW, + 'es': es + } +}) + +export default i18n diff --git a/assets/src/i18n/ja.yaml b/assets/src/i18n/ja.yaml new file mode 100644 index 00000000..c3d7f3a5 --- /dev/null +++ b/assets/src/i18n/ja.yaml @@ -0,0 +1,201 @@ +permanent: 永久 +buttons: + cancel: キャンセル + close: 閉じる + copy: コピー + copyFile: ファイルをコピー + copyToClipboard: クリップボードにコピー + create: 作成 + delete: 削除 + download: ダウンロード + info: 情報 + more: More + move: 移動 + moveFile: ファイルを移動 + new: 新規 + next: 次 + ok: OK + replace: 置き換える + previous: 前 + rename: 名前を変更 + reportIssue: 問題を報告 + save: 保存 + search: 検索 + select: 選択 + share: シェア + publish: 発表 + selectMultiple: 複数選択 + schedule: スケジュール + switchView: 表示を切り替わる + toggleSidebar: サイドバーを表示する + update: 更新 + upload: アップロード + permalink: 固定リンク +success: + linkCopied: リンクがコピーされました! +errors: + forbidden: アクセスが拒否されました。 + internal: 内部エラーが発生しました。 + notFound: リソースが見つからなりませんでした。 +files: + folders: フォルダ + files: ファイル + body: 本文 + clear: クリアー + closePreview: プレビューを閉じる + home: ホーム + lastModified: 最終変更 + loading: ローディング... + lonely: ここには何もない... + metadata: メタデータ + multipleSelectionEnabled: 複数選択有効 + name: 名前 + size: サイズ + sortByName: 名前によるソート + sortBySize: サイズによるソート + sortByLastModified: 最終変更日付によるソート +help: + click: ファイルやディレクトリを選択 + ctrl: + click: 複数のファイルやディレクトリを選択 + f: 検索を有効にする + s: ファイルを保存またはカレントディレクトリをダウンロード + del: 選択した項目を削除 + doubleClick: ファイルやディレクトリをオープン + esc: 選択をクリアーまたはプロンプトを閉じる + f1: このヘルプを表示 + f2: ファイルの名前を変更 + help: ヘルプ +login: + password: パスワード + submit: ログイン + username: ユーザ名 + wrongCredentials: ユーザ名またはパスワードが間違っています。 +prompts: + copy: コピー + copyMessage: コピーの目標ディレクトリを選択してください: + currentlyNavigating: 現在閲覧しているディレクトリ: + deleteMessageMultiple: '{count} つのファイルを本当に削除してよろしいですか。' + deleteMessageSingle: このファイル/フォルダを本当に削除してよろしいですか。 + deleteTitle: ファイルを削除 + displayName: 名前: + download: ファイルをダウンロード + downloadMessage: 圧縮形式を選択してください。 + error: あるエラーが発生しました。 + fileInfo: ファイル情報 + filesSelected: '{count} つのファイルは選択されました。' + lastModified: 最終変更 + move: 移動 + moveMessage: 移動の目標ディレクトリを選択してください: + newDir: 新しいディレクトリを作成 + newDirMessage: 新しいディレクトリの名前を入力してください。 + newFile: 新しいファイルを作成 + newFileMessage: 新しいファイルの名前を入力してください。 + numberDirs: ディレクトリ個数 + numberFiles: ファイル個数 + replace: 置き換える + replaceMessage: > + アップロードするファイルの中でかち合う名前が一つあります。 + 既存のファイルを置き換えりませんか。 + rename: 名前を変更 + renameMessage: 名前を変更しようファイルは: + show: 表示 + size: サイズ + schedule: スケジュール + scheduleMessage: このポストの発表日付をスケジュールしてください。 + newArchetype: ある元型に基づいて新しいポストを作成します。ファイルは コンテンツフォルダに作成されます。 +settings: + admin: 管理者 + administrator: 管理者 + allowCommands: コマンドの実行 + allowEdit: ファイルやディレクトリの編集、名前変更と削除 + allowNew: ファイルとディレクトリの作成 + allowPublish: ポストとぺーじの発表 + avoidChanges: "(変更を避けるために空白にしてください)" + changePassword: パスワードを変更 + commands: コマンド + commandsHelp: "\ + ここで、名前付きイベントに実行するコマンドを設定することができます。\ + 一行にコマンド一つを入力してください。\ + イベントはファイルに関連する場合、例えばファイル保存の前にまたは後で、\ + 環境変数 FILE はファイルのパスに割り当てられます。" + commandsUpdated: コマンドは更新されました! + customStylesheet: カスタムスタイルシ ート + examples: 例 + globalSettings: グローバル設定 + language: 言語 + lockPassword: 新しいパスワードを変更に禁止 + newPassword: 新しいパスワード + newPasswordConfirm: 新しいパスワードを確認します + newUser: 新しいユーザー + password: パスワード + passwordUpdated: パスワードは更新されました! + permissions: 権限 + permissionsHelp: "\ + あなたはユーザーを管理者に設定し、または権限を個々に設定しできます。\ + \"管理者\"を選択する場合、その他のすべての選択肢は自動的に設定されます。\ + ユーザーの管理は管理者の権限として保留されました。" + profileSettings: プロファイル設定 + ruleExample1: "\ + 各フォルダに名前はドットで始まるファイル(例えば、.git、.gitignore)\ + へのアクセスを制限します。" + ruleExample2: 範囲のルートパスに名前は Caddyfile のファイルへのアクセスを制限します。 + rules: 規則 + rulesHelp1: "\ + ここに、あなたはこのユーザーの許可または拒否規則を設定できます。\ + ブロックされたファイルはリストに表示されません、それではアクセスも制限されます。\ + 正規表現(regex)のサポートと範囲に相対のパスが提供されています。" + rulesHelp2: "\ + 一行に規則一つを入力してください、\ + その間に規則はキーワード {0} や {1} で始める必要があります。\ + そして正規表現を使う場合、{2} と入力し、表現やパスを入力してください。" + scope: 範囲 + settingsUpdated: 設定は更新されました! + user: ユーザー + userCommands: ユーザーのコマンド + userCommandsHelp: "\ + 空白区切りの有効のコマンドのリストを指定してください。\ + 例:" + userCreated: ユーザーは作成されました! + userDeleted: ユーザーは削除されました! + userManagement: ユーザー管理 + username: ユーザー名 + users: ユーザー + userUpdated: ユーザーは更新されました! +sidebar: + help: ヘルプ + logout: ログアウト + myFiles: 私のファイル + newFile: 新しいファイルを作成 + newFolder: 新しいフォルダを作成 + settings: 設定 + siteSettings: サイト設定 + hugoNew: Hugo New + preview: プレビュー +search: + images: 画像 + music: 音楽 + pdf: PDF + pressToExecute: Enter を押して実行します。 + pressToSearch: Enter を押して検索します。 + search: 検索... + searchOrCommand: コマンドを検索または実行します。 + searchOrSupportedCommand: サポートしているコマンドを検索または実行します: + type: キーワードを入力し、Enter を押して検索します。 + types: 種類 + video: ビデオ + writeToSearch: ここにキーワードを入力してください +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 時間単位 + seconds: 秒 + minutes: 分 + hours: 時間 + days: 日 diff --git a/assets/src/i18n/pt.yaml b/assets/src/i18n/pt.yaml new file mode 100644 index 00000000..33daed4a --- /dev/null +++ b/assets/src/i18n/pt.yaml @@ -0,0 +1,204 @@ +permanent: Permanente +buttons: + cancel: Cancelar + close: Fechar + copy: Copiar + copyFile: Copiar ficheiro + copyToClipboard: Copiar + create: Criar + delete: Eliminar + download: Descarregar + info: Info + more: Mais + move: Mover + moveFile: Mover ficheiro + new: Novo + next: Próximo + ok: OK + previous: Anterior + publish: Publicar + rename: Renomear + replace: Substituir + reportIssue: Reportar Erro + save: Guardar + share: Partilhar + schedule: Agendar + search: Pesquisar + select: Selecionar + selectMultiple: Selecionar múltiplos + switchView: Alterar modo de visão + toggleSidebar: Alternar barra lateral + update: Atualizar + upload: Enviar + permalink: Obter link permanente +success: + linkCopied: Link copiado! +errors: + forbidden: Tu não és bem-vindo aqui. + internal: Algo correu bastante mal. + notFound: Não conseguimos chegar a esta localização. +files: + body: Corpo + clear: Limpar + closePreview: Fechar pré-visualização + files: Ficheiros + folders: Pastas + home: Início + lastModified: Última modificação + loading: A carregar... + lonely: Sinto-me sozinho... + metadata: Metadados + multipleSelectionEnabled: Seleção múltipla ativada + name: Nome + size: Tamanho + sortByLastModified: Ordenar pela última modificação + sortByName: Ordenar pelo nome + sortBySize: Ordenar pelo tamanho +help: + click: selecionar pasta ou ficheiro + ctrl: + click: selecionar várias pastas e ficheiros + f: pesquisar + s: guardar um ficheiro ou descarregar a pasta em que estás a navegar + del: eliminar os ficheiros selecionados + doubleClick: abrir pasta ou ficheiro + esc: limpar seleção e/ou fechar menu + f1: esta informação + f2: renomear ficheiro + help: Ajuda +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +login: + password: Palavra-passe + submit: Login + username: Nome de utilizador + wrongCredentials: Dados errados +prompts: + copy: Copiar + copyMessage: 'Escolhe um lugar para copiar os ficheiros:' + currentlyNavigating: 'A navegar em:' + deleteMessageMultiple: Deseja eliminar {count} ficheiro(s)? + deleteMessageSingle: Deseja eliminar esta pasta/ficheiro? + deleteTitle: Eliminar ficheiros + displayName: 'Nome:' + download: Descarregar ficheiros + downloadMessage: Escolha o formato do ficheiro. + error: Algo correu mal + fileInfo: Informação do ficheiro + filesSelected: "{count} ficheiros selecionados." + lastModified: Última Modificação + move: Mover + moveMessage: 'Escolha uma nova casa para os seus ficheiros:' + newArchetype: Criar um novo post baseado num "archetype". O seu ficheiro será criado + na pasta "content". + newDir: Nova pasta + newDirMessage: Escreva o nome da nova pasta. + newFile: Novo ficheiro + newFileMessage: Escreva o nome do novo ficheiro. + numberDirs: Número de pastas + numberFiles: Número de ficheiros + rename: Renomear + renameMessage: Insira um novo nome para + replace: Substituir + replaceMessage: > + Já existe um ficheiro com nome igual a um dos que está a tentar + enviar. Deseja substituir? + schedule: Agendar + scheduleMessage: Escolha uma data para publicar este post. + show: Mostrar + size: Tamanho +search: + images: Imagens + music: Música + pdf: PDF + pressToExecute: Prima enter para executar. + pressToSearch: Prima enter para pesquisar. + search: Pesquise... + searchOrCommand: Pesquise ou execute um comando... + searchOrSupportedCommand: 'Pesquise ou utilize um dos seus comandos:' + type: Escreva e prima enter para pesquisar. + types: Tipos + video: Vídeos + writeToSearch: Escreva aqui para pesquisar +settings: + admin: Admin + administrator: Administrador + allowCommands: Executar comandos + allowEdit: Editar, renomear e eliminar ficheiros ou pastas + allowNew: Criar novos ficheiros e pastas + allowPublish: Publicar novas páginas e conteúdos + avoidChanges: "(deixe em branco para manter)" + changePassword: Alterar Password + commands: Comandos + commandsHelp: > + Pode definir um conjunto de comandos a executar em determiandos eventos. + Deve escrever um comando por linha. Se o evento estiver relacionado com ficheiros, + como antes e depois de guardar, irá existir uma variável de ambiente denominada + "FILE" com o caminho do ficheiro. + commandsUpdated: Comandos atualizados! + customStylesheet: Estilos Personalizados + examples: Exemplos + globalSettings: Configurações Globais + language: Linguagem + lockPassword: Não permitir que o utilizador altere a palavra-passe + newPassword: Nova palavra-passe + newPasswordConfirm: Confirme a nova palavra-passe + newUser: Novo Utilizador + password: Palavra-passe + passwordUpdated: Palavra-passe atualizada! + permissions: Permissões + permissionsHelp: > + Pode definir o utilizador como administrador ou escolher as permissões + manualmente. Se selecionar a opção "Administrador", todas as outras opções serão + automaticamente selecionadas. A gestão dos utilizadores é um privilégio restringido + aos administradores. + profileSettings: Configurações do Utilizador + ruleExample1: > + previne o acesso a qualquer "dotfile" (como .git, .gitignore) em + qualquer pasta + ruleExample2: bloqueia o acesso ao ficheiro chamado Caddyfile. + rules: Regras + rulesHelp1: > + Aqui pode definir um conjunto de regras para permitir ou bloquear o + acesso do utilizador a determinados ficheiros ou pastas. Os ficheiros bloqueados + não irão aparecer durante a navegação. Suportamos expressões regulares e os caminhos + dos ficheiros devem ser relativos à base do utilizador. + rulesHelp2: > + Cada regra deve ser colocada numa linha diferente e deve começar com + as palavras {0} (permite) ou {1} (bloqueia). Deve escrever, logo de seguida, {2}, + caso queira utilizar uma expressão regular. Depois, escreva o caminho do ficheiro/pasta + ou a expressão regular. + scope: Base + settingsUpdated: Configurações atualizadas! + user: Utilizador + userCommands: Comandos + userCommandsHelp: 'Uma lista, separada com espaços, de comandos disponíveis para + este utilizados. Exemplo:' + userCreated: Utilizador criado! + userDeleted: Utilizador eliminado! + userManagement: Gestão de Utilizadores + username: Nome de utilizador + users: Utilizadores + userUpdated: Utilizador atualizado! +sidebar: + help: Ajuda + hugoNew: Hugo New + logout: Sair + myFiles: Ficheiros + newFile: Novo ficheiro + newFolder: Nova pasta + preview: Pré-visualizar + settings: Configurações + siteSettings: Configurações do Site +time: + unit: Unidades de Tempo + seconds: Segundos + minutes: Minutos + hours: Horas + days: Dias diff --git a/assets/src/i18n/zh-cn.yaml b/assets/src/i18n/zh-cn.yaml new file mode 100644 index 00000000..8ffbaf7e --- /dev/null +++ b/assets/src/i18n/zh-cn.yaml @@ -0,0 +1,199 @@ +permanent: 永久 +buttons: + cancel: 取消 + close: 关闭 + copy: 复制 + copyFile: 复制文件 + copyToClipboard: 复制到剪贴板 + create: 创建 + delete: 删除 + download: 下载 + info: 信息 + more: 更多 + move: 移动 + moveFile: 移动文件 + new: 新 + next: 下一个 + ok: 确定 + replace: 替换 + previous: 上一个 + rename: 重命名 + reportIssue: 报告问题 + save: 保存 + search: 搜索 + select: 选择 + share: 分享 + publish: 发布 + selectMultiple: 选择多个 + schedule: 计划 + switchView: 切换显示方式 + toggleSidebar: 切换侧边栏 + update: 更新 + upload: 上传 + permalink: 获取永久链接 +success: + linkCopied: 链接已复制! +errors: + forbidden: 你被禁止访问。 + internal: 内部出现麻烦了。 + notFound: 找不到文件。 +files: + folders: 文件夹 + files: 文件 + body: Body + clear: 清空 + closePreview: 关闭预览 + home: 主页 + lastModified: 最后修改 + loading: 加载中... + lonely: 这里没有任何文件... + metadata: 元数据 + multipleSelectionEnabled: 多选模式已开启 + name: 名称 + size: 大小 + sortByName: 按名称排序 + sortBySize: 按大小排序 + sortByLastModified: 按最后修改时间排序 +help: + click: 选择文件或目录 + ctrl: + click: 选择多个文件或目录 + f: 打开搜索框 + s: 保存文件或下载当前文件夹 + del: 删除所选的文件/文件夹 + doubleClick: 打开文件/文件夹 + esc: 清除已选项或关闭提示信息 + f1: 显示该帮助信息 + f2: 重命名文件/文件夹 + help: 帮助 +login: + password: 密码 + submit: 登录 + username: 用户名 + wrongCredentials: 用户名或密码错误 +prompts: + copy: 复制 + copyMessage: 请选择欲复制至的目录: + currentlyNavigating: 当前目录: + deleteMessageMultiple: 你确定要删除这 {count} 个文件吗? + deleteMessageSingle: 你确定要删除这个文件/文件夹吗? + deleteTitle: 删除文件 + displayName: 名称: + download: 下载文件 + downloadMessage: 请选择要下载的压缩格式。 + error: 出了一点问题... + fileInfo: 文件信息 + filesSelected: 已选择 {count} 个文件。 + lastModified: 最后修改 + move: 移动 + moveMessage: 请选择欲移动至的目录: + newDir: 新建目录 + newDirMessage: 请输入新目录的名称。 + newFile: 新建文件 + newFileMessage: 请输入新文件的名称。 + numberDirs: 目录数 + numberFiles: 文件数 + replace: 替换 + replaceMessage: "\ + 您尝试上传的文件中有一个与现有文件的名称存在冲突。\ + 是否替换现有的同名文件?" + rename: 重命名 + renameMessage: 请输入新名称,旧名称为: + show: 揭示 + size: 大小 + schedule: 计划 + scheduleMessage: 请选择发布这篇帖子的日期。 + newArchetype: 创建一个基于原型的新帖子。您的文件将会创建在内容文件夹中。 +settings: + admin: 管理员 + administrator: 管理员 + allowCommands: 执行命令(Linux 代码) + allowEdit: 编辑、重命名或删除文件/目录 + allowNew: 创建新文件和目录 + allowPublish: 发布新的帖子与页面 + avoidChanges: '(留空以避免更改)' + changePassword: 更改密码 + commands: 命令(linux 代码) + commandsHelp: "\ + 在这里,您可以设置在指定事件下执行的命令,一行一条。\ + 若事件与文件相关,如“在保存文件前”,\ + 则文件的路径会被赋值给环境变量 \"FILE\"。" + commandsUpdated: 命令已更新! + customStylesheet: 自定义样式表 + examples: 例子 + globalSettings: 全局设置 + language: 语言 + lockPassword: 禁止用户修改密码 + newPassword: 您的新密码 + newPasswordConfirm: 重输一遍新密码 + newUser: 新建用户 + password: 密码 + passwordUpdated: 密码已更新! + permissions: 权限 + permissionsHelp: "\ + 您可以将该用户设置为管理员,也可以单独选择各项权限。\ + 如果选择了“管理员”,则其他的选项会被自动勾上,\ + 同时该用户可以管理其他用户。" + profileSettings: 个人设置 + ruleExample1: "\ + 阻止用户访问所有文件夹下任何以 . 开头的文件\ + (隐藏文件, 例如: .git, .gitignore)。" + ruleExample2: 阻止用户访问其目录范围的根目录下名为 Caddyfile 的文件。 + rules: 规则 + rulesHelp1: "\ + 您可以为该用户制定一组黑名单或白名单式的规则,\ + 被屏蔽的文件将不会显示在列表中,用户也无权限访问,\ + 支持相对于目录范围的路径。" + rulesHelp2: "\ + 每行一条规则,且必须以关键词 {0} 或 {1} 开头。\ + 如要使用正则表达式,请在加上 {2} 之后再附上表达式或路径。" + scope: 目录范围 + settingsUpdated: 设置已更新! + user: 用户 + userCommands: 用户命令(Linux 代码) + userCommandsHelp: "\ + 指定该用户可以执行的命令(Linux 代码),用空格分隔。\ + 例如:" + userCreated: 用户已创建! + userDeleted: 用户已删除! + userManagement: 用户管理 + username: 用户名 + users: 用户 + userUpdated: 用户已更新! +sidebar: + help: 帮助 + logout: 登出 + myFiles: 我的文件 + newFile: 新建文件 + newFolder: 新建文件夹 + settings: 设置 + siteSettings: 网站设置 + hugoNew: Hugo New + preview: 预览 +search: + images: 图像 + music: 音乐 + pdf: PDF + pressToExecute: 按回车键执行。 + pressToSearch: 按回车键搜索。 + search: 搜索... + searchOrCommand: 搜索或者执行命令(Linux 代码)... + searchOrSupportedCommand: 搜索或使用您可以使用的命令(一次只能执行一个命令): + type: 键入并按回车键进行搜索。 + types: 类型 + video: 视频 + writeToSearch: 请输入要搜索的内容 +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 时间单位 + seconds: 秒 + minutes: 分钟 + hours: 小时 + days: 天 diff --git a/assets/src/i18n/zh-tw.yaml b/assets/src/i18n/zh-tw.yaml new file mode 100644 index 00000000..2c32caea --- /dev/null +++ b/assets/src/i18n/zh-tw.yaml @@ -0,0 +1,199 @@ +permanent: 永久 +buttons: + cancel: 取消 + close: 關閉 + copy: 複製 + copyFile: 複製檔案 + copyToClipboard: 複製到剪貼簿 + create: 建立 + delete: 刪除 + download: 下載 + info: 資訊 + more: 更多 + move: 移動 + moveFile: 移動檔案 + new: 新 + next: 下一個 + ok: 確認 + replace: 更換 + previous: 上一個 + rename: 重新命名 + reportIssue: 報告問題 + save: 儲存 + search: 搜尋 + select: 選擇 + share: 分享 + publish: 發佈 + selectMultiple: 選擇多個 + schedule: 計畫 + switchView: 切換顯示方式 + toggleSidebar: 切換側邊欄 + update: 更新 + upload: 上傳 + permalink: 獲取永久連結 +success: + linkCopied: 連結已複製! +errors: + forbidden: 你被禁止存取。 + internal: 內部出現麻煩了。 + notFound: 找不到檔案。 +files: + folders: 資料夾 + files: 檔案 + body: Body + clear: 清空 + closePreview: 關閉預覽 + home: 主頁 + lastModified: 最後修改 + loading: 讀取中... + lonely: 這裡沒有任何檔案... + metadata: 詮釋資料 + multipleSelectionEnabled: 多選模式已開啟 + name: 名稱 + size: 大小 + sortByName: 按名稱排序 + sortBySize: 按大小排序 + sortByLastModified: 按最後修改時間排序 +help: + click: 選擇檔案或目錄 + ctrl: + click: 選擇多個檔案或目錄 + f: 打開搜尋列 + s: 儲存檔案或下載目前資料夾 + del: 刪除所選的檔案/資料夾 + doubleClick: 打開檔案/資料夾 + esc: 清除已選項或關閉提示資訊 + f1: 顯示該幫助資訊 + f2: 重新命名檔案/資料夾 + help: 幫助 +login: + password: 密碼 + submit: 登入 + username: 帳號 + wrongCredentials: 帳號或密碼錯誤 +prompts: + copy: 複製 + copyMessage: 請選擇欲複製至的目錄: + currentlyNavigating: 目前目錄: + deleteMessageMultiple: 你確定要刪除這 {count} 個檔案嗎? + deleteMessageSingle: 你確定要刪除這個檔案/資料夾嗎? + deleteTitle: 刪除檔案 + displayName: 名稱: + download: 下載檔案 + downloadMessage: 請選擇要下載的壓縮格式。 + error: 發出了一點錯誤... + fileInfo: 檔案資訊 + filesSelected: 已選擇 {count} 個檔案。 + lastModified: 最後修改 + move: 移動 + moveMessage: 請選擇欲移動至的目錄: + newDir: 建立目錄 + newDirMessage: 請輸入新目錄的名稱。 + newFile: 建立檔案 + newFileMessage: 請輸入新檔案的名稱。 + numberDirs: 目錄數 + numberFiles: 檔案數 + replace: 替換 + replaceMessage: "\ + 您嘗試上傳的檔案中有一個與現有檔案的名稱存在衝突。\ + 是否取代現有的同名檔案?" + rename: 重新命名 + renameMessage: 請輸入新名稱,舊名稱為: + show: 顯示 + size: 大小 + schedule: 計畫 + scheduleMessage: 請選擇發佈這篇貼文的日期。 + newArchetype: 建立一個基於原型的新貼文。您的檔案將會建立在內容資料夾中。 +settings: + admin: 管理員 + administrator: 管理員 + allowCommands: 執行命令 + allowEdit: 編輯、重命名或刪除檔案/目錄 + allowNew: 創建新檔案和目錄 + allowPublish: 發佈新的貼文與頁面 + avoidChanges: '(留空以避免更改)' + changePassword: 更改密碼 + commands: 命令 + commandsHelp: "\ + 在這裡,您可以設定在指定事件下執行的命令,一行一條。\ + 若事件與檔案相關,如“在保存檔案前”,\ + 則檔案的路徑會被賦值給環境變數 \"FILE\"。" + commandsUpdated: 命令已更新! + customStylesheet: 自定義樣式表 + examples: 範例 + globalSettings: 全域設定 + language: 語言 + lockPassword: 禁止使用者修改密碼 + newPassword: 您的新密碼 + newPasswordConfirm: 重輸一遍新密碼 + newUser: 建立使用者 + password: 密碼 + passwordUpdated: 密碼已更新! + permissions: 權限 + permissionsHelp: "\ + 您可以將該使用者設置為管理員,也可以單獨選擇各項權限。\ + 如果選擇了“管理員”,則其他的選項會被自動勾上,\ + 同時該使用者可以管理其他使用者。" + profileSettings: 個人設定 + ruleExample1: "\ + 封鎖使用者存取所有資料夾下任何以 . 開頭的檔案\ + (隱藏文件, 例如: .git, .gitignore)。" + ruleExample2: 封鎖使用者存取其目錄範圍的根目錄下名為 Caddyfile 的檔案。 + rules: 規則 + rulesHelp1: "\ + 您可以為該使用者製定一組黑名單或白名單式的規則,\ + 被屏蔽的檔案將不會顯示在清單中,使用者也無權限存取,\ + 支持相對於目錄範圍的路徑。" + rulesHelp2: "\ + 每行一條規則,且必須以關鍵字 {0} 或 {1} 開頭。\ + 如要使用規則運算式,請在加上 {2} 之後再附上運算式或路徑。" + scope: 目錄範圍 + settingsUpdated: 設定已更新! + user: 使用者 + userCommands: 使用者命令 + userCommandsHelp: "\ + 指定該使用者可以執行的命令,用空格分隔。\ + 例如:" + userCreated: 使用者已建立! + userDeleted: 使用者已刪除! + userManagement: 使用者管理 + username: 使用者名稱 + users: 使用者 + userUpdated: 使用者已更新! +sidebar: + help: 幫助 + logout: 登出 + myFiles: 我的檔案 + newFile: 建立檔案 + newFolder: 建立資料夾 + settings: 設定 + siteSettings: 網站設定 + hugoNew: Hugo New + preview: 預覽 +search: + images: 影像 + music: 音樂 + pdf: PDF + pressToExecute: 按確定鍵執行。 + pressToSearch: 按確定鍵搜尋。 + search: 搜尋... + searchOrCommand: 搜尋或者執行命令... + searchOrSupportedCommand: 搜尋或使用您可以使用的命令(一次只能執行一個命令): + type: 輸入並按確定鍵進行搜尋。 + types: 類型 + video: 影片 + writeToSearch: 請輸入要搜尋的內容 +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español +time: + unit: 時間單位 + seconds: 秒 + minutes: 分鐘 + hours: 小時 + days: 天 diff --git a/assets/src/main.js b/assets/src/main.js new file mode 100644 index 00000000..b071129c --- /dev/null +++ b/assets/src/main.js @@ -0,0 +1,54 @@ +import Vue from 'vue' +import App from './App' +import store from './store' +import router from './router' +import i18n from './i18n' +import Noty from 'noty' + +Vue.config.productionTip = true + +const notyDefault = { + type: 'info', + layout: 'bottomRight', + timeout: 1000, + progressBar: true +} + +Vue.prototype.$noty = function (opts) { + new Noty(Object.assign({}, notyDefault, opts)).show() +} + +Vue.prototype.$showSuccess = function (message) { + new Noty(Object.assign({}, notyDefault, { + text: message, + type: 'success' + })).show() +} + +Vue.prototype.$showError = function (error) { + let n = new Noty(Object.assign({}, notyDefault, { + text: error, + type: 'error', + timeout: null, + buttons: [ + Noty.button(i18n.t('buttons.reportIssue'), '', function () { + window.open('https://github.com/hacdias/filemanager/issues/new') + }), + Noty.button(i18n.t('buttons.close'), '', function () { + n.close() + }) + ] + })) + + n.show() +} + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + store, + router, + i18n, + template: '', + components: { App } +}) diff --git a/assets/src/router/index.js b/assets/src/router/index.js new file mode 100644 index 00000000..58ca1d87 --- /dev/null +++ b/assets/src/router/index.js @@ -0,0 +1,161 @@ +import Vue from 'vue' +import Router from 'vue-router' +import Login from '@/views/Login' +import Layout from '@/views/Layout' +import Files from '@/views/Files' +import Users from '@/views/settings/Users' +import User from '@/views/settings/User' +import Settings from '@/views/Settings' +import GlobalSettings from '@/views/settings/Global' +import ProfileSettings from '@/views/settings/Profile' +import Error403 from '@/views/errors/403' +import Error404 from '@/views/errors/404' +import Error500 from '@/views/errors/500' +import auth from '@/utils/auth' +import store from '@/store' + +Vue.use(Router) + +const router = new Router({ + base: document.querySelector('meta[name="base"]').getAttribute('content'), + mode: 'history', + routes: [ + { + path: '/login', + name: 'Login', + component: Login, + beforeEnter: function (to, from, next) { + auth.loggedIn() + .then(() => { + next({ path: '/files' }) + }) + .catch(() => { + document.title = 'Login' + next() + }) + } + }, + { + path: '/*', + component: Layout, + meta: { + requiresAuth: true + }, + children: [ + { + path: '/files/*', + name: 'Files', + component: Files + }, + { + path: '/settings', + name: 'Settings', + component: Settings, + redirect: { + path: '/settings/profile' + }, + meta: { + disableOnNoAuth: true + }, + children: [ + { + path: '/settings/profile', + name: 'Profile Settings', + component: ProfileSettings + }, + { + path: '/settings/global', + name: 'Global Settings', + component: GlobalSettings, + meta: { + requiresAdmin: true + } + }, + { + path: '/settings/users', + name: 'Users', + component: Users, + meta: { + requiresAdmin: true + } + }, + { + path: '/settings/users/*', + name: 'User', + component: User, + meta: { + requiresAdmin: true + } + } + ] + }, + { + path: '/403', + name: 'Forbidden', + component: Error403 + }, + { + path: '/404', + name: 'Not Found', + component: Error404 + }, + { + path: '/500', + name: 'Internal Server Error', + component: Error500 + }, + { + path: '/files', + redirect: { + path: '/files/' + } + }, + { + path: '/*', + redirect: { + name: 'Files' + } + } + ] + } + ] +}) + +router.beforeEach((to, from, next) => { + document.title = to.name + + if (to.matched.some(record => record.meta.requiresAuth)) { + // this route requires auth, check if logged in + // if not, redirect to login page. + auth.loggedIn() + .then(() => { + if (to.matched.some(record => record.meta.requiresAdmin)) { + if (!store.state.user.admin) { + next({ path: '/403' }) + return + } + } + + if (to.matched.some(record => record.meta.disableOnNoAuth)) { + if (store.state.noAuth) { + next({ path: '/403' }) + return + } + } + + next() + }) + .catch(e => { + next({ + path: '/login', + query: { redirect: to.fullPath } + }) + }) + + return + } + + next() +}) + +export default router diff --git a/assets/src/store/getters.js b/assets/src/store/getters.js new file mode 100644 index 00000000..370bc589 --- /dev/null +++ b/assets/src/store/getters.js @@ -0,0 +1,5 @@ +const getters = { + selectedCount: state => state.selected.length +} + +export default getters diff --git a/assets/src/store/index.js b/assets/src/store/index.js new file mode 100644 index 00000000..655222cb --- /dev/null +++ b/assets/src/store/index.js @@ -0,0 +1,42 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import mutations from './mutations' +import getters from './getters' + +Vue.use(Vuex) + +const state = { + user: {}, + req: {}, + clipboard: { + key: '', + items: [] + }, + css: (() => { + let css = window.CSS + window.CSS = null + return css + })(), + recaptcha: document.querySelector('meta[name="recaptcha"]').getAttribute('content'), + staticGen: document.querySelector('meta[name="staticgen"]').getAttribute('content'), + baseURL: document.querySelector('meta[name="base"]').getAttribute('content'), + noAuth: (document.querySelector('meta[name="noauth"]').getAttribute('content') === 'true'), + version: document.querySelector('meta[name="version"]').getAttribute('content'), + jwt: '', + progress: 0, + schedule: '', + loading: false, + reload: false, + selected: [], + multiple: false, + show: null, + showMessage: null, + showConfirm: null +} + +export default new Vuex.Store({ + strict: process.env.NODE_ENV !== 'production', + state, + getters, + mutations +}) diff --git a/assets/src/store/mutations.js b/assets/src/store/mutations.js new file mode 100644 index 00000000..cf608511 --- /dev/null +++ b/assets/src/store/mutations.js @@ -0,0 +1,81 @@ +import * as i18n from '@/i18n' +import moment from 'moment' + +const mutations = { + closeHovers: state => { + state.show = null + state.showMessage = null + }, + showHover: (state, value) => { + if (typeof value !== 'object') { + state.show = value + return + } + + state.show = value.prompt + state.showMessage = value.message + state.showConfirm = value.confirm + }, + showError: (state, value) => { + state.show = 'error' + state.showMessage = value + }, + showSuccess: (state, value) => { + state.show = 'success' + state.showMessage = value + }, + setLoading: (state, value) => { state.loading = value }, + setReload: (state, value) => { state.reload = value }, + setUser: (state, value) => { + let locale = value.locale + + if (locale === '') { + locale = i18n.detectLocale() + } + + moment.locale(locale) + i18n.default.locale = locale + state.user = value + }, + setCSS: (state, value) => (state.css = value), + setJWT: (state, value) => (state.jwt = value), + multiple: (state, value) => (state.multiple = value), + addSelected: (state, value) => (state.selected.push(value)), + addPlugin: (state, value) => { + state.plugins.push(value) + }, + removeSelected: (state, value) => { + let i = state.selected.indexOf(value) + if (i === -1) return + state.selected.splice(i, 1) + }, + resetSelected: (state) => { + state.selected = [] + }, + updateUser: (state, value) => { + if (typeof value !== 'object') return + + for (let field in value) { + state.user[field] = value[field] + } + }, + updateRequest: (state, value) => { + state.req = value + }, + updateClipboard: (state, value) => { + state.clipboard.key = value.key + state.clipboard.items = value.items + }, + resetClipboard: (state) => { + state.clipboard.key = '' + state.clipboard.items = [] + }, + setSchedule: (state, value) => { + state.schedule = value + }, + setProgress: (state, value) => { + state.progress = value + } +} + +export default mutations diff --git a/assets/src/utils/api.js b/assets/src/utils/api.js new file mode 100644 index 00000000..9d429062 --- /dev/null +++ b/assets/src/utils/api.js @@ -0,0 +1,455 @@ +import store from '@/store' + +const ssl = (window.location.protocol === 'https:') + +export function removePrefix (url) { + if (url.startsWith('/files')) { + url = url.slice(6) + } + + if (url === '') url = '/' + if (url[0] !== '/') url = '/' + url + return url +} + +export function fetch (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(new Error(request.status)) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function remove (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function post (url, content = '', overwrite = false, onupload) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + if (typeof onupload === 'function') { + request.upload.onprogress = onupload + } + + if (overwrite) { + request.setRequestHeader('Action', `override`) + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else if (request.status === 409) { + reject(request.status) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => { + reject(error) + } + request.send(content) + }) +} + +export function put (url, content = '', publish = false, date = '') { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/resource${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + request.setRequestHeader('Publish', publish) + + if (date !== '') { + request.setRequestHeader('Schedule', date) + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send(content) + }) +} + +function moveCopy (items, copy = false) { + let promises = [] + + for (let item of items) { + let from = removePrefix(item.from) + let to = removePrefix(item.to) + + promises.push(new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PATCH', `${store.state.baseURL}/api/resource${from}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + request.setRequestHeader('Destination', to) + + if (copy) { + request.setRequestHeader('Action', 'copy') + } + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + + request.onerror = (error) => reject(error) + request.send() + })) + } + + return Promise.all(promises) +} + +export function move (items) { + return moveCopy(items) +} + +export function copy (items) { + return moveCopy(items, true) +} + +export function checksum (url, algo) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/checksum${url}?algo=${algo}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(request.responseText) + } else { + reject(request.responseText) + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function command (url, command, onmessage, onclose) { + let protocol = (ssl ? 'wss:' : 'ws:') + url = removePrefix(url) + url = `${protocol}//${window.location.host}${store.state.baseURL}/api/command${url}` + + let conn = new window.WebSocket(url) + conn.onopen = () => conn.send(command) + conn.onmessage = onmessage + conn.onclose = onclose +} + +export function search (url, search, onmessage, onclose) { + let protocol = (ssl ? 'wss:' : 'ws:') + url = removePrefix(url) + url = `${protocol}//${window.location.host}${store.state.baseURL}/api/search${url}` + + let conn = new window.WebSocket(url) + conn.onopen = () => conn.send(search) + conn.onmessage = onmessage + conn.onclose = onclose +} + +export function download (format, ...files) { + let url = `${store.state.baseURL}/api/download` + + if (files.length === 1) { + url += removePrefix(files[0]) + '?' + } else { + let arg = '' + + for (let file of files) { + arg += removePrefix(file) + ',' + } + + arg = arg.substring(0, arg.length - 1) + arg = encodeURIComponent(arg) + url += `/?files=${arg}&` + } + + if (format !== null) { + url += `&format=${format}` + } + + window.open(url) +} + +export function getSettings () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/settings/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function updateSettings (param, which) { + return new Promise((resolve, reject) => { + let data = { + what: 'settings', + which: which, + data: {} + } + + data.data[which] = param + + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/settings/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve() + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => { reject(error) } + request.send(JSON.stringify(data)) + }) +} + +// USERS + +export function getUsers () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/users/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function getUser (id) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/users/${id}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(JSON.parse(request.responseText)) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function newUser (user) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/users/`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 201: + resolve(request.getResponseHeader('Location')) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send(JSON.stringify({ + what: 'user', + which: 'new', + data: user + })) + }) +} + +export function updateUser (user, which) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('PUT', `${store.state.baseURL}/api/users/${user.ID}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve(request.getResponseHeader('Location')) + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send(JSON.stringify({ + what: 'user', + which: (typeof which === 'string') ? which : 'all', + data: user + })) + }) +} + +export function deleteUser (id) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/users/${id}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + switch (request.status) { + case 200: + resolve() + break + default: + reject(request.responseText) + break + } + } + request.onerror = (error) => reject(error) + request.send() + }) +} + +// SHARE + +export function getShare (url) { + url = removePrefix(url) + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/share${url}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(JSON.parse(request.responseText)) + } else { + reject(request.status) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function deleteShare (hash) { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('DELETE', `${store.state.baseURL}/api/share/${hash}`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve() + } else { + reject(request.status) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} + +export function share (url, expires = '', unit = 'hours') { + url = removePrefix(url) + url = `${store.state.baseURL}/api/share${url}` + if (expires !== '') { + url += `?expires=${expires}&unit=${unit}` + } + + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', url, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`) + + request.onload = () => { + if (request.status === 200) { + resolve(JSON.parse(request.responseText)) + } else { + reject(request.responseStatus) + } + } + + request.onerror = (error) => reject(error) + request.send() + }) +} diff --git a/assets/src/utils/auth.js b/assets/src/utils/auth.js new file mode 100644 index 00000000..a5130c91 --- /dev/null +++ b/assets/src/utils/auth.js @@ -0,0 +1,69 @@ +import cookie from './cookie' +import store from '@/store' +import router from '@/router' +import { Base64 } from 'js-base64' + +function parseToken (token) { + let path = store.state.baseURL + if (path === '') path = '/' + document.cookie = `auth=${token}; max-age=86400; path=${path}` + let res = token.split('.') + let user = JSON.parse(Base64.decode(res[1])) + if (!user.commands) { + user.commands = [] + } + + store.commit('setJWT', token) + store.commit('setUser', user) +} + +function loggedIn () { + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('GET', `${store.state.baseURL}/api/auth/renew`, true) + if (!store.state.noAuth) request.setRequestHeader('Authorization', `Bearer ${cookie('auth')}`) + + request.onload = () => { + if (request.status === 200) { + parseToken(request.responseText) + resolve() + } else { + reject(new Error(request.responseText)) + } + } + request.onerror = () => reject(new Error('Could not finish the request')) + request.send() + }) +} + +function login (user, password, captcha) { + let data = {username: user, password: password, recaptcha: captcha} + return new Promise((resolve, reject) => { + let request = new window.XMLHttpRequest() + request.open('POST', `${store.state.baseURL}/api/auth/get`, true) + + request.onload = () => { + if (request.status === 200) { + parseToken(request.responseText) + resolve() + } else { + reject(request.responseText) + } + } + request.onerror = () => reject(new Error('Could not finish the request')) + request.send(JSON.stringify(data)) + }) +} + +function logout () { + let path = store.state.baseURL + if (path === '') path = '/' + document.cookie = `auth='nothing'; max-age=0; path=${path}` + router.push({path: '/login'}) +} + +export default { + loggedIn: loggedIn, + login: login, + logout: logout +} diff --git a/assets/src/utils/buttons.js b/assets/src/utils/buttons.js new file mode 100644 index 00000000..0d266e2b --- /dev/null +++ b/assets/src/utils/buttons.js @@ -0,0 +1,66 @@ +function loading (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.dataset.icon = el.innerHTML + el.style.opacity = 0 + + setTimeout(() => { + el.classList.add('spin') + el.innerHTML = 'autorenew' + el.style.opacity = 1 + }, 100) +} + +function done (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.style.opacity = 0 + + setTimeout(() => { + el.classList.remove('spin') + el.innerHTML = el.dataset.icon + el.style.opacity = 1 + }, 100) +} + +function success (button) { + let el = document.querySelector(`#${button}-button > i`) + + if (el === undefined || el === null) { + console.log('Error getting button ' + button) + return + } + + el.style.opacity = 0 + + setTimeout(() => { + el.classList.remove('spin') + el.innerHTML = 'done' + el.style.opacity = 1 + + setTimeout(() => { + el.style.opacity = 0 + + setTimeout(() => { + el.innerHTML = el.dataset.icon + el.style.opacity = 1 + }, 100) + }, 500) + }, 100) +} + +export default { + loading, + done, + success +} diff --git a/assets/src/utils/codemirror.js b/assets/src/utils/codemirror.js new file mode 100644 index 00000000..e40ba58c --- /dev/null +++ b/assets/src/utils/codemirror.js @@ -0,0 +1,60 @@ +// Most of the code from this file comes from: +// https://github.com/codemirror/CodeMirror/blob/master/addon/mode/loadmode.js +import * as CodeMirror from 'codemirror' +import store from '@/store' + +// Make CodeMirror available globally so the modes' can register themselves. +window.CodeMirror = CodeMirror +CodeMirror.modeURL = store.state.baseURL + '/static/js/codemirror/mode/%N/%N.js' + +var loading = {} + +function splitCallback (cont, n) { + var countDown = n + return function () { + if (--countDown === 0) cont() + } +} + +function ensureDeps (mode, cont) { + var deps = CodeMirror.modes[mode].dependencies + if (!deps) return cont() + var missing = [] + for (var i = 0; i < deps.length; ++i) { + if (!CodeMirror.modes.hasOwnProperty(deps[i])) missing.push(deps[i]) + } + if (!missing.length) return cont() + var split = splitCallback(cont, missing.length) + for (i = 0; i < missing.length; ++i) CodeMirror.requireMode(missing[i], split) +} + +CodeMirror.requireMode = function (mode, cont) { + if (typeof mode !== 'string') mode = mode.name + if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont) + if (loading.hasOwnProperty(mode)) return loading[mode].push(cont) + + var file = CodeMirror.modeURL.replace(/%N/g, mode) + + var script = document.createElement('script') + script.src = file + var others = document.getElementsByTagName('script')[0] + var list = loading[mode] = [cont] + + CodeMirror.on(script, 'load', function () { + ensureDeps(mode, function () { + for (var i = 0; i < list.length; ++i) list[i]() + }) + }) + + others.parentNode.insertBefore(script, others) +} + +CodeMirror.autoLoadMode = function (instance, mode) { + if (CodeMirror.modes.hasOwnProperty(mode)) return + + CodeMirror.requireMode(mode, function () { + instance.setOption('mode', mode) + }) +} + +export default CodeMirror diff --git a/assets/src/utils/cookie.js b/assets/src/utils/cookie.js new file mode 100644 index 00000000..5004b602 --- /dev/null +++ b/assets/src/utils/cookie.js @@ -0,0 +1,4 @@ +export default function (name) { + let re = new RegExp('(?:(?:^|.*;\\s*)' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$') + return document.cookie.replace(re, '$1') +} diff --git a/assets/src/utils/css.js b/assets/src/utils/css.js new file mode 100644 index 00000000..15ab99fe --- /dev/null +++ b/assets/src/utils/css.js @@ -0,0 +1,28 @@ +export default function getRule (rules) { + for (let i = 0; i < rules.length; i++) { + rules[i] = rules[i].toLowerCase() + } + + let result = null + let find = Array.prototype.find + + find.call(document.styleSheets, styleSheet => { + result = find.call(styleSheet.cssRules, cssRule => { + let found = false + + if (cssRule instanceof window.CSSStyleRule) { + for (let i = 0; i < rules.length; i++) { + if (cssRule.selectorText.toLowerCase() === rules[i]) { + found = true + } + } + } + + return found + }) + + return result != null + }) + + return result +} diff --git a/assets/src/utils/url.js b/assets/src/utils/url.js new file mode 100644 index 00000000..2649a592 --- /dev/null +++ b/assets/src/utils/url.js @@ -0,0 +1,12 @@ +function removeLastDir (url) { + var arr = url.split('/') + if (arr.pop() === '') { + arr.pop() + } + + return arr.join('/') +} + +export default { + removeLastDir: removeLastDir +} diff --git a/assets/src/views/Files.vue b/assets/src/views/Files.vue new file mode 100644 index 00000000..10a2fa05 --- /dev/null +++ b/assets/src/views/Files.vue @@ -0,0 +1,231 @@ + + + diff --git a/assets/src/views/Layout.vue b/assets/src/views/Layout.vue new file mode 100644 index 00000000..d2bc6b9d --- /dev/null +++ b/assets/src/views/Layout.vue @@ -0,0 +1,43 @@ + + + diff --git a/assets/src/views/Login.vue b/assets/src/views/Login.vue new file mode 100644 index 00000000..39c4dfb3 --- /dev/null +++ b/assets/src/views/Login.vue @@ -0,0 +1,71 @@ + + + diff --git a/assets/src/views/Settings.vue b/assets/src/views/Settings.vue new file mode 100644 index 00000000..39db5de2 --- /dev/null +++ b/assets/src/views/Settings.vue @@ -0,0 +1,20 @@ + + + diff --git a/assets/src/views/errors/403.vue b/assets/src/views/errors/403.vue new file mode 100644 index 00000000..47c6c897 --- /dev/null +++ b/assets/src/views/errors/403.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/errors/404.vue b/assets/src/views/errors/404.vue new file mode 100644 index 00000000..61dbe144 --- /dev/null +++ b/assets/src/views/errors/404.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/errors/500.vue b/assets/src/views/errors/500.vue new file mode 100644 index 00000000..0bd86786 --- /dev/null +++ b/assets/src/views/errors/500.vue @@ -0,0 +1,13 @@ + + + + diff --git a/assets/src/views/settings/Global.vue b/assets/src/views/settings/Global.vue new file mode 100644 index 00000000..50a6bf30 --- /dev/null +++ b/assets/src/views/settings/Global.vue @@ -0,0 +1,187 @@ + + + diff --git a/assets/src/views/settings/Profile.vue b/assets/src/views/settings/Profile.vue new file mode 100644 index 00000000..bcf11738 --- /dev/null +++ b/assets/src/views/settings/Profile.vue @@ -0,0 +1,109 @@ + + + diff --git a/assets/src/views/settings/User.vue b/assets/src/views/settings/User.vue new file mode 100644 index 00000000..53a4175b --- /dev/null +++ b/assets/src/views/settings/User.vue @@ -0,0 +1,319 @@ + + + diff --git a/assets/src/views/settings/Users.vue b/assets/src/views/settings/Users.vue new file mode 100644 index 00000000..355aaaed --- /dev/null +++ b/assets/src/views/settings/Users.vue @@ -0,0 +1,48 @@ + + + diff --git a/assets/static/img/icons/android-chrome-192x192.png b/assets/static/img/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..685cdea9d5cf74acf3f02f345faefceab921cf74 GIT binary patch literal 4299 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 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/android-chrome-512x512.png b/assets/static/img/icons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..be4f052601236f72b77a3c93cb6a347446d8e786 GIT binary patch literal 12300 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

hKa1i8VW< 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 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-120x120.png b/assets/static/img/icons/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..f204c14b893b4a521b59a1e0fe86bac74ac4ce4d GIT binary patch literal 2930 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 AL;wH) literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-180x180.png b/assets/static/img/icons/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3ee3a9efda885c1c31c1f82567ffb4f0db505b GIT binary patch literal 8893 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 PjsVb5(N?Zjw0ient#fwm literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-60x60.png b/assets/static/img/icons/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..00f82e9432493a5e905484747f479148ccb79e8c GIT binary patch literal 1910 zcmdUui&xau7RL{fI3gr!f-=zMAs{I8fZsg$1@+_C(MG@HjaNV`8x3%scaL?L%?X}PO?C(C0 zb&7;x8_i9vO%X!oA;AF=Wb|Heit)mXgDam5uPXcmeh3*#m(Ge8k-1S?#72Llzicx~ zCU(-`2mwNw&Isk^BQ!%!<&Gef&Om4^5h1(^AuDao*>F>?N*!pt0mUW8-A5YhwB=HTWO%+5p02+Yhw{mdnd zyl$L`2#X}Ie;GqkqQ5rrY~0<T9`&94?Uz48tB3Lr*^(+olD9VosM}1?2{Kut4c?lDkW0dX8(ldcQ-Y8&GbF%I z6x?&7QWtlVZ}I&p38juAIq~D?!tNuMo8MLQFC#ZUqmw4D7FaIJ&rIg+KH_x1JS4Yg zYHt1T!EJIyRc);krBzs}uk4E~^mPlJ6J_rQxDhF2#aj(E1$0%^o#sLGC~n#HP*%q zwJKu69I<;gi zW95fMF8hB7s3{6`JYC-KZ6cPcYv-PA?l=%^_)O%`(N=ITp>%0c$zbu*ebZHDKgpSf z?S(fw-7N=yvvwDVHJzE8JkZBiQ1vq`njyaRt@`BxsZjswx5t3xZdWb|KTIS1{3v;5c8XWlNl9aSsU zTLj+i5B3KBaYy&S)TKM(ct-4Z89Twu@^|X6*fTr1c=^_n^;>q&e;Iv+?k0P!v$rx) z6O@1Xm69`_4p~ucdd`sOoc^66LQaj3BLe;?d*s+;T+(`*bH@DYB|26ctc_3zT%OvkUU6jsl#=F)hq*eQ`o zKQq_$0n)vhHhf^Uac5Io@7+(@+j_EjL⪙!QN+&(2&_qgZxo0XYb<1H4}G#=0{R9 z_ZY_~t2>Twplux&G`A#Rv_tI08*jAWIOEae7{Fya+@>7s$3RzdUDZy^<+y$)ZrClaf40iJ5FUz*Eg=os_Z|1PIJ(bwk}pd zkUz?a2#g_;#Dol&rpm~GJQz%lJA*V##AM?hUbrV~J%fQW7+u8<4gXc3PDxV9b^p7d z`Fb^#EC^cYkd`7Rc8ODEC`2t*$OK}AN}6oPrg3OocP~4#CFagxxidZN!kKJ4B|&I$ zI(^r!T{P7KO*%=_Qc@MS3MWZHw0c2Nq)b;!a6BMIny!{<2pkuZXc}TRKpXvU%!{5l zu9T@1N&+#xJeHx<0+O+MN$20p7F80VTtIpo?I|R(<|Ra+Qp*UPR)${eimuftcwa|{ z{Y^(8A}Pegyu6rP7Kg(UezU5OM3%jz6RFCSA%?$yd7bYBxfK14M$m7%1 z8e)5jf-V>DR7q1bY4ra*3|%5gVv8l17-M?LSuBht;Yg)PnAFpgA!UgfUUC{)K_mCK Tqo+bdc0eJ4VF7yo#Js-%tl&yN literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon-76x76.png b/assets/static/img/icons/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cc0f35a3bf5f2d5fec3dfdb9caf319af228bab GIT binary patch literal 1977 zcmdUuiC0tC7RC<`wFu>AuK%pWbWKu#HE`s2IQNTDL zRiY>bs(ay4`V|!LjZs=%aiGkWv|6B(8u1tvo4!rX^GI)+ZBL{Ge+~=rC6;O@9)6?4F`ap1As})*Vp|VF&&%j#c{)c4g2B$$4G)- z9DtjSK>Tq?$b`gmkf?wgQz4QG$pw&B4jpTu^G)b-8@e>YEsbzPG9-TkH>=>5X1JvZ z+Gaq?chLC;+;|w0@}N^a#LFS^EOe@ab{C*a19WME&W&(uGxWU&V>M7Q2+Lo<`cW9z z1|Lkqsd=~n7avA5OzDB$lW=|kx;4Y>LHPR|oSughb5OSc2a5u-ursBi{yqT!{9}dP zu8belFQ#<*X5J?nhGrIwoKALhe&ApJvTXVGsyBN0yovV(y=%Unrr+@mc{c1Lti(B+ z@1~5_VIF!B+dY_k)vw13uwr?P=gxQlJ`Y}V{@(T0lsR<+EQ zFge-o4rV0JqlKZLGx;5UBFAh7=^=#UpT??YVvh~)oG5a9xqBicWn4_`;i$WRy{hdV zots+bij2HP`@+0^6HSzvOLh83-8E|E&MkI0+{IHz^>vo7fxCNa%e1UyY9;TgwHl8L z@0t{D`@=0Ds68^23i_vhE>$zC>@_t#)SRkLLNz0>8j%+4bv@c_lTl}R-qAesyXMCt z(B7e#VSiLcy^xz>sJz}&SazvS)h!^6ge0P}lDie-DwzU%(On@?tva0d=GOxzlaHQICIv@L(|`M_q5XNE`Xk?{2va(C;eY$WCY zT6`ydy}-3xu3E-%r)`rk2cY_AOfVBB^&~;neU~e5wNe|j#SvNA z_tsWEVy?5^aPxR!-4WiTEaRu;7SFXbsn^-)iMUxDZnmyIRNg8dE~2VmJDF0BceeJL zcD6l_PaEQ~dUzFC?ZTu!(|kYOH}Bg=@CMhWvwkZYzTm%$(CN#M^6^TpAX_V=SN?PU zn9=L$@t>Nsx^ack^pZ2=gsS}2Q-30vrxlN#w;3M1p{P*(vD(b>K_jVgecM%}o?|gHS0&KuKQo1{p+0AqBHc8tw~qn3PW#t}y%{I-g z(xF3p%Q6$YLdq0KpytPxv06(V?&ZFQ`%Ssc`Pd(8gSzcNBe^J_&Wqz?3D_Y-2U`Ri zBo2{6x1-VR$r}-bjv!4Z*A)GiKq8G43-<}*%po!c#K43|>LcTXw zDCX_8qTn6yR9l)A){>|Ti0M0sw^+hQ_s8(TU#lX-L=v^ z@Aw3WllcH)FtV>Wzr?13-kA#YX90mYijQrdAc;n!q(Xv#yHCuMM#mHWb1{U7h)4=I wg2W{eX#z5tM2>La@ghk)dwYaO<{~r!9#i14^~JU-I9Lb3a`R!9Gs0#60tLv6i~s-t literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/apple-touch-icon.png b/assets/static/img/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..685cdea9d5cf74acf3f02f345faefceab921cf74 GIT binary patch literal 4299 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 literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/favicon-16x16.png b/assets/static/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..8de7c05e09c2fe972e855eb61fe532a5f4e3fe88 GIT binary patch literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5lt>Hk z32_C|nw9@aKo$SBs{iY@|2LfUU$^bQ#j5{y`~N!}{%^DWzr)f0c1Ql(ANlWiUSRiH`Sg$ENc|+D8-oM?e3zm zIoq}Y$l)yTh%9DcP>%y)#`6aw`hbFso-U3d5|>l`-Gz=Q@ECJ42IW>YO!)NQU+=lA zd8QjL!wrK^o*kY2%*}2yLyUu%&v_ZK`RIAvipVy3s3f_D>*P;?b?1NEnX)^xb8OmJlYcmTk?KY6xl6g!X)R>r2<1_o9J z21mM;mZNCM%}>cptHiBg>$O?ZKn-pn8;bMOO3D+9QW-pR6Vp?D6Vo%3vlYzr%=IjE zEfs)Pn&=vs>KYm;1R9ztWR#Q?Sn2DRmzV2hf>Z-BP_w?G3KBtRyHWR&J6 zSy{Q{Czs}?=9O4k1pt*6GZ-%azgr(o4cJaAtBlml^o$Y)LrWumhN4!W8gV3ZplZT1 zQ%W*GN-nQaL{j3LnVVWtS&+&Ac9niXUb_9JFh4YNd_#b$7z|A;Ee$P9&CN{% zc8InCmGC2(6P#I<%3$E+G-Z+98=zDel2mArCqr6hPAbs*`nh=}Ir-`OX^CZ-$@zK3 z`iO|pPfAKLOH49JG%>VHGc`3aO)^hTPBBR~Ha18$O*F7f(*x?z1G=y9_|y=f4Gf;H KelF{r5}E)TExH@o}!et-Mk?lXjj z1li79JQE>gD+~@4#yu6-C?GX*>VCK)4mU#cdxKmHhcDC}(=NygF zI`!d}(`0Lc0yTBh(P?}zBR+UTB0}z)%`vU5De@pf7PEzc{u1_eP5#bJ^TX_nZL5r; zd@JIuE6<-5e=F>|xpnb9>-z$}-4mJh{6*r8>Yn;iPF>ZhR+ow4)(I0Qu{A|cCGx9A zeXF{Lx9e-Z=sk{ZI1^^qF15}4!7*WHmdK{@+GF=+;XBgGkZ;N0t`05p&lcIIJ1%0s z?!Mg@WNV6B9;0Mh^?8P_VqwR^BGz~~*mM>xDJhT~leCXT)Q5}HeLS~YKCkJv-tB~f zk_}sQ22WCMi<|Qe1K*;gvUH&F>ADL-_a0T=`TIVrY;1MK&%`Waza|`~Oh7dA!-Ep!`}s#A8PP=~t^g8$GtS z|8bVV$u_??Yr}$eaoNy=mS%ytrc|%^qa&=s z)V+_QFMG2~HW}NCO%1-OTfJk7TOS_UX?!#`(nIShEckTSWYnpqBa<%n)#DjCx*7-k zvbbS_NK7Hclw5g&5>LpBLS+#tc&AIKOs*G)OJjUQp>QdbEBjq5{w2`p6lztVYi4+Er>O}~nG6``Q7SAP< zlarH4YBP-oPLp&Au@ACFa6{y1c9g^=X=Ge(piZ8oQED+RHxx$`5w!y9$nP=lYI3=8 zN_A`;hNv8`xhNqMXB?*Z{LQRaE3h~-(((N=8ys<(f{4@_C6*GeMDKP*j@QQeRY!!p z=OdEf6r$2O94ec^VlhH5+MECRxl???)u~EE2?+T51aBB$ikPyrPAo(!^)@B``ecn3 z+op>ptEAi2a-BAj{LjIVWika*Dx*v3RE~zB~oN5Dbzg-97;?fGD6^G)a@; ze0TP?q=wMDo3nTJ%sF%a%^G@JEz@_?&Q{IV&8#hm5)-@{Gv!XV0_p$P$1k@{XbQ)| zz3?tfYY@YcLo;&{*Vs^dCwvL+7Yl%k92&IQN6Y_{5WcG&_uF0fUMD~dN6n~%HrH5F zOwGvONc*to{&L_xI0_KMk(<}RgZD(3B%b{9zWY$VN}lSlhGIB!^BR-d%eut)=p%W% z?yu+WpN|3JN*p;f%q8Z5ca-{Oj*OFj(SMJ9_7JBU%Ar9U^BBoLO)+c5d>QkH`dxhB z$e}?S{@7pQ<^84OFI~UV{VP2`rRO)_gQf0IzKA*p)cN=QeQTQaSIn*(xzgV)T0D4v E0J`IxjQ{`u literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/msapplication-icon-144x144.png b/assets/static/img/icons/msapplication-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..a7db463fe7640580ee18526375c15995b5338abd GIT binary patch literal 3515 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 NAZxrGuFT9U`5!5klC}T< literal 0 HcmV?d00001 diff --git a/assets/static/img/icons/mstile-150x150.png b/assets/static/img/icons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..8515f250ea71c08ab0d7a74abbd58ce4cf5c6760 GIT binary patch literal 3668 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 literal 0 HcmV?d00001 diff --git a/assets/static/manifest.json b/assets/static/manifest.json new file mode 100644 index 00000000..9d5b3577 --- /dev/null +++ b/assets/static/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "File Browser", + "short_name": "File Browser", + "icons": [ + { + "src": "{{ .BaseURL }}/static/img/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "{{ .BaseURL }}/static/img/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "start_url": "{{ .BaseURL }}/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#2979ff" +} diff --git a/assets/static/share/404.html b/assets/static/share/404.html new file mode 100644 index 00000000..53359493 --- /dev/null +++ b/assets/static/share/404.html @@ -0,0 +1,50 @@ + + + + + + + File Browser + + + + + + + + + + + + + + + + +

404 Not Found

+ + diff --git a/assets/static/share/index.html b/assets/static/share/index.html new file mode 100644 index 00000000..b1f410cb --- /dev/null +++ b/assets/static/share/index.html @@ -0,0 +1,86 @@ + + + + + + + {{ .File.Name }} + + + + + + + + + + + + + + + + + +
Download {{ if .File.IsDir }}Folder{{ else }}File{{ end }}
+
+ {{ if .File.IsDir -}} + + + + + {{ else -}} + + + + + {{ end -}} +

{{ .File.Name }}

+
+
+ + diff --git a/package.json b/package.json new file mode 100644 index 00000000..ca9bee2a --- /dev/null +++ b/package.json @@ -0,0 +1,88 @@ +{ + "name": "filebrowser-vue", + "version": "1.0.0", + "author": "File Browser contributors", + "contributors": [ + "Henrique Dias " + ], + "scripts": { + "dev": "node ./assets/build/dev.js", + "build": "node ./assets/build/build.js", + "lint": "eslint --ext .js,.vue assets/src" + }, + "dependencies": { + "clipboard": "^1.7.1", + "codemirror": "^5.31.0", + "filesize": "^3.5.11", + "js-base64": "^2.4.0", + "moment": "^2.19.2", + "normalize.css": "^7.0.0", + "noty": "^3.2.0-beta", + "vue": "^2.5.8", + "vue-i18n": "^7.3.4", + "vue-router": "^3.0.1", + "vuex": "^3.0.1" + }, + "devDependencies": { + "autoprefixer": "^7.1.6", + "babel-core": "^6.26.0", + "babel-eslint": "^8.0.2", + "babel-loader": "^7.1.2", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1", + "babel-preset-stage-2": "^6.24.1", + "babel-register": "^6.26.0", + "chalk": "^2.3.0", + "connect-history-api-fallback": "^1.5.0", + "copy-webpack-plugin": "^4.2.1", + "css-loader": "^0.28.7", + "eslint": "^4.15.0", + "eslint-config-standard": "^11.0.0-beta.0", + "eslint-friendly-formatter": "^3.0.0", + "eslint-loader": "^1.9.0", + "eslint-plugin-html": "^4.0.0", + "eslint-plugin-import": "^2.8.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.6.0", + "eslint-plugin-standard": "^3.0.1", + "eventsource-polyfill": "^0.9.6", + "express": "^4.16.2", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.5", + "friendly-errors-webpack-plugin": "^1.6.1", + "html-webpack-plugin": "^2.30.1", + "http-proxy-middleware": "^0.17.4", + "opn": "^5.1.0", + "optimize-css-assets-webpack-plugin": "^3.2.0", + "ora": "^1.3.0", + "rimraf": "^2.6.2", + "semver": "^5.4.1", + "shelljs": "^0.8.1", + "sw-precache-webpack-plugin": "^0.11.4", + "uglify-js": "^3.1.10", + "url-loader": "^0.6.2", + "vue-loader": "^14.0.3", + "vue-style-loader": "^3.0.3", + "vue-template-compiler": "^2.5.8", + "webpack": "^3.8.1", + "webpack-bundle-analyzer": "^2.9.1", + "webpack-dev-middleware": "^2.0.4", + "webpack-hot-middleware": "^2.20.0", + "webpack-merge": "^4.1.1", + "yml-loader": "^2.1.0" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} From 1f4d0cc3cdbfd350f000d3792929df49b93ddcbb Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 12:40:20 +0000 Subject: [PATCH 002/134] docs: update --- CONTRIBUTING.md | 10 +++++----- assets/index.html | 5 +++++ assets/src/components/Sidebar.vue | 2 +- assets/src/main.js | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b7e1bab..b238a4ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,13 +2,13 @@ If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: -1. `go get github.com/hacdias/filemanager/cmd/filemanager` -2. `cd $GOPATH/src/github.com/hacdias/filemanager` +1. `go get github.com/filebrowser/filebrowser/cmd/filebrowser` +2. `cd $GOPATH/src/github.com/filebrowser/filebrowser` 3. `npm install` 4. `npm run dev` - regenerates the static assets automatically -5. `go install github.com/hacdias/filemanager/cmd/filemanager` -6. Execute `$GOPATH/bin/filemanager` +5. `go install github.com/filebrowser/filebrowser/cmd/filebrowser` +6. Execute `$GOPATH/bin/filebrowser` The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. -If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/hacdias/filemanager/caddy/filemanager`. +If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/filebrowser/caddy/filemanager`. diff --git a/assets/index.html b/assets/index.html index 8abc3097..d2746211 100644 --- a/assets/index.html +++ b/assets/index.html @@ -4,15 +4,19 @@ + + + File Browser + @@ -22,6 +26,7 @@ + diff --git a/assets/src/components/Sidebar.vue b/assets/src/components/Sidebar.vue index 6c18d1c3..0d754952 100644 --- a/assets/src/components/Sidebar.vue +++ b/assets/src/components/Sidebar.vue @@ -59,7 +59,7 @@

- File Browser v{{ version }} + File Browser v{{ version }} {{ $t('sidebar.help') }}

diff --git a/assets/src/main.js b/assets/src/main.js index b071129c..b0053253 100644 --- a/assets/src/main.js +++ b/assets/src/main.js @@ -32,7 +32,7 @@ Vue.prototype.$showError = function (error) { timeout: null, buttons: [ Noty.button(i18n.t('buttons.reportIssue'), '', function () { - window.open('https://github.com/hacdias/filemanager/issues/new') + window.open('https://github.com/filebrowser/filebrowser/issues/new') }), Noty.button(i18n.t('buttons.close'), '', function () { n.close() From 0595638228022aa16c92407e2f1a12ab620a5654 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:43:54 +0000 Subject: [PATCH 003/134] chore: add circle --- .circleci/config.yml | 22 ++ .gitignore | 70 +++++- .travis.yml | 22 -- CODE_OF_CONDUCT.md | 46 ---- CONTRIBUTING.md | 14 -- LICENSE | 202 ++++++++++++++++++ LICENSE.md | 201 ----------------- assets/build/check-versions.js | 48 ----- {assets/build => build}/build.js | 2 - {assets/build => build}/config.js | 0 {assets/build => build}/dev.js | 2 - {assets/build => build}/service-worker-dev.js | 0 .../build => build}/service-worker-prod.js | 0 {assets/build => build}/utils.js | 0 {assets/build => build}/vue-loader.conf.js | 0 {assets/build => build}/webpack.base.conf.js | 2 +- {assets/build => build}/webpack.dev.conf.js | 2 +- {assets/build => build}/webpack.prod.conf.js | 2 +- assets/index.html => index.html | 0 package.json | 12 +- {assets/src => src}/App.vue | 0 .../assets/fonts/material/icons.woff2 | Bin .../fonts/roboto/medium-cyrillic-ext.woff2 | Bin .../assets/fonts/roboto/medium-cyrillic.woff2 | Bin .../fonts/roboto/medium-greek-ext.woff2 | Bin .../assets/fonts/roboto/medium-greek.woff2 | Bin .../fonts/roboto/medium-latin-ext.woff2 | Bin .../assets/fonts/roboto/medium-latin.woff2 | Bin .../fonts/roboto/medium-vietnamese.woff2 | Bin .../fonts/roboto/normal-cyrillic-ext.woff2 | Bin .../assets/fonts/roboto/normal-cyrillic.woff2 | Bin .../fonts/roboto/normal-greek-ext.woff2 | Bin .../assets/fonts/roboto/normal-greek.woff2 | Bin .../fonts/roboto/normal-latin-ext.woff2 | Bin .../assets/fonts/roboto/normal-latin.woff2 | Bin .../fonts/roboto/normal-vietnamese.woff2 | Bin {assets/src => src}/assets/logo.svg | 0 {assets/src => src}/components/Header.vue | 0 {assets/src => src}/components/Languages.vue | 0 {assets/src => src}/components/Search.vue | 0 {assets/src => src}/components/Sidebar.vue | 0 .../src => src}/components/buttons/Copy.vue | 0 .../src => src}/components/buttons/Delete.vue | 0 .../components/buttons/Download.vue | 0 .../src => src}/components/buttons/Info.vue | 0 .../src => src}/components/buttons/Move.vue | 0 .../src => src}/components/buttons/Rename.vue | 0 .../components/buttons/Schedule.vue | 0 .../src => src}/components/buttons/Share.vue | 0 .../components/buttons/SwitchView.vue | 0 .../src => src}/components/buttons/Upload.vue | 0 .../src => src}/components/files/Editor.vue | 0 .../src => src}/components/files/Listing.vue | 0 .../components/files/ListingItem.vue | 0 .../src => src}/components/files/Preview.vue | 0 .../src => src}/components/prompts/Copy.vue | 0 .../src => src}/components/prompts/Delete.vue | 0 .../components/prompts/Download.vue | 0 .../components/prompts/FileList.vue | 0 .../src => src}/components/prompts/Help.vue | 0 .../src => src}/components/prompts/Info.vue | 0 .../src => src}/components/prompts/Move.vue | 0 .../components/prompts/NewArchetype.vue | 0 .../src => src}/components/prompts/NewDir.vue | 0 .../components/prompts/NewFile.vue | 0 .../components/prompts/Prompts.vue | 0 .../src => src}/components/prompts/Rename.vue | 0 .../components/prompts/Replace.vue | 0 .../components/prompts/Schedule.vue | 0 .../src => src}/components/prompts/Share.vue | 0 {assets/src => src}/css/base.css | 0 {assets/src => src}/css/dashboard.css | 0 {assets/src => src}/css/editor.css | 0 {assets/src => src}/css/fonts.css | 0 {assets/src => src}/css/header.css | 0 {assets/src => src}/css/listing.css | 0 {assets/src => src}/css/login.css | 0 {assets/src => src}/css/mobile.css | 0 {assets/src => src}/css/styles.css | 0 {assets/src => src}/i18n/en.yaml | 0 {assets/src => src}/i18n/es.yaml | 0 {assets/src => src}/i18n/fr.yaml | 0 {assets/src => src}/i18n/index.js | 0 {assets/src => src}/i18n/ja.yaml | 0 {assets/src => src}/i18n/pt.yaml | 0 {assets/src => src}/i18n/zh-cn.yaml | 0 {assets/src => src}/i18n/zh-tw.yaml | 0 {assets/src => src}/main.js | 0 {assets/src => src}/router/index.js | 0 {assets/src => src}/store/getters.js | 0 {assets/src => src}/store/index.js | 0 {assets/src => src}/store/mutations.js | 0 {assets/src => src}/utils/api.js | 0 {assets/src => src}/utils/auth.js | 0 {assets/src => src}/utils/buttons.js | 0 {assets/src => src}/utils/codemirror.js | 0 {assets/src => src}/utils/cookie.js | 0 {assets/src => src}/utils/css.js | 0 {assets/src => src}/utils/url.js | 0 {assets/src => src}/views/Files.vue | 0 {assets/src => src}/views/Layout.vue | 0 {assets/src => src}/views/Login.vue | 0 {assets/src => src}/views/Settings.vue | 0 {assets/src => src}/views/errors/403.vue | 0 {assets/src => src}/views/errors/404.vue | 0 {assets/src => src}/views/errors/500.vue | 0 {assets/src => src}/views/settings/Global.vue | 0 .../src => src}/views/settings/Profile.vue | 0 {assets/src => src}/views/settings/User.vue | 0 {assets/src => src}/views/settings/Users.vue | 0 .../img/icons/android-chrome-192x192.png | Bin .../img/icons/android-chrome-512x512.png | Bin .../img/icons/apple-touch-icon-120x120.png | Bin .../img/icons/apple-touch-icon-152x152.png | Bin .../img/icons/apple-touch-icon-180x180.png | Bin .../img/icons/apple-touch-icon-60x60.png | Bin .../img/icons/apple-touch-icon-76x76.png | Bin .../img/icons/apple-touch-icon.png | Bin .../img/icons/favicon-16x16.png | Bin .../img/icons/favicon-32x32.png | Bin .../static => static}/img/icons/favicon.ico | Bin .../img/icons/msapplication-icon-144x144.png | Bin .../img/icons/mstile-150x150.png | Bin {assets/static => static}/manifest.json | 0 {assets/static => static}/share/404.html | 0 {assets/static => static}/share/index.html | 0 126 files changed, 293 insertions(+), 354 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 .travis.yml delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md create mode 100644 LICENSE delete mode 100644 LICENSE.md delete mode 100644 assets/build/check-versions.js rename {assets/build => build}/build.js (95%) rename {assets/build => build}/config.js (100%) rename {assets/build => build}/dev.js (96%) rename {assets/build => build}/service-worker-dev.js (100%) rename {assets/build => build}/service-worker-prod.js (100%) rename {assets/build => build}/utils.js (100%) rename {assets/build => build}/vue-loader.conf.js (100%) rename {assets/build => build}/webpack.base.conf.js (97%) rename {assets/build => build}/webpack.dev.conf.js (98%) rename {assets/build => build}/webpack.prod.conf.js (99%) rename assets/index.html => index.html (100%) rename {assets/src => src}/App.vue (100%) rename {assets/src => src}/assets/fonts/material/icons.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-cyrillic-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-cyrillic.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-greek-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-greek.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-latin-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-latin.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/medium-vietnamese.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-cyrillic-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-cyrillic.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-greek-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-greek.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-latin-ext.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-latin.woff2 (100%) rename {assets/src => src}/assets/fonts/roboto/normal-vietnamese.woff2 (100%) rename {assets/src => src}/assets/logo.svg (100%) rename {assets/src => src}/components/Header.vue (100%) rename {assets/src => src}/components/Languages.vue (100%) rename {assets/src => src}/components/Search.vue (100%) rename {assets/src => src}/components/Sidebar.vue (100%) rename {assets/src => src}/components/buttons/Copy.vue (100%) rename {assets/src => src}/components/buttons/Delete.vue (100%) rename {assets/src => src}/components/buttons/Download.vue (100%) rename {assets/src => src}/components/buttons/Info.vue (100%) rename {assets/src => src}/components/buttons/Move.vue (100%) rename {assets/src => src}/components/buttons/Rename.vue (100%) rename {assets/src => src}/components/buttons/Schedule.vue (100%) rename {assets/src => src}/components/buttons/Share.vue (100%) rename {assets/src => src}/components/buttons/SwitchView.vue (100%) rename {assets/src => src}/components/buttons/Upload.vue (100%) rename {assets/src => src}/components/files/Editor.vue (100%) rename {assets/src => src}/components/files/Listing.vue (100%) rename {assets/src => src}/components/files/ListingItem.vue (100%) rename {assets/src => src}/components/files/Preview.vue (100%) rename {assets/src => src}/components/prompts/Copy.vue (100%) rename {assets/src => src}/components/prompts/Delete.vue (100%) rename {assets/src => src}/components/prompts/Download.vue (100%) rename {assets/src => src}/components/prompts/FileList.vue (100%) rename {assets/src => src}/components/prompts/Help.vue (100%) rename {assets/src => src}/components/prompts/Info.vue (100%) rename {assets/src => src}/components/prompts/Move.vue (100%) rename {assets/src => src}/components/prompts/NewArchetype.vue (100%) rename {assets/src => src}/components/prompts/NewDir.vue (100%) rename {assets/src => src}/components/prompts/NewFile.vue (100%) rename {assets/src => src}/components/prompts/Prompts.vue (100%) rename {assets/src => src}/components/prompts/Rename.vue (100%) rename {assets/src => src}/components/prompts/Replace.vue (100%) rename {assets/src => src}/components/prompts/Schedule.vue (100%) rename {assets/src => src}/components/prompts/Share.vue (100%) rename {assets/src => src}/css/base.css (100%) rename {assets/src => src}/css/dashboard.css (100%) rename {assets/src => src}/css/editor.css (100%) rename {assets/src => src}/css/fonts.css (100%) rename {assets/src => src}/css/header.css (100%) rename {assets/src => src}/css/listing.css (100%) rename {assets/src => src}/css/login.css (100%) rename {assets/src => src}/css/mobile.css (100%) rename {assets/src => src}/css/styles.css (100%) rename {assets/src => src}/i18n/en.yaml (100%) rename {assets/src => src}/i18n/es.yaml (100%) rename {assets/src => src}/i18n/fr.yaml (100%) rename {assets/src => src}/i18n/index.js (100%) rename {assets/src => src}/i18n/ja.yaml (100%) rename {assets/src => src}/i18n/pt.yaml (100%) rename {assets/src => src}/i18n/zh-cn.yaml (100%) rename {assets/src => src}/i18n/zh-tw.yaml (100%) rename {assets/src => src}/main.js (100%) rename {assets/src => src}/router/index.js (100%) rename {assets/src => src}/store/getters.js (100%) rename {assets/src => src}/store/index.js (100%) rename {assets/src => src}/store/mutations.js (100%) rename {assets/src => src}/utils/api.js (100%) rename {assets/src => src}/utils/auth.js (100%) rename {assets/src => src}/utils/buttons.js (100%) rename {assets/src => src}/utils/codemirror.js (100%) rename {assets/src => src}/utils/cookie.js (100%) rename {assets/src => src}/utils/css.js (100%) rename {assets/src => src}/utils/url.js (100%) rename {assets/src => src}/views/Files.vue (100%) rename {assets/src => src}/views/Layout.vue (100%) rename {assets/src => src}/views/Login.vue (100%) rename {assets/src => src}/views/Settings.vue (100%) rename {assets/src => src}/views/errors/403.vue (100%) rename {assets/src => src}/views/errors/404.vue (100%) rename {assets/src => src}/views/errors/500.vue (100%) rename {assets/src => src}/views/settings/Global.vue (100%) rename {assets/src => src}/views/settings/Profile.vue (100%) rename {assets/src => src}/views/settings/User.vue (100%) rename {assets/src => src}/views/settings/Users.vue (100%) rename {assets/static => static}/img/icons/android-chrome-192x192.png (100%) rename {assets/static => static}/img/icons/android-chrome-512x512.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-120x120.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-152x152.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-180x180.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-60x60.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon-76x76.png (100%) rename {assets/static => static}/img/icons/apple-touch-icon.png (100%) rename {assets/static => static}/img/icons/favicon-16x16.png (100%) rename {assets/static => static}/img/icons/favicon-32x32.png (100%) rename {assets/static => static}/img/icons/favicon.ico (100%) rename {assets/static => static}/img/icons/msapplication-icon-144x144.png (100%) rename {assets/static => static}/img/icons/mstile-150x150.png (100%) rename {assets/static => static}/manifest.json (100%) rename {assets/static => static}/share/404.html (100%) rename {assets/static => static}/share/index.html (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..f193814a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,22 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/node:9.5 + working_directory: ~/repo + + steps: + - checkout + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + - v1-dependencies- + - run: yarn install + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + - run: | + yarn lint + yarn build diff --git a/.gitignore b/.gitignore index c4bbc189..4908e2d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,66 @@ -.DS_Store -node_modules/ -*/dist/* -*.db -*.db.lock +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* -.idea -.vscode + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + package-lock.json -yarn.lock \ No newline at end of file +yarn.lock + +dist/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7092fe76..00000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: go - -go: 1.x - -env: - - "PATH=/home/travis/gopath/bin:$PATH" - -install: - - go get ./... - # Install gometalinter and certain linters - - go get github.com/alecthomas/gometalinter - - go get github.com/client9/misspell/cmd/misspell - - go get github.com/gordonklaus/ineffassign - - go get golang.org/x/tools/cmd/goimports - - go get github.com/tsenart/deadcode - -script: - - gometalinter --disable-all -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --exclude="rice-box.go" --tests ./... - - go test ./... -timeout 30s - -after_success: - - test -n "$TRAVIS_TAG" && curl -sL https://git.io/goreleaser | bash diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index f0cc78e8..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hacdias@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index b238a4ba..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,14 +0,0 @@ -# Contributing - -If you want to contribute or want to build the code from source, you will need to have the most recent version of Go and, if you want to change the static assets (JS, CSS, ...), Node.js installed on your computer. To start developing, you just need to do the following: - -1. `go get github.com/filebrowser/filebrowser/cmd/filebrowser` -2. `cd $GOPATH/src/github.com/filebrowser/filebrowser` -3. `npm install` -4. `npm run dev` - regenerates the static assets automatically -5. `go install github.com/filebrowser/filebrowser/cmd/filebrowser` -6. Execute `$GOPATH/bin/filebrowser` - -The steps 3 and 4 are only required **if you want to develop the front-end**. Otherwise, you can ignore them. Before pulling, if you made any change on assets folder, you must run the `build.sh` script on the root of this repository. - -If you are using this as a Caddy plugin, you should use its [official instructions for plugins](https://github.com/mholt/caddy/wiki/Extending-Caddy#2-plug-in-your-plugin) and import `github.com/filebrowser/caddy/filemanager`. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f9aa7c03 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 File Browser contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 5e0fd33c..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "{}" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - -Copyright {yyyy} {name of copyright owner} - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/assets/build/check-versions.js b/assets/build/check-versions.js deleted file mode 100644 index f9133e24..00000000 --- a/assets/build/check-versions.js +++ /dev/null @@ -1,48 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../../package.json') -var shell = require('shelljs') -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - } -] - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }) -} - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/assets/build/build.js b/build/build.js similarity index 95% rename from assets/build/build.js rename to build/build.js index c7c0fbdb..46f904d6 100644 --- a/assets/build/build.js +++ b/build/build.js @@ -1,5 +1,3 @@ -require('./check-versions')() - process.env.NODE_ENV = 'production' var ora = require('ora') diff --git a/assets/build/config.js b/build/config.js similarity index 100% rename from assets/build/config.js rename to build/config.js diff --git a/assets/build/dev.js b/build/dev.js similarity index 96% rename from assets/build/dev.js rename to build/dev.js index 9b42a437..12bc7989 100644 --- a/assets/build/dev.js +++ b/build/dev.js @@ -1,5 +1,3 @@ -require('./check-versions')() - process.env.NODE_ENV = 'development' var rm = require('rimraf') diff --git a/assets/build/service-worker-dev.js b/build/service-worker-dev.js similarity index 100% rename from assets/build/service-worker-dev.js rename to build/service-worker-dev.js diff --git a/assets/build/service-worker-prod.js b/build/service-worker-prod.js similarity index 100% rename from assets/build/service-worker-prod.js rename to build/service-worker-prod.js diff --git a/assets/build/utils.js b/build/utils.js similarity index 100% rename from assets/build/utils.js rename to build/utils.js diff --git a/assets/build/vue-loader.conf.js b/build/vue-loader.conf.js similarity index 100% rename from assets/build/vue-loader.conf.js rename to build/vue-loader.conf.js diff --git a/assets/build/webpack.base.conf.js b/build/webpack.base.conf.js similarity index 97% rename from assets/build/webpack.base.conf.js rename to build/webpack.base.conf.js index f8188022..79b5663b 100644 --- a/assets/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -9,7 +9,7 @@ function resolve (dir) { module.exports = { entry: { - app: './assets/src/main.js' + app: './src/main.js' }, output: { path: config.assetsRoot, diff --git a/assets/build/webpack.dev.conf.js b/build/webpack.dev.conf.js similarity index 98% rename from assets/build/webpack.dev.conf.js rename to build/webpack.dev.conf.js index dd75ac4e..6497edea 100644 --- a/assets/build/webpack.dev.conf.js +++ b/build/webpack.dev.conf.js @@ -39,7 +39,7 @@ module.exports = merge(baseWebpackConfig, { // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.index, - template: 'assets/index.html', + template: './index.html', inject: true, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', diff --git a/assets/build/webpack.prod.conf.js b/build/webpack.prod.conf.js similarity index 99% rename from assets/build/webpack.prod.conf.js rename to build/webpack.prod.conf.js index bf992924..7b4b21c4 100644 --- a/assets/build/webpack.prod.conf.js +++ b/build/webpack.prod.conf.js @@ -72,7 +72,7 @@ var webpackConfig = merge(baseWebpackConfig, { // see https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: config.index, - template: 'assets/index.html', + template: './index.html', inject: true, minify: { removeComments: true, diff --git a/assets/index.html b/index.html similarity index 100% rename from assets/index.html rename to index.html diff --git a/package.json b/package.json index ca9bee2a..3620934f 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "filebrowser-vue", + "name": "filebrowser-frontend", "version": "1.0.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " ], "scripts": { - "dev": "node ./assets/build/dev.js", - "build": "node ./assets/build/build.js", - "lint": "eslint --ext .js,.vue assets/src" + "dev": "node ./build/dev.js", + "build": "node ./build/build.js", + "lint": "eslint --ext .js,.vue src" }, "dependencies": { "clipboard": "^1.7.1", @@ -71,10 +71,6 @@ "webpack-merge": "^4.1.1", "yml-loader": "^2.1.0" }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, "postcss": { "plugins": { "autoprefixer": {} diff --git a/assets/src/App.vue b/src/App.vue similarity index 100% rename from assets/src/App.vue rename to src/App.vue diff --git a/assets/src/assets/fonts/material/icons.woff2 b/src/assets/fonts/material/icons.woff2 similarity index 100% rename from assets/src/assets/fonts/material/icons.woff2 rename to src/assets/fonts/material/icons.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 b/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-cyrillic-ext.woff2 rename to src/assets/fonts/roboto/medium-cyrillic-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-cyrillic.woff2 b/src/assets/fonts/roboto/medium-cyrillic.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-cyrillic.woff2 rename to src/assets/fonts/roboto/medium-cyrillic.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-greek-ext.woff2 b/src/assets/fonts/roboto/medium-greek-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-greek-ext.woff2 rename to src/assets/fonts/roboto/medium-greek-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-greek.woff2 b/src/assets/fonts/roboto/medium-greek.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-greek.woff2 rename to src/assets/fonts/roboto/medium-greek.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-latin-ext.woff2 b/src/assets/fonts/roboto/medium-latin-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-latin-ext.woff2 rename to src/assets/fonts/roboto/medium-latin-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-latin.woff2 b/src/assets/fonts/roboto/medium-latin.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-latin.woff2 rename to src/assets/fonts/roboto/medium-latin.woff2 diff --git a/assets/src/assets/fonts/roboto/medium-vietnamese.woff2 b/src/assets/fonts/roboto/medium-vietnamese.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/medium-vietnamese.woff2 rename to src/assets/fonts/roboto/medium-vietnamese.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 b/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-cyrillic-ext.woff2 rename to src/assets/fonts/roboto/normal-cyrillic-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-cyrillic.woff2 b/src/assets/fonts/roboto/normal-cyrillic.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-cyrillic.woff2 rename to src/assets/fonts/roboto/normal-cyrillic.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-greek-ext.woff2 b/src/assets/fonts/roboto/normal-greek-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-greek-ext.woff2 rename to src/assets/fonts/roboto/normal-greek-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-greek.woff2 b/src/assets/fonts/roboto/normal-greek.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-greek.woff2 rename to src/assets/fonts/roboto/normal-greek.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-latin-ext.woff2 b/src/assets/fonts/roboto/normal-latin-ext.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-latin-ext.woff2 rename to src/assets/fonts/roboto/normal-latin-ext.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-latin.woff2 b/src/assets/fonts/roboto/normal-latin.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-latin.woff2 rename to src/assets/fonts/roboto/normal-latin.woff2 diff --git a/assets/src/assets/fonts/roboto/normal-vietnamese.woff2 b/src/assets/fonts/roboto/normal-vietnamese.woff2 similarity index 100% rename from assets/src/assets/fonts/roboto/normal-vietnamese.woff2 rename to src/assets/fonts/roboto/normal-vietnamese.woff2 diff --git a/assets/src/assets/logo.svg b/src/assets/logo.svg similarity index 100% rename from assets/src/assets/logo.svg rename to src/assets/logo.svg diff --git a/assets/src/components/Header.vue b/src/components/Header.vue similarity index 100% rename from assets/src/components/Header.vue rename to src/components/Header.vue diff --git a/assets/src/components/Languages.vue b/src/components/Languages.vue similarity index 100% rename from assets/src/components/Languages.vue rename to src/components/Languages.vue diff --git a/assets/src/components/Search.vue b/src/components/Search.vue similarity index 100% rename from assets/src/components/Search.vue rename to src/components/Search.vue diff --git a/assets/src/components/Sidebar.vue b/src/components/Sidebar.vue similarity index 100% rename from assets/src/components/Sidebar.vue rename to src/components/Sidebar.vue diff --git a/assets/src/components/buttons/Copy.vue b/src/components/buttons/Copy.vue similarity index 100% rename from assets/src/components/buttons/Copy.vue rename to src/components/buttons/Copy.vue diff --git a/assets/src/components/buttons/Delete.vue b/src/components/buttons/Delete.vue similarity index 100% rename from assets/src/components/buttons/Delete.vue rename to src/components/buttons/Delete.vue diff --git a/assets/src/components/buttons/Download.vue b/src/components/buttons/Download.vue similarity index 100% rename from assets/src/components/buttons/Download.vue rename to src/components/buttons/Download.vue diff --git a/assets/src/components/buttons/Info.vue b/src/components/buttons/Info.vue similarity index 100% rename from assets/src/components/buttons/Info.vue rename to src/components/buttons/Info.vue diff --git a/assets/src/components/buttons/Move.vue b/src/components/buttons/Move.vue similarity index 100% rename from assets/src/components/buttons/Move.vue rename to src/components/buttons/Move.vue diff --git a/assets/src/components/buttons/Rename.vue b/src/components/buttons/Rename.vue similarity index 100% rename from assets/src/components/buttons/Rename.vue rename to src/components/buttons/Rename.vue diff --git a/assets/src/components/buttons/Schedule.vue b/src/components/buttons/Schedule.vue similarity index 100% rename from assets/src/components/buttons/Schedule.vue rename to src/components/buttons/Schedule.vue diff --git a/assets/src/components/buttons/Share.vue b/src/components/buttons/Share.vue similarity index 100% rename from assets/src/components/buttons/Share.vue rename to src/components/buttons/Share.vue diff --git a/assets/src/components/buttons/SwitchView.vue b/src/components/buttons/SwitchView.vue similarity index 100% rename from assets/src/components/buttons/SwitchView.vue rename to src/components/buttons/SwitchView.vue diff --git a/assets/src/components/buttons/Upload.vue b/src/components/buttons/Upload.vue similarity index 100% rename from assets/src/components/buttons/Upload.vue rename to src/components/buttons/Upload.vue diff --git a/assets/src/components/files/Editor.vue b/src/components/files/Editor.vue similarity index 100% rename from assets/src/components/files/Editor.vue rename to src/components/files/Editor.vue diff --git a/assets/src/components/files/Listing.vue b/src/components/files/Listing.vue similarity index 100% rename from assets/src/components/files/Listing.vue rename to src/components/files/Listing.vue diff --git a/assets/src/components/files/ListingItem.vue b/src/components/files/ListingItem.vue similarity index 100% rename from assets/src/components/files/ListingItem.vue rename to src/components/files/ListingItem.vue diff --git a/assets/src/components/files/Preview.vue b/src/components/files/Preview.vue similarity index 100% rename from assets/src/components/files/Preview.vue rename to src/components/files/Preview.vue diff --git a/assets/src/components/prompts/Copy.vue b/src/components/prompts/Copy.vue similarity index 100% rename from assets/src/components/prompts/Copy.vue rename to src/components/prompts/Copy.vue diff --git a/assets/src/components/prompts/Delete.vue b/src/components/prompts/Delete.vue similarity index 100% rename from assets/src/components/prompts/Delete.vue rename to src/components/prompts/Delete.vue diff --git a/assets/src/components/prompts/Download.vue b/src/components/prompts/Download.vue similarity index 100% rename from assets/src/components/prompts/Download.vue rename to src/components/prompts/Download.vue diff --git a/assets/src/components/prompts/FileList.vue b/src/components/prompts/FileList.vue similarity index 100% rename from assets/src/components/prompts/FileList.vue rename to src/components/prompts/FileList.vue diff --git a/assets/src/components/prompts/Help.vue b/src/components/prompts/Help.vue similarity index 100% rename from assets/src/components/prompts/Help.vue rename to src/components/prompts/Help.vue diff --git a/assets/src/components/prompts/Info.vue b/src/components/prompts/Info.vue similarity index 100% rename from assets/src/components/prompts/Info.vue rename to src/components/prompts/Info.vue diff --git a/assets/src/components/prompts/Move.vue b/src/components/prompts/Move.vue similarity index 100% rename from assets/src/components/prompts/Move.vue rename to src/components/prompts/Move.vue diff --git a/assets/src/components/prompts/NewArchetype.vue b/src/components/prompts/NewArchetype.vue similarity index 100% rename from assets/src/components/prompts/NewArchetype.vue rename to src/components/prompts/NewArchetype.vue diff --git a/assets/src/components/prompts/NewDir.vue b/src/components/prompts/NewDir.vue similarity index 100% rename from assets/src/components/prompts/NewDir.vue rename to src/components/prompts/NewDir.vue diff --git a/assets/src/components/prompts/NewFile.vue b/src/components/prompts/NewFile.vue similarity index 100% rename from assets/src/components/prompts/NewFile.vue rename to src/components/prompts/NewFile.vue diff --git a/assets/src/components/prompts/Prompts.vue b/src/components/prompts/Prompts.vue similarity index 100% rename from assets/src/components/prompts/Prompts.vue rename to src/components/prompts/Prompts.vue diff --git a/assets/src/components/prompts/Rename.vue b/src/components/prompts/Rename.vue similarity index 100% rename from assets/src/components/prompts/Rename.vue rename to src/components/prompts/Rename.vue diff --git a/assets/src/components/prompts/Replace.vue b/src/components/prompts/Replace.vue similarity index 100% rename from assets/src/components/prompts/Replace.vue rename to src/components/prompts/Replace.vue diff --git a/assets/src/components/prompts/Schedule.vue b/src/components/prompts/Schedule.vue similarity index 100% rename from assets/src/components/prompts/Schedule.vue rename to src/components/prompts/Schedule.vue diff --git a/assets/src/components/prompts/Share.vue b/src/components/prompts/Share.vue similarity index 100% rename from assets/src/components/prompts/Share.vue rename to src/components/prompts/Share.vue diff --git a/assets/src/css/base.css b/src/css/base.css similarity index 100% rename from assets/src/css/base.css rename to src/css/base.css diff --git a/assets/src/css/dashboard.css b/src/css/dashboard.css similarity index 100% rename from assets/src/css/dashboard.css rename to src/css/dashboard.css diff --git a/assets/src/css/editor.css b/src/css/editor.css similarity index 100% rename from assets/src/css/editor.css rename to src/css/editor.css diff --git a/assets/src/css/fonts.css b/src/css/fonts.css similarity index 100% rename from assets/src/css/fonts.css rename to src/css/fonts.css diff --git a/assets/src/css/header.css b/src/css/header.css similarity index 100% rename from assets/src/css/header.css rename to src/css/header.css diff --git a/assets/src/css/listing.css b/src/css/listing.css similarity index 100% rename from assets/src/css/listing.css rename to src/css/listing.css diff --git a/assets/src/css/login.css b/src/css/login.css similarity index 100% rename from assets/src/css/login.css rename to src/css/login.css diff --git a/assets/src/css/mobile.css b/src/css/mobile.css similarity index 100% rename from assets/src/css/mobile.css rename to src/css/mobile.css diff --git a/assets/src/css/styles.css b/src/css/styles.css similarity index 100% rename from assets/src/css/styles.css rename to src/css/styles.css diff --git a/assets/src/i18n/en.yaml b/src/i18n/en.yaml similarity index 100% rename from assets/src/i18n/en.yaml rename to src/i18n/en.yaml diff --git a/assets/src/i18n/es.yaml b/src/i18n/es.yaml similarity index 100% rename from assets/src/i18n/es.yaml rename to src/i18n/es.yaml diff --git a/assets/src/i18n/fr.yaml b/src/i18n/fr.yaml similarity index 100% rename from assets/src/i18n/fr.yaml rename to src/i18n/fr.yaml diff --git a/assets/src/i18n/index.js b/src/i18n/index.js similarity index 100% rename from assets/src/i18n/index.js rename to src/i18n/index.js diff --git a/assets/src/i18n/ja.yaml b/src/i18n/ja.yaml similarity index 100% rename from assets/src/i18n/ja.yaml rename to src/i18n/ja.yaml diff --git a/assets/src/i18n/pt.yaml b/src/i18n/pt.yaml similarity index 100% rename from assets/src/i18n/pt.yaml rename to src/i18n/pt.yaml diff --git a/assets/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml similarity index 100% rename from assets/src/i18n/zh-cn.yaml rename to src/i18n/zh-cn.yaml diff --git a/assets/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml similarity index 100% rename from assets/src/i18n/zh-tw.yaml rename to src/i18n/zh-tw.yaml diff --git a/assets/src/main.js b/src/main.js similarity index 100% rename from assets/src/main.js rename to src/main.js diff --git a/assets/src/router/index.js b/src/router/index.js similarity index 100% rename from assets/src/router/index.js rename to src/router/index.js diff --git a/assets/src/store/getters.js b/src/store/getters.js similarity index 100% rename from assets/src/store/getters.js rename to src/store/getters.js diff --git a/assets/src/store/index.js b/src/store/index.js similarity index 100% rename from assets/src/store/index.js rename to src/store/index.js diff --git a/assets/src/store/mutations.js b/src/store/mutations.js similarity index 100% rename from assets/src/store/mutations.js rename to src/store/mutations.js diff --git a/assets/src/utils/api.js b/src/utils/api.js similarity index 100% rename from assets/src/utils/api.js rename to src/utils/api.js diff --git a/assets/src/utils/auth.js b/src/utils/auth.js similarity index 100% rename from assets/src/utils/auth.js rename to src/utils/auth.js diff --git a/assets/src/utils/buttons.js b/src/utils/buttons.js similarity index 100% rename from assets/src/utils/buttons.js rename to src/utils/buttons.js diff --git a/assets/src/utils/codemirror.js b/src/utils/codemirror.js similarity index 100% rename from assets/src/utils/codemirror.js rename to src/utils/codemirror.js diff --git a/assets/src/utils/cookie.js b/src/utils/cookie.js similarity index 100% rename from assets/src/utils/cookie.js rename to src/utils/cookie.js diff --git a/assets/src/utils/css.js b/src/utils/css.js similarity index 100% rename from assets/src/utils/css.js rename to src/utils/css.js diff --git a/assets/src/utils/url.js b/src/utils/url.js similarity index 100% rename from assets/src/utils/url.js rename to src/utils/url.js diff --git a/assets/src/views/Files.vue b/src/views/Files.vue similarity index 100% rename from assets/src/views/Files.vue rename to src/views/Files.vue diff --git a/assets/src/views/Layout.vue b/src/views/Layout.vue similarity index 100% rename from assets/src/views/Layout.vue rename to src/views/Layout.vue diff --git a/assets/src/views/Login.vue b/src/views/Login.vue similarity index 100% rename from assets/src/views/Login.vue rename to src/views/Login.vue diff --git a/assets/src/views/Settings.vue b/src/views/Settings.vue similarity index 100% rename from assets/src/views/Settings.vue rename to src/views/Settings.vue diff --git a/assets/src/views/errors/403.vue b/src/views/errors/403.vue similarity index 100% rename from assets/src/views/errors/403.vue rename to src/views/errors/403.vue diff --git a/assets/src/views/errors/404.vue b/src/views/errors/404.vue similarity index 100% rename from assets/src/views/errors/404.vue rename to src/views/errors/404.vue diff --git a/assets/src/views/errors/500.vue b/src/views/errors/500.vue similarity index 100% rename from assets/src/views/errors/500.vue rename to src/views/errors/500.vue diff --git a/assets/src/views/settings/Global.vue b/src/views/settings/Global.vue similarity index 100% rename from assets/src/views/settings/Global.vue rename to src/views/settings/Global.vue diff --git a/assets/src/views/settings/Profile.vue b/src/views/settings/Profile.vue similarity index 100% rename from assets/src/views/settings/Profile.vue rename to src/views/settings/Profile.vue diff --git a/assets/src/views/settings/User.vue b/src/views/settings/User.vue similarity index 100% rename from assets/src/views/settings/User.vue rename to src/views/settings/User.vue diff --git a/assets/src/views/settings/Users.vue b/src/views/settings/Users.vue similarity index 100% rename from assets/src/views/settings/Users.vue rename to src/views/settings/Users.vue diff --git a/assets/static/img/icons/android-chrome-192x192.png b/static/img/icons/android-chrome-192x192.png similarity index 100% rename from assets/static/img/icons/android-chrome-192x192.png rename to static/img/icons/android-chrome-192x192.png diff --git a/assets/static/img/icons/android-chrome-512x512.png b/static/img/icons/android-chrome-512x512.png similarity index 100% rename from assets/static/img/icons/android-chrome-512x512.png rename to static/img/icons/android-chrome-512x512.png diff --git a/assets/static/img/icons/apple-touch-icon-120x120.png b/static/img/icons/apple-touch-icon-120x120.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-120x120.png rename to static/img/icons/apple-touch-icon-120x120.png diff --git a/assets/static/img/icons/apple-touch-icon-152x152.png b/static/img/icons/apple-touch-icon-152x152.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-152x152.png rename to static/img/icons/apple-touch-icon-152x152.png diff --git a/assets/static/img/icons/apple-touch-icon-180x180.png b/static/img/icons/apple-touch-icon-180x180.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-180x180.png rename to static/img/icons/apple-touch-icon-180x180.png diff --git a/assets/static/img/icons/apple-touch-icon-60x60.png b/static/img/icons/apple-touch-icon-60x60.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-60x60.png rename to static/img/icons/apple-touch-icon-60x60.png diff --git a/assets/static/img/icons/apple-touch-icon-76x76.png b/static/img/icons/apple-touch-icon-76x76.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon-76x76.png rename to static/img/icons/apple-touch-icon-76x76.png diff --git a/assets/static/img/icons/apple-touch-icon.png b/static/img/icons/apple-touch-icon.png similarity index 100% rename from assets/static/img/icons/apple-touch-icon.png rename to static/img/icons/apple-touch-icon.png diff --git a/assets/static/img/icons/favicon-16x16.png b/static/img/icons/favicon-16x16.png similarity index 100% rename from assets/static/img/icons/favicon-16x16.png rename to static/img/icons/favicon-16x16.png diff --git a/assets/static/img/icons/favicon-32x32.png b/static/img/icons/favicon-32x32.png similarity index 100% rename from assets/static/img/icons/favicon-32x32.png rename to static/img/icons/favicon-32x32.png diff --git a/assets/static/img/icons/favicon.ico b/static/img/icons/favicon.ico similarity index 100% rename from assets/static/img/icons/favicon.ico rename to static/img/icons/favicon.ico diff --git a/assets/static/img/icons/msapplication-icon-144x144.png b/static/img/icons/msapplication-icon-144x144.png similarity index 100% rename from assets/static/img/icons/msapplication-icon-144x144.png rename to static/img/icons/msapplication-icon-144x144.png diff --git a/assets/static/img/icons/mstile-150x150.png b/static/img/icons/mstile-150x150.png similarity index 100% rename from assets/static/img/icons/mstile-150x150.png rename to static/img/icons/mstile-150x150.png diff --git a/assets/static/manifest.json b/static/manifest.json similarity index 100% rename from assets/static/manifest.json rename to static/manifest.json diff --git a/assets/static/share/404.html b/static/share/404.html similarity index 100% rename from assets/static/share/404.html rename to static/share/404.html diff --git a/assets/static/share/index.html b/static/share/index.html similarity index 100% rename from assets/static/share/index.html rename to static/share/index.html From 9ca02c90edb58d206b927606e5bd9c0ccc2a43ae Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:46:05 +0000 Subject: [PATCH 004/134] chore: fix ci --- .circleci/config.yml | 2 +- LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f193814a..35f851f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: build: docker: - - image: circleci/node:9.5 + - image: circleci/node:9.4 working_directory: ~/repo steps: diff --git a/LICENSE b/LICENSE index f9aa7c03..6011a2a4 100644 --- a/LICENSE +++ b/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2017 File Browser contributors + Copyright 2018 File Browser contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From ebdf5a0601a42f9c5dc8609a65c4b49fdcefe0ce Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:50:48 +0000 Subject: [PATCH 005/134] docs: update readme --- README.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73012ccc..587e5646 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,25 @@ -# filemanager +# File Browser Front-end -TODO +[![CircleCI](https://img.shields.io/circleci/project/github/filebrowser/frontend.svg?style=flat-square)](https://circleci.com/gh/filebrowser/frontend) +[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg)]() +[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +> This is an example file with default selections. + +## Install + +``` +npm install filebrowser-frontend +``` + +## Usage + +This package is not prepared to be used by other projects than [File Browser](https://github.com/filebrowser/filebrowser) itself. + +## Contribute + +Check the [community repository](https://github.com/filebrowser/community) for more information. + +## License + +[Apache 2.0](./LICENSE) File Browser Contributors From 2d5e97e1408c5ee30a2b1e5664986c6e9176bf94 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:51:07 +0000 Subject: [PATCH 006/134] docs: fix npm badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 587e5646..68068b71 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # File Browser Front-end [![CircleCI](https://img.shields.io/circleci/project/github/filebrowser/frontend.svg?style=flat-square)](https://circleci.com/gh/filebrowser/frontend) -[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg)]() +[![npm](https://img.shields.io/npm/v/filebrowser-frontend.svg?style=flat-square)]() [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) > This is an example file with default selections. From a49fb208850b038252ed88f300251e9e17ca99d9 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:52:51 +0000 Subject: [PATCH 007/134] chore: add npmignore --- .npmignore | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..6cf2a6ef --- /dev/null +++ b/.npmignore @@ -0,0 +1,6 @@ +.* +static/ +src/ +.circleci/ +build/ +index.html From a7e4596e97f21a5e3b232d7739436e20fc2ff2d5 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 14:57:55 +0000 Subject: [PATCH 008/134] chore: bump version --- .npmignore | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.npmignore b/.npmignore index 6cf2a6ef..bbf2c8e4 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,4 @@ static/ src/ .circleci/ build/ -index.html +/index.html diff --git a/package.json b/package.json index 3620934f..52425c6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.0", + "version": "1.0.1", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 8c60cc70848ebb56e023a9c7719ac122c6ccd136 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 15:30:19 +0000 Subject: [PATCH 009/134] fix: notification style --- src/css/styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/styles.css b/src/css/styles.css index 69335280..a61aa317 100644 --- a/src/css/styles.css +++ b/src/css/styles.css @@ -1,5 +1,6 @@ @import "~normalize.css/normalize.css"; @import "~noty/lib/noty.css"; +@import "~noty/lib/themes/mint.css"; @import "./fonts.css"; @import "./base.css"; @import "./header.css"; From 02f6b0ec61bed7cd569222a870e49e7c3a4fd591 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 1 Feb 2018 15:30:34 +0000 Subject: [PATCH 010/134] chore: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 52425c6c..9e399a0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.1", + "version": "1.0.2", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From a78e1d504b71c940056b3ce1d8aab0f45530f901 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 3 Feb 2018 00:11:19 +0100 Subject: [PATCH 011/134] =?UTF-8?q?feat:=20add=20German=20translation?= =?UTF-8?q?=C2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Languages.vue | 1 + src/i18n/de.yaml | 199 +++++++++++++++++++++++++++++++++++ src/i18n/en.yaml | 1 + src/i18n/es.yaml | 2 +- src/i18n/fr.yaml | 1 + src/i18n/index.js | 7 +- src/i18n/ja.yaml | 1 + src/i18n/zh-cn.yaml | 1 + src/i18n/zh-tw.yaml | 1 + 9 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 src/i18n/de.yaml diff --git a/src/components/Languages.vue b/src/components/Languages.vue index e40a634d..3e27d6ca 100644 --- a/src/components/Languages.vue +++ b/src/components/Languages.vue @@ -7,6 +7,7 @@ + diff --git a/src/i18n/de.yaml b/src/i18n/de.yaml new file mode 100644 index 00000000..306c28af --- /dev/null +++ b/src/i18n/de.yaml @@ -0,0 +1,199 @@ +permanent: Permanent +buttons: + cancel: Abbrechen + close: Schließen + copy: Kopieren + copyFile: Kopiere Datei + copyToClipboard: In Zwischenablage kopieren + create: Neu + delete: Löschen + download: Downloaden + info: Info + more: mehr + move: Verschieben + moveFile: Verschiebe Datei + new: Neu + next: nächste + ok: OK + replace: Ersetzen + previous: vorherige + rename: umbenennen + reportIssue: Fehler melden + save: Speichern + search: Suchen + select: Auswählen + share: Teilen + publish: Veröffentlichen + selectMultiple: Mehrfachauswahl + schedule: Planung + switchView: Ansicht wechseln + toggleSidebar: Seitenleiste anzeigen + update: Update + upload: Upload + permalink: permanenten Verweis anzeigen +success: + linkCopied: Verweis wurde kopiert ! +errors: + forbidden: Sie verfügen nicht über die nötigen Rechte! + internal: Etwas ist schief gelaufen. + notFound: Dieser Ort kann nicht angezeigt werden. +files: + folders: Ordner + files: Dateien + body: Body + clear: Clear + closePreview: Vorschau schließen + home: Home + lastModified: zuletzt verändert + loading: Lade... + lonely: Hier scheint nichts zu sein... + metadata: Metadaten + multipleSelectionEnabled: Mehrfachauswahl ausgewählt + name: Name + size: Größe + sortByName: Nach Namen sortieren + sortBySize: Nach Größe sortieren + sortByLastModified: Nach Änderungsdatum sortieren +help: + click: wähle Datei oder Ordner + ctrl: + click: markiere mehrere Dateien oder Ordner + f: öffnet eine neue Suche + s: speichert eine Datei oder einen Ordner am akutellen Ort + del: löscht die ausgewählten Elemente + doubleClick: öffnet eine Datei oder einen Ordner + esc: Auswahl zurücksetzen und/oder Dialog schließen + f1: diese Informationsseite + f2: Datei umbenennen + help: Hilfe +login: + password: Passwort + submit: Login + username: Benutzername + wrongCredentials: Falsche Zugangsdaten +prompts: + copy: Kopieren + copyMessage: 'Wählen Sie einen Zielort zum Kopieren:' + currentlyNavigating: 'Aktueller Ort:' + deleteMessageMultiple: Sind Sie sicher, dass Sie {count} Datei(en) löschen möchten? + deleteMessageSingle: Sind Sie sicher, dass Sie diesen Ordner/diese Datei löschen möchten? + deleteTitle: Lösche Dateien + displayName: 'Display Name:' + download: Lade Dateien + downloadMessage: Wählen Sie ein Format zum downloaden aus. + error: Etwas ist schief gelaufen + fileInfo: Dateiinformation + filesSelected: "{count} Dateien ausgewählt." + lastModified: Zuletzt geändert + move: Verschieben + moveMessage: 'Choose new house for your file(s)/folder(s):' + newDir: Neuer Ordner + newDirMessage: Geben Sie den Namen des neuen Ordners an. + newFile: Neue Datei + newFileMessage: Geben Sie den Namen der neuen Datei an. + numberDirs: Anzahl der Ordner + numberFiles: Anzahl der Dateien + replace: Ersetzen + replaceMessage: > + Eine der Datei mit dem gleichen Namen, wie die Sie hochladen wollen, + existiert bereits. Soll die vorhandene Datei ersetzt werden ? + rename: Umbenennen + renameMessage: Fügen Sie einen Namen ein für + show: Anzeigen + size: Größe + schedule: Plan + scheduleMessage: Wählen Sie ein Datum und eine Zeit für die Veröffentlichung dieses Beitrags. + newArchetype: Erstelle neuen Beitrag auf dem Archetyp. Ihre Datei wird im Inhalteordner erstellt. +settings: + admin: Admin + administrator: Administrator + allowCommands: Befehle ausführen + allowEdit: Bearbeiten, Umbenennen und Löschen von Dateien oder Ordnern + allowNew: Erstellen neuer Dateien und Ordner + allowPublish: Veröffentlichen von neuen Beiträgen und Seiten + avoidChanges: "(leer lassen um Änderungen zu vermeiden)" + changePassword: Ändere das Passwort + commands: Befehle + commandsHelp: > + Hier können Befehle benannt werden, die bei Ereignissen ausgeführt werden. + Man schreibt einen Befehl pro Zeile. Wenn ein Befehl einen Dateinamen benötigt, wie vor oder + nach dem Speichern, ist die Umgebungsvariable "FILE" mit dem Pfad der Datei verfügbar. + commandsUpdated: Befehle aktualisiert! + customStylesheet: Individuelles Stylesheet + examples: Beispiele + globalSettings: Globale Einstellungen + language: Sprache + lockPassword: Verhindere, dass der Benutzer sein Passwort ändert + newPassword: Ihr neues Passwort. + newPasswordConfirm: Bestätigen Sie Ihr neues Passwort + newUser: Neuer Benutzer + password: Passwort + passwordUpdated: Passwort aktualisiert! + permissions: Berechtigungen + permissionsHelp: > + Sie können einem Benutzer Administratorrechte einräumen oder die Berechtigunen individuell festlegen. + Wenn Sie "Administrator" auswählen, werden alle anderen Rechte automatisch vergeben. + Die Nutzerverwaltung kann nur durch einen Administrator erfolgen. + profileSettings: Profileinstellungen + ruleExample1: > + Verhindert den Zugang zu dot Dateien (dot Files, wie .git, .gitignore) in allen Ordnern + ruleExample2: blockiert den Zugang auf Dateien mit dem Namen Caddyfile in der Wurzel/Basis des scopes. + rules: Regeln + rulesHelp1: > + Hier können Sie erlaubte und verbotene Aktionen für einen einzelnen Benutzer festlegen. + Bockierte Dateien werden nicht im Listing angezeigt und sind nicht erreichbar für den Nutzer. + Wir unterstützen reguläre Ausdrücke (Regex) und Pfade die relativ zum Benutzerordner sind. + rulesHelp2: > + Jede Regel hat seine eigene Zeile und beginnt mit dem Schlüsselwort {0} oder {1}. + Wenn ein regulärer Ausdruck verwendet wird folgt {2} mit dem Ausdruck oder dem Pfad. + scope: Scope + settingsUpdated: Einstellungen aktualisiert! + user: Benutzer + userCommands: Befehle + userCommandsHelp: > + Eine Liste, mit einem Leerzeichen als Trennung, mit den für diesen Nutzer verfügbaren Befehlen. + Example: + userCreated: Benutzer angelegt! + userDeleted: Benutzer gelöscht! + userManagement: Benutzerverwaltung + username: Nutzername + users: Nutzer + userUpdated: Benutzer aktualisiert! +sidebar: + help: Hilfe + logout: Logout + myFiles: Meine Dateien + newFile: Neue Datei + newFolder: Neuer Ordner + settings: Einstellungen + siteSettings: Seiteneinstellungen + hugoNew: Hugo Neu + preview: Vorschau +search: + images: Bilder + music: Musik + pdf: PDF + pressToExecute: Drücken Sie Enter zum Ausführen. + pressToSearch: Drücken Sie Enter zum Suchen. + search: Suche... + searchOrCommand: Suche oder führe Befehl aus... + searchOrSupportedCommand: 'Suche oder nutze eines Ihrer verfügbaren Befehle:' + type: Tippen und mit Enter bestätigen zum Suchen. + types: Typen + video: Video + writeToSearch: Hier schreiben zum Suchen +languages: + en: English + fr: Français + pt: Português + ja: 日本語 + zhCN: 中文 (简体) + zhTW: 中文 (繁體) + es: Español + de: Deutsch +time: + unit: Zeiteinheit + seconds: Sekunden + minutes: Minuten + hours: Stunden + days: Tage diff --git a/src/i18n/en.yaml b/src/i18n/en.yaml index 1b3ec70e..0e2459d8 100644 --- a/src/i18n/en.yaml +++ b/src/i18n/en.yaml @@ -193,6 +193,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: Time Unit seconds: Seconds diff --git a/src/i18n/es.yaml b/src/i18n/es.yaml index 78e875f1..8fbc2d45 100644 --- a/src/i18n/es.yaml +++ b/src/i18n/es.yaml @@ -193,7 +193,7 @@ languages: ja: 日本語 zhCN: 中文 (简体) zhTW: 中文 (繁體) - + de: Deutsch time: unit: Unidad seconds: Segundos diff --git a/src/i18n/fr.yaml b/src/i18n/fr.yaml index 5d94d5a7..de5c19fd 100644 --- a/src/i18n/fr.yaml +++ b/src/i18n/fr.yaml @@ -186,6 +186,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: Unité de temps seconds: Secondes diff --git a/src/i18n/index.js b/src/i18n/index.js index 7ce5ffe5..789a9533 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -7,6 +7,7 @@ import ja from './ja.yaml' import zhCN from './zh-cn.yaml' import zhTW from './zh-tw.yaml' import es from './es.yaml' +import de from './de.yaml' Vue.use(VueI18n) @@ -37,6 +38,9 @@ export function detectLocale () { case /^es.*/i.test(locale): locale = 'es' break + case /^de.*/i.test(locale): + locale = 'de' + break default: locale = 'en' } @@ -54,7 +58,8 @@ const i18n = new VueI18n({ 'ja': ja, 'zh-cn': zhCN, 'zh-tw': zhTW, - 'es': es + 'es': es, + 'de': de } }) diff --git a/src/i18n/ja.yaml b/src/i18n/ja.yaml index c3d7f3a5..e0348fa3 100644 --- a/src/i18n/ja.yaml +++ b/src/i18n/ja.yaml @@ -193,6 +193,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 時間単位 seconds: 秒 diff --git a/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml index 8ffbaf7e..f28d0d80 100644 --- a/src/i18n/zh-cn.yaml +++ b/src/i18n/zh-cn.yaml @@ -191,6 +191,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 时间单位 seconds: 秒 diff --git a/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml index 2c32caea..5b7b6e28 100644 --- a/src/i18n/zh-tw.yaml +++ b/src/i18n/zh-tw.yaml @@ -191,6 +191,7 @@ languages: zhCN: 中文 (简体) zhTW: 中文 (繁體) es: Español + de: Deutsch time: unit: 時間單位 seconds: 秒 From 441639a8d5fe8a1139f3f8cd1c3985ba79ae45ca Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 3 Feb 2018 00:13:08 +0100 Subject: [PATCH 012/134] chore: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e399a0c..ae6a915a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.2", + "version": "1.0.3", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From cb7fa99fd3199376eb2f94f31e3d621d0ba7a777 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 24 Feb 2018 08:40:46 +0000 Subject: [PATCH 013/134] fix: select last item on mobile --- src/css/mobile.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/css/mobile.css b/src/css/mobile.css index 05d4d46b..2d1e4346 100644 --- a/src/css/mobile.css +++ b/src/css/mobile.css @@ -12,6 +12,9 @@ } @media (max-width: 736px) { + body { + padding-bottom: 5em; + } #more { display: inherit } From 2ca22656d64cfaa0a9e34e0aeafb1e3eb3fac26b Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 24 Feb 2018 08:42:08 +0000 Subject: [PATCH 014/134] chore: bump version to 1.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae6a915a..8eb823bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.3", + "version": "1.0.4", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From fe829aa850b702588ccf92dbec370cedd3fd88a0 Mon Sep 17 00:00:00 2001 From: Equim Date: Sun, 25 Feb 2018 01:29:45 +0800 Subject: [PATCH 015/134] build: also uglify service worker --- build/service-worker-prod.js | 4 ++-- build/webpack.prod.conf.js | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/build/service-worker-prod.js b/build/service-worker-prod.js index 1179ec20..8b8493e6 100644 --- a/build/service-worker-prod.js +++ b/build/service-worker-prod.js @@ -4,7 +4,7 @@ // Check to make sure service workers are supported in the current browser, // and that the current page is accessed from a secure origin. Using a // service worker from an insecure origin will trigger JS console errors. - const isLocalhost = Boolean(window.location.hostname === 'localhost' || + var isLocalhost = Boolean(window.location.hostname === 'localhost' || // [::1] is the IPv6 localhost address. window.location.hostname === '[::1]' || // 127.0.0.1/8 is considered localhost for IPv4. @@ -26,7 +26,7 @@ // i.e. whether there's an existing service worker. if (navigator.serviceWorker.controller) { // The updatefound event implies that registration.installing is set - const installingWorker = registration.installing; + var installingWorker = registration.installing; installingWorker.onstatechange = function() { switch (installingWorker.state) { diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js index 7b4b21c4..9751b880 100644 --- a/build/webpack.prod.conf.js +++ b/build/webpack.prod.conf.js @@ -84,8 +84,16 @@ var webpackConfig = merge(baseWebpackConfig, { }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', - serviceWorkerLoader: `` + serviceWorkerLoader: (() => { + let sw = fs.readFileSync(path.join(__dirname, './service-worker-prod.js'), 'utf-8') + + let result = UglifyJS.minify(sw) + if (result.error == null) { + sw = result.code + } + + return '' + })() }), // split vendor js into its own file new webpack.optimize.CommonsChunkPlugin({ From 8a764ceb67b98c7983c00f757b30c18e8a11cd88 Mon Sep 17 00:00:00 2001 From: Equim Date: Wed, 28 Feb 2018 01:08:14 +0800 Subject: [PATCH 016/134] feat: varied recaptcha host --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index d2746211..cd8446db 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ {{ if .ReCaptcha -}} - + {{ end }} <% for (var chunk of webpack.chunks) { From 0af5e07eed984f8c15267434c2e03b1ad8822ea4 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Tue, 27 Feb 2018 17:09:18 +0000 Subject: [PATCH 017/134] chore: bump version to 1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8eb823bb..b68a4b3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.0.4", + "version": "1.1.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 56ec440272b2f6781ccdbd756ba9d3b01ca4acc5 Mon Sep 17 00:00:00 2001 From: Equim Date: Wed, 28 Feb 2018 13:51:52 +0800 Subject: [PATCH 018/134] i18n: zh: minor fix --- src/i18n/zh-cn.yaml | 2 +- src/i18n/zh-tw.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/zh-cn.yaml b/src/i18n/zh-cn.yaml index f28d0d80..52ef8682 100644 --- a/src/i18n/zh-cn.yaml +++ b/src/i18n/zh-cn.yaml @@ -35,7 +35,7 @@ success: linkCopied: 链接已复制! errors: forbidden: 你被禁止访问。 - internal: 内部出现麻烦了。 + internal: 服务器出了点问题。 notFound: 找不到文件。 files: folders: 文件夹 diff --git a/src/i18n/zh-tw.yaml b/src/i18n/zh-tw.yaml index 5b7b6e28..07607848 100644 --- a/src/i18n/zh-tw.yaml +++ b/src/i18n/zh-tw.yaml @@ -35,7 +35,7 @@ success: linkCopied: 連結已複製! errors: forbidden: 你被禁止存取。 - internal: 內部出現麻煩了。 + internal: 伺服器出了點問題。 notFound: 找不到檔案。 files: folders: 資料夾 From 325e6e0904fca138165ff86c0cd198264b20b9a3 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 10 Mar 2018 13:19:52 +0000 Subject: [PATCH 019/134] chore: bump version to 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b68a4b3b..dee9313b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.1.0", + "version": "1.2.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 4c30b2c665801bafead37fa89712202eac6d0e26 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 1 Apr 2018 11:49:59 +0100 Subject: [PATCH 020/134] chore: update dependencies (#6) --- package.json | 72 ++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index dee9313b..c25453d6 100644 --- a/package.json +++ b/package.json @@ -11,64 +11,64 @@ "lint": "eslint --ext .js,.vue src" }, "dependencies": { - "clipboard": "^1.7.1", - "codemirror": "^5.31.0", - "filesize": "^3.5.11", - "js-base64": "^2.4.0", - "moment": "^2.19.2", - "normalize.css": "^7.0.0", + "clipboard": "^2.0.0", + "codemirror": "^5.36.0", + "filesize": "^3.6.1", + "js-base64": "^2.4.3", + "moment": "^2.22.0", + "normalize.css": "^8.0.0", "noty": "^3.2.0-beta", - "vue": "^2.5.8", - "vue-i18n": "^7.3.4", + "vue": "^2.5.16", + "vue-i18n": "^7.6.0", "vue-router": "^3.0.1", "vuex": "^3.0.1" }, "devDependencies": { - "autoprefixer": "^7.1.6", + "autoprefixer": "^8.2.0", "babel-core": "^6.26.0", - "babel-eslint": "^8.0.2", - "babel-loader": "^7.1.2", + "babel-eslint": "^8.2.2", + "babel-loader": "^7.1.4", "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-env": "^1.6.1", "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", - "chalk": "^2.3.0", + "chalk": "^2.3.2", "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^4.2.1", - "css-loader": "^0.28.7", - "eslint": "^4.15.0", - "eslint-config-standard": "^11.0.0-beta.0", - "eslint-friendly-formatter": "^3.0.0", - "eslint-loader": "^1.9.0", - "eslint-plugin-html": "^4.0.0", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.6.0", + "copy-webpack-plugin": "^4.5.1", + "css-loader": "^0.28.11", + "eslint": "^4.19.1", + "eslint-config-standard": "^11.0.0", + "eslint-friendly-formatter": "^4.0.0", + "eslint-loader": "^2.0.0", + "eslint-plugin-html": "^4.0.2", + "eslint-plugin-import": "^2.10.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.7.0", "eslint-plugin-standard": "^3.0.1", "eventsource-polyfill": "^0.9.6", - "express": "^4.16.2", + "express": "^4.16.3", "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^1.1.5", + "file-loader": "^1.1.11", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", - "http-proxy-middleware": "^0.17.4", - "opn": "^5.1.0", + "http-proxy-middleware": "^0.18.0", + "opn": "^5.3.0", "optimize-css-assets-webpack-plugin": "^3.2.0", - "ora": "^1.3.0", + "ora": "^2.0.0", "rimraf": "^2.6.2", - "semver": "^5.4.1", + "semver": "^5.5.0", "shelljs": "^0.8.1", - "sw-precache-webpack-plugin": "^0.11.4", + "sw-precache-webpack-plugin": "^0.11.5", "uglify-js": "^3.1.10", - "url-loader": "^0.6.2", - "vue-loader": "^14.0.3", - "vue-style-loader": "^3.0.3", - "vue-template-compiler": "^2.5.8", + "url-loader": "^1.0.1", + "vue-loader": "^14.2.2", + "vue-style-loader": "^4.1.0", + "vue-template-compiler": "^2.5.16", "webpack": "^3.8.1", - "webpack-bundle-analyzer": "^2.9.1", + "webpack-bundle-analyzer": "^2.11.1", "webpack-dev-middleware": "^2.0.4", - "webpack-hot-middleware": "^2.20.0", - "webpack-merge": "^4.1.1", + "webpack-hot-middleware": "^2.21.2", + "webpack-merge": "^4.1.2", "yml-loader": "^2.1.0" }, "postcss": { From 390c53097f76fe33ae596cf7b56200000b825987 Mon Sep 17 00:00:00 2001 From: 1138-4EB <1138-4EB@users.noreply.github.com> Date: Mon, 23 Apr 2018 21:21:36 +0200 Subject: [PATCH 021/134] fix filebrowser/filebrowser#312, use prefix $ for commands (#7) --- src/components/Search.vue | 62 ++++++++++++++++++++++++--------------- src/i18n/en.yaml | 6 ++-- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/components/Search.vue b/src/components/Search.vue index b5b434f3..62593101 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -125,7 +125,7 @@ export default { computed: { ...mapState(['user', 'show']), // Placeholder value. - placeholder: function () { + placeholder () { if (this.user.allowCommands && this.user.commands.length > 0) { return this.$t('search.searchOrCommand') } @@ -134,7 +134,7 @@ export default { }, // The text that is shown on the results' box while // there is no search result or command output to show. - text: function () { + text () { if (this.ongoing) { return '' } @@ -144,17 +144,27 @@ export default { return `${this.$t('search.searchOrSupportedCommand')} ${this.user.commands.join(', ')}.` } - this.$t('search.type') + this.$t('search.typeSearch') } - if (!this.supported() || !this.user.allowCommands) { + if (!(this.value[0] === '$') || !this.user.allowCommands) { return this.$t('search.pressToSearch') } else { + if (this.command.length === 0) { + return this.$t('search.typeCommand') + } + if (!this.supported()) { + return this.$t('search.notSupportedCommand') + } return this.$t('search.pressToExecute') } + }, + // The command, without the leading symbol ('$') with or without a following space (' ') + command () { + return this.value[1] === ' ' ? this.value.slice(2) : this.value.slice(1) } }, - mounted: function () { + mounted () { // Gets the result div which will be scrollable. this.scrollable = document.querySelector('#search #result') @@ -181,14 +191,15 @@ export default { }, // Checks if the current input is a supported command. supported () { - let pieces = this.value.split(' ') - - for (let i = 0; i < this.user.commands.length; i++) { - if (pieces[0] === this.user.commands[i]) { - return true + let cmd = this.command.split(' ')[0] + let cl = this.user.commands.length + if (cl !== 0) { + for (let i = 0; i < cl; i++) { + if (cmd.match(this.user.commands[i])) { + return true + } } } - return false }, // Initializes the search with a default value. @@ -227,19 +238,22 @@ export default { } // In case of being a command. - if (this.supported() && this.user.allowCommands) { - api.command(path, this.value, - (event) => { - this.commands.push(event.data) - this.scrollable.scrollTop = this.scrollable.scrollHeight - }, - (event) => { - this.reload = true - this.ongoing = false - this.scrollable.scrollTop = this.scrollable.scrollHeight - } - ) - + if (this.value[0] === '$') { + if (this.supported() && this.user.allowCommands) { + api.command(path, this.command, + (event) => { + this.commands.push(event.data) + this.scrollable.scrollTop = this.scrollable.scrollHeight + }, + (event) => { + this.reload = true + this.ongoing = false + this.scrollable.scrollTop = this.scrollable.scrollHeight + } + ) + return + } + this.ongoing = false return } diff --git a/src/i18n/en.yaml b/src/i18n/en.yaml index 0e2459d8..932d70e7 100644 --- a/src/i18n/en.yaml +++ b/src/i18n/en.yaml @@ -175,13 +175,15 @@ sidebar: search: images: Images music: Music + notSupportedCommand: This is a not supported command. pdf: PDF pressToExecute: Press enter to execute. pressToSearch: Press enter to search. search: Search... searchOrCommand: Search or execute a command... - searchOrSupportedCommand: 'Search or use one of your supported commands:' - type: Type and press enter to search. + searchOrSupportedCommand: 'Search or prepend ''$'' and use one of your supported commands:' + typeCommand: Type and press enter to execute. + typeSearch: Type and press enter to search. types: Types video: Video writeToSearch: Write here to search From a10f286f0ff42c4db56a8857c2c47f3473547af8 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Mon, 23 Apr 2018 20:22:43 +0100 Subject: [PATCH 022/134] chore: update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c25453d6..c6050eef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.2.0", + "version": "1.3.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From d3e363a4d508d3f1c0dd9243047d1de58eaddc12 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 20 May 2018 12:44:06 +0100 Subject: [PATCH 023/134] fix: material in TTF and EOT (#8) Fixes https://github.com/filebrowser/filebrowser/issues/404. --- src/assets/fonts/material/icons.eot | Bin 0 -> 143258 bytes src/assets/fonts/material/icons.ttf | Bin 0 -> 128180 bytes src/assets/fonts/material/icons.woff | Bin 0 -> 57620 bytes src/assets/fonts/material/icons.woff2 | Bin 47620 -> 44300 bytes src/css/fonts.css | 6 +++++- 5 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 src/assets/fonts/material/icons.eot create mode 100644 src/assets/fonts/material/icons.ttf create mode 100644 src/assets/fonts/material/icons.woff diff --git a/src/assets/fonts/material/icons.eot b/src/assets/fonts/material/icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..70508ebabc9992e64f1314f866b2d7ab90438c58 GIT binary patch literal 143258 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 Hzx)3OGG_Ot literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material/icons.ttf b/src/assets/fonts/material/icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7015564ad166a3e9d88c82f17829f0cc01ebe29a GIT binary patch literal 128180 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 ohyj3!`#ee%L;DTjx@8!5k5~VH0QmdE^#A|> literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material/icons.woff b/src/assets/fonts/material/icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..b648a3eea2d16b6ce783906d6b7d5f251b9eb56c GIT binary patch literal 57620 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

wF7DI|Kx|V1sBQ9FYs>m5C)C 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 BJ$(QG literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material/icons.woff2 b/src/assets/fonts/material/icons.woff2 index 05a8ab5d2e69c71d6e69bdafbf1601dd5dff2b07..9fa211252080046a23b2449dbdced6abc2b0bb34 100644 GIT binary patch literal 44300 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 QW8}wPUeo^@jR61v08@RD2LJ#7 literal 47620 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

dwtib={~_1^@O~rS8<3sA|t04JLL!-NxZX$5n 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

MOQ9ju8O#jB4RxdN~9kw5@Or zCuy$z0PsXiCTbm(WbhkXIu#IUt^&0OL=;W?VS-`d?rKzrVhqhzF=mB}LP2k*z7!bp z2mmnAc)?tPZtnyx7kDKAp4qK*D4ukz^V2~^j)NV2mz`RAd5fSpjd226J?{-hS~0qi zsu;QXIrL^sfx}fGPfp2RRjTt66}rA-q_`%yE@FBbNe}=}nH7GF34xpd+HFPjwSeZ7 znRU}S5CCK&B5@Btb0G`{_zkD4m>|ANlEaI-^tKWpWJn*`vCuan6-G+fU5Gg+Cz7?Q zxTz8dz9c-T6X-K!|8La15P*A9u2*;j%>@nzkJg4e%)EuD(Jr8hDJWn>OiWK66F~+j zGPK|d4!Rb2o@pzy8e#zfBp6C1ux z{D9D2#Q4pN;RfHVslO5-yq5rnvO%N!c8F1 Date: Sun, 20 May 2018 13:02:09 +0100 Subject: [PATCH 024/134] chore: bump version 1.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c6050eef..aeb113ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "filebrowser-frontend", - "version": "1.3.0", + "version": "1.4.0", "author": "File Browser contributors", "contributors": [ "Henrique Dias " From 294efef38c4481249114bf9c5706f712809b0563 Mon Sep 17 00:00:00 2001 From: 1138-4EB <1138-4EB@users.noreply.github.com> Date: Tue, 26 Jun 2018 17:12:12 +0100 Subject: [PATCH 025/134] update icon/favicon (#9) Related to filebrowser/filebrowser#417, filebrowser/filebrowser#433 and filebrowser/filebrowser#436. I used https://realfavicongenerator.net to generate multiple favicon files of the new design by @timonss in different formats. These are the previews: ![android](https://user-images.githubusercontent.com/6628437/41185230-25aa4292-6b7e-11e8-9bb4-714c443eeefb.png) ![ios](https://user-images.githubusercontent.com/6628437/41185232-2733a9be-6b7e-11e8-97f6-ae8915f21980.png) ![safari](https://user-images.githubusercontent.com/6628437/41185235-28bed84e-6b7e-11e8-9b45-95a227bebbe4.png) ![win](https://user-images.githubusercontent.com/6628437/41185237-2a379904-6b7e-11e8-918d-ea600d8704a4.png) --- src/assets/logo.svg | 150 +++++++++++++++++- static/img/icons/android-chrome-192x192.png | Bin 4299 -> 9367 bytes static/img/icons/android-chrome-512x512.png | Bin 12300 -> 23072 bytes static/img/icons/apple-touch-icon-120x120.png | Bin 2930 -> 0 bytes static/img/icons/apple-touch-icon-152x152.png | Bin 3723 -> 0 bytes static/img/icons/apple-touch-icon-180x180.png | Bin 8893 -> 0 bytes static/img/icons/apple-touch-icon-60x60.png | Bin 1910 -> 0 bytes static/img/icons/apple-touch-icon-76x76.png | Bin 1977 -> 0 bytes static/img/icons/apple-touch-icon.png | Bin 4299 -> 7420 bytes static/img/icons/browserconfig.xml | 9 ++ static/img/icons/favicon-16x16.png | Bin 918 -> 843 bytes static/img/icons/favicon-32x32.png | Bin 1645 -> 1250 bytes static/img/icons/favicon.ico | Bin 1150 -> 15086 bytes .../img/icons/msapplication-icon-144x144.png | Bin 3515 -> 0 bytes static/img/icons/mstile-144x144.png | Bin 0 -> 7213 bytes static/img/icons/mstile-150x150.png | Bin 3668 -> 7022 bytes static/img/icons/mstile-310x150.png | Bin 0 -> 7644 bytes static/img/icons/mstile-310x310.png | Bin 0 -> 14508 bytes static/img/icons/mstile-70x70.png | Bin 0 -> 5005 bytes static/img/icons/safari-pinned-tab.svg | 42 +++++ static/manifest.json | 2 +- static/share/404.html | 8 +- static/share/index.html | 8 +- 23 files changed, 206 insertions(+), 13 deletions(-) delete mode 100644 static/img/icons/apple-touch-icon-120x120.png delete mode 100644 static/img/icons/apple-touch-icon-152x152.png delete mode 100644 static/img/icons/apple-touch-icon-180x180.png delete mode 100644 static/img/icons/apple-touch-icon-60x60.png delete mode 100644 static/img/icons/apple-touch-icon-76x76.png create mode 100644 static/img/icons/browserconfig.xml delete mode 100644 static/img/icons/msapplication-icon-144x144.png create mode 100644 static/img/icons/mstile-144x144.png create mode 100644 static/img/icons/mstile-310x150.png create mode 100644 static/img/icons/mstile-310x310.png create mode 100644 static/img/icons/mstile-70x70.png create mode 100644 static/img/icons/safari-pinned-tab.svg diff --git a/src/assets/logo.svg b/src/assets/logo.svg index 62e6798a..5e78eccf 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1,5 +1,147 @@ - - - - + +image/svg+xml + + + + \ No newline at end of file diff --git a/static/img/icons/android-chrome-192x192.png b/static/img/icons/android-chrome-192x192.png index 685cdea9d5cf74acf3f02f345faefceab921cf74..e9131e42a46292f0c302a0ec1d490da84773a053 100644 GIT binary patch literal 9367 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℘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
w= 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 literal 4299 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 diff --git a/static/img/icons/android-chrome-512x512.png b/static/img/icons/android-chrome-512x512.png index be4f052601236f72b77a3c93cb6a347446d8e786..d4d3f2e2d78204548458e2fd806fa9a0d4a8edd0 100644 GIT binary patch literal 23072 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

hKa1i8VW< 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 diff --git a/static/img/icons/apple-touch-icon-120x120.png b/static/img/icons/apple-touch-icon-120x120.png deleted file mode 100644 index f204c14b893b4a521b59a1e0fe86bac74ac4ce4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2930 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 AL;wH) diff --git a/static/img/icons/apple-touch-icon-180x180.png b/static/img/icons/apple-touch-icon-180x180.png deleted file mode 100644 index 8c3ee3a9efda885c1c31c1f82567ffb4f0db505b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8893 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 PjsVb5(N?Zjw0ient#fwm diff --git a/static/img/icons/apple-touch-icon-60x60.png b/static/img/icons/apple-touch-icon-60x60.png deleted file mode 100644 index 00f82e9432493a5e905484747f479148ccb79e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmdUui&xau7RL{fI3gr!f-=zMAs{I8fZsg$1@+_C(MG@HjaNV`8x3%scaL?L%?X}PO?C(C0 zb&7;x8_i9vO%X!oA;AF=Wb|Heit)mXgDam5uPXcmeh3*#m(Ge8k-1S?#72Llzicx~ zCU(-`2mwNw&Isk^BQ!%!<&Gef&Om4^5h1(^AuDao*>F>?N*!pt0mUW8-A5YhwB=HTWO%+5p02+Yhw{mdnd zyl$L`2#X}Ie;GqkqQ5rrY~0<T9`&94?Uz48tB3Lr*^(+olD9VosM}1?2{Kut4c?lDkW0dX8(ldcQ-Y8&GbF%I z6x?&7QWtlVZ}I&p38juAIq~D?!tNuMo8MLQFC#ZUqmw4D7FaIJ&rIg+KH_x1JS4Yg zYHt1T!EJIyRc);krBzs}uk4E~^mPlJ6J_rQxDhF2#aj(E1$0%^o#sLGC~n#HP*%q zwJKu69I<;gi zW95fMF8hB7s3{6`JYC-KZ6cPcYv-PA?l=%^_)O%`(N=ITp>%0c$zbu*ebZHDKgpSf z?S(fw-7N=yvvwDVHJzE8JkZBiQ1vq`njyaRt@`BxsZjswx5t3xZdWb|KTIS1{3v;5c8XWlNl9aSsU zTLj+i5B3KBaYy&S)TKM(ct-4Z89Twu@^|X6*fTr1c=^_n^;>q&e;Iv+?k0P!v$rx) z6O@1Xm69`_4p~ucdd`sOoc^66LQaj3BLe;?d*s+;T+(`*bH@DYB|26ctc_3zT%OvkUU6jsl#=F)hq*eQ`o zKQq_$0n)vhHhf^Uac5Io@7+(@+j_EjL⪙!QN+&(2&_qgZxo0XYb<1H4}G#=0{R9 z_ZY_~t2>Twplux&G`A#Rv_tI08*jAWIOEae7{Fya+@>7s$3RzdUDZy^<+y$)ZrClaf40iJ5FUz*Eg=os_Z|1PIJ(bwk}pd zkUz?a2#g_;#Dol&rpm~GJQz%lJA*V##AM?hUbrV~J%fQW7+u8<4gXc3PDxV9b^p7d z`Fb^#EC^cYkd`7Rc8ODEC`2t*$OK}AN}6oPrg3OocP~4#CFagxxidZN!kKJ4B|&I$ zI(^r!T{P7KO*%=_Qc@MS3MWZHw0c2Nq)b;!a6BMIny!{<2pkuZXc}TRKpXvU%!{5l zu9T@1N&+#xJeHx<0+O+MN$20p7F80VTtIpo?I|R(<|Ra+Qp*UPR)${eimuftcwa|{ z{Y^(8A}Pegyu6rP7Kg(UezU5OM3%jz6RFCSA%?$yd7bYBxfK14M$m7%1 z8e)5jf-V>DR7q1bY4ra*3|%5gVv8l17-M?LSuBht;Yg)PnAFpgA!UgfUUC{)K_mCK Tqo+bdc0eJ4VF7yo#Js-%tl&yN diff --git a/static/img/icons/apple-touch-icon-76x76.png b/static/img/icons/apple-touch-icon-76x76.png deleted file mode 100644 index d9cc0f35a3bf5f2d5fec3dfdb9caf319af228bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1977 zcmdUuiC0tC7RC<`wFu>AuK%pWbWKu#HE`s2IQNTDL zRiY>bs(ay4`V|!LjZs=%aiGkWv|6B(8u1tvo4!rX^GI)+ZBL{Ge+~=rC6;O@9)6?4F`ap1As})*Vp|VF&&%j#c{)c4g2B$$4G)- z9DtjSK>Tq?$b`gmkf?wgQz4QG$pw&B4jpTu^G)b-8@e>YEsbzPG9-TkH>=>5X1JvZ z+Gaq?chLC;+;|w0@}N^a#LFS^EOe@ab{C*a19WME&W&(uGxWU&V>M7Q2+Lo<`cW9z z1|Lkqsd=~n7avA5OzDB$lW=|kx;4Y>LHPR|oSughb5OSc2a5u-ursBi{yqT!{9}dP zu8belFQ#<*X5J?nhGrIwoKALhe&ApJvTXVGsyBN0yovV(y=%Unrr+@mc{c1Lti(B+ z@1~5_VIF!B+dY_k)vw13uwr?P=gxQlJ`Y}V{@(T0lsR<+EQ zFge-o4rV0JqlKZLGx;5UBFAh7=^=#UpT??YVvh~)oG5a9xqBicWn4_`;i$WRy{hdV zots+bij2HP`@+0^6HSzvOLh83-8E|E&MkI0+{IHz^>vo7fxCNa%e1UyY9;TgwHl8L z@0t{D`@=0Ds68^23i_vhE>$zC>@_t#)SRkLLNz0>8j%+4bv@c_lTl}R-qAesyXMCt z(B7e#VSiLcy^xz>sJz}&SazvS)h!^6ge0P}lDie-DwzU%(On@?tva0d=GOxzlaHQICIv@L(|`M_q5XNE`Xk?{2va(C;eY$WCY zT6`ydy}-3xu3E-%r)`rk2cY_AOfVBB^&~;neU~e5wNe|j#SvNA z_tsWEVy?5^aPxR!-4WiTEaRu;7SFXbsn^-)iMUxDZnmyIRNg8dE~2VmJDF0BceeJL zcD6l_PaEQ~dUzFC?ZTu!(|kYOH}Bg=@CMhWvwkZYzTm%$(CN#M^6^TpAX_V=SN?PU zn9=L$@t>Nsx^ack^pZ2=gsS}2Q-30vrxlN#w;3M1p{P*(vD(b>K_jVgecM%}o?|gHS0&KuKQo1{p+0AqBHc8tw~qn3PW#t}y%{I-g z(xF3p%Q6$YLdq0KpytPxv06(V?&ZFQ`%Ssc`Pd(8gSzcNBe^J_&Wqz?3D_Y-2U`Ri zBo2{6x1-VR$r}-bjv!4Z*A)GiKq8G43-<}*%po!c#K43|>LcTXw zDCX_8qTn6yR9l)A){>|Ti0M0sw^+hQ_s8(TU#lX-L=v^ z@Aw3WllcH)FtV>Wzr?13-kA#YX90mYijQrdAc;n!q(Xv#yHCuMM#mHWb1{U7h)4=I wg2W{eX#z5tM2>La@ghk)dwYaO<{~r!9#i14^~JU-I9Lb3a`R!9Gs0#60tLv6i~s-t diff --git a/static/img/icons/apple-touch-icon.png b/static/img/icons/apple-touch-icon.png index 685cdea9d5cf74acf3f02f345faefceab921cf74..7ea77eb8453243b2e11858ef62ca076be342a11c 100644 GIT binary patch literal 7420 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 G1^+L{eFRzn literal 4299 zcmeH~cT`i^x5qC<1ws*}h~N+@0zpUufsoLfG{Jx%2%>}z3PA`(K!P+;M36F6K^)qQ zBcODp7Xguu^rC>2AX1cKfSea+y+7vt)_Q-w|K43^-@W$TpZ(qE+;#uh_W{AofQ#ca z2LwS}MuvJ84Bzz2*jN~M7v^jwhGTWpHr0lpR|&8K;t@v7P_F~B;XpnPC}sd` z5m0>%G@F1{8_;S8h!Ai-8Yuh@aDM}>R-pa{pi=?93@D@l)e4~10uW&Ul>qRiK(hs4 z3xH-LP^$!rSwN!!;7WjeEI>X2YSlo!7GSc0W*g98h_r$W?|?}MuzU~fJ^*4b&~5|f zUBGJ)Bus(7zkv2NF#a9P?SQ2{@bxDM9|IN3VCo0hJ^*y^>(XrpF8!cj9?Wb58XY+I zfwCpA_7hxw4{|?)l|A4;3T-an^CcX0f2FAOEs> z>GknV#mLRIuw4lUn@17Pc*SC24{JteSoLo=b18W;lAfiNlZSTR%Ey)J{ARH0SqndE zzwc!+HROKyfcu`~H-qC8&u21JQ>(AL8+v%a!d#Hdr<^6h#ksNjeS33f>qjEQMw2=+ zEDz)0X6J$>#HJYN%YL;Xr>H52sh!72s2DDK^T9JjP6`X=qV%;LE}xj2cXT>uG8N4P zN6X+O{XH=c_Ryq@rlv+_#^ieOi`1dPA{V{eyqccoLPLW?*Set$qpRb%+R$M;Ijq#A zl+2JmTVmR}Jz+UKSh)2E^ZJ3>l45v%aZt>Z`Sz9MK52PhUt`_EQDI4L%Fp>Jf!TZF@SSC4O+0L~a9y!~Lc)l>EN z2%5Rmj@}@7e5ug4j2pwKu_8h6QsR*1< zg6YRq)!sZN8dD(3%hEKV>32PZ@YnFP>SXY_L5-Z}MP6>zw(UY^gQsnEm=g>9?jBeu zD|-a+7K=KK6?k|qJcM78628c!@pwVHF>E)7+hY3<&NCqaqkej^2kFvW&!khc4tDD6 z_f`I^Mt@zMp6um1TNw*M0xy>&D3m}F56@45sGON^huOzR=5O*RR;Rna7&v$1W8kyg zqEMI)xThh%qUM5D7SD1;aj$B=FNwS_l1S24A(zFmXrEQiZ9a%z*jmlBJCj1vcK0d~ zH?UF3<%hNej<2U9KH3^QcMBEq_}Ip34jYSLdzPXWPUD8<&3NA5?~E)?k&JC}`tA0f z2oBLXO7d$N5N{)5NOOlQ;kYOhoA&`+xp}$K4!JR8v&6oP{v#Vkh&+0Xlg?k&6R(cy zL=0a#2Zh&-N6`{?IcVFH+5I8ei4IkVYDbIdDHp-0lwLncOl4C^sJZB4KqMQ&lWm(K z{xIxhGd7A^KJK1jKiz4wYY8{Qqc?GgZKh~qS$-8wE# z>EQiwB3|Drw|P~FVD`N6Fuj;&%GwdT7`bI#4mHI|uuw5`@3C2hkF^XJUK}~nIRk%C zPuY#-DO+cIkd#rXCfb^LA_AhGd`-{jBpd9rMHD-8)rn}gv(i4^fBI}z&nG?qjeM9) zjDte6na$G?p{<@mNyA8&JKt!$;rrXlS`8hq$e<9STnoNrk6 z&5efMJ+{y~9n5V$K7Hw+gX?LewLyt}BT>W+TXI9V7Vl0&TCA>Lu!oyQ4zL*;cuYRH zsnXhGSKV0eRN)lZP=9yzoJ>SX^%?$D@3^yjb0)(~A?!EV?k-J-%nC_Wtbdzcli2?j{iTp}3+fuXbNY+7*sXtksGR9^m~V2kZET@KaeRoO$i`mRkSO}6>;C3Sa)*Tc*ih_>@vD@46pr7o ziGnw5SsL%WBteURmwO@SNtC(4$;F7$EjcLl@{_(lF|6DuHPHs`!dXl)x26=l-=l1$ z266O5r2F|rXj@*SY2(1nf}xxdu2l__d*NitBGWmC3inov7S$A9d_LBnD0QMW>2(#au zwDX4?=LyoNB-Dc9nw&eU`locL3KJCmjsUwd5N&iS!AByZ%CS8C^EX`$nyLSQ{rOmY zl^B}uTXWC_I5b(dzOtwu#*hlZzM8G)Vv5~xt}9DEW5aRE+x|1m=ZnA`^HTv{!IkzP zaTp?g@)ciAk9Fffkg!R_nxVGTuIuZuz^YVFXMuhmdavlGUG1HFhNCf-C(W-uLMAbr z8glbo`=WNgzD(8n*ce6C_6bcPj7>{%?n@poozau`7XIDH^1&$ztAqFnZMRY!v(MW3 z6S~5@5anF>Aq&UC)h3^BZ^WU|zE=slcrGzyIJ+|l_dKcE)O6>1`9|@yN?#7^8&g9x zZzo*U#6Rna`Hu*3hA!-DqkXl|RgW}<;8 zYjN&SV?so$iEtqM;fRgCr=-vLJ*kO=Y;(%;I*-rSBwA!?g{XSr_C}!D=`S7YWQ4=VyC&7a>YD8(Zq}h!O&SJ)< zsxnq9rMy2@jn|F6eN25f?pQ59dl)zNvb!g(Z{tl}yH{q%<=KW@I*f0*u_c0TqPN`m zE}9-kUT%CJOYhEKZtRVt!#*xI4)zwLanQY?VoB1zgt-Z>#v>A=DO9 zJ}-xGn$QHP%XMuoL_=dUqnC3SeFN))LJ6tbdo*)4qcE>q*Fu>GjxMD{?bVD;gbL=% zsj_rNMCj_Ywup;;F%PKcJtLX$h>Zuv#m=2n+hYw*N4K>Obx(GT_G!Wi_>pbrBn+x) zwr{j!vU^BZtZWA`k>J~2OeDMDoqSyw4pKm&v2rNJ!dRk}@d`M+ zqLM5Mg-4;<;>3#nM}Zf~*~9hD|6Wizk}1q6xbUlkAIX&*Nc44qjJ$|$E~Z2`52u@O zWqGW;iX0BkXo-Ib2Vz+2>hF#q(#+pUw;%S9{>OV diff --git a/static/img/icons/browserconfig.xml b/static/img/icons/browserconfig.xml new file mode 100644 index 00000000..7f82fb31 --- /dev/null +++ b/static/img/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #455a64 + + + diff --git a/static/img/icons/favicon-16x16.png b/static/img/icons/favicon-16x16.png index 8de7c05e09c2fe972e855eb61fe532a5f4e3fe88..b02a47ffca4473521e7cfe01021301839ee60eab 100644 GIT binary patch delta 762 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 BkmCRV literal 1150 zcmbu8txf|`5QV3KP+LWU!%;{ObqE5~!aJa`I0yy>zB~oN5Dbzg-97;?fGD6^G)a@; ze0TP?q=wMDo3nTJ%sF%a%^G@JEz@_?&Q{IV&8#hm5)-@{Gv!XV0_p$P$1k@{XbQ)| zz3?tfYY@YcLo;&{*Vs^dCwvL+7Yl%k92&IQN6Y_{5WcG&_uF0fUMD~dN6n~%HrH5F zOwGvONc*to{&L_xI0_KMk(<}RgZD(3B%b{9zWY$VN}lSlhGIB!^BR-d%eut)=p%W% z?yu+WpN|3JN*p;f%q8Z5ca-{Oj*OFj(SMJ9_7JBU%Ar9U^BBoLO)+c5d>QkH`dxhB z$e}?S{@7pQ<^84OFI~UV{VP2`rRO)_gQf0IzKA*p)cN=QeQTQaSIn*(xzgV)T0D4v E0J`IxjQ{`u diff --git a/static/img/icons/msapplication-icon-144x144.png b/static/img/icons/msapplication-icon-144x144.png deleted file mode 100644 index a7db463fe7640580ee18526375c15995b5338abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3515 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 NAZxrGuFT9U`5!5klC}T< diff --git a/static/img/icons/mstile-144x144.png b/static/img/icons/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2745c0b3e960416cfe8ac74a787b136f6b8fbe GIT binary patch literal 7213 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 G;(q{r`0%*^ literal 0 HcmV?d00001 diff --git a/static/img/icons/mstile-150x150.png b/static/img/icons/mstile-150x150.png index 8515f250ea71c08ab0d7a74abbd58ce4cf5c6760..7130a1e36b733c50556c7563149b9c3a22a58897 100644 GIT binary patch literal 7022 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 diff --git a/static/img/icons/mstile-310x150.png b/static/img/icons/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0dc0a1fcef6451f75332f1256535c282e43f2c GIT binary patch literal 7644 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 Fe*x!?AjSXy literal 0 HcmV?d00001 diff --git a/static/img/icons/mstile-310x310.png b/static/img/icons/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..56d4963a632d9354efb1859ffaecf892b0abc74e GIT binary patch literal 14508 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

X;NcZ6Tm2SVrO2Hm=_By5+S#doPOf_ePU#5a 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 RNIBB5p{|JzPU}wC{{l$92nhfH literal 0 HcmV?d00001 diff --git a/static/img/icons/mstile-70x70.png b/static/img/icons/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..556d2cd1d4be6f75c133316f599b5bea99794b8b GIT binary patch literal 5005 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 Y76lpn@EJG((*!_OQB$GpnMLq_0lMaiS^xk5 literal 0 HcmV?d00001 diff --git a/static/img/icons/safari-pinned-tab.svg b/static/img/icons/safari-pinned-tab.svg new file mode 100644 index 00000000..0119c21a --- /dev/null +++ b/static/img/icons/safari-pinned-tab.svg @@ -0,0 +1,42 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + + diff --git a/static/manifest.json b/static/manifest.json index 9d5b3577..4977df5b 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -16,5 +16,5 @@ "start_url": "{{ .BaseURL }}/", "display": "standalone", "background_color": "#ffffff", - "theme_color": "#2979ff" + "theme_color": "#455a64" } diff --git a/static/share/404.html b/static/share/404.html index 53359493..563420bb 100644 --- a/static/share/404.html +++ b/static/share/404.html @@ -9,13 +9,13 @@ - + - - - + + + - - -

404 Not Found

- - diff --git a/static/share/index.html b/static/share/index.html deleted file mode 100644 index 4af67378..00000000 --- a/static/share/index.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - {{ .File.Name }} - - - - - - - - - - - - - - - - - -
Download {{ if .File.IsDir }}Folder{{ else }}File{{ end }}
-
- {{ if .File.IsDir -}} - - - - - {{ else -}} - - - - - {{ end -}} -

{{ .File.Name }}

-
-
- - diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 00000000..4a9f1e07 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,4 @@ +module.exports = { + runtimeCompiler: true, + baseUrl: '[{[ .StaticURL ]}]' +} \ No newline at end of file From 95fc3dfdfbe21b1d55538add66bf0d5f38197320 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 5 Jan 2019 16:24:09 +0000 Subject: [PATCH 054/134] feat: update i18n License: MIT Signed-off-by: Henrique Dias --- src/i18n/ar.json | 26 ++++++++++++---------- src/i18n/de.json | 26 ++++++++++++---------- src/i18n/es.json | 54 +++++++++++++++++++++++---------------------- src/i18n/fr.json | 26 ++++++++++++---------- src/i18n/it.json | 26 ++++++++++++---------- src/i18n/ja.json | 26 ++++++++++++---------- src/i18n/ko.json | 26 ++++++++++++---------- src/i18n/pl.json | 26 ++++++++++++---------- src/i18n/pt-br.json | 26 ++++++++++++---------- src/i18n/pt.json | 26 ++++++++++++---------- src/i18n/ru.json | 26 ++++++++++++---------- src/i18n/zh-cn.json | 26 ++++++++++++---------- src/i18n/zh-tw.json | 26 ++++++++++++---------- 13 files changed, 196 insertions(+), 170 deletions(-) diff --git a/src/i18n/ar.json b/src/i18n/ar.json index 47e23fb2..407497fe 100644 --- a/src/i18n/ar.json +++ b/src/i18n/ar.json @@ -1,6 +1,7 @@ { "permanent": "دائم", "buttons": { + "shell": "Toggle shell", "cancel": "إلغاء", "close": "إغلاق", "copy": "نسخ", @@ -37,7 +38,7 @@ "linkCopied": "تم نسخ الملف" }, "errors": { - "forbidden": "أنت غير مرحب بك هنا!.", + "forbidden": "You don't have permissions to access this.", "internal": "لقد حدث خطأ ما.", "notFound": "لا يمكن الوصول لهذا المحتوى." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "تم تعديل المستخدم", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "مساعدة", + "login": "Login", + "signup": "Signup", "logout": "تسجيل خروج", "myFiles": "ملفاتي", "newFile": "ملف جديد", @@ -194,18 +198,12 @@ "search": { "images": "الصور", "music": "الموسيقى", - "notSupportedCommand": "هذا الأمر غير متاح.", "pdf": "PDF", - "pressToExecute": "إغضط زر Enter للتنفيذ.", - "pressToSearch": "إضغط زر Enter للبحث.", - "search": "البحث...", - "searchOrCommand": "إبحث او قم بتنفيذ أمر...", - "searchOrSupportedCommand": "إبحث او قم باضافة بادئة '$' واستخدم واحد من الاوامر الخاصة بك:", - "typeCommand": "أكتب واضغط Enter للتنفيذ.", - "typeSearch": "أكتب واضغط Enter للبحث.", "types": "الأنواع", "video": "فيديوهات", - "writeToSearch": "أكتب هنا للبحث" + "search": "البحث...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "دقائق", "hours": "ساعات", "days": "أيام" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/de.json b/src/i18n/de.json index bcd53f45..d31e567c 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Abbrechen", "close": "Schließen", "copy": "Kopieren", @@ -37,7 +38,7 @@ "linkCopied": "Verweis wurde kopiert !" }, "errors": { - "forbidden": "Sie verfügen nicht über die nötigen Rechte!", + "forbidden": "You don't have permissions to access this.", "internal": "Etwas ist schief gelaufen.", "notFound": "Dieser Ort kann nicht angezeigt werden." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Benutzer aktualisiert!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Hilfe", + "login": "Login", + "signup": "Signup", "logout": "Logout", "myFiles": "Meine Dateien", "newFile": "Neue Datei", @@ -194,18 +198,12 @@ "search": { "images": "Bilder", "music": "Musik", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Drücken Sie Enter zum Ausführen.", - "pressToSearch": "Drücken Sie Enter zum Suchen.", - "search": "Suche...", - "searchOrCommand": "Suche oder führe Befehl aus...", - "searchOrSupportedCommand": "Suche oder nutze eines Ihrer verfügbaren Befehle:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Typen", "video": "Video", - "writeToSearch": "Hier schreiben zum Suchen" + "search": "Suche...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuten", "hours": "Stunden", "days": "Tage" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/es.json b/src/i18n/es.json index 85baee15..66d63414 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Cerrar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "¡Link copiado!" }, "errors": { - "forbidden": "No eres bienvenido aquí.", + "forbidden": "You don't have permissions to access this.", "internal": "La verdad es que algo ha ido mal.", "notFound": "No se puede acceder a este lugar." }, @@ -75,11 +76,11 @@ }, "login": { "password": "Contraseña", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "Confirmación de contraseña", "submit": "Iniciar sesión", - "createAnAccount": "Create an account", + "createAnAccount": "Crear una cuenta", "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", + "passwordsDontMatch": "Las contraseñas no coinciden", "usernameTaken": "Username already taken", "signup": "Signup", "username": "Usuario", @@ -120,9 +121,9 @@ "settings": { "instanceName": "Instance name", "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", + "documentation": "documentación", "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", + "disableExternalLinks": "Deshabilitar enlaces externos (excepto documentación)", "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", "admin": "Admin", "administrator": "Administrador", @@ -132,7 +133,7 @@ "allowPublish": "Publicar nuevos posts y páginas", "avoidChanges": "(dejar en blanco para evitar cambios)", "changePassword": "Cambiar contraseña", - "commandRunner": "Command runner", + "commandRunner": "Executor de comandos", "commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.", "commandsUpdated": "¡Comandos actualizados!", "customStylesheet": "Modificar hoja de estilos", @@ -163,25 +164,28 @@ "username": "Usuario", "users": "Usuarios", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", + "allowSignup": "Permitir registro de usuarios", "insertRegex": "Insert regex expression", - "insertPath": "Insert the path", + "insertPath": "Introduce la ruta", "userUpdated": "¡Usuario actualizado!", - "generalSettings": "General settings", - "userDefaults": "User default settings", + "userDefaults": "Configuración de usuario por defecto", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "edit": "Edit files", - "execute": "Execute commands", + "create": "Crear ficheros y directorios", + "delete": "Eliminar ficheros y directorios", + "download": "Descargar", + "modify": "Edit files", + "execute": "Executar comandos", "rename": "Rename or move files and directories", - "share": "Share files" + "share": "Compartir ficheros" } }, "sidebar": { "help": "Ayuda", + "login": "Login", + "signup": "Signup", "logout": "Cerrar sesión", "myFiles": "Mis archivos", "newFile": "Nuevo archivo", @@ -194,18 +198,12 @@ "search": { "images": "Images", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Presiona enter para ejecutar.", - "pressToSearch": "Presiona enter para buscar.", - "search": "Buscar...", - "searchOrCommand": "Buscar o ejecutar un comando...", - "searchOrSupportedCommand": "Buscar o ejecutar uno de los comandos soportados:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeo", - "writeToSearch": "Escribe aquí para buscar" + "search": "Buscar...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Días" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 126b792a..f5d7d88f 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Annuler", "close": "Fermer", "copy": "Copier", @@ -37,7 +38,7 @@ "linkCopied": "Link copied!" }, "errors": { - "forbidden": "Vous n'êtes pas autorisé à être ici.", + "forbidden": "You don't have permissions to access this.", "internal": "Aïe ! Quelque chose s'est mal passé.", "notFound": "Impossible d'accéder à cet emplacement." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utilisateur mis à jour !", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Aide", + "login": "Login", + "signup": "Signup", "logout": "Se déconnecter", "myFiles": "Mes fichiers", "newFile": "Nouveau fichier", @@ -194,18 +198,12 @@ "search": { "images": "Images", "music": "Musique", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Appuyez sur Entrée pour exécuter", - "pressToSearch": "Appuyez sur Entrée pour lancer la recherche", - "search": "Recherche en cours...", - "searchOrCommand": "Rechercher ou exécuter une commande...", - "searchOrSupportedCommand": "Lancez une recherche ou exécutez une commande parmis les suivantes :", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Types", "video": "Video", - "writeToSearch": "Ecrivez ici pour lancer une recherche" + "search": "Recherche en cours...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutes", "hours": "Heures", "days": "Jours" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/it.json b/src/i18n/it.json index 9e066b73..9537ab87 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Annulla", "close": "Chiudi", "copy": "Copia", @@ -37,7 +38,7 @@ "linkCopied": "Link copiato!" }, "errors": { - "forbidden": "Spiecente, sembra che tu non abbia i permessi per accedere a questa pagina.", + "forbidden": "You don't have permissions to access this.", "internal": "Qualcosa è andato veramente male.", "notFound": "Questo percorso non può essere raggiunto." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utente aggiornato!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Aiuto", + "login": "Login", + "signup": "Signup", "logout": "Esci", "myFiles": "I miei file", "newFile": "Nuovo file", @@ -194,18 +198,12 @@ "search": { "images": "Immagini", "music": "Musica", - "notSupportedCommand": "Questo no nè un comando supportato.", "pdf": "PDF", - "pressToExecute": "Premi invio per eseguire.", - "pressToSearch": "Permi invio per cercare.", - "search": "Cerca...", - "searchOrCommand": "Cerca o esegui un comando...", - "searchOrSupportedCommand": "Cerca o anteponi '$' e usa uno dei comandi supportati:", - "typeCommand": "Scrivi e premi invio per eseguire.", - "typeSearch": "Scrivi e premi invio per cercare.", "types": "Tipi", "video": "Video", - "writeToSearch": "Scrivi qui per cercare" + "search": "Cerca...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuti", "hours": "Ore", "days": "Giorni" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ja.json b/src/i18n/ja.json index 421defe9..30e040ca 100644 --- a/src/i18n/ja.json +++ b/src/i18n/ja.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "キャンセル", "close": "閉じる", "copy": "コピー", @@ -37,7 +38,7 @@ "linkCopied": "リンクがコピーされました!" }, "errors": { - "forbidden": "アクセスが拒否されました。", + "forbidden": "You don't have permissions to access this.", "internal": "内部エラーが発生しました。", "notFound": "リソースが見つからなりませんでした。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "ユーザーは更新されました!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "ヘルプ", + "login": "Login", + "signup": "Signup", "logout": "ログアウト", "myFiles": "私のファイル", "newFile": "新しいファイルを作成", @@ -194,18 +198,12 @@ "search": { "images": "画像", "music": "音楽", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Enter を押して実行します。", - "pressToSearch": "Enter を押して検索します。", - "search": "検索...", - "searchOrCommand": "コマンドを検索または実行します。", - "searchOrSupportedCommand": "サポートしているコマンドを検索または実行します:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "種類", "video": "ビデオ", - "writeToSearch": "ここにキーワードを入力してください" + "search": "検索...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分", "hours": "時間", "days": "日" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ko.json b/src/i18n/ko.json index e18ceabc..466daa51 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -1,6 +1,7 @@ { "permanent": "영구적인", "buttons": { + "shell": "Toggle shell", "cancel": "취소", "close": "닫기", "copy": "복사", @@ -37,7 +38,7 @@ "linkCopied": "링크가 복사되었습니다!" }, "errors": { - "forbidden": "허가되지 않은 접속입니다!", + "forbidden": "You don't have permissions to access this.", "internal": "먼가 오류가 있네요?!", "notFound": "해당 경로를 찾을 수 없습니다." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "유저 정보 업데이트 완료!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "도움(Help)", + "login": "Login", + "signup": "Signup", "logout": "로그아웃", "myFiles": "내 파일들", "newFile": "새로운 파일", @@ -194,18 +198,12 @@ "search": { "images": "이미지", "music": "음악", - "notSupportedCommand": "지원 되지 않은 커맨드입니다.", "pdf": "PDF", - "pressToExecute": "엔터를 누르시면 실행합니다.", - "pressToSearch": "엔터를 누르시면 검색됩니다.", - "search": "검색...", - "searchOrCommand": "커맨드를 검색하거나 실행합니다...", - "searchOrSupportedCommand": "검색하거나 '$'를 앞에 붙여 지원되는 커맨드들을 사용해보세요:", - "typeCommand": "엔터를 누르시면 실행합니다.", - "typeSearch": "엔터를 누르시면 검색됩니다.", "types": "Types", "video": "비디오", - "writeToSearch": "검색하고 싶은것을 적어주세요" + "search": "검색...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "분", "hours": "시", "days": "일" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pl.json b/src/i18n/pl.json index 1c85b452..d758ef09 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -1,6 +1,7 @@ { "permanent": "Permanent", "buttons": { + "shell": "Toggle shell", "cancel": "Anuluj", "close": "Zamknij", "copy": "Kopiuj", @@ -37,7 +38,7 @@ "linkCopied": "Link Skopiowany!" }, "errors": { - "forbidden": "Nie jesteś tu mile widziany.", + "forbidden": "You don't have permissions to access this.", "internal": "Pojawił się poważny problem.", "notFound": "Ten adres nie jest poprawny." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Użytkownik zapisany!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Pomoc", + "login": "Login", + "signup": "Signup", "logout": "Wyloguj", "myFiles": "Moje pliki", "newFile": "Nowy plik", @@ -194,18 +198,12 @@ "search": { "images": "Zdjęcia", "music": "Muzyka", - "notSupportedCommand": "Polecenie niedozwolone.", "pdf": "PDF", - "pressToExecute": "Naciśniej Enter aby wykonać.", - "pressToSearch": "Naciśnij Enter aby wyszukać.", - "search": "Szukaj...", - "searchOrCommand": "Szukaj lub wykonaj polecenie...", - "searchOrSupportedCommand": "Szukaj lub wpisz '$' i wybierz jedno z dostęnych poleceń:", - "typeCommand": "Wpisz i naciśnij Enter aby wykonać.", - "typeSearch": "Wpisz i naciśni Enter aby wyszukać.", "types": "Typy", "video": "Video", - "writeToSearch": "Wpisz tu aby wyszukać" + "search": "Szukaj...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minuty", "hours": "Godziny", "days": "Dni" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pt-br.json b/src/i18n/pt-br.json index 7e2b64c0..9bfa399c 100644 --- a/src/i18n/pt-br.json +++ b/src/i18n/pt-br.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Fechar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "Link copiado!" }, "errors": { - "forbidden": "Ops! Você não pode acessar aqui.", + "forbidden": "You don't have permissions to access this.", "internal": "Ops! Algum erro ocorreu.", "notFound": "Ops! Nada foi encontrado." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Usuário atualizado!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Ajuda", + "login": "Login", + "signup": "Signup", "logout": "Sair", "myFiles": "Arquivos", "newFile": "Novo arquivo", @@ -194,18 +198,12 @@ "search": { "images": "Imagens", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Pressione enter para executar.", - "pressToSearch": "Pressione enter para pesquisar.", - "search": "Pesquise...", - "searchOrCommand": "Pesquise ou execute um comando...", - "searchOrSupportedCommand": "Pesquise ou utilize um dos seus comandos:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeos", - "writeToSearch": "Escreva aqui para pesquisar" + "search": "Pesquise...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Dias" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/pt.json b/src/i18n/pt.json index 7cc44002..2afe8bb6 100644 --- a/src/i18n/pt.json +++ b/src/i18n/pt.json @@ -1,6 +1,7 @@ { "permanent": "Permanente", "buttons": { + "shell": "Toggle shell", "cancel": "Cancelar", "close": "Fechar", "copy": "Copiar", @@ -37,7 +38,7 @@ "linkCopied": "Link copiado!" }, "errors": { - "forbidden": "Tu não és bem-vindo aqui.", + "forbidden": "You don't have permissions to access this.", "internal": "Algo correu bastante mal.", "notFound": "Não conseguimos chegar a esta localização." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Utilizador atualizado!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Ajuda", + "login": "Login", + "signup": "Signup", "logout": "Sair", "myFiles": "Ficheiros", "newFile": "Novo ficheiro", @@ -194,18 +198,12 @@ "search": { "images": "Imagens", "music": "Música", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "Prima enter para executar.", - "pressToSearch": "Prima enter para pesquisar.", - "search": "Pesquise...", - "searchOrCommand": "Pesquise ou execute um comando...", - "searchOrSupportedCommand": "Pesquise ou utilize um dos seus comandos:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "Tipos", "video": "Vídeos", - "writeToSearch": "Escreva aqui para pesquisar" + "search": "Pesquise...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Minutos", "hours": "Horas", "days": "Dias" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 3e19d58e..5699682b 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -1,6 +1,7 @@ { "permanent": "Постоянный", "buttons": { + "shell": "Toggle shell", "cancel": "Отмена", "close": "Закрыть", "copy": "Копировать", @@ -37,7 +38,7 @@ "linkCopied": "Ссылка скопирована!" }, "errors": { - "forbidden": "Доступ запрещен.", + "forbidden": "You don't have permissions to access this.", "internal": "Что-то пошло не так.", "notFound": "Неправильная ссылка." }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Пользователь изменен!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "Помощь", + "login": "Login", + "signup": "Signup", "logout": "Выход", "myFiles": "Файлы", "newFile": "Новый файл", @@ -194,18 +198,12 @@ "search": { "images": "Изображения", "music": "Музыка", - "notSupportedCommand": "Команда не поддерживается.", "pdf": "PDF", - "pressToExecute": "Enter для запуска.", - "pressToSearch": "Enter для поиска.", - "search": "Поиск...", - "searchOrCommand": "Поиск или выполнение команды...", - "searchOrSupportedCommand": "Поиск или выполнение команды, начинающейся с '$':", - "typeCommand": "Введи текст и нажми Enter для запуска.", - "typeSearch": "Введи текст и нажми Enter для поиска.", "types": "Типы", "video": "Видео", - "writeToSearch": "Введи текст для поиска" + "search": "Поиск...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "Минуты", "hours": "Часы", "days": "Дни" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 7ab25ba7..36fb96af 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "取消", "close": "关闭", "copy": "复制", @@ -37,7 +38,7 @@ "linkCopied": "链接已复制!" }, "errors": { - "forbidden": "你被禁止访问。", + "forbidden": "You don't have permissions to access this.", "internal": "服务器出了点问题。", "notFound": "找不到文件。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "用户已更新!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "帮助", + "login": "Login", + "signup": "Signup", "logout": "登出", "myFiles": "我的文件", "newFile": "新建文件", @@ -194,18 +198,12 @@ "search": { "images": "图像", "music": "音乐", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "按回车键执行。", - "pressToSearch": "按回车键搜索。", - "search": "搜索...", - "searchOrCommand": "搜索或者执行命令(Linux 代码)...", - "searchOrSupportedCommand": "搜索或加入\"$\"前缀以使用其中一个您可以使用的命令:", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "类型", "video": "视频", - "writeToSearch": "请输入要搜索的内容" + "search": "搜索...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分钟", "hours": "小时", "days": "天" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 3d7947cd..271a251e 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -1,6 +1,7 @@ { "permanent": "永久", "buttons": { + "shell": "Toggle shell", "cancel": "取消", "close": "關閉", "copy": "複製", @@ -37,7 +38,7 @@ "linkCopied": "連結已複製!" }, "errors": { - "forbidden": "你被禁止存取。", + "forbidden": "You don't have permissions to access this.", "internal": "伺服器出了點問題。", "notFound": "找不到檔案。" }, @@ -167,14 +168,15 @@ "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "使用者已更新!", - "generalSettings": "General settings", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", + "executeOnShell": "Execute on shell", + "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Create files and directories", "delete": "Delete files and directories", "download": "Download", - "edit": "Edit files", + "modify": "Edit files", "execute": "Execute commands", "rename": "Rename or move files and directories", "share": "Share files" @@ -182,6 +184,8 @@ }, "sidebar": { "help": "幫助", + "login": "Login", + "signup": "Signup", "logout": "登出", "myFiles": "我的檔案", "newFile": "建立檔案", @@ -194,18 +198,12 @@ "search": { "images": "影像", "music": "音樂", - "notSupportedCommand": "This is a not supported command.", "pdf": "PDF", - "pressToExecute": "按確定鍵執行。", - "pressToSearch": "按確定鍵搜尋。", - "search": "搜尋...", - "searchOrCommand": "搜尋或者執行命令...", - "searchOrSupportedCommand": "搜尋或使用您可以使用的命令(一次只能執行一個命令):", - "typeCommand": "Type and press enter to execute.", - "typeSearch": "Type and press enter to search.", "types": "類型", "video": "影片", - "writeToSearch": "請輸入要搜尋的內容" + "search": "搜尋...", + "typeToSearch": "Type to search...", + "pressToSearch": "Press enter to search..." }, "languages": { "ar": "العربية", @@ -229,5 +227,9 @@ "minutes": "分鐘", "hours": "小時", "days": "天" + }, + "download": { + "downloadFile": "Download File", + "downloadFolder": "Download Folder" } } \ No newline at end of file From ac512612e790e045151ba26f26a470ac04e27f45 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 09:49:41 +0000 Subject: [PATCH 055/134] fix: fixed header License: MIT Signed-off-by: Henrique Dias --- src/css/listing.css | 5 ----- src/css/mobile.css | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/css/listing.css b/src/css/listing.css index 2922f04e..994d396c 100644 --- a/src/css/listing.css +++ b/src/css/listing.css @@ -101,7 +101,6 @@ #listing.list { flex-direction: column; - padding-top: 3.25em; width: 100%; max-width: 100%; margin: 0; @@ -160,10 +159,6 @@ #listing.list .item.header { display: flex !important; background: #fafafa; - position: fixed; - width: calc(100% - 19em); - top: 7em; - right: 1em; z-index: 999; padding: .85em; border: 0; diff --git a/src/css/mobile.css b/src/css/mobile.css index da172ba6..556ca033 100644 --- a/src/css/mobile.css +++ b/src/css/mobile.css @@ -5,7 +5,6 @@ } @media (max-width: 1024px) { - #listing.list .item.header, main { width: calc(100% - 13em) } @@ -105,10 +104,6 @@ #listing { margin-bottom: 5em; } - #listing.list .item.header, - main { - width: calc(100% - 2em); - } main { margin: 0 1em; width: calc(100% - 2em); From 7a6397af22380eec65f20836d713256b5397d182 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 10:06:08 +0000 Subject: [PATCH 056/134] feat: show search progressively License: MIT Signed-off-by: Henrique Dias --- src/components/Search.vue | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/Search.vue b/src/components/Search.vue index 7c6086f3..211baf23 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -23,7 +23,7 @@ > -
+
-
    -
  • +
      +
    • folder insert_drive_file @@ -69,8 +69,6 @@ import { mapState, mapGetters, mapMutations } from "vuex" import url from "@/utils/url" import { search } from "@/api" -// TODO: show fifty at the tie - var boxes = { image: { label: "images", icon: "insert_photo" }, audio: { label: "music", icon: "volume_up" }, @@ -92,7 +90,7 @@ export default { } }, watch: { - show(val, old) { + show (val, old) { this.active = val === "search" if (old === "search" && !this.active) { @@ -102,12 +100,19 @@ export default { document.body.style.overflow = "auto" this.reset() + this.value = '' + this.active = false this.$refs.input.blur() } else if (this.active) { this.reload = false this.$refs.input.focus() document.body.style.overflow = "hidden" } + }, + value () { + if (this.results.length) { + this.reset() + } } }, computed: { @@ -125,6 +130,9 @@ export default { } return this.value === '' ? this.$t("search.typeToSearch") : this.$t("search.pressToSearch") + }, + filteredResults () { + return this.results.slice(0, this.resultsCount) } }, mounted() { @@ -133,6 +141,12 @@ export default { this.closeHovers() } }) + + this.$refs.result.addEventListener('scroll', event => { + if (event.target.offsetHeight + event.target.scrollTop >= event.target.scrollHeight - 100) { + this.resultsCount += 50 + } + }) }, methods: { ...mapMutations(["showHover", "closeHovers", "setReload"]), @@ -157,8 +171,6 @@ export default { this.$refs.input.focus() }, reset () { - this.value = '' - this.active = false this.ongoing = false this.resultsCount = 50 this.results = [] @@ -177,6 +189,7 @@ export default { this.ongoing = true + this.results = await search(path, this.value) this.ongoing = false } From 0e7d4ef110ee550375d4bf15dfa9ded70214076a Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 12:01:23 +0000 Subject: [PATCH 057/134] fix: drop to itself (close #33 ) License: MIT Signed-off-by: Henrique Dias --- src/api/files.js | 6 +++--- src/components/files/Listing.vue | 5 ----- src/components/files/ListingItem.vue | 17 ++++++++++++++--- src/components/prompts/Copy.vue | 2 +- src/components/prompts/Move.vue | 2 +- src/components/prompts/Rename.vue | 1 - 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/api/files.js b/src/api/files.js index 9ed7b793..917e46ec 100644 --- a/src/api/files.js +++ b/src/api/files.js @@ -116,9 +116,9 @@ function moveCopy (items, copy = false) { let promises = [] for (let item of items) { - let from = removePrefix(item.from) - let to = encodeURIComponent(removePrefix(item.to)) - let url = `${from}?action=${copy ? 'copy' : 'rename'}&destination=${to}` + const from = removePrefix(item.from) + const to = encodeURIComponent(removePrefix(item.to)) + const url = `${from}?action=${copy ? 'copy' : 'rename'}&destination=${to}` promises.push(resourceAction(url, 'PATCH')) } diff --git a/src/components/files/Listing.vue b/src/components/files/Listing.vue index 9d34a533..020d6879 100644 --- a/src/components/files/Listing.vue +++ b/src/components/files/Listing.vue @@ -242,11 +242,6 @@ export default { for (let item of this.$store.state.clipboard.items) { const from = item.from.endsWith('/') ? item.from.slice(0, -1) : item.from const to = this.$route.path + item.name - - if (from === to) { - return - } - items.push({ from, to }) } diff --git a/src/components/files/ListingItem.vue b/src/components/files/ListingItem.vue index 5556666d..2cb03b2b 100644 --- a/src/components/files/ListingItem.vue +++ b/src/components/files/ListingItem.vue @@ -55,6 +55,17 @@ export default { if (this.type === 'audio') return 'volume_up' if (this.type === 'video') return 'movie' return 'insert_drive_file' + }, + canDrop () { + if (!this.isDir) return false + + for (let i of this.selected) { + if (this.req.items[i].url === this.url) { + return false + } + } + + return true } }, methods: { @@ -77,7 +88,7 @@ export default { } }, dragOver: function (event) { - if (!this.isDir) return + if (!this.canDrop) return event.preventDefault() let el = event.target @@ -91,7 +102,7 @@ export default { el.style.opacity = 1 }, drop: function (event) { - if (!this.isDir) return + if (!this.canDrop) return event.preventDefault() if (this.selectedCount === 0) return @@ -101,7 +112,7 @@ export default { for (let i of this.selected) { items.push({ from: this.req.items[i].url, - to: this.url + encodeURIComponent(this.req.items[i].name) + to: this.url + this.req.items[i].name }) } diff --git a/src/components/prompts/Copy.vue b/src/components/prompts/Copy.vue index 91471bf4..42c262bf 100644 --- a/src/components/prompts/Copy.vue +++ b/src/components/prompts/Copy.vue @@ -49,7 +49,7 @@ export default { for (let item of this.selected) { items.push({ from: this.req.items[item].url, - to: this.dest + encodeURIComponent(this.req.items[item].name) + to: this.dest + this.req.items[item].name }) } diff --git a/src/components/prompts/Move.vue b/src/components/prompts/Move.vue index c827ea48..4aa67931 100644 --- a/src/components/prompts/Move.vue +++ b/src/components/prompts/Move.vue @@ -47,7 +47,7 @@ export default { for (let item of this.selected) { items.push({ from: this.req.items[item].url, - to: this.dest + encodeURIComponent(this.req.items[item].name) + to: this.dest + this.req.items[item].name }) } diff --git a/src/components/prompts/Rename.vue b/src/components/prompts/Rename.vue index f452e8df..2c35244e 100644 --- a/src/components/prompts/Rename.vue +++ b/src/components/prompts/Rename.vue @@ -68,7 +68,6 @@ export default { oldLink = this.req.items[this.selected[0]].url } - this.name = encodeURIComponent(this.name) newLink = url.removeLastDir(oldLink) + '/' + this.name try { From 90d690c187279b245c9e701268e7dcc07c4c4871 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 12:57:44 +0000 Subject: [PATCH 058/134] chore(deps-dev): bump @vue/cli-plugin-eslint from 3.2.2 to 3.3.0 (#68) Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli) from 3.2.2 to 3.3.0.
      Changelog *Sourced from [@vue/cli-plugin-eslint's changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md).* > # [3.3.0](https://github.com/vuejs/vue-cli/compare/v3.2.3...v3.3.0) (2019-01-08) > > ## babel-preset-app > > #### Features > > * replace babel-plugin-transform-vue-jsx with [[**vue**](https://github.com/vue)](https://github.com/vue)/babel-preset-jsx ([#3218](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3218)) ([f15dcf7](https://github.com/vuejs/vue-cli/commit/f15dcf7)) > > ## cli-service > > #### Bug Fixes > > * **cli-service:** fix copy plugin's ignore pattern (fix [#3119](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3119)) ([#3130](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3130)) ([8b4471e](https://github.com/vuejs/vue-cli/commit/8b4471e)) > * fix loaderOptions.postcss detection ([#3201](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3201)) ([d5b5e3b](https://github.com/vuejs/vue-cli/commit/d5b5e3b)), closes [#3194](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3194) > > ## cli-ui > > #### Bug Fixes > > * typo in welcome tips ([#3246](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3246)) [ci skip] ([4070507](https://github.com/vuejs/vue-cli/commit/4070507)) > > ## docs > > #### Features > > * deprecate confusing `baseUrl` option, use `publicPath` instead. ([#3143](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3143)) ([e7af0d8](https://github.com/vuejs/vue-cli/commit/e7af0d8)) > > > > # [3.2.3](https://github.com/vuejs/vue-cli/compare/v3.2.2...v3.2.3) (2019-01-03) > > ## cli-plugin-e2e-cypress > > #### Bug Fixes > > * make cypress config file compatible with eslint-config-airbnb rules ([0fc972e](https://github.com/vuejs/vue-cli/commit/0fc972e)) > > ## cli-plugin-unit-jest > > #### Bug Fixes > > * fix typo in jest config ([4feaacf](https://github.com/vuejs/vue-cli/commit/4feaacf)) > > ## cli-service > > #### Bug Fixes > > * fix a regression that `pages` doesn't allow entry-only string format ([a7fa191](https://github.com/vuejs/vue-cli/commit/a7fa191)), closes [#3233](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3233)
      Commits - [`04203aa`](https://github.com/vuejs/vue-cli/commit/04203aa4ee03fe3d15fa6f240a13dbf75a360ac3) chore: vue-cli-version-marker@3.3.0 - [`8975f06`](https://github.com/vuejs/vue-cli/commit/8975f0670d4e90513efbbee70ab311e90fa983e8) chore: 3.3.0 changelog [ci skip] - [`5937a67`](https://github.com/vuejs/vue-cli/commit/5937a67a48af1ff4c0053be787e8cd64440466df) v3.3.0 - [`bcdf6d0`](https://github.com/vuejs/vue-cli/commit/bcdf6d0938d5789e9938fa6e1948139ff71a4de6) chore: pre release sync - [`d5b5e3b`](https://github.com/vuejs/vue-cli/commit/d5b5e3bfde008f3229a199491f33de8d8d550807) fix: fix loaderOptions.postcss detection ([#3201](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3201)) - [`f15dcf7`](https://github.com/vuejs/vue-cli/commit/f15dcf7f48b80a3634b548f0486068b9f91f8dc3) feat: replace babel-plugin-transform-vue-jsx with @vue/babel-preset-jsx ([#3218](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3218)) - [`e7af0d8`](https://github.com/vuejs/vue-cli/commit/e7af0d8fa374311693f14d1605e7ae442e43c3a6) feat: deprecate confusing `baseUrl` option, use `publicPath` instead. ([#3143](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3143)) - [`8b4471e`](https://github.com/vuejs/vue-cli/commit/8b4471e78cefced2bbce5beab57e2655a654344f) fix(cli-service): fix copy plugin's ignore pattern (fix [#3119](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3119)) ([#3130](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3130)) - [`4070507`](https://github.com/vuejs/vue-cli/commit/4070507de64bee83c8e019e96c336068e3e950b9) fix: typo in welcome tips ([#3246](https://github-redirect.dependabot.com/vuejs/vue-cli/issues/3246)) [ci skip] - [`d88f2fa`](https://github.com/vuejs/vue-cli/commit/d88f2faf64e7fa75ad0ac14bf897f81214d2e3dd) chore: vue-cli-version-marker@3.2.3 - Additional commits viewable in [compare view](https://github.com/vuejs/vue-cli/compare/vue-cli-version-marker@3.2.2...vue-cli-version-marker@3.3.0)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=@vue/cli-plugin-eslint&package-manager=npm_and_yarn&previous-version=3.2.2&new-version=3.3.0)](https://dependabot.com/compatibility-score.html?dependency-name=@vue/cli-plugin-eslint&package-manager=npm_and_yarn&previous-version=3.2.2&new-version=3.3.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 111 +++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 77 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95610bdc..a16cd250 100644 --- a/package-lock.json +++ b/package-lock.json @@ -876,12 +876,12 @@ } }, "@vue/cli-plugin-eslint": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.2.2.tgz", - "integrity": "sha512-usaTfKjMq7mGkUyTkgoGT36XLnfWjbxTAK00Hl46u3Iz24/ACapS9/p5O+uMv2Lj7epYWV+C36g72agzRrMP9A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.3.0.tgz", + "integrity": "sha512-kL68xVHv8xFqB06DmzACSviuNPaJcTvlKrCeZarxrXecry2MiOhbyiBToCQXiu2YhfxH8pUy3GFsSRyn3eYEuw==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.2.2", + "@vue/cli-shared-utils": "^3.3.0", "babel-eslint": "^10.0.1", "eslint": "^4.19.1", "eslint-loader": "^2.1.1", @@ -889,6 +889,26 @@ "globby": "^8.0.1" }, "dependencies": { + "@vue/cli-shared-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.3.0.tgz", + "integrity": "sha512-V/sU1jc7/jMCAbU8uA5f4j9Yd8lTqdi3I6FEHfLG1nstwhaNi4BU3WKWOAl72NYVWFYG8VuCrYWDn75kMimtuw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "execa": "^1.0.0", + "joi": "^14.3.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "opn": "^5.3.0", + "ora": "^3.0.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "semver": "^5.5.0", + "string.prototype.padstart": "^3.0.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -910,6 +930,18 @@ "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } } }, "debug": { @@ -988,16 +1020,6 @@ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -1594,7 +1616,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -1750,7 +1772,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -1759,7 +1781,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -4693,7 +4715,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -4702,7 +4724,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -4767,7 +4789,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4788,12 +4811,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4808,17 +4833,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4935,7 +4963,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4947,6 +4976,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4961,6 +4991,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4968,12 +4999,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4992,6 +5025,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5072,7 +5106,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5084,6 +5119,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5169,7 +5205,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5205,6 +5242,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5224,6 +5262,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5267,12 +5306,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -8632,7 +8673,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -10406,7 +10447,7 @@ }, "vue-eslint-parser": { "version": "2.0.3", - "resolved": "http://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", "dev": true, "requires": { @@ -10695,7 +10736,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -10814,7 +10855,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { @@ -10825,7 +10866,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { diff --git a/package.json b/package.json index 2c25c1be..fcf9459b 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@vue/cli-plugin-babel": "^3.2.2", - "@vue/cli-plugin-eslint": "^3.2.2", + "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.2.3", "babel-eslint": "^10.0.1", "eslint": "^5.12.0", From ee169b3a466633bb9c477b5fbd4e167dbb098d40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 14:05:23 +0000 Subject: [PATCH 059/134] chore(deps-dev): bump @vue/cli-service from 3.2.3 to 3.3.0 (#69) Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli) from 3.2.3 to 3.3.0. - [Release notes](https://github.com/vuejs/vue-cli/releases) - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md) - [Commits](https://github.com/vuejs/vue-cli/compare/v3.2.3...vue-cli-version-marker@3.3.0) Signed-off-by: dependabot[bot] --- package-lock.json | 100 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index a16cd250..abd2c957 100644 --- a/package-lock.json +++ b/package-lock.json @@ -859,9 +859,9 @@ } }, "@vue/cli-overlay": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.2.0.tgz", - "integrity": "sha512-RKMSfgTtRs4VOXQhmbrNZJaCCheshebji9NcPNGyXzukCMBtoAbu3cG9HxizCSUA//oFFAdPP5BGeHvv0cpu/A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.3.0.tgz", + "integrity": "sha512-UyfeuX6txu8sRtfhJOJlPgETzU3KjshKY2qAnC34KJKcS+7oIYRpeOo8jMMLjImVE0g6d8Rn3A1GkXjRiKWW6w==", "dev": true }, "@vue/cli-plugin-babel": { @@ -1029,14 +1029,14 @@ } }, "@vue/cli-service": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.2.3.tgz", - "integrity": "sha512-lRCwf8R/YCo67SAqt1MiYhJnvybedQJz1O3uWSJzv7mDPwRUp2980gzQ3wfsTt0tkUtxRcAOmD+V1co4tWOgrw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.0.tgz", + "integrity": "sha512-7PNitKBBCFcGfCvXSiuUGV2GpGA6KEupQcuxQ2xPL5T3UMSAzJLpx7Siw/9++yO4nQEib6yP3YQk2zTfeXWTSA==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", - "@vue/cli-overlay": "^3.2.0", - "@vue/cli-shared-utils": "^3.2.2", + "@vue/cli-overlay": "^3.3.0", + "@vue/cli-shared-utils": "^3.3.0", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", "acorn": "^6.0.4", @@ -1101,9 +1101,9 @@ } }, "@vue/cli-shared-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.2.2.tgz", - "integrity": "sha512-pkJDucxDxSnmhN3/zgyvKXDFJDx42sfAdNo02mRYPhv3u2tqJW4/GR0X1/O8p4+LUNwBgtGNmDAACYoLzv101Q==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.3.0.tgz", + "integrity": "sha512-V/sU1jc7/jMCAbU8uA5f4j9Yd8lTqdi3I6FEHfLG1nstwhaNi4BU3WKWOAl72NYVWFYG8VuCrYWDn75kMimtuw==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -1121,9 +1121,9 @@ } }, "@vue/component-compiler-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.4.0.tgz", - "integrity": "sha512-LZyagnP+93GPiVHhu6HELEuHaSe83tfVrUgfl3ugwEc/k5yVbMu3OdaWrVqNo4hh1KK8o5fYOk2E/QpsfAxqiQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.5.0.tgz", + "integrity": "sha512-mSB8jWmE/ZeYZHPDEx9hNiiRh5P2V1Q0tObxEQWtxxfXtkIAvPnj7oucGm5SO8Y/QwIlDJgAGqHfj5MCjoKoOg==", "dev": true, "requires": { "consolidate": "^0.15.1", @@ -2752,9 +2752,9 @@ } }, "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "console-browserify": { @@ -4789,8 +4789,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -5205,8 +5204,7 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -5262,7 +5260,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5306,14 +5303,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -7754,21 +7749,52 @@ "dev": true }, "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.8.tgz", + "integrity": "sha512-WudsIzuTKRw9IInRTPBgVXJ7DKR26HT09Rxp0g3w0Fqh3TUtYICcUmvC0xURj04o3vdcDtnjCAUCECg/p341iQ==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.0.0" }, "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -10482,9 +10508,9 @@ "integrity": "sha512-qey+OyZSUIje0xJW8HZrvpIss1jW8yBBRe+0QlUn7HENU31m/+Med/u4pcwjoeCaErHU9WMscBEhqK5aAvvEEQ==" }, "vue-loader": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.5.0.tgz", - "integrity": "sha512-aw+eJsAxxmlD4Ad0ww4s69u4pGs4jjwv9WVDiW5qj2zPYSmgNPWaD0xCl5jQyqgtXstkzYurhdG49cpQmNgRgg==", + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.5.1.tgz", + "integrity": "sha512-gsTA9xRzu9jGBzkcrAB8my14RkHMzdr5rY/mCFmxgY2tOVsd2Z1MaYCDXHu5nX6PyHAsVK2/hXmarPln/2MiIw==", "dev": true, "requires": { "@vue/component-compiler-utils": "^2.4.0", @@ -10565,9 +10591,9 @@ } }, "webpack": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.3.tgz", - "integrity": "sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.1.tgz", + "integrity": "sha512-qAS7BFyS5iuOZzGJxyDXmEI289h7tVNtJ5XMxf6Tz55J2riOyH42uaEsWF0F32TRaI+54SmI6qRgHM3GzsZ+sQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.7.11", diff --git a/package.json b/package.json index fcf9459b..159a6e16 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@vue/cli-plugin-babel": "^3.2.2", "@vue/cli-plugin-eslint": "^3.3.0", - "@vue/cli-service": "^3.2.3", + "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", "eslint": "^5.12.0", "eslint-plugin-vue": "^5.1.0", From 2ed87febcb71c71588f53d5b6ed560cd5c99f526 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 8 Jan 2019 14:16:24 +0000 Subject: [PATCH 060/134] chore(deps-dev): bump @vue/cli-plugin-babel from 3.2.2 to 3.3.0 (#70) --- package-lock.json | 145 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 132 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index abd2c957..6881c9fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -838,10 +838,30 @@ "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", "dev": true }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0-beta.1.tgz", + "integrity": "sha512-N5uSbvShCF7pMuk4gOoMaM/oAhr4Vt5s1DRnevuhCeRP2UtwDC6GuFFNFuhuefOsWwpAX/PmrSxA6kDH/GGQlg==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0-beta.1.tgz", + "integrity": "sha512-/ZV09X4BtA5OPdnQqQaxhD1aRBQF8PVY/ZUnQtrk4jld7+Mfy9CxT4gCznoJ+KFooCbyjvwhotB72Hg7N3T4zg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, "@vue/babel-preset-app": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.2.2.tgz", - "integrity": "sha512-qQkf/bAATfwC1aTKpjPXPeoITSV0uJaeCYrlBXrAH93+ycKWkK+mz7hjwYlGVo7xM/UTICXd3H14XPn1svK5yg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.3.0.tgz", + "integrity": "sha512-ZnuzErAub1hiFp9c/BI94JMEG7AcbS3/nqToJofOYJFspwWerozxefHF3i3owy6KymBQODVetdyI+iZu80b23A==", "dev": true, "requires": { "@babel/plugin-proposal-class-properties": "^7.0.0", @@ -852,12 +872,86 @@ "@babel/preset-env": "^7.0.0", "@babel/runtime": "^7.0.0", "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0-beta.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-plugin-dynamic-import-node": "^2.2.0", "babel-plugin-transform-vue-jsx": "^4.0.1", "core-js": "^2.6.1" } }, + "@vue/babel-preset-jsx": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0-beta.1.tgz", + "integrity": "sha512-Nx6+KEJKApsofsYElwFaU7bnBWjMatAgUBFR45qMNl2KpwVOrgNABCbrX/9IqxZIOGCpRuzD96pWmnxFnu2HVQ==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "@vue/babel-sugar-functional-vue": "^1.0.0-beta.1", + "@vue/babel-sugar-inject-h": "^1.0.0-beta.1", + "@vue/babel-sugar-v-model": "^1.0.0-beta.1", + "@vue/babel-sugar-v-on": "^1.0.0-beta.1" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0-beta.1.tgz", + "integrity": "sha512-FD53t0SxlkNtCk78C/fl1WR79tOLYMOEcku0ie0nKhjn/gy56fhYOMlUjutjE/mdVa4wHSHnz2WC7N8e4zbxPg==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0-beta.1.tgz", + "integrity": "sha512-/0Key+jZfxjRb1b7NPS29rrYzPXGqoYxRim54eVFzcAF255O5DCcBDbePGb/ktza2aA8ZvzPfnc/uNxcLA82FQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0-beta.1.tgz", + "integrity": "sha512-TLcBppivEHL9oeAafLfxBG3M4FFnVp1BX8joBJwvfgMOFgarNux8QhttbqQSMAAVX4j6GOf1xlXpXK2odQHB0w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0-beta.1.tgz", + "integrity": "sha512-K+QecqeKZseWoGkxMAuV08XqumPqBpQ681NwFsSZyj6Pfz5XpEPPlCH3nQ+7KC4yxjbH9bjIGVtkpvbONIfbvA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.0.0-beta.1", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } + } + }, "@vue/cli-overlay": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.3.0.tgz", @@ -865,13 +959,13 @@ "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.2.2.tgz", - "integrity": "sha512-ya2UbXs3+Ac/qxnrdChhtM/0JBNifpeO05jL83Q31d3P+AHGp9psqVLHTdB9zReuHri5OAXSGUg1wpQUYNZyYQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.3.0.tgz", + "integrity": "sha512-HS5DwLe42fmkDgu4+78zMITNK+WiLoHKHBCCOuoEqjmsvvKaH/ByCGJOHYgTTe0aI+AiTAAkR2sZ2YulAjlvlQ==", "dev": true, "requires": { "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.2.2", + "@vue/babel-preset-app": "^3.3.0", "babel-loader": "^8.0.4" } }, @@ -4789,7 +4883,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5204,7 +5299,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5260,6 +5356,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5303,12 +5400,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -5650,6 +5749,12 @@ "uglify-js": "3.4.x" } }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -6366,9 +6471,9 @@ "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" }, "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.5.tgz", + "integrity": "sha512-ap2aTez3WZASzMmJvgvG+nsrCCrtHPQ+4YB+WQjYQpXgLkM+WqwkpzdlVs5l7Xhk128I/CisIk4CdXl7pIchUA==", "dev": true }, "js-message": { @@ -6648,6 +6753,12 @@ "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=", "dev": true }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, "lodash.mapvalues": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", @@ -9723,6 +9834,12 @@ "has-flag": "^3.0.0" } }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, "svgo": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.1.1.tgz", diff --git a/package.json b/package.json index 159a6e16..c08f99ae 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "vuex-router-sync": "^5.0.0" }, "devDependencies": { - "@vue/cli-plugin-babel": "^3.2.2", + "@vue/cli-plugin-babel": "^3.3.0", "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", From bc518a0e82ca2a4eeb798149f3772b9e5cc9fff2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 14 Jan 2019 12:52:21 +0000 Subject: [PATCH 061/134] chore(deps): bump vue and vue-template-compiler (#72) Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together. Updates `vue` from 2.5.21 to 2.5.22 - [Release notes](https://github.com/vuejs/vue/releases) - [Commits](https://github.com/vuejs/vue/compare/v2.5.21...v2.5.22) Updates `vue-template-compiler` from 2.5.21 to 2.5.22 - [Release notes](https://github.com/vuejs/vue/releases) - [Commits](https://github.com/vuejs/vue/compare/v2.5.21...v2.5.22) Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6881c9fc..6117dad7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10584,9 +10584,9 @@ } }, "vue": { - "version": "2.5.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.21.tgz", - "integrity": "sha512-Aejvyyfhn0zjVeLvXd70h4hrE4zZDx1wfZqia6ekkobLmUZ+vNFQer53B4fu0EjWBSiqApxPejzkO1Znt3joxQ==" + "version": "2.5.22", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.22.tgz", + "integrity": "sha512-pxY3ZHlXNJMFQbkjEgGVMaMMkSV1ONpz+4qB55kZuJzyJOhn6MSy/YZdzhdnumegNzVTL/Dn3Pp4UrVBYt1j/g==" }, "vue-eslint-parser": { "version": "2.0.3", @@ -10653,9 +10653,9 @@ } }, "vue-template-compiler": { - "version": "2.5.21", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz", - "integrity": "sha512-Vmk5Cv7UcmI99B9nXJEkaK262IQNnHp5rJYo+EwYpe2epTAXqcVyExhV6pk8jTkxQK2vRc8v8KmZBAwdmUZvvw==", + "version": "2.5.22", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.22.tgz", + "integrity": "sha512-1VTw/NPTUeHNiwhkq6NkFzO7gYLjFCueBN0FX8NEiQIemd5EUMQ5hxrF7O0zCPo5tae+U9S/scETPea+hIz8Eg==", "dev": true, "requires": { "de-indent": "^1.0.2", diff --git a/package.json b/package.json index c08f99ae..9da558c2 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "moment": "^2.23.0", "normalize.css": "^8.0.1", "noty": "^3.2.0-beta", - "vue": "^2.5.21", + "vue": "^2.5.22", "vue-i18n": "^8.7.0", "vue-router": "^3.0.2", "vuex": "^3.0.1", @@ -30,7 +30,7 @@ "babel-eslint": "^10.0.1", "eslint": "^5.12.0", "eslint-plugin-vue": "^5.1.0", - "vue-template-compiler": "^2.5.21" + "vue-template-compiler": "^2.5.22" }, "eslintConfig": { "root": true, From de53b24536f11c11584a1b0bc272b462bd993c56 Mon Sep 17 00:00:00 2001 From: freedomlang Date: Wed, 16 Jan 2019 22:31:26 +0800 Subject: [PATCH 062/134] update i18n for simplified chinese --- src/i18n/zh-cn.json | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 36fb96af..8638cfc0 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -1,7 +1,7 @@ { "permanent": "永久", "buttons": { - "shell": "Toggle shell", + "shell": "激活 shell", "cancel": "取消", "close": "关闭", "copy": "复制", @@ -38,7 +38,7 @@ "linkCopied": "链接已复制!" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "你无权限访问", "internal": "服务器出了点问题。", "notFound": "找不到文件。" }, @@ -76,13 +76,13 @@ }, "login": { "password": "密码", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "确认密码", "submit": "登录", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", - "signup": "Signup", + "createAnAccount": "创建用户", + "loginInstead": "已有用户登录", + "passwordsDontMatch": "密码不一致", + "usernameTaken": "用户名已经被使用", + "signup": "注册", "username": "用户名", "wrongCredentials": "用户名或密码错误" }, @@ -164,28 +164,28 @@ "username": "用户名", "users": "用户", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", - "insertRegex": "Insert regex expression", + "allowSignup": "允许用户注册", + "insertRegex": "插入正则表达式", "insertPath": "Insert the path", "userUpdated": "用户已更新!", - "userDefaults": "User default settings", - "defaultUserDescription": "This are the default settings for new users.", + "userDefaults": "用户默认设置", + "defaultUserDescription": "这些是新用户的默认设置", "executeOnShell": "Execute on shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "modify": "Edit files", - "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "create": "创建文件和文件夹", + "delete": "删除文件和文件夹", + "download": "下载", + "modify": "编辑", + "execute": "执行命令", + "rename": "重命名或移动文件和文件夹", + "share": "分享文件" } }, "sidebar": { "help": "帮助", - "login": "Login", - "signup": "Signup", + "login": "登录", + "signup": "注册", "logout": "登出", "myFiles": "我的文件", "newFile": "新建文件", @@ -202,8 +202,8 @@ "types": "类型", "video": "视频", "search": "搜索...", - "typeToSearch": "Type to search...", - "pressToSearch": "Press enter to search..." + "typeToSearch": "输入搜索...", + "pressToSearch": "回车搜索..." }, "languages": { "ar": "العربية", @@ -229,7 +229,7 @@ "days": "天" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "下载文件", + "downloadFolder": "下载文件夹" } } \ No newline at end of file From e1e8979e0bece8ba85fffa07c0080448ce4ca2b4 Mon Sep 17 00:00:00 2001 From: freedomlang Date: Wed, 16 Jan 2019 22:51:28 +0800 Subject: [PATCH 063/134] update language file for zh-tw --- src/i18n/zh-tw.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 271a251e..3da4d942 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -82,7 +82,7 @@ "loginInstead": "Already have an account", "passwordsDontMatch": "Passwords don't match", "usernameTaken": "Username already taken", - "signup": "Signup", + "signup": "註冊", "username": "帳號", "wrongCredentials": "帳號或密碼錯誤" }, @@ -173,19 +173,19 @@ "executeOnShell": "Execute on shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", - "download": "Download", - "modify": "Edit files", + "create": "建立檔案和資料夾", + "delete": "刪除檔案和資料夾", + "download": "下載", + "modify": "編輯檔案", "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "rename": "重命名或移動檔案/資料夾", + "share": "分享檔案" } }, "sidebar": { "help": "幫助", - "login": "Login", - "signup": "Signup", + "login": "登入", + "signup": "註冊", "logout": "登出", "myFiles": "我的檔案", "newFile": "建立檔案", @@ -229,7 +229,7 @@ "days": "天" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "下載檔案", + "downloadFolder": "下載資料夾" } } \ No newline at end of file From 6c1bbb324888e01466cd73c83c151ec8e42c17b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 18 Jan 2019 11:26:12 +0000 Subject: [PATCH 064/134] chore(deps): bump vuex from 3.0.1 to 3.1.0 Bumps [vuex](https://github.com/vuejs/vuex) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/vuejs/vuex/releases) - [Commits](https://github.com/vuejs/vuex/compare/v3.0.1...v3.1.0) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6117dad7..b7105843 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10669,9 +10669,9 @@ "dev": true }, "vuex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", - "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.0.tgz", + "integrity": "sha512-mdHeHT/7u4BncpUZMlxNaIdcN/HIt1GsGG5LKByArvYG/v6DvHcOxvDCts+7SRdCoIRGllK8IMZvQtQXLppDYg==" }, "vuex-router-sync": { "version": "5.0.0", diff --git a/package.json b/package.json index 9da558c2..a8efddeb 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "vue": "^2.5.22", "vue-i18n": "^8.7.0", "vue-router": "^3.0.2", - "vuex": "^3.0.1", + "vuex": "^3.1.0", "vuex-router-sync": "^5.0.0" }, "devDependencies": { From a438fc746f98e5b0c2d6ebfca447ab3c38db31a9 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 19 Jan 2019 08:37:32 +0000 Subject: [PATCH 065/134] feat: update translations (#76) License: MIT Signed-off-by: Henrique Dias --- src/i18n/de.json | 42 +++++++++++++++++++++--------------------- src/i18n/es.json | 20 ++++++++++---------- src/i18n/zh-cn.json | 18 +++++++++--------- src/i18n/zh-tw.json | 16 ++++++++-------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/i18n/de.json b/src/i18n/de.json index d31e567c..408f3043 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -38,7 +38,7 @@ "linkCopied": "Verweis wurde kopiert !" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "Sie haben keine Berechtigung dies abzurufen.", "internal": "Etwas ist schief gelaufen.", "notFound": "Dieser Ort kann nicht angezeigt werden." }, @@ -76,13 +76,13 @@ }, "login": { "password": "Passwort", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "Passwort Bestätigung", "submit": "Login", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", - "signup": "Signup", + "createAnAccount": "Account erstellen", + "loginInstead": "Account besteht bereits", + "passwordsDontMatch": "Passwörter stimmen nicht überein", + "usernameTaken": "Benutzername ist bereits vergeben", + "signup": "Registrieren", "username": "Benutzername", "wrongCredentials": "Falsche Zugangsdaten" }, @@ -121,9 +121,9 @@ "settings": { "instanceName": "Instance name", "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", + "documentation": "Dokumentation", "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", + "disableExternalLinks": "Externe Links deaktivieren (außer Dokumentation)", "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", "admin": "Admin", "administrator": "Administrator", @@ -164,28 +164,28 @@ "username": "Nutzername", "users": "Nutzer", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", - "allowSignup": "Allow users to signup", + "allowSignup": "Erlaube Benutzern sich zu registrieren", "insertRegex": "Insert regex expression", "insertPath": "Insert the path", "userUpdated": "Benutzer aktualisiert!", "userDefaults": "User default settings", "defaultUserDescription": "This are the default settings for new users.", - "executeOnShell": "Execute on shell", + "executeOnShell": "In shell ausführen", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { - "create": "Create files and directories", - "delete": "Delete files and directories", + "create": "Dateien und Ordner erstellen", + "delete": "Dateien und Ordner löschen", "download": "Download", "modify": "Edit files", - "execute": "Execute commands", - "rename": "Rename or move files and directories", - "share": "Share files" + "execute": "Befehle ausführen", + "rename": "Umbenennen oder Verschieben von Dateien oder Ordnern", + "share": "Datei teilen" } }, "sidebar": { "help": "Hilfe", - "login": "Login", - "signup": "Signup", + "login": "Anmelden", + "signup": "Registrieren", "logout": "Logout", "myFiles": "Meine Dateien", "newFile": "Neue Datei", @@ -202,7 +202,7 @@ "types": "Typen", "video": "Video", "search": "Suche...", - "typeToSearch": "Type to search...", + "typeToSearch": "Tippe um zu suchen...", "pressToSearch": "Press enter to search..." }, "languages": { @@ -229,7 +229,7 @@ "days": "Tage" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "Download Datei", + "downloadFolder": "Download Ordner" } } \ No newline at end of file diff --git a/src/i18n/es.json b/src/i18n/es.json index 66d63414..055a0157 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -1,7 +1,7 @@ { "permanent": "Permanente", "buttons": { - "shell": "Toggle shell", + "shell": "Presiona Enter para buscar...", "cancel": "Cancelar", "close": "Cerrar", "copy": "Copiar", @@ -79,9 +79,9 @@ "passwordConfirm": "Confirmación de contraseña", "submit": "Iniciar sesión", "createAnAccount": "Crear una cuenta", - "loginInstead": "Already have an account", + "loginInstead": "Usuario ya existente", "passwordsDontMatch": "Las contraseñas no coinciden", - "usernameTaken": "Username already taken", + "usernameTaken": "Nombre usuario no disponible", "signup": "Signup", "username": "Usuario", "wrongCredentials": "Usuario y/o contraseña incorrectos" @@ -119,7 +119,7 @@ "newArchetype": "Crea un nuevo post basado en un arquetipo. Tu archivo será creado en la carpeta de contenido." }, "settings": { - "instanceName": "Instance name", + "instanceName": "Nombre de la instancia", "brandingDirectoryPath": "Branding directory path", "documentation": "documentación", "branding": "Branding", @@ -165,20 +165,20 @@ "users": "Usuarios", "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", "allowSignup": "Permitir registro de usuarios", - "insertRegex": "Insert regex expression", + "insertRegex": "Introducir expresión regular", "insertPath": "Introduce la ruta", "userUpdated": "¡Usuario actualizado!", "userDefaults": "Configuración de usuario por defecto", "defaultUserDescription": "This are the default settings for new users.", - "executeOnShell": "Execute on shell", + "executeOnShell": "Ejecutar en la shell", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "Crear ficheros y directorios", "delete": "Eliminar ficheros y directorios", "download": "Descargar", - "modify": "Edit files", + "modify": "Editar ficheros", "execute": "Executar comandos", - "rename": "Rename or move files and directories", + "rename": "Renombrar o mover ficheros y directorios", "share": "Compartir ficheros" } }, @@ -229,7 +229,7 @@ "days": "Días" }, "download": { - "downloadFile": "Download File", - "downloadFolder": "Download Folder" + "downloadFile": "Descargar fichero", + "downloadFolder": "Descargar directorio" } } \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 8638cfc0..6950c66c 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -45,7 +45,7 @@ "files": { "folders": "文件夹", "files": "文件", - "body": "Body", + "body": "内容", "clear": "清空", "closePreview": "关闭预览", "home": "主页", @@ -120,11 +120,11 @@ }, "settings": { "instanceName": "Instance name", - "brandingDirectoryPath": "Branding directory path", - "documentation": "documentation", - "branding": "Branding", - "disableExternalLinks": "Disable external links (except documentation)", - "brandingHelp": "You can costumize how your File Browser instance looks and feels by changing its name, replacing the logo, adding custom styles and even disable external links to GitHub.\nFor more information about custom branding, please check out the {0}.", + "brandingDirectoryPath": "品牌信息文件夹路径", + "documentation": "帮助文档", + "branding": "品牌", + "disableExternalLinks": "禁止外部链接(帮助文档除外)", + "brandingHelp": "您可以通过改变名称,更换商标,加入自定义样式,甚至禁用外部链接来自定义File Browser的外观和给人的感觉。\n想获得更多信息,请查看 {0} 。", "admin": "管理员", "administrator": "管理员", "allowCommands": "执行命令(Linux 代码)", @@ -133,7 +133,7 @@ "allowPublish": "发布新的帖子与页面", "avoidChanges": "(留空以避免更改)", "changePassword": "更改密码", - "commandRunner": "Command runner", + "commandRunner": "命令执行器", "commandRunnerHelp": "Here you can set commands that are executed in the named events. You must write one per line. The environment variables {0} and {1} will be available, being {0} relative to {1}. For more information about this feature and the available environment variables, please read the {2}.", "commandsUpdated": "命令已更新!", "customStylesheet": "自定义样式表", @@ -163,14 +163,14 @@ "userManagement": "用户管理", "username": "用户名", "users": "用户", - "globalRules": "This is a global set of allow and disallow rules. They apply to every user. You can define specific rules on each user's settings to override this ones.", + "globalRules": "这是全局允许与禁止规则。它们作用于所有用户。您可以给每个用户定义单独的特殊规则来覆盖全局规则。", "allowSignup": "允许用户注册", "insertRegex": "插入正则表达式", "insertPath": "Insert the path", "userUpdated": "用户已更新!", "userDefaults": "用户默认设置", "defaultUserDescription": "这些是新用户的默认设置", - "executeOnShell": "Execute on shell", + "executeOnShell": "在Shell中执行", "executeOnShellDescription": "By default, File Browser executes the commands by calling their binaries directly. If you want to run them on a shell instead (such as Bash or PowerShell), you can define it here with the required arguments and flags. If set, the command you execute will be appended as an argument. This apply to both user commands and event hooks.", "perm": { "create": "创建文件和文件夹", diff --git a/src/i18n/zh-tw.json b/src/i18n/zh-tw.json index 3da4d942..3a4ce4f3 100644 --- a/src/i18n/zh-tw.json +++ b/src/i18n/zh-tw.json @@ -1,7 +1,7 @@ { "permanent": "永久", "buttons": { - "shell": "Toggle shell", + "shell": "切換 shell", "cancel": "取消", "close": "關閉", "copy": "複製", @@ -38,14 +38,14 @@ "linkCopied": "連結已複製!" }, "errors": { - "forbidden": "You don't have permissions to access this.", + "forbidden": "您無權訪問。", "internal": "伺服器出了點問題。", "notFound": "找不到檔案。" }, "files": { "folders": "資料夾", "files": "檔案", - "body": "Body", + "body": "内容", "clear": "清空", "closePreview": "關閉預覽", "home": "主頁", @@ -76,12 +76,12 @@ }, "login": { "password": "密碼", - "passwordConfirm": "Password Confirmation", + "passwordConfirm": "確認密碼", "submit": "登入", - "createAnAccount": "Create an account", - "loginInstead": "Already have an account", - "passwordsDontMatch": "Passwords don't match", - "usernameTaken": "Username already taken", + "createAnAccount": "新建賬戶", + "loginInstead": "已有賬戶登錄", + "passwordsDontMatch": "密碼不匹配", + "usernameTaken": "用戶名已存在", "signup": "註冊", "username": "帳號", "wrongCredentials": "帳號或密碼錯誤" From 0a46ac3e1ba682196e524453540c7baaf90e5e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 21 Jan 2019 14:55:46 +0000 Subject: [PATCH 066/134] chore(deps-dev): bump eslint from 5.12.0 to 5.12.1 (#80) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [eslint](https://github.com/eslint/eslint) from 5.12.0 to 5.12.1.
      Release notes *Sourced from [eslint's releases](https://github.com/eslint/eslint/releases).* > ## v5.12.1 > * [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) (薛定谔的猫) > * [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) (Peter Metz) > * [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) (Kai Cataldo) > * [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) (Kai Cataldo) > * [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) (Merlin Mason) > * [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) (Gabriel Cousin) > * [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) (Remco Haszing) > * [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) (eyal0803) > * [`da9174e`](https://github.com/eslint/eslint/commit/da9174e0798c1d785ddabb3ae405860fc5b89311) Docs: fixes typo peerDepencies ([#11252](https://github-redirect.dependabot.com/eslint/eslint/issues/11252)) (Christian Kühl) > * [`9c31625`](https://github.com/eslint/eslint/commit/9c31625f19176664ef76dcf088ce50703c41c324) Docs: Improve custom formatter docs ([#11258](https://github-redirect.dependabot.com/eslint/eslint/issues/11258)) (Nicholas C. Zakas)
      Changelog *Sourced from [eslint's changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md).* > v5.12.1 - January 18, 2019 > > * [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) (薛定谔的猫) > * [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) (Peter Metz) > * [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) (Kai Cataldo) > * [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) (Kai Cataldo) > * [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) (Merlin Mason) > * [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) (Gabriel Cousin) > * [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) (Remco Haszing) > * [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) (eyal0803) > * [`da9174e`](https://github.com/eslint/eslint/commit/da9174e0798c1d785ddabb3ae405860fc5b89311) Docs: fixes typo peerDepencies ([#11252](https://github-redirect.dependabot.com/eslint/eslint/issues/11252)) (Christian Kühl) > * [`9c31625`](https://github.com/eslint/eslint/commit/9c31625f19176664ef76dcf088ce50703c41c324) Docs: Improve custom formatter docs ([#11258](https://github-redirect.dependabot.com/eslint/eslint/issues/11258)) (Nicholas C. Zakas)
      Commits - [`faf3c4e`](https://github.com/eslint/eslint/commit/faf3c4eda0d27323630d0bc103a99dd0ecffe842) 5.12.1 - [`1010c98`](https://github.com/eslint/eslint/commit/1010c98b811a607753c20f8efff269865b86ad0c) Build: changelog update for 5.12.1 - [`eb5c401`](https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f) Chore: use meta.messages in some rules (2/4) (refs [#9870](https://github-redirect.dependabot.com/eslint/eslint/issues/9870)) ([#10773](https://github-redirect.dependabot.com/eslint/eslint/issues/10773)) - [`aa56247`](https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6) Fix: avoid loading core rules dynamically from FS in Linter ([#11278](https://github-redirect.dependabot.com/eslint/eslint/issues/11278)) - [`04450bb`](https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9) Docs: clarify process for adding committers ([#11272](https://github-redirect.dependabot.com/eslint/eslint/issues/11272)) - [`3ffcf26`](https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709) Docs: add [**g-plane**](https://github.com/g-plane) as committer ([#11277](https://github-redirect.dependabot.com/eslint/eslint/issues/11277)) - [`c403445`](https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67) Fix: warn constant on RHS of || in no-constant-condition (fixes [#11181](https://github-redirect.dependabot.com/eslint/eslint/issues/11181)) ([#11253](https://github-redirect.dependabot.com/eslint/eslint/issues/11253)) - [`9194f45`](https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e) Fix: Manage severity of 1 with TAP reporter (fixes [#11110](https://github-redirect.dependabot.com/eslint/eslint/issues/11110)) ([#11221](https://github-redirect.dependabot.com/eslint/eslint/issues/11221)) - [`000f495`](https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b) Docs: fix example for sort-imports ignoreDeclarationSort ([#11242](https://github-redirect.dependabot.com/eslint/eslint/issues/11242)) - [`7c0bf2c`](https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21) Docs: Add `npx` usage to Getting Started guide ([#11249](https://github-redirect.dependabot.com/eslint/eslint/issues/11249)) - Additional commits viewable in [compare view](https://github.com/eslint/eslint/compare/v5.12.0...v5.12.1)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=5.12.0&new-version=5.12.1)](https://dependabot.com/compatibility-score.html?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=5.12.0&new-version=5.12.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7105843..e0bfb4e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3901,9 +3901,9 @@ "dev": true }, "eslint": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.0.tgz", - "integrity": "sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.1.tgz", + "integrity": "sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4073,9 +4073,9 @@ } }, "table": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", - "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.1.tgz", + "integrity": "sha512-qmhNs2GEHNqY5fd2Mo+8N1r2sw/rvTAAvBZTaTx+Y7PHLypqyrxr1MdIu0pLw6Xvl/Gi4ONu/sdceP8vvUjkyA==", "dev": true, "requires": { "ajv": "^6.6.1", diff --git a/package.json b/package.json index a8efddeb..60e25cc7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@vue/cli-plugin-eslint": "^3.3.0", "@vue/cli-service": "^3.3.0", "babel-eslint": "^10.0.1", - "eslint": "^5.12.0", + "eslint": "^5.12.1", "eslint-plugin-vue": "^5.1.0", "vue-template-compiler": "^2.5.22" }, From 9264e344d7ef910c38ac1b057f36b6112a196b51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 21 Jan 2019 14:55:54 +0000 Subject: [PATCH 067/134] chore(deps): bump js-base64 from 2.5.0 to 2.5.1 (#79) Bumps [js-base64](https://github.com/dankogai/js-base64) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/dankogai/js-base64/releases) - [Commits](https://github.com/dankogai/js-base64/compare/2.5.0...2.5.1) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0bfb4e0..a48701bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6466,9 +6466,9 @@ } }, "js-base64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz", - "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" }, "js-levenshtein": { "version": "1.1.5", diff --git a/package.json b/package.json index 60e25cc7..f1b91695 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dependencies": { "ace-builds": "^1.4.2", "clipboard": "^2.0.4", - "js-base64": "^2.5.0", + "js-base64": "^2.5.1", "lodash.clonedeep": "^4.5.0", "material-design-icons": "^3.0.1", "moment": "^2.23.0", From 5d5cef2a877e3b283f6e5b717c6b2106c6022a25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 22 Jan 2019 17:33:32 +0000 Subject: [PATCH 068/134] chore(deps): bump moment from 2.23.0 to 2.24.0 (#83) Bumps [moment](https://github.com/moment/moment) from 2.23.0 to 2.24.0.
      Changelog *Sourced from [moment's changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md).* > ### 2.24.0 [See full changelog](https://gist.github.com/marwahaha/12366fe45bee328f33acf125d4cd540e) > > * Release Jan 21, 2019 > > * [#4338](https://github-redirect.dependabot.com/moment/moment/pull/4338) [bugfix] Fix startOf/endOf DST issues while boosting performance > * [#4553](https://github-redirect.dependabot.com/moment/moment/pull/4553) [feature] Add localeSort param to Locale weekday methods > * [#4887](https://github-redirect.dependabot.com/moment/moment/pull/4887) [bugfix] Make Duration#as work with quarters > * 3 new locales (it-ch, ga, en-SG) > * Lots of locale improvements
      Commits - [`96d0d67`](https://github.com/moment/moment/commit/96d0d6791ab495859d09a868803d31a55c917de1) Build 2.24.0 - [`f57faac`](https://github.com/moment/moment/commit/f57faac11ce872e145f2721c8ac84551bb8d7c21) Bump version to 2.24.0 - [`7eb0ea8`](https://github.com/moment/moment/commit/7eb0ea815ef68f8775dd0f742eb06c927b0be974) Update changelog for 2.24.0 - [`38a19a7`](https://github.com/moment/moment/commit/38a19a7c5b08c6ad5275dc2d4517d083fe0bbda6) [locale] fo: Fixed relativeTimes for m and M ([#4609](https://github-redirect.dependabot.com/moment/moment/issues/4609)) ([#4682](https://github-redirect.dependabot.com/moment/moment/issues/4682)) - [`01ae8ca`](https://github.com/moment/moment/commit/01ae8ca220d1ff84d3d26491eadea1afc5780d2b) [misc] Remove unused variable defaults ([#4959](https://github-redirect.dependabot.com/moment/moment/issues/4959)) - [`24e55df`](https://github.com/moment/moment/commit/24e55dfe72a0f462a1564ed6f827dfd2df24b526) [locale] Extend cs locale with name of the months in genitive ([#4771](https://github-redirect.dependabot.com/moment/moment/issues/4771)) - [`3b80f6a`](https://github.com/moment/moment/commit/3b80f6aab233121b902bbad7c92e9046c34a2b61) [feature] Add localeSort param to Locale weekday methods ([#4553](https://github-redirect.dependabot.com/moment/moment/issues/4553)) - [`bb484bc`](https://github.com/moment/moment/commit/bb484bc7b80520be14466bc49c244bf1433bd3bc) [locale] (es-us) long date is D [de] MMMM [de] YYYY ([#4954](https://github-redirect.dependabot.com/moment/moment/issues/4954)) - [`ba125e7`](https://github.com/moment/moment/commit/ba125e707089c45311a4d14cac92f873aef79f19) [bugfix] (TypeScript) allow update of a single relativeTime handler - [`91550f8`](https://github.com/moment/moment/commit/91550f810c424415559d28eabb9dc3247da24c11) [locale] Capitalization of pt month names ([#4557](https://github-redirect.dependabot.com/moment/moment/issues/4557)) - Additional commits viewable in [compare view](https://github.com/moment/moment/compare/2.23.0...2.24.0)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=moment&package-manager=npm_and_yarn&previous-version=2.23.0&new-version=2.24.0)](https://dependabot.com/compatibility-score.html?dependency-name=moment&package-manager=npm_and_yarn&previous-version=2.23.0&new-version=2.24.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index a48701bf..6122db29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7123,9 +7123,9 @@ } }, "moment": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.23.0.tgz", - "integrity": "sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "move-concurrently": { "version": "1.0.1", diff --git a/package.json b/package.json index f1b91695..51c22a91 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "js-base64": "^2.5.1", "lodash.clonedeep": "^4.5.0", "material-design-icons": "^3.0.1", - "moment": "^2.23.0", + "moment": "^2.24.0", "normalize.css": "^8.0.1", "noty": "^3.2.0-beta", "vue": "^2.5.22", From 3ed5f8c0bd53069e4ebf2fea724bb4f2f7eb1197 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 22 Jan 2019 17:33:41 +0000 Subject: [PATCH 069/134] chore(deps-dev): bump @vue/cli-service from 3.3.0 to 3.3.1 (#82) Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli) from 3.3.0 to 3.3.1.
      Commits - See full diff in [compare view](https://github.com/vuejs/vue-cli/commits)

      [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=@vue/cli-service&package-manager=npm_and_yarn&previous-version=3.3.0&new-version=3.3.1)](https://dependabot.com/compatibility-score.html?dependency-name=@vue/cli-service&package-manager=npm_and_yarn&previous-version=3.3.0&new-version=3.3.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot.
      --- package-lock.json | 147 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 75 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6122db29..9f25976a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1123,9 +1123,9 @@ } }, "@vue/cli-service": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.0.tgz", - "integrity": "sha512-7PNitKBBCFcGfCvXSiuUGV2GpGA6KEupQcuxQ2xPL5T3UMSAzJLpx7Siw/9++yO4nQEib6yP3YQk2zTfeXWTSA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.1.tgz", + "integrity": "sha512-fo8Mt4pi6GBxRywPxM3uPRAIW/SltauYPw9RHA44rHWpq2adb4B8REtkqBGXTrtQPw9zsdiqHr0djkVO/yv9BA==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", @@ -1172,7 +1172,7 @@ "thread-loader": "^1.2.0", "url-loader": "^1.1.2", "vue-loader": "^15.4.2", - "webpack": "4", + "webpack": ">=4 < 4.29", "webpack-bundle-analyzer": "^3.0.3", "webpack-chain": "^4.11.0", "webpack-dev-server": "^3.1.14", @@ -4244,9 +4244,9 @@ "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true }, "eventsource": { @@ -4864,9 +4864,9 @@ "dev": true }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", "dev": true, "optional": true, "requires": { @@ -4893,7 +4893,7 @@ "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, "dev": true, "optional": true, @@ -4919,7 +4919,7 @@ } }, "chownr": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true @@ -4958,7 +4958,7 @@ } }, "deep-extend": { - "version": "0.5.1", + "version": "0.6.0", "bundled": true, "dev": true, "optional": true @@ -5007,7 +5007,7 @@ } }, "glob": { - "version": "7.1.2", + "version": "7.1.3", "bundled": true, "dev": true, "optional": true, @@ -5027,12 +5027,12 @@ "optional": true }, "iconv-lite": { - "version": "0.4.21", + "version": "0.4.24", "bundled": true, "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -5097,17 +5097,17 @@ "optional": true }, "minipass": { - "version": "2.2.4", + "version": "2.3.5", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { - "version": "1.1.0", + "version": "1.2.1", "bundled": true, "dev": true, "optional": true, @@ -5131,7 +5131,7 @@ "optional": true }, "needle": { - "version": "2.2.0", + "version": "2.2.4", "bundled": true, "dev": true, "optional": true, @@ -5142,18 +5142,18 @@ } }, "node-pre-gyp": { - "version": "0.10.0", + "version": "0.10.3", "bundled": true, "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", - "needle": "^2.2.0", + "needle": "^2.2.1", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" @@ -5170,13 +5170,13 @@ } }, "npm-bundled": { - "version": "1.0.3", + "version": "1.0.5", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.1.10", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true, @@ -5253,12 +5253,12 @@ "optional": true }, "rc": { - "version": "1.2.7", + "version": "1.2.8", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -5288,16 +5288,16 @@ } }, "rimraf": { - "version": "2.6.2", + "version": "2.6.3", "bundled": true, "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.1.1", + "version": "5.1.2", "bundled": true, "dev": true, "optional": true @@ -5315,7 +5315,7 @@ "optional": true }, "semver": { - "version": "5.5.0", + "version": "5.6.0", "bundled": true, "dev": true, "optional": true @@ -5368,17 +5368,17 @@ "optional": true }, "tar": { - "version": "4.4.1", + "version": "4.4.8", "bundled": true, "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.2" } }, @@ -5389,12 +5389,12 @@ "optional": true }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { @@ -5404,7 +5404,7 @@ "optional": true }, "yallist": { - "version": "3.0.2", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true @@ -6693,9 +6693,9 @@ } }, "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "loader-utils": { @@ -7246,9 +7246,9 @@ } }, "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", "dev": true, "requires": { "assert": "^1.1.1", @@ -7258,7 +7258,7 @@ "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", - "events": "^1.0.0", + "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "0.0.0", @@ -7272,7 +7272,7 @@ "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", - "util": "^0.10.3", + "util": "^0.11.0", "vm-browserify": "0.0.4" }, "dependencies": { @@ -7636,9 +7636,9 @@ "dev": true }, "pako": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", - "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", "dev": true }, "parallel-transform": { @@ -7679,16 +7679,17 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-json": { @@ -7860,14 +7861,14 @@ "dev": true }, "postcss": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.8.tgz", - "integrity": "sha512-WudsIzuTKRw9IInRTPBgVXJ7DKR26HT09Rxp0g3w0Fqh3TUtYICcUmvC0xURj04o3vdcDtnjCAUCECg/p341iQ==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.13.tgz", + "integrity": "sha512-h8SY6kQTd1wISHWjz+E6cswdhMuyBZRb16pSTv3W4zYZ3/YbyWeJdNUeOXB5IdZqE1U76OUEjjjqsC3z2f3hVg==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^6.0.0" + "supports-color": "^6.1.0" }, "dependencies": { "chalk": { @@ -7899,9 +7900,9 @@ "dev": true }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -9513,9 +9514,9 @@ } }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -10499,9 +10500,9 @@ "dev": true }, "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" @@ -10663,9 +10664,9 @@ } }, "vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.8.1.tgz", + "integrity": "sha512-mxBBMuSaPG9+NkVMbh28r8gvWQJ8UXxqDxVNeLy2KBUZiSNxZsagjYwLL8gjROb4oaaYtwRv3K8gAmw76I/U7Q==", "dev": true }, "vuex": { @@ -10708,9 +10709,9 @@ } }, "webpack": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.1.tgz", - "integrity": "sha512-qAS7BFyS5iuOZzGJxyDXmEI289h7tVNtJ5XMxf6Tz55J2riOyH42uaEsWF0F32TRaI+54SmI6qRgHM3GzsZ+sQ==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", + "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.7.11", diff --git a/package.json b/package.json index 51c22a91..38cd3ee4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@vue/cli-plugin-babel": "^3.3.0", "@vue/cli-plugin-eslint": "^3.3.0", - "@vue/cli-service": "^3.3.0", + "@vue/cli-service": "^3.3.1", "babel-eslint": "^10.0.1", "eslint": "^5.12.1", "eslint-plugin-vue": "^5.1.0", From b394540f535b5e9720d7948017bdefe05ef1c7dd Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Wed, 23 Jan 2019 14:48:50 +0000 Subject: [PATCH 070/134] fix: only show size when is file or selection License: MIT Signed-off-by: Henrique Dias --- src/components/prompts/Info.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/prompts/Info.vue b/src/components/prompts/Info.vue index 60bdfdfc..3d1cc0d5 100644 --- a/src/components/prompts/Info.vue +++ b/src/components/prompts/Info.vue @@ -8,7 +8,7 @@

      {{ $t('prompts.filesSelected', { count: selected.length }) }}

      {{ $t('prompts.displayName') }} {{ name }}

      -

      {{ $t('prompts.size') }}: {{ humanSize }}

      +

      {{ $t('prompts.size') }}: {{ humanSize }}

      {{ $t('prompts.lastModified') }}: {{ humanTime }}