anoubis 1.0.8 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/anoubis/application_controller.rb +5 -0
- data/app/controllers/anoubis/data/actions.rb +18 -27
- data/app/controllers/anoubis/data/convert.rb +31 -14
- data/app/controllers/anoubis/data_controller.rb +1 -0
- data/app/controllers/anoubis/etc/field.rb +7 -0
- data/app/models/anoubis/application_record.rb +53 -0
- data/config/locales/ru.yml +45 -45
- data/lib/anoubis/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca54a9f12fd045c1744271d6cf951da94061e002af8d32a1eb50e2616daeac75
|
4
|
+
data.tar.gz: e5dbe2556e68d9e2a6509dfca422237f94626b060006e40e319e649619b8be90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91436b864c0a61a4d66d510b5e1845c73e07857c40f3f93b06fc1c406fc7b5d3dc3e9c247cb26285f6746ac04da526bb9adb1a7bddfdf337492220756dbe1caa
|
7
|
+
data.tar.gz: 209eeb301e6bd66bf17617c7fb395ec4cb3d31cf48d838ee06adfdf67c23205e1e73d72a3d2c131bf775bcc2955fe7128de0f5a9e3c726eb7d427f5ce466ea85
|
@@ -14,6 +14,10 @@ class Anoubis::ApplicationController < ActionController::API
|
|
14
14
|
# @return [Anoubis::Output] standard output.
|
15
15
|
attr_accessor :output
|
16
16
|
|
17
|
+
# @!attribute [rw] exports
|
18
|
+
# @return [Anubis::Export] Export data class
|
19
|
+
attr_accessor :exports
|
20
|
+
|
17
21
|
##
|
18
22
|
# Returns default locale initialized in application configuration file. Variable is taken from {https://guides.rubyonrails.org/i18n.html Rails.configuration.i18n.default_locale} parameter
|
19
23
|
# @return [String] default locale
|
@@ -54,6 +58,7 @@ class Anoubis::ApplicationController < ActionController::API
|
|
54
58
|
self.locale = params[:locale] if params.has_key? :locale
|
55
59
|
self.locale = default_locale unless self.locale
|
56
60
|
self.locale = default_locale if self.locale == ''
|
61
|
+
self.exports = nil
|
57
62
|
begin
|
58
63
|
I18n.locale = locale
|
59
64
|
rescue
|
@@ -104,7 +104,7 @@ module Anoubis
|
|
104
104
|
self.after_get_table_data
|
105
105
|
self.before_output
|
106
106
|
|
107
|
-
render json: around_output(
|
107
|
+
render json: around_output(output.to_h)
|
108
108
|
end
|
109
109
|
|
110
110
|
##
|
@@ -193,7 +193,7 @@ module Anoubis
|
|
193
193
|
setup_frame
|
194
194
|
before_output
|
195
195
|
|
196
|
-
render json:
|
196
|
+
render json: around_output(output.to_h)
|
197
197
|
end
|
198
198
|
|
199
199
|
##
|
@@ -301,12 +301,11 @@ module Anoubis
|
|
301
301
|
end
|
302
302
|
if self.output.result == 0
|
303
303
|
self.output.title = I18n.t(format('%s.show.form.title', params[:controller].sub('/', '.')), title: self.output.values[:sys_title],
|
304
|
-
default: I18n.t('
|
304
|
+
default: I18n.t('anoubis.form.titles.show', title: self.output.values[:sys_title]))
|
305
305
|
end
|
306
306
|
self.before_output
|
307
|
-
|
308
|
-
|
309
|
-
end
|
307
|
+
|
308
|
+
render json: around_output(output.to_h)
|
310
309
|
end
|
311
310
|
|
312
311
|
##
|
@@ -405,14 +404,11 @@ module Anoubis
|
|
405
404
|
self.output.result = -1
|
406
405
|
end
|
407
406
|
if self.output.result == 0
|
408
|
-
self.output.title = I18n.t(format('%s.%s.form.title', params[:controller].sub('/', '.'), action), default: I18n.t('
|
407
|
+
self.output.title = I18n.t(format('%s.%s.form.title', params[:controller].sub('/', '.'), action), default: I18n.t('anoubis.form.titles.new'))
|
409
408
|
end
|
410
409
|
self.before_output
|
411
410
|
|
412
|
-
|
413
|
-
respond_to do |format|
|
414
|
-
format.json { render json: self.output.to_h }
|
415
|
-
end
|
411
|
+
render json: around_output(output.to_h)
|
416
412
|
end
|
417
413
|
|
418
414
|
##
|
@@ -533,9 +529,8 @@ module Anoubis
|
|
533
529
|
self.output.result = -2
|
534
530
|
end
|
535
531
|
self.before_output
|
536
|
-
|
537
|
-
|
538
|
-
end
|
532
|
+
|
533
|
+
render json: around_output(output.to_h)
|
539
534
|
end
|
540
535
|
|
541
536
|
##
|
@@ -647,12 +642,11 @@ module Anoubis
|
|
647
642
|
end
|
648
643
|
if self.output.result == 0
|
649
644
|
self.output.title = I18n.t(format('%s.edit.form.title', params[:controller].sub('/', '.')), title: self.output.values[:sys_title],
|
650
|
-
default: I18n.t('
|
645
|
+
default: I18n.t('anoubis.form.titles.edit', title: self.output.values[:sys_title]))
|
651
646
|
end
|
652
647
|
self.before_output
|
653
|
-
|
654
|
-
|
655
|
-
end
|
648
|
+
|
649
|
+
render json: around_output(output.to_h)
|
656
650
|
end
|
657
651
|
|
658
652
|
##
|
@@ -766,9 +760,8 @@ module Anoubis
|
|
766
760
|
self.output.result = -1
|
767
761
|
end
|
768
762
|
self.before_output
|
769
|
-
|
770
|
-
|
771
|
-
end
|
763
|
+
|
764
|
+
render json: around_output(output.to_h)
|
772
765
|
end
|
773
766
|
|
774
767
|
##
|
@@ -849,9 +842,8 @@ module Anoubis
|
|
849
842
|
self.output.result = -1
|
850
843
|
end
|
851
844
|
self.before_output
|
852
|
-
|
853
|
-
|
854
|
-
end
|
845
|
+
|
846
|
+
render json: around_output(output.to_h)
|
855
847
|
end
|
856
848
|
|
857
849
|
##
|
@@ -877,9 +869,8 @@ module Anoubis
|
|
877
869
|
end
|
878
870
|
end
|
879
871
|
self.before_output
|
880
|
-
|
881
|
-
|
882
|
-
end
|
872
|
+
|
873
|
+
render json: around_output(output.to_h)
|
883
874
|
end
|
884
875
|
|
885
876
|
##
|
@@ -143,12 +143,8 @@ module Anoubis
|
|
143
143
|
#puts value.class
|
144
144
|
if (value.class == Date) || (value.class == ActiveSupport::TimeWithZone)
|
145
145
|
begin
|
146
|
-
new_value =
|
147
|
-
|
148
|
-
when 'date' then value.day.to_s+' '+ I18n.t('anubis.months.second')[value.month-1]+' '+value.year.to_s
|
149
|
-
when 'datetime' then value.day.to_s+' '+ I18n.t('anubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)
|
150
|
-
else value.day.to_s+' '+ I18n.t('anubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
151
|
-
end
|
146
|
+
new_value = convert_datetime_to_string value, field.format
|
147
|
+
|
152
148
|
if %w[month date].include? field.format
|
153
149
|
raw_value = value.year.to_s + '-' + ('%02d' % value.month) + '-' + ('%02d' % value.day)
|
154
150
|
else
|
@@ -170,7 +166,28 @@ module Anoubis
|
|
170
166
|
return { key => new_value, format('%s_raw', key).to_sym => value }
|
171
167
|
end
|
172
168
|
|
169
|
+
##
|
170
|
+
# Convert value from database to view format for 'hash' type
|
171
|
+
# @param key [Symbol] field's identifier in {Anoubis::Etc::Data#fields self.etc.data.fields} structure
|
172
|
+
# @param value [String] value from database
|
173
|
+
# @return [Hash] returns text representation of database value
|
174
|
+
def convert_db_to_view_value_hash(key, value)
|
175
|
+
return { key => '' } if !value
|
176
|
+
return { key => value }
|
177
|
+
end
|
173
178
|
|
179
|
+
##
|
180
|
+
# Converts DateTime representation to string value
|
181
|
+
# @param value [DateTime] date and time
|
182
|
+
# @param format [String] convert representation ('month' - return only month and year, 'date' - returns only date, 'datetime' - returns date and time)
|
183
|
+
# @return Returns date and time representation string
|
184
|
+
def convert_datetime_to_string(value, format)
|
185
|
+
return I18n.t('anoubis.months.main')[value.month-1]+' '+value.year.to_s if format == 'month'
|
186
|
+
return value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s if format == 'date'
|
187
|
+
return value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min) if format == 'datetime'
|
188
|
+
|
189
|
+
value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
190
|
+
end
|
174
191
|
|
175
192
|
|
176
193
|
|
@@ -219,10 +236,10 @@ module Anoubis
|
|
219
236
|
def convert_db_to_table_value_datetime1(key, field, value)
|
220
237
|
begin
|
221
238
|
value = case field[:format]
|
222
|
-
when 'month' then I18n.t('months.main')[value.month-1]+' '+value.year.to_s
|
223
|
-
when 'date' then value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s
|
224
|
-
when 'datetime' then value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)
|
225
|
-
else value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
239
|
+
when 'month' then I18n.t('anoubis.months.main')[value.month-1]+' '+value.year.to_s
|
240
|
+
when 'date' then value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s
|
241
|
+
when 'datetime' then value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)
|
242
|
+
else value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
226
243
|
end
|
227
244
|
rescue
|
228
245
|
value = I18n.t('incorrect_field_format')
|
@@ -249,10 +266,10 @@ module Anoubis
|
|
249
266
|
def convert_db_to_table_value_datetime(key, field, value)
|
250
267
|
begin
|
251
268
|
value = case field[:format]
|
252
|
-
when 'month' then I18n.t('months.main')[value.month-1]+' '+value.year.to_s
|
253
|
-
when 'date' then value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s
|
254
|
-
when 'datetime' then value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)
|
255
|
-
else value.day.to_s+' '+ I18n.t('months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
269
|
+
when 'month' then I18n.t('anoubis.months.main')[value.month-1]+' '+value.year.to_s
|
270
|
+
when 'date' then value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s
|
271
|
+
when 'datetime' then value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)
|
272
|
+
else value.day.to_s+' '+ I18n.t('anoubis.months.second')[value.month-1]+' '+value.year.to_s+', '+value.hour.to_s+':'+('%02d' % value.min)+':'+('%02d' % value.sec)
|
256
273
|
end
|
257
274
|
rescue
|
258
275
|
value = I18n.t('incorrect_field_format')
|
@@ -10,6 +10,7 @@ require_dependency "anoubis/data/callbacks"
|
|
10
10
|
##
|
11
11
|
# Main data controller class
|
12
12
|
class Anoubis::DataController < Anoubis::ApplicationController
|
13
|
+
include ActionController::MimeResponds
|
13
14
|
include Anoubis::Data::Actions
|
14
15
|
include Anoubis::Data::Load
|
15
16
|
include Anoubis::Data::Get
|
@@ -152,6 +152,13 @@ module Anoubis
|
|
152
152
|
|
153
153
|
end
|
154
154
|
|
155
|
+
##
|
156
|
+
# Initialize additional parameters for {Anoubis::Etc::Field#type 'hash' field type} for controller actions.
|
157
|
+
# @param options [Hash] field's initial options
|
158
|
+
def initialize_hash (options)
|
159
|
+
|
160
|
+
end
|
161
|
+
|
155
162
|
##
|
156
163
|
# Initialize additional parameters for {Anoubis::Etc::Field#type 'number' field type} for controller actions.
|
157
164
|
# @param options [Hash] field's initial options
|
@@ -2,9 +2,29 @@
|
|
2
2
|
class Anoubis::ApplicationRecord < ActiveRecord::Base
|
3
3
|
self.abstract_class = true
|
4
4
|
|
5
|
+
after_initialize :initialize_anubis_application_record
|
6
|
+
|
5
7
|
## Redis database variable
|
6
8
|
attr_accessor :redis
|
7
9
|
|
10
|
+
# @!attribute [rw] need_refresh
|
11
|
+
# @return [Boolean] defines when table representation data should be updated even after simple update
|
12
|
+
attr_accessor :need_refresh
|
13
|
+
|
14
|
+
##
|
15
|
+
# Fires after ApplicationRecord initialized for define default values
|
16
|
+
def initialize_anubis_application_record
|
17
|
+
self.need_refresh = false
|
18
|
+
|
19
|
+
after_initialize_anubis_application_record
|
20
|
+
end
|
21
|
+
|
22
|
+
##
|
23
|
+
# Fires after initialize default variables
|
24
|
+
def after_initialize_anubis_application_record
|
25
|
+
|
26
|
+
end
|
27
|
+
|
8
28
|
##
|
9
29
|
# Returns {https://github.com/redis/redis-rb Redis database} class
|
10
30
|
# @return [Class] {https://github.com/redis/redis-rb Redis} class reference
|
@@ -130,4 +150,37 @@ class Anoubis::ApplicationRecord < ActiveRecord::Base
|
|
130
150
|
def sys_title
|
131
151
|
id.to_s
|
132
152
|
end
|
153
|
+
|
154
|
+
##
|
155
|
+
# Returns the ability to create new data. By default all items may be deleted. For another result
|
156
|
+
# procedure should be overridden.
|
157
|
+
# @param args [Hash] transferred parameters
|
158
|
+
# @option args [String] :controller Called controller identifier
|
159
|
+
# @option args [String] :tab Called controller tab element
|
160
|
+
# @return [Boolean] true if new data may be created.
|
161
|
+
def can_new(args = {})
|
162
|
+
true
|
163
|
+
end
|
164
|
+
|
165
|
+
##
|
166
|
+
# Returns the ability to edit the data. By default all items may be edited. For another result
|
167
|
+
# procedure should be overridden.
|
168
|
+
# @param args [Hash] transferred parameters
|
169
|
+
# @option args [String] :controller Called controller identifier
|
170
|
+
# @option args [String] :tab Called controller tab element
|
171
|
+
# @return [Boolean] true if data may be edited
|
172
|
+
def can_edit(args = {})
|
173
|
+
true
|
174
|
+
end
|
175
|
+
|
176
|
+
##
|
177
|
+
# Returns the ability to delete a data. By default all items may be deleted. For another result
|
178
|
+
# procedure should be overridden.
|
179
|
+
# @param args [Hash] transferred parameters
|
180
|
+
# @option args [String] :controller Called controller identifier
|
181
|
+
# @option args [String] :tab Called controller tab element
|
182
|
+
# @return [Boolean] true if data may be deleted
|
183
|
+
def can_delete(args = {})
|
184
|
+
true
|
185
|
+
end
|
133
186
|
end
|
data/config/locales/ru.yml
CHANGED
@@ -52,6 +52,51 @@ ru:
|
|
52
52
|
title: "Дашборд"
|
53
53
|
page_title: "Дашборд"
|
54
54
|
short_title: "Дашборд"
|
55
|
+
form:
|
56
|
+
titles:
|
57
|
+
edit: "Редактирование элемента: %{title}"
|
58
|
+
show: "Просмотр элемента: %{title}"
|
59
|
+
new: "Добавление нового элемента"
|
60
|
+
months:
|
61
|
+
main:
|
62
|
+
- "Январь"
|
63
|
+
- "Февраль"
|
64
|
+
- "Март"
|
65
|
+
- "Апрель"
|
66
|
+
- "Май"
|
67
|
+
- "Июнь"
|
68
|
+
- "Июль"
|
69
|
+
- "Август"
|
70
|
+
- "Сентябрь"
|
71
|
+
- "Октябрь"
|
72
|
+
- "Ноябрь"
|
73
|
+
- "Декабрь"
|
74
|
+
second:
|
75
|
+
- "Января"
|
76
|
+
- "Февраля"
|
77
|
+
- "Марта"
|
78
|
+
- "Апреля"
|
79
|
+
- "Мая"
|
80
|
+
- "Июня"
|
81
|
+
- "Июля"
|
82
|
+
- "Августа"
|
83
|
+
- "Сентября"
|
84
|
+
- "Октября"
|
85
|
+
- "Ноября"
|
86
|
+
- "Декабря"
|
87
|
+
short:
|
88
|
+
- "янв"
|
89
|
+
- "фев"
|
90
|
+
- "мар"
|
91
|
+
- "апр"
|
92
|
+
- "май"
|
93
|
+
- "июн"
|
94
|
+
- "июл"
|
95
|
+
- "авг"
|
96
|
+
- "сен"
|
97
|
+
- "окт"
|
98
|
+
- "ноя"
|
99
|
+
- "дек"
|
55
100
|
|
56
101
|
|
57
102
|
|
@@ -69,46 +114,6 @@ ru:
|
|
69
114
|
error_changing_data: Ошибка изменения данных
|
70
115
|
|
71
116
|
|
72
|
-
months:
|
73
|
-
main:
|
74
|
-
- Январь
|
75
|
-
- Февраль
|
76
|
-
- Март
|
77
|
-
- Апрель
|
78
|
-
- Май
|
79
|
-
- Июнь
|
80
|
-
- Июль
|
81
|
-
- Август
|
82
|
-
- Сентябрь
|
83
|
-
- Октябрь
|
84
|
-
- Ноябрь
|
85
|
-
- Декабрь
|
86
|
-
second:
|
87
|
-
- Января
|
88
|
-
- Февраля
|
89
|
-
- Марта
|
90
|
-
- Апреля
|
91
|
-
- Мая
|
92
|
-
- Июня
|
93
|
-
- Июля
|
94
|
-
- Августа
|
95
|
-
- Сентября
|
96
|
-
- Октября
|
97
|
-
- Ноября
|
98
|
-
- Декабря
|
99
|
-
short:
|
100
|
-
- янв
|
101
|
-
- фев
|
102
|
-
- мар
|
103
|
-
- апр
|
104
|
-
- май
|
105
|
-
- июн
|
106
|
-
- июл
|
107
|
-
- авг
|
108
|
-
- сен
|
109
|
-
- окт
|
110
|
-
- ноя
|
111
|
-
- дек
|
112
117
|
install2:
|
113
118
|
groups:
|
114
119
|
admin: Администраторы
|
@@ -123,11 +128,6 @@ ru:
|
|
123
128
|
buttons:
|
124
129
|
edit: "Редактировать: %{title}"
|
125
130
|
delete: "Удалить: %{title}"
|
126
|
-
form:
|
127
|
-
titles:
|
128
|
-
edit: "Редактирование элемента: %{title}"
|
129
|
-
show: "Просмотр элемента: %{title}"
|
130
|
-
new: "Добавление нового элемента"
|
131
131
|
|
132
132
|
tenants:
|
133
133
|
errors:
|
data/lib/anoubis/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anoubis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Ryabov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -321,7 +321,7 @@ metadata:
|
|
321
321
|
homepage_uri: https://github.com/RA-Company/
|
322
322
|
source_code_uri: https://github.com/RA-Company/anoubis
|
323
323
|
changelog_uri: https://github.com/RA-Company/anoubis/blob/main/CHANGELOG.md
|
324
|
-
documentation_uri: https://www.rubydoc.info/gems/anoubis/1.0.
|
324
|
+
documentation_uri: https://www.rubydoc.info/gems/anoubis/1.0.12
|
325
325
|
post_install_message:
|
326
326
|
rdoc_options: []
|
327
327
|
require_paths:
|