diff --git a/app/assets/javascripts/admin/filemanager.js b/app/assets/javascripts/admin/filemanager.js index 1e2e9e8..f005317 100644 --- a/app/assets/javascripts/admin/filemanager.js +++ b/app/assets/javascripts/admin/filemanager.js @@ -1,3 +1,5 @@ +var insertBtn, deleteBtn, language, funcNum, url = null; + !function ($) { $.fn.checkListLength = function (param){ _defaultSettings = { @@ -30,41 +32,27 @@ $(function () { }); }); $(document).ready(function(){ - var insertBtn = $("#insert_btn"), - deleteBtn = $("#delete_btn"), - url = null; + insertBtn = $("#insert_btn"); + deleteBtn = $("#delete_btn"); - var showPreview = function(elem){ - var type = $("#ext_" + elem.val()).val(), - imgexp = new RegExp(/(\.|\/)(gif|jpe?g|png)$/i), - otherexp = new RegExp(/(\.|\/)(pdf|doc|docx|ppt|pptx|xls|xlsx)$/i) - img = $(""), - preview = $( ".preview-area" ); - preview.text("Preview is loading..."); - if( imgexp.test(type) ){ - var url = $("#url_" + elem.val()).val(); - img.attr("src",url).load(function(){ - var ratio = this.width / this.height, - targetWidth = targetHeight = 200; - if( ratio < 1 ){ - targetWidth = targetHeight * ratio; - }else{ - targetHeight = targetWidth / ratio; - } - img.height(targetHeight).width(targetWidth); - preview.html(img); - }) - }else if( otherexp.test(type) ) { - var t = type.replace(".",""), - url = "/assets/ft-icons/" + t + "/" + t + "-128_32.png"; - img.attr('src', url).load(function(){ - preview.html(img); - }); - }else{ - preview.html("Preview not available."); - } - } + initAssets(); + funcNum = getUrlParam( 'CKEditorFuncNum' ), + t = getUrlParam('CKEditor').split("_"), + language = t[t.length-1]; + + language = (language == "tw" ? "zh_tw" : language); + +}) + +function getUrlParam( paramName ) { + var reParam = new RegExp( '(?:[\?&]|&)' + paramName + '=([^&]+)', 'i' ); + var match = window.location.search.match(reParam); + + return ( match && match.length > 1 ) ? match[ 1 ] : null; +} + +var initAssets = function(){ $("#asset_sort_list").on(clickEvent,"input[type=checkbox]",function(){ if($("#asset_sort_list input[type=checkbox]:checked").length == 1){ url = window.location.protocol + "//" + window.location.host + $("#url_" + $("input[type=checkbox]:checked").val()).val(); @@ -86,7 +74,7 @@ $(document).ready(function(){ if(url){ window.opener.CKEDITOR.tools.callFunction( funcNum, url, function() { var element, - dialog = this.getDialog(); + dialog = this.getDialog(); if ( dialog.getName() == 'image' ) { element = dialog.getContentElement( 'info', 'txtAlt' ); if ( element ) @@ -98,7 +86,10 @@ $(document).ready(function(){ }) deleteBtn.bind( clickEvent,function(){ var items_to_delete = [], - type = getUrlParam("type"); + type = getUrlParam("type"); + + $( ".preview-area" ).empty(); + $("input[type=checkbox]:checked").each(function(){ items_to_delete.push($(this).val()); }) @@ -109,7 +100,8 @@ $(document).ready(function(){ var currentEdit = null; $(document).on("ajax:success","form[data-remote=true]",function(evt, data, xhr){ if(currentEdit){ - currentEdit.replaceWith($(data)); + $('#assets_content').html($(data)); + initAssets(); $("#editform").modal("hide"); } }) @@ -125,17 +117,35 @@ $(document).ready(function(){ $("#editform").on("hidden",function(){ currentEdit = null; }) +} - function getUrlParam( paramName ) { - var reParam = new RegExp( '(?:[\?&]|&)' + paramName + '=([^&]+)', 'i' ) ; - var match = window.location.search.match(reParam) ; - - return ( match && match.length > 1 ) ? match[ 1 ] : null ; +var showPreview = function(elem){ + var type = $("#ext_" + elem.val()).val(), + imgexp = new RegExp(/(\.|\/)(gif|jpe?g|png)$/i), + otherexp = new RegExp(/(\.|\/)(pdf|doc|docx|ppt|pptx|xls|xlsx)$/i) + img = $(""), + preview = $( ".preview-area" ); + preview.text("Preview is loading..."); + if( imgexp.test(type) ){ + var url = $("#url_" + elem.val()).val(); + img.attr("src",url).load(function(){ + var ratio = this.width / this.height, + targetWidth = targetHeight = 200; + if( ratio < 1 ){ + targetWidth = targetHeight * ratio; + }else{ + targetHeight = targetWidth / ratio; + } + img.height(targetHeight).width(targetWidth); + preview.html(img); + }) + }else if( otherexp.test(type) ) { + var t = type.replace(".",""), + url = "/assets/ft-icons/" + t + "/" + t + "-128_32.png"; + img.attr('src', url).load(function(){ + preview.html(img); + }); + }else{ + preview.html("Preview not available."); } - var funcNum = getUrlParam( 'CKEditorFuncNum' ), - t = getUrlParam('CKEditor').split("_"), - language = t[t.length-1]; - - language = (language == "tw" ? "zh_tw" : language); - -}) \ No newline at end of file +} \ No newline at end of file diff --git a/app/controllers/admin/assets_controller.rb b/app/controllers/admin/assets_controller.rb index 7b3f632..950391c 100644 --- a/app/controllers/admin/assets_controller.rb +++ b/app/controllers/admin/assets_controller.rb @@ -2,7 +2,7 @@ class Admin::AssetsController < OrbitAdminController def index @assets = current_user.assets - @assets = @assets.page(params[:page]).per(10) + @assets = @assets.order_by(:created_at=>'desc').page(params[:page]).per(10) render :layout => "assets" end @@ -22,6 +22,10 @@ class Admin::AssetsController < OrbitAdminController def update @asset = Asset.find(params[:id]) @asset.update_attributes(asset_params) + + @assets = current_user.assets + @assets = @assets.order_by(:created_at=>'desc').page(params[:page]).per(10) + if asset_params['data'].blank? render layout: false else @@ -39,7 +43,8 @@ class Admin::AssetsController < OrbitAdminController def delete_files Asset.where(:id.in=>params[:files]).destroy - @assets = current_user.assets.page(params[:page]).per(10) + @assets = current_user.assets + @assets = @assets.order_by(:created_at=>'desc').page(params[:page]).per(10) end def file_upload diff --git a/app/views/admin/assets/_asset.html.erb b/app/views/admin/assets/_asset.html.erb index 57bddb9..1351656 100644 --- a/app/views/admin/assets/_asset.html.erb +++ b/app/views/admin/assets/_asset.html.erb @@ -1,17 +1,35 @@ - - - <%= check_box_tag 'files[]', asset.id, false, :class => "checkbox_in_list" %> - - <% @site_in_use_locales.each_with_index do |locale, i| %> - - + + + + + + + + + + + + <% @assets.each do |asset| %> + + + + + + + <% end %> - - - - - - - \ No newline at end of file + +
<%= t(:filename) %><%= t(:size) %><%= t(:description) %>
+ <%= check_box_tag 'files[]', asset.id, false, :class => "checkbox_in_list" %> + + <% @site_in_use_locales.each_with_index do |locale, i| %> + + + <% end %> + + <%= asset.title_translations[I18n.locale.to_s] rescue nil %><%= number_to_human_size(asset.data.file.size) rescue nil %><%= asset.description rescue nil %> + <%= t(:edit) %> +
<%= asset.title_translations[I18n.locale.to_s] rescue nil %><%= number_to_human_size(asset.data.file.size) rescue nil %><%= asset.description rescue nil %> - <%= t(:edit) %> -
+ \ No newline at end of file diff --git a/app/views/admin/assets/delete_files.js.erb b/app/views/admin/assets/delete_files.js.erb index 2be7f19..b53f4cd 100644 --- a/app/views/admin/assets/delete_files.js.erb +++ b/app/views/admin/assets/delete_files.js.erb @@ -1,2 +1,2 @@ -$("#tbody_assets").html("<%= j render :partial => 'asset', :collection => @assets %>"); -$("#asset_pagination").html("<%= j paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); \ No newline at end of file +$("#assets_content").html("<%= j render :partial => 'asset' %>"); +initAssets(); \ No newline at end of file diff --git a/app/views/admin/assets/index.html.erb b/app/views/admin/assets/index.html.erb index e63423e..b584ec8 100644 --- a/app/views/admin/assets/index.html.erb +++ b/app/views/admin/assets/index.html.erb @@ -231,22 +231,8 @@ - - - - - - - - - - - - <%= render :partial => 'asset', :collection => @assets %> - -
<%= t(:filename) %><%= t(:size) %><%= t(:description) %>
-
diff --git a/app/views/admin/assets/index.js.erb b/app/views/admin/assets/index.js.erb new file mode 100644 index 0000000..8043fd4 --- /dev/null +++ b/app/views/admin/assets/index.js.erb @@ -0,0 +1,2 @@ +$('#assets_content').html("<%= j render partial: 'asset' %>"); +initAssets(); \ No newline at end of file diff --git a/app/views/admin/assets/update.html.erb b/app/views/admin/assets/update.html.erb index 9154b69..d85a02b 100644 --- a/app/views/admin/assets/update.html.erb +++ b/app/views/admin/assets/update.html.erb @@ -1 +1 @@ -<%= render :partial => 'asset', :object => @asset %> \ No newline at end of file +<%= render partial: 'asset' %> \ No newline at end of file