kirgudu_base 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/kirgudu_base/dynamicEvents.js +2 -1
  3. data/app/assets/javascripts/kirgudu_base/jquery.container-management.js +241 -0
  4. data/app/assets/javascripts/kirgudu_base/jquery.fancybox copia.js +2020 -0
  5. data/app/assets/javascripts/kirgudu_base/scripts_nrg.js +300 -383
  6. data/app/controllers/kirgudu_base/admin_controller.rb +1 -44
  7. data/app/controllers/kirgudu_base/application_controller.rb +135 -92
  8. data/app/controllers/kirgudu_base/cabinet_controller.rb +35 -35
  9. data/app/controllers/kirgudu_base/security/authentications_controller.rb +452 -0
  10. data/app/controllers/kirgudu_base/security/email_confirmations_controller.rb +46 -0
  11. data/app/helpers/kirgudu_base/application_helper.rb +25 -0
  12. data/app/helpers/kirgudu_base/authentication_form_builder.rb +76 -0
  13. data/app/helpers/kirgudu_base/controllers/{basic_actions_with_parent.rb → OLD_basic_actions.rb} +39 -54
  14. data/app/helpers/kirgudu_base/controllers/basic_actions.rb +967 -161
  15. data/app/helpers/kirgudu_base/controllers/container_items_management_actions.rb +118 -40
  16. data/app/helpers/kirgudu_base/controllers/container_items_sorting_actions.rb +2 -2
  17. data/app/helpers/kirgudu_base/controllers/dynamic_pages.rb +147 -11
  18. data/app/helpers/kirgudu_base/form_builder.rb +3 -1
  19. data/app/helpers/kirgudu_base/gui_helper.rb +10 -5
  20. data/app/helpers/kirgudu_base/models/exports.rb +122 -122
  21. data/app/helpers/kirgudu_base/models/scopes.rb +5 -0
  22. data/app/mailers/authentications_mailer.rb +53 -0
  23. data/app/models/kirgudu_base/base_model.rb +47 -14
  24. data/app/models/kirgudu_base/dynamic_pages/builder.rb +0 -8
  25. data/app/models/kirgudu_base/dynamic_pages/controller_link.rb +4 -1
  26. data/app/models/kirgudu_base/dynamic_pages/controller_link_builder.rb +2 -1
  27. data/app/models/kirgudu_base/dynamic_pages/controller_link_id.rb +6 -6
  28. data/app/models/kirgudu_base/dynamic_pages/controller_link_id_builder.rb +6 -6
  29. data/app/models/kirgudu_base/dynamic_pages/element.rb +4 -5
  30. data/app/models/kirgudu_base/dynamic_pages/entry_builder.rb +2 -2
  31. data/app/models/kirgudu_base/dynamic_pages/event_if_block_builder.rb +1 -1
  32. data/app/models/kirgudu_base/dynamic_pages/form_builder.rb +2 -2
  33. data/app/models/kirgudu_base/dynamic_pages/list.rb +2 -0
  34. data/app/models/kirgudu_base/dynamic_pages/list_builder.rb +7 -3
  35. data/app/models/kirgudu_base/dynamic_pages/management_settings.rb +30 -0
  36. data/app/models/kirgudu_base/dynamic_pages/management_settings_builder.rb +47 -0
  37. data/app/models/kirgudu_base/dynamic_pages/menu.rb +9 -5
  38. data/app/models/kirgudu_base/dynamic_pages/menu_builder.rb +8 -5
  39. data/app/models/kirgudu_base/dynamic_pages/menu_item.rb +22 -6
  40. data/app/models/kirgudu_base/dynamic_pages/menu_items_block_builder.rb +9 -4
  41. data/app/models/kirgudu_base/dynamic_pages/menu_section.rb +38 -0
  42. data/app/models/kirgudu_base/dynamic_pages/menu_section_builder.rb +36 -0
  43. data/app/models/kirgudu_base/dynamic_pages/page.rb +6 -2
  44. data/app/models/kirgudu_base/dynamic_pages/page_builder.rb +18 -0
  45. data/app/models/kirgudu_base/dynamic_pages/relation.rb +23 -0
  46. data/app/models/kirgudu_base/dynamic_pages/relation_builder.rb +35 -0
  47. data/app/models/kirgudu_base/dynamic_pages/sorting_settings.rb +31 -0
  48. data/app/models/kirgudu_base/dynamic_pages/sorting_settings_builder.rb +48 -0
  49. data/app/models/kirgudu_base/security/autheintication.rb +4 -0
  50. data/app/models/kirgudu_base/security/authentication.rb +6 -7
  51. data/app/models/kirgudu_base/security/email_confirmation.rb +7 -0
  52. data/app/models/kirgudu_base/security/restore_password_code.rb +5 -0
  53. data/app/models/kirgudu_base/security/user.rb +2 -0
  54. data/app/models/kirgudu_base/security.rb +6 -7
  55. data/app/models/kirgudu_base/settings/group.rb +22 -0
  56. data/app/models/kirgudu_base/settings/option.rb +44 -0
  57. data/app/models/kirgudu_base/settings/settings_manager.rb +69 -0
  58. data/app/models/kirgudu_base/settings/value.rb +36 -0
  59. data/app/views/admin_templates/default/admin/layouts/application.html.erb +6 -4
  60. data/app/views/admin_templates/default/admin/system/settings/groups/edit.html.erb +9 -9
  61. data/app/views/admin_templates/default/admin/system/settings/groups/new.html.erb +1 -1
  62. data/app/views/admin_templates/default/admin/system/settings/options/edit.html.erb +1 -1
  63. data/app/views/admin_templates/default/admin/system/settings/options/new.html.erb +1 -1
  64. data/app/views/admin_templates/default/admin/system/settings/values/edit.html.erb +1 -1
  65. data/app/views/admin_templates/default/admin/system/settings/values/new.html.erb +1 -1
  66. data/app/views/admin_templates/erp/admin/shared/_top_nav_bar.html.erb +1 -3
  67. data/app/views/admin_templates/erp/admin/shared/entry_edit_form_renderer.html.erb +1 -1
  68. data/app/views/admin_templates/erp/admin/shared/entry_new_form_renderer.html.erb +1 -1
  69. data/app/views/admin_templates/good/admin/layouts/OLD_application.html.erb +14 -14
  70. data/app/views/admin_templates/good/admin/layouts/application.html.erb +11 -113
  71. data/app/views/admin_templates/good/admin/shared/_left_menu.html.erb +74 -63
  72. data/app/views/admin_templates/good/{zapanel/files/New Adobe Photoshop Image 12.psd → admin/shared/_left_menu_item.html.erb} +0 -0
  73. data/app/views/admin_templates/good/admin/shared/_left_menu_section.html.erb +21 -0
  74. data/app/views/admin_templates/good/admin/shared/render_new_OLD.html.erb +90 -0
  75. data/app/views/admin_templates/good/admin/shared/renderer_edit.html.erb +44 -13
  76. data/app/views/admin_templates/good/admin/shared/renderer_edit_OLD.html.erb +106 -0
  77. data/app/views/admin_templates/good/admin/shared/renderer_entries_list.html.erb +39 -18
  78. data/app/views/admin_templates/good/admin/shared/renderer_entries_list_with_parent.html.erb +4 -4
  79. data/app/views/admin_templates/good/admin/shared/renderer_management.html.erb +164 -0
  80. data/app/views/admin_templates/good/admin/shared/renderer_new.html.erb +40 -10
  81. data/app/views/admin_templates/good/admin/shared/renderer_show.html.erb +170 -58
  82. data/app/views/admin_templates/good/admin/shared/renderer_show_OLD.html.erb +159 -0
  83. data/app/views/admin_templates/good/admin/shared/renderer_sorting.html.erb +30 -0
  84. data/app/views/admin_templates/good/kirgudu_base/authentications/login.html.erb +13 -13
  85. data/app/views/admin_templates/good/kirgudu_base/authentications/register.html.erb +1 -1
  86. data/app/views/admin_templates/good/kirgudu_base/old/login_page.html.erb +7 -7
  87. data/app/views/admin_templates/good_flexy/admin/layouts/application.html.erb +17 -16
  88. data/app/views/admin_templates/good_flexy/admin/shared/_left_menu.html.erb +7 -0
  89. data/app/views/admin_templates/good_flexy/admin/shared/renderer_entries_list.html.erb +25 -17
  90. data/app/views/admin_templates/good_flexy/admin/shared/renderer_form_edit.html.erb +34 -13
  91. data/app/views/admin_templates/good_flexy/admin/shared/renderer_form_new.html.erb +31 -10
  92. data/app/views/admin_templates/good_flexy/admin/shared/renderer_show.html.erb +67 -52
  93. data/config/locales/kirgudu_base.ru.yml +92 -0
  94. data/config/routes.rb +16 -16
  95. data/db/migrate/20140413134252_create_kirgudu_base_security_authentications.rb +15 -0
  96. data/db/migrate/20140413152144_create_kirgudu_base_security_email_confirmations.rb +17 -0
  97. data/db/migrate/20140413201121_add_confirmations_kirgudu_base_security_users.rb +14 -0
  98. data/db/migrate/20140415093106_create_kirgudu_base_security_restore_password_codes.rb +20 -0
  99. data/lib/kirgudu_base.rb +2 -2
  100. data/test/fixtures/kirgudu_base/kirgudu_base/security/autheintications.yml +11 -0
  101. data/test/fixtures/kirgudu_base/security/applications.yml +21 -0
  102. data/test/fixtures/kirgudu_base/security/autheintications.yml +11 -0
  103. data/test/fixtures/kirgudu_base/security/authentications.yml +11 -0
  104. data/test/fixtures/kirgudu_base/security/email_confirmations.yml +13 -0
  105. data/test/fixtures/kirgudu_base/security/restore_password_codes.yml +13 -0
  106. data/test/models/kirgudu_base/kirgudu_base/security/autheintication_test.rb +9 -0
  107. data/test/models/kirgudu_base/security/application_test.rb +9 -0
  108. data/test/models/kirgudu_base/security/autheintication_test.rb +9 -0
  109. data/test/models/kirgudu_base/security/authentication_test.rb +9 -0
  110. data/test/models/kirgudu_base/security/email_confirmation_test.rb +9 -0
  111. data/test/models/kirgudu_base/security/restore_password_code_test.rb +9 -0
  112. metadata +102 -79
  113. data/app/assets/javascripts/kirgudu_base/jquery.fancybox.pack.js +0 -45
  114. data/app/controllers/kirgudu_base/authentications_controller.rb +0 -157
  115. data/app/views/admin_templates/good/zapanel/404.html +0 -386
  116. data/app/views/admin_templates/good/zapanel/billing.html +0 -550
  117. data/app/views/admin_templates/good/zapanel/blank-page.html +0 -343
  118. data/app/views/admin_templates/good/zapanel/buttons.html +0 -1018
  119. data/app/views/admin_templates/good/zapanel/calendars.html +0 -451
  120. data/app/views/admin_templates/good/zapanel/cart.html +0 -522
  121. data/app/views/admin_templates/good/zapanel/charts.html +0 -611
  122. data/app/views/admin_templates/good/zapanel/collapse.html +0 -555
  123. data/app/views/admin_templates/good/zapanel/contact.php +0 -102
  124. data/app/views/admin_templates/good/zapanel/dashboard.html +0 -985
  125. data/app/views/admin_templates/good/zapanel/dashboard2.html +0 -1091
  126. data/app/views/admin_templates/good/zapanel/dashboard3.html +0 -1079
  127. data/app/views/admin_templates/good/zapanel/data/movies.json +0 -1
  128. data/app/views/admin_templates/good/zapanel/faq.html +0 -435
  129. data/app/views/admin_templates/good/zapanel/file-manager.html +0 -358
  130. data/app/views/admin_templates/good/zapanel/files/index.php +0 -0
  131. data/app/views/admin_templates/good/zapanel/font-awesome/less/bootstrap.less +0 -84
  132. data/app/views/admin_templates/good/zapanel/font-awesome/less/core.less +0 -129
  133. data/app/views/admin_templates/good/zapanel/font-awesome/less/extras.less +0 -93
  134. data/app/views/admin_templates/good/zapanel/font-awesome/less/font-awesome-ie7.less +0 -1953
  135. data/app/views/admin_templates/good/zapanel/font-awesome/less/font-awesome.less +0 -33
  136. data/app/views/admin_templates/good/zapanel/font-awesome/less/icons.less +0 -381
  137. data/app/views/admin_templates/good/zapanel/font-awesome/less/mixins.less +0 -48
  138. data/app/views/admin_templates/good/zapanel/font-awesome/less/path.less +0 -14
  139. data/app/views/admin_templates/good/zapanel/font-awesome/less/variables.less +0 -735
  140. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_bootstrap.scss +0 -84
  141. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_core.scss +0 -129
  142. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_extras.scss +0 -93
  143. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_icons.scss +0 -381
  144. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_mixins.scss +0 -48
  145. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_path.scss +0 -14
  146. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_variables.scss +0 -734
  147. data/app/views/admin_templates/good/zapanel/font-awesome/scss/font-awesome-ie7.scss +0 -1953
  148. data/app/views/admin_templates/good/zapanel/font-awesome/scss/font-awesome.scss +0 -33
  149. data/app/views/admin_templates/good/zapanel/form.html +0 -790
  150. data/app/views/admin_templates/good/zapanel/gallery.html +0 -392
  151. data/app/views/admin_templates/good/zapanel/grids.html +0 -574
  152. data/app/views/admin_templates/good/zapanel/hosting-dashboard.html +0 -448
  153. data/app/views/admin_templates/good/zapanel/icon.html +0 -722
  154. data/app/views/admin_templates/good/zapanel/inbox.html +0 -375
  155. data/app/views/admin_templates/good/zapanel/index.html +0 -48
  156. data/app/views/admin_templates/good/zapanel/invoice.html +0 -423
  157. data/app/views/admin_templates/good/zapanel/js/proxy/elFinderSupportVer1.js +0 -338
  158. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-close.png +0 -0
  159. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-next.png +0 -0
  160. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-prev.png +0 -0
  161. data/app/views/admin_templates/good/zapanel/notification.html +0 -400
  162. data/app/views/admin_templates/good/zapanel/order-recieved.html +0 -348
  163. data/app/views/admin_templates/good/zapanel/php/MySQLStorage.sql +0 -23
  164. data/app/views/admin_templates/good/zapanel/php/connector.php +0 -44
  165. data/app/views/admin_templates/good/zapanel/php/elFinder.class.php +0 -1103
  166. data/app/views/admin_templates/good/zapanel/php/elFinderConnector.class.php +0 -133
  167. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeDriver.class.php +0 -3370
  168. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeLocalFileSystem.class.php +0 -835
  169. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeMySQL.class.php +0 -896
  170. data/app/views/admin_templates/good/zapanel/php/mime.types +0 -512
  171. data/app/views/admin_templates/good/zapanel/price-table.html +0 -400
  172. data/app/views/admin_templates/good/zapanel/profile.html +0 -387
  173. data/app/views/admin_templates/good/zapanel/progressbar.html +0 -555
  174. data/app/views/admin_templates/good/zapanel/range-slider.html +0 -440
  175. data/app/views/admin_templates/good/zapanel/ribbon-grids.html +0 -491
  176. data/app/views/admin_templates/good/zapanel/sale-purchase-dashboard.html +0 -803
  177. data/app/views/admin_templates/good/zapanel/search.html +0 -370
  178. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-close.png +0 -0
  179. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-loading.gif +0 -0
  180. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-next.png +0 -0
  181. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-pause.png +0 -0
  182. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-play.png +0 -0
  183. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-playvideo.png +0 -0
  184. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-prev.png +0 -0
  185. data/app/views/admin_templates/good/zapanel/slider.html +0 -453
  186. data/app/views/admin_templates/good/zapanel/tables.html +0 -470
  187. data/app/views/admin_templates/good/zapanel/typography.html +0 -746
@@ -0,0 +1,30 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class ManagementSettings < ::KirguduBase::DynamicPages::Element
4
+
5
+ mergeable_attributes :item_class, :container_class, :entry_class, :container_id_property, :entry_id_property
6
+
7
+
8
+ validates_presence_of :item_class, :container_class, :entry_class, :container_id_property, :entry_id_property
9
+
10
+
11
+ def initialize(options = {})
12
+ self.name = nil
13
+ self.item_class = nil
14
+ self.container_class = nil
15
+ self.entry_class = nil
16
+ self.container_id_property = nil
17
+ self.entry_id_property = nil
18
+ super(options)
19
+ end
20
+
21
+ attr_accessor :name
22
+ attr_accessor :item_class
23
+ attr_accessor :container_class
24
+ attr_accessor :entry_class
25
+ attr_accessor :container_id_property
26
+ attr_accessor :entry_id_property
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,47 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class ManagementSettingsBuilder < ::KirguduBase::DynamicPages::Builder
4
+
5
+
6
+ def initialize(name, &block)
7
+ self.builder_options[:item_class] = nil
8
+ self.builder_options[:container_class] = nil
9
+ self.builder_options[:entry_class] = nil
10
+ self.builder_options[:container_id_property] = nil
11
+ self.builder_options[:entry_id_property] = nil
12
+
13
+ self.builder_options[:name] = name
14
+
15
+ super(&block)
16
+
17
+ end
18
+
19
+ def item_class(value)
20
+ self.builder_options[:item_class] = value
21
+ end
22
+
23
+ def container_class(value)
24
+ self.builder_options[:container_class] = value
25
+ end
26
+
27
+ def entry_class(value)
28
+ self.builder_options[:entry_class] = value
29
+ end
30
+
31
+ def container_id_property(value)
32
+ self.builder_options[:container_id_property] = value
33
+ end
34
+
35
+ def entry_id_property(value)
36
+ self.builder_options[:entry_id_property] = value
37
+ end
38
+
39
+
40
+ def to_element
41
+ element = ::KirguduBase::DynamicPages::ManagementSettings.new
42
+ self.build_element(element)
43
+ element
44
+ end
45
+ end
46
+ end
47
+ end
@@ -2,9 +2,9 @@ module KirguduBase
2
2
  module DynamicPages
3
3
  class Menu < ::KirguduBase::DynamicPages::Element
4
4
 
5
- mergeable_attributes :name, :is_ajax, :items
5
+ mergeable_attributes :name, :is_ajax, :elements
6
6
 
7
- fixable_attributes :items
7
+ fixable_attributes :elements
8
8
 
9
9
  validates_presence_of :name
10
10
 
@@ -12,14 +12,14 @@ module KirguduBase
12
12
 
13
13
  def initialize(options = {})
14
14
  self.is_ajax = :false
15
- self.items = nil
15
+ self.elements = nil
16
16
  self.name = nil
17
17
  super(options)
18
18
  end
19
19
 
20
20
 
21
21
  attr_accessor :is_ajax
22
- attr_accessor :items
22
+ attr_accessor :elements
23
23
  attr_accessor :name
24
24
 
25
25
 
@@ -27,11 +27,15 @@ module KirguduBase
27
27
  options ||= {}
28
28
  options.merge!({
29
29
  is_ajax: self.is_ajax == :true,
30
- items: self.itmes,
30
+ elements: self.elements,
31
31
  name: self.name
32
32
  })
33
33
  super(options)
34
34
  end
35
+
36
+ def items
37
+ elements
38
+ end
35
39
  end
36
40
  end
37
41
  end
@@ -6,7 +6,7 @@ module KirguduBase
6
6
 
7
7
  self.builder_options.merge!({
8
8
  is_ajax: :false,
9
- items: nil,
9
+ elements: nil,
10
10
  name: nil
11
11
  })
12
12
 
@@ -23,10 +23,13 @@ module KirguduBase
23
23
  end
24
24
 
25
25
  def items(&block)
26
- elements = ::KirguduBase::DynamicPages::MenuItemsBlockBuilder.new(&block).to_elements
27
- elements.each do |element|
28
- self.builder_options[:items] = [] unless self.builder_options[:items]
29
- self.builder_options[:items] << element
26
+ elements(&block)
27
+ end
28
+ def elements(&block)
29
+ self.builder_options[:elements] ||= []
30
+ elmnts = ::KirguduBase::DynamicPages::MenuItemsBlockBuilder.new(&block).to_elements
31
+ elmnts.each do |element|
32
+ self.builder_options[:elements] << element
30
33
  end
31
34
  end
32
35
 
@@ -6,7 +6,7 @@ module KirguduBase
6
6
  fixable_attributes :items, :controller_link
7
7
 
8
8
 
9
- #validates_presence_of :label
9
+ validates_presence_of :label
10
10
  #validates_presence_of :link, if: controller_link == nil
11
11
  validates_presence_of :target
12
12
  validates_inclusion_of :target, in: ::KirguduBase::DynamicPages::Enums::SUPPORTED_LINK_TARGETS, allow_nil: true
@@ -30,7 +30,6 @@ module KirguduBase
30
30
  attr_accessor :items
31
31
 
32
32
 
33
-
34
33
  def to_external_hash(options = {})
35
34
  options ||= {}
36
35
  options.merge!({
@@ -44,14 +43,31 @@ module KirguduBase
44
43
  end
45
44
 
46
45
 
47
- def build_url(kontroller_class, prms)
46
+ def build_url(controller, prms)
48
47
  if self.link
49
48
  self.link
50
49
  else
51
-
52
50
  link_ids = {}
53
- link_ids[self.controller_link.id.id_target] = prms[self.controller_link.id.id_source]
54
- self.controller_link.controller.to_url_for(self.controller_link.action, link_ids)
51
+ if self.controller_link.id
52
+ link_ids[self.controller_link.id.to] = prms[self.controller_link.id.from]
53
+ elsif self.controller_link.ids
54
+ self.controller_link.ids.each do |id|
55
+ link_ids[id.to] = prms[id.from]
56
+ end
57
+ else
58
+ prms.each_pair do |key, value|
59
+ link_ids[key] = value
60
+ end
61
+ end
62
+
63
+ kontroller_klass = nil
64
+ if self.controller_link.controller.is_a?(String)
65
+ kontroller_klass = eval(self.controller_link.controller)
66
+ else
67
+ kontroller_klass = self.controller_link.controller
68
+ end
69
+
70
+ kontroller_klass.to_url_for(self.controller_link.action, link_ids)
55
71
  end
56
72
  end
57
73
 
@@ -3,17 +3,22 @@ module KirguduBase
3
3
  class MenuItemsBlockBuilder < ::KirguduBase::DynamicPages::Builder
4
4
 
5
5
  def initialize(&block)
6
- @entries = []
6
+ self.builder_options[:elements] = []
7
7
  super(&block)
8
8
  end
9
9
 
10
10
  def menu_item(&block)
11
- @entries << ::KirguduBase::DynamicPages::MenuItemBuilder.new(&block).to_element
11
+ self.builder_options[:elements] << ::KirguduBase::DynamicPages::MenuItemBuilder.new(&block).to_element
12
+ end
13
+ def item(&block)
14
+ menu_item(&block)
15
+ end
16
+ def section(&block)
17
+ self.builder_options[:elements] << ::KirguduBase::DynamicPages::MenuSectionBuilder.new(&block).to_element
12
18
  end
13
-
14
19
 
15
20
  def to_elements
16
- @entries
21
+ self.builder_options[:elements]
17
22
  end
18
23
  end
19
24
  end
@@ -0,0 +1,38 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class MenuSection < ::KirguduBase::DynamicPages::PageElement
4
+
5
+ mergeable_attributes :label, :link, :target, :controller_link, :items
6
+ fixable_attributes :items, :controller_link
7
+
8
+
9
+ validates_presence_of :label
10
+
11
+ def initialize(options = {})
12
+
13
+ self.label = nil
14
+ self.items = nil
15
+
16
+ super(options)
17
+ end
18
+
19
+
20
+ attr_accessor :label
21
+ attr_accessor :items
22
+
23
+
24
+ def to_external_hash(options = {})
25
+ options ||= {}
26
+ options.merge!({
27
+ #url: self.url,
28
+ #data_format: self.data_format,
29
+ #http_method: self.http_method,
30
+ #label_property: self.label_property,
31
+ #value_property: self.value_property
32
+ })
33
+ super(options)
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,36 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class MenuSectionBuilder < ::KirguduBase::DynamicPages::PageElementBuilder
4
+
5
+ def initialize(&block)
6
+
7
+ self.builder_options.merge!({
8
+ label: nil,
9
+ items: nil
10
+ })
11
+
12
+ super(nil, &block)
13
+ end
14
+
15
+ def label(value)
16
+ self.builder_options[:label] = value
17
+ end
18
+
19
+ def items(&block)
20
+ elements = ::KirguduBase::DynamicPages::MenuItemsBlockBuilder.new(&block).to_elements
21
+
22
+ elements.each do |element|
23
+ self.builder_options[:items] = [] unless self.builder_options[:items]
24
+ self.builder_options[:items] << element
25
+ end
26
+ end
27
+
28
+ def to_element
29
+ element = ::KirguduBase::DynamicPages::MenuItem.new
30
+ self.build_element(element)
31
+ self.validate_generated_element(element)
32
+ element
33
+ end
34
+ end
35
+ end
36
+ end
@@ -2,9 +2,9 @@ module KirguduBase
2
2
  module DynamicPages
3
3
  class Page < ::KirguduBase::DynamicPages::Element
4
4
 
5
- mergeable_attributes :name, :forms, :lists, :entries, :tabs, :menus, :elements
5
+ mergeable_attributes :name, :forms, :lists, :entries, :tabs, :menus, :elements, :sortings, :managements
6
6
 
7
- fixable_attributes :forms, :lists, :entries, :tabs, :menus
7
+ fixable_attributes :forms, :lists, :entries, :tabs, :menus, :sortings, :managements
8
8
 
9
9
 
10
10
  validates_presence_of :name
@@ -17,6 +17,8 @@ module KirguduBase
17
17
  self.entries = nil
18
18
  self.menus = nil
19
19
  self.elements = nil
20
+ self.sortings = nil
21
+ self.managements = nil
20
22
 
21
23
  super(options)
22
24
  end
@@ -30,6 +32,8 @@ module KirguduBase
30
32
  attr_accessor :tabs
31
33
  attr_accessor :menus
32
34
  attr_accessor :elements
35
+ attr_accessor :managements
36
+ attr_accessor :sortings
33
37
 
34
38
  attr_accessor :kontroller_klass
35
39
 
@@ -11,6 +11,8 @@ module KirguduBase
11
11
  self.builder_options[:entries] = {}
12
12
  self.builder_options[:tabs] = {}
13
13
  self.builder_options[:menus] = {}
14
+ self.builder_options[:managements] = {}
15
+ self.builder_options[:sortings] = {}
14
16
  self.builder_options[:elements] = []
15
17
 
16
18
  super(&block)
@@ -50,6 +52,22 @@ module KirguduBase
50
52
  self.builder_options[:elements] << element
51
53
  end
52
54
 
55
+ def management(name, &block)
56
+ raise "Cannot create empty Management" unless block_given?
57
+ element = ::KirguduBase::DynamicPages::ManagementSettingsBuilder.new(name, &block).to_element
58
+ raise "Duplicate Management with name: #{element.name}" if self.builder_options[:managements][element.name]
59
+ self.builder_options[:managements][element.name] = element
60
+ self.builder_options[:elements] << element
61
+ end
62
+
63
+ def sorting(name, &block)
64
+ raise "Cannot create empty Sorting" unless block_given?
65
+ element = ::KirguduBase::DynamicPages::SortingSettingsBuilder.new(name, &block).to_element
66
+ raise "Duplicate Sorting with name: #{element.name}" if self.builder_options[:sortings][element.name]
67
+ self.builder_options[:sortings][element.name] = element
68
+ self.builder_options[:elements] << element
69
+ end
70
+
53
71
 
54
72
  def elements(&block)
55
73
  self.builder_options[:elements] = ::KirguduBase::DynamicPages::PageElementsBlockBuilder.new(&block).to_elements
@@ -0,0 +1,23 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class Relation < ::KirguduBase::DynamicPages::Element
4
+
5
+ mergeable_attributes :name, :page_param, :per_page_param
6
+
7
+
8
+ validates_presence_of :name
9
+
10
+ def initialize(options = {})
11
+ self.name = nil
12
+ self.page_param = nil
13
+ self.per_page_param = nil
14
+
15
+ super(options)
16
+ end
17
+
18
+ attr_accessor :name
19
+ attr_accessor :page_param
20
+ attr_accessor :per_page_param
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,35 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class RelationBuilder < ::KirguduBase::DynamicPages::Builder
4
+
5
+ def initialize(&block)
6
+
7
+ self.builder_options.merge!({
8
+ name: nil,
9
+ page_param: "page",
10
+ per_page_param: "per_page",
11
+ })
12
+ super(&block)
13
+ end
14
+
15
+ def name(value)
16
+ self.builder_options[:name] = value
17
+ end
18
+
19
+ def page_param(value)
20
+ self.builder_options[:page_param] = value
21
+ end
22
+
23
+ def per_page_param(value)
24
+ self.builder_options[:per_page_param] = value
25
+ end
26
+
27
+ def to_element
28
+ element = ::KirguduBase::DynamicPages::Relation.new
29
+ self.build_element(element)
30
+ self.validate_generated_element(element)
31
+ element
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class SortingSettings < ::KirguduBase::DynamicPages::Element
4
+
5
+ mergeable_attributes :item_class, :container_class, :entry_class, :container_id_property, :entry_id_property
6
+
7
+
8
+ validates_presence_of :item_class, :container_class, :entry_class, :container_id_property, :entry_id_property
9
+
10
+
11
+ def initialize(options = {})
12
+ self.name = nil
13
+ self.item_class = nil
14
+ self.container_class = nil
15
+ self.entry_class = nil
16
+ self.container_id_property = nil
17
+ self.entry_id_property = nil
18
+
19
+ super(options)
20
+ end
21
+
22
+ attr_accessor :name
23
+ attr_accessor :item_class
24
+ attr_accessor :container_class
25
+ attr_accessor :entry_class
26
+ attr_accessor :container_id_property
27
+ attr_accessor :entry_id_property
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,48 @@
1
+ module KirguduBase
2
+ module DynamicPages
3
+ class SortingSettingsBuilder < ::KirguduBase::DynamicPages::Builder
4
+
5
+
6
+ def initialize(name, &block)
7
+
8
+ self.builder_options[:name] = name
9
+
10
+ self.builder_options[:item_class] = nil
11
+ self.builder_options[:container_class] = nil
12
+ self.builder_options[:entry_class] = nil
13
+ self.builder_options[:container_id_property] = nil
14
+ self.builder_options[:entry_id_property] = nil
15
+
16
+ super(&block)
17
+
18
+ end
19
+
20
+ def item_class(value)
21
+ self.builder_options[:item_class] = value
22
+ end
23
+
24
+ def container_class(value)
25
+ self.builder_options[:container_class] = value
26
+ end
27
+
28
+ def entry_class(value)
29
+ self.builder_options[:entry_class] = value
30
+ end
31
+
32
+ def container_id_property(value)
33
+ self.builder_options[:container_id_property] = value
34
+ end
35
+
36
+ def entry_id_property(value)
37
+ self.builder_options[:entry_id_property] = value
38
+ end
39
+
40
+
41
+ def to_element
42
+ element = ::KirguduBase::DynamicPages::SortingSettings.new
43
+ self.build_element(element)
44
+ element
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,4 @@
1
+ module KirguduBase
2
+ class Security::Autheintication < ActiveRecord::Base
3
+ end
4
+ end
@@ -4,15 +4,14 @@ module KirguduBase
4
4
  module Security
5
5
  class Authentication < ::KirguduBase::BaseModel
6
6
 
7
+ validates_presence_of :user_id, :provider, :uid
8
+ validates_uniqueness_of :provider, scope: :user_id
9
+ validates_uniqueness_of :uid, scope: :provider
10
+
11
+
12
+
7
13
  include ::KirguduBase::Models::BasicProperties::User
8
14
 
9
- def provider_name
10
- if provider == 'open_id'
11
- "OpenID"
12
- else
13
- provider.titleize
14
- end
15
- end
16
15
  end
17
16
  end
18
17
  end
@@ -0,0 +1,7 @@
1
+ module KirguduBase
2
+ class Security::EmailConfirmation < ::KirguduBase::BaseModel
3
+ include ::KirguduBase::Models::BasicProperties::User
4
+
5
+
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module KirguduBase
2
+ class Security::RestorePasswordCode < ::KirguduBase::BaseModel
3
+ include ::KirguduBase::Models::BasicProperties::User
4
+ end
5
+ end
@@ -11,6 +11,8 @@ module KirguduBase
11
11
  validates_presence_of :password, only: [:create, :password_set]
12
12
  validates_confirmation_of :password, only: [:create, :password_set]
13
13
 
14
+ validates_as_email :email, allow_blank: true
15
+
14
16
  has_many :authentications, class_name: ::KirguduBase::Security::Authentication, foreign_key: :user_id, dependent: :destroy
15
17
 
16
18
  has_many :user_at_portals, class_name: ::KirguduBase::Common::PortalUser, foreign_key: :user_id, dependent: :destroy
@@ -1,8 +1,7 @@
1
- # -*- encoding : utf-8 -*-
2
1
  module KirguduBase
3
- module Security
4
- def self.table_name_prefix
5
- 'kirgudu_base_security_'
6
- end
7
- end
8
- end
2
+ module Security
3
+ def self.table_name_prefix
4
+ 'kirgudu_base_security_'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,22 @@
1
+ module KirguduBase
2
+ module Settings
3
+ class Group < ::KirguduBase::BaseModel
4
+
5
+ ########################################## RELATIONS ########################################
6
+
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+
9
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
10
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
11
+
12
+ has_many :options, class_name: ::System::Settings::Option, foreign_key: :group_id, dependent: :destroy
13
+ ########################################## VALIDATIONS #######################################
14
+
15
+ validates_presence_of :name
16
+ validates_uniqueness_of :name, case_sensitive: false
17
+
18
+ ######################################### SCOPES #############################################
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,44 @@
1
+ module KirguduBase
2
+ module Settings
3
+ class Option < ::KirguduBase::BaseModel
4
+ ########################################## RELATIONS ########################################
5
+
6
+ include ::KirguduBase::Models::BasicProperties::Portal
7
+
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
10
+
11
+
12
+ belongs_to :group, class_name: ::System::Settings::Group, foreign_key: :group_id
13
+ has_one :option_value, class_name: ::System::Settings::Value, foreign_key: :option_id
14
+
15
+ ########################################## VALIDATIONS #######################################
16
+
17
+ validates_presence_of :group_id, :name, :slug, :value_type, :sort_position
18
+ validates_uniqueness_of :name, :slug, scope: :group_id
19
+
20
+ ######################################### SCOPES #############################################
21
+
22
+ scope :with_search, lambda { |value|
23
+ if value
24
+ value = value.gsub("%", " ")
25
+ value_like = "%#{value}%"
26
+ where { (name.like value_like) }
27
+ end
28
+ }
29
+
30
+ def group_name
31
+ group.name if group
32
+ end
33
+
34
+ def value_type
35
+ ::Core::Common::DataType[self.value_type_id]
36
+ end
37
+
38
+ def data
39
+ ChupakabraTools::Convert.string_to_value(option_value.data, ::Core::Common::DataType.tag_by_id(value_type_id)) if option_value
40
+ end
41
+ end
42
+ end
43
+ end
44
+