locomotive_cms 2.0.0.rc2 → 2.0.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/README.textile +4 -4
  2. data/app/assets/images/locomotive/icons/start.png +0 -0
  3. data/app/assets/javascripts/locomotive/models/page.js.coffee +1 -1
  4. data/app/assets/javascripts/locomotive/models/site.js.coffee +1 -1
  5. data/app/assets/javascripts/locomotive/views/content_entries/_form_view.js.coffee +11 -4
  6. data/app/assets/javascripts/locomotive/views/editable_elements/control_view.js.coffee +24 -0
  7. data/app/assets/javascripts/locomotive/views/editable_elements/edit_all_view.js.coffee +4 -0
  8. data/app/assets/javascripts/locomotive/views/editable_elements/short_text_view.js.coffee +5 -0
  9. data/app/assets/javascripts/locomotive/views/pages/_form_view.js.coffee +19 -0
  10. data/app/assets/javascripts/locomotive/views/shared/fields/has_many_view.js.coffee +3 -0
  11. data/app/assets/javascripts/locomotive/views/shared/fields/many_to_many_view.js.coffee +3 -0
  12. data/app/assets/javascripts/locomotive/views/shared/form_view.js.coffee +6 -0
  13. data/app/assets/stylesheets/locomotive/backoffice/application.css.scss +8 -0
  14. data/app/assets/stylesheets/locomotive/inline_editor/layout.css.scss +1 -0
  15. data/app/controllers/locomotive/pages_controller.rb +4 -3
  16. data/app/helpers/locomotive/pages_helper.rb +13 -0
  17. data/app/models/locomotive/editable_control.rb +56 -0
  18. data/app/models/locomotive/editable_element.rb +90 -18
  19. data/app/models/locomotive/editable_file.rb +63 -1
  20. data/app/models/locomotive/editable_long_text.rb +2 -0
  21. data/app/models/locomotive/editable_short_text.rb +32 -5
  22. data/app/models/locomotive/extensions/page/editable_elements.rb +14 -45
  23. data/app/models/locomotive/extensions/page/listed.rb +1 -0
  24. data/app/models/locomotive/extensions/page/parse.rb +10 -3
  25. data/app/models/locomotive/extensions/page/render.rb +80 -0
  26. data/app/models/locomotive/extensions/page/templatized.rb +43 -2
  27. data/app/models/locomotive/extensions/site/subdomain_domains.rb +1 -0
  28. data/app/models/locomotive/page.rb +7 -1
  29. data/app/models/locomotive/site.rb +4 -0
  30. data/app/presenters/locomotive/content_entry_presenter.rb +1 -1
  31. data/app/presenters/locomotive/editable_control_presenter.rb +18 -0
  32. data/app/presenters/locomotive/page_presenter.rb +2 -2
  33. data/app/views/locomotive/pages/_editable_elements.html.haml +12 -0
  34. data/app/views/locomotive/pages/_form.html.haml +6 -4
  35. data/app/views/locomotive/pages/_page.html.haml +3 -0
  36. data/app/views/locomotive/shared/menu/_contents.html.haml +1 -1
  37. data/config/locales/admin_ui.fr.yml +29 -3
  38. data/config/locales/default.en.yml +1 -1
  39. data/config/locales/default.fr.yml +23 -16
  40. data/config/locales/formtastic.en.yml +1 -7
  41. data/config/locales/formtastic.fr.yml +7 -14
  42. data/lib/locomotive.rb +1 -1
  43. data/lib/locomotive/engine.rb +8 -8
  44. data/lib/locomotive/liquid.rb +1 -0
  45. data/lib/locomotive/liquid/drops/content_entry.rb +2 -2
  46. data/lib/locomotive/liquid/drops/page.rb +1 -1
  47. data/lib/locomotive/liquid/errors.rb +2 -0
  48. data/lib/locomotive/liquid/filters/base.rb +47 -0
  49. data/lib/locomotive/liquid/filters/html.rb +16 -76
  50. data/lib/locomotive/liquid/filters/misc.rb +43 -18
  51. data/lib/locomotive/liquid/filters/text.rb +18 -0
  52. data/lib/locomotive/liquid/tags/editable.rb +1 -1
  53. data/lib/locomotive/liquid/tags/editable/base.rb +15 -24
  54. data/lib/locomotive/liquid/tags/editable/control.rb +31 -0
  55. data/lib/locomotive/liquid/tags/editable/file.rb +17 -1
  56. data/lib/locomotive/liquid/tags/editable/long_text.rb +5 -3
  57. data/lib/locomotive/liquid/tags/editable/short_text.rb +9 -3
  58. data/lib/locomotive/liquid/tags/extends.rb +3 -1
  59. data/lib/locomotive/liquid/tags/locale_switcher.rb +2 -2
  60. data/lib/locomotive/liquid/tags/nav.rb +26 -7
  61. data/lib/locomotive/liquid/tags/paginate.rb +9 -2
  62. data/lib/locomotive/middlewares.rb +2 -1
  63. data/lib/locomotive/middlewares/inline_editor.rb +31 -0
  64. data/lib/locomotive/render.rb +5 -29
  65. data/lib/locomotive/version.rb +1 -1
  66. data/vendor/assets/javascripts/locomotive/cmd.js +31 -0
  67. data/vendor/assets/javascripts/locomotive/menu_toggler.js +1 -1
  68. metadata +89 -74
  69. data/app/middlewares/locomotive/inline_editor_middleware.rb +0 -24
  70. data/lib/locomotive/liquid/tags/blueprint.rb +0 -21
  71. data/lib/locomotive/liquid/tags/editable/content.rb +0 -49
  72. data/lib/locomotive/liquid/tags/jquery.rb +0 -17
@@ -7,14 +7,16 @@ module Locomotive
7
7
  protected
8
8
 
9
9
  def render_element(context, element)
10
- if context.registers[:inline_editor]
10
+ content = element.default_content? ? render_default_content(context) : element.content
11
+
12
+ if editable?(context, element)
11
13
  %{
12
14
  <div class='editable-long-text' data-element-id='#{element.id}' data-element-index='#{element._index}'>
13
- #{element.content}
15
+ #{content}
14
16
  </div>
15
17
  }
16
18
  else
17
- element.content
19
+ content
18
20
  end
19
21
  end
20
22
 
@@ -7,14 +7,16 @@ module Locomotive
7
7
  protected
8
8
 
9
9
  def render_element(context, element)
10
- if context.registers[:inline_editor]
10
+ content = element.default_content? ? render_default_content(context) : element.content
11
+
12
+ if editable?(context, element)
11
13
  %{
12
14
  <span class='editable-short-text' data-element-id='#{element.id}' data-element-index='#{element._index}'>
13
- #{element.content}
15
+ #{content}
14
16
  </span>
15
17
  }
16
18
  else
17
- element.content
19
+ content
18
20
  end
19
21
  end
20
22
 
@@ -22,6 +24,10 @@ module Locomotive
22
24
  EditableShortText
23
25
  end
24
26
 
27
+ def editable?(context, element)
28
+ context.registers[:inline_editor] && (!element.fixed? || (element.fixed? && !element.from_parent?))
29
+ end
30
+
25
31
  end
26
32
 
27
33
  ::Liquid::Template.register_tag('editable_short_text', ShortText)
@@ -34,7 +34,9 @@ module Locomotive
34
34
  raise PageNotFound.new("Page with fullpath '#{@template_name}' was not found") if @context[:parent_page].nil?
35
35
 
36
36
  # be sure to work with a copy of the parent template otherwise there will be conflicts
37
- parent_template = @context[:parent_page].template.clone
37
+ parent_template = @context[:parent_page].template.try(:clone)
38
+
39
+ raise PageNotTranslated.new("Page with fullpath '#{@template_name}' was not translated") if parent_template.nil?
38
40
 
39
41
  @context[:parent_page].instance_variable_set(:@template, parent_template)
40
42
 
@@ -11,11 +11,11 @@ module Locomotive
11
11
  #
12
12
  # options:
13
13
  # - label: iso (de, fr, en, ...etc), locale (Deutsch, Français, English, ...etc), title (page title)
14
- # - sep: piece of html code seperating 2 locales
14
+ # - sep: piece of html code separating 2 locales
15
15
  #
16
16
  # notes:
17
17
  # - "iso" is the default choice for label
18
- # - " | " is the default seperating code
18
+ # - " | " is the default separating code
19
19
  #
20
20
  class LocaleSwitcher < ::Liquid::Tag
21
21
 
@@ -19,7 +19,7 @@ module Locomotive
19
19
  def initialize(tag_name, markup, tokens, context)
20
20
  if markup =~ Syntax
21
21
  @source = ($1 || 'page').gsub(/"|'/, '')
22
- @options = { :id => 'nav', :depth => 1, :class => '', :active_class => 'on' }
22
+ @options = { :id => 'nav', :depth => 1, :class => '', :active_class => 'on', :bootstrap => false }
23
23
  markup.scan(::Liquid::TagAttributes) { |key, value| @options[key.to_sym] = value.gsub(/"|'/, '') }
24
24
 
25
25
  @options[:exclude] = Regexp.new(@options[:exclude]) if @options[:exclude]
@@ -56,8 +56,8 @@ module Locomotive
56
56
  output = children_output.join("\n")
57
57
 
58
58
  if @options[:no_wrapper] != 'true'
59
- list_class = !@options[:class].blank? ? %( class="#{@options[:class]}") : ''
60
- output = %{<ul id="#{@options[:id]}"#{list_class}>\n#{output}</ul>}
59
+ list_class = !@options[:class].blank? ? %( class="#{@options[:class]}") : ''
60
+ output = %{<ul id="#{@options[:id]}"#{list_class}>\n#{output}</ul>}
61
61
  end
62
62
 
63
63
  output
@@ -90,21 +90,35 @@ module Locomotive
90
90
 
91
91
  label = %{#{icon if @options[:icon] != 'after' }#{title}#{icon if @options[:icon] == 'after' }}
92
92
 
93
- output = %{<li id="#{page.slug.dasherize}-link" class="link#{selected} #{css}">}
94
- output << %{<a href="/#{@site.localized_page_fullpath(page)}">#{label}</a>}
93
+ link_options = caret = ''
94
+ href = "/#{page.fullpath}"
95
+
96
+ if render_children_for_page?(page, depth) && bootstrap?
97
+ css += ' dropdown'
98
+ link_options = %{ class="dropdown-toggle" data-toogle="dropdown"}
99
+ href = '#'
100
+ caret = %{ <b class="caret"></b>}
101
+ end
102
+
103
+ output = %{<li id="#{page.slug.to_s.dasherize}-link" class="link#{selected} #{css}">}
104
+ output << %{<a href="#{href}"#{link_options}>#{label}#{caret}</a>}
95
105
  output << render_entry_children(page, depth.succ) if (depth.succ <= @options[:depth].to_i)
96
106
  output << %{</li>}
97
107
 
98
108
  output.strip
99
109
  end
100
110
 
111
+ def render_children_for_page?(page, depth)
112
+ depth.succ <= @options[:depth].to_i && page.children.reject { |c| !include_page?(c) }.any?
113
+ end
114
+
101
115
  # Recursively creates a nested unordered list for the depth specified
102
116
  def render_entry_children(page, depth)
103
117
  output = %{}
104
118
 
105
119
  children = page.children_with_minimal_attributes( @options[:add_attributes] ).reject { |c| !include_page?(c) }
106
120
  if children.present?
107
- output = %{<ul id="#{@options[:id]}-#{page.slug.dasherize}">}
121
+ output = %{<ul id="#{@options[:id]}-#{page.slug.to_s.dasherize}" class="#{bootstrap? ? 'dropdown-menu' : ''}">}
108
122
  children.each do |c, page|
109
123
  css = []
110
124
  css << 'first' if children.first == c
@@ -129,8 +143,13 @@ module Locomotive
129
143
  end
130
144
  end
131
145
 
132
- ::Liquid::Template.register_tag('nav', Nav)
146
+ def bootstrap?
147
+ @options[:bootstrap] == 'true'
148
+ end
149
+
133
150
  end
151
+
152
+ ::Liquid::Template.register_tag('nav', Nav)
134
153
  end
135
154
  end
136
155
  end
@@ -46,7 +46,7 @@ module Locomotive
46
46
  end
47
47
  page_count, current_page = pagination['total_pages'], pagination['current_page']
48
48
 
49
- path = context['path']
49
+ path = sanitize_path(context['fullpath'])
50
50
 
51
51
  pagination['previous'] = link(I18n.t('pagination.previous'), current_page - 1, path) if pagination['previous_page']
52
52
  pagination['next'] = link(I18n.t('pagination.next'), current_page + 1, path) if pagination['next_page']
@@ -83,6 +83,12 @@ module Locomotive
83
83
 
84
84
  private
85
85
 
86
+ def sanitize_path(path)
87
+ _path = path.gsub(/page=[0-9]+&?/, '').gsub(/_pjax=true&?/, '')
88
+ _path = _path.slice(0..-2) if _path.last == '?' || _path.last == '&'
89
+ _path
90
+ end
91
+
86
92
  def window_size
87
93
  3
88
94
  end
@@ -92,7 +98,8 @@ module Locomotive
92
98
  end
93
99
 
94
100
  def link(title, page, path)
95
- { 'title' => title, 'url' => path + "?page=#{page}", 'is_link' => true}
101
+ _path = %(#{path}#{path.include?('?') ? '&' : '?'}page=#{page})
102
+ { 'title' => title, 'url' => _path, 'is_link' => true }
96
103
  end
97
104
  end
98
105
 
@@ -1,3 +1,4 @@
1
1
  require 'locomotive/middlewares/fonts'
2
2
  require 'locomotive/middlewares/seo_trailing_slash'
3
- require 'locomotive/middlewares/cache'
3
+ require 'locomotive/middlewares/cache'
4
+ require 'locomotive/middlewares/inline_editor'
@@ -0,0 +1,31 @@
1
+ module Locomotive
2
+ module Middlewares
3
+ class InlineEditor
4
+
5
+ def initialize(app, opts = {})
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ response = @app.call(env)
11
+
12
+ unless response[1]['Editable'].blank?
13
+ html = response.last.body.to_s.gsub '</body>', %(
14
+ <a href="_admin"
15
+ onmouseout="this.style.backgroundPosition='0px 0px'"
16
+ onmouseover="this.style.backgroundPosition='0px -45px'"
17
+ onmousedown="this.style.backgroundPosition='0px -90px'"
18
+ onmouseup="this.style.backgroundPosition='0px 0px'"
19
+ style="display: block;z-index: 1031;position: fixed;top: 10px; right: 10px;width: 48px; height: 45px;text-indent:-9999px;text-decoration:none;background: transparent url\('/assets/locomotive/icons/start.png'\) no-repeat 0 0;">
20
+ Admin</a>
21
+ </body>
22
+ )
23
+ [response[0], response[1], [html]]
24
+ else
25
+ response
26
+ end
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -26,23 +26,7 @@ module Locomotive
26
26
  end
27
27
 
28
28
  def locomotive_page
29
- path = self.locomotive_page_path
30
-
31
- if page = current_site.pages.any_in(:fullpath => [*path]).first
32
- if not page.published? and current_locomotive_account.nil?
33
- page = nil
34
- else
35
- if page.templatized?
36
- @content_entry = page.fetch_target_entry(File.basename(path.first))
37
-
38
- if @content_entry.nil? || (!@content_entry.visible? && current_locomotive_account.nil?) # content instance not found or not visible
39
- page = nil
40
- end
41
- end
42
- end
43
- end
44
-
45
- page || not_found_page
29
+ current_site.fetch_page self.locomotive_page_path, current_locomotive_account.present?
46
30
  end
47
31
 
48
32
  def locomotive_page_path
@@ -53,11 +37,6 @@ module Locomotive
53
37
 
54
38
  path = 'index' if path.blank? || path == '_edit'
55
39
 
56
- if path != 'index'
57
- dirname = File.dirname(path).gsub(/^\.$/, '') # also look for templatized page path
58
- path = [path, File.join(dirname, 'content_type_template').gsub(/^\//, '')]
59
- end
60
-
61
40
  path
62
41
  end
63
42
 
@@ -70,6 +49,7 @@ module Locomotive
70
49
  'current_page' => self.params[:page],
71
50
  'params' => self.params,
72
51
  'path' => request.path,
52
+ 'fullpath' => request.fullpath,
73
53
  'url' => request.url,
74
54
  'now' => Time.now.utc,
75
55
  'today' => Date.today,
@@ -83,8 +63,8 @@ module Locomotive
83
63
  assigns.merge!(flash.to_hash.stringify_keys) # data from public submissions
84
64
 
85
65
  if @page.templatized? # add instance from content type
86
- assigns['entry'] = @content_entry
87
- assigns[@page.target_entry_name] = @content_entry # just here to help to write readable liquid code
66
+ assigns['entry'] = @page.content_entry
67
+ assigns[@page.target_entry_name] = @page.content_entry # just here to help to write readable liquid code
88
68
  end
89
69
 
90
70
  registers = {
@@ -101,7 +81,7 @@ module Locomotive
101
81
  def prepare_and_set_response(output)
102
82
  flash.discard
103
83
 
104
- response.headers['Content-Type'] = 'text/html; charset=utf-8'
84
+ response.headers['Content-Type'] = "#{@page.response_type}; charset=utf-8"
105
85
  response.headers['Editable'] = 'true' unless self.editing_page? || current_locomotive_account.nil?
106
86
 
107
87
  if @page.with_cache?
@@ -115,10 +95,6 @@ module Locomotive
115
95
  render :text => output, :layout => false, :status => page_status unless performed?
116
96
  end
117
97
 
118
- def not_found_page
119
- current_site.pages.not_found.published.first
120
- end
121
-
122
98
  def editing_page?
123
99
  !!@editing
124
100
  end
@@ -1,3 +1,3 @@
1
1
  module Locomotive #:nodoc
2
- VERSION = '2.0.0.rc2'
2
+ VERSION = '2.0.0.rc4'
3
3
  end
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Version 0.0.1
3
+ * Catch the CTRL+S keys combination and trigger a callback
4
+ * Didier Lafforgue
5
+ */
6
+
7
+ $.cmd = function(key, callback, args, options) {
8
+ var keyCode = key.charCodeAt(0);
9
+ var altKeyCode = keyCode + (32 * (keyCode < 97 ? 1 : -1));
10
+
11
+ options = (options || { ignoreCase: false });
12
+
13
+ if (!options.ignoreCase) altKeyCode = null;
14
+
15
+ doc = options.document || window.document;
16
+
17
+ $(doc).keydown(function(e) {
18
+ var isCtrl = false;
19
+
20
+ if (!args) args = []; // IE barks when args is null
21
+
22
+ if (e.ctrlKey || e.metaKey) isCtrl = true;
23
+
24
+ if ((keyCode == e.which || altKeyCode == e.which) && isCtrl) {
25
+ e.preventDefault();
26
+ callback.apply(this, args);
27
+ return false;
28
+ }
29
+ });
30
+
31
+ };
@@ -28,6 +28,6 @@ $.fn.toggleMe = function(settings) {
28
28
  });
29
29
  };
30
30
 
31
- return $(this).bind("click", toggle);
31
+ return $(this).bind('click', toggle);
32
32
 
33
33
  };
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locomotive_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc2
4
+ version: 2.0.0.rc4
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-14 00:00:00.000000000 Z
12
+ date: 2012-04-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2153204100 !ruby/object:Gem::Requirement
16
+ requirement: &2156428480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,21 +21,21 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153204100
24
+ version_requirements: *2156428480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rails
27
- requirement: &2153203600 !ruby/object:Gem::Requirement
27
+ requirement: &2156426280 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 3.2.1
32
+ version: 3.2.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2153203600
35
+ version_requirements: *2156426280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: devise
38
- requirement: &2153202920 !ruby/object:Gem::Requirement
38
+ requirement: &2156440220 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.5.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2153202920
46
+ version_requirements: *2156440220
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: cancan
49
- requirement: &2153227140 !ruby/object:Gem::Requirement
49
+ requirement: &2156437720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.7
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2153227140
57
+ version_requirements: *2156437720
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mongo
60
- requirement: &2153226560 !ruby/object:Gem::Requirement
60
+ requirement: &2156448180 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2153226560
68
+ version_requirements: *2156448180
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bson_ext
71
- requirement: &2153225680 !ruby/object:Gem::Requirement
71
+ requirement: &2156445200 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,21 +76,21 @@ dependencies:
76
76
  version: 1.5.2
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2153225680
79
+ version_requirements: *2156445200
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mongoid
82
- requirement: &2153224620 !ruby/object:Gem::Requirement
82
+ requirement: &2156444480 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
86
86
  - !ruby/object:Gem::Version
87
- version: 2.4.5
87
+ version: 2.4.6
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *2153224620
90
+ version_requirements: *2156444480
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: locomotive-mongoid-tree
93
- requirement: &2153223680 !ruby/object:Gem::Requirement
93
+ requirement: &2156443660 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,21 +98,21 @@ dependencies:
98
98
  version: 0.6.2
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *2153223680
101
+ version_requirements: *2156443660
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: custom_fields
104
- requirement: &2153222460 !ruby/object:Gem::Requirement
104
+ requirement: &2156457700 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 2.0.0.rc8
109
+ version: 2.0.0.rc9
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *2153222460
112
+ version_requirements: *2156457700
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: kaminari
115
- requirement: &2153220580 !ruby/object:Gem::Requirement
115
+ requirement: &2156456400 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.13.0
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *2153220580
123
+ version_requirements: *2156456400
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: haml
126
- requirement: &2153212840 !ruby/object:Gem::Requirement
126
+ requirement: &2156451720 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 3.1.4
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *2153212840
134
+ version_requirements: *2156451720
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: jquery-rails
137
- requirement: &2153247500 !ruby/object:Gem::Requirement
137
+ requirement: &2156466360 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 1.0.16
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *2153247500
145
+ version_requirements: *2156466360
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: rails-backbone
148
- requirement: &2153245780 !ruby/object:Gem::Requirement
148
+ requirement: &2156465280 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: 0.6.1
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *2153245780
156
+ version_requirements: *2156465280
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: codemirror-rails
159
- requirement: &2153244140 !ruby/object:Gem::Requirement
159
+ requirement: &2156463980 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '2.21'
165
165
  type: :runtime
166
166
  prerelease: false
167
- version_requirements: *2153244140
167
+ version_requirements: *2156463980
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: locomotive-tinymce-rails
170
- requirement: &2153242980 !ruby/object:Gem::Requirement
170
+ requirement: &2156461160 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ~>
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: 3.4.7.1
176
176
  type: :runtime
177
177
  prerelease: false
178
- version_requirements: *2153242980
178
+ version_requirements: *2156461160
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: locomotive-aloha-rails
181
- requirement: &2153241900 !ruby/object:Gem::Requirement
181
+ requirement: &2156474220 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ~>
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: 0.20.1.1
187
187
  type: :runtime
188
188
  prerelease: false
189
- version_requirements: *2153241900
189
+ version_requirements: *2156474220
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: flash_cookie_session
192
- requirement: &2153256760 !ruby/object:Gem::Requirement
192
+ requirement: &2156472380 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ~>
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: 1.1.1
198
198
  type: :runtime
199
199
  prerelease: false
200
- version_requirements: *2153256760
200
+ version_requirements: *2156472380
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: locomotive_liquid
203
- requirement: &2153253320 !ruby/object:Gem::Requirement
203
+ requirement: &2156470960 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - =
@@ -208,10 +208,10 @@ dependencies:
208
208
  version: 2.2.2
209
209
  type: :runtime
210
210
  prerelease: false
211
- version_requirements: *2153253320
211
+ version_requirements: *2156470960
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: formtastic
214
- requirement: &2153251760 !ruby/object:Gem::Requirement
214
+ requirement: &2156469420 !ruby/object:Gem::Requirement
215
215
  none: false
216
216
  requirements:
217
217
  - - ~>
@@ -219,10 +219,10 @@ dependencies:
219
219
  version: 2.0.2
220
220
  type: :runtime
221
221
  prerelease: false
222
- version_requirements: *2153251760
222
+ version_requirements: *2156469420
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: responders
225
- requirement: &2153249860 !ruby/object:Gem::Requirement
225
+ requirement: &2156482960 !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
228
228
  - - ~>
@@ -230,10 +230,10 @@ dependencies:
230
230
  version: 0.6.4
231
231
  type: :runtime
232
232
  prerelease: false
233
- version_requirements: *2153249860
233
+ version_requirements: *2156482960
234
234
  - !ruby/object:Gem::Dependency
235
235
  name: cells
236
- requirement: &2153264800 !ruby/object:Gem::Requirement
236
+ requirement: &2156476380 !ruby/object:Gem::Requirement
237
237
  none: false
238
238
  requirements:
239
239
  - - ~>
@@ -241,10 +241,10 @@ dependencies:
241
241
  version: 3.8.0
242
242
  type: :runtime
243
243
  prerelease: false
244
- version_requirements: *2153264800
244
+ version_requirements: *2156476380
245
245
  - !ruby/object:Gem::Dependency
246
246
  name: RedCloth
247
- requirement: &2153264000 !ruby/object:Gem::Requirement
247
+ requirement: &2156495100 !ruby/object:Gem::Requirement
248
248
  none: false
249
249
  requirements:
250
250
  - - ~>
@@ -252,10 +252,10 @@ dependencies:
252
252
  version: 4.2.8
253
253
  type: :runtime
254
254
  prerelease: false
255
- version_requirements: *2153264000
255
+ version_requirements: *2156495100
256
256
  - !ruby/object:Gem::Dependency
257
257
  name: sanitize
258
- requirement: &2153263040 !ruby/object:Gem::Requirement
258
+ requirement: &2156493720 !ruby/object:Gem::Requirement
259
259
  none: false
260
260
  requirements:
261
261
  - - ~>
@@ -263,10 +263,10 @@ dependencies:
263
263
  version: 2.0.3
264
264
  type: :runtime
265
265
  prerelease: false
266
- version_requirements: *2153263040
266
+ version_requirements: *2156493720
267
267
  - !ruby/object:Gem::Dependency
268
268
  name: highline
269
- requirement: &2153262020 !ruby/object:Gem::Requirement
269
+ requirement: &2156504940 !ruby/object:Gem::Requirement
270
270
  none: false
271
271
  requirements:
272
272
  - - ~>
@@ -274,10 +274,10 @@ dependencies:
274
274
  version: 1.6.2
275
275
  type: :runtime
276
276
  prerelease: false
277
- version_requirements: *2153262020
277
+ version_requirements: *2156504940
278
278
  - !ruby/object:Gem::Dependency
279
279
  name: rmagick
280
- requirement: &2153260720 !ruby/object:Gem::Requirement
280
+ requirement: &2156503960 !ruby/object:Gem::Requirement
281
281
  none: false
282
282
  requirements:
283
283
  - - ~>
@@ -285,10 +285,10 @@ dependencies:
285
285
  version: 2.12.2
286
286
  type: :runtime
287
287
  prerelease: false
288
- version_requirements: *2153260720
288
+ version_requirements: *2156503960
289
289
  - !ruby/object:Gem::Dependency
290
290
  name: carrierwave-mongoid
291
- requirement: &2153259320 !ruby/object:Gem::Requirement
291
+ requirement: &2156500700 !ruby/object:Gem::Requirement
292
292
  none: false
293
293
  requirements:
294
294
  - - ~>
@@ -296,10 +296,21 @@ dependencies:
296
296
  version: 0.1.3
297
297
  type: :runtime
298
298
  prerelease: false
299
- version_requirements: *2153259320
299
+ version_requirements: *2156500700
300
+ - !ruby/object:Gem::Dependency
301
+ name: carrierwave
302
+ requirement: &2156515160 !ruby/object:Gem::Requirement
303
+ none: false
304
+ requirements:
305
+ - - ~>
306
+ - !ruby/object:Gem::Version
307
+ version: 0.6.0
308
+ type: :runtime
309
+ prerelease: false
310
+ version_requirements: *2156515160
300
311
  - !ruby/object:Gem::Dependency
301
312
  name: fog
302
- requirement: &2153257880 !ruby/object:Gem::Requirement
313
+ requirement: &2156512280 !ruby/object:Gem::Requirement
303
314
  none: false
304
315
  requirements:
305
316
  - - ~>
@@ -307,10 +318,10 @@ dependencies:
307
318
  version: 1.1.2
308
319
  type: :runtime
309
320
  prerelease: false
310
- version_requirements: *2153257880
321
+ version_requirements: *2156512280
311
322
  - !ruby/object:Gem::Dependency
312
323
  name: dragonfly
313
- requirement: &2153277600 !ruby/object:Gem::Requirement
324
+ requirement: &2156509840 !ruby/object:Gem::Requirement
314
325
  none: false
315
326
  requirements:
316
327
  - - ~>
@@ -318,10 +329,10 @@ dependencies:
318
329
  version: 0.9.8
319
330
  type: :runtime
320
331
  prerelease: false
321
- version_requirements: *2153277600
332
+ version_requirements: *2156509840
322
333
  - !ruby/object:Gem::Dependency
323
334
  name: rack-cache
324
- requirement: &2153272620 !ruby/object:Gem::Requirement
335
+ requirement: &2156508580 !ruby/object:Gem::Requirement
325
336
  none: false
326
337
  requirements:
327
338
  - - ~>
@@ -329,10 +340,10 @@ dependencies:
329
340
  version: '1.1'
330
341
  type: :runtime
331
342
  prerelease: false
332
- version_requirements: *2153272620
343
+ version_requirements: *2156508580
333
344
  - !ruby/object:Gem::Dependency
334
345
  name: mimetype-fu
335
- requirement: &2153271060 !ruby/object:Gem::Requirement
346
+ requirement: &2156521480 !ruby/object:Gem::Requirement
336
347
  none: false
337
348
  requirements:
338
349
  - - ~>
@@ -340,10 +351,10 @@ dependencies:
340
351
  version: 0.1.2
341
352
  type: :runtime
342
353
  prerelease: false
343
- version_requirements: *2153271060
354
+ version_requirements: *2156521480
344
355
  - !ruby/object:Gem::Dependency
345
356
  name: httparty
346
- requirement: &2153286080 !ruby/object:Gem::Requirement
357
+ requirement: &2156516860 !ruby/object:Gem::Requirement
347
358
  none: false
348
359
  requirements:
349
360
  - - ~>
@@ -351,10 +362,10 @@ dependencies:
351
362
  version: 0.8.1
352
363
  type: :runtime
353
364
  prerelease: false
354
- version_requirements: *2153286080
365
+ version_requirements: *2156516860
355
366
  - !ruby/object:Gem::Dependency
356
367
  name: actionmailer-with-request
357
- requirement: &2153300660 !ruby/object:Gem::Requirement
368
+ requirement: &2156515560 !ruby/object:Gem::Requirement
358
369
  none: false
359
370
  requirements:
360
371
  - - ~>
@@ -362,7 +373,7 @@ dependencies:
362
373
  version: 0.3.0
363
374
  type: :runtime
364
375
  prerelease: false
365
- version_requirements: *2153300660
376
+ version_requirements: *2156515560
366
377
  description: Locomotive is a next generation CMS system with sexy admin tools, liquid
367
378
  templating, and inline editing powered by mongodb and rails 3.2
368
379
  email:
@@ -404,6 +415,7 @@ files:
404
415
  - app/assets/images/locomotive/icons/flags/ru.png
405
416
  - app/assets/images/locomotive/icons/membership_edit.png
406
417
  - app/assets/images/locomotive/icons/membership_lock.png
418
+ - app/assets/images/locomotive/icons/start.png
407
419
  - app/assets/images/locomotive/inline_editor/back.png
408
420
  - app/assets/images/locomotive/list/empty.png
409
421
  - app/assets/images/locomotive/list/icons/cross.png
@@ -473,6 +485,7 @@ files:
473
485
  - app/assets/javascripts/locomotive/views/content_types/new_view.js.coffee
474
486
  - app/assets/javascripts/locomotive/views/content_types/select_options_view.js.coffee
475
487
  - app/assets/javascripts/locomotive/views/current_site/edit_view.js.coffee
488
+ - app/assets/javascripts/locomotive/views/editable_elements/control_view.js.coffee
476
489
  - app/assets/javascripts/locomotive/views/editable_elements/edit_all_view.js.coffee
477
490
  - app/assets/javascripts/locomotive/views/editable_elements/file_view.js.coffee
478
491
  - app/assets/javascripts/locomotive/views/editable_elements/long_text_view.js.coffee
@@ -618,12 +631,12 @@ files:
618
631
  - app/inputs/locomotive/toggle_input.rb
619
632
  - app/mailers/locomotive/devise_mailer.rb
620
633
  - app/mailers/locomotive/notifications.rb
621
- - app/middlewares/locomotive/inline_editor_middleware.rb
622
634
  - app/models/locomotive/ability.rb
623
635
  - app/models/locomotive/account.rb
624
636
  - app/models/locomotive/content_asset.rb
625
637
  - app/models/locomotive/content_entry.rb
626
638
  - app/models/locomotive/content_type.rb
639
+ - app/models/locomotive/editable_control.rb
627
640
  - app/models/locomotive/editable_element.rb
628
641
  - app/models/locomotive/editable_file.rb
629
642
  - app/models/locomotive/editable_long_text.rb
@@ -654,6 +667,7 @@ files:
654
667
  - app/presenters/locomotive/content_asset_presenter.rb
655
668
  - app/presenters/locomotive/content_entry_presenter.rb
656
669
  - app/presenters/locomotive/content_type_presenter.rb
670
+ - app/presenters/locomotive/editable_control_presenter.rb
657
671
  - app/presenters/locomotive/editable_element_presenter.rb
658
672
  - app/presenters/locomotive/editable_file_presenter.rb
659
673
  - app/presenters/locomotive/editable_long_text_presenter.rb
@@ -837,15 +851,15 @@ files:
837
851
  - lib/locomotive/liquid/drops/site.rb
838
852
  - lib/locomotive/liquid/drops/uploader.rb
839
853
  - lib/locomotive/liquid/errors.rb
854
+ - lib/locomotive/liquid/filters/base.rb
840
855
  - lib/locomotive/liquid/filters/date.rb
841
856
  - lib/locomotive/liquid/filters/html.rb
842
857
  - lib/locomotive/liquid/filters/misc.rb
843
858
  - lib/locomotive/liquid/filters/resize.rb
844
859
  - lib/locomotive/liquid/filters/text.rb
845
- - lib/locomotive/liquid/tags/blueprint.rb
846
860
  - lib/locomotive/liquid/tags/consume.rb
847
861
  - lib/locomotive/liquid/tags/editable/base.rb
848
- - lib/locomotive/liquid/tags/editable/content.rb
862
+ - lib/locomotive/liquid/tags/editable/control.rb
849
863
  - lib/locomotive/liquid/tags/editable/file.rb
850
864
  - lib/locomotive/liquid/tags/editable/long_text.rb
851
865
  - lib/locomotive/liquid/tags/editable/short_text.rb
@@ -854,7 +868,6 @@ files:
854
868
  - lib/locomotive/liquid/tags/google_analytics.rb
855
869
  - lib/locomotive/liquid/tags/inherited_block.rb
856
870
  - lib/locomotive/liquid/tags/inline_editor.rb
857
- - lib/locomotive/liquid/tags/jquery.rb
858
871
  - lib/locomotive/liquid/tags/locale_switcher.rb
859
872
  - lib/locomotive/liquid/tags/nav.rb
860
873
  - lib/locomotive/liquid/tags/paginate.rb
@@ -865,6 +878,7 @@ files:
865
878
  - lib/locomotive/logger.rb
866
879
  - lib/locomotive/middlewares/cache.rb
867
880
  - lib/locomotive/middlewares/fonts.rb
881
+ - lib/locomotive/middlewares/inline_editor.rb
868
882
  - lib/locomotive/middlewares/seo_trailing_slash.rb
869
883
  - lib/locomotive/middlewares.rb
870
884
  - lib/locomotive/mongoid/document.rb
@@ -884,6 +898,7 @@ files:
884
898
  - public/favicon.ico
885
899
  - vendor/assets/javascripts/locomotive/backbone.modelbinding.js
886
900
  - vendor/assets/javascripts/locomotive/backbone.sync.js
901
+ - vendor/assets/javascripts/locomotive/cmd.js
887
902
  - vendor/assets/javascripts/locomotive/cookies.js
888
903
  - vendor/assets/javascripts/locomotive/datepicker_fr.js
889
904
  - vendor/assets/javascripts/locomotive/editable_field.js
@@ -935,7 +950,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
935
950
  version: '0'
936
951
  segments:
937
952
  - 0
938
- hash: -83862072915478114
953
+ hash: 55090259143407847
939
954
  required_rubygems_version: !ruby/object:Gem::Requirement
940
955
  none: false
941
956
  requirements: