locomotivecms 3.0.0.pre.alpha.2 → 3.0.0.pre.alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -2
  3. data/README.md +1 -1
  4. data/app/api/locomotive/api/forms/membership_form.rb +13 -0
  5. data/app/api/locomotive/api/resources/membership_resource.rb +5 -3
  6. data/app/assets/javascripts/locomotive.js +2 -0
  7. data/app/assets/javascripts/locomotive/utils/backbone_patches.js.coffee +15 -1
  8. data/app/assets/javascripts/locomotive/utils/file.js.coffee +20 -0
  9. data/app/assets/javascripts/locomotive/utils/nprogress.js.coffee +5 -0
  10. data/app/assets/javascripts/locomotive/utils/rails_ujs.js.coffee +36 -0
  11. data/app/assets/javascripts/locomotive/utils/wysihtml5.js.coffee +1 -1
  12. data/app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee +9 -17
  13. data/app/assets/javascripts/locomotive/views/editable_elements/edit_view.js.coffee +39 -0
  14. data/app/assets/javascripts/locomotive/views/editable_elements/index_view.js.coffee +104 -1
  15. data/app/assets/javascripts/locomotive/views/inputs/file_view.js.coffee +79 -10
  16. data/app/assets/javascripts/locomotive/views/inputs/rte/file_view.js.coffee +24 -4
  17. data/app/assets/javascripts/locomotive/views/inputs/rte_view.js.coffee.erb +18 -0
  18. data/app/assets/javascripts/locomotive/views/pages/new_view.js.coffee +3 -6
  19. data/app/assets/javascripts/locomotive/views/shared/drawer_view.js.coffee +24 -8
  20. data/app/assets/javascripts/locomotive/views/shared/form_view.js.coffee +21 -148
  21. data/app/assets/stylesheets/locomotive/application.scss +6 -0
  22. data/app/assets/stylesheets/locomotive/base/_form.scss +1 -0
  23. data/app/assets/stylesheets/locomotive/base/form/_base.scss +9 -0
  24. data/app/assets/stylesheets/locomotive/base/form/_file_input.scss +1 -1
  25. data/app/assets/stylesheets/locomotive/base/form/_link.scss +13 -0
  26. data/app/assets/stylesheets/locomotive/base/form/_select2.scss +28 -1
  27. data/app/assets/stylesheets/locomotive/components/_drawer.scss +8 -18
  28. data/app/assets/stylesheets/locomotive/components/_live_editing.scss +83 -0
  29. data/app/assets/stylesheets/locomotive/components/_transitions.scss +63 -1
  30. data/app/assets/stylesheets/locomotive/components/header/_base.scss +5 -1
  31. data/app/assets/stylesheets/locomotive/components/misc/_notify.scss +5 -7
  32. data/app/assets/stylesheets/locomotive/globals/_bootstrap.scss +4 -4
  33. data/app/assets/stylesheets/locomotive/globals/_mixins.scss +16 -0
  34. data/app/assets/stylesheets/locomotive/globals/_nprogress.scss +3 -0
  35. data/app/assets/stylesheets/locomotive/globals/_variables.scss +57 -49
  36. data/app/assets/stylesheets/locomotive/layouts/_live_editing.scss +29 -0
  37. data/app/controllers/locomotive/editable_elements_controller.rb +49 -2
  38. data/app/controllers/locomotive/pages_controller.rb +2 -2
  39. data/app/helpers/locomotive/custom_fields_helper.rb +1 -1
  40. data/app/helpers/locomotive/editable_elements_helper.rb +40 -0
  41. data/app/helpers/locomotive/pages_helper.rb +0 -1
  42. data/app/inputs/locomotive/array_input.rb +1 -1
  43. data/app/inputs/locomotive/file_input.rb +35 -7
  44. data/app/inputs/locomotive/rte_input.rb +2 -1
  45. data/app/inputs/locomotive/toggle_input.rb +1 -1
  46. data/app/models/locomotive/concerns/content_entry/localized.rb +4 -4
  47. data/app/models/locomotive/concerns/content_type/sync.rb +0 -5
  48. data/app/models/locomotive/concerns/page/redirect.rb +1 -1
  49. data/app/models/locomotive/content_entry.rb +5 -11
  50. data/app/models/locomotive/content_type.rb +22 -0
  51. data/app/models/locomotive/editable_control.rb +12 -27
  52. data/app/models/locomotive/editable_element.rb +8 -0
  53. data/app/models/locomotive/editable_file.rb +0 -1
  54. data/app/models/locomotive/editable_text.rb +10 -10
  55. data/app/models/locomotive/page.rb +1 -1
  56. data/app/policies/locomotive/page_policy.rb +1 -1
  57. data/app/services/locomotive/editable_element_service.rb +47 -0
  58. data/app/services/locomotive/page_parsing_service.rb +85 -31
  59. data/app/uploaders/locomotive/editable_file_uploader.rb +5 -1
  60. data/app/views/locomotive/editable_elements/_edit.html.haml +49 -0
  61. data/app/views/locomotive/editable_elements/_edit_with_content_entry.html.haml +21 -0
  62. data/app/views/locomotive/editable_elements/_form.html.haml +23 -0
  63. data/app/views/locomotive/editable_elements/index.html.haml +8 -2
  64. data/app/views/locomotive/editable_elements/index_without_preview.html.haml +33 -0
  65. data/app/views/locomotive/layouts/{preview.html.haml → live_editing.html.haml} +9 -9
  66. data/app/views/locomotive/my_account/form/_main.html.haml +1 -1
  67. data/app/views/locomotive/pages/form/_actions.html.haml +8 -1
  68. data/app/views/locomotive/pages/form/_main.html.haml +1 -1
  69. data/app/views/locomotive/pages/form/_tabs.html.haml +2 -2
  70. data/app/views/locomotive/pages/new.html.haml +1 -1
  71. data/app/views/locomotive/shared/header/_site.html.haml +1 -1
  72. data/app/views/locomotive/shared/rte/_image_popover.html.haml +2 -2
  73. data/app/views/locomotive/shared/rte/_link_popover.html.haml +1 -1
  74. data/app/views/locomotive/shared/sidebar/_page.html.haml +5 -2
  75. data/config/locales/admin_ui.en.yml +10 -16
  76. data/config/locales/inputs.en.yml +18 -11
  77. data/config/locales/simple_form.en.yml +13 -1
  78. data/config/routes.rb +3 -1
  79. data/lib/locomotive.rb +1 -1
  80. data/lib/locomotive/action_controller/responder.rb +16 -0
  81. data/lib/locomotive/carrierwave/patches.rb +54 -0
  82. data/lib/locomotive/dependencies.rb +1 -0
  83. data/lib/locomotive/engine.rb +9 -3
  84. data/lib/locomotive/middlewares.rb +1 -1
  85. data/lib/locomotive/middlewares/page_editing.rb +41 -0
  86. data/lib/locomotive/middlewares/site.rb +2 -0
  87. data/lib/locomotive/simple_form.rb +6 -5
  88. data/lib/locomotive/steam_adaptor.rb +2 -0
  89. data/lib/locomotive/version.rb +1 -1
  90. data/lib/tasks/development.rake +4 -0
  91. data/spec/dummy/config/environments/production.rb +2 -0
  92. data/spec/dummy/config/initializers/devise.rb +2 -0
  93. data/spec/dummy/config/mongoid.yml +2 -2
  94. data/spec/models/locomotive/content_entry_spec.rb +11 -2
  95. data/spec/support/factories.rb +0 -1
  96. data/vendor/assets/javascripts/locomotive/history.js +2122 -0
  97. data/vendor/assets/javascripts/locomotive/subscribe.js +206 -329
  98. metadata +44 -127
  99. data/lib/locomotive/middlewares/permalink.rb +0 -22
  100. data/lib/locomotive/previous_liquid/asset_host.rb +0 -51
  101. data/lib/locomotive/previous_liquid/drops/base.rb +0 -40
  102. data/lib/locomotive/previous_liquid/drops/content_entry.rb +0 -78
  103. data/lib/locomotive/previous_liquid/drops/content_types.rb +0 -119
  104. data/lib/locomotive/previous_liquid/drops/current_user.rb +0 -21
  105. data/lib/locomotive/previous_liquid/drops/page.rb +0 -115
  106. data/lib/locomotive/previous_liquid/drops/proxy_collection.rb +0 -64
  107. data/lib/locomotive/previous_liquid/drops/session_proxy.rb +0 -16
  108. data/lib/locomotive/previous_liquid/drops/site.rb +0 -29
  109. data/lib/locomotive/previous_liquid/drops/uploader.rb +0 -21
  110. data/lib/locomotive/previous_liquid/errors.rb +0 -8
  111. data/lib/locomotive/previous_liquid/filters/base.rb +0 -61
  112. data/lib/locomotive/previous_liquid/filters/date.rb +0 -82
  113. data/lib/locomotive/previous_liquid/filters/html.rb +0 -117
  114. data/lib/locomotive/previous_liquid/filters/misc.rb +0 -75
  115. data/lib/locomotive/previous_liquid/filters/resize.rb +0 -18
  116. data/lib/locomotive/previous_liquid/filters/text.rb +0 -53
  117. data/lib/locomotive/previous_liquid/filters/translate.rb +0 -38
  118. data/lib/locomotive/previous_liquid/patches.rb +0 -21
  119. data/lib/locomotive/previous_liquid/tags/consume.rb +0 -104
  120. data/lib/locomotive/previous_liquid/tags/csrf.rb +0 -40
  121. data/lib/locomotive/previous_liquid/tags/editable.rb +0 -4
  122. data/lib/locomotive/previous_liquid/tags/editable/base.rb +0 -88
  123. data/lib/locomotive/previous_liquid/tags/editable/control.rb +0 -41
  124. data/lib/locomotive/previous_liquid/tags/editable/file.rb +0 -43
  125. data/lib/locomotive/previous_liquid/tags/editable/text.rb +0 -79
  126. data/lib/locomotive/previous_liquid/tags/extends.rb +0 -47
  127. data/lib/locomotive/previous_liquid/tags/fetch_page.rb +0 -36
  128. data/lib/locomotive/previous_liquid/tags/google_analytics.rb +0 -39
  129. data/lib/locomotive/previous_liquid/tags/hybrid.rb +0 -25
  130. data/lib/locomotive/previous_liquid/tags/inherited_block.rb +0 -31
  131. data/lib/locomotive/previous_liquid/tags/inline_editor.rb +0 -40
  132. data/lib/locomotive/previous_liquid/tags/javascript.rb +0 -16
  133. data/lib/locomotive/previous_liquid/tags/link_to.rb +0 -43
  134. data/lib/locomotive/previous_liquid/tags/locale_switcher.rb +0 -83
  135. data/lib/locomotive/previous_liquid/tags/model_form.rb +0 -75
  136. data/lib/locomotive/previous_liquid/tags/nav.rb +0 -164
  137. data/lib/locomotive/previous_liquid/tags/paginate.rb +0 -114
  138. data/lib/locomotive/previous_liquid/tags/path_helper.rb +0 -85
  139. data/lib/locomotive/previous_liquid/tags/path_to.rb +0 -21
  140. data/lib/locomotive/previous_liquid/tags/seo.rb +0 -72
  141. data/lib/locomotive/previous_liquid/tags/session_assign.rb +0 -39
  142. data/lib/locomotive/previous_liquid/tags/snippet.rb +0 -75
  143. data/lib/locomotive/previous_liquid/tags/with_scope.rb +0 -65
  144. data/spec/fixtures/portfolio/Gemfile +0 -21
  145. data/spec/fixtures/portfolio/app/content_types/messages.yml +0 -57
  146. data/spec/fixtures/portfolio/app/content_types/projects.yml +0 -74
  147. data/spec/fixtures/portfolio/app/views/pages/404.liquid.haml +0 -10
  148. data/spec/fixtures/portfolio/app/views/pages/index.liquid.haml +0 -213
  149. data/spec/fixtures/portfolio/app/views/snippets/footer.liquid.haml +0 -2
  150. data/spec/fixtures/portfolio/config.ru +0 -3
  151. data/spec/fixtures/portfolio/config/deploy.yml +0 -18
  152. data/spec/fixtures/portfolio/config/site.yml +0 -33
  153. data/spec/fixtures/portfolio/config/translations.yml +0 -8
  154. data/spec/fixtures/portfolio/data/messages.yml +0 -1
  155. data/spec/fixtures/portfolio/data/projects.yml +0 -41
  156. data/spec/fixtures/portfolio/icon.png +0 -0
  157. data/spec/fixtures/portfolio/public/javascripts/bootstrap.min.js +0 -6
  158. data/spec/fixtures/portfolio/public/javascripts/cbpAnimatedHeader.js +0 -44
  159. data/spec/fixtures/portfolio/public/javascripts/cbpAnimatedHeader.min.js +0 -11
  160. data/spec/fixtures/portfolio/public/javascripts/classie.js +0 -80
  161. data/spec/fixtures/portfolio/public/javascripts/contact_me.js +0 -65
  162. data/spec/fixtures/portfolio/public/javascripts/freelancer.js +0 -37
  163. data/spec/fixtures/portfolio/public/javascripts/jqBootstrapValidation.js +0 -912
  164. data/spec/fixtures/portfolio/public/samples/portfolio/cabin.png +0 -0
  165. data/spec/fixtures/portfolio/public/samples/portfolio/cake.png +0 -0
  166. data/spec/fixtures/portfolio/public/samples/portfolio/circus.png +0 -0
  167. data/spec/fixtures/portfolio/public/samples/portfolio/game.png +0 -0
  168. data/spec/fixtures/portfolio/public/samples/portfolio/safe.png +0 -0
  169. data/spec/fixtures/portfolio/public/samples/portfolio/submarine.png +0 -0
  170. data/spec/fixtures/portfolio/public/samples/profile.png +0 -0
  171. data/spec/fixtures/portfolio/public/stylesheets/bootstrap.min.css +0 -7
  172. data/spec/fixtures/portfolio/public/stylesheets/freelancer.css +0 -445
  173. data/spec/lib/locomotive/liquid/tags/editable/file_spec.rb +0 -72
  174. data/spec/lib/locomotive/liquid/tags/editable/text_spec.rb +0 -85
  175. data/spec/lib/locomotive/liquid/tags/extends_spec.rb +0 -58
  176. data/vendor/assets/javascripts/locomotive/editable_field.js +0 -50
  177. data/vendor/assets/javascripts/locomotive/form_submit_notification.js +0 -39
  178. data/vendor/assets/javascripts/locomotive/slugify.js +0 -47
@@ -1,21 +0,0 @@
1
- # source 'https://rubygems.org'
2
- #
3
- # gem 'locomotivecms_wagon', '1.5.0.rc2'
4
- #
5
- # group :development do
6
- # # Mac OS X
7
- # gem 'rb-fsevent', '~> 0.9.1', require: RUBY_PLATFORM.include?('darwin') && 'rb-fsevent'
8
- #
9
- # # Unix
10
- # gem 'therubyracer', require: 'v8', platforms: :ruby unless RUBY_PLATFORM.include?('darwin')
11
- # gem 'rb-inotify', '~> 0.9', require: RUBY_PLATFORM.include?('linux') && 'rb-inotify'
12
- #
13
- # # Windows
14
- # gem 'wdm', '>= 0.1.0', require: RUBY_PLATFORM =~ /mswin|mingw/i && 'wdm'
15
- # end
16
- #
17
- # group :misc do
18
- # # Add your extra gems here
19
- # # gem 'susy', require: 'susy'
20
- # # gem 'redcarpet', require: 'redcarpet'
21
- # end
@@ -1,57 +0,0 @@
1
- # Human readable name of this type
2
- name: Messages
3
-
4
- # Lowercase, underscored handle used to access this type
5
- slug: messages
6
-
7
- # Explanatory text displayed in the back-office
8
- description: A description of the content type for the editors
9
-
10
- # Slug of field used to identify entries by default, such as the title
11
- label_field_name: name
12
-
13
- # Valid values: manually, created_at, updated_at, or the slug of any field
14
- order_by: manually
15
-
16
- # Valid values: asc (ascending) and desc (descending). Set to asc by default.
17
- # order_direction: asc
18
-
19
- # Specify a field slug to group entries by that field in the back-office.
20
- # group_by: <your field>
21
-
22
- # Activate public 'create' API (e.g for a contact form)
23
- public_submission_enabled: true
24
-
25
- # Array of emails to be notified of new entries made with the public API
26
- # public_submission_accounts: ['john@example.com']
27
-
28
- # A list describing each field
29
- fields:
30
- - name: # The lowercase, underscored name of the field
31
- label: Name # Human readable name of the field
32
- type: string
33
- required: true
34
- hint: Explanatory text displayed in the back office
35
- localized: false
36
-
37
- - email: # The lowercase, underscored name of the field
38
- label: Email # Human readable name of the field
39
- type: email
40
- required: false
41
- hint: Explanatory text displayed in the back office
42
- localized: false
43
-
44
- - phone: # The lowercase, underscored name of the field
45
- label: Phone # Human readable name of the field
46
- type: string
47
- required: false
48
- hint: Explanatory text displayed in the back office
49
- localized: false
50
-
51
- - message: # The lowercase, underscored name of the field
52
- label: Message # Human readable name of the field
53
- type: text
54
- required: false
55
- hint: Explanatory text displayed in the back office
56
- localized: false
57
- # text_formatting: html # html (uses rich text editor) or text (uses plain text editor)
@@ -1,74 +0,0 @@
1
- # Human readable name of this type
2
- name: Projects
3
-
4
- # Lowercase, underscored handle used to access this type
5
- slug: projects
6
-
7
- # Explanatory text displayed in the back-office
8
- description: A description of the content type for the editors
9
-
10
- # Slug of field used to identify entries by default, such as the title
11
- label_field_name: name
12
-
13
- # Valid values: manually, created_at, updated_at, or the slug of any field
14
- order_by: manually
15
-
16
- # Valid values: asc (ascending) and desc (descending). Set to asc by default.
17
- # order_direction: asc
18
-
19
- # Specify a field slug to group entries by that field in the back-office.
20
- # group_by: <your field>
21
-
22
- # Activate public 'create' API (e.g for a contact form)
23
- # public_submission_enabled: false
24
-
25
- # Array of emails to be notified of new entries made with the public API
26
- # public_submission_accounts: ['john@example.com']
27
-
28
- # A list describing each field
29
- fields:
30
- - name: # The lowercase, underscored name of the field
31
- label: Name # Human readable name of the field
32
- type: string
33
- required: true
34
- hint: Explanatory text displayed in the back office
35
- localized: false
36
-
37
- - description: # The lowercase, underscored name of the field
38
- label: Description # Human readable name of the field
39
- type: text
40
- required: false
41
- hint: Explanatory text displayed in the back office
42
- localized: false
43
- text_formatting: html # html (uses rich text editor) or text (uses plain text editor)
44
-
45
- - image: # The lowercase, underscored name of the field
46
- label: Image # Human readable name of the field
47
- type: file
48
- required: false
49
- hint: Explanatory text displayed in the back office
50
- localized: false
51
-
52
- - client: # The lowercase, underscored name of the field
53
- label: "Client's name" # Human readable name of the field
54
- type: string
55
- required: false
56
- hint: Explanatory text displayed in the back office
57
- localized: false
58
-
59
- - date: # The lowercase, underscored name of the field
60
- label: Date # Human readable name of the field
61
- type: date
62
- required: false
63
- hint: Explanatory text displayed in the back office
64
- localized: false
65
-
66
- - category: # The lowercase, underscored name of the field
67
- label: Category # Human readable name of the field
68
- type: select
69
- required: false
70
- hint: Explanatory text displayed in the back office
71
- localized: false # if localized, use
72
- # en: ['option1_en', 'option2_en']
73
- # fr: ['option1_fr', 'option2_fr']
74
- select_options: ['Hardware', 'Interface', 'Marketing']
@@ -1,10 +0,0 @@
1
- ---
2
- title: Page not found
3
- published: true
4
- ---
5
- {% extends index %}
6
-
7
- {% block 'main' %}
8
- .jumbotron
9
- %h1 Arrggggh, page not found
10
- {% endblock %}
@@ -1,213 +0,0 @@
1
- ---
2
- title: My portfolio
3
- published: true
4
- ---
5
- !!!
6
- %html{lang: "en"}
7
- %head
8
- %meta{content: "text/html; charset=UTF-8", "http-equiv" => "content-type"}/
9
- %meta{charset: "utf-8"}/
10
- %title {{ site.name }}
11
- %meta{content: "width=device-width, initial-scale=1, maximum-scale=1", name: "viewport"}/
12
-
13
- %link{ href: "http://fonts.googleapis.com/css?family=Montserrat:400,700", rel: "stylesheet", type: "text/css" }
14
- %link{ href: "http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic", rel: "stylesheet", type: "text/css" }
15
- %link{ href: "//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css", rel: "stylesheet", type: "text/css" }
16
-
17
-
18
- {{ 'bootstrap.min.css' | stylesheet_tag }}
19
- {{ 'freelancer.css' | stylesheet_tag }}
20
- /[if lt IE 9]
21
- <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
22
-
23
- {% inline_editor %}
24
-
25
- %body#page-top.index
26
- %nav.navbar.navbar-default.navbar-fixed-top
27
- .container
28
- / Brand and toggle get grouped for better mobile display
29
- .navbar-header.page-scroll
30
- %button.navbar-toggle{"data-target" => "#bs-example-navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
31
- %span.sr-only Toggle navigation
32
- %span.icon-bar
33
- %span.icon-bar
34
- %span.icon-bar
35
- %a.navbar-brand{href: "#page-top" } {{ site.name }}
36
- / Collect the nav links, forms, and other content for toggling
37
- .collapse.navbar-collapse#bs-example-navbar-collapse-1
38
- %ul.nav.navbar-nav.navbar-right
39
- %li.hidden
40
- %a{href: "#page-top"}
41
- %li
42
- %a{href: "#portfolio"} Portfolio
43
- %li
44
- %a{href: "#about"} About
45
- %li
46
- %a{href: "#contact"} Contact
47
-
48
- %header
49
- .container
50
- .row
51
- .col-lg-12
52
- {% block header %}
53
- %img.img-responsive{ src: "{% editable_file picture %}http://placehold.it/256x256{% endeditable_file %}" }
54
- .intro-text
55
- %span.name {% editable_text name, format: raw, rows: 1 %}John Doe{% endeditable_text %}
56
- %hr.star-light
57
- %span.skills {% editable_text skills format: raw, rows: 1 %}Web Developer - Wagon user{% endeditable_text %}
58
- {% endblock %}
59
-
60
- %section#portfolio
61
- .container
62
- .row
63
- .col-lg-12.text-center
64
- %h2 Portfolio
65
- %hr.star-primary
66
-
67
- .row
68
- {% for project in contents.projects %}
69
- .col-sm-4.portfolio-item
70
- %a.portfolio-link{ href: "#portfolioModal{{ project._position }}", data: { toggle: 'modal' } }
71
- .caption
72
- .caption-content
73
- %i.fa.fa-search-plus.fa-3x
74
- %img.img-responsive{ src: "{{ project.image.url }}" }
75
- {% endfor %}
76
-
77
- %section.success#about
78
- .container
79
- {% block about %}
80
- .row
81
- .col-lg-12.text-center
82
- %h2 About
83
- %hr.star-light
84
- .row
85
- .col-lg-4.col-lg-offset-2
86
- {% editable_text column_1, format: html %}
87
- %p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus tempus sapien sed varius tempus. Vivamus viverra arcu nec augue blandit, in ultricies nibh lobortis. Aliquam erat volutpat.
88
- {% endeditable_text %}
89
- .col-lg-4
90
- {% editable_text column_2, format: html %}
91
- %p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus tempus sapien sed varius tempus. Vivamus viverra arcu nec augue blandit, in ultricies nibh lobortis. Aliquam erat volutpat.
92
- {% endeditable_text %}
93
- {% endblock %}
94
-
95
- %section#contact
96
- .container
97
- .row
98
- .col-lg-12.text-center
99
- %h2 Contact Me
100
- %hr.star-primary
101
- .row
102
- .col-lg-8.col-lg-offset-2
103
- %form#contactForm{name: "sentMessage", novalidate: "", action: '{{contents.messages.public_submission_url}}.json' }
104
- {% csrf_param %}
105
- %input{ type: 'hidden', value: '/', name: 'success_callback' }
106
- %input{ type: 'hidden', value: '/', name: 'error_callback' }
107
-
108
- .row.control-group
109
- .form-group.col-xs-12.floating-label-form-group.controls
110
- %label Name
111
- %input#name.form-control{"data-validation-required-message" => "Please enter your name.", placeholder: "Name", required: "", type: "text", name: 'content[name]'}
112
- %p.help-block.text-danger
113
- .row.control-group
114
- .form-group.col-xs-12.floating-label-form-group.controls
115
- %label Email Address
116
- %input#email.form-control{"data-validation-required-message" => "Please enter your email address.", placeholder: "Email Address", required: "", type: "email", name: 'content[email]'}
117
- %p.help-block.text-danger
118
- .row.control-group
119
- .form-group.col-xs-12.floating-label-form-group.controls
120
- %label Phone Number
121
- %input#phone.form-control{"data-validation-required-message" => "Please enter your phone number.", placeholder: "Phone Number", required: "", type: "tel", name: 'content[phone]'}
122
- %p.help-block.text-danger
123
- .row.control-group
124
- .form-group.col-xs-12.floating-label-form-group.controls
125
- %label Message
126
- %textarea#message.form-control{"data-validation-required-message" => "Please enter a message.", placeholder: "Message", required: "", rows: "5", name: 'content[message]'}
127
- %p.help-block.text-danger
128
- %br
129
- #success
130
- .row
131
- .form-group.col-xs-12
132
- %button.btn.btn-success.btn-lg{type: "submit"} Send
133
-
134
-
135
- %footer.text-center
136
- .footer-above
137
- {% block footer %}
138
- .container
139
- .row
140
- .footer-col.col-md-4
141
- {% editable_text location, format: html %}
142
- %h3 Location
143
- %p
144
- 700 South Laflin Street
145
- %br
146
- Chicago, IL 60607
147
- {% endeditable_text %}
148
- .footer-col.col-md-4
149
- %h3 Around the web
150
- %ul.list-inline
151
- - %w(facebook google-plus twitter linkedin dribbble).each do |social|
152
- %li
153
- %a.btn-social.btn-outline{ href: "{% editable_text #{social} %}#{social}{% endeditable_text %}" }
154
- %i.fa.fa-fw{ class: "fa-#{social}"}
155
- .footer-col.col-md-4
156
- {% editable_text about_freelancer %}
157
- %h3 About Freelancer
158
- %p
159
- Freelance is a free to use, open source Bootstrap theme created by <a href="http://startbootstrap.com">Start Bootstrap</a>
160
- {% endeditable_text %}
161
- {% endblock %}
162
- .footer-below
163
- .container
164
- .row
165
- .col-lg-12
166
- Copyright &copy; John Doe {{ today | format_date: '%Y' }}
167
-
168
- .scroll-top.page-scroll.visible-xs.visble-sm
169
- %a.btn.btn-primary{ href: '#page-top' }
170
- %i.fa.fa-chevron-up
171
-
172
- {% for project in contents.projects %}
173
- .portfolio-modal.modal.fade{ id: "portfolioModal{{ project._position }}", tabindex: -1, role: 'dialog', aria: { hidden: true } }
174
- .modal-content
175
- .close-modal{ data: { dismiss: 'modal' } }
176
- .lr
177
- .rl
178
- .container
179
- .row
180
- .col-lg-8.col-lg-offset-2
181
- .modal-body
182
- %h2 {{ project.name }}
183
- %hr.star-primary
184
- %img.img-responsive.img-centered{ src: '{{ project.image.url }}' }
185
- .text
186
- {{ project.description }}
187
- %ul.list-inline.item-details
188
- %li
189
- Client:
190
- %strong {{ project.client }}
191
- %li
192
- Date:
193
- %strong {{ project.date | format_date: '%B %Y' }}
194
- %li
195
- Category:
196
- %strong {{ project.category }}
197
- %button.btn.btn-default{ type: 'button', data: { dismiss: 'modal' } }
198
- %i.fa.fa-times
199
- Close
200
- {% endfor %}
201
-
202
- %script{src: "//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", type: "text/javascript"}
203
- {{ 'bootstrap.min.js' | javascript_tag }}
204
-
205
- %script{src: "//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js", type: "text/javascript"}
206
-
207
- {{ 'classie.js' | javascript_tag }}
208
- {{ 'cbpAnimatedHeader.js' | javascript_tag }}
209
-
210
- {{ 'jqBootstrapValidation.js' | javascript_tag }}
211
- {{ 'contact_me.js' | javascript_tag }}
212
-
213
- {{ 'freelancer.js' | javascript_tag }}
@@ -1,2 +0,0 @@
1
- .footer
2
- %p &copy; Company {{ now | localized_date: '%Y' }}
@@ -1,3 +0,0 @@
1
- require 'locomotive/wagon/standalone_server'
2
-
3
- run Locomotive::Wagon::StandaloneServer.new(File.expand_path('.'))
@@ -1,18 +0,0 @@
1
- # development:
2
- # host: dev.example.com
3
- # email: john@doe.net
4
- # password: apassword
5
- # # api_key: <your api key here>
6
- # staging:
7
- # host: staging.example.com
8
- # email: john@doe.net
9
- # password: apassword
10
- # # api_key: <your api key here>
11
- # production:
12
- # host: www.example.com
13
- # email: john@doe.net
14
- # password: apassword
15
- # # api_key: <your api key here>
16
- hosting:
17
- host: pink-lighthouse-82.locomotivehosting.com
18
- api_key: 79a4e02385e5d46da2a7ef7aeb5650f325c101a5
@@ -1,33 +0,0 @@
1
- # The name of this site
2
- # This text displays in the back-office and
3
- # can be used in templates through the site.name global variable
4
- name: "My portfolio"
5
-
6
- # The site's subdomain
7
- # This option is for sites on multi-site engines
8
- # The value determines where the site can be accessed under the engine's primary domain
9
- # subdomain: my-portfolio
10
-
11
- # An array of domain aliases for the site
12
- # This option is for sites on multi-site engines
13
- # domains: [www.example.com, example.com]
14
-
15
- # An array of locales (languages) the site is available in
16
- # The locale listed first is the site's default locale
17
- # Locales are specified using ISO language codes
18
- # Possible locales include: en, de, fr, pl, pt-BR, it, nl, nb, es, ru, et, ja, zh-CN
19
- locales: [en]
20
-
21
- # The site's timezone
22
- # This converts the server's time to the site's time zone in templates
23
- # The TimeZone class from Rail's ActiveSupport is used to interpret the string
24
- # Sample timezone strings: Tokyo, Beijing, Moscow, Cairo, Paris, Pacific Time (US & Canada)
25
- # timezone: Paris
26
-
27
- # For SEO purposes, sites may wish to add a relevant string to the <title> tag
28
- # And include <meta type="keywords"> and <meta type="description">
29
- # For this purpose you can set values for these variables here
30
- # They can be accessed in templates through the site.seo_title, site.meta_keywords, and site.meta_description variables
31
- seo_title: My portfolio
32
- meta_keywords: "some meta keywords"
33
- meta_description: "some meta description"
@@ -1,8 +0,0 @@
1
- # Your translations go here. To be used with the 'translate' liquid filter
2
- # Example:
3
- # {{ 'hello_world' | translate }}
4
- #
5
-
6
- # hello_world:
7
- # en: Hello world !
8
- # fr: Bonjour le monde !