smriti 0.5.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.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +168 -0
  4. data/Rakefile +15 -0
  5. data/app/assets/images/smriti/android-chrome-192x192.png +0 -0
  6. data/app/assets/images/smriti/android-chrome-512x512.png +0 -0
  7. data/app/assets/images/smriti/apple-touch-icon.png +0 -0
  8. data/app/assets/images/smriti/favicon-16x16.png +0 -0
  9. data/app/assets/images/smriti/favicon-32x32.png +0 -0
  10. data/app/assets/images/smriti/favicon-48x48.png +0 -0
  11. data/app/assets/images/smriti/favicon.ico +0 -0
  12. data/app/assets/images/smriti/favicon.svg +18 -0
  13. data/app/assets/images/smriti/logo.svg +18 -0
  14. data/app/assets/images/smriti/mask-icon.svg +5 -0
  15. data/app/assets/stylesheets/smriti/application.css +1040 -0
  16. data/app/controllers/smriti/admin/application_controller.rb +135 -0
  17. data/app/controllers/smriti/admin/dashboard_controller.rb +32 -0
  18. data/app/controllers/smriti/admin/mat_view_definitions_controller.rb +372 -0
  19. data/app/controllers/smriti/admin/mat_view_runs_controller.rb +185 -0
  20. data/app/controllers/smriti/admin/preferences_controller.rb +91 -0
  21. data/app/helpers/smriti/admin/datatable_helper.rb +249 -0
  22. data/app/helpers/smriti/admin/localized_digit_helper.rb +70 -0
  23. data/app/helpers/smriti/admin/ui_helper.rb +539 -0
  24. data/app/javascript/smriti/application.js +8 -0
  25. data/app/javascript/smriti/controllers/application.js +10 -0
  26. data/app/javascript/smriti/controllers/body_setup_controller.js +120 -0
  27. data/app/javascript/smriti/controllers/datatable_controller.js +351 -0
  28. data/app/javascript/smriti/controllers/details_controller.js +200 -0
  29. data/app/javascript/smriti/controllers/drawer_controller.js +470 -0
  30. data/app/javascript/smriti/controllers/flash_controller.js +112 -0
  31. data/app/javascript/smriti/controllers/index.js +10 -0
  32. data/app/javascript/smriti/controllers/mv_confirm_controller.js +435 -0
  33. data/app/javascript/smriti/controllers/tabs_controller.js +184 -0
  34. data/app/javascript/smriti/controllers/tooltip_controller.js +525 -0
  35. data/app/javascript/smriti/controllers/turbo_frame_lifecycle_controller.js +342 -0
  36. data/app/jobs/smriti/application_job.rb +144 -0
  37. data/app/jobs/smriti/create_view_job.rb +87 -0
  38. data/app/jobs/smriti/delete_view_job.rb +89 -0
  39. data/app/jobs/smriti/refresh_view_job.rb +94 -0
  40. data/app/models/concerns/smriti_i18n.rb +139 -0
  41. data/app/models/concerns/smriti_paginate.rb +70 -0
  42. data/app/models/concerns/smriti_query_helper.rb +36 -0
  43. data/app/models/smriti/application_record.rb +39 -0
  44. data/app/models/smriti/mat_view_definition.rb +254 -0
  45. data/app/models/smriti/mat_view_run.rb +275 -0
  46. data/app/views/layouts/smriti/_footer.html.erb +47 -0
  47. data/app/views/layouts/smriti/_header.html.erb +25 -0
  48. data/app/views/layouts/smriti/admin.html.erb +47 -0
  49. data/app/views/layouts/smriti/turbo_frame.html.erb +3 -0
  50. data/app/views/smriti/admin/dashboard/index.html.erb +38 -0
  51. data/app/views/smriti/admin/mat_view_definitions/_definition_actions.html.erb +94 -0
  52. data/app/views/smriti/admin/mat_view_definitions/_dt-index-empty-row.html.erb +11 -0
  53. data/app/views/smriti/admin/mat_view_definitions/_dt-index-row.html.erb +27 -0
  54. data/app/views/smriti/admin/mat_view_definitions/empty.html.erb +1 -0
  55. data/app/views/smriti/admin/mat_view_definitions/form.html.erb +79 -0
  56. data/app/views/smriti/admin/mat_view_definitions/index.html.erb +10 -0
  57. data/app/views/smriti/admin/mat_view_definitions/show.html.erb +40 -0
  58. data/app/views/smriti/admin/mat_view_runs/_dt-index-empty-row.html.erb +11 -0
  59. data/app/views/smriti/admin/mat_view_runs/_dt-index-row.html.erb +41 -0
  60. data/app/views/smriti/admin/mat_view_runs/index.html.erb +1 -0
  61. data/app/views/smriti/admin/mat_view_runs/show.html.erb +64 -0
  62. data/app/views/smriti/admin/preferences/show.html.erb +49 -0
  63. data/app/views/smriti/admin/ui/_card.html.erb +15 -0
  64. data/app/views/smriti/admin/ui/_datatable.html.erb +34 -0
  65. data/app/views/smriti/admin/ui/_datatable_filters.html.erb +45 -0
  66. data/app/views/smriti/admin/ui/_datatable_tbody.html.erb +11 -0
  67. data/app/views/smriti/admin/ui/_datatable_tfoot.html.erb +70 -0
  68. data/app/views/smriti/admin/ui/_datatable_thead.html.erb +105 -0
  69. data/app/views/smriti/admin/ui/_details.html.erb +10 -0
  70. data/app/views/smriti/admin/ui/_flash.html.erb +6 -0
  71. data/app/views/smriti/admin/ui/_table.html.erb +8 -0
  72. data/config/importmap.rb +9 -0
  73. data/config/locales/ar.yml +223 -0
  74. data/config/locales/de.yml +230 -0
  75. data/config/locales/en-AU-ocker.yml +223 -0
  76. data/config/locales/en-AU.yml +202 -0
  77. data/config/locales/en-BORK.yml +225 -0
  78. data/config/locales/en-CA.yml +223 -0
  79. data/config/locales/en-GB.yml +223 -0
  80. data/config/locales/en-LOL.yml +219 -0
  81. data/config/locales/en-SCOT.yml +223 -0
  82. data/config/locales/en-SHAKESPEARE.yml +225 -0
  83. data/config/locales/en-US-pirate.yml +222 -0
  84. data/config/locales/en-US.yml +225 -0
  85. data/config/locales/en-YODA.yml +221 -0
  86. data/config/locales/en.yml +223 -0
  87. data/config/locales/es.yml +226 -0
  88. data/config/locales/fa.yml +223 -0
  89. data/config/locales/fr-CA.yml +227 -0
  90. data/config/locales/fr.yml +227 -0
  91. data/config/locales/he.yml +218 -0
  92. data/config/locales/hi.yml +223 -0
  93. data/config/locales/it.yml +225 -0
  94. data/config/locales/ja-JP.yml +215 -0
  95. data/config/locales/pt.yml +225 -0
  96. data/config/locales/ru.yml +228 -0
  97. data/config/locales/ur.yml +225 -0
  98. data/config/locales/zh-CN.yml +214 -0
  99. data/config/locales/zh-TW.yml +214 -0
  100. data/config/routes.rb +36 -0
  101. data/lib/ext/exception.rb +20 -0
  102. data/lib/generators/smriti/install/install_generator.rb +86 -0
  103. data/lib/generators/smriti/install/templates/create_mat_view_definitions.rb +29 -0
  104. data/lib/generators/smriti/install/templates/create_mat_view_runs.rb +32 -0
  105. data/lib/generators/smriti/install/templates/smriti_initializer.rb +23 -0
  106. data/lib/smriti/admin/auth_bridge.rb +93 -0
  107. data/lib/smriti/admin/default_auth.rb +62 -0
  108. data/lib/smriti/configuration.rb +58 -0
  109. data/lib/smriti/engine.rb +82 -0
  110. data/lib/smriti/helpers/ui_test_ids.rb +49 -0
  111. data/lib/smriti/jobs/adapter.rb +81 -0
  112. data/lib/smriti/service_response.rb +75 -0
  113. data/lib/smriti/services/base_service.rb +471 -0
  114. data/lib/smriti/services/check_matview_exists.rb +76 -0
  115. data/lib/smriti/services/concurrent_refresh.rb +94 -0
  116. data/lib/smriti/services/create_view.rb +173 -0
  117. data/lib/smriti/services/delete_view.rb +111 -0
  118. data/lib/smriti/services/regular_refresh.rb +90 -0
  119. data/lib/smriti/services/swap_refresh.rb +181 -0
  120. data/lib/smriti/version.rb +21 -0
  121. data/lib/smriti.rb +64 -0
  122. data/lib/tasks/helpers.rb +185 -0
  123. data/lib/tasks/smriti_tasks.rake +151 -0
  124. metadata +206 -0
@@ -0,0 +1,225 @@
1
+ ---
2
+ en-SHAKESPEARE:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Wrought upon
7
+ dependencies: Allies entangled
8
+ last_run_at: Last did run
9
+ name: Moniker
10
+ refresh_strategy: Stratagem of renewal
11
+ schedule_cron: Chronicle (cron)
12
+ sql: SQL (SELECT ... anon)
13
+ unique_index_columns: Columns singular
14
+ updated_at: Renewed upon
15
+ smriti/mat_view_run:
16
+ created_at: Wrought upon
17
+ details: Particulars
18
+ duration_ms: Passage (ms)
19
+ error: Mishap
20
+ finished_at: Concluded upon
21
+ mat_view_definition: Definition
22
+ meta: Hidden lore
23
+ operation: Enterprise
24
+ row_count_after: Rows thereafter
25
+ row_count_before: Rows erewhile
26
+ rows_before_after: Rows (ere/after)
27
+ started_at: Commenced upon
28
+ status: Estate
29
+ updated_at: Renewed upon
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: All at once
34
+ regular: Customary
35
+ swap: Exchange
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Conjure
39
+ drop: Unmake
40
+ refresh: Renew
41
+ status:
42
+ failed: Laid low
43
+ running: In motion
44
+ success: Triumphant
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: must needs be bestowed
51
+ invalid: befits not a noble PostgreSQL sign
52
+ taken: must stand alone
53
+ sql:
54
+ blank: must needs be bestowed
55
+ invalid: must dawn with SELECT
56
+ unique_index_columns:
57
+ at_least_one: requireth at least one column when the concurrent stratagem
58
+ is invoked
59
+ hints:
60
+ smriti/mat_view_definition:
61
+ dependencies: A roll of tables or views, in commas bound, upon which this
62
+ materialised vision leaneth.
63
+ name: The title this materialised view doth bear within the ledger.
64
+ refresh_strategy: Declares how this materialised view seeketh fresh life.
65
+ schedule_cron: Employ the common cron script. Leave void for none.
66
+ sql: Thy SQL oration must be a rightful SELECT proclamation.
67
+ unique_index_columns: Columns that shall don a singular index. Needed for
68
+ concurrent renewal.
69
+ smriti/mat_view_run:
70
+ error: A missive of misfortune if the run be stricken.
71
+ meta: Further chronicles in the tongue of JSON.
72
+ operation: What noble deed was wrought.
73
+ status: The present estate of the run.
74
+ models:
75
+ smriti/mat_view_definition: Materialised View Definition
76
+ smriti/mat_view_run: Materialised View Run
77
+ placeholders:
78
+ smriti/mat_view_definition:
79
+ dependencies: Inscribe allies (comma separated, optional)
80
+ name: Bestow a moniker
81
+ refresh_strategy: Choose thy stratagem
82
+ schedule_cron: 0 0 * * * for nightly stroke of twelve, leave void for none
83
+ sql: Inscribe SQL (SELECT ... anon)
84
+ unique_index_columns: Inscribe columns singular (comma separated, optional)
85
+ smriti/mat_view_run:
86
+ error: Mishap text
87
+ mat_view_definition: Select the materialised vision
88
+ meta: Hidden lore (JSON)
89
+ operation: Name the enterprise
90
+ status: Name the estate
91
+ i18n:
92
+ name: English (Shakespearean)
93
+ smriti:
94
+ actions: Acts
95
+ cancel: Stay thy hand
96
+ close: Close
97
+ close_window: Bar the window
98
+ create: Conjure
99
+ dashboard:
100
+ metrics:
101
+ title: Measures
102
+ title: Grand tableau
103
+ datatable:
104
+ clear_search_aria_label: Banish thy search
105
+ search_aria_label: Seek within the table
106
+ search_placeholder: Pray, search...
107
+ definition: Definition
108
+ definitions: Definitions
109
+ delete: Cast away
110
+ details: Particulars
111
+ edit: Revise
112
+ edit_var: Revise %{name}
113
+ errors:
114
+ frame_only: This deed may only in a frame be done; thou art returned unto the
115
+ dashboard.
116
+ prevented_saving:
117
+ few: "%{count} missteps stayed the saving:"
118
+ many: "%{count} missteps stayed the saving:"
119
+ one: 'One misstep stayed the saving:'
120
+ other: "%{count} missteps stayed the saving:"
121
+ two: 'Two missteps stayed the saving:'
122
+ zero: No missteps, all is well!
123
+ filter_by: 'Filter by:'
124
+ footer:
125
+ copyright: "© %{year} %{company} All rights reserved."
126
+ documentation: Chronicles
127
+ need_help: Seek'st thou steadfast uptime and sage counsel?
128
+ open_issue: Raise an Issue
129
+ project_homepage: Project hall
130
+ support: Procure Noble Support →
131
+ tagline: Forged with ❤️ by artisans of code, for their kin.
132
+ tooltip:
133
+ documentation: Peruse the chronicles
134
+ gem_version: Journey to RubyGems
135
+ open_issue: Report a blight or petition a feature
136
+ project_homepage: GitHub stronghold
137
+ support: Councils of professional aid
138
+ version: v%{version}
139
+ header:
140
+ signed_in_as: Thou art signed as %{email}
141
+ history: Annals
142
+ loading: In the making...
143
+ loading_definitions: Summoning definitions...
144
+ loading_runs: Summoning runs...
145
+ mat_view_definition:
146
+ create_mv: Conjure Smriti
147
+ create_mv_tooltip: Summons the materialised view within the storehouse.
148
+ delete_confirm: Wilt thou unmake %{name}'s definition? (Smriti abideth)
149
+ delete_tooltip: Strikes the definition, yet the materialised view endureth within
150
+ the storehouse.
151
+ drop_mv: Unmake Smriti
152
+ drop_mv_cascade: Unmake Smriti (Cascade)
153
+ drop_mv_cascade_confirm: Unmake the materialised view and each dependant soul
154
+ of %{name}?
155
+ drop_mv_cascade_tooltip: Unmakes the materialised view and its kin within the
156
+ storehouse. The definition abides.
157
+ drop_mv_confirm: Unmake the materialised view for %{name}?
158
+ drop_mv_tooltip: Unmakes the materialised view within the storehouse. The definition
159
+ abides.
160
+ edit_tooltip: Revise the materialised view definition.
161
+ materialized_view: Materialised view
162
+ materialized_view_exists: The materialised view doth exist
163
+ materialized_view_not_exists: The materialised view is yet unborn!
164
+ new_definition: New definition
165
+ new_definition_tooltip: Forge a new materialised view definition.
166
+ no_definitions: No materialised view definitions were espied. Forge one to begin.
167
+ no_definitions_if_filtered: No materialised view definitions answered those
168
+ filters or quests.
169
+ refresh_tooltip: Renews the materialised view within the storehouse.
170
+ sql_summary_tooltip: Tap to unfurl or furl the SQL
171
+ view_tooltip: Behold the materialised view definition.
172
+ mat_view_run:
173
+ error_tooltip: Missive of mishap should the run fall asunder.
174
+ meta_tooltip: Further chronicles in JSON.
175
+ no_runs: No runs were witnessed.
176
+ no_runs_if_filtered: No runs met those filters' call.
177
+ view_details: Survey particulars
178
+ view_tooltip: Survey the run's particulars.
179
+ no_filter: Any (unfettered)
180
+ no_value: No value (nil or void)
181
+ per_page: Per page
182
+ project_author: CodeVedas Inc.
183
+ project_description: An admin stage to marshal PostgreSQL materialised views for
184
+ Rails works.
185
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
186
+ management
187
+ refresh: Renew
188
+ refresh_contents: Freshen contents
189
+ reloading: Reloading...
190
+ reset: Reset
191
+ run: Run
192
+ runs: Runs
193
+ save_changes: Commit thy changes
194
+ settings:
195
+ auto: Auto
196
+ dark: Dusky
197
+ language: Tongue
198
+ language_hint: Choose the tongue of thine interface.
199
+ light: Bright
200
+ theme: Theme
201
+ theme_hint: Auto heeds thy system; bright and dusky o'errule it.
202
+ title: Preferences
203
+ title: Smriti Stage
204
+ view_var: Observe %{name}
205
+ x_miliseconds: "%{count} ms"
206
+ number:
207
+ format:
208
+ delimiter: ","
209
+ separator: "."
210
+ numbers:
211
+ eight: 8
212
+ five: 5
213
+ four: 4
214
+ nine: 9
215
+ one: 1
216
+ seven: 7
217
+ six: 6
218
+ three: 3
219
+ two: 2
220
+ zero: 0
221
+ time:
222
+ am: Ante meridiem
223
+ formats:
224
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
225
+ pm: Post meridiem
@@ -0,0 +1,222 @@
1
+ ---
2
+ en-US-pirate:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Hoisted at
7
+ dependencies: Mateys relied upon
8
+ last_run_at: Last voyage
9
+ name: Moniker
10
+ refresh_strategy: Refresh riggin'
11
+ schedule_cron: Ship's bell (cron)
12
+ sql: SQL (SELECT ... arr!)
13
+ unique_index_columns: Singular mast columns
14
+ updated_at: Trimmed at
15
+ smriti/mat_view_run:
16
+ created_at: Hoisted at
17
+ details: Tale
18
+ duration_ms: Voyage span (ms)
19
+ error: Mutiny
20
+ finished_at: Made port
21
+ mat_view_definition: Definition
22
+ meta: Hidden booty
23
+ operation: Manoeuvre
24
+ row_count_after: Deckhands after
25
+ row_count_before: Deckhands afore
26
+ rows_before_after: Deckhands (afore/after)
27
+ started_at: Cast off
28
+ status: Status
29
+ updated_at: Trimmed at
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: All hands
34
+ regular: Steady as she goes
35
+ swap: Rigging swap
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Raise
39
+ drop: Scuttle
40
+ refresh: Swab
41
+ status:
42
+ failed: Sank
43
+ running: Underway
44
+ success: Made the haul
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: needs a name fer the log
51
+ invalid: ain't a seaworthy PostgreSQL mark
52
+ taken: must fly alone
53
+ sql:
54
+ blank: needs charted words
55
+ invalid: must hoist the word SELECT first
56
+ unique_index_columns:
57
+ at_least_one: needs at least one mast when ye sail the concurrent refresh
58
+ hints:
59
+ smriti/mat_view_definition:
60
+ dependencies: Comma-linked roll o' tables or views this materialized vessel
61
+ leans upon.
62
+ name: What the materialized view be called in the hold.
63
+ refresh_strategy: How the materialized view be swabbed and renewed.
64
+ schedule_cron: Follow proper cron bells. Leave blank fer no watch.
65
+ sql: Yer SQL chant must be a true SELECT shanty.
66
+ unique_index_columns: Columns to bind fer a singular index. Needed fer all-hands
67
+ refresh.
68
+ smriti/mat_view_run:
69
+ error: Message in a bottle if the sailin' failed.
70
+ meta: Extra booty writ in JSON.
71
+ operation: What manoeuvre ye ordered.
72
+ status: Where the run be now.
73
+ models:
74
+ smriti/mat_view_definition: Materialized View Definition
75
+ smriti/mat_view_run: Materialized View Run
76
+ placeholders:
77
+ smriti/mat_view_definition:
78
+ dependencies: List mateys (comma separated, optional)
79
+ name: Mark a moniker
80
+ refresh_strategy: Choose the refresh riggin'
81
+ schedule_cron: 0 0 * * * fer midnight watch, leave blank fer no watch
82
+ sql: Pen SQL (SELECT ... arr!)
83
+ unique_index_columns: Mark singular mast columns (comma separated, optional)
84
+ smriti/mat_view_run:
85
+ error: Mutiny note
86
+ mat_view_definition: Choose the materialized vessel
87
+ meta: Hidden booty (JSON)
88
+ operation: Name the manoeuvre
89
+ status: Name the status
90
+ i18n:
91
+ name: English (Pirate)
92
+ smriti:
93
+ actions: Orders
94
+ cancel: Belay
95
+ close: Batten down
96
+ close_window: Batten window
97
+ create: Hoist anew
98
+ dashboard:
99
+ metrics:
100
+ title: Tally
101
+ title: Captain's deck
102
+ datatable:
103
+ clear_search_aria_label: Clear the spyglass
104
+ search_aria_label: Scan the ledger
105
+ search_placeholder: Scan fer...
106
+ definition: Definition
107
+ definitions: Definitions
108
+ delete: Scuttle
109
+ details: Details
110
+ edit: Refit
111
+ edit_var: Refit %{name}
112
+ errors:
113
+ frame_only: Ye can only pull this deed in a frame, so back to the captain's
114
+ deck with ye.
115
+ prevented_saving:
116
+ few: "%{count} mishaps blocked the stash:"
117
+ many: "%{count} mishaps blocked the stash:"
118
+ one: 'One mishap blocked the stash:'
119
+ other: "%{count} mishaps blocked the stash:"
120
+ two: 'Two mishaps blocked the stash:'
121
+ zero: No mishaps, fair winds!
122
+ filter_by: 'Sort by:'
123
+ footer:
124
+ copyright: "© %{year} %{company} All rights reserved."
125
+ documentation: Ship's log
126
+ need_help: Need steady tides & seasoned mates?
127
+ open_issue: Raise an Issue
128
+ project_homepage: Project berth
129
+ support: Secure Pro Support →
130
+ tagline: Forged with ❤️ by coders fer their crew.
131
+ tooltip:
132
+ documentation: Read the ship's log
133
+ gem_version: Sail to RubyGems
134
+ open_issue: Report mutiny or request new cannons
135
+ project_homepage: GitHub harbor
136
+ support: Professional support charts
137
+ version: v%{version}
138
+ header:
139
+ signed_in_as: Signed aboard as %{email}
140
+ history: Logbook
141
+ loading: Hoistin...
142
+ loading_definitions: Gatherin definitions...
143
+ loading_runs: Gatherin voyages...
144
+ mat_view_definition:
145
+ create_mv: Hoist Smriti
146
+ create_mv_tooltip: Brings the materialized vessel into the hold.
147
+ delete_confirm: Scuttle %{name}'s definition? (Smriti stays afloat)
148
+ delete_tooltip: Cuts the definition yet leaves the materialized vessel in the
149
+ hold.
150
+ drop_mv: Scuttle Smriti
151
+ drop_mv_cascade: Scuttle Smriti (Chainfire)
152
+ drop_mv_cascade_confirm: Scuttle the materialized vessel and all cling-ons fer
153
+ %{name}?
154
+ drop_mv_cascade_tooltip: Sends the materialized vessel and every hanger-on to
155
+ Davy Jones. Definition remains on deck.
156
+ drop_mv_confirm: Scuttle the materialized vessel fer %{name}?
157
+ drop_mv_tooltip: Sends the vessel from the hold. Definition stays abaft.
158
+ edit_tooltip: Refit the materialized vessel's definition.
159
+ materialized_view: Materialized vessel
160
+ materialized_view_exists: The vessel floats
161
+ materialized_view_not_exists: The vessel ain't built yet!
162
+ new_definition: New charter
163
+ new_definition_tooltip: Draft a fresh charter fer a materialized vessel.
164
+ no_definitions: No charters charted. Craft one an set sail.
165
+ no_definitions_if_filtered: No charters match them filters or searches.
166
+ refresh_tooltip: Swabs the materialized vessel within the hold.
167
+ sql_summary_tooltip: Click to unfurl/stow the SQL sails
168
+ view_tooltip: Inspect the vessel's charter.
169
+ mat_view_run:
170
+ error_tooltip: Mutiny note if the voyage failed.
171
+ meta_tooltip: Extra booty in JSON.
172
+ no_runs: No voyages logged.
173
+ no_runs_if_filtered: No voyages match them filters.
174
+ view_details: Inspect the tale
175
+ view_tooltip: Inspect the voyage's tale.
176
+ no_filter: Any (no filter)
177
+ no_value: No booty (nil or empty)
178
+ per_page: Per page
179
+ project_author: CodeVedas Inc.
180
+ project_description: Admin quarterdeck fer mindin PostgreSQL materialized views
181
+ in Rails crafts.
182
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
183
+ management
184
+ refresh: Swab
185
+ refresh_contents: Swab contents
186
+ reloading: Reloadin...
187
+ reset: Reset
188
+ run: Sail
189
+ runs: Voyages
190
+ save_changes: Stow changes
191
+ settings:
192
+ auto: Auto
193
+ dark: Dark
194
+ language: Tongue
195
+ language_hint: Choose the crew's tongue.
196
+ light: Light
197
+ theme: Theme
198
+ theme_hint: Auto heeds yer helm; light and dark overrule it.
199
+ title: Preferences
200
+ title: Smriti Quarterdeck
201
+ view_var: Survey %{name}
202
+ x_miliseconds: "%{count} ms"
203
+ number:
204
+ format:
205
+ delimiter: ","
206
+ separator: "."
207
+ numbers:
208
+ eight: 8
209
+ five: 5
210
+ four: 4
211
+ nine: 9
212
+ one: 1
213
+ seven: 7
214
+ six: 6
215
+ three: 3
216
+ two: 2
217
+ zero: 0
218
+ time:
219
+ am: Ship's morn
220
+ formats:
221
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
222
+ pm: Ship's eve
@@ -0,0 +1,225 @@
1
+ ---
2
+ en-US:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Created on
7
+ dependencies: Dependencies
8
+ last_run_at: Last run
9
+ name: Name
10
+ refresh_strategy: Refresh strategy
11
+ schedule_cron: Schedule (cron)
12
+ sql: SQL (SELECT ...)
13
+ unique_index_columns: Unique index columns
14
+ updated_at: Updated on
15
+ smriti/mat_view_run:
16
+ created_at: Created on
17
+ details: Details
18
+ duration_ms: Duration (ms)
19
+ error: Error
20
+ finished_at: Finished on
21
+ mat_view_definition: Definition
22
+ meta: Metadata
23
+ operation: Operation
24
+ row_count_after: Row count after
25
+ row_count_before: Row count before
26
+ rows_before_after: Rows (before/after)
27
+ started_at: Started on
28
+ status: Status
29
+ updated_at: Updated on
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: Concurrent
34
+ regular: Regular
35
+ swap: Swap
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Create
39
+ drop: Drop
40
+ refresh: Refresh
41
+ status:
42
+ failed: Failed
43
+ running: Running
44
+ success: Success
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: must be provided
51
+ invalid: is not a valid PostgreSQL identifier
52
+ taken: must be unique
53
+ sql:
54
+ blank: must be provided
55
+ invalid: must start with SELECT
56
+ unique_index_columns:
57
+ at_least_one: must include at least one column when using the concurrent
58
+ refresh strategy
59
+ hints:
60
+ smriti/mat_view_definition:
61
+ dependencies: Comma-separated list of tables or views this materialized view
62
+ depends on.
63
+ name: Name of the materialized view in the database.
64
+ refresh_strategy: Determines how the materialized view is refreshed.
65
+ schedule_cron: Use standard cron format. Leave empty for no scheduling.
66
+ sql: The SQL query must be a valid SELECT statement.
67
+ unique_index_columns: Columns to create a unique index on. Required for concurrent
68
+ refresh.
69
+ smriti/mat_view_run:
70
+ error: Error message if the run failed.
71
+ meta: Additional metadata in JSON format.
72
+ operation: Type of operation performed.
73
+ status: Current status of the run.
74
+ models:
75
+ smriti/mat_view_definition: Materialized View Definition
76
+ smriti/mat_view_run: Materialized View Run
77
+ placeholders:
78
+ smriti/mat_view_definition:
79
+ dependencies: Enter dependencies (comma separated, optional)
80
+ name: Enter name
81
+ refresh_strategy: Select refresh strategy
82
+ schedule_cron: 0 0 * * * for daily at midnight, leave empty for no scheduling
83
+ sql: Enter SQL (SELECT ...)
84
+ unique_index_columns: Enter unique index columns (comma separated, optional)
85
+ smriti/mat_view_run:
86
+ error: Error message
87
+ mat_view_definition: Select materialized view
88
+ meta: Metadata (JSON)
89
+ operation: Select operation
90
+ status: Select status
91
+ i18n:
92
+ name: English (US)
93
+ smriti:
94
+ actions: Actions
95
+ cancel: Cancel
96
+ close: Close
97
+ close_window: Close window
98
+ create: Create
99
+ dashboard:
100
+ metrics:
101
+ title: Metrics
102
+ title: Dashboard
103
+ datatable:
104
+ clear_search_aria_label: Clear search
105
+ search_aria_label: Search table
106
+ search_placeholder: Search...
107
+ definition: Definition
108
+ definitions: Definitions
109
+ delete: Delete
110
+ details: Details
111
+ edit: Edit
112
+ edit_var: Edit %{name}
113
+ errors:
114
+ frame_only: This action can only be performed in a frame, redirecting to the
115
+ dashboard.
116
+ prevented_saving:
117
+ few: "%{count} errors prevented saving:"
118
+ many: "%{count} errors prevented saving:"
119
+ one: '1 error prevented saving:'
120
+ other: "%{count} errors prevented saving:"
121
+ two: '2 errors prevented saving:'
122
+ zero: No errors, all good!
123
+ filter_by: 'Filter by:'
124
+ footer:
125
+ copyright: "© %{year} %{company} All rights reserved."
126
+ documentation: Documentation
127
+ need_help: Need guaranteed uptime & expert help?
128
+ open_issue: Open an Issue
129
+ project_homepage: Project Homepage
130
+ support: Get Professional Support →
131
+ tagline: Built with ❤️ by developers, for developers.
132
+ tooltip:
133
+ documentation: Read the documentation
134
+ gem_version: Click to visit the RubyGems page
135
+ open_issue: Report a bug or request a feature
136
+ project_homepage: GitHub repository
137
+ support: Professional support plans
138
+ version: v%{version}
139
+ header:
140
+ signed_in_as: Signed in as %{email}
141
+ history: History
142
+ loading: Loading...
143
+ loading_definitions: Loading definitions...
144
+ loading_runs: Loading runs...
145
+ mat_view_definition:
146
+ create_mv: Create Smriti
147
+ create_mv_tooltip: Creates the materialized view in the database.
148
+ delete_confirm: Delete the definition %{name}? (Does NOT drop Smriti)
149
+ delete_tooltip: Deletes the definition but does NOT drop the materialized view
150
+ in the database.
151
+ drop_mv: Drop Smriti
152
+ drop_mv_cascade: Drop Smriti (Cascade)
153
+ drop_mv_cascade_confirm: Drop the materialized view and all dependent objects
154
+ for %{name}?
155
+ drop_mv_cascade_tooltip: Drops the materialized view and all dependent objects
156
+ in the database. The definition remains.
157
+ drop_mv_confirm: Drop the materialized view for %{name}?
158
+ drop_mv_tooltip: Drops the materialized view in the database. The definition
159
+ remains.
160
+ edit_tooltip: Edit materialized view definition.
161
+ materialized_view: Materialized view
162
+ materialized_view_exists: Materialized view exists
163
+ materialized_view_not_exists: Materialized view not created yet!
164
+ new_definition: New definition
165
+ new_definition_tooltip: Create a new materialized view definition.
166
+ no_definitions: No materialized view definitions found. Create one to get started.
167
+ no_definitions_if_filtered: No materialized view definitions found for the selected
168
+ filters or search.
169
+ refresh_tooltip: Refreshes the materialized view in the database.
170
+ sql_summary_tooltip: Click to expand/collapse SQL
171
+ view_tooltip: View materialized view definition.
172
+ mat_view_run:
173
+ error_tooltip: Error message if the run failed.
174
+ meta_tooltip: Additional metadata in JSON format.
175
+ no_runs: No runs found.
176
+ no_runs_if_filtered: No runs found for the selected filters.
177
+ view_details: View details
178
+ view_tooltip: View run details.
179
+ no_filter: Any (no filter)
180
+ no_value: No value (nil or empty)
181
+ per_page: Per page
182
+ project_author: CodeVedas Inc.
183
+ project_description: Admin interface for managing PostgreSQL materialized views
184
+ in Rails applications.
185
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
186
+ management
187
+ refresh: Refresh
188
+ refresh_contents: Refresh contents
189
+ reloading: Reloading...
190
+ reset: Reset
191
+ run: Run
192
+ runs: Runs
193
+ save_changes: Save changes
194
+ settings:
195
+ auto: Auto
196
+ dark: Dark
197
+ language: Language
198
+ language_hint: Choose your interface language.
199
+ light: Light
200
+ theme: Theme
201
+ theme_hint: Auto follows your system preference; light and dark override it.
202
+ title: Preferences
203
+ title: Smriti Admin
204
+ view_var: View %{name}
205
+ x_miliseconds: "%{count} ms"
206
+ number:
207
+ format:
208
+ delimiter: ","
209
+ separator: "."
210
+ numbers:
211
+ eight: 8
212
+ five: 5
213
+ four: 4
214
+ nine: 9
215
+ one: 1
216
+ seven: 7
217
+ six: 6
218
+ three: 3
219
+ two: 2
220
+ zero: 0
221
+ time:
222
+ am: AM
223
+ formats:
224
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
225
+ pm: PM