locomotive_cms 2.0.0.rc7 → 2.0.0.rc8

Sign up to get free protection for your applications and to get access to all the features.
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()