mat_views 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/app/assets/images/mat_views/android-chrome-192x192.png +0 -0
- data/app/assets/images/mat_views/android-chrome-512x512.png +0 -0
- data/app/assets/images/mat_views/apple-touch-icon.png +0 -0
- data/app/assets/images/mat_views/favicon-16x16.png +0 -0
- data/app/assets/images/mat_views/favicon-32x32.png +0 -0
- data/app/assets/images/mat_views/favicon-48x48.png +0 -0
- data/app/assets/images/mat_views/favicon.ico +0 -0
- data/app/assets/images/mat_views/favicon.svg +18 -0
- data/app/assets/images/mat_views/logo.svg +18 -0
- data/app/assets/images/mat_views/mask-icon.svg +5 -0
- data/app/assets/stylesheets/mat_views/application.css +323 -12
- data/app/controllers/mat_views/admin/application_controller.rb +135 -0
- data/app/controllers/mat_views/admin/dashboard_controller.rb +32 -0
- data/app/controllers/mat_views/admin/mat_view_definitions_controller.rb +248 -0
- data/app/controllers/mat_views/admin/preferences_controller.rb +91 -0
- data/app/controllers/mat_views/admin/runs_controller.rb +74 -0
- data/app/helpers/mat_views/admin/ui_helper.rb +385 -0
- data/app/javascript/mat_views/application.js +8 -0
- data/app/javascript/mat_views/controllers/application.js +10 -0
- data/app/javascript/mat_views/controllers/details_controller.js +122 -0
- data/app/javascript/mat_views/controllers/drawer_controller.js +252 -0
- data/app/javascript/mat_views/controllers/filter_controller.js +90 -0
- data/app/javascript/mat_views/controllers/flash_controller.js +13 -0
- data/app/javascript/mat_views/controllers/index.js +10 -0
- data/app/javascript/mat_views/controllers/mv_confirm_controller.js +281 -0
- data/app/javascript/mat_views/controllers/submitter_controller.js +15 -0
- data/app/javascript/mat_views/controllers/tabs_controller.js +67 -0
- data/app/javascript/mat_views/controllers/timezone_controller.js +16 -0
- data/app/javascript/mat_views/controllers/tooltip_controller.js +328 -0
- data/app/javascript/mat_views/controllers/turbo_frame_lifecycle_controller.js +49 -0
- data/app/jobs/mat_views/application_job.rb +2 -2
- data/app/jobs/mat_views/create_view_job.rb +9 -8
- data/app/jobs/mat_views/delete_view_job.rb +8 -8
- data/app/jobs/mat_views/refresh_view_job.rb +8 -9
- data/app/models/concerns/mat_views_i18n.rb +139 -0
- data/app/models/mat_views/application_record.rb +1 -0
- data/app/models/mat_views/mat_view_definition.rb +12 -7
- data/app/models/mat_views/mat_view_run.rb +11 -13
- data/app/views/layouts/mat_views/_footer.html.erb +41 -0
- data/app/views/layouts/mat_views/_header.html.erb +25 -0
- data/app/views/layouts/mat_views/admin.html.erb +47 -0
- data/app/views/layouts/mat_views/turbo_frame.html.erb +3 -0
- data/app/views/mat_views/admin/dashboard/index.html.erb +33 -0
- data/app/views/mat_views/admin/mat_view_definitions/_definition_actions.html.erb +94 -0
- data/app/views/mat_views/admin/mat_view_definitions/_table.html.erb +48 -0
- data/app/views/mat_views/admin/mat_view_definitions/empty.html.erb +1 -0
- data/app/views/mat_views/admin/mat_view_definitions/form.html.erb +79 -0
- data/app/views/mat_views/admin/mat_view_definitions/index.html.erb +10 -0
- data/app/views/mat_views/admin/mat_view_definitions/show.html.erb +40 -0
- data/app/views/mat_views/admin/preferences/show.html.erb +50 -0
- data/app/views/mat_views/admin/runs/_table.html.erb +61 -0
- data/app/views/mat_views/admin/runs/index.html.erb +38 -0
- data/app/views/mat_views/admin/runs/show.html.erb +64 -0
- data/app/views/mat_views/admin/ui/_card.html.erb +15 -0
- data/app/views/mat_views/admin/ui/_details.html.erb +10 -0
- data/app/views/mat_views/admin/ui/_flash.html.erb +6 -0
- data/app/views/mat_views/admin/ui/_table.html.erb +8 -0
- data/config/importmap.rb +9 -0
- data/config/locales/en-AU-ocker.yml +187 -0
- data/config/locales/en-AU.yml +187 -0
- data/config/locales/en-BB.yml +187 -0
- data/config/locales/en-BD.yml +187 -0
- data/config/locales/en-BE.yml +187 -0
- data/config/locales/en-BORK.yml +187 -0
- data/config/locales/en-BS.yml +187 -0
- data/config/locales/en-BZ.yml +187 -0
- data/config/locales/en-CA.yml +187 -0
- data/config/locales/en-CM.yml +187 -0
- data/config/locales/en-CY.yml +187 -0
- data/config/locales/en-EG.yml +187 -0
- data/config/locales/en-FJ.yml +187 -0
- data/config/locales/en-GB.yml +187 -0
- data/config/locales/en-GH.yml +187 -0
- data/config/locales/en-GI.yml +187 -0
- data/config/locales/en-GM.yml +187 -0
- data/config/locales/en-GY.yml +187 -0
- data/config/locales/en-HK.yml +187 -0
- data/config/locales/en-IE.yml +187 -0
- data/config/locales/en-IN.yml +187 -0
- data/config/locales/en-JM.yml +187 -0
- data/config/locales/en-KE.yml +187 -0
- data/config/locales/en-LK.yml +187 -0
- data/config/locales/en-LOL.yml +187 -0
- data/config/locales/en-LR.yml +187 -0
- data/config/locales/en-MS.yml +187 -0
- data/config/locales/en-MT.yml +187 -0
- data/config/locales/en-MW.yml +187 -0
- data/config/locales/en-MY.yml +187 -0
- data/config/locales/en-NG.yml +187 -0
- data/config/locales/en-NP.yml +187 -0
- data/config/locales/en-NZ.yml +187 -0
- data/config/locales/en-PG.yml +187 -0
- data/config/locales/en-PH.yml +187 -0
- data/config/locales/en-PK.yml +187 -0
- data/config/locales/en-RW.yml +187 -0
- data/config/locales/en-SCOT.yml +187 -0
- data/config/locales/en-SG.yml +187 -0
- data/config/locales/en-SHAKESPEARE.yml +187 -0
- data/config/locales/en-SL.yml +187 -0
- data/config/locales/en-SS.yml +187 -0
- data/config/locales/en-TH.yml +187 -0
- data/config/locales/en-TT.yml +187 -0
- data/config/locales/en-TZ.yml +187 -0
- data/config/locales/en-UG.yml +187 -0
- data/config/locales/en-US-pirate.yml +187 -0
- data/config/locales/en-US.yml +187 -0
- data/config/locales/en-YODA.yml +187 -0
- data/config/locales/en-ZA.yml +187 -0
- data/config/locales/en-ZW.yml +187 -0
- data/config/locales/en.yml +187 -0
- data/config/routes.rb +27 -3
- data/lib/generators/mat_views/install/templates/create_mat_view_definitions.rb +7 -7
- data/lib/generators/mat_views/install/templates/create_mat_view_runs.rb +5 -5
- data/lib/mat_views/admin/auth_bridge.rb +93 -0
- data/lib/mat_views/admin/default_auth.rb +61 -0
- data/lib/mat_views/configuration.rb +9 -0
- data/lib/mat_views/engine.rb +50 -2
- data/lib/mat_views/helpers/ui_test_ids.rb +43 -0
- data/lib/mat_views/services/base_service.rb +46 -38
- data/lib/mat_views/services/check_matview_exists.rb +76 -0
- data/lib/mat_views/services/concurrent_refresh.rb +9 -6
- data/lib/mat_views/services/create_view.rb +15 -15
- data/lib/mat_views/services/delete_view.rb +8 -11
- data/lib/mat_views/services/regular_refresh.rb +6 -5
- data/lib/mat_views/services/swap_refresh.rb +11 -9
- data/lib/mat_views/version.rb +1 -1
- data/lib/mat_views.rb +10 -4
- data/lib/tasks/helpers.rb +13 -13
- data/lib/tasks/mat_views_tasks.rake +15 -15
- metadata +130 -5
@@ -0,0 +1,187 @@
|
|
1
|
+
en-US-pirate:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
mat_views/mat_view_definition:
|
5
|
+
created_at: "Plundered at"
|
6
|
+
dependencies: "Matey tables"
|
7
|
+
name: "Name o' the beast"
|
8
|
+
refresh_strategy: "How ye refresh"
|
9
|
+
schedule_cron: "Ship's bell (cron)"
|
10
|
+
sql: "SQL (SELECT ...)"
|
11
|
+
unique_index_columns: "Unique mast columns"
|
12
|
+
updated_at: "Polished at"
|
13
|
+
mat_views/mat_view_run:
|
14
|
+
created_at: "Plundered at"
|
15
|
+
details: "The booty details"
|
16
|
+
duration_ms: "How long in clicks (ms)"
|
17
|
+
error: "Blunder"
|
18
|
+
finished_at: "Anchored at"
|
19
|
+
mat_view_definition: "Definition"
|
20
|
+
meta: "Hidden map"
|
21
|
+
operation: "What be done"
|
22
|
+
row_count_after: "Row count after"
|
23
|
+
row_count_before: "Row count afore"
|
24
|
+
rows_before_after: "Rows (afore/after)"
|
25
|
+
started_at: "Set sail at"
|
26
|
+
status: "Status"
|
27
|
+
updated_at: "Polished at"
|
28
|
+
enums:
|
29
|
+
mat_views/mat_view_definition:
|
30
|
+
refresh_strategy:
|
31
|
+
concurrent: "All hands at once"
|
32
|
+
regular: "As usual"
|
33
|
+
swap: "Hoist the swap"
|
34
|
+
mat_views/mat_view_run:
|
35
|
+
operation:
|
36
|
+
create: "Hoist new"
|
37
|
+
drop: "Scuttle"
|
38
|
+
refresh: "Swab it"
|
39
|
+
status:
|
40
|
+
failed: "Wrecked"
|
41
|
+
running: "Sailin'"
|
42
|
+
success: "Treasure found"
|
43
|
+
errors:
|
44
|
+
models:
|
45
|
+
mat_views/mat_view_definition:
|
46
|
+
attributes:
|
47
|
+
name:
|
48
|
+
blank: "Ye must give it a moniker"
|
49
|
+
invalid: "That be no true PostgreSQL name, ye scallywag"
|
50
|
+
taken: "That name be plundered already"
|
51
|
+
sql:
|
52
|
+
blank: "Hoist a SQL query, ye lazy dog"
|
53
|
+
invalid: "It must begin with SELECT, arrr!"
|
54
|
+
unique_index_columns:
|
55
|
+
at_least_one: "Ye need at least one mast when usin' the all-hands refresh"
|
56
|
+
hints:
|
57
|
+
mat_views/mat_view_definition:
|
58
|
+
dependencies: "Mark the tables/views it leans on, ye buccaneer."
|
59
|
+
name: "Name of yer cursed view in the hold."
|
60
|
+
refresh_strategy: "How ye want to swab it clean."
|
61
|
+
schedule_cron: "Set yer ship's bell (cron). Leave blank fer none."
|
62
|
+
sql: "Must be a SELECT, arrr!"
|
63
|
+
unique_index_columns: "Columns fer a unique mast. Needed fer all-hands refresh."
|
64
|
+
mat_views/mat_view_run:
|
65
|
+
error: "The blunder if it sank."
|
66
|
+
meta: "Hidden treasure map (JSON)."
|
67
|
+
operation: "The deed done."
|
68
|
+
status: "The ship's current fate."
|
69
|
+
models:
|
70
|
+
mat_views/mat_view_definition: "Mat View Scroll"
|
71
|
+
mat_views/mat_view_run: "Mat View Voyage"
|
72
|
+
placeholders:
|
73
|
+
mat_views/mat_view_definition:
|
74
|
+
dependencies: "List yer dependencies, matey"
|
75
|
+
name: "Give it a proper moniker"
|
76
|
+
refresh_strategy: "Choose how to swab"
|
77
|
+
schedule_cron: "Cron chant, or leave blank"
|
78
|
+
sql: "Type yer SELECT..."
|
79
|
+
unique_index_columns: "Unique mast columns (comma separated, optional)"
|
80
|
+
mat_views/mat_view_run:
|
81
|
+
error: "Blunder message"
|
82
|
+
mat_view_definition: "Pick yer cursed view"
|
83
|
+
meta: "Hidden map (JSON)"
|
84
|
+
operation: "Pick the deed"
|
85
|
+
status: "Pick the fate"
|
86
|
+
i18n:
|
87
|
+
name: Pirate English (Arrr!)
|
88
|
+
mat_views:
|
89
|
+
actions: "Deeds"
|
90
|
+
all_definitions: "All scrolls"
|
91
|
+
all_operations: "All voyages"
|
92
|
+
all_statuses: "All fates"
|
93
|
+
cancel: "Abandon ship"
|
94
|
+
close: "Batten down"
|
95
|
+
close_window: "Shut the porthole"
|
96
|
+
create: "Hoist new"
|
97
|
+
dashboard:
|
98
|
+
metrics:
|
99
|
+
title: "Booty counts"
|
100
|
+
title: "Captain's deck"
|
101
|
+
definition: "Scroll"
|
102
|
+
definitions: "Scrolls"
|
103
|
+
delete: "Scuttle"
|
104
|
+
details: "The deets"
|
105
|
+
edit: "Tweak it"
|
106
|
+
edit_var: "Tweak %{name}"
|
107
|
+
errors:
|
108
|
+
frame_only: "Nay! Only in a frame. Back to the deck."
|
109
|
+
prevented_saving:
|
110
|
+
one: "1 blunder stopped the save:"
|
111
|
+
other: "%{count} blunders stopped the save:"
|
112
|
+
filter_by: "Filter by:"
|
113
|
+
footer:
|
114
|
+
copyright: "© %{year} %{company} — all booty reserved."
|
115
|
+
documentation: "Captain's log"
|
116
|
+
need_help: "Need a hand, matey?"
|
117
|
+
open_issue: "Raise yer flag (open issue)"
|
118
|
+
project_homepage: "Ship's homepage"
|
119
|
+
support: "Get paid mateship →"
|
120
|
+
tagline: "Built with ❤️ by pirates, for pirates."
|
121
|
+
tooltip:
|
122
|
+
documentation: "Read the scrolls"
|
123
|
+
gem_version: "See the Ruby chest"
|
124
|
+
open_issue: "Shout fer help"
|
125
|
+
project_homepage: "Find the repo"
|
126
|
+
support: "Support fer doubloons"
|
127
|
+
version: "v%{version}"
|
128
|
+
header:
|
129
|
+
signed_in_as: "Sailed in as %{email}"
|
130
|
+
history: "Tales past"
|
131
|
+
loading: "Hoistin' sails..."
|
132
|
+
loading_definitions: "Fetchin' the scrolls..."
|
133
|
+
loading_runs: "Fetchin' the voyages..."
|
134
|
+
mat_view_definition:
|
135
|
+
create_mv: "Hoist MV"
|
136
|
+
create_mv_tooltip: "Hoist the cursed MV."
|
137
|
+
delete_confirm: "Scuttle %{name}? (Does NOT sink MV)"
|
138
|
+
delete_tooltip: "Deletes the scroll but keeps the ship."
|
139
|
+
drop_mv: "Sink MV"
|
140
|
+
drop_mv_cascade: "Sink MV (Cascade)"
|
141
|
+
drop_mv_cascade_confirm: "Sink MV & crew for %{name}?"
|
142
|
+
drop_mv_cascade_tooltip: "Sinks MV & its mates. Scroll remains."
|
143
|
+
drop_mv_confirm: "Sink MV for %{name}?"
|
144
|
+
drop_mv_tooltip: "Sinks MV but scroll remains."
|
145
|
+
edit_tooltip: "Tweak the cursed scroll."
|
146
|
+
materialized_view: "Cursed MV"
|
147
|
+
materialized_view_exists: "The cursed MV be afloat"
|
148
|
+
materialized_view_not_exists: "The cursed MV be not afloat yet!"
|
149
|
+
new_definition: "New scroll"
|
150
|
+
new_definition_tooltip: "Craft a new cursed scroll."
|
151
|
+
no_definitions: "No scrolls yet. Craft one to start yer voyage."
|
152
|
+
refresh_tooltip: "Swab the cursed MV."
|
153
|
+
sql_summary_tooltip: "Open/close the SQL chest"
|
154
|
+
view_tooltip: "Read the cursed scroll."
|
155
|
+
mat_view_run:
|
156
|
+
error_tooltip: "Blunder if voyage sank."
|
157
|
+
meta_tooltip: "Hidden map in JSON."
|
158
|
+
no_runs: "No voyages found."
|
159
|
+
no_runs_if_filtered: "No voyages fit yer chart."
|
160
|
+
view_details: "See the booty"
|
161
|
+
view_tooltip: "See voyage details."
|
162
|
+
project_author: "Codevedas Inc."
|
163
|
+
project_description: "Captain's UI fer bossin' around Postgres cursed views in Rails seas."
|
164
|
+
project_tags: "rails, ruby, cursed views, admin, deck, ui, sailin'"
|
165
|
+
refresh: "Swab"
|
166
|
+
refresh_contents: "Swab the hold"
|
167
|
+
reloading: "Reloadin' the cannons..."
|
168
|
+
reset: "Start anew"
|
169
|
+
run: "Voyage"
|
170
|
+
runs: "Voyages"
|
171
|
+
save_changes: "Save yer loot"
|
172
|
+
settings:
|
173
|
+
auto: "Auto"
|
174
|
+
dark: "Dark seas"
|
175
|
+
language: "Tongue"
|
176
|
+
language_hint: "Pick yer pirate tongue."
|
177
|
+
light: "Light seas"
|
178
|
+
theme: "Theme"
|
179
|
+
theme_hint: "Auto follows the tide, light/dark override."
|
180
|
+
title: "Captain's prefs"
|
181
|
+
title: "MatViews Captain"
|
182
|
+
view_var: "Spy %{name}"
|
183
|
+
time:
|
184
|
+
am: "Afore noon"
|
185
|
+
formats:
|
186
|
+
datetime12hour: "%Y-%m-%d %I:%M:%S %p"
|
187
|
+
pm: "After noon"
|
@@ -0,0 +1,187 @@
|
|
1
|
+
en-US:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
mat_views/mat_view_definition:
|
5
|
+
created_at: "Created at"
|
6
|
+
dependencies: "Dependencies"
|
7
|
+
name: "Name"
|
8
|
+
refresh_strategy: "Refresh strategy"
|
9
|
+
schedule_cron: "Schedule (cron)"
|
10
|
+
sql: "SQL (SELECT ...)"
|
11
|
+
unique_index_columns: "Unique index columns"
|
12
|
+
updated_at: "Updated at"
|
13
|
+
mat_views/mat_view_run:
|
14
|
+
created_at: "Created at"
|
15
|
+
details: "Details"
|
16
|
+
duration_ms: "Duration (ms)"
|
17
|
+
error: "Error"
|
18
|
+
finished_at: "Finished at"
|
19
|
+
mat_view_definition: "Definition"
|
20
|
+
meta: "Metadata"
|
21
|
+
operation: "Operation"
|
22
|
+
row_count_after: "Row count after"
|
23
|
+
row_count_before: "Row count before"
|
24
|
+
rows_before_after: "Rows (before/after)"
|
25
|
+
started_at: "Started at"
|
26
|
+
status: "Status"
|
27
|
+
updated_at: "Updated at"
|
28
|
+
enums:
|
29
|
+
mat_views/mat_view_definition:
|
30
|
+
refresh_strategy:
|
31
|
+
concurrent: "Concurrent"
|
32
|
+
regular: "Regular"
|
33
|
+
swap: "Swap"
|
34
|
+
mat_views/mat_view_run:
|
35
|
+
operation:
|
36
|
+
create: "Create"
|
37
|
+
drop: "Drop"
|
38
|
+
refresh: "Refresh"
|
39
|
+
status:
|
40
|
+
failed: "Failed"
|
41
|
+
running: "Running"
|
42
|
+
success: "Success"
|
43
|
+
errors:
|
44
|
+
models:
|
45
|
+
mat_views/mat_view_definition:
|
46
|
+
attributes:
|
47
|
+
name:
|
48
|
+
blank: "must be provided"
|
49
|
+
invalid: "is not a valid PostgreSQL identifier"
|
50
|
+
taken: "must be unique"
|
51
|
+
sql:
|
52
|
+
blank: "must be provided"
|
53
|
+
invalid: "must start with SELECT"
|
54
|
+
unique_index_columns:
|
55
|
+
at_least_one: "must have at least one column when using concurrent refresh strategy"
|
56
|
+
hints:
|
57
|
+
mat_views/mat_view_definition:
|
58
|
+
dependencies: "Comma-separated list of tables or views this materialized view depends on."
|
59
|
+
name: "Name of the materialized view in the database."
|
60
|
+
refresh_strategy: "Determines how the materialized view is refreshed."
|
61
|
+
schedule_cron: "Use standard cron format. Leave empty for no scheduling."
|
62
|
+
sql: "The SQL query must be a valid SELECT statement."
|
63
|
+
unique_index_columns: "Columns to create a unique index on. Required for concurrent refresh."
|
64
|
+
mat_views/mat_view_run:
|
65
|
+
error: "Error message if the run failed."
|
66
|
+
meta: "Additional metadata in JSON format."
|
67
|
+
operation: "Type of operation performed."
|
68
|
+
status: "Current status of the run."
|
69
|
+
models:
|
70
|
+
mat_views/mat_view_definition: "Materialized View Definition"
|
71
|
+
mat_views/mat_view_run: "Materialized View Run"
|
72
|
+
placeholders:
|
73
|
+
mat_views/mat_view_definition:
|
74
|
+
dependencies: "Enter dependencies (comma separated, optional)"
|
75
|
+
name: "Enter name"
|
76
|
+
refresh_strategy: "Select refresh strategy"
|
77
|
+
schedule_cron: "0 0 * * * for daily at midnight, leave empty for no scheduling"
|
78
|
+
sql: "Enter SQL (SELECT ...)"
|
79
|
+
unique_index_columns: "Enter unique index columns (comma separated, optional)"
|
80
|
+
mat_views/mat_view_run:
|
81
|
+
error: "Error message"
|
82
|
+
mat_view_definition: "Select materialized view"
|
83
|
+
meta: "Metadata (JSON)"
|
84
|
+
operation: "Select operation"
|
85
|
+
status: "Select status"
|
86
|
+
i18n:
|
87
|
+
name: English (United States)
|
88
|
+
mat_views:
|
89
|
+
actions: "Actions"
|
90
|
+
all_definitions: "All definitions"
|
91
|
+
all_operations: "All operations"
|
92
|
+
all_statuses: "All statuses"
|
93
|
+
cancel: "Cancel"
|
94
|
+
close: "Close"
|
95
|
+
close_window: "Close window"
|
96
|
+
create: "Create"
|
97
|
+
dashboard:
|
98
|
+
metrics:
|
99
|
+
title: "Metrics"
|
100
|
+
title: "Dashboard"
|
101
|
+
definition: "Definition"
|
102
|
+
definitions: "Definitions"
|
103
|
+
delete: "Delete"
|
104
|
+
details: "Details"
|
105
|
+
edit: "Edit"
|
106
|
+
edit_var: "Edit %{name}"
|
107
|
+
errors:
|
108
|
+
frame_only: "This action can only be performed in a frame, redirected to dashboard."
|
109
|
+
prevented_saving:
|
110
|
+
one: "1 error prevented saving:"
|
111
|
+
other: "%{count} errors prevented saving:"
|
112
|
+
filter_by: "Filter by:"
|
113
|
+
footer:
|
114
|
+
copyright: "© %{year} %{company} All rights reserved."
|
115
|
+
documentation: "Documentation"
|
116
|
+
need_help: "Need guaranteed uptime & expert help?"
|
117
|
+
open_issue: "Open an Issue"
|
118
|
+
project_homepage: "Project Homepage"
|
119
|
+
support: "Get Professional Support →"
|
120
|
+
tagline: "Built with ❤️ by developers, for developers."
|
121
|
+
tooltip:
|
122
|
+
documentation: "Read the documentation"
|
123
|
+
gem_version: "Click to visit the RubyGems page"
|
124
|
+
open_issue: "Report a bug or request a feature"
|
125
|
+
project_homepage: "GitHub repository"
|
126
|
+
support: "Professional support plans"
|
127
|
+
version: "v%{version}"
|
128
|
+
header:
|
129
|
+
signed_in_as: "Signed in as %{email}"
|
130
|
+
history: "History"
|
131
|
+
loading: "Loading..."
|
132
|
+
loading_definitions: "Loading definitions..."
|
133
|
+
loading_runs: "Loading runs..."
|
134
|
+
mat_view_definition:
|
135
|
+
create_mv: "Create MV"
|
136
|
+
create_mv_tooltip: "Creates the materialized view in the database."
|
137
|
+
delete_confirm: "Delete definition %{name}? (Does NOT drop MV)"
|
138
|
+
delete_tooltip: "Deletes the definition but does NOT drop the materialized view in the database."
|
139
|
+
drop_mv: "Drop MV"
|
140
|
+
drop_mv_cascade: "Drop MV (Cascade)"
|
141
|
+
drop_mv_cascade_confirm: "Drop materialized view and all dependent objects for %{name}?"
|
142
|
+
drop_mv_cascade_tooltip: "Drops the materialized view and all dependent objects in the database. Definition remains."
|
143
|
+
drop_mv_confirm: "Drop materialized view for %{name}?"
|
144
|
+
drop_mv_tooltip: "Drops the materialized view in the database. Definition remains."
|
145
|
+
edit_tooltip: "Edit materialized view definition."
|
146
|
+
materialized_view: "Materialized View"
|
147
|
+
materialized_view_exists: "Materialized view exists"
|
148
|
+
materialized_view_not_exists: "Materialized view not created yet!"
|
149
|
+
new_definition: "New definition"
|
150
|
+
new_definition_tooltip: "Create a new materialized view definition."
|
151
|
+
no_definitions: "No materialized view definitions found. Create one to get started."
|
152
|
+
refresh_tooltip: "Refreshes the materialized view in the database."
|
153
|
+
sql_summary_tooltip: "Click to expand/collapse SQL"
|
154
|
+
view_tooltip: "View materialized view definition."
|
155
|
+
mat_view_run:
|
156
|
+
error_tooltip: "Error message if the run failed."
|
157
|
+
meta_tooltip: "Additional metadata in JSON format."
|
158
|
+
no_runs: "No runs found."
|
159
|
+
no_runs_if_filtered: "No runs found for the selected filters."
|
160
|
+
view_details: "View details"
|
161
|
+
view_tooltip: "View run details."
|
162
|
+
project_author: "Codevedas Inc."
|
163
|
+
project_description: "Admin interface for managing PostgreSQL materialized views in Rails applications."
|
164
|
+
project_tags: "rails, ruby, materialized views, admin, dashboard, ui, interface, management"
|
165
|
+
refresh: "Refresh"
|
166
|
+
refresh_contents: "Refresh contents"
|
167
|
+
reloading: "Reloading..."
|
168
|
+
reset: "Reset"
|
169
|
+
run: "Run"
|
170
|
+
runs: "Runs"
|
171
|
+
save_changes: "Save changes"
|
172
|
+
settings:
|
173
|
+
auto: "Auto"
|
174
|
+
dark: "Dark"
|
175
|
+
language: "Language"
|
176
|
+
language_hint: "Choose your interface language."
|
177
|
+
light: "Light"
|
178
|
+
theme: "Theme"
|
179
|
+
theme_hint: "Auto follows your system preference, light and dark overrides it."
|
180
|
+
title: "Preferences"
|
181
|
+
title: "MatViews Admin"
|
182
|
+
view_var: "View %{name}"
|
183
|
+
time:
|
184
|
+
am: "AM"
|
185
|
+
formats:
|
186
|
+
datetime12hour: "%Y-%m-%d %I:%M:%S %p"
|
187
|
+
pm: "PM"
|
@@ -0,0 +1,187 @@
|
|
1
|
+
en-YODA:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
mat_views/mat_view_definition:
|
5
|
+
created_at: "Created, it was"
|
6
|
+
dependencies: "Dependents, hmm"
|
7
|
+
name: "Name, it is"
|
8
|
+
refresh_strategy: "Refresh way, choose you must"
|
9
|
+
schedule_cron: "Cron schedule, yes"
|
10
|
+
sql: "SQL (SELECT ... do)"
|
11
|
+
unique_index_columns: "Unique index columns, hmm"
|
12
|
+
updated_at: "Updated, it is"
|
13
|
+
mat_views/mat_view_run:
|
14
|
+
created_at: "Created, it was"
|
15
|
+
details: "Details, they are"
|
16
|
+
duration_ms: "Time passed (ms)"
|
17
|
+
error: "Error, yes"
|
18
|
+
finished_at: "Finished, it is"
|
19
|
+
mat_view_definition: "Definition, this is"
|
20
|
+
meta: "Metadata, hmm"
|
21
|
+
operation: "Undertaking"
|
22
|
+
row_count_after: "Rows after, see you must"
|
23
|
+
row_count_before: "Rows before, see you must"
|
24
|
+
rows_before_after: "Rows (before/after), compare you shall"
|
25
|
+
started_at: "Begun, it has"
|
26
|
+
status: "Status, it be"
|
27
|
+
updated_at: "Updated, it is"
|
28
|
+
enums:
|
29
|
+
mat_views/mat_view_definition:
|
30
|
+
refresh_strategy:
|
31
|
+
concurrent: "At once, all run"
|
32
|
+
regular: "Regular, it is"
|
33
|
+
swap: "Swap, do or do not"
|
34
|
+
mat_views/mat_view_run:
|
35
|
+
operation:
|
36
|
+
create: "Create, you must"
|
37
|
+
drop: "Drop, hmmm"
|
38
|
+
refresh: "Refresh, yes"
|
39
|
+
status:
|
40
|
+
failed: "Failed, it has"
|
41
|
+
running: "Running, it is"
|
42
|
+
success: "Succeeded, victory!"
|
43
|
+
errors:
|
44
|
+
models:
|
45
|
+
mat_views/mat_view_definition:
|
46
|
+
attributes:
|
47
|
+
name:
|
48
|
+
blank: "A name, provide you must"
|
49
|
+
invalid: "Valid PostgreSQL name, this is not"
|
50
|
+
taken: "Taken, the name is"
|
51
|
+
sql:
|
52
|
+
blank: "SQL, provide you must"
|
53
|
+
invalid: "Begin with SELECT, it must"
|
54
|
+
unique_index_columns:
|
55
|
+
at_least_one: "One column at least, you need for concurrent refresh"
|
56
|
+
hints:
|
57
|
+
mat_views/mat_view_definition:
|
58
|
+
dependencies: "Depend on tables or views, this does. Comma separated, yes."
|
59
|
+
name: "Name of the materialised view, in the database it is."
|
60
|
+
refresh_strategy: "How to refresh, decide you must."
|
61
|
+
schedule_cron: "Cron format, use. Empty, no schedule it means."
|
62
|
+
sql: "SELECT, the SQL query must be."
|
63
|
+
unique_index_columns: "Unique index columns, provide for concurrent refresh, you must."
|
64
|
+
mat_views/mat_view_run:
|
65
|
+
error: "If fail it does, error message show"
|
66
|
+
meta: "Extra info in JSON, there is"
|
67
|
+
operation: "Operation, hmm"
|
68
|
+
status: "Current status, this be"
|
69
|
+
models:
|
70
|
+
mat_views/mat_view_definition: "Materialised View Definition"
|
71
|
+
mat_views/mat_view_run: "Materialised View Run"
|
72
|
+
placeholders:
|
73
|
+
mat_views/mat_view_definition:
|
74
|
+
dependencies: "Enter dependencies, you should"
|
75
|
+
name: "Name, enter"
|
76
|
+
refresh_strategy: "Refresh way, choose"
|
77
|
+
schedule_cron: "Cron, type. Empty means none"
|
78
|
+
sql: "SQL (SELECT ...) type"
|
79
|
+
unique_index_columns: "Unique index columns, type (optional)"
|
80
|
+
mat_views/mat_view_run:
|
81
|
+
error: "Error message, type"
|
82
|
+
mat_view_definition: "Materialised view, select"
|
83
|
+
meta: "Metadata (JSON), type"
|
84
|
+
operation: "Operation, choose"
|
85
|
+
status: "Status, choose"
|
86
|
+
i18n:
|
87
|
+
name: English (Yoda)
|
88
|
+
mat_views:
|
89
|
+
actions: "Deeds, they are"
|
90
|
+
all_definitions: "All definitions, these be"
|
91
|
+
all_operations: "All operations, hmmm"
|
92
|
+
all_statuses: "All statuses, listed they are"
|
93
|
+
cancel: "Cancel, you may"
|
94
|
+
close: "Close, it is"
|
95
|
+
close_window: "Close the window, you must"
|
96
|
+
create: "Create, you will"
|
97
|
+
dashboard:
|
98
|
+
metrics:
|
99
|
+
title: "Metrics, hmmm"
|
100
|
+
title: "Dashboard, it is"
|
101
|
+
definition: "Definition, yes"
|
102
|
+
definitions: "Definitions, many there are"
|
103
|
+
delete: "Delete, you must"
|
104
|
+
details: "Details, see"
|
105
|
+
edit: "Edit, you can"
|
106
|
+
edit_var: "Edit %{name}, hmm"
|
107
|
+
errors:
|
108
|
+
frame_only: "Only in frame, this action may be. Back to dashboard, go you will."
|
109
|
+
prevented_saving:
|
110
|
+
one: "One error stopped saving, it has:"
|
111
|
+
other: "%{count} errors stopped saving, they did:"
|
112
|
+
filter_by: "Filter by, choose"
|
113
|
+
footer:
|
114
|
+
copyright: "© %{year} %{company} Rights reserved, all"
|
115
|
+
documentation: "Documentation, read"
|
116
|
+
need_help: "Expert help, need you do?"
|
117
|
+
open_issue: "Open an Issue, raise it shall"
|
118
|
+
project_homepage: "Project Homepage, this is"
|
119
|
+
support: "Professional Support →, seek you may"
|
120
|
+
tagline: "❤️ built by developers, for developers it was"
|
121
|
+
tooltip:
|
122
|
+
documentation: "Documentation, read"
|
123
|
+
gem_version: "RubyGems page, visit you must"
|
124
|
+
open_issue: "Bug report, file or feature ask you shall"
|
125
|
+
project_homepage: "GitHub repository, this is"
|
126
|
+
support: "Support plans, available they are"
|
127
|
+
version: "v%{version}, it be"
|
128
|
+
header:
|
129
|
+
signed_in_as: "Signed in as %{email}, you are"
|
130
|
+
history: "History, see"
|
131
|
+
loading: "Loading… patience you must have"
|
132
|
+
loading_definitions: "Loading definitions…"
|
133
|
+
loading_runs: "Loading runs…"
|
134
|
+
mat_view_definition:
|
135
|
+
create_mv: "Create MV, do"
|
136
|
+
create_mv_tooltip: "In database, materialised view make"
|
137
|
+
delete_confirm: "Delete definition %{name}? Drop MV, not it does."
|
138
|
+
delete_tooltip: "Delete definition only. Drop MV, not."
|
139
|
+
drop_mv: "Drop MV, hmmm"
|
140
|
+
drop_mv_cascade: "Drop MV (Cascade), strong choice"
|
141
|
+
drop_mv_cascade_confirm: "Drop %{name} and dependents? Dangerous, it is."
|
142
|
+
drop_mv_cascade_tooltip: "MV and all dependents drop, yes. Definition remain, it shall."
|
143
|
+
drop_mv_confirm: "Drop MV %{name}, are you sure?"
|
144
|
+
drop_mv_tooltip: "Only MV, drop. Definition remain."
|
145
|
+
edit_tooltip: "Definition edit, you may."
|
146
|
+
materialized_view: "Materialised View"
|
147
|
+
materialized_view_exists: "Exist, it does"
|
148
|
+
materialized_view_not_exists: "Created, not yet it is"
|
149
|
+
new_definition: "New definition, make"
|
150
|
+
new_definition_tooltip: "Materialised view definition, create you can"
|
151
|
+
no_definitions: "No definitions found. Create, you must."
|
152
|
+
refresh_tooltip: "Materialised view, refresh"
|
153
|
+
sql_summary_tooltip: "Click to show/hide SQL, yes"
|
154
|
+
view_tooltip: "Definition view, see"
|
155
|
+
mat_view_run:
|
156
|
+
error_tooltip: "Error message, show if failed"
|
157
|
+
meta_tooltip: "Metadata, more info"
|
158
|
+
no_runs: "No runs found, there are"
|
159
|
+
no_runs_if_filtered: "No runs for these filters, hmm"
|
160
|
+
view_details: "Details, see"
|
161
|
+
view_tooltip: "Run details, view"
|
162
|
+
project_author: "Codevedas Inc."
|
163
|
+
project_description: "Admin interface, for PostgreSQL materialised views it is"
|
164
|
+
project_tags: "rails, ruby, materialised views, admin, dashboard, ui"
|
165
|
+
refresh: "Refresh, do"
|
166
|
+
refresh_contents: "Contents, refresh"
|
167
|
+
reloading: "Reloading, hmm"
|
168
|
+
reset: "Reset, it is"
|
169
|
+
run: "Run, yes"
|
170
|
+
runs: "Runs, many"
|
171
|
+
save_changes: "Save changes, do"
|
172
|
+
settings:
|
173
|
+
auto: "Auto, it is"
|
174
|
+
dark: "Dark side"
|
175
|
+
language: "Tongue, choose"
|
176
|
+
language_hint: "Your tongue, choose you must"
|
177
|
+
light: "Light side"
|
178
|
+
theme: "Theme, select"
|
179
|
+
theme_hint: "System, follow auto does. Light or dark, override you can."
|
180
|
+
title: "Preferences, they are"
|
181
|
+
title: "MatViews Admin, it is"
|
182
|
+
view_var: "View %{name}, you will"
|
183
|
+
time:
|
184
|
+
am: "AM"
|
185
|
+
formats:
|
186
|
+
datetime12hour: "%Y-%m-%d %I:%M:%S %p"
|
187
|
+
pm: "PM"
|