Commit 6ffda996a3dede36171c487488cf3c1c7d861525
1 parent
e643284a
Exists in
master
and in
27 other branches
[media-panel-improvements] Create folder on dialog
Showing
4 changed files
with
60 additions
and
34 deletions
Show diff stats
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +<%= form_tag({:action => 'new', :profile => profile.identifier}, :id => 'new-folder-dialog', :title => _('Create new folder'), :style => 'display: none;') do %> | ||
2 | + <%= select_profile_folder( | ||
3 | + _('Choose parent folder:'), | ||
4 | + :parent_id, profile, default_folder, {}, {}, | ||
5 | + "type='Folder' or type='Gallery'") | ||
6 | + %> | ||
7 | + | ||
8 | + <%= content_tag(:label, radio_button_tag(:folder_type, 'Gallery', true) + _('Gallery')) %> | ||
9 | + <%= content_tag(:label, radio_button_tag(:folder_type, 'Folder', false) + _('Folder')) %> | ||
10 | + | ||
11 | + <%= labelled_form_field _('Name:'), text_field_tag(:new_folder, nil, 'data-url' => url_for({:action => 'new', :profile => profile.identifier})) %> | ||
12 | + <% button_bar do %> | ||
13 | + <%= submit_button(:newfolder, _('Create')) %> | ||
14 | + <% end %> | ||
15 | +<% end %> |
app/views/cms/_text_editor_sidebar.html.erb
1 | +<% default_folder = content_id_to_str default_folder_for_image_upload(profile) %> | ||
2 | + | ||
1 | <div class='text-editor-sidebar'> | 3 | <div class='text-editor-sidebar'> |
2 | <span class='button-add' data-value='<%= _('Add to the text') %>'></span> | 4 | <span class='button-add' data-value='<%= _('Add to the text') %>'></span> |
3 | <span class='button-zoom' data-value='<%= _('Zoom in') %>'></span> | 5 | <span class='button-zoom' data-value='<%= _('Zoom in') %>'></span> |
@@ -10,14 +12,13 @@ | @@ -10,14 +12,13 @@ | ||
10 | <div id='media-upload-form'> | 12 | <div id='media-upload-form'> |
11 | <%= form_tag({ :action => 'media_upload' }, :multipart => true) do %> | 13 | <%= form_tag({ :action => 'media_upload' }, :multipart => true) do %> |
12 | <div class='formfield'> | 14 | <div class='formfield'> |
13 | - <% default_folder = content_id_to_str default_folder_for_image_upload(profile) %> | ||
14 | <%= select_profile_folder( | 15 | <%= select_profile_folder( |
15 | _('Choose folder to upload files:'), | 16 | _('Choose folder to upload files:'), |
16 | :parent_id, profile, default_folder, {}, {}, | 17 | :parent_id, profile, default_folder, {}, {}, |
17 | "type='Folder' or type='Gallery'" | 18 | "type='Folder' or type='Gallery'" |
18 | ) %> | 19 | ) %> |
19 | - <%= labelled_form_field _('Or create a folder under the selected above:'), text_field_tag(:new_folder, nil, 'data-url' => url_for({:action => 'new', :profile => profile.identifier})) %> | ||
20 | </div> | 20 | </div> |
21 | + <%= button(:newfolder, _('New folder'), '#', :id => 'new-folder-button') %> | ||
21 | <p><%= file_field_tag('file', :multiple => true) %></p> | 22 | <p><%= file_field_tag('file', :multiple => true) %></p> |
22 | <% end %> | 23 | <% end %> |
23 | </div> | 24 | </div> |
@@ -46,4 +47,5 @@ | @@ -46,4 +47,5 @@ | ||
46 | </div> | 47 | </div> |
47 | </script> | 48 | </script> |
48 | 49 | ||
50 | +<%= render :partial => 'media_new_folder', :locals => {:default_folder => default_folder} %> | ||
49 | <%= javascript_include_tag 'jquery.fileupload.js', 'tmpl.js', 'media-panel.js' %> | 51 | <%= javascript_include_tag 'jquery.fileupload.js', 'tmpl.js', 'media-panel.js' %> |
public/javascripts/media-panel.js
@@ -85,40 +85,44 @@ jQuery("#published-media #q").typeWatch({ | @@ -85,40 +85,44 @@ jQuery("#published-media #q").typeWatch({ | ||
85 | 85 | ||
86 | jQuery("#published-media #q").bind('notext', function(){ loadPublishedMedia() }); | 86 | jQuery("#published-media #q").bind('notext', function(){ loadPublishedMedia() }); |
87 | 87 | ||
88 | -jQuery("#new_folder").keypress(function( event ) { | ||
89 | - if ( event.which == 13 ) { | ||
90 | - event.preventDefault(); | ||
91 | - var url = jQuery(this).data('url'); | ||
92 | - var name = jQuery(this).val(); | ||
93 | - var parent_id = jQuery("#media-upload-box #parent_id").val(); | ||
94 | - jQuery('#media-upload-form').addClass('fetching'); | ||
95 | - jQuery.ajax({ | ||
96 | - url: url, | ||
97 | - type: 'POST', | ||
98 | - data: { | ||
99 | - 'parent_id': parent_id, | ||
100 | - 'article': {'name': name, 'published': true}, | ||
101 | - 'type': 'Folder' }, | ||
102 | - dataType: 'json', | ||
103 | - success: function(response) { | ||
104 | - var option_selected = "<option value='"+ response.id +"' selected='selected'>"+ response.full_name +"</options>" | ||
105 | - var option = "<option value='"+ response.id +"'>"+ response.full_name +"</options>" | ||
106 | - jQuery('#media-upload-form #parent_id').append(option_selected); | ||
107 | - jQuery('#published-media #parent_id').append(option); | ||
108 | - jQuery('#new_folder').val(''); | ||
109 | - }, | ||
110 | - error: function(response, textStatus, xhr) { | ||
111 | - console.log(response); | ||
112 | - console.log(textStatus); | ||
113 | - }, | ||
114 | - complete: function(response){ | ||
115 | - jQuery('#media-upload-form').removeClass('fetching'); | ||
116 | - } | ||
117 | - }); | ||
118 | - } | 88 | +jQuery("#new-folder-dialog").submit(function( event ) { |
89 | + var name = jQuery('#new_folder').val(); | ||
90 | + var parent_id = jQuery("#new-folder-dialog #parent_id").val(); | ||
91 | + jQuery("#media-upload-box #parent_id").val(); | ||
92 | + jQuery.ajax({ | ||
93 | + url: this.action, | ||
94 | + type: 'POST', | ||
95 | + data: { | ||
96 | + 'parent_id': parent_id, | ||
97 | + 'article': {'name': name, 'published': true}, | ||
98 | + 'type': jQuery('input[name=folder_type]:checked').val() }, | ||
99 | + dataType: 'json', | ||
100 | + beforeSend: function(){jQuery("#new-folder-dialog").addClass('fetching')}, | ||
101 | + success: function(response) { | ||
102 | + var option_selected = "<option value='"+ response.id +"' selected='selected'>"+ response.full_name +"</options>" | ||
103 | + var option = "<option value='"+ response.id +"'>"+ response.full_name +"</options>" | ||
104 | + jQuery('#media-upload-form #parent_id').append(option_selected); | ||
105 | + jQuery('#published-media #parent_id').append(option); | ||
106 | + jQuery('#new_folder').val(''); | ||
107 | + }, | ||
108 | + error: function(response, textStatus, xhr) { | ||
109 | + console.log(response); | ||
110 | + console.log(textStatus); | ||
111 | + }, | ||
112 | + complete: function(response){ | ||
113 | + jQuery("#new-folder-dialog").removeClass('fetching'); | ||
114 | + jQuery("#new-folder-dialog").dialog('close'); | ||
115 | + } | ||
116 | + }); | ||
117 | + return false; | ||
119 | }); | 118 | }); |
120 | 119 | ||
121 | jQuery('.text-editor-sidebar .header .icon-vertical-toggle').click(function(){ | 120 | jQuery('.text-editor-sidebar .header .icon-vertical-toggle').click(function(){ |
122 | jQuery('#content').toggleClass('show-media-panel'); | 121 | jQuery('#content').toggleClass('show-media-panel'); |
123 | return false; | 122 | return false; |
124 | }); | 123 | }); |
124 | + | ||
125 | +jQuery('#new-folder-button').click(function(){ | ||
126 | + jQuery('#new-folder-dialog').dialog({modal: true}); | ||
127 | + return false; | ||
128 | +}); |
public/stylesheets/application.css
@@ -3525,7 +3525,7 @@ table.cms-articles .icon:hover { | @@ -3525,7 +3525,7 @@ table.cms-articles .icon:hover { | ||
3525 | } | 3525 | } |
3526 | 3526 | ||
3527 | .show-media-panel .text-editor-sidebar { | 3527 | .show-media-panel .text-editor-sidebar { |
3528 | - max-height: 800px; | 3528 | + max-height: 1200px; |
3529 | transition: 1s 0.5s; | 3529 | transition: 1s 0.5s; |
3530 | } | 3530 | } |
3531 | 3531 | ||
@@ -3627,6 +3627,7 @@ table.cms-articles .icon:hover { | @@ -3627,6 +3627,7 @@ table.cms-articles .icon:hover { | ||
3627 | .text-editor-sidebar select, | 3627 | .text-editor-sidebar select, |
3628 | .text-editor-sidebar input { | 3628 | .text-editor-sidebar input { |
3629 | width: 100%; | 3629 | width: 100%; |
3630 | + margin-bottom: 5px; | ||
3630 | } | 3631 | } |
3631 | 3632 | ||
3632 | .text-editor-sidebar .items :hover, | 3633 | .text-editor-sidebar .items :hover, |
@@ -6940,3 +6941,7 @@ li.profile-activity-item.upload_image .activity-gallery-images-count-1 img { | @@ -6940,3 +6941,7 @@ li.profile-activity-item.upload_image .activity-gallery-images-count-1 img { | ||
6940 | .fetching { | 6941 | .fetching { |
6941 | opacity: 0.3; | 6942 | opacity: 0.3; |
6942 | } | 6943 | } |
6944 | + | ||
6945 | +body .ui-widget-overlay { | ||
6946 | + background: #000; | ||
6947 | +} |