coalla-cms 0.5.1.8 → 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 +13 -5
  2. data/Gemfile +1 -1
  3. data/app/assets/javascripts/admin/admin.js +236 -33
  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/{lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb → app/controllers/admin/home_controller.rb} +0 -0
  10. data/app/controllers/concerns/admin/editable_columns.rb +55 -0
  11. data/app/controllers/concerns/admin/sortable_columns.rb +16 -0
  12. data/app/controllers/{admin/sortable_controller.rb → concerns/admin/sortable_models.rb} +1 -5
  13. data/app/helpers/admin/alerts_helper.rb +31 -0
  14. data/app/helpers/admin/content_helper.rb +29 -0
  15. data/app/helpers/admin/form_helper.rb +50 -0
  16. data/app/helpers/admin/resource_helpers.rb +102 -0
  17. data/app/helpers/admin/search_helper.rb +44 -40
  18. data/app/helpers/admin/table_helper.rb +40 -0
  19. data/app/helpers/common_helper.rb +2 -2
  20. data/app/models/file_upload.rb +1 -1
  21. data/app/models/lookup.rb +1 -1
  22. data/app/models/site_meta_tags.rb +2 -2
  23. data/app/views/admin/common/_menu_section.haml +1 -1
  24. data/app/views/admin/common/_nested_fields_for.html.haml +10 -4
  25. data/app/views/admin/common/_nested_fields_for_element.html.haml +21 -5
  26. data/app/views/admin/common/_table_template.html.haml +26 -7
  27. data/app/views/admin/common/_upload_form.html.haml +2 -1
  28. data/app/views/admin/editable_columns/edit/_boolean.haml +2 -0
  29. data/app/views/admin/editable_columns/edit/_date.haml +2 -0
  30. data/app/views/admin/editable_columns/edit/_datetime.haml +3 -0
  31. data/app/views/admin/editable_columns/edit/_enumerize.haml +2 -0
  32. data/app/views/admin/editable_columns/edit/_string.haml +2 -0
  33. data/app/views/admin/editable_columns/edit/_text.haml +2 -0
  34. data/app/views/admin/editable_columns/edit/_time.haml +3 -0
  35. data/app/views/admin/editable_columns/edit_column.haml +8 -0
  36. data/app/views/admin/editable_columns/result/_boolean.haml +2 -0
  37. data/app/views/admin/editable_columns/result/_date.haml +1 -0
  38. data/app/views/admin/editable_columns/result/_datetime.haml +1 -0
  39. data/app/views/admin/editable_columns/result/_enumerize.haml +1 -0
  40. data/app/views/admin/editable_columns/result/_string.haml +1 -0
  41. data/app/views/admin/editable_columns/result/_text.haml +1 -0
  42. data/app/views/admin/editable_columns/result/_time.haml +1 -0
  43. data/app/views/admin/site_meta_tags/index.html.haml +2 -2
  44. data/app/views/layouts/admin.html.haml +12 -0
  45. data/app/views/structure/_section.haml +2 -9
  46. data/coalla-cms.gemspec +10 -11
  47. data/lib/coalla/builders/actions_column_definition.rb +44 -0
  48. data/lib/coalla/builders/admin_structure.rb +86 -0
  49. data/lib/coalla/builders/column_definition.rb +9 -0
  50. data/lib/coalla/builders/form_builder.rb +291 -0
  51. data/lib/coalla/builders/link_renderer.rb +43 -0
  52. data/lib/coalla/builders/policy.rb +30 -0
  53. data/lib/coalla/builders/table_builder.rb +99 -0
  54. data/lib/coalla/builders/table_formatter.rb +133 -0
  55. data/lib/coalla/builders/text_formatter.rb +22 -0
  56. data/lib/coalla/cms/engine.rb +3 -2
  57. data/lib/coalla/cms/version.rb +2 -2
  58. data/lib/coalla/ext/mapper.rb +7 -0
  59. data/lib/coalla/orm/{relation.rb → multi_field.rb} +7 -8
  60. data/lib/coalla/orm/page_slider.rb +2 -28
  61. data/lib/coalla/orm/sanitized.rb +1 -5
  62. data/lib/coalla/orm/sortable_association.rb +30 -0
  63. data/lib/coalla/uploaders/file_uploader.rb +9 -0
  64. data/lib/coalla/uploaders/image_uploader.rb +62 -0
  65. data/lib/coalla/uploaders/meta_image_uploader.rb +7 -0
  66. data/lib/coalla-cms.rb +10 -0
  67. data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +5 -7
  68. data/lib/generators/coalla/cms/create_admin_generator.rb +9 -7
  69. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +4 -6
  70. data/lib/generators/coalla/cms/create_markup_generator.rb +2 -2
  71. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +0 -17
  72. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +4 -7
  73. data/lib/generators/coalla/cms/image/install_generator.rb +0 -3
  74. data/lib/generators/coalla/cms/image/mount_generator.rb +0 -3
  75. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +1 -1
  76. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +1 -1
  77. data/lib/generators/coalla/cms/init_generator.rb +42 -49
  78. data/lib/generators/coalla/cms/lookups/install_generator.rb +0 -3
  79. data/lib/generators/coalla/cms/meta_tags/install_generator.rb +0 -2
  80. data/lib/generators/coalla/cms/scaffold_generator.rb +7 -7
  81. data/lib/generators/coalla/cms/setup_admin_generator.rb +9 -9
  82. data/lib/generators/coalla/cms/setup_routes_generator.rb +3 -3
  83. data/lib/generators/coalla/cms/slider/init_generator.rb +1 -3
  84. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +0 -1
  85. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +1 -1
  86. data/lib/generators/coalla/cms/templates/.gitignore +3 -3
  87. data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +2 -40
  88. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +0 -39
  89. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +0 -90
  90. data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +14 -1
  91. data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +1 -1
  92. data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +1 -1
  93. data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +5 -5
  94. data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +1 -1
  95. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +1 -1
  96. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +1 -1
  97. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +5 -5
  98. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +1 -1
  99. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +1 -1
  100. data/lib/generators/coalla/cms/utils/orm.rb +29 -0
  101. data/lib/generators/coalla/cms/utils/scaffold.rb +11 -0
  102. metadata +97 -140
  103. data/Gemfile.lock +0 -198
  104. data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +0 -126
  105. data/app/assets/stylesheets/admin/vendor/token-input.patched.css +0 -116
  106. data/app/controllers/admin/notifier_controller.rb +0 -7
  107. data/app/helpers/admin_helper.rb +0 -29
  108. data/app/helpers/nested_fields_helper.rb +0 -12
  109. data/app/helpers/static_text_formatter.rb +0 -25
  110. data/app/helpers/twitter_builder_helper.rb +0 -253
  111. data/app/helpers/twitter_form_builder.rb +0 -202
  112. data/app/uploaders/file_uploader.rb +0 -10
  113. data/app/uploaders/generic_image_uploader.rb +0 -74
  114. data/app/uploaders/meta_tags_image_uploader.rb +0 -5
  115. data/app/utils/admin_structure.rb +0 -82
  116. data/app/utils/bootstrap_link_renderer.rb +0 -40
  117. data/app/utils/table_helpers.rb +0 -196
  118. data/lib/generators/coalla/cms/market/install_generator.rb +0 -71
  119. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +0 -47
  120. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +0 -50
  121. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +0 -59
  122. data/lib/generators/coalla/cms/market/templates/market.rb +0 -5
  123. data/lib/generators/coalla/cms/market/templates/market.ru.yml +0 -53
  124. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +0 -15
  125. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +0 -18
  126. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +0 -18
  127. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +0 -11
  128. data/lib/generators/coalla/cms/market/templates/models/category.rb +0 -36
  129. data/lib/generators/coalla/cms/market/templates/models/product.rb +0 -16
  130. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +0 -14
  131. data/lib/generators/coalla/cms/market/templates/models/property.rb +0 -7
  132. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +0 -10
  133. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +0 -5
  134. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +0 -17
  135. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +0 -4
  136. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +0 -17
  137. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +0 -13
  138. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +0 -5
  139. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +0 -17
  140. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +0 -4
  141. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +0 -9
  142. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +0 -5
  143. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +0 -15
  144. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +0 -4
  145. data/lib/generators/coalla/cms/news/scaffold_generator.rb +0 -50
  146. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +0 -10
  147. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +0 -47
  148. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +0 -7
  149. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +0 -15
  150. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +0 -16
  151. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +0 -5
  152. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +0 -18
  153. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +0 -5
  154. data/lib/generators/coalla/cms/orm_helpers.rb +0 -31
  155. data/lib/generators/coalla/cms/scaffold_helper.rb +0 -11
  156. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +0 -35
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3ea912539c00f313d59137bee6720ad2b56226c0
4
- data.tar.gz: 2b20f789b498be99e49cf3631255f56a3fb5375a
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDE4OTZlZWE2NzIwZjEzZTY1MmVkYjU2MjIxMjdjZTUxNjIzZmY2Yg==
5
+ data.tar.gz: !binary |-
6
+ YTMzYjQyOTE2NGUzMjEzZTVkNzQ3YTI4N2M4NWZlYmRlYmY3ZTIyMg==
5
7
  SHA512:
6
- metadata.gz: f3bd14c67d93811762a1edc5d795bc2751b38621e919cec4414b8b632379276c1d012c64f3feddc829b59a2a10a4989e6c42498d7f60f1a4b9db0413f1e7c75c
7
- data.tar.gz: 4de587dbe7011f1a380b9f9a45743fbaab1759a7072e42e4bcda34eb18baac4d66b1983b1a11baafa420e2a8bc122f07af988833d9481dfec38f13c71aa22d5e
8
+ metadata.gz: !binary |-
9
+ MzAxNmMwNDM2ZGVmYzk4NmViYTY0YTNkZWZiNjU4NWFhZjY3Y2E1NmZkNmY0
10
+ ZmM0NzBkM2JhNzY0NzAzMGJjNzRkNTU3NzU2ZmFiYzFjODQzNjQ2YjMyZGE2
11
+ YmRlMTAzOTk0ZTBkMjgyMThkNWY2MDgzMjYwNjRmZGU1OTkxZGE=
12
+ data.tar.gz: !binary |-
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,53 +189,210 @@ $(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
- $(this).before($(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));
269
+ wrapper.before(insertHtml);
270
+ // fix for Bootstrap 3 dropdown components
271
+ wrapper.removeClass('open');
156
272
  window.NestedFormCallbacks = window.NestedFormCallbacks || [];
157
273
  _.each(window.NestedFormCallbacks, function (callback) {
158
- callback();
274
+ callback(insertHtml);
159
275
  });
160
276
  addDatePickers();
161
277
  addDateTimePickers();
162
278
  addTimePickers();
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));
163
287
  return false
164
288
  });
165
289
 
166
- $('[data-multi-field]').each(function () {
167
- var options = {
168
- crossDomain: false,
169
- preventDuplicates: true,
170
- theme: 'facebook',
171
- showAllOnFocus: $(this).data('show-all-on-focus'),
172
- useCache: $(this).data('use-cache')
173
- };
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');
174
302
 
175
- if (CMS.config.language == 'ru') {
176
- options.hintText = 'Введите строку для поиска';
177
- options.noResultsText = 'Ничего не найдено';
178
- options.searchingText = 'Поиск...';
303
+ if ($this.data('editable-column-initialized')) {
304
+ return;
179
305
  }
180
306
 
181
- var objectUrlName = $(this).data('object-url-name');
182
- if (objectUrlName) {
183
- var formatter_options = {
184
- tokenFormatter: function (item) {
185
- return "<li><p><a href='" + "/admin/" + objectUrlName + "/" + item['id'] + "/edit'>" + item[this.propertyToSearch] + "</a></p></li>"
186
- }
187
- };
188
- 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;
189
340
  }
190
341
 
191
- $(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;
192
396
  });
193
397
 
194
398
  $('.action-bar').stickyBar();
@@ -213,11 +417,10 @@ $(function () {
213
417
  return false;
214
418
  });
215
419
 
216
- $('[data-toggle="tooltip"]').tooltip({'trigger':'focus'});
217
-
420
+ $('[data-toggle="tooltip"]').tooltip({'trigger': 'focus'});
218
421
  });
219
422
 
220
423
  CKEDITOR.config.extraPlugins = 'slideshow,mediaembed,autogrow';
221
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';
222
425
  CKEDITOR.config.removePlugins = 'scayt,smiley';
223
- 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