coalla-cms 0.5.2.4 → 0.6.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile +1 -1
  3. data/app/assets/javascripts/admin/admin.js +233 -34
  4. data/app/assets/stylesheets/admin/admin.scss +1 -2
  5. data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +6242 -4
  6. data/app/assets/stylesheets/admin/vendor/token-input-bootstrap.scss +144 -0
  7. data/app/controllers/admin/autocomplete_controller.rb +3 -1
  8. data/app/controllers/admin/base_controller.rb +35 -0
  9. data/app/controllers/concerns/admin/editable_columns.rb +55 -0
  10. data/app/controllers/concerns/admin/sortable_columns.rb +16 -0
  11. data/app/controllers/{admin/sortable_controller.rb → concerns/admin/sortable_models.rb} +1 -5
  12. data/app/helpers/admin/alerts_helper.rb +31 -0
  13. data/app/helpers/admin/content_helper.rb +29 -0
  14. data/app/helpers/admin/form_helper.rb +50 -0
  15. data/app/helpers/admin/resource_helpers.rb +102 -0
  16. data/app/helpers/admin/search_helper.rb +44 -40
  17. data/app/helpers/admin/table_helper.rb +40 -0
  18. data/app/helpers/common_helper.rb +2 -2
  19. data/app/models/file_upload.rb +1 -1
  20. data/app/models/lookup.rb +1 -1
  21. data/app/models/site_meta_tags.rb +2 -2
  22. data/app/views/admin/common/_menu_section.haml +1 -1
  23. data/app/views/admin/common/_nested_fields_for.html.haml +10 -5
  24. data/app/views/admin/common/_nested_fields_for_element.html.haml +21 -5
  25. data/app/views/admin/common/_table_template.html.haml +26 -7
  26. data/app/views/admin/common/_upload_form.html.haml +2 -1
  27. data/app/views/admin/editable_columns/edit/_boolean.haml +2 -0
  28. data/app/views/admin/editable_columns/edit/_date.haml +2 -0
  29. data/app/views/admin/editable_columns/edit/_datetime.haml +3 -0
  30. data/app/views/admin/editable_columns/edit/_enumerize.haml +2 -0
  31. data/app/views/admin/editable_columns/edit/_string.haml +2 -0
  32. data/app/views/admin/editable_columns/edit/_text.haml +2 -0
  33. data/app/views/admin/editable_columns/edit/_time.haml +3 -0
  34. data/app/views/admin/editable_columns/edit_column.haml +8 -0
  35. data/app/views/admin/editable_columns/result/_boolean.haml +2 -0
  36. data/app/views/admin/editable_columns/result/_date.haml +1 -0
  37. data/app/views/admin/editable_columns/result/_datetime.haml +1 -0
  38. data/app/views/admin/editable_columns/result/_enumerize.haml +1 -0
  39. data/app/views/admin/editable_columns/result/_string.haml +1 -0
  40. data/app/views/admin/editable_columns/result/_text.haml +1 -0
  41. data/app/views/admin/editable_columns/result/_time.haml +1 -0
  42. data/app/views/admin/site_meta_tags/index.html.haml +2 -2
  43. data/app/views/layouts/admin.html.haml +12 -0
  44. data/app/views/structure/_section.haml +2 -9
  45. data/coalla-cms.gemspec +10 -11
  46. data/lib/coalla/builders/actions_column_definition.rb +44 -0
  47. data/lib/coalla/builders/admin_structure.rb +86 -0
  48. data/lib/coalla/builders/column_definition.rb +9 -0
  49. data/lib/coalla/builders/form_builder.rb +291 -0
  50. data/lib/coalla/builders/link_renderer.rb +43 -0
  51. data/lib/coalla/builders/policy.rb +30 -0
  52. data/lib/coalla/builders/table_builder.rb +99 -0
  53. data/lib/coalla/builders/table_formatter.rb +133 -0
  54. data/lib/coalla/builders/text_formatter.rb +22 -0
  55. data/lib/coalla/cms/engine.rb +3 -2
  56. data/lib/coalla/cms/version.rb +2 -2
  57. data/lib/coalla/ext/mapper.rb +7 -0
  58. data/lib/coalla/orm/{relation.rb → multi_field.rb} +7 -8
  59. data/lib/coalla/orm/page_slider.rb +2 -28
  60. data/lib/coalla/orm/sanitized.rb +1 -5
  61. data/lib/coalla/orm/sortable_association.rb +30 -0
  62. data/lib/coalla/uploaders/file_uploader.rb +9 -0
  63. data/lib/coalla/uploaders/image_uploader.rb +62 -0
  64. data/lib/coalla/uploaders/meta_image_uploader.rb +7 -0
  65. data/lib/coalla-cms.rb +10 -0
  66. data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +5 -7
  67. data/lib/generators/coalla/cms/create_admin_generator.rb +9 -7
  68. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +4 -6
  69. data/lib/generators/coalla/cms/create_markup_generator.rb +2 -2
  70. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +0 -17
  71. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +4 -7
  72. data/lib/generators/coalla/cms/image/install_generator.rb +0 -3
  73. data/lib/generators/coalla/cms/image/mount_generator.rb +0 -3
  74. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +1 -1
  75. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +1 -1
  76. data/lib/generators/coalla/cms/init_generator.rb +42 -49
  77. data/lib/generators/coalla/cms/lookups/install_generator.rb +0 -3
  78. data/lib/generators/coalla/cms/meta_tags/install_generator.rb +0 -2
  79. data/lib/generators/coalla/cms/scaffold_generator.rb +7 -7
  80. data/lib/generators/coalla/cms/setup_admin_generator.rb +9 -9
  81. data/lib/generators/coalla/cms/setup_routes_generator.rb +3 -3
  82. data/lib/generators/coalla/cms/slider/init_generator.rb +1 -3
  83. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +0 -1
  84. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +1 -1
  85. data/lib/generators/coalla/cms/templates/.gitignore +3 -3
  86. data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +2 -40
  87. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +0 -39
  88. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +0 -90
  89. data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +14 -1
  90. data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +1 -1
  91. data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +1 -1
  92. data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +5 -5
  93. data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +1 -1
  94. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +1 -1
  95. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +1 -1
  96. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +5 -5
  97. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +1 -1
  98. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +1 -1
  99. data/lib/generators/coalla/cms/utils/orm.rb +29 -0
  100. data/lib/generators/coalla/cms/utils/scaffold.rb +11 -0
  101. metadata +57 -100
  102. data/Gemfile.lock +0 -198
  103. data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +0 -126
  104. data/app/assets/stylesheets/admin/vendor/token-input.patched.css +0 -116
  105. data/app/controllers/admin/notifier_controller.rb +0 -7
  106. data/app/helpers/admin_helper.rb +0 -29
  107. data/app/helpers/nested_fields_helper.rb +0 -12
  108. data/app/helpers/static_text_formatter.rb +0 -25
  109. data/app/helpers/twitter_builder_helper.rb +0 -253
  110. data/app/helpers/twitter_form_builder.rb +0 -202
  111. data/app/uploaders/file_uploader.rb +0 -10
  112. data/app/uploaders/generic_image_uploader.rb +0 -75
  113. data/app/uploaders/meta_tags_image_uploader.rb +0 -5
  114. data/app/utils/admin_structure.rb +0 -82
  115. data/app/utils/bootstrap_link_renderer.rb +0 -40
  116. data/app/utils/table_helpers.rb +0 -196
  117. data/lib/generators/coalla/cms/market/install_generator.rb +0 -71
  118. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +0 -47
  119. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +0 -50
  120. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +0 -59
  121. data/lib/generators/coalla/cms/market/templates/market.rb +0 -5
  122. data/lib/generators/coalla/cms/market/templates/market.ru.yml +0 -53
  123. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +0 -15
  124. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +0 -18
  125. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +0 -18
  126. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +0 -11
  127. data/lib/generators/coalla/cms/market/templates/models/category.rb +0 -36
  128. data/lib/generators/coalla/cms/market/templates/models/product.rb +0 -16
  129. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +0 -14
  130. data/lib/generators/coalla/cms/market/templates/models/property.rb +0 -7
  131. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +0 -10
  132. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +0 -5
  133. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +0 -17
  134. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +0 -4
  135. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +0 -17
  136. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +0 -13
  137. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +0 -5
  138. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +0 -17
  139. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +0 -4
  140. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +0 -9
  141. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +0 -5
  142. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +0 -15
  143. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +0 -4
  144. data/lib/generators/coalla/cms/news/scaffold_generator.rb +0 -50
  145. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +0 -10
  146. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +0 -47
  147. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +0 -7
  148. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +0 -15
  149. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +0 -16
  150. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +0 -5
  151. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +0 -18
  152. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +0 -5
  153. data/lib/generators/coalla/cms/orm_helpers.rb +0 -31
  154. data/lib/generators/coalla/cms/scaffold_helper.rb +0 -11
  155. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +0 -35
  156. /data/{lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb → app/controllers/admin/home_controller.rb} +0 -0
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDA4NjRkYTA0YTY4ZmMyNzcwZWZjYjc2ZDkxNjkyYTY4YmZjOWExZg==
4
+ NDE4OTZlZWE2NzIwZjEzZTY1MmVkYjU2MjIxMjdjZTUxNjIzZmY2Yg==
5
5
  data.tar.gz: !binary |-
6
- ODgzMTI2ZjhjMTY2YmI4ZjE2NjlhYmIzZWIyYzRhNjgwYjUwYzAxMw==
6
+ YTMzYjQyOTE2NGUzMjEzZTVkNzQ3YTI4N2M4NWZlYmRlYmY3ZTIyMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGRlM2ZkMWE3NDRhNWNkYTU1MGY1MWE3ZmUzMGU2M2ZmYTkzMTA1YjIzODNj
10
- OGYxYTNiYzQ1MzEzNzMyMzY2ZjkzNzlhN2JkZjZjZDZkNDRjMjAxMjRhZWM0
11
- NzVmNWVlODBkNjllMTk2NjZmMzkzMjQyOTZlMzBmYTdlZDYxZDY=
9
+ MzAxNmMwNDM2ZGVmYzk4NmViYTY0YTNkZWZiNjU4NWFhZjY3Y2E1NmZkNmY0
10
+ ZmM0NzBkM2JhNzY0NzAzMGJjNzRkNTU3NzU2ZmFiYzFjODQzNjQ2YjMyZGE2
11
+ YmRlMTAzOTk0ZTBkMjgyMThkNWY2MDgzMjYwNjRmZGU1OTkxZGE=
12
12
  data.tar.gz: !binary |-
13
- NjIwNDVlYTU0ZThhZGE2NTRjNDI5NjUzNTgxZjA5NWE1YmMzOWIzNjNiMWI5
14
- MmM4MWJjNTJjMjkwYTNkN2UzNWMzZDVmOTExNGEyMjhiNDkzNzliNmVlZWI3
15
- YWNmZjc3NzQyMTdhYWZlODU3ZDZiZWI2ZWNlM2I3OGFhNTNhNTM=
13
+ MTBlM2UzNDNjODY1YjMwZTMwZWJmYTZhMjE3MDQ4MGM1ZWU3NGU4N2M3MzBi
14
+ MjYxZjQ4ZGM5MWU5Yzg5MDU4ZjE5MTA1MThiYjgyZDQzYzlhMzlkYzY4YWQ3
15
+ YTk1NjY2Mjg4NzE1MDY4OGQzY2U2YjA3OWMwMGE5MDFjOWJiMmE=
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in coalla-cms.gemspec
4
4
  gemspec
@@ -13,7 +13,6 @@
13
13
  //= require jquery
14
14
  //= require admin/jquery-migrate.min
15
15
  //= require jquery-ui
16
- //= require jquery-ui/datepicker-ru
17
16
  //= require jquery-ui-timepicker-addon
18
17
  //= require admin/vendor/jquery-ui-timepicker-addon-ru
19
18
  //= require jquery_ujs
@@ -104,31 +103,79 @@ $(function () {
104
103
 
105
104
  function addDatePickers() {
106
105
  $('input[data-calendar-date]').each(function () {
107
- $this = $(this);
106
+ var $this = $(this);
108
107
  $this.datepicker(merge_datepicker_options($this));
109
108
  });
110
109
  }
111
110
 
111
+ CMS.addDatePickers = addDatePickers;
112
+
112
113
  addDatePickers();
113
114
 
114
115
  function addDateTimePickers() {
115
116
  $('input[data-calendar-datetime]').each(function () {
116
- $this = $(this);
117
+ var $this = $(this);
117
118
  $this.datetimepicker(merge_datepicker_options($this));
118
119
  });
119
120
  }
120
121
 
122
+ CMS.addDateTimePickers = addDateTimePickers;
123
+
121
124
  addDateTimePickers();
122
125
 
123
126
  function addTimePickers() {
124
127
  $('input[data-calendar-time]').each(function () {
125
- $this = $(this);
128
+ var $this = $(this);
126
129
  $this.timepicker(merge_datepicker_options($this));
127
130
  });
128
131
  }
129
132
 
133
+ CMS.addTimePickers = addTimePickers;
134
+
130
135
  addTimePickers();
131
136
 
137
+ function addMultiField($container) {
138
+ var $el;
139
+
140
+ if ($container) {
141
+ $el = $container.find('[data-multi-field]');
142
+ } else {
143
+ $el = $('[data-multi-field]');
144
+ }
145
+
146
+ $el.each(function () {
147
+ var options = {
148
+ crossDomain: false,
149
+ preventDuplicates: true,
150
+ theme: 'bootstrap',
151
+ showAllOnFocus: $(this).data('show-all-on-focus'),
152
+ useCache: $(this).data('use-cache')
153
+ };
154
+
155
+ if (CMS.config.language == 'ru') {
156
+ options.hintText = 'Введите строку для поиска';
157
+ options.noResultsText = 'Ничего не найдено';
158
+ options.searchingText = 'Поиск...';
159
+ }
160
+
161
+ var objectUrlName = $(this).data('object-url-name');
162
+ if (objectUrlName) {
163
+ var formatter_options = {
164
+ tokenFormatter: function (item) {
165
+ return "<li><p><a href='" + "/admin/" + objectUrlName + "/" + item['id'] + "/edit'>" + item[this.propertyToSearch] + "</a></p></li>"
166
+ }
167
+ };
168
+ options = $.extend(options, formatter_options);
169
+ }
170
+
171
+ $(this).tokenInput($(this).data('source'), options);
172
+ });
173
+ }
174
+
175
+ CMS.addMultiField = addMultiField;
176
+
177
+ addMultiField();
178
+
132
179
  $(document).on('click', '.close-popover-form', function () {
133
180
  $('.pictograms__button_edit').popover('hide');
134
181
  $('.popover').css('display', 'none');
@@ -142,18 +189,83 @@ $(function () {
142
189
  $('.popover').css('display', 'none');
143
190
  });
144
191
 
192
+ function updateArrowButtons($context) {
193
+ $context = $context || $('body');
194
+
195
+ $context.find('[data-sort-up]').each(function () {
196
+ var $this = $(this),
197
+ $prev = $this.closest('.fields_container').prevAll('.fields_container:not(:hidden)').first();
198
+
199
+ if ($prev.length == 0) {
200
+ $this.hide();
201
+ } else {
202
+ $this.show();
203
+ }
204
+ });
205
+
206
+ $context.find('[data-sort-down]').each(function () {
207
+ var $this = $(this),
208
+ $next = $this.closest('.fields_container').nextAll('.fields_container:not(:hidden)').first();
209
+
210
+ if ($next.length == 0) {
211
+ $this.hide();
212
+ } else {
213
+ $this.show();
214
+ }
215
+ });
216
+
217
+ $context.find('[data-sort-position]').each(function () {
218
+ var $this = $(this),
219
+ $prevAll = $this.closest('.fields_container').prevAll('.fields_container:not(:hidden)');
220
+
221
+ $this.html($prevAll.length + 1);
222
+ });
223
+ }
224
+
225
+ CMS.updateArrowButtons = updateArrowButtons;
226
+
227
+ $(document).on('click', '[data-sort-up]', function () {
228
+ var $current = $(this).closest('.fields_container'),
229
+ $prev = $current.prevAll('.fields_container:not(:hidden)').first();
230
+
231
+
232
+ $prev.before($current);
233
+ $('html, body').animate({
234
+ scrollTop: $current.offset().top - 50
235
+ }, 300);
236
+ updateArrowButtons($current.closest('[data-sortable-blocks]'));
237
+
238
+ return false;
239
+ });
240
+
241
+ $(document).on('click', '[data-sort-down]', function () {
242
+ var $current = $(this).closest('.fields_container'),
243
+ $next = $current.nextAll('.fields_container:not(:hidden)').first();
244
+
245
+ $next.after($current);
246
+ $('html, body').animate({
247
+ scrollTop: $current.offset().top - 50
248
+ }, 300);
249
+ updateArrowButtons($current.closest('[data-sortable-blocks]'));
250
+
251
+ return false;
252
+ });
253
+
254
+ updateArrowButtons();
255
+
145
256
  var $form = $('form');
146
257
  $form.on('click', '.remove_field', function () {
147
- $(this).prev('input[type=hidden]').val('1');
258
+ $(this).closest('.fields_container').find('input[name*="_destroy"]').val('1');
148
259
  $(this).closest('.fields_container').hide();
260
+ updateArrowButtons($(this).closest('[data-sortable-blocks]'));
149
261
  return false;
150
262
  });
151
263
 
152
- $form.on('click', '.add_fields', function () {
264
+ CMS.addNestedFields = function ($el) {
153
265
  var time = new Date().getTime();
154
- var regexp = new RegExp($(this).data('id'), 'g');
155
- var wrapper = $(this).closest('.nested_buttons');
156
- var insertHtml = $( $(this).data('fields').replace(regexp, time) );
266
+ var regexp = new RegExp($el.data('id'), 'g');
267
+ var wrapper = $el.closest('.nested_buttons');
268
+ var insertHtml = $($el.data('fields').replace(regexp, time));
157
269
  wrapper.before(insertHtml);
158
270
  // fix for Bootstrap 3 dropdown components
159
271
  wrapper.removeClass('open');
@@ -164,35 +276,123 @@ $(function () {
164
276
  addDatePickers();
165
277
  addDateTimePickers();
166
278
  addTimePickers();
167
- return false;
279
+ addMultiField(insertHtml);
280
+ updateArrowButtons(insertHtml.closest('[data-sortable-blocks]'));
281
+
282
+ return insertHtml;
283
+ };
284
+
285
+ $form.on('click', '.add_fields', function () {
286
+ CMS.addNestedFields($(this));
287
+ return false
168
288
  });
169
289
 
170
- $('[data-multi-field]').each(function () {
171
- var options = {
172
- crossDomain: false,
173
- preventDuplicates: true,
174
- theme: 'facebook',
175
- showAllOnFocus: $(this).data('show-all-on-focus'),
176
- useCache: $(this).data('use-cache')
177
- };
290
+ $('[data-sortable-blocks]').sortable({
291
+ items: '.fields_container',
292
+ cancel: 'input,textarea,button,select,option,a',
293
+ stop: function (e, ui) {
294
+ var $context = $(e.target);
295
+ updateArrowButtons($context);
296
+ }
297
+ });
298
+
299
+ $(document).on('click', '[data-editable-column]', function () {
300
+ var $this = $(this),
301
+ url = $this.data('url');
178
302
 
179
- if (CMS.config.language == 'ru') {
180
- options.hintText = 'Введите строку для поиска';
181
- options.noResultsText = 'Ничего не найдено';
182
- options.searchingText = 'Поиск...';
303
+ if ($this.data('editable-column-initialized')) {
304
+ return;
183
305
  }
184
306
 
185
- var objectUrlName = $(this).data('object-url-name');
186
- if (objectUrlName) {
187
- var formatter_options = {
188
- tokenFormatter: function (item) {
189
- return "<li><p><a href='" + "/admin/" + objectUrlName + "/" + item['id'] + "/edit'>" + item[this.propertyToSearch] + "</a></p></li>"
190
- }
191
- };
192
- options = $.extend(options, formatter_options);
307
+ $.get(url, $this.data(), function (response) {
308
+ var $form = $(response.form);
309
+ $this.data('previous-value', $this.html());
310
+ $this.html($form);
311
+
312
+ window.EditableColumnCallbacks = window.EditableColumnCallbacks || [];
313
+ _.each(window.EditableColumnCallbacks, function (callback) {
314
+ callback($form);
315
+ });
316
+
317
+ addDatePickers();
318
+ addDateTimePickers();
319
+ addTimePickers();
320
+ addMultiField($form);
321
+
322
+ $this.data('editable-column-initialized', true);
323
+ }).error(function () {
324
+ console.error('Unable to render edit form for column');
325
+ });
326
+
327
+ return false;
328
+ });
329
+
330
+ $(document).on('ajax:success', '[data-editable-column-form]', function (e, response) {
331
+ var $editableColumn = $(this).closest('[data-editable-column]');
332
+
333
+ $('.alert').closest('.row').remove();
334
+
335
+ if (!response.alert) {
336
+ $editableColumn.html(response.result);
337
+ $editableColumn.data('previous-value', $editableColumn.html());
338
+ $editableColumn.data('editable-column-initialized', false);
339
+ return;
193
340
  }
194
341
 
195
- $(this).tokenInput($(this).data('source'), options);
342
+ $editableColumn.closest('.table-responsive').before(response.alert)
343
+ $editableColumn.html($editableColumn.data('previous-value'));
344
+ $editableColumn.data('editable-column-initialized', false);
345
+ });
346
+
347
+ function cancelEditColumn($el) {
348
+ var $editableColumn = $el.closest('[data-editable-column]');
349
+ $editableColumn.html($editableColumn.data('previous-value'));
350
+ $editableColumn.data('editable-column-initialized', false);
351
+ }
352
+
353
+ $(document).on('click', '[data-editable-column-cancel]', function () {
354
+ cancelEditColumn($(this));
355
+
356
+ return false;
357
+ });
358
+
359
+ $(document).on('ajax:error', '[data-editable-column-form]', function () {
360
+ cancelEditColumn($(this));
361
+
362
+ console.error('Unable to render edit form for column');
363
+ });
364
+
365
+ function showRemoteModal(url) {
366
+ var $modal = $('body').find('#modal');
367
+
368
+ $.get(url, function (response) {
369
+ var $modalContent = $(response.modal);
370
+
371
+ $modal.find('.modal-content').html($modalContent);
372
+ $modal.modal('show');
373
+
374
+ window.RemoteModalCallbacks = window.RemoteModalCallbacks || [];
375
+ _.each(window.RemoteModalCallbacks, function (callback) {
376
+ callback($modalContent);
377
+ });
378
+
379
+ addDatePickers();
380
+ addDateTimePickers();
381
+ addTimePickers();
382
+ addMultiField($modalContent);
383
+
384
+ return false;
385
+ });
386
+ };
387
+
388
+ CMS.showRemoteModal = showRemoteModal;
389
+
390
+ $(document).on('click', '[data-remote-modal]', function (e) {
391
+ var $el = $(this);
392
+
393
+ showRemoteModal($el.attr('href'));
394
+
395
+ return false;
196
396
  });
197
397
 
198
398
  $('.action-bar').stickyBar();
@@ -217,11 +417,10 @@ $(function () {
217
417
  return false;
218
418
  });
219
419
 
220
- $('[data-toggle="tooltip"]').tooltip({'trigger':'focus'});
221
-
420
+ $('[data-toggle="tooltip"]').tooltip({'trigger': 'focus'});
222
421
  });
223
422
 
224
423
  CKEDITOR.config.extraPlugins = 'slideshow,mediaembed,autogrow';
225
424
  CKEDITOR.config.removeButtons = 'About,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,BidiLtr,BidiRtl,Language,Scayt,Smiley,SpellChecker,Templates,Indent,CreateDiv,HorizontalRule,Flash,NewPage,PageBreak,Iframe,Styles,FontSize,Font,TextColor,BGColor,JustifyLeft,JustifyCenter,JustifyRight,JustifyBlock';
226
425
  CKEDITOR.config.removePlugins = 'scayt,smiley';
227
- CKEDITOR.config.language = 'ru';
426
+ CKEDITOR.config.language = CMS.config.language;
@@ -9,8 +9,7 @@
9
9
  * compiled file, but it's generally better to create a new file per style scope.
10
10
  *
11
11
  *= require admin/vendor/bootstrap.min
12
- *= require admin/vendor/token-input.patched
13
- *= require admin/vendor/token-input-facebook.patched
12
+ *= require admin/vendor/token-input-bootstrap
14
13
  *= require admin/vendor/jquery.tagsinput
15
14
  *= require jquery-ui
16
15
  *= require jquery-ui-timepicker-addon