aird 0.4.23.dev0__tar.gz → 0.4.23.dev2__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.
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/PKG-INFO +1 -1
- aird-0.4.23.dev2/aird/static/favicon.png +0 -0
- aird-0.4.23.dev2/aird/static/favicon.svg +12 -0
- aird-0.4.23.dev2/aird/static/img/logo-icon.png +0 -0
- aird-0.4.23.dev2/aird/static/img/logo-mark.svg +15 -0
- aird-0.4.23.dev2/aird/static/img/logo-text.png +0 -0
- aird-0.4.23.dev2/aird/static/img/logo.png +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/browse/app.js +12 -3
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/browse.html +1 -1
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/PKG-INFO +1 -1
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/SOURCES.txt +6 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/setup.py +4 -1
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/LICENSE +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/README.md +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/__main__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/app_context.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/cloud/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/config.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/constants/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/constants/admin.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/constants/file_ops.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/constants/input_limits.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/constants/media.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/events.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/file_operations.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/filter_expression.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/input_validation.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/mmap_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/security.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/share_root.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/core/websocket_manager.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/database/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/database/db.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/database/feature_flags.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/database/ldap.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/audit.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/config.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/favorites.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/network_shares.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/policies.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/policy_decisions.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/policy_seeds.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/quota.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/resource_tags.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/schema.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/shares.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/user_attributes.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/db/users.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/domain/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/domain/contracts.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/domain/models.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/abac_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/admin_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/api_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/auth_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/base_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/constants.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/file_op_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/health_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/p2p_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/share_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/handlers/view_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/main.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/network_share_manager.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/audit_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/config_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/event_subscribers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/favorites_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/network_share_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/p2p_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/policy_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/quota_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/share_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/tag_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/services/user_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/sql_identifiers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/css/app.css +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/aird-core.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/bg-canvas.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/common/command-palette.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/components/folder-picker.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/feature-flags-live.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/login-ui.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/app.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/mediator.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/qr-adapter.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/signaling-service.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/state-machine.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/p2p/transfer-service.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/pages/p2p-page.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/pages/super-search.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/share/app.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/theme.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/vendor/pdf.min.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/vendor/pdf.worker.min.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/static/js/vendor/qrcode-browser.js +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/_admin_tabs.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/_app_nav_header.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/_bg_canvas.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/_theme_early.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/_theme_login_corner.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_audit.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_ldap.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_login.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_network_shares.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_policies.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_tags.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_user_attributes.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/admin_users.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/directory.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/edit.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/error.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/file.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/ldap_config_create.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/ldap_config_edit.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/login.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/p2p_transfer.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/profile.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/share.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/shared_list.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/super_search.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/tagged_files.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/token_verification.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/user_create.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/templates/user_edit.html +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/utils/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird/utils/util.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/dependency_links.txt +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/entry_points.txt +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/requires.txt +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/aird.egg-info/top_level.txt +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/setup.cfg +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/__init__.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/conftest.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/handler_helpers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_admin_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_api_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_architecture_conformance.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_auth_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_auth_handlers_extended.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_base_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_base_handler_pep.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_cloud.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_config.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_core_file_operations.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_db.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_feature_flags.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_ldap.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_shares.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_users.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_database_users_hashing.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_db.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_file_op_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_filter_expression.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_main.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_mmap_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_multi_user.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_network_shares.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_p2p_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_password_hashing.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_policy_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_rate_limit.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_security.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_security_comprehensive.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_share_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_super_search_handler.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_tag_service.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_util.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_view_handlers.py +0 -0
- {aird-0.4.23.dev0 → aird-0.4.23.dev2}/tests/test_websocket_manager.py +0 -0
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="doc" x1="4" y1="4" x2="30" y2="36" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0%" stop-color="#818cf8"/>
|
|
5
|
+
<stop offset="100%" stop-color="#6366f1"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<path d="M6 8a4 4 0 0 1 4-4h14l10 10v18a4 4 0 0 1-4 4H10a4 4 0 0 1-4-4V8z" fill="url(#doc)"/>
|
|
9
|
+
<path d="M24 4v10h10" fill="#a5b4fc" fill-opacity="0.5"/>
|
|
10
|
+
<path d="M13 30 Q10 26 12 22 Q14 18 18 16" stroke="white" stroke-width="2.5" stroke-linecap="round" fill="none"/>
|
|
11
|
+
<path d="M15 13l3 3 3-3" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" transform="translate(0.5,-0.5)"/>
|
|
12
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="doc" x1="4" y1="4" x2="30" y2="36" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0%" stop-color="#818cf8"/>
|
|
5
|
+
<stop offset="100%" stop-color="#6366f1"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<!-- Document body with rounded corners -->
|
|
9
|
+
<path d="M6 8a4 4 0 0 1 4-4h14l10 10v18a4 4 0 0 1-4 4H10a4 4 0 0 1-4-4V8z" fill="url(#doc)"/>
|
|
10
|
+
<!-- Folded corner -->
|
|
11
|
+
<path d="M24 4v10h10" fill="#a5b4fc" fill-opacity="0.5"/>
|
|
12
|
+
<!-- Upward swoosh arrow -->
|
|
13
|
+
<path d="M13 30 Q10 26 12 22 Q14 18 18 16" stroke="white" stroke-width="2.5" stroke-linecap="round" fill="none"/>
|
|
14
|
+
<path d="M15 13l3 3 3-3" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" transform="translate(0.5,-0.5)"/>
|
|
15
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -168,7 +168,9 @@
|
|
|
168
168
|
const info = document.createElement("span");
|
|
169
169
|
info.style.display = "block"; info.style.fontSize = "12px";
|
|
170
170
|
const cancelBtn = document.createElement("button");
|
|
171
|
-
cancelBtn.
|
|
171
|
+
cancelBtn.type = "button";
|
|
172
|
+
cancelBtn.className = "btn btn-ghost btn-xs mt-1";
|
|
173
|
+
cancelBtn.textContent = "Cancel";
|
|
172
174
|
item.appendChild(nameEl); item.appendChild(bar); item.appendChild(info); item.appendChild(cancelBtn);
|
|
173
175
|
progressContainer.appendChild(item);
|
|
174
176
|
|
|
@@ -231,8 +233,9 @@
|
|
|
231
233
|
info.style.display = "block";
|
|
232
234
|
info.style.fontSize = "12px";
|
|
233
235
|
const cancelBtn = document.createElement("button");
|
|
236
|
+
cancelBtn.type = "button";
|
|
237
|
+
cancelBtn.className = "btn btn-ghost btn-xs mt-1";
|
|
234
238
|
cancelBtn.textContent = "Cancel";
|
|
235
|
-
cancelBtn.style.marginTop = "2px";
|
|
236
239
|
|
|
237
240
|
item.appendChild(nameEl);
|
|
238
241
|
item.appendChild(bar);
|
|
@@ -347,18 +350,24 @@
|
|
|
347
350
|
const elapsed = (Date.now() - item.start) / 1000;
|
|
348
351
|
const speed = loaded / (elapsed || 1);
|
|
349
352
|
const remaining = Math.max(0, totalSize - loaded);
|
|
353
|
+
const chunkNote = item.chunkProgress
|
|
354
|
+
? ` · ${item.chunksDone || 0}/${item.chunkProgress.size} chunks`
|
|
355
|
+
: "";
|
|
350
356
|
item.bar.value = percent;
|
|
351
|
-
item.info.textContent = `${Math.round(percent)}% - ${formatBytes(loaded)} of ${formatBytes(totalSize)} (${formatBytes(remaining)} left) @ ${formatBytes(speed)}/s`;
|
|
357
|
+
item.info.textContent = `${Math.round(percent)}% - ${formatBytes(loaded)} of ${formatBytes(totalSize)} (${formatBytes(remaining)} left) @ ${formatBytes(speed)}/s${chunkNote}`;
|
|
352
358
|
}
|
|
353
359
|
|
|
354
360
|
function syncUploadProgress(item, totalSize) {
|
|
355
361
|
let loaded = 0;
|
|
362
|
+
let chunksDone = 0;
|
|
356
363
|
if (item.chunkProgress) {
|
|
357
364
|
for (const part of item.chunkProgress.values()) {
|
|
358
365
|
loaded += Math.min(part.loaded, part.size);
|
|
366
|
+
if (part.loaded >= part.size) chunksDone += 1;
|
|
359
367
|
}
|
|
360
368
|
}
|
|
361
369
|
item.bytesUploaded = loaded;
|
|
370
|
+
item.chunksDone = chunksDone;
|
|
362
371
|
updateUploadProgress(item, totalSize);
|
|
363
372
|
}
|
|
364
373
|
|
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
canTag: {{ 'true' if current_user and current_user.get('role') == 'admin' else 'false' }}
|
|
380
380
|
};
|
|
381
381
|
</script>
|
|
382
|
-
<script src="/static/js/browse/app.js?v=
|
|
382
|
+
<script src="/static/js/browse/app.js?v=18"></script>
|
|
383
383
|
|
|
384
384
|
<!-- Inline tag popover (per-row + button) -->
|
|
385
385
|
<div id="rowTagPopoverBackdrop" class="row-tag-popover-backdrop" hidden></div>
|
|
@@ -74,7 +74,13 @@ aird/services/quota_service.py
|
|
|
74
74
|
aird/services/share_service.py
|
|
75
75
|
aird/services/tag_service.py
|
|
76
76
|
aird/services/user_service.py
|
|
77
|
+
aird/static/favicon.png
|
|
78
|
+
aird/static/favicon.svg
|
|
77
79
|
aird/static/css/app.css
|
|
80
|
+
aird/static/img/logo-icon.png
|
|
81
|
+
aird/static/img/logo-mark.svg
|
|
82
|
+
aird/static/img/logo-text.png
|
|
83
|
+
aird/static/img/logo.png
|
|
78
84
|
aird/static/js/aird-core.js
|
|
79
85
|
aird/static/js/bg-canvas.js
|
|
80
86
|
aird/static/js/feature-flags-live.js
|
|
@@ -15,13 +15,16 @@ install_requires = [
|
|
|
15
15
|
|
|
16
16
|
setup(
|
|
17
17
|
name="aird",
|
|
18
|
-
version="0.4.23.
|
|
18
|
+
version="0.4.23.dev2",
|
|
19
19
|
packages=find_packages(),
|
|
20
20
|
package_data={"aird": [
|
|
21
21
|
"templates/*.html",
|
|
22
22
|
"static/css/*.css",
|
|
23
|
+
"static/css/**/*.css",
|
|
23
24
|
"static/js/*.js",
|
|
24
25
|
"static/js/**/*.js",
|
|
26
|
+
"static/img/*",
|
|
27
|
+
"static/favicon.*",
|
|
25
28
|
]},
|
|
26
29
|
entry_points={
|
|
27
30
|
"console_scripts": [
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|