smithycms 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/smithy/editor.coffee +12 -5
- data/app/assets/stylesheets/smithy/application.scss +8 -8
- data/app/helpers/smithy/application_helper.rb +1 -10
- data/app/inputs/markdown_input.rb +33 -0
- data/app/models/smithy/assets_datatable.rb +2 -2
- data/app/views/smithy/contents/_form_fields.html.erb +1 -10
- data/app/views/smithy/images/_form_fields.html.erb +1 -10
- data/config/initializers/refile.rb +0 -10
- data/db/migrate/20150427185319_migrate_dragonfly_images.rb +2 -2
- data/lib/smithy/engine.rb +2 -1
- data/lib/smithy/version.rb +1 -1
- data/lib/smithy.rb +1 -1
- metadata +7 -7
- data/db/migrate/20160127160513_look_for_direct_asset_links.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aadc29031beec8515e3d69eb3f75db5790617e71
|
4
|
+
data.tar.gz: 656013c9a4e9ffd3cdd3452d9284e87b00ebc727
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eea557bbd85a451c81753bcde2c9a9da07d6eea16be5f660c58bea628f55ac94fd156a07f8dfc3adb4bce6e9403bdb1c366d46fe27b521b700bd6aa51635ff4f
|
7
|
+
data.tar.gz: 1029c52c582830bd96aecb665526b9e206b52ffe6772816930433c157ce815328bfb8a19ca47ec13b0b95b2453897a97ddd3ccd5b54ac30257b1e746ad2c701c
|
@@ -2,13 +2,15 @@ window.ace_edit = (id, template_type, name) ->
|
|
2
2
|
name = 'template_content' if !name
|
3
3
|
textarea_id = name + '-' + id
|
4
4
|
editor_id = name + '_editor-' + id
|
5
|
-
$(
|
6
|
-
|
7
|
-
$
|
5
|
+
$editor = $("##{editor_id}")
|
6
|
+
$textarea = $("##{textarea_id}")
|
7
|
+
$editor.show();
|
8
8
|
$textarea.hide()
|
9
|
-
|
9
|
+
editor = ace.edit(editor_id)
|
10
|
+
create_ace_toolbar(editor, $editor.attr('data-assets-url'), $editor.attr('data-pages-url'))
|
10
11
|
session = editor.getSession()
|
11
12
|
session.setMode("ace/mode/" + template_type)
|
13
|
+
editor.renderer.setShowGutter(false) if template_type == 'markdown'
|
12
14
|
session.setValue($textarea.val())
|
13
15
|
session.setTabSize(2)
|
14
16
|
session.setUseSoftTabs(true)
|
@@ -144,4 +146,9 @@ edit_selection = (editor, command) ->
|
|
144
146
|
session.insert({ row: current_row, column: 0 }, '### ')
|
145
147
|
when 'h4'
|
146
148
|
session.insert({ row: current_row, column: 0 }, '#### ')
|
147
|
-
editor.focus()
|
149
|
+
editor.focus()
|
150
|
+
|
151
|
+
$ ->
|
152
|
+
$('.ace_editor').each ->
|
153
|
+
return unless $(this).data('id') && $(this).data('type') && $(this).data('name')
|
154
|
+
ace_edit($(this).data('id'), $(this).data('type'), $(this).data('name'))
|
@@ -9,14 +9,14 @@
|
|
9
9
|
* compiled file, but it's generally better to create a new file per style scope.
|
10
10
|
*
|
11
11
|
*= require_self
|
12
|
-
*= depend_on smithy/bootstrap_and_overrides.
|
13
|
-
*= depend_on smithy/assets.
|
14
|
-
*= depend_on smithy/content_blocks.
|
15
|
-
*= depend_on smithy/layout.
|
16
|
-
*= depend_on smithy/forms.
|
17
|
-
*= depend_on smithy/guides.
|
18
|
-
*= depend_on smithy/pages.
|
19
|
-
*= depend_on smithy/templates.
|
12
|
+
*= depend_on smithy/bootstrap_and_overrides.scss
|
13
|
+
*= depend_on smithy/assets.scss
|
14
|
+
*= depend_on smithy/content_blocks.scss
|
15
|
+
*= depend_on smithy/layout.scss
|
16
|
+
*= depend_on smithy/forms.scss
|
17
|
+
*= depend_on smithy/guides.scss
|
18
|
+
*= depend_on smithy/pages.scss
|
19
|
+
*= depend_on smithy/templates.scss
|
20
20
|
*/
|
21
21
|
|
22
22
|
@import 'bootstrap_and_overrides';
|
@@ -15,16 +15,7 @@ module Smithy
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def render_markdown_input(fieldname, editor_name, form_builder)
|
18
|
-
|
19
|
-
javascript_tag do
|
20
|
-
raw("var editor = ace_edit('#{form_builder.object.id || 'new'}', 'markdown', '#{editor_name}');\n") +
|
21
|
-
raw("editor.renderer.setShowGutter(false);")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
hint = "Use markdown syntax for formatting. You can also use HTML directly. <a href=\"#{guide_path('markdown')}\" data-toggle=\"remote-load\" data-target=\"#content-guide\">See our markdown syntax reference</a>".html_safe
|
25
|
-
form_builder.input(fieldname, :as => :text, :input_html => { :class => "span12", :id => "#{editor_name}-#{form_builder.object.id || 'new'}" }, :hint => hint) +
|
26
|
-
content_tag(:div, nil, :id => "#{editor_name}_editor-#{form_builder.object.id || 'new'}", :class => "#{editor_name}_editor ace_editor") +
|
27
|
-
content_tag(:div, nil, :id => 'content-guide')
|
18
|
+
form_builder.input fieldname, as: 'markdown'
|
28
19
|
end
|
29
20
|
|
30
21
|
private
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'formtastic-bootstrap/inputs/text_input'
|
2
|
+
class MarkdownInput < FormtasticBootstrap::Inputs::TextInput
|
3
|
+
def to_html
|
4
|
+
self.options[:hint] = markdown_hint if self.options[:hint].blank?
|
5
|
+
bootstrap_wrapping do
|
6
|
+
builder.text_area(method, form_control_input_html_options) +
|
7
|
+
builder.template.content_tag(:div, nil, id: editor_id, class: 'ace_editor', data: { id: id, type: :markdown, name: dom_id, assets_url: builder.template.selector_modal_assets_path, pages_url: builder.template.selector_modal_pages_path }) +
|
8
|
+
builder.template.content_tag(:div, nil, id: 'content-guide')
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def id
|
13
|
+
builder.object.id || 'new'
|
14
|
+
end
|
15
|
+
|
16
|
+
def textarea_id
|
17
|
+
"#{dom_id}-#{id}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def editor_id
|
21
|
+
"#{dom_id}_editor-#{id}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def input_html_options
|
25
|
+
{
|
26
|
+
class: "col-md-12",
|
27
|
+
}.merge(super).merge(id: textarea_id)
|
28
|
+
end
|
29
|
+
|
30
|
+
def markdown_hint
|
31
|
+
"Use markdown syntax for formatting. You can also use HTML directly. <a href=\"#{builder.template.guide_path('markdown')}\" data-toggle=\"remote-load\" data-target=\"#content-guide\">See our markdown syntax reference</a>".html_safe
|
32
|
+
end
|
33
|
+
end
|
@@ -63,7 +63,7 @@ module Smithy
|
|
63
63
|
assets = assets.page(page).per(per_page)
|
64
64
|
# TODO: need to check for regex flag
|
65
65
|
if params[:search][:value].present?
|
66
|
-
assets = assets.where("name
|
66
|
+
assets = assets.where("LOWER(name) LIKE LOWER(:search) or LOWER(content_type) LIKE LOWER(:search)", search: "%#{params[:search][:value]}%")
|
67
67
|
end
|
68
68
|
assets
|
69
69
|
end
|
@@ -89,4 +89,4 @@ module Smithy
|
|
89
89
|
params[:order][:"0"][:dir] == "desc" ? "desc" : "asc"
|
90
90
|
end
|
91
91
|
end
|
92
|
-
end
|
92
|
+
end
|
@@ -1,12 +1,3 @@
|
|
1
1
|
<%= f.inputs do %>
|
2
|
-
<%= f.input :content,
|
3
|
-
<div id="template_content_editor-<%= f.object.id || 'new' %>" class="template_content_editor"></div>
|
4
|
-
<div id="content-guide"></div>
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<% content_for :javascript do %>
|
8
|
-
<%= javascript_tag do %>
|
9
|
-
var editor = ace_edit('<%= f.object.id || 'new' %>', 'markdown', '');
|
10
|
-
editor.renderer.setShowGutter(false);
|
11
|
-
<% end %>
|
2
|
+
<%= f.input :content, as: :markdown %>
|
12
3
|
<% end %>
|
@@ -6,16 +6,7 @@
|
|
6
6
|
<%= f.input :link_url %>
|
7
7
|
<% end %>
|
8
8
|
<%= f.inputs "Content (optional)" do %>
|
9
|
-
<%= f.input :content,
|
10
|
-
<div id="image_content_editor-<%= f.object.id || 'new' %>" class="ace_editor"></div>
|
11
|
-
<div id="content-guide"></div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<% content_for :javascript do %>
|
15
|
-
<%= javascript_tag do %>
|
16
|
-
var editor = ace_edit('<%= f.object.id || 'new' %>', 'markdown');
|
17
|
-
editor.renderer.setShowGutter(false);
|
18
|
-
<% end %>
|
9
|
+
<%= f.input :content, as: :markdown %>
|
19
10
|
<% end %>
|
20
11
|
|
21
12
|
<%= f.inputs "Image Sizing (optional)" do %>
|
@@ -7,16 +7,6 @@ Rails.application.routes.prepend do
|
|
7
7
|
mount Refile.app, at: Refile.mount_point, as: :refile_app
|
8
8
|
end
|
9
9
|
|
10
|
-
# aws = {
|
11
|
-
# access_key_id: 'AKIAJTMAZVFVSBOL6AKQ',
|
12
|
-
# secret_access_key: 'MllOfy2tapECrQWP3TdF6GO8TpmJbF7xxEJsFGoq',
|
13
|
-
# region: 'us-west-2',
|
14
|
-
# bucket: 'testsmithy',
|
15
|
-
# }
|
16
|
-
|
17
|
-
# Refile.cache = Refile::S3.new(prefix: "cache", **aws)
|
18
|
-
# Refile.store = Refile::S3.new(prefix: "store", **aws)
|
19
|
-
|
20
10
|
if ENV['AWS_ACCESS_KEY_ID'].present? && ENV['AWS_SECRET_ACCESS_KEY'].present? && ENV['AWS_S3_BUCKET'].present?
|
21
11
|
aws = {
|
22
12
|
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
|
@@ -3,7 +3,7 @@ class MigrateDragonflyImages < ActiveRecord::Migration
|
|
3
3
|
if Refile.store.is_a? Refile::S3
|
4
4
|
prefix = Refile.store.instance_variable_get(:@prefix)
|
5
5
|
bucket = Refile.store.instance_variable_get(:@bucket)
|
6
|
-
Smithy::Asset.where('file_id LIKE ?', 'uploads/%').each do |asset|
|
6
|
+
Smithy::Asset.where('file_id LIKE ? OR file_id ~ ?', 'uploads/%', '\d{4}\/\d{2}\/\d{2}\/').each do |asset|
|
7
7
|
new_file_id = asset.file_id.gsub(/([^a-z0-9]|(uploads\/)|(assets\/))/i, '')
|
8
8
|
s3_object = bucket.object(asset.file_id)
|
9
9
|
new_s3_object = bucket.object([*prefix, new_file_id].join('/'))
|
@@ -25,4 +25,4 @@ class MigrateDragonflyImages < ActiveRecord::Migration
|
|
25
25
|
asset.update_column(:file_content_type, asset.content_type)
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
data/lib/smithy/engine.rb
CHANGED
@@ -9,7 +9,8 @@ module Smithy
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
# app/inputs for formtastic
|
13
|
+
config.autoload_paths += %W(#{config.root}/lib #{config.root}/app/inputs)
|
13
14
|
|
14
15
|
config.to_prepare do
|
15
16
|
# include the Smithy helpers in the host application
|
data/lib/smithy/version.rb
CHANGED
data/lib/smithy.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smithycms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Glen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -134,28 +134,28 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
137
|
+
version: 3.1.3
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
144
|
+
version: 3.1.3
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: formtastic-bootstrap
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 3.
|
151
|
+
version: 3.1.1
|
152
152
|
type: :runtime
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: 3.
|
158
|
+
version: 3.1.1
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: friendly_id
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -750,6 +750,7 @@ files:
|
|
750
750
|
- app/helpers/smithy/pages_helper.rb
|
751
751
|
- app/helpers/smithy/settings_helper.rb
|
752
752
|
- app/helpers/smithy/templates_helper.rb
|
753
|
+
- app/inputs/markdown_input.rb
|
753
754
|
- app/models/smithy/asset.rb
|
754
755
|
- app/models/smithy/asset_source.rb
|
755
756
|
- app/models/smithy/assets_datatable.rb
|
@@ -857,7 +858,6 @@ files:
|
|
857
858
|
- db/migrate/20150420145923_update_to_refile.rb
|
858
859
|
- db/migrate/20150427185319_migrate_dragonfly_images.rb
|
859
860
|
- db/migrate/20160122152402_create_smithy_asset_sources.rb
|
860
|
-
- db/migrate/20160127160513_look_for_direct_asset_links.rb
|
861
861
|
- lib/smithy.rb
|
862
862
|
- lib/smithy/asset_link.rb
|
863
863
|
- lib/smithy/content_blocks.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class LookForDirectAssetLinks < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
Smithy::Content.where("content LIKE '%s3.amazonaws.com%' OR content LIKE '%/uploads/assets/%'").each do |content|
|
4
|
-
content.page_contents.each do |page_content|
|
5
|
-
say "[WARNING] Direct Link found in the Page: #{page_content.page.title} - #{page_content.page.url}"
|
6
|
-
say "Content Block(s): #{page_content.label}", true
|
7
|
-
say content.content.scan(/(?:[^\s]*s3\.amazonaws\.com|\/uploads\/assets)[^\s]*/).join('/n'), true
|
8
|
-
say "You can find the new asset url on the smithy/assets page", true
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|