diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index 32f6ed1..10d281f 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -114,7 +114,7 @@ class CmsController < MyProfileController @success_back_to = params[:success_back_to] # user must choose an article type first - @parent = profile.articles.find(params[:parent_id]) if params && params[:parent_id] + @parent = profile.articles.find(params[:parent_id]) if params && params[:parent_id].present? record_coming @type = params[:type] if @type.blank? @@ -159,7 +159,10 @@ class CmsController < MyProfileController if continue redirect_to :action => 'edit', :id => @article else - success_redirect + respond_to do |format| + format.html { success_redirect } + format.json { render :text => {:id => @article.id, :full_name => profile.identifier + '/' + @article.full_name}.to_json } + end end return end diff --git a/app/views/cms/_text_editor_sidebar.html.erb b/app/views/cms/_text_editor_sidebar.html.erb index 2617d89..2cba8f3 100644 --- a/app/views/cms/_text_editor_sidebar.html.erb +++ b/app/views/cms/_text_editor_sidebar.html.erb @@ -15,6 +15,7 @@ :parent_id, profile, default_folder, {}, {}, "type='Folder' or type='Gallery'" ) %> + <%= 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})) %>
<%= file_field_tag('file', :multiple => true) %>
<% end %> diff --git a/public/javascripts/media-panel.js b/public/javascripts/media-panel.js index f37c878..4ff0f84 100644 --- a/public/javascripts/media-panel.js +++ b/public/javascripts/media-panel.js @@ -84,3 +84,36 @@ jQuery("#published-media #q").typeWatch({ }); jQuery("#published-media #q").bind('notext', function(){ loadPublishedMedia() }); + +jQuery("#new_folder").keypress(function( event ) { + if ( event.which == 13 ) { + event.preventDefault(); + var url = jQuery(this).data('url'); + var name = jQuery(this).val(); + var parent_id = jQuery("#media-upload-box #parent_id").val(); + jQuery('#media-upload-form').addClass('fetching'); + jQuery.ajax({ + url: url, + type: 'POST', + data: { + 'parent_id': parent_id, + 'article': {'name': name, 'published': true}, + 'type': 'Folder' }, + dataType: 'json', + success: function(response) { + var option_selected = "