smithycms 0.6.1 → 0.6.2
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/asset_uploads.coffee +27 -25
- data/app/assets/javascripts/smithy/editor.coffee +9 -4
- data/app/models/smithy/assets_datatable.rb +9 -3
- data/app/views/smithy/assets/_actions.html.erb +1 -1
- data/app/views/smithy/assets/index.html.erb +3 -2
- data/app/views/smithy/assets/selector_modal.html.erb +2 -1
- data/lib/smithy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 018b01cf5ecc5da13736a8510d7b6f46896cbfd1
|
4
|
+
data.tar.gz: 64e2790ec5c0df3f046c09a6a590acdf6f2a0456
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fd38664b501d9fb6d06ef918d25fc479507df000393a21f624d8f760dd7c167a6d5c83b55563e71ea4e2ba29325217639739d225ca7c25b0ab71e16ec6499e7
|
7
|
+
data.tar.gz: 4454069334657b4d12569529fd9a9e88884252786bf9a679d9434efcf70a4b7028130f52baab27600d48292d47ddea115d0a2dd5540a181b0cee65126add86f8
|
@@ -1,35 +1,37 @@
|
|
1
1
|
$upload_button = $('#choose-files')
|
2
2
|
$upload_form = $upload_button.closest('form')
|
3
|
-
|
3
|
+
file_input_selector = '#presigned_upload_field input[type="file"]'
|
4
4
|
presigned_upload_field_url = $upload_button.attr('data-presigned-upload-field-url')
|
5
5
|
|
6
|
+
$progress_bar = $($upload_form).append('<div class="progress" style="display:none;"><div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0;"></div></div>').find('.progress-bar')
|
7
|
+
|
6
8
|
$upload_button.on 'click', (e) ->
|
7
|
-
$
|
9
|
+
$(file_input_selector).click();
|
10
|
+
|
11
|
+
total_uploaded = 0
|
12
|
+
total_size = 0
|
8
13
|
|
9
14
|
upload_files = (e) ->
|
10
|
-
|
15
|
+
total_uploaded = 0
|
16
|
+
file_input = e.target
|
17
|
+
$file_input = $(file_input)
|
18
|
+
files = file_input.files
|
11
19
|
if files.length
|
12
|
-
$upload_form.submit()
|
13
|
-
|
14
|
-
# Reset the file input, so that it can be used again
|
15
|
-
$.get presigned_upload_field_url, ->
|
16
|
-
$file_input = $('#presigned_upload_field').find('input[type="file"]')
|
17
|
-
bind_file_input()
|
18
|
-
|
19
|
-
$progress_bar = $($upload_form).append('<div class="progress"><div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0;"></div></div>').find('.progress-bar')
|
20
20
|
total_size = 0; (total_size += file.size for file in files)
|
21
|
-
|
22
|
-
|
23
|
-
$(this).find("input[type=submit]").attr("disabled", true)
|
24
|
-
$(document).on "upload:success", $upload_form, (e) ->
|
25
|
-
total_uploaded += e.originalEvent.detail.file.size
|
26
|
-
progress = parseInt(total_uploaded/total_size * 100, 10)
|
27
|
-
$progress_bar.css('width', "#{progress}%").attr('aria-valuenow', progress)
|
28
|
-
setTimeout((-> $progress_bar.parent().remove()), 2000) !$upload_form.find("input.uploading").length
|
29
|
-
$(document).on "upload:failed", $upload_form, (e) ->
|
30
|
-
$(this).addClass("upload-failed").append("<p>Something went wrong, please check your connection and try again</p>")
|
31
|
-
|
32
|
-
bind_file_input = ->
|
33
|
-
$file_input.on 'change', upload_files
|
21
|
+
$progress_bar.parent().show()
|
34
22
|
|
35
|
-
|
23
|
+
$(document).on 'change', file_input_selector, upload_files
|
24
|
+
$(document).on "upload:success", $upload_form, (e) ->
|
25
|
+
total_uploaded += e.originalEvent.detail.file.size
|
26
|
+
progress = parseInt(total_uploaded/total_size * 100, 10)
|
27
|
+
$progress_bar.css('width', "#{progress}%").attr('aria-valuenow', progress)
|
28
|
+
if !$upload_form.find("input.uploading").length
|
29
|
+
$upload_form.submit()
|
30
|
+
setTimeout((-> $progress_bar.css('width', "0%").parent().hide()), 1000)
|
31
|
+
$(document).on "upload:failure", $upload_form, (e) ->
|
32
|
+
$(this).addClass("upload-failed").append("<p>Something went wrong, please check your connection and try again</p>")
|
33
|
+
$(document).on "upload:complete", $upload_form, (e) ->
|
34
|
+
console.log("Complete")
|
35
|
+
if !$upload_form.find("input.uploading").length
|
36
|
+
# Reset the file input, so that it can be used again
|
37
|
+
$.get presigned_upload_field_url
|
@@ -46,7 +46,7 @@ create_ace_toolbar = (editor, assets_modal_url, pages_modal_url) ->
|
|
46
46
|
]
|
47
47
|
actions = [
|
48
48
|
$("<a href='javascript:void(0);' data-command='bold'><i class='fa fa-bold'></i></a>"),
|
49
|
-
$("<a href='javascript:void(0);' data-command='
|
49
|
+
$("<a href='javascript:void(0);' data-command='italic'><i class='fa fa-italic'></i></a>"),
|
50
50
|
heading_dropdown,
|
51
51
|
$("<a href='javascript:void(0);'><i class='fa fa-link'></i></a>").click(-> open_link_selector(pages_modal_url, editor))
|
52
52
|
$("<a href='javascript:void(0);'>Image</a>").click(-> open_asset_selector(assets_modal_url, editor))
|
@@ -89,10 +89,16 @@ open_link_selector = (url, editor) ->
|
|
89
89
|
$form = $modal.find('form')
|
90
90
|
$label_field = $form.find('input[name="label"]')
|
91
91
|
|
92
|
+
$label_field.on 'keypress', ->
|
93
|
+
$(this).data('custom-text', true)
|
94
|
+
|
92
95
|
$modal.on 'shown.bs.modal', ->
|
93
|
-
$label_field.val(editor.getSelectedText()) if !editor.selection.isEmpty()
|
96
|
+
$label_field.val(editor.getSelectedText()).trigger('keypress') if !editor.selection.isEmpty()
|
94
97
|
.trigger('shown.bs.modal')
|
95
98
|
|
99
|
+
$modal.on 'hidden.bs.modal', ->
|
100
|
+
$modal.find('form').trigger('reset')
|
101
|
+
|
96
102
|
$url_fields = $form.find('select[name="page"], input[name="url"]')
|
97
103
|
$form.find('select[name="type"]').on 'change', (e) ->
|
98
104
|
$url_fields.closest('.form-group').addClass('hidden')
|
@@ -100,7 +106,7 @@ open_link_selector = (url, editor) ->
|
|
100
106
|
.change()
|
101
107
|
|
102
108
|
$form.find('select[name="page"]').on 'change', (e) ->
|
103
|
-
$label_field.val($(this).find('option:selected').text().replace(/^[- ]+/, '')) if !$label_field.
|
109
|
+
$label_field.val($(this).find('option:selected').text().replace(/^[- ]+/, '')) if !$label_field.data('custom-text')
|
104
110
|
|
105
111
|
$modal.find('.btn.select').click ->
|
106
112
|
$form.submit()
|
@@ -113,7 +119,6 @@ open_link_selector = (url, editor) ->
|
|
113
119
|
link_string = link_string + '{:target="_blank"}' if form.open_in_new_tab.checked
|
114
120
|
editor.insert(link_string)
|
115
121
|
$modal.modal('toggle')
|
116
|
-
$form.trigger('reset')
|
117
122
|
editor.focus()
|
118
123
|
return false
|
119
124
|
|
@@ -3,7 +3,7 @@ module Smithy
|
|
3
3
|
include AssetsHelper
|
4
4
|
delegate :params, :link_to, :image_tag, :number_to_human_size, :attachment_url, :attachment_image_tag, :file_type_icon, :check_box_tag, :render, to: :@view
|
5
5
|
|
6
|
-
def initialize(view, view_type)
|
6
|
+
def initialize(view, view_type='index_view')
|
7
7
|
@view = view
|
8
8
|
@view_type = view_type
|
9
9
|
end
|
@@ -38,7 +38,8 @@ module Smithy
|
|
38
38
|
asset_preview_link(asset),
|
39
39
|
asset.name,
|
40
40
|
number_to_human_size(asset.file_size),
|
41
|
-
asset.file_content_type
|
41
|
+
asset.file_content_type,
|
42
|
+
asset.updated_at.strftime('%b %e, %Y %H:%M:%S')
|
42
43
|
]
|
43
44
|
else
|
44
45
|
[
|
@@ -47,6 +48,7 @@ module Smithy
|
|
47
48
|
asset.name,
|
48
49
|
number_to_human_size(asset.file_size),
|
49
50
|
asset.file_content_type,
|
51
|
+
asset.updated_at.strftime('%b %e, %Y %H:%M:%S'),
|
50
52
|
render(partial: '/smithy/assets/actions', formats: :html, locals: { asset: asset })
|
51
53
|
]
|
52
54
|
end
|
@@ -75,7 +77,11 @@ module Smithy
|
|
75
77
|
end
|
76
78
|
|
77
79
|
def sort_column
|
78
|
-
|
80
|
+
if @view_type == 'selector_view'
|
81
|
+
columns = %w[url preview name file_size file_content_type updated_at]
|
82
|
+
else
|
83
|
+
columns = %w[delete preview name file_size file_content_type updated_at actions]
|
84
|
+
end
|
79
85
|
columns[params[:order][:"0"][:column].to_i]
|
80
86
|
end
|
81
87
|
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%= link_to "Copy URL", asset
|
1
|
+
<%= link_to "Copy URL", asset_path(asset), class: "btn btn-primary btn-xs copy-to-clipboard", data: { 'clipboard-text' => asset_path(asset) } %>
|
2
2
|
<%= link_to "Edit", [:edit, asset], class: "btn btn-primary btn-xs" %>
|
3
3
|
<%= link_to "Delete", asset, class: "btn btn-danger btn-xs", method: :delete, data: { confirm: "Are you sure?" } %>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<%= f.inputs do %>
|
6
6
|
<a id="choose-files" data-presigned-upload-field-url="<%= presigned_upload_field_asset_source_path(@asset_source) %>" class="btn btn-default" href="javascript:void(0);"><%= icon('cloud-upload') %> Upload files</a>
|
7
7
|
<div id="presigned_upload_field" style="display:none;"><%= f.attachment_field :assets_files, multiple: true, direct: true, presigned: true %></div>
|
8
|
-
<%= f.action :submit,
|
8
|
+
<%= f.action :submit, button_html: { style: 'display:none;' } %>
|
9
9
|
<% end %>
|
10
10
|
<% end %>
|
11
11
|
</div>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<%= semantic_form_for 'Asset', as: "assets", url: batch_destroy_assets_path, remote: true do |f| %>
|
15
15
|
<%= f.action :submit, label: 'Delete Selected', button_html: { id: "delete_selected_assets", class: 'btn btn-danger', style: "display:none;" } %>
|
16
16
|
|
17
|
-
<%= content_tag :table, id: "assets", class: "table table-striped responsive no-wrap display", data: { source: "#{ assets_url(format: "json") }" } do %>
|
17
|
+
<%= content_tag :table, id: "assets", class: "table table-striped responsive no-wrap display", data: { source: "#{ assets_url(format: "json") }", order: '[[ 5, "desc" ]]' } do %>
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<%= content_tag :th, check_box_tag("assets_table_select_all"), class: 'column_delete', style: 'width:20px;', data: { orderable: false, searchable: false } %>
|
@@ -22,6 +22,7 @@
|
|
22
22
|
<th>Name</th>
|
23
23
|
<th>Size</th>
|
24
24
|
<th>Type</th>
|
25
|
+
<th>Last Updated</th>
|
25
26
|
<%= content_tag :th, "Actions", data: { orderable: false, searchable: false } %>
|
26
27
|
</tr>
|
27
28
|
</thead>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Insert Image(s)
|
3
3
|
<% end %>
|
4
4
|
<div>
|
5
|
-
<%= content_tag :table, id: "assets", class: "table table-striped no-wrap display", data: { source: "#{ assets_url(format: "json", type: :selector_view) }" } do %>
|
5
|
+
<%= content_tag :table, id: "assets", class: "table table-striped no-wrap display", data: { source: "#{ assets_url(format: "json", type: :selector_view) }", order: '[[ 5, "desc" ]]' } do %>
|
6
6
|
<thead>
|
7
7
|
<tr>
|
8
8
|
<%= content_tag :th, "", data: { orderable: false, searchable: false, visible: false } %>
|
@@ -10,6 +10,7 @@
|
|
10
10
|
<th>Name</th>
|
11
11
|
<th>Size</th>
|
12
12
|
<th>Type</th>
|
13
|
+
<th>Last Updated</th>
|
13
14
|
</tr>
|
14
15
|
</thead>
|
15
16
|
<% end %>
|
data/lib/smithy/version.rb
CHANGED