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,223 @@
1
+ ---
2
+ en-GB:
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 have 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 materialised view
62
+ depends on.
63
+ name: Name of the materialised view in the database.
64
+ refresh_strategy: Determines how the materialised 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: Materialised View Definition
76
+ smriti/mat_view_run: Materialised 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 materialised view
88
+ meta: Metadata (JSON)
89
+ operation: Select operation
90
+ status: Select status
91
+ i18n:
92
+ name: English (UK)
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, redirected to dashboard.
115
+ prevented_saving:
116
+ few: "%{count} errors prevented saving:"
117
+ many: "%{count} errors prevented saving:"
118
+ one: '1 error prevented saving:'
119
+ other: "%{count} errors prevented saving:"
120
+ two: '2 errors prevented saving:'
121
+ zero: No errors, all good!
122
+ filter_by: 'Filter by:'
123
+ footer:
124
+ copyright: "© %{year} %{company} All rights reserved."
125
+ documentation: Documentation
126
+ need_help: Need guaranteed uptime & expert help?
127
+ open_issue: Open an Issue
128
+ project_homepage: Project Homepage
129
+ support: Get Professional Support →
130
+ tagline: Built with ❤️ by developers, for developers.
131
+ tooltip:
132
+ documentation: Read the documentation
133
+ gem_version: Click to visit the RubyGems page
134
+ open_issue: Report a bug or request a feature
135
+ project_homepage: GitHub repository
136
+ support: Professional support plans
137
+ version: v%{version}
138
+ header:
139
+ signed_in_as: Signed in as %{email}
140
+ history: History
141
+ loading: Loading...
142
+ loading_definitions: Loading definitions...
143
+ loading_runs: Loading runs...
144
+ mat_view_definition:
145
+ create_mv: Create Smriti
146
+ create_mv_tooltip: Creates the materialised view in the database.
147
+ delete_confirm: Delete definition %{name}? (Does NOT drop Smriti)
148
+ delete_tooltip: Deletes the definition but does NOT drop the materialised view
149
+ in the database.
150
+ drop_mv: Drop Smriti
151
+ drop_mv_cascade: Drop Smriti (Cascade)
152
+ drop_mv_cascade_confirm: Drop the materialised view and all dependent objects
153
+ for %{name}?
154
+ drop_mv_cascade_tooltip: Drops the materialised view and all dependent objects
155
+ in the database. Definition remains.
156
+ drop_mv_confirm: Drop the materialised view for %{name}?
157
+ drop_mv_tooltip: Drops the materialised view in the database. Definition remains.
158
+ edit_tooltip: Edit materialised view definition.
159
+ materialized_view: Materialised View
160
+ materialized_view_exists: Materialised view exists
161
+ materialized_view_not_exists: Materialised view not created yet!
162
+ new_definition: New definition
163
+ new_definition_tooltip: Create a new materialised view definition.
164
+ no_definitions: No materialised view definitions found. Create one to get started.
165
+ no_definitions_if_filtered: No materialised view definitions found for the selected
166
+ filters and/or search.
167
+ refresh_tooltip: Refreshes the materialised view in the database.
168
+ sql_summary_tooltip: Click to expand/collapse SQL
169
+ view_tooltip: View materialised view definition.
170
+ mat_view_run:
171
+ error_tooltip: Error message if the run failed.
172
+ meta_tooltip: Additional metadata in JSON format.
173
+ no_runs: No runs found.
174
+ no_runs_if_filtered: No runs found for the selected filters.
175
+ view_details: View details
176
+ view_tooltip: View run details.
177
+ no_filter: Any (no filter)
178
+ no_value: No value (nil or empty)
179
+ per_page: Per page
180
+ project_author: CodeVedas Inc.
181
+ project_description: Admin interface for managing PostgreSQL materialised views
182
+ in Rails applications.
183
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
184
+ management
185
+ refresh: Refresh
186
+ refresh_contents: Refresh contents
187
+ reloading: Reloading...
188
+ reset: Reset
189
+ run: Run
190
+ runs: Runs
191
+ save_changes: Save changes
192
+ settings:
193
+ auto: Auto
194
+ dark: Dark
195
+ language: Language
196
+ language_hint: Choose your interface language.
197
+ light: Light
198
+ theme: Theme
199
+ theme_hint: Auto follows your system preference; light and dark override it.
200
+ title: Preferences
201
+ title: Smriti Admin
202
+ view_var: View %{name}
203
+ x_miliseconds: "%{count} ms"
204
+ number:
205
+ format:
206
+ delimiter: ","
207
+ separator: "."
208
+ numbers:
209
+ eight: 8
210
+ five: 5
211
+ four: 4
212
+ nine: 9
213
+ one: 1
214
+ seven: 7
215
+ six: 6
216
+ three: 3
217
+ two: 2
218
+ zero: 0
219
+ time:
220
+ am: AM
221
+ formats:
222
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
223
+ pm: PM
@@ -0,0 +1,219 @@
1
+ ---
2
+ en-LOL:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: MADE AT
7
+ dependencies: FRIENDZ IT NEEDZ
8
+ last_run_at: LAST RUNNED
9
+ name: NAEM
10
+ refresh_strategy: REFRESH PLAN
11
+ schedule_cron: SCHEDUL (cron)
12
+ sql: SQL (SELECT ... LOL)
13
+ unique_index_columns: ONE-OF-A-KIND COLUMNZ
14
+ updated_at: UPDATED
15
+ smriti/mat_view_run:
16
+ created_at: MADE AT
17
+ details: DETAILZ
18
+ duration_ms: HOW LONG (ms)
19
+ error: OOPS
20
+ finished_at: FINISHED
21
+ mat_view_definition: DEFINITION
22
+ meta: EXTRA STUFF
23
+ operation: ACTION
24
+ row_count_after: ROWZ AFTER
25
+ row_count_before: ROWZ BEFORE
26
+ rows_before_after: ROWZ (BEFORE/AFTER)
27
+ started_at: STARTED
28
+ status: STATUS
29
+ updated_at: UPDATED
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: ALL AT ONCE, KTHX
34
+ regular: REGULAR
35
+ swap: SWAPPA
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: MAKE
39
+ drop: DROP
40
+ refresh: REFRESH
41
+ status:
42
+ failed: FAILED :-(
43
+ running: RUNNIN
44
+ success: AWESOME WIN
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: HAZ TO BE THERE
51
+ invalid: IZ NOT A LEGIT PostgreSQL NAME
52
+ taken: ALREDY STOLED
53
+ sql:
54
+ blank: HAZ TO BE THERE
55
+ invalid: HAZ TO START WIF SELECT
56
+ unique_index_columns:
57
+ at_least_one: NEEDS AT LEAST 1 COLUMN WHEN U DOIN CONCURRENT REFRESH
58
+ hints:
59
+ smriti/mat_view_definition:
60
+ dependencies: Comma list of tablez or viewz dis materialized view needz, kthx.
61
+ name: Wut we call dis materialized view in teh database.
62
+ refresh_strategy: How dis materialized view gets a make-over.
63
+ schedule_cron: Use normal cron speak. Leave blank if u haz no schedul.
64
+ sql: SQL haz to be a real SELECT sentence.
65
+ unique_index_columns: Columnz that get teh special index. Needed for concurrent
66
+ refresh.
67
+ smriti/mat_view_run:
68
+ error: Message when teh run derps.
69
+ meta: Extra info in JSON.
70
+ operation: Wut kind of action ran.
71
+ status: Current mood of teh run.
72
+ models:
73
+ smriti/mat_view_definition: Materialized View Definition
74
+ smriti/mat_view_run: Materialized View Run
75
+ placeholders:
76
+ smriti/mat_view_definition:
77
+ dependencies: Type friendz (comma optional)
78
+ name: Type naem
79
+ refresh_strategy: Pick refresh plan
80
+ schedule_cron: 0 0 * * * = midnight ebery day, blank if no schedul
81
+ sql: Type SQL (SELECT ... LOL)
82
+ unique_index_columns: Type special columnz (comma optional)
83
+ smriti/mat_view_run:
84
+ error: OOPS message
85
+ mat_view_definition: Pick materialized view
86
+ meta: Extra stuff (JSON)
87
+ operation: Pick action
88
+ status: Pick status
89
+ i18n:
90
+ name: English (LOLCAT)
91
+ smriti:
92
+ actions: DO STUFF
93
+ cancel: NUH UH
94
+ close: CLOSE
95
+ close_window: CLOSE WINDOW
96
+ create: MAKE
97
+ dashboard:
98
+ metrics:
99
+ title: STATZ
100
+ title: DASHBOARD
101
+ datatable:
102
+ clear_search_aria_label: CLEAR TEH SEARCH
103
+ search_aria_label: SEARCH TEH TABLE
104
+ search_placeholder: LOOK FUR...
105
+ definition: DEFINITION
106
+ definitions: DEFINITIONZ
107
+ delete: DELETE
108
+ details: DETAILZ
109
+ edit: EDIT
110
+ edit_var: EDIT %{name}
111
+ errors:
112
+ frame_only: Dis only werkz in a frame, so go back to dashboard kthx.
113
+ prevented_saving:
114
+ few: "%{count} boo-booz stopped teh save:"
115
+ many: "%{count} boo-booz stopped teh save:"
116
+ one: '1 boo-boo stopped teh save:'
117
+ other: "%{count} boo-booz stopped teh save:"
118
+ two: '2 boo-booz stopped teh save:'
119
+ zero: NO BOO-BOOZ, YAY!
120
+ filter_by: 'FILTER BY:'
121
+ footer:
122
+ copyright: "© %{year} %{company} All rights reserved."
123
+ documentation: DOCZ
124
+ need_help: Need uptime promise & expert hoomans?
125
+ open_issue: OPEN ISSUE
126
+ project_homepage: PROJECT HOME
127
+ support: GET PRO SUPPORT →
128
+ tagline: Made wif ❤️ by devs for devs.
129
+ tooltip:
130
+ documentation: Read teh docz
131
+ gem_version: Visit RubyGems page
132
+ open_issue: Report bug or ask fur feature
133
+ project_homepage: GitHub repo
134
+ support: Pro support planz
135
+ version: v%{version}
136
+ header:
137
+ signed_in_as: U signed in as %{email}
138
+ history: HISTORY
139
+ loading: LOADING...
140
+ loading_definitions: Loading definitions...
141
+ loading_runs: Loading runz...
142
+ mat_view_definition:
143
+ create_mv: MAKE Smriti
144
+ create_mv_tooltip: Makes teh materialized view in teh database, kthx.
145
+ delete_confirm: Delete %{name} definition? (Smriti stays put)
146
+ delete_tooltip: Deletes definition but no drop teh materialized view.
147
+ drop_mv: DROP Smriti
148
+ drop_mv_cascade: DROP Smriti (ALL TEH THINGZ)
149
+ drop_mv_cascade_confirm: Drop materialized view and all its buddy objects for
150
+ %{name}?
151
+ drop_mv_cascade_tooltip: Drops materialized view and every dependent friend
152
+ in teh database. Definition stays.
153
+ drop_mv_confirm: Drop materialized view for %{name}?
154
+ drop_mv_tooltip: Drops materialized view from teh database. Definition stays.
155
+ edit_tooltip: Edit materialized view definition.
156
+ materialized_view: Materialized view
157
+ materialized_view_exists: Materialized view iz here
158
+ materialized_view_not_exists: Materialized view not born yet!
159
+ new_definition: New definition
160
+ new_definition_tooltip: Make fresh materialized view definition.
161
+ no_definitions: No materialized view definitions found. Make one plz.
162
+ no_definitions_if_filtered: Nuthin matched dat filter or search.
163
+ refresh_tooltip: Refreshes teh materialized view in database.
164
+ sql_summary_tooltip: Click to show/hide SQL
165
+ view_tooltip: Look at materialized view definition.
166
+ mat_view_run:
167
+ error_tooltip: Message if run derps.
168
+ meta_tooltip: Extra info in JSON.
169
+ no_runs: No runz here.
170
+ no_runs_if_filtered: Filters got zero runz.
171
+ view_details: See detailz
172
+ view_tooltip: See run detailz.
173
+ no_filter: ANYTHING
174
+ no_value: NO VALUE (nil or blank)
175
+ per_page: Per page
176
+ project_author: CodeVedas Inc.
177
+ project_description: Admin interface fur managing PostgreSQL materialized viewz
178
+ in Rails apps.
179
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
180
+ management
181
+ refresh: REFRESH
182
+ refresh_contents: REFRESH STUFF
183
+ reloading: Reloadin...
184
+ reset: RESET
185
+ run: RUN
186
+ runs: RUNZ
187
+ save_changes: SAVE CHANGEZ
188
+ settings:
189
+ auto: AUTO
190
+ dark: DARK
191
+ language: LANGUAGE
192
+ language_hint: Pick ur interface lingo.
193
+ light: LIGHT
194
+ theme: THEME
195
+ theme_hint: Auto followz ur system, light/dark override it.
196
+ title: PREFERENCES
197
+ title: Smriti LOL
198
+ view_var: VIEW %{name}
199
+ x_miliseconds: "%{count} ms"
200
+ number:
201
+ format:
202
+ delimiter: ","
203
+ separator: "."
204
+ numbers:
205
+ eight: 8
206
+ five: 5
207
+ four: 4
208
+ nine: 9
209
+ one: 1
210
+ seven: 7
211
+ six: 6
212
+ three: 3
213
+ two: 2
214
+ zero: 0
215
+ time:
216
+ am: AM
217
+ formats:
218
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
219
+ pm: PM
@@ -0,0 +1,223 @@
1
+ ---
2
+ en-SCOT:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Cooked up oan
7
+ dependencies: Whit's relied oan
8
+ last_run_at: Last time it ran
9
+ name: Name
10
+ refresh_strategy: Refresh scheme
11
+ schedule_cron: Schedule (cron)
12
+ sql: SQL (SELECT ...)
13
+ unique_index_columns: Unique index columns
14
+ updated_at: Updated oan
15
+ smriti/mat_view_run:
16
+ created_at: Cooked up oan
17
+ details: Details
18
+ duration_ms: Duration (ms)
19
+ error: Error
20
+ finished_at: Finished oan
21
+ mat_view_definition: Definition
22
+ meta: Extra info
23
+ operation: Operation
24
+ row_count_after: Rows efter
25
+ row_count_before: Rows afore
26
+ rows_before_after: Rows (afore/efter)
27
+ started_at: Kicked aff
28
+ status: Status
29
+ updated_at: Updated oan
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: A' at once
34
+ regular: Regular
35
+ swap: Swap
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Mak
39
+ drop: Drap
40
+ refresh: Refresh
41
+ status:
42
+ failed: Scunnered
43
+ running: Gawn
44
+ success: Sorted
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: needs tae be filled in
51
+ invalid: isnae a valid PostgreSQL name
52
+ taken: needs tae be unique
53
+ sql:
54
+ blank: needs tae be filled in
55
+ invalid: has tae start wi SELECT
56
+ unique_index_columns:
57
+ at_least_one: needs at least ane column when usin the concurrent refresh
58
+ scheme
59
+ hints:
60
+ smriti/mat_view_definition:
61
+ dependencies: Comma list o tables or views this materialised yin depends oan.
62
+ name: Name o the materialised view in the database.
63
+ refresh_strategy: Shows hoo the materialised view gets refreshed.
64
+ schedule_cron: Use the usual cron format. Leave it blank if yer no scheduling.
65
+ sql: The SQL statement needs tae be a proper SELECT.
66
+ unique_index_columns: Columns that get the unique index. Needed for the concurrent
67
+ refresh.
68
+ smriti/mat_view_run:
69
+ error: Message if the run went pear-shaped.
70
+ meta: Extra details in JSON.
71
+ operation: Type o operation that ran.
72
+ status: Whit stage the run's at the noo.
73
+ models:
74
+ smriti/mat_view_definition: Materialised View Definition
75
+ smriti/mat_view_run: Materialised View Run
76
+ placeholders:
77
+ smriti/mat_view_definition:
78
+ dependencies: Type dependencies (comma separated, optional)
79
+ name: Type name
80
+ refresh_strategy: Pick a refresh scheme
81
+ schedule_cron: 0 0 * * * fer midnight daily, blank fer nae schedule
82
+ sql: Type SQL (SELECT ...)
83
+ unique_index_columns: Type unique index columns (comma separated, optional)
84
+ smriti/mat_view_run:
85
+ error: Error message
86
+ mat_view_definition: Pick the materialised view
87
+ meta: Extra info (JSON)
88
+ operation: Pick operation
89
+ status: Pick status
90
+ i18n:
91
+ name: English (Scots)
92
+ smriti:
93
+ actions: Actions
94
+ cancel: Cancel
95
+ close: Shut
96
+ close_window: Shut windae
97
+ create: Create
98
+ dashboard:
99
+ metrics:
100
+ title: Metrics
101
+ title: Dashboard
102
+ datatable:
103
+ clear_search_aria_label: Clear the search
104
+ search_aria_label: Search the table
105
+ search_placeholder: Hae a keek...
106
+ definition: Definition
107
+ definitions: Definitions
108
+ delete: Delete
109
+ details: Details
110
+ edit: Edit
111
+ edit_var: Edit %{name}
112
+ errors:
113
+ frame_only: Ye can only dae this inside a frame, sae ye're heidit back tae the
114
+ dashboard.
115
+ prevented_saving:
116
+ few: "%{count} clangers stopped the save:"
117
+ many: "%{count} clangers stopped the save:"
118
+ one: '1 clanger stopped the save:'
119
+ other: "%{count} clangers stopped the save:"
120
+ two: '2 clangers stopped the save:'
121
+ zero: Nae clangers, braw!
122
+ filter_by: 'Filter by:'
123
+ footer:
124
+ copyright: "© %{year} %{company} All rights reserved."
125
+ documentation: Docs
126
+ need_help: Need guaranteed uptime & a wee bit o help?
127
+ open_issue: Open an Issue
128
+ project_homepage: Project hamepage
129
+ support: Get Professional Support →
130
+ tagline: Built wi ❤️ by developers, fer developers.
131
+ tooltip:
132
+ documentation: Read the docs
133
+ gem_version: Heid ower tae RubyGems
134
+ open_issue: Report a bug or ask fer a feature
135
+ project_homepage: GitHub repo
136
+ support: Professional support plans
137
+ version: v%{version}
138
+ header:
139
+ signed_in_as: Signed in as %{email}
140
+ history: History
141
+ loading: Loadin...
142
+ loading_definitions: Fetchin definitions...
143
+ loading_runs: Fetchin runs...
144
+ mat_view_definition:
145
+ create_mv: Create Smriti
146
+ create_mv_tooltip: Builds the materialised view in the database.
147
+ delete_confirm: Scrap the definition %{name}? (Disnae drop Smriti)
148
+ delete_tooltip: Deletes the definition but disnae drop the materialised view
149
+ in the database.
150
+ drop_mv: Drop Smriti
151
+ drop_mv_cascade: Drop Smriti (Cascade)
152
+ drop_mv_cascade_confirm: Drop the materialised view an aw the hangers-on fer
153
+ %{name}?
154
+ drop_mv_cascade_tooltip: Drops the materialised view an aw the dependents in
155
+ the database. Definition stays put.
156
+ drop_mv_confirm: Drop the materialised view fer %{name}?
157
+ drop_mv_tooltip: Drops the materialised view in the database. Definition sticks
158
+ aroond.
159
+ edit_tooltip: Edit materialised view definition.
160
+ materialized_view: Materialised view
161
+ materialized_view_exists: Materialised view's there
162
+ materialized_view_not_exists: Materialised view's no ready yet!
163
+ new_definition: New definition
164
+ new_definition_tooltip: Spin up a new materialised view definition.
165
+ no_definitions: Nae materialised view definitions found. Mak ane tae get goin.
166
+ no_definitions_if_filtered: Nuthin matches yon filters or search.
167
+ refresh_tooltip: Refreshes the materialised view in the database.
168
+ sql_summary_tooltip: Tap tae open/close the SQL
169
+ view_tooltip: See the materialised view definition.
170
+ mat_view_run:
171
+ error_tooltip: Error message if the run went belly up.
172
+ meta_tooltip: Extra info in JSON.
173
+ no_runs: Nae runs found.
174
+ no_runs_if_filtered: Nae runs match thae filters.
175
+ view_details: View details
176
+ view_tooltip: View the run details.
177
+ no_filter: Any (nae filter)
178
+ no_value: Nae value (nil or empty)
179
+ per_page: Per page
180
+ project_author: CodeVedas Inc.
181
+ project_description: Admin interface fer mindin PostgreSQL materialised views
182
+ in Rails apps.
183
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
184
+ management
185
+ refresh: Refresh
186
+ refresh_contents: Refresh contents
187
+ reloading: Reloadin...
188
+ reset: Reset
189
+ run: Run
190
+ runs: Runs
191
+ save_changes: Save changes
192
+ settings:
193
+ auto: Auto
194
+ dark: Dark
195
+ language: Language
196
+ language_hint: Choose yer interface lingo.
197
+ light: Light
198
+ theme: Theme
199
+ theme_hint: Auto follows yer system; light an dark override it.
200
+ title: Preferences
201
+ title: Smriti Admin
202
+ view_var: View %{name}
203
+ x_miliseconds: "%{count} ms"
204
+ number:
205
+ format:
206
+ delimiter: ","
207
+ separator: "."
208
+ numbers:
209
+ eight: 8
210
+ five: 5
211
+ four: 4
212
+ nine: 9
213
+ one: 1
214
+ seven: 7
215
+ six: 6
216
+ three: 3
217
+ two: 2
218
+ zero: 0
219
+ time:
220
+ am: AM
221
+ formats:
222
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
223
+ pm: PM