diff options
18 files changed, 546 insertions, 363 deletions
diff --git a/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po b/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po index 23d1127..ff2299c 100644 --- a/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po +++ b/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hydrilla 2.0\n" "Report-Msgid-Bugs-To: koszko@koszko.org\n" -"POT-Creation-Date: 2022-09-02 13:49+0200\n" +"POT-Creation-Date: 2022-09-05 13:54+0200\n" "PO-Revision-Date: 2022-02-12 00:00+0000\n" "Last-Translator: Wojtek Kosior <koszko@koszko.org>\n" "Language: en_US\n" @@ -205,105 +205,119 @@ msgstr "Requested file could not be found." msgid "api.resource_not_enabled_for_access" msgstr "Requested resource is not enabled for access." -#: src/hydrilla/proxy/state_impl/concrete_state.py:107 +#: src/hydrilla/proxy/state_impl/concrete_state.py:106 msgid "err.proxy.unknown_db_schema" msgstr "" "Haketilo's data files have been altered, possibly by a newer version of " "Haketilo." -#: src/hydrilla/proxy/state_impl/concrete_state.py:111 +#: src/hydrilla/proxy/state_impl/concrete_state.py:110 msgid "err.proxy.no_sqlite_foreign_keys" msgstr "" "This installation of Haketilo uses an SQLite version which does not " "support foreign key constraints." -#: src/hydrilla/proxy/web_ui/items.py:52 -msgid "err.proxy.uploaded_malcontent_invalid" -msgstr "The uploaded archive does not contain valid Haketilo malcontent." - -#: src/hydrilla/proxy/web_ui/items.py:77 -msgid "err.proxy.uploaded_file_not_zip" -msgstr "The uploaded file is not a valid ZIP file." - -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:44 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:63 msgid "web_ui.base.title.haketilo_proxy" msgstr "Haketilo" -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:184 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:228 msgid "web_ui.base.nav.home" msgstr "Home" -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:185 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:229 msgid "web_ui.base.nav.packages" msgstr "Packages" -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:186 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:230 msgid "web_ui.base.nav.libraries" msgstr "Libraries" -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:187 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:231 msgid "web_ui.base.nav.repos" msgstr "Repositories" -#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:188 +#: src/hydrilla/proxy/web_ui/templates/base.html.jinja:232 msgid "web_ui.base.nav.load" msgstr "Import from file" -#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:23 msgid "web_ui.home.title" msgstr "Welcome" -#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:24 -msgid "web_ui.home.welcome_to_haketilo" +#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:27 +msgid "web_ui.home.heading.welcome_to_haketilo" msgstr "Welcome to Haketilo!" +#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:31 +msgid "web_ui.home.this_is_haketilo_page" +msgstr "" +"This is a virtual site hosted locally by Haketilo. You can use it to " +"configure Haketilo proxy." + +#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:37 +msgid "web_ui.home.heading.about_haketilo" +msgstr "About Haketilo" + +#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:41 +msgid "web_ui.home.haketilo_is_blah_blah" +msgstr "" +"Haketilo is a tool that gives users more control over their web browsing." +" It can block unwanted JavaScript software on web pages as well as add " +"custom logic to them. Haketilo was orignally developed as a browser " +"extension but has since been made into an HTTP proxy." + #: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:25 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:31 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:33 msgid "web_ui.err.file_installation_error" msgstr "Failed to install needed items from repository." -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:30 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:29 msgid "web_ui.err.uninstall_disallowed" msgstr "This item is required and cannot be uninstalled." -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:35 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:36 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:33 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:37 msgid "web_ui.err.repo_communication_error" msgstr "Couldn't communicate with repository." -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:63 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:40 +msgid "web_ui.items.single_version.version_{}" +msgstr "Version '{}'." + +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:71 msgid "web_ui.items.single_version.retry_install_button" msgstr "Retry installation" -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:67 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:75 msgid "web_ui.items.single_version.leave_uninstalled_button" msgstr "Leave uninstalled" -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:71 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:79 msgid "web_ui.items.single_version.install_button" msgstr "Install" -#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:72 +#: src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja:80 msgid "web_ui.items.single_version.uninstall_button" msgstr "Uninstall" -#: src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja:23 msgid "web_ui.libraries.title" msgstr "Libraries" -#: src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja:29 +#: src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja:39 msgid "web_ui.libraries.heading" msgstr "Available libraries" -#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:23 msgid "web_ui.items.single.library.title" msgstr "Library view" -#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:25 +#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:27 msgid "web_ui.items.single.library.heading.name_{}" msgstr "Libraries named '{}'" -#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:35 +#: src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja:41 msgid "web_ui.items.single.library.version_list_heading" msgstr "Available versions" @@ -321,49 +335,61 @@ msgstr "Library '{}'" #: src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja:42 msgid "web_ui.items.single_version.library.item_required" -msgstr "This library is required by an enabled mapping. It cannot be uninstalled." +msgstr "" +"This library version is required by an enabled mapping. It cannot be " +"uninstalled." #: src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja:46 msgid "web_ui.items.single_version.library.item_auto_activated" -msgstr "This library is used by a package which can be activated automatically." +msgstr "" +"This library version is used by a package which can be activated " +"automatically." #: src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja:50 msgid "web_ui.items.single_version.library.item_not_activated" -msgstr "This library is not used by any active package." +msgstr "This library version is not used by any active package." #: src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja:54 msgid "web_ui.items.single_version.library.install_failed" -msgstr "Couldn't install this library." +msgstr "Couldn't install this library version." #: src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja:58 msgid "web_ui.items.single_version.library.version_list_heading" -msgstr "Other available versions of this library" +msgstr "Other available versions of the library" -#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:23 msgid "web_ui.load_from_disk.title" msgstr "Import from file" -#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:32 +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:41 msgid "web_ui.load_from_disk.heading" msgstr "Import items from a ZIP archive" -#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:40 +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:45 +msgid "web_ui.err.uploaded_file_not_zip" +msgstr "The uploaded file is not a valid ZIP file." + +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:49 +msgid "web_ui.err.invalid_uploaded_malcontent" +msgstr "The uploaded archive does not contain valid Haketilo malcontent." + +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:57 msgid "web_ui.load_from_disk.choose_zipfile_button" msgstr "Select file" -#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:45 +#: src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja:64 msgid "web_ui.load_from_disk.install_button" msgstr "Import" -#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:23 msgid "web_ui.items.single.package.title" msgstr "Package view" -#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:25 +#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:27 msgid "web_ui.items.single.package.heading.name_{}" msgstr "Packages named '{}'" -#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:35 +#: src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja:39 msgid "web_ui.items.single.package.version_list_heading" msgstr "Available versions" @@ -381,164 +407,176 @@ msgstr "Package '{}'" #: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:42 msgid "web_ui.items.single_version.package.item_required" -msgstr "This package is required. It cannot be uninstalled." +msgstr "This package version is required. It cannot be uninstalled." #: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:46 msgid "web_ui.items.single_version.package.item_auto_activated" -msgstr "This package can be activated automatically." +msgstr "This package version can be activated automatically." #: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:50 msgid "web_ui.items.single_version.package.item_not_activated" -msgstr "This package is not active." +msgstr "This package version is not active." #: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:54 msgid "web_ui.items.single_version.package.install_failed" -msgstr "Couldn't install this package." +msgstr "Couldn't install this package version." #: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:58 msgid "web_ui.items.single_version.package.version_list_heading" -msgstr "Other available versions of this package" +msgstr "Other available versions of the package" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:74 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:72 msgid "web_ui.items.single_version.unenable_button" msgstr "Forget" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:75 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:73 msgid "web_ui.items.single_version.disable_button" msgstr "Disable" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:76 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:74 msgid "web_ui.items.single_version.enable_button" msgstr "Enable" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:80 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:79 msgid "web_ui.items.single_version.item_not_marked" -msgstr "This package isn't enabled." +msgstr "The package isn't enabled." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:83 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:82 msgid "web_ui.items.single_version.item_disabled" -msgstr "All versions of this package have been explicitly disabled by the user." +msgstr "All versions of the package have been explicitly disabled by the user." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:87 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:86 msgid "web_ui.items.single_version.item_enabled" -msgstr "This package has been enabled by the user." +msgstr "The package has been enabled by the user." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:109 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:105 msgid "web_ui.items.single_version.unpin_button" msgstr "Unpin" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:113 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:110 msgid "web_ui.items.single_version.not_pinned" -msgstr "This package is not pinned to any version." +msgstr "The package is not pinned to any version." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:118 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:115 msgid "web_ui.items.single_version.pinned_repo_local" -msgstr "This package is pinned to only use locally installed versions." +msgstr "The package is pinned to only use locally installed versions." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:122 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:118 msgid "web_ui.items.single_version.pinned_repo_{}" -msgstr "This package is pinned to only use versions from repository '{}'." +msgstr "The package is pinned to only use versions from repository '{}'." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:134 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:129 msgid "web_ui.items.single_version.pin_local_repo_button" msgstr "Pin to local packages" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:138 -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:149 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:134 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:147 msgid "web_ui.items.single_version.pin_repo_button" msgstr "Pin to repository" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:145 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:141 msgid "web_ui.items.single_version.repin_repo_button" msgstr "Pin to this repository" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:154 -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:164 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:155 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:166 msgid "web_ui.items.single_version.pin_ver_button" msgstr "Pin to this version" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:156 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:158 msgid "web_ui.items.single_version.pinned_ver" -msgstr "This package is pinned to this version." +msgstr "The package is pinned to this version." -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:159 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:161 msgid "web_ui.items.single_version.repin_ver_button" msgstr "Pin to this version" -#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:161 +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:163 msgid "web_ui.items.single_version.pinned_other_ver" -msgstr "This package is pinned to a different version." +msgstr "The package is pinned to a different version." + +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:171 +msgid "web_ui.items.single_version.active_ver_is_this_one" +msgstr "This is the currently active version." + +#: src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja:175 +msgid "web_ui.items.single_version.active_ver_is_{}" +msgstr "Currently active version is '{}'." -#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:23 msgid "web_ui.packages.title" msgstr "Packages" -#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:29 +#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:39 msgid "web_ui.packages.heading" msgstr "Available packages" -#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:53 +#: src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja:73 msgid "web_ui.packages.enabled_version_{}" msgstr "enabled version {}" -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:23 msgid "web_ui.repos.add.title" msgstr "New repository" -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:24 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:26 msgid "web_ui.repos.add.heading" msgstr "Configure a new repository" -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:28 -msgid "web_ui.repos.add.name_field_label" -msgstr "Name" - -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:33 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:68 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:29 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:67 msgid "web_ui.err.repo_name_invalid" msgstr "Chosen name is not valid." -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:38 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:73 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:33 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:71 msgid "web_ui.err.repo_name_taken" msgstr "Chosen name is already in use." -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:46 -msgid "web_ui.repos.add.url_field_label" -msgstr "URL" +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:37 +msgid "web_ui.repos.add.name_field_label" +msgstr "Name" -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:51 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:116 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:47 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:121 msgid "web_ui.err.repo_url_invalid" msgstr "Chosen URL is not vald." -#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:59 +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:51 +msgid "web_ui.repos.add.url_field_label" +msgstr "URL" + +#: src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja:62 msgid "web_ui.repos.add.submit_button" msgstr "Add repository" -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:23 msgid "web_ui.repos.title" msgstr "Repositories" -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:29 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:32 msgid "web_ui.repos.heading" -msgstr "Configured repositories" +msgstr "Manage repositories" -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:32 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:36 msgid "web_ui.repos.add_repo_button" msgstr "Configure new repository" -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:52 -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:62 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:41 +msgid "web_ui.repos.repo_list_heading" +msgstr "Configured repositories" + +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:64 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:79 msgid "web_ui.repos.package_count_{}" msgstr "packages: {}" -#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:59 -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:46 +#: src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja:76 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:45 msgid "web_ui.repos.local_packages_semirepo" msgstr "Local items" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:22 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:23 msgid "web_ui.repos.single.title" msgstr "Repository view" @@ -548,59 +586,63 @@ msgstr "" "Repository uses an unsupported API version. You might need to update " "Haketilo." -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:49 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:48 msgid "web_ui.repos.single.heading.name_{}" -msgstr "Configured repositories" +msgstr "Repository '{}'" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:61 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:60 msgid "web_ui.repos.single.update_name_button" msgstr "Change name" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:81 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:80 msgid "web_ui.repos.single.commit_update_name_button" msgstr "Set new name" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:84 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:85 msgid "web_ui.repos.single.abort_update_name_button" msgstr "Cancel" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:92 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:96 msgid "web_ui.repos.single.repo_is_deleted" msgstr "" "This repository has been deleted but you're still holding packages that " "came from it." -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:108 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:102 +msgid "web_ui.repos.single.url_is_{}" +msgstr "Current URL is '{}'." + +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:114 msgid "web_ui.repos.single.update_url_button" msgstr "Change URL" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:124 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:130 msgid "web_ui.repos.single.commit_update_url_button" msgstr "Set new URL" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:127 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:135 msgid "web_ui.repos.single.abort_update_url_button" msgstr "Cancel" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:133 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:145 msgid "web_ui.repos.single.repo_never_refreshed" msgstr "This repository has not been refreshed yet" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:136 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:148 msgid "web_ui.repos.single.last_refreshed_{}" msgstr "Last refreshed on {}." -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:143 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:154 msgid "web_ui.repos.single.refresh_now_button" msgstr "Refresh" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:150 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:162 msgid "web_ui.repos.item_count_{mappings}_{resources}" msgstr "packages: {mappings}; libraries: {resources}" -#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:161 +#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:173 msgid "web_ui.repos.single.remove_button" -msgstr "Remove" +msgstr "Remove repository" #: src/hydrilla/server/malcontent.py:79 msgid "err.server.malcontent_path_not_dir_{}" diff --git a/src/hydrilla/proxy/state_impl/concrete_state.py b/src/hydrilla/proxy/state_impl/concrete_state.py index 6bc6404..4781baa 100644 --- a/src/hydrilla/proxy/state_impl/concrete_state.py +++ b/src/hydrilla/proxy/state_impl/concrete_state.py @@ -251,7 +251,7 @@ class ConcreteHaketiloState(base.HaketiloStateWithFields): def get_settings(self) -> st.HaketiloGlobalSettings: return st.HaketiloGlobalSettings( mapping_use_mode = st.MappingUseMode.AUTO, - default_allow_scripts = True, + default_allow_scripts = False, repo_refresh_seconds = 0 ) diff --git a/src/hydrilla/proxy/web_ui/items.py b/src/hydrilla/proxy/web_ui/items.py index a781856..1a56d7d 100644 --- a/src/hydrilla/proxy/web_ui/items.py +++ b/src/hydrilla/proxy/web_ui/items.py @@ -47,16 +47,11 @@ from .. import state as st from . import _app -class InvalidUploadedMalcontent(HaketiloException): - def __init__(self): - super().__init__(_('err.proxy.uploaded_malcontent_invalid')) - - bp = flask.Blueprint('items', __package__) @bp.route('/load_from_disk', methods=['GET']) -def load_from_disk() -> werkzeug.Response: - html = flask.render_template('items/load_from_disk.html.jinja') +def load_from_disk(errors: t.Mapping[str, bool] = {}) -> werkzeug.Response: + html = flask.render_template('items/load_from_disk.html.jinja', **errors) return flask.make_response(html, 200) @bp.route('/load_from_disk', methods=['POST']) @@ -74,11 +69,11 @@ def load_from_disk_post() -> werkzeug.Response: with zipfile.ZipFile(zip_file_storage) as zip_file: zip_file.extractall(tmpdir_child) except: - raise HaketiloException(_('err.proxy.uploaded_file_not_zip')) + return load_from_disk({'uploaded_file_not_zip': True}) extracted_top_level_files = tuple(tmpdir_child.iterdir()) if extracted_top_level_files == (): - raise InvalidUploadedMalcontent() + return load_from_disk({'invalid_uploaded_malcontent': True}) if len(extracted_top_level_files) == 1 and \ extracted_top_level_files[0].is_dir(): @@ -89,7 +84,7 @@ def load_from_disk_post() -> werkzeug.Response: try: _app.get_haketilo_state().import_items(malcontent_dir_path) except: - raise InvalidUploadedMalcontent() + return load_from_disk({'invalid_uploaded_malcontent': True}) return flask.redirect(flask.url_for('.packages')) diff --git a/src/hydrilla/proxy/web_ui/templates/base.html.jinja b/src/hydrilla/proxy/web_ui/templates/base.html.jinja index 2febf2f..fe3113b 100644 --- a/src/hydrilla/proxy/web_ui/templates/base.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/base.html.jinja @@ -21,14 +21,24 @@ in a proprietary work, I am not going to enforce this in court. <!DOCTYPE html> {% macro button_row(buttons_data) %} - <div class="button-row"> + <div class="flex-row"> {% for classes, text, action in buttons_data %} + {% if not loop.first %} + <div class="button-row-separator"></div> + {% do classes.append('button-bordering-left') %} + {% endif %} + + {% if not loop.last %} + {% do classes.append('button-bordering-right') %} + {% endif %} + {% if 'disabled-button' in classes %} {% set disabled_attr = ' disabled=""' %} {% else %} {% set disabled_attr = '' %} {% endif %} - <form method="POST" class="inline-form"> + + <form method="POST" class="flex-row"> <input name="action" value="{{ action }}" type="hidden"> <button class="{{ classes|join(' ') }}"{{ disabled_attr }}> {{ text }} @@ -38,6 +48,12 @@ in a proprietary work, I am not going to enforce this in court. </div> {% endmacro %} +{% macro error_note(note_text) %} + <aside class="error-note"> + {{ note_text }} + </aside> +{% endmacro %} + <html> <head> {% block head %} @@ -56,6 +72,7 @@ in a proprietary work, I am not going to enforce this in court. #main { max-width: 750px; margin: auto; + padding: 0 5px; } a { @@ -63,16 +80,6 @@ in a proprietary work, I am not going to enforce this in court. color: inherit; } - .inline-form { - display: inline-flex; - padding: 0; - margin: 0; - } - - .inline-form > * { - flex: 1 1 0; - } - .small-print { font-size: 80%; color: #555; @@ -81,22 +88,52 @@ in a proprietary work, I am not going to enforce this in court. .error-note { display: block; border-left: 5px solid #a33; + padding: 10px; background-color: #fcc; } + .block-with-bottom-margin, .flex-row, aside, p { + display: block; + margin: 0 0 10px 0; + } + + .flex-row { + display: flex; + padding: 0; + } + + .flex-row > * { + flex: 1 1 0; + } + + .flex-row > .flex-row { + margin: 0; + } + + .button-row-separator { + background-color: #65A065; + flex: 0 0 2px; + } + + div.horizontal-separator { + display: block; + background-color: #ccc; + height: 1px; + margin: 0 0 10px 0; + } + .green-button, .red-button, .blue-button { border: none; border-radius: 2px; color: white; text-align: center; text-decoration: none; - display: inline-block; + display: block; padding: 5px 10px; -moz-user-select: none; user-select: none; cursor: pointer; font: 400 0.9em sans-serif; - margin: 2px; } .green-button { @@ -112,34 +149,22 @@ in a proprietary work, I am not going to enforce this in court. } .disabled-button { - background-color: #aaa; - cursor: default; + background-color: #aaa; + cursor: default; } .button-bordering-right { - margin-right: 0; border-radius: 2px 0 0 2px; - border-right: 1px solid #65A065; } .button-bordering-left { - margin-left: 0; border-radius: 0 2px 2px 0; - border-left: 1px solid #65A065; } .button-bordering-left.button-bordering-right { border-radius: 0; } - .button-row { - display: flex; - } - - .button-row > * { - flex: 1 1 0; - } - .hide { display: none !important; } diff --git a/src/hydrilla/proxy/web_ui/templates/include/item_list_style.css.jinja b/src/hydrilla/proxy/web_ui/templates/include/item_list_style.css.jinja index 86ac1b5..d834862 100644 --- a/src/hydrilla/proxy/web_ui/templates/include/item_list_style.css.jinja +++ b/src/hydrilla/proxy/web_ui/templates/include/item_list_style.css.jinja @@ -26,7 +26,7 @@ ul#item_list > li { list-style-type: none; max-width: 100%; white-space: nowrap; - margin: 0 5px 0 5px; + margin: 0; } ul#item_list > li > :only-child { diff --git a/src/hydrilla/proxy/web_ui/templates/index.html.jinja b/src/hydrilla/proxy/web_ui/templates/index.html.jinja index 8fd2ead..725e30e 100644 --- a/src/hydrilla/proxy/web_ui/templates/index.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/index.html.jinja @@ -19,7 +19,25 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.home.title') }} {% endblock %} + {% block main %} - {{ _('web_ui.home.welcome_to_haketilo') }} + <h3> + {{ _('web_ui.home.heading.welcome_to_haketilo') }} + </h3> + + <p> + {{ _('web_ui.home.this_is_haketilo_page') }} + </p> + + <div class="horizontal-separator"></div> + + <h4> + {{ _('web_ui.home.heading.about_haketilo') }} + </h4> + + <p> + {{ _('web_ui.home.haketilo_is_blah_blah') }} + </p> {% endblock %} diff --git a/src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja index 07212ff..d4910ab 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja @@ -20,13 +20,13 @@ in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} -{% macro versioned_identifier_with_repo(info) %} +{% macro versioned_identifier_with_repo(info) -%} {{ info.info.version_string }} - {% if not info.is_local %} + {%- if not info.is_local %} @ {{ info.info.repo }} - {% endif %} -{% endmacro %} + {%- endif %} +{%- endmacro %} {% block style %} {{ super() }} @@ -37,15 +37,25 @@ in a proprietary work, I am not going to enforce this in court. color: #777; } {% endblock %} + {% block main %} {% block main_info %} <h3>{% block heading required %}{% endblock %}</h3> {% endblock %} - {% if display_info.all_versions|length > 0 %} + + {% + if display_info.all_versions|length > 1 or + (display_info.all_versions|length == 1 and + (version_display_info is not defined or + version_display_info.ref != display_info.all_versions[0].ref)) + %} + <div class="horizontal-separator"></div> + <h4> {% block version_list_heading required %} {% endblock %} </h4> + <ul id="item_list"> {% for info in display_info.all_versions %} {% diff --git a/src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja index de62330..f1d34cc 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/item_viewversion.html.jinja @@ -19,44 +19,52 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "items/item_view.html.jinja" %} + {% block main_info %} {% if file_installation_error is defined %} - <aside class="error-note"> - {{ _('web_ui.err.file_installation_error') }} - </aside> + {{ error_note(_('web_ui.err.file_installation_error')) }} {% endif %} + {% if uninstall_disallowed is defined %} - <aside class="error-note"> - {{ _('web_ui.err.uninstall_disallowed') }} - </aside> + {{ error_note(_('web_ui.err.uninstall_disallowed')) }} {% endif %} + {% if repo_communication_error is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_communication_error') }} - </aside> + {{ error_note(_('web_ui.err.repo_communication_error')) }} {% endif %} {{ super() }} - <div class="item-identifier"> - {{ versioned_identifier_with_repo(version_display_info) }} - </div> + <p> + {{ + _('web_ui.items.single_version.version_{}') + .format(versioned_identifier_with_repo(version_display_info)) + }} + </p> + + <div class="horizontal-separator"></div> {% block main_info_bulk %} - TODO: add more info... + <p> + TODO: add more info... + </p> + + <div class="horizontal-separator"></div> {% endblock %} - {% if version_display_info.active == ActiveStatus.REQUIRED %} - <div>{% block item_required_msg required %}{% endblock %}</div> - {% elif version_display_info.active == ActiveStatus.AUTO %} - <div>{% block item_auto_activated_msg required %}{% endblock %}</div> - {% else %} - {# version_display_info.active == ActiveStatus.NOT_ACTIVE #} - <div>{% block item_not_activated_msg required %}{% endblock %}</div> - {% endif %} + <p> + {% if version_display_info.active == ActiveStatus.REQUIRED %} + {% block item_required_msg required %}{% endblock %} + {% elif version_display_info.active == ActiveStatus.AUTO %} + {% block item_auto_activated_msg required %}{% endblock %} + {% else %} + {# version_display_info.active == ActiveStatus.NOT_ACTIVE #} + {% block item_not_activated_msg required %}{% endblock %} + {% endif %} + </p> - {% set install_but_classes = ['green-button', 'button-bordering-left'] %} - {% set uninstall_but_classes = ['green-button', 'button-bordering-right'] %} + {% set install_but_classes = ['green-button'] %} + {% set uninstall_but_classes = ['green-button'] %} {% if version_display_info.installed == InstalledStatus.FAILED_TO_INSTALL %} {% set install_text = diff --git a/src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja index 77874cb..aa12246 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/libraries.html.jinja @@ -19,7 +19,9 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.libraries.title') }} {% endblock %} + {% block style %} {{ super() }} @@ -32,8 +34,10 @@ in a proprietary work, I am not going to enforce this in court. min-height: 2.2em; } {% endblock %} + {% block main %} <h3>{{ _('web_ui.libraries.heading') }}</h3> + <ul id="item_list"> {% for info in display_infos %} <li> diff --git a/src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja index b7d0d60..76736bc 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/library_view.html.jinja @@ -19,18 +19,24 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "items/item_view.html.jinja" %} + {% block title %} {{ _('web_ui.items.single.library.title') }} {% endblock %} + {% block heading %} {{ _('web_ui.items.single.library.heading.name_{}') .format(display_info.identifier) }} {% endblock %} + {% block main_info %} {{ super() }} - TODO: add more info... + <p> + TODO: add more info... + </p> {% endblock %} + {% block version_list_heading %} {{ _('web_ui.items.single.library.version_list_heading') }} {% endblock %} diff --git a/src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja index 9e0a32e..7e045ad 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/library_viewversion.html.jinja @@ -57,3 +57,9 @@ in a proprietary work, I am not going to enforce this in court. {% block version_list_heading %} {{ _('web_ui.items.single_version.library.version_list_heading') }} {% endblock %} + +{% block main_info_bulk %} + <p> + TODO: add more info... + </p> +{% endblock %} diff --git a/src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja index 84ade45..30179dd 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/load_from_disk.html.jinja @@ -19,7 +19,9 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.load_from_disk.title') }} {% endblock %} + {% block style %} {{ super() }} @@ -27,20 +29,37 @@ in a proprietary work, I am not going to enforce this in court. input[type="file"]::file-selector-button { display: none; } + + input[type="file"] { + display: block; + font-size: inherit; + font-style: inherit; + } {% endblock %} + {% block main %} <h3>{{ _('web_ui.load_from_disk.heading') }}</h3> + <form method="POST" enctype="multipart/form-data"> - <div> - <input id="items_zipfile" name="items_zipfile" type="file" - accept=".zip,application/zip" required=""> - </div> - <div> - <label class="green-button" for="items_zipfile"> - {{ _('web_ui.load_from_disk.choose_zipfile_button') }} - </label> - </div> - <div> + {% if uploaded_file_not_zip is defined %} + {{ error_note(_('web_ui.err.uploaded_file_not_zip')) }} + {% endif %} + + {% if invalid_uploaded_malcontent is defined %} + {{ error_note(_('web_ui.err.invalid_uploaded_malcontent')) }} + {% endif %} + + <input id="items_zipfile" name="items_zipfile" type="file" + accept=".zip,application/zip" required="" + class="block-with-bottom-margin"> + + <label class="green-button block-with-bottom-margin" for="items_zipfile"> + {{ _('web_ui.load_from_disk.choose_zipfile_button') }} + </label> + + <div class="horizontal-separator"></div> + + <div class="flex-row"> <button class="green-button"> {{ _('web_ui.load_from_disk.install_button') }} </button> diff --git a/src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja index 8df2d4d..ef04eb1 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/package_view.html.jinja @@ -19,18 +19,24 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "items/item_view.html.jinja" %} + {% block title %} {{ _('web_ui.items.single.package.title') }} {% endblock %} + {% block heading %} {{ _('web_ui.items.single.package.heading.name_{}') .format(display_info.identifier) }} {% endblock %} + {% block main_info %} {{ super() }} - TODO: add more info... + <p> + TODO: add more info... + </p> {% endblock %} + {% block version_list_heading %} {{ _('web_ui.items.single.package.version_list_heading') }} {% endblock %} diff --git a/src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja index ea8b7d3..1eb9878 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/package_viewversion.html.jinja @@ -59,33 +59,33 @@ in a proprietary work, I am not going to enforce this in court. {% endblock %} {% block main_info_bulk %} - TODO: add more info... - - {% set enable_but_classes = ['blue-button', 'button-bordering-left'] %} - {% - set unenable_but_classes = [ - 'green-button', - 'button-bordering-right', - 'button-bordering-left' - ] - %} - {% set disable_but_classes = ['red-button', 'button-bordering-right'] %} + <p> + TODO: add more info... + </p> + + <div class="horizontal-separator"></div> + + {% set enable_but_classes = ['blue-button'] %} + {% set unenable_but_classes = ['green-button'] %} + {% set disable_but_classes = ['red-button'] %} {% set unenable_text = _('web_ui.items.single_version.unenable_button') %} {% set disable_text = _('web_ui.items.single_version.disable_button') %} {% set enable_text = _('web_ui.items.single_version.enable_button') %} - {% if display_info.enabled == EnabledStatus.NO_MARK %} - {% do unenable_but_classes.append('disabled-button') %} - <div> {{ _('web_ui.items.single_version.item_not_marked') }} </div> - {% elif display_info.enabled == EnabledStatus.DISABLED %} - {% do disable_but_classes.append('disabled-button') %} - <div> {{ _('web_ui.items.single_version.item_disabled') }} </div> - {% else %} - {# display_info.enabled == EnabledStatus.ENABLED #} - {% do enable_but_classes.append('disabled-button') %} - <div> {{ _('web_ui.items.single_version.item_enabled') }} </div> - {% endif %} + <p> + {% if display_info.enabled == EnabledStatus.NO_MARK %} + {% do unenable_but_classes.append('disabled-button') %} + {{ _('web_ui.items.single_version.item_not_marked') }} + {% elif display_info.enabled == EnabledStatus.DISABLED %} + {% do disable_but_classes.append('disabled-button') %} + {{ _('web_ui.items.single_version.item_disabled') }} + {% else %} + {# display_info.enabled == EnabledStatus.ENABLED #} + {% do enable_but_classes.append('disabled-button') %} + {{ _('web_ui.items.single_version.item_enabled') }} + {% endif %} + </p> {{ button_row([ @@ -95,74 +95,90 @@ in a proprietary work, I am not going to enforce this in court. ]) }} + <div class="horizontal-separator"></div> + {% if display_info.enabled == EnabledStatus.ENABLED %} - {% set unpin_but_classes = ['green-button', 'button-bordering-right'] %} - {% - set pin_repo_but_classes = [ - 'green-button', - 'button-bordering-right', - 'button-bordering-left' - ] - %} - {% set pin_ver_but_classes = ['green-button', 'button-bordering-left'] %} + {% set unpin_but_classes = ['green-button'] %} + {% set pin_repo_but_classes = ['green-button'] %} + {% set pin_ver_but_classes = ['green-button'] %} {% set unpin_text = _('web_ui.items.single_version.unpin_button') %} - {% if display_info.frozen == FrozenStatus.NOT_FROZEN %} - {% do unpin_but_classes.append('disabled-button') %} - <div> {{ _('web_ui.items.single_version.not_pinned') }} </div> - {% endif %} + <p> + {% if display_info.frozen == FrozenStatus.NOT_FROZEN %} + {% do unpin_but_classes.append('disabled-button') %} + {{ _('web_ui.items.single_version.not_pinned') }} + {% endif %} - {% if display_info.frozen == FrozenStatus.REPOSITORY %} - {% if display_info.active_version.is_local %} - <div> {{ _('web_ui.items.single_version.pinned_repo_local') }} </div> - {% else %} - <div> + {% if display_info.frozen == FrozenStatus.REPOSITORY %} + {% if display_info.active_version.is_local %} + {{ _('web_ui.items.single_version.pinned_repo_local') }} + {% else %} {{ _('web_ui.items.single_version.pinned_repo_{}') .format(display_info.active_version.info.repo) }} - </div> - {% endif %} - {% - if display_info.active_version.info.repo == - version_display_info.info.repo - %} - {% if version_display_info.is_local %} + {% endif %} + {% + if display_info.active_version.info.repo == + version_display_info.info.repo + %} + {% if version_display_info.is_local %} + {% + set pin_repo_text = + _('web_ui.items.single_version.pin_local_repo_button') + %} + {% else %} + {% + set pin_repo_text = + _('web_ui.items.single_version.pin_repo_button') + %} + {% endif %} + {% do pin_repo_but_classes.append('disabled-button') %} + {% else %} {% set pin_repo_text = - _('web_ui.items.single_version.pin_local_repo_button') + _('web_ui.items.single_version.repin_repo_button') + %} + {% endif %} + {% else %}{# display_info.frozen == FrozenStatus.REPOSITORY #} + {% + set pin_repo_text = + _('web_ui.items.single_version.pin_repo_button') + %} + {% endif %}{# else/ display_info.frozen == FrozenStatus.REPOSITORY #} + + {% if display_info.frozen == FrozenStatus.EXACT_VERSION %} + {% if display_info.active_version.ref == version_display_info.ref %} + {% + set pin_ver_text = + _('web_ui.items.single_version.pin_ver_button') %} + {% do pin_ver_but_classes.append('disabled-button') %} + {{ _('web_ui.items.single_version.pinned_ver') }} {% else %} {% - set pin_repo_text = _('web_ui.items.single_version.pin_repo_button') + set pin_ver_text = _('web_ui.items.single_version.repin_ver_button') %} + {{ _('web_ui.items.single_version.pinned_other_ver') }} {% endif %} - {% do pin_repo_but_classes.append('disabled-button') %} {% else %} - {% - set pin_repo_text = - _('web_ui.items.single_version.repin_repo_button') - %} - {% endif %} - {% else %}{# display_info.frozen == FrozenStatus.REPOSITORY #} - {% set pin_repo_text = _('web_ui.items.single_version.pin_repo_button') %} - {% endif %}{# else/ display_info.frozen == FrozenStatus.REPOSITORY #} + {% set pin_ver_text = _('web_ui.items.single_version.pin_ver_button') %} + {% endif %}{# else/ display_info.frozen == FrozenStatus.EXACT_VERSION #} - {% if display_info.frozen == FrozenStatus.EXACT_VERSION %} {% if display_info.active_version.ref == version_display_info.ref %} - {% set pin_ver_text = _('web_ui.items.single_version.pin_ver_button') %} - {% do pin_ver_but_classes.append('disabled-button') %} - <div> {{ _('web_ui.items.single_version.pinned_ver') }} </div> + {% if display_info.frozen != FrozenStatus.EXACT_VERSION %} + {{ _('web_ui.items.single_version.active_ver_is_this_one') }} + {% endif %} {% else %} - {% - set pin_ver_text = _('web_ui.items.single_version.repin_ver_button') - %} - <div> {{ _('web_ui.items.single_version.pinned_other_ver') }} </div> + {{ + _('web_ui.items.single_version.active_ver_is_{}') + .format( + versioned_identifier_with_repo(display_info.active_version) + ) + }} {% endif %} - {% else %} - {% set pin_ver_text = _('web_ui.items.single_version.pin_ver_button') %} - {% endif %}{# else/ display_info.frozen == FrozenStatus.EXACT_VERSION #} + </p> {{ button_row([ @@ -171,5 +187,7 @@ in a proprietary work, I am not going to enforce this in court. (pin_ver_but_classes, pin_ver_text, 'freeze_to_version') ]) }} + + <div class="horizontal-separator"></div> {% endif %}{# display_info.enabled == EnabledStatus.ENABLED #} {% endblock main_info_bulk %} diff --git a/src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja b/src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja index 093570d..3c2b241 100644 --- a/src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/items/packages.html.jinja @@ -19,7 +19,9 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.packages.title') }} {% endblock %} + {% block style %} {{ super() }} @@ -32,8 +34,10 @@ in a proprietary work, I am not going to enforce this in court. min-height: 2.2em; } {% endblock %} + {% block main %} <h3>{{ _('web_ui.packages.heading') }}</h3> + <ul id="item_list"> {% for info in display_infos %} {% set entry_classes = [] %} diff --git a/src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja b/src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja index 398ac9a..8542d89 100644 --- a/src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/repos/add.html.jinja @@ -19,42 +19,45 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.repos.add.title') }} {% endblock %} + {% block main %} <h3>{{ _('web_ui.repos.add.heading') }}</h3> <form method="POST"> - <div> - <label for="name_field"> - {{ _('web_ui.repos.add.name_field_label') }} - </label> - </div> {% if repo_name_invalid is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_name_invalid') }} - </aside> + {{ error_note(_('web_ui.err.repo_name_invalid')) }} {% endif %} + {% if repo_name_taken is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_name_taken') }} - </aside> + {{ error_note(_('web_ui.err.repo_name_taken')) }} {% endif %} - <div> + + <label for="name_field" class="block-with-bottom-margin"> + {{ _('web_ui.repos.add.name_field_label') }} + </label> + + <div class="flex-row"> <input id="name_field" name="name" required=""> </div> - <div> - <label for="url_field"> - {{ _('web_ui.repos.add.url_field_label') }} - </label> - </div> + + <div class="horizontal-separator"></div> + {% if repo_url_invalid is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_url_invalid') }} - </aside> + {{ error_note(_('web_ui.err.repo_url_invalid')) }} {% endif %} - <div> + + <label for="url_field" class="block-with-bottom-margin"> + {{ _('web_ui.repos.add.url_field_label') }} + </label> + + <div class="flex-row"> <input id="url_field" name="url" required=""> </div> - <div> + + <div class="horizontal-separator"></div> + + <div class="flex-row block-with-bottom-margin"> <button class="green-button"> {{ _('web_ui.repos.add.submit_button') }} </button> diff --git a/src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja b/src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja index 07506e8..e6e9036 100644 --- a/src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/repos/index.html.jinja @@ -19,19 +19,27 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %}{{ _('web_ui.repos.title') }}{% endblock %} + {% block style %} {{ super() }} {% include 'include/item_list_style.css.jinja' %} {% endblock %} + {% block main %} <h3>{{ _('web_ui.repos.heading') }}</h3> - <div> - <a href="{{ url_for('.add_repo') }}" class="green-button"> - {{ _('web_ui.repos.add_repo_button') }} - </a> - </div> + + <a href="{{ url_for('.add_repo') }}" + class="green-button block-with-bottom-margin"> + {{ _('web_ui.repos.add_repo_button') }} + </a> + + <div class="horizontal-separator"></div> + + <h4>{{ _('web_ui.repos.repo_list_heading') }}</h4> + <ul id="item_list"> {% for info in display_infos %} {% set entry_classes = [] %} diff --git a/src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja b/src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja index 604b38c..448c451 100644 --- a/src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja +++ b/src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja @@ -19,29 +19,28 @@ file's licenses. Although I request that you do not make use this code in a proprietary work, I am not going to enforce this in court. #} {% extends "base.html.jinja" %} + {% block title %} {{ _('web_ui.repos.single.title') }} {% endblock %} + {% block style %} {{ super() }} {% include 'include/checkbox_tricks_style.css.jinja' %} {% endblock %} + {% block main %} {% if file_installation_error is defined %} - <aside class="error-note"> - {{ _('web_ui.err.file_installation_error') }} - </aside> + {{ error_note(_('web_ui.err.file_installation_error')) }} {% endif %} + {% if repo_communication_error is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_communication_error') }} - </aside> + {{ error_note(_('web_ui.err.repo_communication_error')) }} {% endif %} + {% if repo_api_version_unsupported is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_api_version_unsupported') }} - </aside> + {{ error_note(_('web_ui.err.repo_api_version_unsupported')) }} {% endif %} - {% set repo_id = display_info.ref.id %} + {% if display_info.is_local_semirepo %} <h3>{{ _('web_ui.repos.local_packages_semirepo') }}</h3> {% else %} @@ -56,42 +55,53 @@ in a proprietary work, I am not going to enforce this in court. {% if not display_info.deleted %} <input id="hide_name_edit_form" type="checkbox" class="chbx-tricks-show-hide" {{ checked_attr }}> - <div> - <label for="hide_name_edit_form" class="green-button"> - {{ _('web_ui.repos.single.update_name_button') }} - </label> - </div> + <label for="hide_name_edit_form" + class="green-button block-with-bottom-margin"> + {{ _('web_ui.repos.single.update_name_button') }} + </label> + <form method="POST"> <input type="hidden" name="action" value="update_repo_data"> + {% if repo_name_invalid is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_name_invalid') }} - </aside> + {{ error_note(_('web_ui.err.repo_name_invalid')) }} {% endif %} + {% if repo_name_taken is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_name_taken') }} - </aside> + {{ error_note(_('web_ui.err.repo_name_taken')) }} {% endif %} - <div> + + <div class="flex-row"> <input name="name" value="{{ display_info.name }}" required=""> </div> - <div> - <button class="green-button"> + + <div class="flex-row"> + <button class="green-button button-bordering-right"> {{ _('web_ui.repos.single.commit_update_name_button') }} </button> - <label for="hide_name_edit_form" class="green-button"> + <div class="button-row-separator"></div> + <label for="hide_name_edit_form" + class="green-button button-bordering-left"> {{ _('web_ui.repos.single.abort_update_name_button') }} </label> </div> </form> + + <div class="horizontal-separator"></div> {% endif %}{# not display_info.deleted #} {% endif %}{# else/ display_info.is_local_semirepo #} + {% if display_info.deleted and not display_info.is_local_semirepo %} - <div> + <p> {{ _('web_ui.repos.single.repo_is_deleted') }} - </div> + </p> + + <div class="horizontal-separator"></div> {% elif not display_info.deleted %} + <p> + {{ _('web_ui.repos.single.url_is_{}').format(display_info.url) }} + </p> + {% if repo_url_invalid is defined %} {% set checked_attr = '' %} {% else %} @@ -99,53 +109,55 @@ in a proprietary work, I am not going to enforce this in court. {% endif %} <input id="hide_url_edit_form" type="checkbox" class="chbx-tricks-show-hide" {{ checked_attr }}> - <div> - <div> - {{ display_info.url }} - </div> - <div> - <label for="hide_url_edit_form" class="green-button"> - {{ _('web_ui.repos.single.update_url_button') }} - </label> - </div> - </div> + <label for="hide_url_edit_form" + class="green-button block-with-bottom-margin"> + {{ _('web_ui.repos.single.update_url_button') }} + </label> + <form method="POST"> <input type="hidden" name="action" value="update_repo_data"> + {% if repo_url_invalid is defined %} - <aside class="error-note"> - {{ _('web_ui.err.repo_url_invalid') }} - </aside> + {{ error_note(_('web_ui.err.repo_url_invalid')) }} {% endif %} - <div> + + <div class="flex-row"> <input name="url" value="{{ display_info.url }}" required=""> </div> - <div> - <button class="green-button"> + + <div class="flex-row"> + <button class="green-button button-bordering-right"> {{ _('web_ui.repos.single.commit_update_url_button') }} </button> - <label for="hide_url_edit_form" class="green-button"> + <div class="button-row-separator"></div> + <label for="hide_url_edit_form" + class="green-button button-bordering-left"> {{ _('web_ui.repos.single.abort_update_url_button') }} </label> </div> </form> + + <div class="horizontal-separator"></div> + <div> - {% if display_info.last_refreshed is none %} - {{ _('web_ui.repos.single.repo_never_refreshed') }} - {% else %} - {{ - _('web_ui.repos.single.last_refreshed_{}') - .format(display_info.last_refreshed.strftime('%F %H:%M')) - }} - {% endif %} - <form method="POST"> - <input type="hidden" name="action" value="refresh_repo"> - <button class="green-button"> - {{ _('web_ui.repos.single.refresh_now_button') }} - </button> - </form> + <p> + {% if display_info.last_refreshed is none %} + {{ _('web_ui.repos.single.repo_never_refreshed') }} + {% else %} + {{ + _('web_ui.repos.single.last_refreshed_{}') + .format(display_info.last_refreshed.strftime('%F %H:%M')) + }} + {% endif %} + </p> + + {% set button_text = _('web_ui.repos.single.refresh_now_button') %} + {{ button_row([[['green-button'], button_text, 'refresh_repo']]) }} </div> + + <div class="horizontal-separator"></div> {% endif %}{# not display_info.deleted (elif) #} - <div> + <p> {{ _('web_ui.repos.item_count_{mappings}_{resources}') .format( @@ -153,13 +165,12 @@ in a proprietary work, I am not going to enforce this in court. resources = display_info.resource_count ) }} - </div> + </p> + {% if not display_info.is_local_semirepo and not display_info.deleted %} - <form method="POST"> - <input type="hidden" name="action" value="remove_repo"> - <button class="green-button"> - {{ _('web_ui.repos.single.remove_button') }} - </button> - </form> + <div class="horizontal-separator"></div> + + {% set button_text = _('web_ui.repos.single.remove_button') %} + {{ button_row([[['green-button'], button_text, 'remove_repo']]) }} {% endif %} {% endblock %} |