girder 3.2.9.dev8__tar.gz → 3.2.9.dev12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {girder-3.2.9.dev8/girder.egg-info → girder-3.2.9.dev12}/PKG-INFO +1 -1
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/assetstore.py +12 -3
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/file.py +15 -7
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/item.py +3 -3
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/assetstore.py +3 -2
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/file.py +1 -1
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/upload.py +8 -5
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/abstract_assetstore_adapter.py +6 -3
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/filesystem_assetstore_adapter.py +2 -2
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/gridfs_assetstore_adapter.py +2 -2
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/s3_assetstore_adapter.py +39 -13
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editAssetstoreWidget.pug +4 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/newAssetstore.pug +4 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js +4 -1
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js +2 -1
- {girder-3.2.9.dev8 → girder-3.2.9.dev12/girder.egg-info}/PKG-INFO +1 -1
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/constants.py +1 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/job_rest.py +4 -4
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/jobs_test.py +4 -4
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/publicNames.txt +1 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/Dockerfile +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/config.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/create_ansible_subtree.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/generatePyEnvChecksum.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/publish_npm.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/publish_pypi.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.codecov.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.dockerignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.editorconfig +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.github/workflows/codespell.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.readthedocs.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CHANGELOG.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CMakeLists.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CONTRIBUTING.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/Dockerfile +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/LICENSE +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/MANIFEST.in +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/README.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/Vagrantfile +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/README.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/girder_client/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/girder_client/cli.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/.yamllint +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/LICENSE +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/defaults/main.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/handlers/main.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/girder.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/meta/main.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/converge.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/prepare.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/requirements.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_access.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_apikey.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_assetstore.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_files.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_hierarchy.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_resources.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_setting.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_user.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/converge.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/molecule.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/prepare.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/pytest.ini +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/tests/test_default.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/tasks/main.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/tasks/nodejs.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/templates/daemon/girder.service.j2 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/hosts.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/playbook.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/provision.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/requirements.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/ansible.cfg +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/vagrant-playbook.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/vagrant-requirements.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docker-compose.yml +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/admin-docs.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/api-docs.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/build-docs.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/changelog.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/conf.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/configuration.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/dependencies.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/deployment-alternatives.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/deployment.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/dev-installation.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/developer-cookbook.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/developer-docs.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/development.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/external-web-clients.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/favicon.ico +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/images/dicom-viewer.png +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/index.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/license.png +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/migration-guide.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/mount.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/plugin-development.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/plugins.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/python-client.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/requirements-docs.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/security.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/sftp.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/user-docs.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/user-guide.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/access.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/api_docs.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/api_main.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/describe.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/docs.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/filter_logging.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/sftp.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/api_key.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/collection.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/folder.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/group.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/notification.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/resource.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/system.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/token.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/user.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/build.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/mount.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/serve.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/sftpd.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/shell.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/conf/girder.dist.cfg +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/constants.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/events.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/exceptions.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/_footer.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/_header.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/accountApproval.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/accountApproved.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/emailVerification.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/groupInvite.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/temporaryAccess.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/api_key.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/collection.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/folder.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/group.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/item.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/model_base.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/notification.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/setting.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/token.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/user.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/plugin.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/_cache.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/_hash_state.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/acl_mixin.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/assetstore_utilities.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/config.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/error.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/mail_utils.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/model_importer.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/path.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/progress.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/search.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/server.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/setting_utilities.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/system.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/webroot.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/webroot.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/ziputil.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/Gruntfile.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/.npmignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/package-lock.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/.npmignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/Gruntfile.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/fontello.config.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/package-lock.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/build.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/swagger.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/test.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.config.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.paths.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.plugins.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/package.json.template +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/.npmignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/package-lock.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/assets/Girder_Mark.png +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/auth.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/ApiKeyCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/AssetstoreCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/Collection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/CollectionCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/FileCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/FolderCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/GroupCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/ItemCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/UserCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/constants.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/dialog.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/events.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/misc.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/AccessControlledModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/ApiKeyModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/AssetstoreModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/CollectionCreationPolicyModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/CollectionModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/FileModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/FolderModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/GroupModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/ItemModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/MetadataMixin.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/Model.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/UserModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/pluginUtils.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/rest.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/router.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/apidocs/apidocs.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/adminConsole.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/assetstores.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/collectionList.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/collectionPage.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/frontPage.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/groupList.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/groupPage.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/itemPage.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/plugins.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/searchResultsList.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/systemConfig.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userAccount.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userList.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userPage.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/footer.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/global.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/globalNav.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/header.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/headerUser.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/layout.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/layoutVars.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/loading.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/progressArea.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/accessWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/browserWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/hierarchyWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/markdownWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/metadataWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/searchFieldWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/taskProgress.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/timelineWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/uploadWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/userOtpManagementWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/adminConsole.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/assetstores.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/collectionList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/collectionPage.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/filesystemImport.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/frontPage.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/groupList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/groupPage.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/itemPage.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/plugins.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/s3Import.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/searchResults.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/searchResultsType.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/systemConfiguration.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userAccount.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userPage.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/alert.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layout.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutFooter.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutGlobalNav.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutHeader.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutHeaderUser.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutProgressArea.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/loginDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/registerDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/resetPasswordDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditor.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditorMixins.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditorNonModal.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEntry.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/apiKeyList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/browserWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/checkedActionsMenu.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/collectionInfoDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/confirmDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/dateTimeRangeWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/dateTimeWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editApiKeyWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editCollectionWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editFileWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editFolderWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editGroupWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editItemWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/fileInfoDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/fileList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/folderInfoDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/folderList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupAdminList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupInviteDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupInviteList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupMemberList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupModList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyBreadcrumb.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyPaginated.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/itemBreadcrumb.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/itemList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/jsonMetadatumEditWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/jsonMetadatumView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/loadingAnimation.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/markdownWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadataWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadatumEditWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadatumView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/paginateWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/pluginConfigBreadcrumb.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/rootSelectorWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchField.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchHelp.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchModeSelect.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchResults.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/sortCollectionWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/taskProgress.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/timeline.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidgetMixins.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidgetNonModal.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpBegin.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpDisable.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpEnable.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/EventStream.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/PluginUtils.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/S3UploadHandler.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/jquery/girderEnable.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/jquery/girderModal.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/version.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/App.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/View.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/AdminView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/AssetstoresView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/CollectionView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/CollectionsView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FilesystemImportView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FolderView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FrontPageView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/GroupView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/GroupsView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/ItemView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/PluginsView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/S3ImportView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/SearchResultsView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/SystemConfigurationView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UserAccountView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UserView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UsersView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/FooterView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/GlobalNavView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/HeaderUserView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/HeaderView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/LoginView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/ProgressListView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/RegisterView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/ResetPasswordView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/AccessWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ApiKeyListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/BrowserWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/CheckedMenuWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/CollectionInfoWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/DateTimeRangeWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/DateTimeWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditApiKeyWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditCollectionWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditFileWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditFolderWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditGroupWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditItemWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FileInfoWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FileListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FolderInfoWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FolderListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupAdminsWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupInvitesWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupMembersWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupModsWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/HierarchyWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ItemBreadcrumbWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ItemListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/LoadingAnimation.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/MarkdownWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/MetadataWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/PaginateWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/PluginConfigBreadcrumbWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/RootSelectorWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SearchFieldWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SearchPaginateWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SortCollectionWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/TaskProgressWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/TimelineWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/UploadWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/UserOtpManagementWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/built/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/girder-swagger.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/img/Girder_Favicon.png +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/fake.jpg +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/ConsoleReporter.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/MIT.LICENSE.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.css +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/specRunner.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testEnv.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.csv +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.tsv +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile2 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testUtils.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/SOURCES.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/dependency_links.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/entry_points.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/not-zip-safe +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/requires.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/top_level.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/package-lock.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/.gitignore +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/cleanup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/report.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/constants.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/mail_templates/authorized_upload.uploadFinished.mako +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizeUpload.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizedUpload.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizeUpload.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizedUpload.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/folderActions.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizeUploadView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizedUploadView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/authorizedUploadSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/upload_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/autojoinSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/autojoin_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/event_helper.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomItem.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomSliceMetadata.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomItem.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomSliceMetadata.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/parseDicomItem.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/views/DicomView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/webpack.helper.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000000.dcm.sha512 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000001.dcm.sha512 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000002.dcm.sha512 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000003.dcm.sha512 +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/dicom_viewer_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/girder_download_statistics/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/download_statistics_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/files/txt1.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/files/txt2.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/plugin_tests/google_analytics_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/models/UserModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/plugin_tests/gravatar_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/stylesheets/hashsumDownloadFileInfoWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/config.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/hashsumDownloadFileInfoWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/views/FileInfoWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/hashsumSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/hashsum_download_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/constants.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/views/FrontPageView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/homepageSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/homepage_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/itemLicenseWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/selectLicenseWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/EditItemWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/HierarchyWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemLicenseWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/SelectLicenseWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/UploadWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/itemLicensesSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/item_licenses_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/models/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/models/job.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/JobStatus.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/collections/JobCollection.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/collections/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/models/JobModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/models/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/stylesheets/jobDetailsWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/stylesheets/jobListWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/adminViewMenuItem.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/headerUserViewMenu.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxContent.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxMenu.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobDetailsWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobList.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobListWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobsGraphWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/AdminView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/CheckBoxMenu.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/HeaderUserView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobDetailsWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobGraphWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/index.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/timeChartConfig.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/timingHistoryChartConfig.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/jobsSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/local_job_impl.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/editServerMixin.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/newServerTemplate.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/plugin_tests/ldap_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/base.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/bitbucket.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/box.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/cilogon.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/github.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/globus.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/google.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/linkedin.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/microsoft.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/stylesheets/oauthLoginView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/templates/oauthLoginView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/LoginView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/OAuthLoginView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/RegisterView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/plugin_tests/oauth_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/stylesheets/readmeWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/templates/readmeWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/views/HierarchyWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/plugin_tests/data/README.md +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/plugin_tests/readmeSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/models/CollectionModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/collectionInfoWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/editCollectionTermsWidget.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/termsAcceptance.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/collectionInfoWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/editCollectionTermsWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/termsAcceptance.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/CollectionInfoWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/EditCollectionWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/TermsAcceptanceView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/termsSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/terms_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/rest.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/utils.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/models/ThumbnailModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/createThumbnailView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/flowView.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewDialog.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewTargetDescription.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/fileListWidgetCreateButton.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/flowView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/itemView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/CreateThumbnailView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/FileListWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/FlowView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/ItemView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/worker.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/data/sample_dicom.dcm +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/thumbnail_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/thumbnailsSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/quota.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/settings.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/main.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/CollectionModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/UserModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/extendModel.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/package.json +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/routes.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/stylesheets/userQuota.styl +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/collectionViewPoliciesMenu.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/configView.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/quotaPoliciesWidget.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/userViewPoliciesMenu.pug +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/utilities/Conversions.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/CollectionView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/ConfigView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/QuotaPoliciesWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/UploadWidget.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/UserView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/extendView.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/userQuotaSpec.js +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/user_quota_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/girder_virtual_folders/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/plugin_tests/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/plugin_tests/virtual_folders_test.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/LICENSE +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/MANIFEST.in +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/__init__.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/assertions.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/fixtures.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/plugin.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/utils.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/web_client.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/requirements-dev.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/README.rst +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/migrate.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/requirements.txt +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/walk_girder.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/walk_midas.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/publicNames.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/test_names.sh +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/setup.cfg +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/setup.py +0 -0
- {girder-3.2.9.dev8 → girder-3.2.9.dev12}/tox.ini +0 -0
|
@@ -82,12 +82,15 @@ class Assetstore(Resource):
|
|
|
82
82
|
'ignore accessKeyId and secret.', dataType='boolean', required=False)
|
|
83
83
|
.param('serverSideEncryption', 'Whether to use S3 SSE to encrypt the objects uploaded to '
|
|
84
84
|
'this bucket (for S3 type).', dataType='boolean', required=False, default=False)
|
|
85
|
+
.param('allowS3AcceleratedTransfer', 'Whether to allow clients to requests a data '
|
|
86
|
+
'transfer using S3 transfer acceleration.', dataType='boolean', required=False,
|
|
87
|
+
default=False)
|
|
85
88
|
.errorResponse()
|
|
86
89
|
.errorResponse('You are not an administrator.', 403)
|
|
87
90
|
)
|
|
88
91
|
def createAssetstore(self, name, type, root, perms, db, mongohost, replicaset, bucket,
|
|
89
92
|
prefix, accessKeyId, secret, service, readOnly, region, inferCredentials,
|
|
90
|
-
serverSideEncryption):
|
|
93
|
+
serverSideEncryption, allowS3AcceleratedTransfer):
|
|
91
94
|
if type == AssetstoreType.FILESYSTEM:
|
|
92
95
|
self.requireParams({'root': root})
|
|
93
96
|
return self._model.createFilesystemAssetstore(
|
|
@@ -101,7 +104,8 @@ class Assetstore(Resource):
|
|
|
101
104
|
return self._model.createS3Assetstore(
|
|
102
105
|
name=name, bucket=bucket, prefix=prefix, secret=secret,
|
|
103
106
|
accessKeyId=accessKeyId, service=service, readOnly=readOnly, region=region,
|
|
104
|
-
inferCredentials=inferCredentials, serverSideEncryption=serverSideEncryption
|
|
107
|
+
inferCredentials=inferCredentials, serverSideEncryption=serverSideEncryption,
|
|
108
|
+
allowS3AcceleratedTransfer=allowS3AcceleratedTransfer)
|
|
105
109
|
else:
|
|
106
110
|
raise RestException('Invalid type parameter')
|
|
107
111
|
|
|
@@ -181,12 +185,16 @@ class Assetstore(Resource):
|
|
|
181
185
|
'ignore accessKeyId and secret.', dataType='boolean', required=False)
|
|
182
186
|
.param('serverSideEncryption', 'Whether to use S3 SSE to encrypt the objects uploaded to '
|
|
183
187
|
'this bucket (for S3 type).', dataType='boolean', required=False, default=False)
|
|
188
|
+
.param('allowS3AcceleratedTransfer', 'Whether to allow clients to requests a data '
|
|
189
|
+
'transfer using S3 transfer acceleration.', dataType='boolean', required=False,
|
|
190
|
+
default=False)
|
|
184
191
|
.errorResponse()
|
|
185
192
|
.errorResponse('You are not an administrator.', 403)
|
|
186
193
|
)
|
|
187
194
|
def updateAssetstore(self, assetstore, name, root, perms, db, mongohost, replicaset,
|
|
188
195
|
bucket, prefix, accessKeyId, secret, service, readOnly, region, current,
|
|
189
|
-
inferCredentials, serverSideEncryption,
|
|
196
|
+
inferCredentials, serverSideEncryption, allowS3AcceleratedTransfer,
|
|
197
|
+
params):
|
|
190
198
|
assetstore['name'] = name
|
|
191
199
|
assetstore['current'] = current
|
|
192
200
|
|
|
@@ -214,6 +222,7 @@ class Assetstore(Resource):
|
|
|
214
222
|
assetstore['region'] = region
|
|
215
223
|
assetstore['inferCredentials'] = inferCredentials
|
|
216
224
|
assetstore['serverSideEncryption'] = serverSideEncryption
|
|
225
|
+
assetstore['allowS3AcceleratedTransfer'] = allowS3AcceleratedTransfer
|
|
217
226
|
if readOnly is not None:
|
|
218
227
|
assetstore['readOnly'] = readOnly
|
|
219
228
|
else:
|
|
@@ -73,12 +73,14 @@ class File(Resource):
|
|
|
73
73
|
required=False)
|
|
74
74
|
.param('assetstoreId', 'Direct the upload to a specific assetstore (admin-only).',
|
|
75
75
|
required=False)
|
|
76
|
+
.jsonParam('uploadExtraParameters', 'Arbitrary data to send along with the upload request.',
|
|
77
|
+
required=False)
|
|
76
78
|
.errorResponse()
|
|
77
79
|
.errorResponse('Write access was denied on the parent folder.', 403)
|
|
78
80
|
.errorResponse('Failed to create upload.', 500)
|
|
79
81
|
)
|
|
80
82
|
def initUpload(self, parentType, parentId, name, size, mimeType, linkUrl, reference,
|
|
81
|
-
assetstoreId):
|
|
83
|
+
assetstoreId, uploadExtraParameters):
|
|
82
84
|
"""
|
|
83
85
|
Before any bytes of the actual file are sent, a request should be made
|
|
84
86
|
to initialize the upload. This creates the temporary record of the
|
|
@@ -120,7 +122,8 @@ class File(Resource):
|
|
|
120
122
|
# version upgrade.
|
|
121
123
|
upload = Upload().createUpload(
|
|
122
124
|
user=user, name=name, parentType=parentType, parent=parent, size=size,
|
|
123
|
-
mimeType=mimeType, reference=reference, assetstore=assetstore
|
|
125
|
+
mimeType=mimeType, reference=reference, assetstore=assetstore,
|
|
126
|
+
uploadExtraParameters=uploadExtraParameters)
|
|
124
127
|
except OSError as exc:
|
|
125
128
|
if exc.errno == errno.EACCES:
|
|
126
129
|
raise GirderException(
|
|
@@ -128,7 +131,9 @@ class File(Resource):
|
|
|
128
131
|
raise
|
|
129
132
|
if upload['size'] > 0:
|
|
130
133
|
if chunk:
|
|
131
|
-
return Upload().handleChunk(
|
|
134
|
+
return Upload().handleChunk(
|
|
135
|
+
upload, chunk, filter=True, user=user,
|
|
136
|
+
uploadExtraParameters=uploadExtraParameters)
|
|
132
137
|
|
|
133
138
|
return upload
|
|
134
139
|
else:
|
|
@@ -195,13 +200,15 @@ class File(Resource):
|
|
|
195
200
|
.modelParam('uploadId', paramType='formData', model=Upload)
|
|
196
201
|
.param('offset', 'Offset of the chunk in the file.', dataType='integer',
|
|
197
202
|
paramType='query', required=False, default=0)
|
|
203
|
+
.jsonParam('uploadExtraParameters', 'Arbitrary data to send along with the upload request.',
|
|
204
|
+
required=False)
|
|
198
205
|
.errorResponse(('ID was invalid.',
|
|
199
206
|
'Received too many bytes.',
|
|
200
207
|
'Chunk is smaller than the minimum size.'))
|
|
201
208
|
.errorResponse('You are not the user who initiated the upload.', 403)
|
|
202
209
|
.errorResponse('Failed to store upload.', 500)
|
|
203
210
|
)
|
|
204
|
-
def readChunk(self, upload, offset, params):
|
|
211
|
+
def readChunk(self, upload, offset, uploadExtraParameters, params):
|
|
205
212
|
"""
|
|
206
213
|
After the temporary upload record has been created (see initUpload),
|
|
207
214
|
the bytes themselves should be passed up in ordered chunks. The user
|
|
@@ -231,7 +238,8 @@ class File(Resource):
|
|
|
231
238
|
'Server has received %s bytes, but client sent offset %s.' % (
|
|
232
239
|
upload['received'], offset))
|
|
233
240
|
try:
|
|
234
|
-
return Upload().handleChunk(
|
|
241
|
+
return Upload().handleChunk(
|
|
242
|
+
upload, chunk, filter=True, user=user, uploadExtraParameters=uploadExtraParameters)
|
|
235
243
|
except OSError as exc:
|
|
236
244
|
if exc.errno == errno.EACCES:
|
|
237
245
|
raise Exception('Failed to store upload.')
|
|
@@ -254,8 +262,8 @@ class File(Resource):
|
|
|
254
262
|
.param('contentDisposition', 'Specify the Content-Disposition response '
|
|
255
263
|
'header disposition-type value.', required=False,
|
|
256
264
|
enum=['inline', 'attachment'], default='attachment')
|
|
257
|
-
.
|
|
258
|
-
|
|
265
|
+
.jsonParam('extraParameters', 'Arbitrary data to send along with the download request.',
|
|
266
|
+
required=False)
|
|
259
267
|
.errorResponse('ID was invalid.')
|
|
260
268
|
.errorResponse('Read access was denied on the parent folder.', 403)
|
|
261
269
|
)
|
|
@@ -272,9 +272,9 @@ class Item(Resource):
|
|
|
272
272
|
'header disposition-type value, only applied for single file '
|
|
273
273
|
'items.', required=False, enum=['inline', 'attachment'],
|
|
274
274
|
default='attachment')
|
|
275
|
-
.
|
|
276
|
-
|
|
277
|
-
|
|
275
|
+
.jsonParam('extraParameters', 'Arbitrary data to send along with the '
|
|
276
|
+
'download request, only applied for single file '
|
|
277
|
+
'items.', required=False)
|
|
278
278
|
# single file items could produce other types, too.
|
|
279
279
|
.produces(['application/zip', 'application/octet-stream'])
|
|
280
280
|
.errorResponse('ID was invalid.')
|
|
@@ -132,7 +132,7 @@ class Assetstore(Model):
|
|
|
132
132
|
|
|
133
133
|
def createS3Assetstore(self, name, bucket, accessKeyId, secret, prefix='',
|
|
134
134
|
service='', readOnly=False, region=None, inferCredentials=False,
|
|
135
|
-
serverSideEncryption=False):
|
|
135
|
+
serverSideEncryption=False, allowS3AcceleratedTransfer=False):
|
|
136
136
|
return self.save({
|
|
137
137
|
'type': AssetstoreType.S3,
|
|
138
138
|
'created': datetime.datetime.utcnow(),
|
|
@@ -145,7 +145,8 @@ class Assetstore(Model):
|
|
|
145
145
|
'service': service,
|
|
146
146
|
'region': region,
|
|
147
147
|
'inferCredentials': inferCredentials,
|
|
148
|
-
'serverSideEncryption': serverSideEncryption
|
|
148
|
+
'serverSideEncryption': serverSideEncryption,
|
|
149
|
+
'allowS3AcceleratedTransfer': allowS3AcceleratedTransfer
|
|
149
150
|
})
|
|
150
151
|
|
|
151
152
|
def getCurrent(self):
|
|
@@ -86,7 +86,7 @@ class File(acl_mixin.AccessControlMixin, Model):
|
|
|
86
86
|
:param contentDisposition: Content-Disposition response header
|
|
87
87
|
disposition-type value.
|
|
88
88
|
:type contentDisposition: str or None
|
|
89
|
-
:type extraParameters:
|
|
89
|
+
:type extraParameters: dict or None
|
|
90
90
|
"""
|
|
91
91
|
events.trigger('model.file.download.request', info={
|
|
92
92
|
'file': file,
|
|
@@ -106,7 +106,7 @@ class Upload(Model):
|
|
|
106
106
|
|
|
107
107
|
return doc
|
|
108
108
|
|
|
109
|
-
def handleChunk(self, upload, chunk, filter=False, user=None):
|
|
109
|
+
def handleChunk(self, upload, chunk, filter=False, user=None, uploadExtraParameters=None):
|
|
110
110
|
"""
|
|
111
111
|
When a chunk is uploaded, this should be called to process the chunk.
|
|
112
112
|
If this is the final chunk of the upload, this method will finalize
|
|
@@ -126,6 +126,9 @@ class Upload(Model):
|
|
|
126
126
|
:type filter: bool
|
|
127
127
|
:param user: The current user. Only affects behavior if filter=True.
|
|
128
128
|
:type user: dict or None
|
|
129
|
+
:param uploadExtraParameters: A dict of parameters that will be given to the assetstore
|
|
130
|
+
adapter for customization of the upload request.
|
|
131
|
+
:type uploadExtraParameters: Optional[dict]
|
|
129
132
|
"""
|
|
130
133
|
from .assetstore import Assetstore
|
|
131
134
|
from .file import File
|
|
@@ -134,7 +137,7 @@ class Upload(Model):
|
|
|
134
137
|
assetstore = Assetstore().load(upload['assetstoreId'])
|
|
135
138
|
adapter = assetstore_utilities.getAssetstoreAdapter(assetstore)
|
|
136
139
|
|
|
137
|
-
upload = adapter.uploadChunk(upload, chunk)
|
|
140
|
+
upload = adapter.uploadChunk(upload, chunk, uploadExtraParameters)
|
|
138
141
|
if '_id' in upload or upload['received'] != upload['size']:
|
|
139
142
|
upload = self.save(upload)
|
|
140
143
|
|
|
@@ -319,12 +322,12 @@ class Upload(Model):
|
|
|
319
322
|
}
|
|
320
323
|
if reference is not None:
|
|
321
324
|
upload['reference'] = reference
|
|
322
|
-
upload = adapter.initUpload(upload)
|
|
325
|
+
upload = adapter.initUpload(upload, uploadExtraParameters=None)
|
|
323
326
|
return self.save(upload)
|
|
324
327
|
|
|
325
328
|
def createUpload(self, user, name, parentType, parent, size, mimeType=None,
|
|
326
329
|
reference=None, assetstore=None, attachParent=False,
|
|
327
|
-
save=True):
|
|
330
|
+
save=True, uploadExtraParameters=None):
|
|
328
331
|
"""
|
|
329
332
|
Creates a new upload record, and creates its temporary file
|
|
330
333
|
that the chunks will be written into. Chunks should then be sent
|
|
@@ -392,7 +395,7 @@ class Upload(Model):
|
|
|
392
395
|
else:
|
|
393
396
|
upload['userId'] = None
|
|
394
397
|
|
|
395
|
-
upload = adapter.initUpload(upload)
|
|
398
|
+
upload = adapter.initUpload(upload, uploadExtraParameters)
|
|
396
399
|
if save:
|
|
397
400
|
upload = self.save(upload)
|
|
398
401
|
return upload
|
|
@@ -154,7 +154,7 @@ class AbstractAssetstoreAdapter:
|
|
|
154
154
|
'total': None
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
def initUpload(self, upload):
|
|
157
|
+
def initUpload(self, upload, uploadExtraParameters):
|
|
158
158
|
"""
|
|
159
159
|
This must be called before any chunks are uploaded to do any
|
|
160
160
|
additional behavior and optionally augment the upload document. The
|
|
@@ -166,7 +166,7 @@ class AbstractAssetstoreAdapter:
|
|
|
166
166
|
"""
|
|
167
167
|
return upload
|
|
168
168
|
|
|
169
|
-
def uploadChunk(self, upload, chunk):
|
|
169
|
+
def uploadChunk(self, upload, chunk, uploadExtraParameters):
|
|
170
170
|
"""
|
|
171
171
|
Call this method to process each chunk of an upload.
|
|
172
172
|
|
|
@@ -174,6 +174,9 @@ class AbstractAssetstoreAdapter:
|
|
|
174
174
|
:type upload: dict
|
|
175
175
|
:param chunk: The file object representing the chunk that was uploaded.
|
|
176
176
|
:type chunk: file
|
|
177
|
+
:param uploadExtraParameters: A dict of parameters that will be given to the assetstore
|
|
178
|
+
adapter for customization of the upload request.
|
|
179
|
+
:type uploadExtraParameters: Optional[dict]
|
|
177
180
|
:returns: Must return the upload document with any optional changes.
|
|
178
181
|
"""
|
|
179
182
|
raise NotImplementedError('Must override processChunk in %s.' %
|
|
@@ -272,7 +275,7 @@ class AbstractAssetstoreAdapter:
|
|
|
272
275
|
:param contentDisposition: Value for Content-Disposition response
|
|
273
276
|
header disposition-type value.
|
|
274
277
|
:type contentDisposition: str or None
|
|
275
|
-
:type extraParameters:
|
|
278
|
+
:type extraParameters: dict or None
|
|
276
279
|
"""
|
|
277
280
|
raise NotImplementedError('Must override downloadFile in %s.' %
|
|
278
281
|
self.__class__.__name__)
|
|
@@ -121,7 +121,7 @@ class FilesystemAssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
121
121
|
'total': None
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
def initUpload(self, upload):
|
|
124
|
+
def initUpload(self, upload, uploadExtraParameters):
|
|
125
125
|
"""
|
|
126
126
|
Generates a temporary file and sets its location in the upload document
|
|
127
127
|
as tempFile. This is the file that the chunks will be appended to.
|
|
@@ -132,7 +132,7 @@ class FilesystemAssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
132
132
|
upload['sha512state'] = _hash_state.serializeHex(sha512())
|
|
133
133
|
return upload
|
|
134
134
|
|
|
135
|
-
def uploadChunk(self, upload, chunk):
|
|
135
|
+
def uploadChunk(self, upload, chunk, uploadExtraParameters):
|
|
136
136
|
"""
|
|
137
137
|
Appends the chunk into the temporary file.
|
|
138
138
|
"""
|
|
@@ -111,7 +111,7 @@ class GridFsAssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
111
111
|
self.chunkColl = 'Failed to configure'
|
|
112
112
|
self.unavailable = True
|
|
113
113
|
|
|
114
|
-
def initUpload(self, upload):
|
|
114
|
+
def initUpload(self, upload, uploadExtraParameters):
|
|
115
115
|
"""
|
|
116
116
|
Creates a UUID that will be used to uniquely link each chunk to
|
|
117
117
|
"""
|
|
@@ -119,7 +119,7 @@ class GridFsAssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
119
119
|
upload['sha512state'] = _hash_state.serializeHex(sha512())
|
|
120
120
|
return upload
|
|
121
121
|
|
|
122
|
-
def uploadChunk(self, upload, chunk):
|
|
122
|
+
def uploadChunk(self, upload, chunk, uploadExtraParameters):
|
|
123
123
|
"""
|
|
124
124
|
Stores the uploaded chunk in fixed-sized pieces in the chunks
|
|
125
125
|
collection of this assetstore's database.
|
|
@@ -11,7 +11,7 @@ import requests
|
|
|
11
11
|
|
|
12
12
|
from girder import events, logger
|
|
13
13
|
from girder.api.rest import setContentDisposition
|
|
14
|
-
from girder.exceptions import GirderException, ValidationException
|
|
14
|
+
from girder.exceptions import GirderException, RestException, ValidationException
|
|
15
15
|
from girder.models.file import File
|
|
16
16
|
from girder.models.folder import Folder
|
|
17
17
|
from girder.models.item import Item
|
|
@@ -113,6 +113,17 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
113
113
|
self.assetstore['service'], self.assetstore.get('region'),
|
|
114
114
|
self.assetstore.get('inferCredentials'))
|
|
115
115
|
self.client = S3AssetstoreAdapter._s3Client(self.connectParams)
|
|
116
|
+
if self.assetstore.get('allowS3AcceleratedTransfer', False):
|
|
117
|
+
acceleratedConnectParams = self.connectParams.copy()
|
|
118
|
+
acceleratedConnectParams['config'].s3 = {'use_accelerate_endpoint': True}
|
|
119
|
+
self.acceleratedClient = S3AssetstoreAdapter._s3Client(acceleratedConnectParams)
|
|
120
|
+
|
|
121
|
+
def _getClient(self, useAcceleratedTransfer):
|
|
122
|
+
if useAcceleratedTransfer:
|
|
123
|
+
if not self.assetstore.get('allowS3AcceleratedTransfer'):
|
|
124
|
+
raise RestException('Accelerated transfer is not allowed on this assetstore.')
|
|
125
|
+
return self.acceleratedClient
|
|
126
|
+
return self.client
|
|
116
127
|
|
|
117
128
|
def _getRequestHeaders(self, upload):
|
|
118
129
|
headers = {
|
|
@@ -134,8 +145,9 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
134
145
|
|
|
135
146
|
See https://gist.github.com/gleicon/2b8acb9f9c0f22753eaac227ff997b34
|
|
136
147
|
"""
|
|
137
|
-
|
|
138
|
-
|
|
148
|
+
client = self._getClient(kwargs.pop('useS3TransferAcceleration', False))
|
|
149
|
+
url = client.generate_presigned_url(*args, **kwargs)
|
|
150
|
+
if getattr(client, '_useGoogleAccessId', False):
|
|
139
151
|
awskey, gskey = 'AWSAccessKeyId', 'GoogleAccessId'
|
|
140
152
|
parsed = urllib.parse.urlparse(url)
|
|
141
153
|
if awskey in urllib.parse.parse_qs(parsed.query):
|
|
@@ -147,7 +159,12 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
147
159
|
parsed[5]))
|
|
148
160
|
return url
|
|
149
161
|
|
|
150
|
-
|
|
162
|
+
@staticmethod
|
|
163
|
+
def _getS3TransferAccelerationParam(extraParameters):
|
|
164
|
+
return isinstance(extraParameters, dict) \
|
|
165
|
+
and extraParameters.get('use_S3_transfer_acceleration', False)
|
|
166
|
+
|
|
167
|
+
def initUpload(self, upload, uploadExtraParameters):
|
|
151
168
|
"""
|
|
152
169
|
Build the request required to initiate an authorized upload to S3.
|
|
153
170
|
"""
|
|
@@ -195,10 +212,13 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
195
212
|
method = 'put_object'
|
|
196
213
|
params['ContentLength'] = upload['size']
|
|
197
214
|
|
|
198
|
-
|
|
215
|
+
useS3TransferAcceleration = self._getS3TransferAccelerationParam(uploadExtraParameters)
|
|
216
|
+
|
|
217
|
+
requestInfo['url'] = self._generatePresignedUrl(
|
|
218
|
+
ClientMethod=method, Params=params, useS3TransferAcceleration=useS3TransferAcceleration)
|
|
199
219
|
return upload
|
|
200
220
|
|
|
201
|
-
def uploadChunk(self, upload, chunk):
|
|
221
|
+
def uploadChunk(self, upload, chunk, uploadExtraParameters):
|
|
202
222
|
"""
|
|
203
223
|
Rather than processing actual bytes of the chunk, this will generate
|
|
204
224
|
the signature required to upload the chunk. Clients that do not support
|
|
@@ -209,12 +229,14 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
209
229
|
and S3 upload ID. If a normal chunk file-like object is passed,
|
|
210
230
|
we will send the data to S3.
|
|
211
231
|
"""
|
|
232
|
+
useS3TransferAcceleration = self._getS3TransferAccelerationParam(uploadExtraParameters)
|
|
233
|
+
|
|
212
234
|
if isinstance(chunk, str):
|
|
213
|
-
return self._clientUploadChunk(upload, chunk)
|
|
235
|
+
return self._clientUploadChunk(upload, chunk, useS3TransferAcceleration)
|
|
214
236
|
else:
|
|
215
|
-
return self._proxiedUploadChunk(upload, chunk)
|
|
237
|
+
return self._proxiedUploadChunk(upload, chunk, useS3TransferAcceleration)
|
|
216
238
|
|
|
217
|
-
def _clientUploadChunk(self, upload, chunk):
|
|
239
|
+
def _clientUploadChunk(self, upload, chunk, useS3TransferAcceleration):
|
|
218
240
|
"""
|
|
219
241
|
Clients that support direct-to-S3 upload behavior will go through this
|
|
220
242
|
method by sending a normally-encoded form string as the chunk parameter,
|
|
@@ -238,7 +260,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
238
260
|
'ContentLength': length,
|
|
239
261
|
'UploadId': info['s3UploadId'],
|
|
240
262
|
'PartNumber': info['partNumber']
|
|
241
|
-
})
|
|
263
|
+
}, useS3TransferAcceleration=useS3TransferAcceleration)
|
|
242
264
|
|
|
243
265
|
upload['s3']['uploadId'] = info['s3UploadId']
|
|
244
266
|
upload['s3']['partNumber'] = info['partNumber']
|
|
@@ -249,7 +271,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
249
271
|
|
|
250
272
|
return upload
|
|
251
273
|
|
|
252
|
-
def _proxiedUploadChunk(self, upload, chunk):
|
|
274
|
+
def _proxiedUploadChunk(self, upload, chunk, useS3TransferAcceleration):
|
|
253
275
|
"""
|
|
254
276
|
Clients that do not support direct-to-S3 upload behavior will go through
|
|
255
277
|
this method by sending the chunk data as they normally would for other
|
|
@@ -285,7 +307,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
285
307
|
'ContentLength': size,
|
|
286
308
|
'UploadId': upload['s3']['uploadId'],
|
|
287
309
|
'PartNumber': upload['s3']['partNumber']
|
|
288
|
-
})
|
|
310
|
+
}, useS3TransferAcceleration=useS3TransferAcceleration)
|
|
289
311
|
|
|
290
312
|
resp = requests.request(method='PUT', url=url, data=chunk, headers=headers)
|
|
291
313
|
if resp.status_code not in (200, 201):
|
|
@@ -405,7 +427,11 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
|
|
|
405
427
|
if contentDisposition == 'inline' and not file.get('imported'):
|
|
406
428
|
params['ResponseContentDisposition'] = 'inline; filename="%s"' % file['name']
|
|
407
429
|
|
|
408
|
-
|
|
430
|
+
useS3TransferAcceleration = self._getS3TransferAccelerationParam(extraParameters)
|
|
431
|
+
|
|
432
|
+
url = self._generatePresignedUrl(
|
|
433
|
+
ClientMethod='get_object', Params=params,
|
|
434
|
+
useS3TransferAcceleration=useS3TransferAcceleration)
|
|
409
435
|
|
|
410
436
|
if headers:
|
|
411
437
|
raise cherrypy.HTTPRedirect(url)
|
{girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/newAssetstore.pug
RENAMED
|
@@ -113,6 +113,10 @@
|
|
|
113
113
|
label
|
|
114
114
|
input#g-new-s3-sse(type="checkbox")
|
|
115
115
|
| Server side encryption
|
|
116
|
+
.checkbox
|
|
117
|
+
label
|
|
118
|
+
input#g-new-s3-accelerated-endpoint(type="checkbox")
|
|
119
|
+
| Allow S3 accelerated endpoint
|
|
116
120
|
|
|
117
121
|
p#g-new-s3-error.g-validation-failed-message
|
|
118
122
|
input.g-new-assetstore-submit.btn.btn-sm.btn-primary(type="submit", value="Create")
|
{girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js
RENAMED
|
@@ -126,7 +126,8 @@ fieldsMap[AssetstoreType.S3] = {
|
|
|
126
126
|
region: this.$('#g-edit-s3-region').val(),
|
|
127
127
|
readOnly: this.$('#g-edit-s3-readonly').is(':checked'),
|
|
128
128
|
inferCredentials: this.$('#g-edit-s3-infercredentials').is(':checked'),
|
|
129
|
-
serverSideEncryption: this.$('#g-edit-s3-sse').is(':checked')
|
|
129
|
+
serverSideEncryption: this.$('#g-edit-s3-sse').is(':checked'),
|
|
130
|
+
allowS3AcceleratedTransfer: this.$('#g-edit-s3-accelerated-endpoint').is(':checked')
|
|
130
131
|
};
|
|
131
132
|
},
|
|
132
133
|
set: function () {
|
|
@@ -142,6 +143,8 @@ fieldsMap[AssetstoreType.S3] = {
|
|
|
142
143
|
(this.model.get('inferCredentials') ? 'checked' : undefined));
|
|
143
144
|
this.$('#g-edit-s3-sse').attr('checked',
|
|
144
145
|
(this.model.get('serverSideEncryption') ? 'checked' : undefined));
|
|
146
|
+
this.$('#g-edit-s3-accelerated-endpoint').attr('checked',
|
|
147
|
+
(this.model.get('allowS3AcceleratedTransfer') ? 'checked' : undefined));
|
|
145
148
|
}
|
|
146
149
|
};
|
|
147
150
|
|
{girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js
RENAMED
|
@@ -45,7 +45,8 @@ var NewAssetstoreWidget = View.extend({
|
|
|
45
45
|
region: this.$('#g-new-s3-region').val(),
|
|
46
46
|
readOnly: this.$('#g-new-s3-readonly').is(':checked'),
|
|
47
47
|
inferCredentials: this.$('#g-new-s3-infercredentials').is(':checked'),
|
|
48
|
-
serverSideEncryption: this.$('#g-new-s3-sse').is(':checked')
|
|
48
|
+
serverSideEncryption: this.$('#g-new-s3-sse').is(':checked'),
|
|
49
|
+
allowS3AcceleratedTransfer: this.$('#g-new-s3-accelerated-endpoint').is(':checked')
|
|
49
50
|
});
|
|
50
51
|
}
|
|
51
52
|
},
|
|
@@ -6,6 +6,7 @@ JOB_HANDLER_LOCAL = 'jobs._local'
|
|
|
6
6
|
|
|
7
7
|
# Scope used allow RESTful creation of girder job models
|
|
8
8
|
REST_CREATE_JOB_TOKEN_SCOPE = 'jobs.rest.create_job'
|
|
9
|
+
REST_LIST_JOB_TOKEN_SCOPE = 'jobs.rest.list_job'
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
# integer enum describing job states. Note, no order is implied.
|
|
@@ -24,7 +24,7 @@ class Job(Resource):
|
|
|
24
24
|
self.route('GET', ('typeandstatus', 'all',), self.allJobsTypesAndStatuses)
|
|
25
25
|
self.route('GET', ('typeandstatus',), self.jobsTypesAndStatuses)
|
|
26
26
|
|
|
27
|
-
@access.public
|
|
27
|
+
@access.public(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
|
|
28
28
|
@filtermodel(model=JobModel)
|
|
29
29
|
@autoDescribeRoute(
|
|
30
30
|
Description('List jobs for a given user.')
|
|
@@ -87,7 +87,7 @@ class Job(Resource):
|
|
|
87
87
|
}
|
|
88
88
|
return self._model.createJob(**params)
|
|
89
89
|
|
|
90
|
-
@access.
|
|
90
|
+
@access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
|
|
91
91
|
@filtermodel(model=JobModel)
|
|
92
92
|
@autoDescribeRoute(
|
|
93
93
|
Description('List all jobs.')
|
|
@@ -175,7 +175,7 @@ class Job(Resource):
|
|
|
175
175
|
def deleteJob(self, job):
|
|
176
176
|
self._model.remove(job)
|
|
177
177
|
|
|
178
|
-
@access.
|
|
178
|
+
@access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
|
|
179
179
|
@autoDescribeRoute(
|
|
180
180
|
Description('Get types and statuses of all jobs')
|
|
181
181
|
.errorResponse('Admin access was denied for the job.', 403)
|
|
@@ -183,7 +183,7 @@ class Job(Resource):
|
|
|
183
183
|
def allJobsTypesAndStatuses(self):
|
|
184
184
|
return self._model.getAllTypesAndStatuses(user='all')
|
|
185
185
|
|
|
186
|
-
@access.user
|
|
186
|
+
@access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
|
|
187
187
|
@autoDescribeRoute(
|
|
188
188
|
Description('Get types and statuses of jobs of current user')
|
|
189
189
|
)
|
|
@@ -202,9 +202,9 @@ class JobsTestCase(base.TestCase):
|
|
|
202
202
|
self.assertStatusOk(resp)
|
|
203
203
|
self.assertEqual(len(resp.json), 0)
|
|
204
204
|
|
|
205
|
-
# User 1, as non site admin, should
|
|
205
|
+
# User 1, as non site admin, should still get an answer
|
|
206
206
|
resp = self.request('/job/all', user=self.users[1])
|
|
207
|
-
self.
|
|
207
|
+
self.assertStatusOk(resp)
|
|
208
208
|
|
|
209
209
|
# Not authenticated user should encounter http 401 (unauthorized)
|
|
210
210
|
resp = self.request('/job/all')
|
|
@@ -446,9 +446,9 @@ class JobsTestCase(base.TestCase):
|
|
|
446
446
|
self.jobModel.createJob(title='anonymous job', type='t5')
|
|
447
447
|
self.jobModel.createJob(title='anonymous public job', type='t6', public=True)
|
|
448
448
|
|
|
449
|
-
# User 1, as non site admin, should
|
|
449
|
+
# User 1, as non site admin, should get an answer
|
|
450
450
|
resp = self.request('/job/typeandstatus/all', user=self.users[1])
|
|
451
|
-
self.
|
|
451
|
+
self.assertStatusOk(resp)
|
|
452
452
|
|
|
453
453
|
# Admin user gets all types and statuses
|
|
454
454
|
resp = self.request('/job/typeandstatus/all', user=self.users[0])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|