locomotive_cms 2.0.0.rc7 → 2.0.0.rc8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. data/Gemfile +6 -4
  2. data/README.textile +4 -3
  3. data/app/assets/images/locomotive/icons/flags/{no.png → nb.png} +0 -0
  4. data/app/assets/javascripts/aloha/plugins/custom/locomotive_media/lib/locomotive_media-plugin.js +1 -1
  5. data/app/assets/javascripts/locomotive/utils/core_ext.js +2 -0
  6. data/app/assets/javascripts/locomotive/views/application_view.js.coffee +7 -0
  7. data/app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee +4 -1
  8. data/app/assets/javascripts/locomotive/views/content_entries/_form_view.js.coffee +4 -2
  9. data/app/assets/javascripts/locomotive/views/content_entries/_popup_form_view.js.coffee +8 -3
  10. data/app/assets/javascripts/locomotive/views/content_types/_form_view.js.coffee +0 -2
  11. data/app/assets/javascripts/locomotive/views/content_types/custom_field_entry_view.js.coffee +9 -2
  12. data/app/assets/javascripts/locomotive/views/current_site/edit_view.js.coffee +10 -11
  13. data/app/assets/javascripts/locomotive/views/inline_editor/application_view.js.coffee +9 -0
  14. data/app/assets/javascripts/locomotive/views/pages/_form_view.js.coffee +3 -3
  15. data/app/assets/javascripts/locomotive/views/shared/asset_picker_view.js.coffee +11 -18
  16. data/app/assets/javascripts/locomotive/views/shared/fields/many_to_many_view.js.coffee +0 -4
  17. data/app/assets/javascripts/locomotive/views/shared/form_view.js.coffee +2 -1
  18. data/app/assets/javascripts/locomotive/views/snippets/_form_view.js.coffee +3 -1
  19. data/app/assets/javascripts/locomotive/views/theme_assets/_form_view.js.coffee +4 -4
  20. data/app/assets/javascripts/locomotive/views/theme_assets/image_picker_view.js.coffee +10 -2
  21. data/app/assets/javascripts/tinymce/plugins/locomotive_media/editor_plugin.js +4 -1
  22. data/app/assets/stylesheets/locomotive/backoffice/codemirror_changes.css.scss +1 -0
  23. data/app/assets/stylesheets/locomotive/backoffice/datepicker.css.scss +1 -1
  24. data/app/assets/stylesheets/locomotive/backoffice/dialog_changes.css.scss +9 -3
  25. data/app/assets/stylesheets/locomotive/backoffice/formtastic_changes.css.scss +3 -1
  26. data/app/cells/locomotive/global_actions_cell.rb +1 -1
  27. data/app/controllers/locomotive/api/base_controller.rb +7 -4
  28. data/app/controllers/locomotive/api/content_assets_controller.rb +13 -0
  29. data/app/controllers/locomotive/api/content_types_controller.rb +14 -1
  30. data/app/controllers/locomotive/api/current_site_controller.rb +3 -1
  31. data/app/controllers/locomotive/api/memberships_controller.rb +49 -0
  32. data/app/controllers/locomotive/api/pages_controller.rb +14 -1
  33. data/app/controllers/locomotive/api/sites_controller.rb +44 -0
  34. data/app/controllers/locomotive/api/snippets_controller.rb +14 -1
  35. data/app/controllers/locomotive/api/theme_assets_controller.rb +13 -0
  36. data/app/controllers/locomotive/public/content_entries_controller.rb +7 -3
  37. data/app/helpers/locomotive/content_types_helper.rb +4 -0
  38. data/app/helpers/locomotive/custom_fields_helper.rb +1 -1
  39. data/app/models/locomotive/ability.rb +2 -0
  40. data/app/models/locomotive/content_entry.rb +4 -2
  41. data/app/models/locomotive/content_type.rb +7 -0
  42. data/app/models/locomotive/extensions/content_type/default_values.rb +1 -1
  43. data/app/models/locomotive/extensions/page/redirect.rb +1 -1
  44. data/app/models/locomotive/extensions/page/tree.rb +14 -1
  45. data/app/models/locomotive/site.rb +5 -1
  46. data/app/models/locomotive/theme_asset.rb +1 -1
  47. data/app/presenters/locomotive/membership_presenter.rb +7 -2
  48. data/app/presenters/locomotive/site_presenter.rb +5 -0
  49. data/app/views/locomotive/content_assets/_picker.html.haml +3 -3
  50. data/app/views/locomotive/content_entries/_form.html.haml +1 -1
  51. data/app/views/locomotive/content_types/_form.html.haml +2 -2
  52. data/app/views/locomotive/current_site/_form.html.haml +1 -1
  53. data/app/views/locomotive/custom_fields/types/_many_to_many.html.haml +5 -5
  54. data/app/views/locomotive/my_account/edit.html.haml +1 -1
  55. data/app/views/locomotive/pages/_form.html.haml +1 -1
  56. data/app/views/locomotive/public/pages/show_toolbar.html.haml +2 -2
  57. data/app/views/locomotive/public/sitemaps/show.xml.builder +2 -2
  58. data/app/views/locomotive/shared/_form_actions.html.haml +1 -1
  59. data/app/views/locomotive/shared/_head.html.haml +2 -2
  60. data/app/views/locomotive/snippets/_form.html.haml +1 -1
  61. data/app/views/locomotive/theme_assets/_form.html.haml +1 -1
  62. data/app/views/locomotive/theme_assets/index.html.haml +5 -5
  63. data/config/locales/admin_ui.de.yml +37 -31
  64. data/config/locales/admin_ui.en.yml +1 -1
  65. data/config/locales/admin_ui.es.yml +2 -1
  66. data/config/locales/admin_ui.fr.yml +1 -1
  67. data/config/locales/admin_ui.it.yml +2 -1
  68. data/config/locales/{admin_ui.no.yml → admin_ui.nb.yml} +72 -55
  69. data/config/locales/admin_ui.nl.yml +2 -1
  70. data/config/locales/admin_ui.pt-BR.yml +2 -1
  71. data/config/locales/admin_ui.ru.yml +1 -1
  72. data/config/locales/{carrierwave.no.yml → carrierwave.nb.yml} +1 -1
  73. data/config/locales/default.de.yml +13 -3
  74. data/config/locales/default.en.yml +5 -0
  75. data/config/locales/default.fr.yml +4 -0
  76. data/config/locales/{default.no.yml → default.nb.yml} +43 -1
  77. data/config/locales/{devise.no.yml → devise.nb.yml} +9 -9
  78. data/config/locales/{flash.no.yml → flash.nb.yml} +1 -1
  79. data/config/locales/{formtastic.no.yml → formtastic.nb.yml} +21 -17
  80. data/config/routes.rb +4 -0
  81. data/lib/generators/locomotive/install/templates/locomotive.rb +9 -2
  82. data/lib/locomotive.rb +1 -0
  83. data/lib/locomotive/configuration.rb +4 -3
  84. data/lib/locomotive/custom_fields.rb +2 -0
  85. data/lib/locomotive/liquid/drops/page.rb +1 -1
  86. data/lib/locomotive/liquid/tags/csrf.rb +40 -0
  87. data/lib/locomotive/liquid/tags/extends.rb +3 -9
  88. data/lib/locomotive/liquid/tags/nav.rb +8 -8
  89. data/lib/locomotive/mongoid/patches.rb +54 -9
  90. data/lib/locomotive/rails.rb +1 -0
  91. data/lib/locomotive/rails/action_view.rb +9 -0
  92. data/lib/locomotive/render.rb +4 -4
  93. data/lib/locomotive/version.rb +1 -1
  94. data/vendor/assets/javascripts/locomotive/backbone.modelbinding.js +13 -4
  95. metadata +259 -95
data/Gemfile CHANGED
@@ -22,9 +22,8 @@ end
22
22
  group :assets do
23
23
  gem 'sass-rails', '~> 3.2.4'
24
24
  gem 'coffee-rails', '~> 3.2.2'
25
- gem 'uglifier', '~> 1.2.3'
26
- gem 'compass', :git => 'git://github.com/chriseppstein/compass.git', :branch => 'no_rails_integration'
27
- gem 'compass-rails', :git => 'git://github.com/Compass/compass-rails.git'
25
+ gem 'uglifier', '~> 1.2.4'
26
+ gem 'compass-rails'
28
27
  end
29
28
 
30
29
  group :test do
@@ -36,6 +35,7 @@ group :test do
36
35
  # gem 'growl-glue'
37
36
 
38
37
  gem 'cucumber-rails', :require => false
38
+ gem 'poltergeist'
39
39
  gem 'rspec-rails', '~> 2.8.0'
40
40
  gem 'shoulda-matchers'
41
41
 
@@ -50,4 +50,6 @@ group :test do
50
50
  gem 'json_spec'
51
51
 
52
52
  gem 'database_cleaner'
53
- end
53
+
54
+ # gem 'debugger', :git => 'git://github.com/cldwalker/debugger.git'
55
+ end
data/README.textile CHANGED
@@ -24,8 +24,8 @@ h2. Gems
24
24
 
25
25
  Here is a short list of main gems / technologies used in the application.
26
26
 
27
- * Rails 3.2.3
28
- * Mongoid 2.4.6 (with MongoDB 2.0)
27
+ * Rails 3.2.5
28
+ * Mongoid 2.4.9 (with MongoDB 2.0)
29
29
  * Liquid
30
30
  * Devise
31
31
  * Carrierwave
@@ -46,7 +46,7 @@ h2. Community
46
46
 
47
47
  * Get help or discuss locomotive CMS at the "LocomotiveCMS Google group":https://groups.google.com/forum/?fromgroups#!forum/locomotivecms or the "LocomotiveCMS Discussion Forums":http://locomotive.vanillaforums.com/ (deprecated)
48
48
  * Join us on IRC "#locomotivecms at irc.freenode.net!":http://webchat.freenode.net/
49
- * "Follow us on twitter":http://twitter.com/locomotiveapp
49
+ * "Follow us on twitter":http://twitter.com/locomotivecms
50
50
 
51
51
  h2. Contributing to Locomotive
52
52
 
@@ -55,6 +55,7 @@ Locomotive CMS is an open source project, we encourage contributions. If you hav
55
55
  * Install ruby and mongoDB
56
56
  * Clone the project <code>git clone git@github.com:locomotivecms/engine.git</code>
57
57
  * Setup a virtual host entry for <code>test.example.com</code> to point to localhost
58
+ * Install PhantomJS (Required for the cucumber suite See: https://github.com/jonleighton/poltergeist)
58
59
  * Run the tests <code>rake</code>
59
60
  * Write your failing tests
60
61
  * Make the tests pass
@@ -25,7 +25,7 @@ define(
25
25
  picker.close();
26
26
  }
27
27
 
28
- picker.render()
28
+ picker.fetch_assets();
29
29
  },
30
30
 
31
31
  /**
@@ -69,5 +69,7 @@
69
69
  doc.head.appendChild(stylesheet);
70
70
  }
71
71
 
72
+ $.ui.dialog.prototype.overlayEl = function() { return this.overlay.$el; }
73
+
72
74
  })();
73
75
 
@@ -83,3 +83,10 @@ class Locomotive.Views.ApplicationView extends Backbone.View
83
83
  locale = $(@).attr('data-locale')
84
84
  window.addParameterToURL 'content_locale', locale
85
85
 
86
+ unique_dialog_zindex: ->
87
+ # returns the number of jQuery UI modals created in order to set a valid zIndex for each of them.
88
+ # Each modal window should have a different zIndex, otherwise there will be conflicts between them.
89
+ window.Locomotive.jQueryModals ||= 0
90
+
91
+ 998 + window.Locomotive.jQueryModals++
92
+
@@ -12,7 +12,10 @@ class Locomotive.Views.ContentAssets.PickerView extends Locomotive.Views.Shared.
12
12
  ich.content_asset_picker
13
13
 
14
14
  fetch_assets: ->
15
- @collection.fetch()
15
+ @_reset()
16
+ @collection.fetch
17
+ success: () =>
18
+ @open()
16
19
 
17
20
  build_uploader: (el, link) ->
18
21
  link.bind 'click', (event) ->
@@ -50,11 +50,13 @@ class Locomotive.Views.ContentEntries.FormView extends Locomotive.Views.Shared.F
50
50
  settings = _.extend {}, @tinyMCE_settings(),
51
51
  oninit: ((editor) =>
52
52
  $.cmd 'S', (() =>
53
- $(textarea).val(editor.getBody().innerHTML).trigger('change')
53
+ editor.save()
54
+ $(textarea).trigger('changeSilently')
54
55
  @$('form').trigger('submit')
55
56
  ), [], ignoreCase: true, document: editor.dom.doc),
56
57
  onchange_callback: (editor) =>
57
- $(textarea).val(editor.getBody().innerHTML).trigger('change')
58
+ editor.save()
59
+ $(textarea).trigger('changeSilently')
58
60
 
59
61
  $(textarea).tinymce(settings)
60
62
 
@@ -26,11 +26,9 @@ class Locomotive.Views.ContentEntries.PopupFormView extends Locomotive.Views.Con
26
26
  @dialog = $(@el).dialog
27
27
  autoOpen: false
28
28
  modal: true
29
- zIndex: 998
29
+ zIndex: window.application_view.unique_dialog_zindex()
30
30
  width: 770,
31
31
  create: (event, ui) =>
32
- $('.ui-widget-overlay').bind 'click', => @close()
33
-
34
32
  $(@el).prev().find('.ui-dialog-title').html(@$('h2').html())
35
33
  @$('h2').remove()
36
34
  actions = @$('.dialog-actions').appendTo($(@el).parent()).addClass('ui-dialog-buttonpane ui-widget-content ui-helper-clearfix')
@@ -39,6 +37,7 @@ class Locomotive.Views.ContentEntries.PopupFormView extends Locomotive.Views.Con
39
37
  actions.find('input[type=submit]').click (event) => @save(event)
40
38
 
41
39
  open: (event, ui, extra) =>
40
+ $(@el).dialog('overlayEl').bind 'click', => @close()
42
41
  # nothing to do
43
42
 
44
43
  open: ->
@@ -50,11 +49,14 @@ class Locomotive.Views.ContentEntries.PopupFormView extends Locomotive.Views.Con
50
49
  parent_el.find('.new-section').hide()
51
50
  parent_el.find('.edit-section').show()
52
51
 
52
+ @clear_errors()
53
+
53
54
  $(@el).dialog('open')
54
55
 
55
56
  close: (event) ->
56
57
  event.stopPropagation() & event.preventDefault() if event?
57
58
  @clear_errors()
59
+ $(@el).dialog('overlayEl').unbind('click')
58
60
  $(@el).dialog('close')
59
61
 
60
62
  center: ->
@@ -69,6 +71,9 @@ class Locomotive.Views.ContentEntries.PopupFormView extends Locomotive.Views.Con
69
71
  else
70
72
  @refresh()
71
73
 
74
+ slugify_label_field: ->
75
+ # disabled in a popup form
76
+
72
77
  enable_has_many_fields: ->
73
78
  # disabled in a popup form
74
79
 
@@ -12,8 +12,6 @@ class Locomotive.Views.ContentTypes.FormView extends Locomotive.Views.Shared.For
12
12
  initialize: ->
13
13
  @model = new Locomotive.Models.ContentType(@options.content_type)
14
14
 
15
- window.foo = @model
16
-
17
15
  Backbone.ModelBinding.bind @
18
16
 
19
17
  render: ->
@@ -58,11 +58,18 @@ class Locomotive.Views.ContentTypes.CustomFieldEntryView extends Backbone.View
58
58
  fetch_inverse_of_list: ->
59
59
  @$('li.input.inverse-of select option').remove()
60
60
 
61
- _.each @inverse_of_list[@model.get('type')], (data) =>
61
+ list = @inverse_of_list[@model.get('type')] || []
62
+
63
+ _.each list, (data) =>
62
64
  if data.class_name == @model.get('class_name')
63
- option = new Option(data.label, data.name, data.class_name == @model.get('inverse_of') || @inverse_of_list.length == 1)
65
+ option = new Option(data.label, data.name, data.name == @model.get('inverse_of') || list.length == 1)
64
66
  @$('li.input.inverse-of select').append(option)
65
67
 
68
+ # by default, select the first option
69
+ if !@model.get('inverse_of')? && list.length > 0
70
+ @model.set
71
+ inverse_of: list[0].name
72
+
66
73
  render_select_options_view: ->
67
74
  @select_options_view = new Locomotive.Views.ContentTypes.SelectOptionsView
68
75
  model: @model
@@ -15,8 +15,6 @@ class Locomotive.Views.CurrentSite.EditView extends Locomotive.Views.Shared.Form
15
15
 
16
16
  Backbone.ModelBinding.bind @, checkbox: 'class'
17
17
 
18
- window.foo = @model
19
-
20
18
  render: ->
21
19
  super()
22
20
 
@@ -57,15 +55,16 @@ class Locomotive.Views.CurrentSite.EditView extends Locomotive.Views.Shared.Form
57
55
  @$('#site_memberships_input').append(@memberships_view.render().el)
58
56
 
59
57
  enable_liquid_editing: ->
60
- input = @$('#site_robots_txt')
61
- @editor = CodeMirror.fromTextArea input.get()[0],
62
- mode: 'liquid'
63
- autoMatchParens: false
64
- lineNumbers: false
65
- passDelay: 50
66
- tabMode: 'shift'
67
- theme: 'default'
68
- onChange: (editor) => @model.set(robots_txt: editor.getValue())
58
+ if($('#site_robots_txt').length)
59
+ input = @$('#site_robots_txt')
60
+ @editor = CodeMirror.fromTextArea input.get()[0],
61
+ mode: 'liquid'
62
+ autoMatchParens: false
63
+ lineNumbers: false
64
+ passDelay: 50
65
+ tabMode: 'shift'
66
+ theme: 'default'
67
+ onChange: (editor) => @model.set(robots_txt: editor.getValue())
69
68
 
70
69
  save: (event) ->
71
70
  if @model.includes_domain(window.location.host)
@@ -24,6 +24,8 @@ class Locomotive.Views.InlineEditor.ApplicationView extends Backbone.View
24
24
 
25
25
  @toolbar_view.render()
26
26
 
27
+ @content_assets_picker_view.render()
28
+
27
29
  enable_iframe_autoheight: ->
28
30
  iframe = @iframe
29
31
 
@@ -89,6 +91,13 @@ class Locomotive.Views.InlineEditor.ApplicationView extends Backbone.View
89
91
  toolbar_view.show_status 'loading'
90
92
  window.history.pushState('Object', 'Title', link.attr('href').replace('_edit', '_admin'))
91
93
 
94
+ unique_dialog_zindex: ->
95
+ # returns the number of jQuery UI modals created in order to set a valid zIndex for each of them.
96
+ # Each modal window should have a different zIndex, otherwise there will be conflicts between them.
97
+ window.Locomotive.jQueryModals ||= 0
98
+
99
+ 1050 + window.Locomotive.jQueryModals++
100
+
92
101
  _$: (selector) ->
93
102
  $(selector, @iframe[0].contentWindow.document)
94
103
 
@@ -16,14 +16,14 @@ class Locomotive.Views.Pages.FormView extends Locomotive.Views.Shared.FormView
16
16
 
17
17
  @model = new Locomotive.Models.Page(@options.page)
18
18
 
19
- window.foo = @model
20
-
21
19
  @touched_url = false
22
20
 
23
21
  @image_picker_view = new Locomotive.Views.ThemeAssets.ImagePickerView
24
22
  collection: new Locomotive.Models.ThemeAssetsCollection()
25
23
  on_select: @insert_image
26
24
 
25
+ @image_picker_view.render()
26
+
27
27
  Backbone.ModelBinding.bind @
28
28
 
29
29
  @editable_elements_view = new Locomotive.Views.EditableElements.EditAllView(collection: @model.get('editable_elements'))
@@ -58,7 +58,7 @@ class Locomotive.Views.Pages.FormView extends Locomotive.Views.Shared.FormView
58
58
  open_image_picker: (event) ->
59
59
  event.stopPropagation() & event.preventDefault()
60
60
  @image_picker_view.editor = @editor
61
- @image_picker_view.render()
61
+ @image_picker_view.fetch_assets()
62
62
 
63
63
  insert_image: (path) ->
64
64
  text = "{{ '#{path}' | theme_image_url }}"
@@ -11,11 +11,9 @@ class Locomotive.Views.Shared.AssetPickerView extends Backbone.View
11
11
  @collection.bind('remove', @remove_asset)
12
12
 
13
13
  render: ->
14
- @_reset()
15
-
16
14
  $(@el).html(@template()())
17
15
 
18
- @fetch_assets()
16
+ @create_dialog()
19
17
 
20
18
  return @
21
19
 
@@ -29,33 +27,32 @@ class Locomotive.Views.Shared.AssetPickerView extends Backbone.View
29
27
  # please overide build_uploader
30
28
 
31
29
  create_dialog: ->
32
- @dialog = $(@el).dialog
30
+ @dialog ||= $(@el).dialog
31
+ autoOpen: false
33
32
  modal: true
34
- zIndex: 998
33
+ zIndex: window.application_view.unique_dialog_zindex()
35
34
  width: 650,
36
35
  create: (event, ui) =>
37
- $('.ui-widget-overlay').bind 'click', => @close()
38
-
39
36
  $(@el).prev().find('.ui-dialog-title').html(@$('h2').html())
40
37
  @$('h2').remove()
41
38
  actions = @$('.dialog-actions').appendTo($(@el).parent()).addClass('ui-dialog-buttonpane ui-widget-content ui-helper-clearfix')
42
39
 
43
40
  actions.find('#close-link').click (event) => @close(event)
44
41
 
45
- open: (event, ui, extra) =>
46
- actions = $(@el).parent().find('.ui-dialog-buttonpane')
47
- el = actions.find('input[type=file]')
48
- link = actions.find('#upload-link')
42
+ input = actions.find('input[type=file]')
43
+ link = actions.find('#upload-link')
49
44
 
50
- @build_uploader(el, link)
45
+ @build_uploader(input, link)
51
46
 
52
- @open()
47
+ open: (event, ui, extra) =>
48
+ $(@el).dialog('overlayEl').bind 'click', => @close()
53
49
 
54
50
  open: ->
55
51
  $(@el).dialog('open')
56
52
 
57
53
  close: (event) ->
58
54
  event.stopPropagation() & event.preventDefault() if event?
55
+ $(@el).dialog('overlayEl').unbind('click')
59
56
  $(@el).dialog('close')
60
57
 
61
58
  shake: ->
@@ -70,8 +67,6 @@ class Locomotive.Views.Shared.AssetPickerView extends Backbone.View
70
67
 
71
68
  @_refresh()
72
69
 
73
- setTimeout (=> @create_dialog()), 30 # disable flickering
74
-
75
70
  add_asset: (asset, first) ->
76
71
  # please overide add_asset (the 'first' param is to know if it comes from the first collection fetch)
77
72
 
@@ -94,6 +89,4 @@ class Locomotive.Views.Shared.AssetPickerView extends Backbone.View
94
89
  _on_refresh: ->
95
90
 
96
91
  _reset: ->
97
- $('.ui-widget-overlay').unbind 'click'
98
- @$('.actions input[type=file]').remove()
99
- @dialog.dialog('destroy') if @dialog?
92
+ # for nothing to do
@@ -24,10 +24,6 @@ class Locomotive.Views.Shared.Fields.ManyToManyView extends Backbone.View
24
24
  @collection = @model.get(@options.name)
25
25
  @all_entries = @options.all_entries
26
26
 
27
- window.collection = @collection
28
- window.bar = @all_entries
29
- window.model = @model
30
-
31
27
  render: ->
32
28
  $(@el).html(@template()())
33
29
 
@@ -36,7 +36,8 @@ class Locomotive.Views.Shared.FormView extends Backbone.View
36
36
  previous_attributes = _.clone @model.attributes
37
37
 
38
38
  @model.save {},
39
- headers: options.headers
39
+ headers: options.headers
40
+ silent: true # since we pass an empty hash above, no need to trigger the callbacks
40
41
  success: (model, response, xhr) =>
41
42
  form.trigger('ajax:complete')
42
43
 
@@ -19,6 +19,8 @@ class Locomotive.Views.Snippets.FormView extends Locomotive.Views.Shared.FormVie
19
19
  collection: new Locomotive.Models.ThemeAssetsCollection()
20
20
  on_select: @insert_image
21
21
 
22
+ @image_picker_view.render()
23
+
22
24
  Backbone.ModelBinding.bind @
23
25
 
24
26
  render: ->
@@ -38,7 +40,7 @@ class Locomotive.Views.Snippets.FormView extends Locomotive.Views.Shared.FormVie
38
40
  open_image_picker: (event) ->
39
41
  event.stopPropagation() & event.preventDefault()
40
42
  @image_picker_view.editor = @editor
41
- @image_picker_view.render()
43
+ @image_picker_view.fetch_assets()
42
44
 
43
45
  insert_image: (path) ->
44
46
  text = "{{ '#{path}' | theme_image_url }}"
@@ -15,10 +15,10 @@ class Locomotive.Views.ThemeAssets.FormView extends Locomotive.Views.Shared.Form
15
15
 
16
16
  @model = new Locomotive.Models.ThemeAsset(@options.theme_asset)
17
17
 
18
- window.foo = @model
19
-
20
18
  @image_picker_view = new Locomotive.Views.ThemeAssets.ImagePickerView on_select: @insert_image
21
19
 
20
+ @image_picker_view.render()
21
+
22
22
  Backbone.ModelBinding.bind @
23
23
 
24
24
  render: ->
@@ -72,10 +72,10 @@ class Locomotive.Views.ThemeAssets.FormView extends Locomotive.Views.Shared.Form
72
72
  open_image_picker: (event) ->
73
73
  event.stopPropagation() & event.preventDefault()
74
74
  @image_picker_view.editor = @editor
75
- @image_picker_view.render()
75
+ @image_picker_view.fetch_assets()
76
76
 
77
77
  insert_image: (path) ->
78
- text = "{{ '#{path}' | theme_image_url }}"
78
+ text = "'#{path}'"
79
79
  @editor.replaceSelection(text)
80
80
  @image_picker_view.close()
81
81
 
@@ -15,7 +15,12 @@ class Locomotive.Views.ThemeAssets.ImagePickerView extends Locomotive.Views.Shar
15
15
  ich.theme_image_picker
16
16
 
17
17
  fetch_assets: ->
18
- @collection.fetch data: { content_type: 'image' }
18
+ @_reset()
19
+ @collection.fetch
20
+ data:
21
+ content_type: 'image'
22
+ success: () =>
23
+ @open()
19
24
 
20
25
  build_uploader: (el, link) ->
21
26
  link.bind 'click', (event) ->
@@ -37,4 +42,7 @@ class Locomotive.Views.ThemeAssets.ImagePickerView extends Locomotive.Views.Shar
37
42
 
38
43
  add_asset: (asset) ->
39
44
  @$('ul.list').append(ich.theme_asset(asset.toJSON()))
40
- @_refresh()
45
+ @_refresh()
46
+
47
+ _reset: ->
48
+ @$('ul.list').empty()