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,221 @@
1
+ ---
2
+ en-YODA:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Forged it was
7
+ dependencies: Allies it leans upon
8
+ last_run_at: Last time run, hmm?
9
+ name: Name it is
10
+ refresh_strategy: Plan to refresh, yes
11
+ schedule_cron: Schedule (cron) the Force sees
12
+ sql: SQL (SELECT ... it must be)
13
+ unique_index_columns: Columns, unique they are
14
+ updated_at: Renewed it has been
15
+ smriti/mat_view_run:
16
+ created_at: Forged it was
17
+ details: Details these be
18
+ duration_ms: Moments passed (ms)
19
+ error: Error, troubled force
20
+ finished_at: Finished it has
21
+ mat_view_definition: Definition
22
+ meta: Hidden data
23
+ operation: Action taken
24
+ row_count_after: Rows after, count
25
+ row_count_before: Rows before, count
26
+ rows_before_after: Rows (before/after) they are
27
+ started_at: Began it did
28
+ status: Status, current
29
+ updated_at: Renewed it has been
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: Together, all
34
+ regular: Usual way
35
+ swap: Exchange, hmm
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Create we must
39
+ drop: Drop we shall
40
+ refresh: Refresh it, yes
41
+ status:
42
+ failed: Failed, it has
43
+ running: Running, this is
44
+ success: Succeeded, it did
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: Provide it, you must
51
+ invalid: Valid PostgreSQL sign, this is not
52
+ taken: Alone it must stand
53
+ sql:
54
+ blank: Provide it, you must
55
+ invalid: With SELECT begin, it must
56
+ unique_index_columns:
57
+ at_least_one: At least one column, the concurrent path demands
58
+ hints:
59
+ smriti/mat_view_definition:
60
+ dependencies: Tables or views, comma-linked list this materialized ally relies
61
+ upon.
62
+ name: Title within the database, the materialized view bears.
63
+ refresh_strategy: How refreshed the view becomes, this reveals.
64
+ schedule_cron: Standard cron speak, use you should. Empty leave for no schedule.
65
+ sql: True SELECT speech, thy SQL must be.
66
+ unique_index_columns: Columns for a unique index, required concurrent refresh
67
+ is.
68
+ smriti/mat_view_run:
69
+ error: Run failed, message this will share.
70
+ meta: Extra knowledge in JSON tongue.
71
+ operation: What action was taken, this names.
72
+ status: Run's current state, learn you do.
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: Type allies (comma separated, optional)
79
+ name: Name enter, you should
80
+ refresh_strategy: Refresh plan choose
81
+ schedule_cron: 0 0 * * * for midnight each day, empty leave for none
82
+ sql: SQL (SELECT ...) type
83
+ unique_index_columns: Unique columns list (comma separated, optional)
84
+ smriti/mat_view_run:
85
+ error: Error words
86
+ mat_view_definition: Choose the materialized view
87
+ meta: Hidden data (JSON)
88
+ operation: Action choose
89
+ status: Status choose
90
+ i18n:
91
+ name: English (YODA)
92
+ smriti:
93
+ actions: Actions, take
94
+ cancel: Cancel, you will
95
+ close: Close
96
+ close_window: Close the window, hmm?
97
+ create: Create, we shall
98
+ dashboard:
99
+ metrics:
100
+ title: Metrics, yes
101
+ title: Dashboard it is
102
+ datatable:
103
+ clear_search_aria_label: Clear the search you must
104
+ search_aria_label: Search the table
105
+ search_placeholder: Search, you may...
106
+ definition: Definition
107
+ definitions: Definitions
108
+ delete: Delete
109
+ details: Details
110
+ edit: Edit
111
+ edit_var: Edit %{name}, you will
112
+ errors:
113
+ frame_only: Only within a frame may this be done; to dashboard you return.
114
+ prevented_saving:
115
+ few: "%{count} errors, saving they stopped:"
116
+ many: "%{count} errors, saving they stopped:"
117
+ one: 'One error stopped the saving:'
118
+ other: "%{count} errors stopped the saving:"
119
+ two: 'Two errors stopped the saving:'
120
+ zero: No errors, in balance all is!
121
+ filter_by: 'Filter by, you can:'
122
+ footer:
123
+ copyright: "© %{year} %{company} All rights reserved."
124
+ documentation: Holocron
125
+ need_help: Need steady uptime & masters' aid, do you?
126
+ open_issue: Raise an Issue
127
+ project_homepage: Project temple
128
+ support: Gain Jedi Support →
129
+ tagline: Forged with ❤️ by developers, for developers it is.
130
+ tooltip:
131
+ documentation: Read the holocron
132
+ gem_version: Visit RubyGems system
133
+ open_issue: Report a bug or wish a feature
134
+ project_homepage: GitHub enclave
135
+ support: Professional support paths
136
+ version: v%{version}
137
+ header:
138
+ signed_in_as: Signed in as %{email}, you are
139
+ history: Timeline
140
+ loading: Loading... patience you must have
141
+ loading_definitions: Definitions summoning...
142
+ loading_runs: Runs summoning...
143
+ mat_view_definition:
144
+ create_mv: Create Smriti, we will
145
+ create_mv_tooltip: Into the database, the materialized view we bring.
146
+ delete_confirm: Delete %{name}'s definition? (Smriti fall not)
147
+ delete_tooltip: Definition remove, yet the materialized view remains within
148
+ the database.
149
+ drop_mv: Drop Smriti
150
+ drop_mv_cascade: Drop Smriti (Cascade it does)
151
+ drop_mv_cascade_confirm: Materialized view and dependents for %{name}, drop
152
+ shall we?
153
+ drop_mv_cascade_tooltip: Materialized view and all dependents, the database
154
+ forgets. Definition stays.
155
+ drop_mv_confirm: Drop %{name}'s materialized view, do you?
156
+ drop_mv_tooltip: From the database the view departs; definition remains.
157
+ edit_tooltip: Definition of the materialized view, edit you can.
158
+ materialized_view: Materialized view
159
+ materialized_view_exists: Exists, the materialized view does
160
+ materialized_view_not_exists: Not yet born, the materialized view is!
161
+ new_definition: New definition
162
+ new_definition_tooltip: Forge a new materialized view definition.
163
+ no_definitions: Found, no definitions were. Create one, you must.
164
+ no_definitions_if_filtered: Filters or search, no definitions answered.
165
+ refresh_tooltip: Refresh in the database, the materialized view shall.
166
+ sql_summary_tooltip: Click, expand or fold the SQL you will
167
+ view_tooltip: The definition behold, you should.
168
+ mat_view_run:
169
+ error_tooltip: Message of failure, should the run fall.
170
+ meta_tooltip: Extra data wrapped in JSON, it is.
171
+ no_runs: No runs spotted, there are.
172
+ no_runs_if_filtered: Filters matched no runs.
173
+ view_details: Details see
174
+ view_tooltip: Run details see
175
+ no_filter: Any (filter none)
176
+ no_value: No value (nil or empty)
177
+ per_page: Per page
178
+ project_author: CodeVedas Inc.
179
+ project_description: Admin interface for guiding PostgreSQL materialized views
180
+ in Rails creations.
181
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
182
+ management
183
+ refresh: Refresh
184
+ refresh_contents: Refresh contents
185
+ reloading: Reloading...
186
+ reset: Reset
187
+ run: Run
188
+ runs: Runs
189
+ save_changes: Save changes
190
+ settings:
191
+ auto: Auto
192
+ dark: Dark
193
+ language: Tongue
194
+ language_hint: Your interface tongue choose.
195
+ light: Light
196
+ theme: Theme
197
+ theme_hint: Auto follows system; light and dark override it.
198
+ title: Preferences
199
+ title: Smriti Council
200
+ view_var: View %{name}, you shall
201
+ x_miliseconds: "%{count} ms"
202
+ number:
203
+ format:
204
+ delimiter: ","
205
+ separator: "."
206
+ numbers:
207
+ eight: 8
208
+ five: 5
209
+ four: 4
210
+ nine: 9
211
+ one: 1
212
+ seven: 7
213
+ six: 6
214
+ three: 3
215
+ two: 2
216
+ zero: 0
217
+ time:
218
+ am: Morning it is
219
+ formats:
220
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
221
+ pm: Evening it is
@@ -0,0 +1,223 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Created at
7
+ dependencies: Dependencies
8
+ last_run_at: Last run at
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 at
15
+ smriti/mat_view_run:
16
+ created_at: Created at
17
+ details: Details
18
+ duration_ms: Duration (ms)
19
+ error: Error
20
+ finished_at: Finished at
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 at
28
+ status: Status
29
+ updated_at: Updated at
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 concurrent refresh
58
+ 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
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 MV
146
+ create_mv_tooltip: Creates the materialized view in the database.
147
+ delete_confirm: Delete definition %{name}? (Does NOT drop MV)
148
+ delete_tooltip: Deletes the definition but does NOT drop the materialized view
149
+ in the database.
150
+ drop_mv: Drop MV
151
+ drop_mv_cascade: Drop MV (Cascade)
152
+ drop_mv_cascade_confirm: Drop materialized view and all dependent objects for
153
+ %{name}?
154
+ drop_mv_cascade_tooltip: Drops the materialized view and all dependent objects
155
+ in the database. Definition remains.
156
+ drop_mv_confirm: Drop materialized view for %{name}?
157
+ drop_mv_tooltip: Drops the materialized view in the database. Definition remains.
158
+ edit_tooltip: Edit materialized view definition.
159
+ materialized_view: Materialized View
160
+ materialized_view_exists: Materialized view exists
161
+ materialized_view_not_exists: Materialized view not created yet!
162
+ new_definition: New definition
163
+ new_definition_tooltip: Create a new materialized view definition.
164
+ no_definitions: No materialized view definitions found. Create one to get started.
165
+ no_definitions_if_filtered: No materialized view definitions found for the selected
166
+ filters and/or search.
167
+ refresh_tooltip: Refreshes the materialized view in the database.
168
+ sql_summary_tooltip: Click to expand/collapse SQL
169
+ view_tooltip: View materialized 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 materialized 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 overrides 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,226 @@
1
+ ---
2
+ es:
3
+ activerecord:
4
+ attributes:
5
+ smriti/mat_view_definition:
6
+ created_at: Creado el
7
+ dependencies: Dependencias
8
+ last_run_at: Última ejecución
9
+ name: Nombre
10
+ refresh_strategy: Estrategia de actualización
11
+ schedule_cron: Programación (cron)
12
+ sql: SQL (SELECT ...)
13
+ unique_index_columns: Columnas de índice único
14
+ updated_at: Actualizado el
15
+ smriti/mat_view_run:
16
+ created_at: Creado el
17
+ details: Detalles
18
+ duration_ms: Duración (ms)
19
+ error: Error
20
+ finished_at: Finalizado el
21
+ mat_view_definition: Definición
22
+ meta: Metadatos
23
+ operation: Operación
24
+ row_count_after: Filas después
25
+ row_count_before: Filas antes
26
+ rows_before_after: Filas (antes/después)
27
+ started_at: Iniciado el
28
+ status: Estado
29
+ updated_at: Actualizado el
30
+ enums:
31
+ smriti/mat_view_definition:
32
+ refresh_strategy:
33
+ concurrent: Concurrente
34
+ regular: Regular
35
+ swap: Intercambio
36
+ smriti/mat_view_run:
37
+ operation:
38
+ create: Crear
39
+ drop: Eliminar
40
+ refresh: Actualizar
41
+ status:
42
+ failed: Fallido
43
+ running: En ejecución
44
+ success: Exitoso
45
+ errors:
46
+ models:
47
+ smriti/mat_view_definition:
48
+ attributes:
49
+ name:
50
+ blank: debe proporcionarse
51
+ invalid: no es un identificador válido de PostgreSQL
52
+ taken: debe ser único
53
+ sql:
54
+ blank: debe proporcionarse
55
+ invalid: debe comenzar con SELECT
56
+ unique_index_columns:
57
+ at_least_one: debe tener al menos una columna al usar la estrategia
58
+ de actualización concurrente
59
+ hints:
60
+ smriti/mat_view_definition:
61
+ dependencies: Lista separada por comas de tablas o vistas de las que depende
62
+ esta vista materializada.
63
+ name: Nombre de la vista materializada en la base de datos.
64
+ refresh_strategy: Determina cómo se actualiza la vista materializada.
65
+ schedule_cron: Utiliza el formato cron estándar. Déjalo vacío si no hay programación.
66
+ sql: La consulta SQL debe ser una instrucción SELECT válida.
67
+ unique_index_columns: Columnas para crear un índice único. Requerido para
68
+ actualización concurrente.
69
+ smriti/mat_view_run:
70
+ error: Mensaje de error si la ejecución falló.
71
+ meta: Metadatos adicionales en formato JSON.
72
+ operation: Tipo de operación realizada.
73
+ status: Estado actual de la ejecución.
74
+ models:
75
+ smriti/mat_view_definition: Definición de vista materializada
76
+ smriti/mat_view_run: Ejecución de vista materializada
77
+ placeholders:
78
+ smriti/mat_view_definition:
79
+ dependencies: Ingresa dependencias (separadas por comas, opcional)
80
+ name: Ingresa el nombre
81
+ refresh_strategy: Selecciona la estrategia de actualización
82
+ schedule_cron: 0 0 * * * para diario a medianoche, déjalo vacío si no se programa
83
+ sql: Ingresa SQL (SELECT ...)
84
+ unique_index_columns: Ingresa columnas de índice único (separadas por comas,
85
+ opcional)
86
+ smriti/mat_view_run:
87
+ error: Mensaje de error
88
+ mat_view_definition: Selecciona la vista materializada
89
+ meta: Metadatos (JSON)
90
+ operation: Selecciona la operación
91
+ status: Selecciona el estado
92
+ i18n:
93
+ name: Español
94
+ smriti:
95
+ actions: Acciones
96
+ cancel: Cancelar
97
+ close: Cerrar
98
+ close_window: Cerrar ventana
99
+ create: Crear
100
+ dashboard:
101
+ metrics:
102
+ title: Métricas
103
+ title: Panel de control
104
+ datatable:
105
+ clear_search_aria_label: Limpiar búsqueda
106
+ search_aria_label: Buscar en la tabla
107
+ search_placeholder: Buscar...
108
+ definition: Definición
109
+ definitions: Definiciones
110
+ delete: Eliminar
111
+ details: Detalles
112
+ edit: Editar
113
+ edit_var: Editar %{name}
114
+ errors:
115
+ frame_only: Esta acción solo puede realizarse en un marco; redirigido al panel.
116
+ prevented_saving:
117
+ few: "%{count} errores impidieron guardar:"
118
+ many: "%{count} errores impidieron guardar:"
119
+ one: '1 error impidió guardar:'
120
+ other: "%{count} errores impidieron guardar:"
121
+ two: '2 errores impidieron guardar:'
122
+ zero: "¡Sin errores, todo bien!"
123
+ filter_by: 'Filtrar por:'
124
+ footer:
125
+ copyright: "© %{year} %{company} Todos los derechos reservados."
126
+ documentation: Documentación
127
+ need_help: "¿Necesitas disponibilidad garantizada y ayuda experta?"
128
+ open_issue: Abrir un Issue
129
+ project_homepage: Página del proyecto
130
+ support: Obtén soporte profesional →
131
+ tagline: Construido con ❤️ por desarrolladores, para desarrolladores.
132
+ tooltip:
133
+ documentation: Leer la documentación
134
+ gem_version: Haz clic para visitar la página de RubyGems
135
+ open_issue: Reportar un bug o solicitar una funcionalidad
136
+ project_homepage: Repositorio de GitHub
137
+ support: Planes de soporte profesional
138
+ version: v%{version}
139
+ header:
140
+ signed_in_as: Conectado como %{email}
141
+ history: Historial
142
+ loading: Cargando...
143
+ loading_definitions: Cargando definiciones...
144
+ loading_runs: Cargando ejecuciones...
145
+ mat_view_definition:
146
+ create_mv: Crear Smriti
147
+ create_mv_tooltip: Crea la vista materializada en la base de datos.
148
+ delete_confirm: "¿Eliminar la definición %{name}? (NO elimina Smriti)"
149
+ delete_tooltip: Elimina la definición pero NO la vista materializada en la base
150
+ de datos.
151
+ drop_mv: Eliminar Smriti
152
+ drop_mv_cascade: Eliminar Smriti (en cascada)
153
+ drop_mv_cascade_confirm: "¿Eliminar la vista materializada y todos los objetos
154
+ dependientes de %{name}?"
155
+ drop_mv_cascade_tooltip: Elimina la vista materializada y todos los objetos
156
+ dependientes en la base de datos. La definición permanece.
157
+ drop_mv_confirm: "¿Eliminar la vista materializada de %{name}?"
158
+ drop_mv_tooltip: Elimina la vista materializada en la base de datos. La definición
159
+ permanece.
160
+ edit_tooltip: Editar la definición de la vista materializada.
161
+ materialized_view: Vista materializada
162
+ materialized_view_exists: La vista materializada existe
163
+ materialized_view_not_exists: "¡La vista materializada aún no se ha creado!"
164
+ new_definition: Nueva definición
165
+ new_definition_tooltip: Crear una nueva definición de vista materializada.
166
+ no_definitions: No se encontraron definiciones de vistas materializadas. Crea
167
+ una para comenzar.
168
+ no_definitions_if_filtered: No se encontraron definiciones de vistas materializadas
169
+ con los filtros o la búsqueda seleccionados.
170
+ refresh_tooltip: Actualiza la vista materializada en la base de datos.
171
+ sql_summary_tooltip: Haz clic para expandir/contraer el SQL
172
+ view_tooltip: Ver la definición de la vista materializada.
173
+ mat_view_run:
174
+ error_tooltip: Mensaje de error si la ejecución falló.
175
+ meta_tooltip: Metadatos adicionales en formato JSON.
176
+ no_runs: No se encontraron ejecuciones.
177
+ no_runs_if_filtered: No se encontraron ejecuciones para los filtros seleccionados.
178
+ view_details: Ver detalles
179
+ view_tooltip: Ver detalles de la ejecución.
180
+ no_filter: Cualquiera (sin filtro)
181
+ no_value: Sin valor (nil o vacío)
182
+ per_page: Por página
183
+ project_author: CodeVedas Inc.
184
+ project_description: Interfaz administrativa para gestionar vistas materializadas
185
+ de PostgreSQL en aplicaciones Rails.
186
+ project_tags: rails, ruby, materialized views, admin, dashboard, ui, interface,
187
+ management
188
+ refresh: Actualizar
189
+ refresh_contents: Actualizar contenido
190
+ reloading: Recargando...
191
+ reset: Restablecer
192
+ run: Ejecutar
193
+ runs: Ejecuciones
194
+ save_changes: Guardar cambios
195
+ settings:
196
+ auto: Automático
197
+ dark: Oscuro
198
+ language: Idioma
199
+ language_hint: Elige el idioma de la interfaz.
200
+ light: Claro
201
+ theme: Tema
202
+ theme_hint: Automático sigue la preferencia del sistema; claro y oscuro la sustituyen.
203
+ title: Preferencias
204
+ title: Administración de Smriti
205
+ view_var: Ver %{name}
206
+ x_miliseconds: "%{count} ms"
207
+ number:
208
+ format:
209
+ delimiter: " "
210
+ separator: ","
211
+ numbers:
212
+ eight: 8
213
+ five: 5
214
+ four: 4
215
+ nine: 9
216
+ one: 1
217
+ seven: 7
218
+ six: 6
219
+ three: 3
220
+ two: 2
221
+ zero: 0
222
+ time:
223
+ am: a. m.
224
+ formats:
225
+ datetime12hour: "%Y-%m-%d %I:%M:%S %p"
226
+ pm: p. m.