aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla
diff options
context:
space:
mode:
Diffstat (limited to 'src/hydrilla')
-rw-r--r--src/hydrilla/locales/en_US/LC_MESSAGES/messages.po130
-rw-r--r--src/hydrilla/locales/pl_PL/LC_MESSAGES/messages.po132
-rw-r--r--src/hydrilla/proxy/state.py5
-rw-r--r--src/hydrilla/proxy/state_impl/concrete_state.py32
-rw-r--r--src/hydrilla/proxy/web_ui/root.py7
-rw-r--r--src/hydrilla/proxy/web_ui/templates/index.html.jinja26
6 files changed, 214 insertions, 118 deletions
diff --git a/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po b/src/hydrilla/locales/en_US/LC_MESSAGES/messages.po
index 73527fd..f40397b 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-10-31 22:18+0100\n"
+"POT-Creation-Date: 2022-11-23 19:21+0100\n"
"PO-Revision-Date: 2022-02-12 00:00+0000\n"
"Last-Translator: Wojtek Kosior <koszko@koszko.org>\n"
"Language: en_US\n"
@@ -312,19 +312,19 @@ 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:119
+#: src/hydrilla/proxy/state_impl/concrete_state.py:127
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:146
+#: src/hydrilla/proxy/state_impl/concrete_state.py:161
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/state_impl/concrete_state.py:298
+#: src/hydrilla/proxy/state_impl/concrete_state.py:326
msgid "warn.proxy.failed_to_register_landing_page_at_{}"
msgstr "Failed to register landing page at \"{}\"."
@@ -437,20 +437,32 @@ msgid "web_ui.home.title"
msgstr "Welcome"
#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:35
+#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:44
+#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:30
+#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:35
+msgid "web_ui.err.file_installation_error"
+msgstr "Failed to install needed items from repository."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:39
+#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:48
+msgid "web_ui.err.impossible_situation_error"
+msgstr "Item constraints prevent the action from succeeding."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:43
msgid "web_ui.home.heading.welcome_to_haketilo"
msgstr "Welcome to Haketilo!"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:39
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:47
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:45
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:53
msgid "web_ui.home.heading.about_haketilo"
msgstr "About this tool"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:49
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:57
msgid "web_ui.home.html.haketilo_is_blah_blah"
msgstr ""
"Haketilo is a tool that gives users more control over their web browsing."
@@ -459,17 +471,17 @@ msgstr ""
"extension but has since been made into an HTTP proxy. It is built on top "
"of the popular <a href=\"https://mitmproxy.org/\">mitmproxy</a>."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:53
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:61
msgid "web_ui.home.html.see_haketilo_doc_{url}"
msgstr ""
"Helpful information concerning use of this tool can be found in "
"Haketilo's <a href=\"{url}\">embedded documentation</a>."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:62
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:70
msgid "web_ui.home.heading.configuring_browser_for_haketilo"
msgstr "Configuring the browser for Haketilo"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:66
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:74
msgid "web_ui.home.html.to_add_certs_do_xyz"
msgstr ""
"Haketilo proxy works by modifying data exchanged by your browser and web "
@@ -481,197 +493,199 @@ msgstr ""
"href=\"http://mitm.it\">this page</a> and add it to your operating "
"system, browser or both."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:73
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:81
msgid "web_ui.home.heading.options"
msgstr "Global options"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:76
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:84
msgid "web_ui.home.choose_language_label"
msgstr "Choose your language"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:95
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:103
msgid "web_ui.home.mapping_usage_mode_label"
msgstr "Package usage mode"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:106
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:114
msgid "web_ui.home.packages_are_used_when_enabled"
msgstr ""
"Haketilo is currently configured to only use packages that were "
"explicitly enabled."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:109
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:117
msgid "web_ui.home.user_gets_asked_whether_to_enable_package"
msgstr ""
"Haketilo is currently configured to ask whenever a package is found that "
"could be used for the current site."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:113
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:121
msgid "web_ui.home.packages_are_used_automatically"
msgstr ""
"Haketilo is currently configured to automatically use packages that are "
"available for the current site."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:120
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:128
msgid "web_ui.home.use_enabled_button"
msgstr "Use when enabled"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:123
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:131
msgid "web_ui.home.use_question_button"
msgstr "Ask whether to use"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:126
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:134
msgid "web_ui.home.use_auto_button"
msgstr "Use automatically"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:133
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:141
msgid "web_ui.home.script_blocking_mode_label"
msgstr "Default scripts treatment"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:143
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:151
msgid "web_ui.home.scripts_are_allowed_by_default"
msgstr ""
"By default Haketilo currently allows JavaScript sent by websites to the "
"browser to execute."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:146
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:154
msgid "web_ui.home.scripts_are_blocked_by_default"
msgstr ""
"By default Haketilo currently blocks JavaScript sent by websites to the "
"browser from executing."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:150
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:158
msgid "web_ui.home.allow_scripts_button"
msgstr "Allow scripts"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:151
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:159
msgid "web_ui.home.block_scripts_button"
msgstr "Block scripts"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:162
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:170
msgid "web_ui.home.advanced_features_label"
msgstr "Advanced features"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:172
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:180
msgid "web_ui.home.user_is_advanced_user"
msgstr "Interface features for advanced users are currently enabled."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:175
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:183
msgid "web_ui.home.user_is_simple_user"
msgstr "Interface features for advanced users are currently disabled."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:182
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:190
msgid "web_ui.home.user_make_advanced_button"
msgstr "Enable"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:185
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:193
msgid "web_ui.home.user_make_simple_button"
msgstr "Disable"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:193
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:201
+msgid "web_ui.home.update_waiting_label"
+msgstr "Package updates"
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:204
+msgid "web_ui.home.update_is_awaiting"
+msgstr "There might be some enabled items that can be updated to newer versions."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:207
+msgid "web_ui.home.update_items_button"
+msgstr "Update now"
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:219
msgid "web_ui.home.orphans_label"
msgstr "Orphans"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:199
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:225
msgid "web_ui.home.orphans_to_delete_{mappings}"
msgstr "Haketilo is holding some unused packages that can be removed ({mappings})."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:203
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:229
msgid "web_ui.home.orphans_to_delete_exist"
msgstr "Haketilo is holding some unused libraries that can be removed."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:207
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:233
msgid "web_ui.home.orphans_to_delete_{mappings}_{resources}"
msgstr ""
"Haketilo is holding some unused items that can be removed (packages: "
"{mappings}; libraries: {resources})."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:216
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:242
msgid "web_ui.home.prune_orphans_button"
msgstr "Prune orphans"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:227
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:253
msgid "web_ui.home.popup_settings_label"
msgstr "Popup settings"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:243
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:269
msgid "web_ui.home.configure_popup_settings_on_pages_with"
msgstr "Configure popup settings on pages with"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:249
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:275
msgid "web_ui.home.popup_settings_jsallowed_button"
msgstr "JS allowed"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:250
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:276
msgid "web_ui.home.popup_settings_jsblocked_button"
msgstr "JS blocked"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:251
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:277
msgid "web_ui.home.popup_settings_payloadon_button"
msgstr "Payload used"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:301
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:327
msgid "web_ui.home.popup_no_button"
msgstr "Disable popup"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:304
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:330
msgid "web_ui.home.popup_yes_button"
msgstr "Enable popup"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:314
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:340
msgid "web_ui.home.jsallowed_popup_yes"
msgstr ""
"Haketilo currently makes it possible to open its popup window on pages "
"where native JS has been allowed to execute. This is a convenience that "
"comes at a price of greater risk of user fingerprinting."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:316
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:342
msgid "web_ui.home.jsallowed_popup_no"
msgstr ""
"Haketilo currently does not make it possible to open its popup window on "
"pages with their native JS allowed. This setting is less convenient but "
"decreases the risk of user fingerprinting."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:322
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:348
msgid "web_ui.home.jsblocked_popup_yes"
msgstr ""
"Haketilo currently makes it possible to open its popup window on pages "
"where native JS has been blocked from executing."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:324
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:350
msgid "web_ui.home.jsblocked_popup_no"
msgstr ""
"Haketilo currently does not make it possible to open its popup window on "
"pages where native JS has been blocked from executing."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:330
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:356
msgid "web_ui.home.payloadon_popup_yes"
msgstr ""
"Haketilo currently makes it possible to open its popup window on pages "
"where payload is used."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:332
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:358
msgid "web_ui.home.payloadon_popup_no"
msgstr ""
"Haketilo currently does not make it possible to open its popup window on "
"pages where payload is used."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:337
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:363
msgid "web_ui.home.popup_can_be_opened_by"
msgstr ""
"When enabled on given page, popup dialog can be opened by typing big "
"letters \"HKT\". It can be subsequently closed by clicking anywhere on "
"the dark area around it."
-#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:44
-#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:30
-#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:35
-msgid "web_ui.err.file_installation_error"
-msgstr "Failed to install needed items from repository."
-
-#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:48
-msgid "web_ui.err.impossible_situation_error"
-msgstr "Item constraints prevent the action from succeeding."
-
#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:52
#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:34
#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:39
diff --git a/src/hydrilla/locales/pl_PL/LC_MESSAGES/messages.po b/src/hydrilla/locales/pl_PL/LC_MESSAGES/messages.po
index 833979b..2834afe 100644
--- a/src/hydrilla/locales/pl_PL/LC_MESSAGES/messages.po
+++ b/src/hydrilla/locales/pl_PL/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hydrilla 3.0-beta2\n"
"Report-Msgid-Bugs-To: koszko@koszko.org\n"
-"POT-Creation-Date: 2022-10-31 22:18+0100\n"
+"POT-Creation-Date: 2022-11-23 19:21+0100\n"
"PO-Revision-Date: 2022-02-12 00:00+0000\n"
"Last-Translator: Wojtek Kosior <koszko@koszko.org>\n"
"Language: pl_PL\n"
@@ -323,19 +323,19 @@ msgstr "Żądany plik nie został znaleziony."
msgid "api.resource_not_enabled_for_access"
msgstr "Żądany zasób nie jest udostępniony."
-#: src/hydrilla/proxy/state_impl/concrete_state.py:119
+#: src/hydrilla/proxy/state_impl/concrete_state.py:127
msgid "err.proxy.unknown_db_schema"
msgstr ""
"Dane Haketilo zostały zmodyfikowane, prawdopodobnie przez nowszą wersję "
"Haketilo."
-#: src/hydrilla/proxy/state_impl/concrete_state.py:146
+#: src/hydrilla/proxy/state_impl/concrete_state.py:161
msgid "err.proxy.no_sqlite_foreign_keys"
msgstr ""
"Ta instalacja Haketilo używa wersji SQLite, które nie wspiera ograniczeń "
"kluczy obcych."
-#: src/hydrilla/proxy/state_impl/concrete_state.py:298
+#: src/hydrilla/proxy/state_impl/concrete_state.py:326
msgid "warn.proxy.failed_to_register_landing_page_at_{}"
msgstr "Nie udało się zarejestrować strony lądowania pod \"{}\"."
@@ -448,20 +448,32 @@ msgid "web_ui.home.title"
msgstr "Witaj"
#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:35
+#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:44
+#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:30
+#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:35
+msgid "web_ui.err.file_installation_error"
+msgstr "Nie udało się zainstalować potrzebnych elementów z repozytorium."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:39
+#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:48
+msgid "web_ui.err.impossible_situation_error"
+msgstr "Ograniczenia własne elementów uniemożliły wykonanie akcji."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:43
msgid "web_ui.home.heading.welcome_to_haketilo"
msgstr "Witaj w Haketilo!"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:39
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:47
msgid "web_ui.home.this_is_haketilo_page"
msgstr ""
"To jest wirtualna witryna hostowana lokalnie przez Haketilo. Możesz użyć "
"jej do skonfigurowania proxy Haketilo."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:45
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:53
msgid "web_ui.home.heading.about_haketilo"
msgstr "O narzędziu"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:49
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:57
msgid "web_ui.home.html.haketilo_is_blah_blah"
msgstr ""
"Haketilo to narządzie, które daje użytkownikom więcej kontroli nad "
@@ -471,17 +483,17 @@ msgstr ""
"utworzone na nowo jako proxy HTTP. Jest zbudowane na popularnym <a "
"href=\"https://mitmproxy.org/\">mitmproxy</a>."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:53
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:61
msgid "web_ui.home.html.see_haketilo_doc_{url}"
msgstr ""
"Pomocne informacje dotyczące użycia tego narządzia można znaleźć we <a "
"href=\"{url}\">wbudowanej dokumentacji</a> Haketilo."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:62
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:70
msgid "web_ui.home.heading.configuring_browser_for_haketilo"
msgstr "Konfiguracja przeglądarki pod Haketilo"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:66
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:74
msgid "web_ui.home.html.to_add_certs_do_xyz"
msgstr ""
"Proxy Haketilo działa modyfikując dane wymieniane przez przeglądarkę z "
@@ -494,146 +506,160 @@ msgstr ""
"href=\"http://mitm.it\">tej strony</a> i dodaj go do swojego systemu "
"operacyjnego, przeglądarki lub obydwu."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:73
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:81
msgid "web_ui.home.heading.options"
msgstr "Opcje globalne"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:76
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:84
msgid "web_ui.home.choose_language_label"
msgstr "Wybierz swój język"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:95
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:103
msgid "web_ui.home.mapping_usage_mode_label"
msgstr "Tryb używania pakietów"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:106
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:114
msgid "web_ui.home.packages_are_used_when_enabled"
msgstr ""
"Haketilo jest obecnie skonfigurowane tak, aby używać wyłącznie pakietów, "
"które użytkownik sam aktywował."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:109
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:117
msgid "web_ui.home.user_gets_asked_whether_to_enable_package"
msgstr ""
"Haketilo jest obecnie skonfigurowane tak, aby pytać zawsze, kiedy "
"zostanie znaleziony pakiet, który mógłby być użyty na odwiedzanej "
"stronie."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:113
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:121
msgid "web_ui.home.packages_are_used_automatically"
msgstr ""
"Haketilo jest obecnie skonfigurowane tak, żeby automatycznie używać "
"pakietów, które są dostępne dla odwiedzanej strony."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:120
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:128
msgid "web_ui.home.use_enabled_button"
msgstr "Używaj aktywowanych"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:123
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:131
msgid "web_ui.home.use_question_button"
msgstr "Pytaj, czy użyć"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:126
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:134
msgid "web_ui.home.use_auto_button"
msgstr "Używaj automatycznie"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:133
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:141
msgid "web_ui.home.script_blocking_mode_label"
msgstr "Domyślne traktowanie skryptów"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:143
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:151
msgid "web_ui.home.scripts_are_allowed_by_default"
msgstr ""
"Haketilo obecnie domyślnie pozwala na wykonanie JavaScript'u przysyłanego"
" przez strony."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:146
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:154
msgid "web_ui.home.scripts_are_blocked_by_default"
msgstr ""
"Haketilo obecnie domyślnie blokuje wykonanie JavaScript'u przysyłanego "
"przez strony."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:150
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:158
msgid "web_ui.home.allow_scripts_button"
msgstr "Pozwalaj"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:151
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:159
msgid "web_ui.home.block_scripts_button"
msgstr "Blokuj"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:162
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:170
msgid "web_ui.home.advanced_features_label"
msgstr "Zaawansowane funkcje"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:172
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:180
msgid "web_ui.home.user_is_advanced_user"
msgstr "Funkcje interfejsu dla zaawansowanych użytkowników są obecnie włączone."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:175
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:183
msgid "web_ui.home.user_is_simple_user"
msgstr "Funkcje interfejsu dla zaawansowanych użytkowników są obecnie wyłączone."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:182
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:190
msgid "web_ui.home.user_make_advanced_button"
msgstr "Włącz"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:185
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:193
msgid "web_ui.home.user_make_simple_button"
msgstr "Wyłącz"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:193
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:201
+msgid "web_ui.home.update_waiting_label"
+msgstr "Aktualizacje pakietów"
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:204
+msgid "web_ui.home.update_is_awaiting"
+msgstr ""
+"Możliwe, że niektóre aktywne elementy mogą być uaktualnione do nowych "
+"wersji."
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:207
+msgid "web_ui.home.update_items_button"
+msgstr "Uaktualnij teraz"
+
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:219
msgid "web_ui.home.orphans_label"
msgstr "Opuszczone pakiety"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:199
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:225
msgid "web_ui.home.orphans_to_delete_{mappings}"
msgstr ""
"Haketilo przechowuje obecnie opuszczone pakiety, które można usunąć "
"({mappings})."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:203
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:229
msgid "web_ui.home.orphans_to_delete_exist"
msgstr "Haketilo przechowuje obecnie opuszczone biblioteki, które można usunąć."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:207
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:233
msgid "web_ui.home.orphans_to_delete_{mappings}_{resources}"
msgstr ""
"Haketilo przechowuje obecnie opuszczone elementy, które można usunąć "
"(pakiety: {mappings}; biblioteki: {resources})."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:216
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:242
msgid "web_ui.home.prune_orphans_button"
msgstr "Wyrzuć opuszczone"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:227
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:253
msgid "web_ui.home.popup_settings_label"
msgstr "Ustawienia popup'u"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:243
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:269
msgid "web_ui.home.configure_popup_settings_on_pages_with"
msgstr "Konfiguruj ustawienia popup'u na stronach, gdzie"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:249
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:275
msgid "web_ui.home.popup_settings_jsallowed_button"
msgstr "JS może się wykonywać"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:250
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:276
msgid "web_ui.home.popup_settings_jsblocked_button"
msgstr "JS jest zablokowany"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:251
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:277
msgid "web_ui.home.popup_settings_payloadon_button"
msgstr "Modyfikator w użyciu"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:301
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:327
msgid "web_ui.home.popup_no_button"
msgstr "Wyłącz popup"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:304
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:330
msgid "web_ui.home.popup_yes_button"
msgstr "Włącz popup"
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:314
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:340
msgid "web_ui.home.jsallowed_popup_yes"
msgstr ""
"Haketilo obecnie umożliwia otwieranie okna popup'u na stronach, gdzie "
@@ -641,7 +667,7 @@ msgstr ""
"przychodzi za cenę większego ryzyka zarejstrowania unikatowego \"odcisku "
"przeglądarki\" (tzw. fingerprinting)."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:316
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:342
msgid "web_ui.home.jsallowed_popup_no"
msgstr ""
"Haketilo obecnie nie umożliwia otwierania okna popup'u na stronach, gdzie"
@@ -649,47 +675,37 @@ msgstr ""
"dogodne ale zmniejsza ryzyko zarejstrowania unikatowego \"odcisku "
"przeglądarki\" (tzw. fingerprinting)."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:322
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:348
msgid "web_ui.home.jsblocked_popup_yes"
msgstr ""
"Haketilo obecnie umożliwia otwieranie okna popup'u na stronach, gdzie "
"zablokowano wykonanie oryginalnego JS'a."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:324
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:350
msgid "web_ui.home.jsblocked_popup_no"
msgstr ""
"Haketilo obecnie nie umożliwia otwierania okna popup'u na stronach, gdzie"
" zablokowano wykonanie oryginalnego JS'a."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:330
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:356
msgid "web_ui.home.payloadon_popup_yes"
msgstr ""
"Haketilo obecnie umożliwia otwieranie okna popup'u na stronach, gdzie w "
"użyciu jest modyfikator."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:332
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:358
msgid "web_ui.home.payloadon_popup_no"
msgstr ""
"Haketilo obecnie nie umożliwia otwierania okna popup'u na stronach, gdzie"
" w użyciu jest modyfikator.pages where payload is used."
-#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:337
+#: src/hydrilla/proxy/web_ui/templates/index.html.jinja:363
msgid "web_ui.home.popup_can_be_opened_by"
msgstr ""
"Gdy aktywne na danej stronie, okno pupup'u może być otworzone przez "
"wpisanie wielkich liter \"HKT\". Może być następnie zamknięte przez "
"kliknięcie gdziekolwiek na ciemnym obszarze naokoło niego."
-#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:44
-#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:30
-#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:35
-msgid "web_ui.err.file_installation_error"
-msgstr "Nie udało się zainstalować potrzebnych elementów z repozytorium."
-
-#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:48
-msgid "web_ui.err.impossible_situation_error"
-msgstr "Ograniczenia własne elementów uniemożliły wykonanie akcji."
-
#: src/hydrilla/proxy/web_ui/templates/items/item_view.html.jinja:52
#: src/hydrilla/proxy/web_ui/templates/prompts/package_suggestion.html.jinja:34
#: src/hydrilla/proxy/web_ui/templates/repos/show_single.html.jinja:39
diff --git a/src/hydrilla/proxy/state.py b/src/hydrilla/proxy/state.py
index 1a2d344..f73d01f 100644
--- a/src/hydrilla/proxy/state.py
+++ b/src/hydrilla/proxy/state.py
@@ -545,6 +545,7 @@ class HaketiloGlobalSettings:
advanced_user: bool
repo_refresh_seconds: int
locale: t.Optional[str]
+ update_waiting: bool
default_popup_jsallowed: PopupSettings
default_popup_jsblocked: PopupSettings
@@ -633,6 +634,10 @@ class HaketiloState(ABC):
) -> None:
...
+ @abstractmethod
+ def upate_all_items(self) -> None:
+ ...
+
@property
@abstractmethod
def listen_host(self) -> str:
diff --git a/src/hydrilla/proxy/state_impl/concrete_state.py b/src/hydrilla/proxy/state_impl/concrete_state.py
index e97514a..89a2eb2 100644
--- a/src/hydrilla/proxy/state_impl/concrete_state.py
+++ b/src/hydrilla/proxy/state_impl/concrete_state.py
@@ -79,6 +79,14 @@ def _add_locale_column(cursor: sqlite3.Cursor) -> None:
'''
)
+def _add_update_waiting_column(cursor: sqlite3.Cursor) -> None:
+ cursor.execute(
+ '''
+ ALTER TABLE general ADD COLUMN
+ update_waiting BOOLEAN NOT NULL DEFAULT TRUE;
+ '''
+ )
+
def _prepare_database(connection: sqlite3.Connection) -> None:
cursor = connection.cursor()
@@ -120,6 +128,7 @@ def _prepare_database(connection: sqlite3.Connection) -> None:
popup_settings_columns_present = False
locale_column_present = False
+ update_waiting_column_present = False
cursor.execute("PRAGMA TABLE_INFO('general')")
for __cid, name, __type, __notnull, __dflt_value, __pk \
@@ -130,12 +139,18 @@ def _prepare_database(connection: sqlite3.Connection) -> None:
if name == 'locale':
locale_column_present = True
+ if name == 'update_waiting':
+ update_waiting_column_present = True
+
if not popup_settings_columns_present:
_add_popup_settings_columns(cursor)
if not locale_column_present:
_add_locale_column(cursor)
+ if not update_waiting_column_present:
+ _add_update_waiting_column(cursor)
+
cursor.execute('COMMIT TRANSACTION;')
except:
cursor.execute('ROLLBACK TRANSACTION;')
@@ -158,14 +173,15 @@ def load_settings(cursor: sqlite3.Cursor) -> st.HaketiloGlobalSettings:
advanced_user,
repo_refresh_seconds,
mapping_use_mode,
- locale
+ locale,
+ update_waiting
FROM
general;
'''
)
(default_allow_scripts, advanced_user, repo_refresh_seconds,
- mapping_use_mode, locale), = cursor.fetchall()
+ mapping_use_mode, locale, update_waiting), = cursor.fetchall()
popup_settings_dict = {}
@@ -196,6 +212,7 @@ def load_settings(cursor: sqlite3.Cursor) -> st.HaketiloGlobalSettings:
repo_refresh_seconds = repo_refresh_seconds,
mapping_use_mode = st.MappingUseMode(mapping_use_mode),
locale = locale,
+ update_waiting = update_waiting,
**popup_settings_dict
)
@@ -221,6 +238,9 @@ class ConcreteHaketiloState(base.HaketiloStateWithFields):
repo_id = repo_id
)
+ cursor.execute('UPDATE general SET update_waiting = TRUE;')
+ self.settings = dc.replace(self.settings, update_waiting=True)
+
self.rebuild_structures(rules=False)
def count_orphan_items(self) -> st.OrphanItemsStats:
@@ -267,8 +287,16 @@ class ConcreteHaketiloState(base.HaketiloStateWithFields):
unlocked_required_mappings = unlocked_required_mappings
)
+ if unlocked_required_mappings == 'all_mappings_unlocked':
+ cursor.execute('UPDATE general SET update_waiting = FALSE;')
+ self.settings = dc.replace(self.settings, update_waiting=False)
+
self.rebuild_structures(rules=False)
+ def upate_all_items(self) -> None:
+ with self.cursor(transaction=True):
+ self.recompute_dependencies('all_mappings_unlocked')
+
def pull_missing_files(self) -> None:
with self.cursor() as cursor:
assert self.connection.in_transaction
diff --git a/src/hydrilla/proxy/web_ui/root.py b/src/hydrilla/proxy/web_ui/root.py
index 6f9e349..9a14268 100644
--- a/src/hydrilla/proxy/web_ui/root.py
+++ b/src/hydrilla/proxy/web_ui/root.py
@@ -195,6 +195,13 @@ def home_post() -> werkzeug.Response:
state.update_settings(advanced_user=True)
elif action == 'user_make_simple':
state.update_settings(advanced_user=False)
+ elif action == 'upate_all_items':
+ try:
+ state.upate_all_items()
+ except st.FileInstallationError:
+ return home({'file_installation_error': True})
+ except st.ImpossibleSituation:
+ return home({'impossible_situation_error': True})
elif action == 'prune_orphans':
state.prune_orphan_items()
else:
diff --git a/src/hydrilla/proxy/web_ui/templates/index.html.jinja b/src/hydrilla/proxy/web_ui/templates/index.html.jinja
index fe9c5d5..d6a47f0 100644
--- a/src/hydrilla/proxy/web_ui/templates/index.html.jinja
+++ b/src/hydrilla/proxy/web_ui/templates/index.html.jinja
@@ -31,6 +31,14 @@ code in a proprietary work, I am not going to enforce this in court.
{% import 'import/checkbox_tricks.html.jinja' as tricks %}
{% block main %}
+ {% if file_installation_error is defined %}
+ {{ error_note(_('web_ui.err.file_installation_error')) }}
+ {% endif %}
+
+ {% if impossible_situation_error is defined %}
+ {{ error_note(_('web_ui.err.impossible_situation_error')) }}
+ {% endif %}
+
<h3>
{{ _('web_ui.home.heading.welcome_to_haketilo') }}
</h3>
@@ -187,6 +195,24 @@ code in a proprietary work, I am not going to enforce this in court.
])
}}
+ {% if settings.update_waiting %}
+ <div class="horizontal-separator"></div>
+
+ {{ label(_('web_ui.home.update_waiting_label')) }}
+
+ <p>
+ {{ _('web_ui.home.update_is_awaiting') }}
+ </p>
+
+ {% set update_but_text = _('web_ui.home.update_items_button') %}
+
+ {{
+ button_row([
+ (['green-button'], update_but_text, {'action': 'upate_all_items'})
+ ])
+ }}
+ {% endif %}
+
{% if orphan_item_stats.mappings > 0 or orphan_item_stats.resources > 0 %}
<div class="horizontal-separator"></div>