file manger preview and pagination is done.

This commit is contained in:
Harry Bomrah 2013-12-11 14:37:46 +08:00 committed by saurabhbhatia
parent 800f108be3
commit a02cd97880
6 changed files with 51 additions and 21 deletions

View File

@ -33,14 +33,47 @@ $(document).ready(function(){
var insertBtn = $("#insert_btn"), var insertBtn = $("#insert_btn"),
deleteBtn = $("#delete_btn"), deleteBtn = $("#delete_btn"),
url = null; url = 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 = $("<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.");
}
}
$("#asset_sort_list").on(clickEvent,"input[type=checkbox]",function(){ $("#asset_sort_list").on(clickEvent,"input[type=checkbox]",function(){
if($("#asset_sort_list input[type=checkbox]:checked").length == 1){ if($("#asset_sort_list input[type=checkbox]:checked").length == 1){
url = window.location.protocol + "//" + window.location.host + $("#url_" + $("input[type=checkbox]:checked").val()).val(); url = window.location.protocol + "//" + window.location.host + $("#url_" + $("input[type=checkbox]:checked").val()).val();
insertBtn.show(); insertBtn.show();
showPreview($("input[type=checkbox]:checked"))
}else{ }else{
insertBtn.hide(); insertBtn.hide();
url = null; url = null;
$( ".preview-area" ).empty();
} }
if($("#asset_sort_list input[type=checkbox]:checked").length) if($("#asset_sort_list input[type=checkbox]:checked").length)
deleteBtn.show(); deleteBtn.show();

View File

@ -26,8 +26,8 @@ CKEDITOR.editorConfig = function( config ) {
// config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images'; // config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
// config.filebrowserUploadUrl = '/uploader/upload.php'; // config.filebrowserUploadUrl = '/uploader/upload.php';
config.filebrowserBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path %>?module_app_id=<%= ModuleApp.first(conditions: {title: 'Asset'}).id.to_s %>"; config.filebrowserBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path(:module_app_id=>ModuleApp.where(:key=>'asset').first.id) %>";
config.filebrowserImageBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path %>?type=images&module_app_id=<%= ModuleApp.first(conditions: {title: 'Asset'}).id.to_s %>"; config.filebrowserImageBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path(:type=>'image',:module_app_id=>ModuleApp.where(:key=>'asset').first.id) %>";
// config.filebrowserUploadUrl = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>"; // config.filebrowserUploadUrl = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>";
// config.contentsCss = '/orbit_4.0.1/assets/javascripts/lib/ckeditor/plugins/stylesheetparser/samples/assets/sample.css'; // config.contentsCss = '/orbit_4.0.1/assets/javascripts/lib/ckeditor/plugins/stylesheetparser/samples/assets/sample.css';

View File

@ -3,8 +3,8 @@ class Admin::AssetsController < OrbitBackendController
before_filter :setup_vars before_filter :setup_vars
def index def index
@assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at).page(params[:page]).per(10) @assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at)
if params[:type] == "images" if params[:type] == "image"
@assets = @assets.where(:content_type => /^image/) @assets = @assets.where(:content_type => /^image/)
end end
@tag = ModuleTag.new @tag = ModuleTag.new
@ -12,6 +12,8 @@ class Admin::AssetsController < OrbitBackendController
@module_app = ModuleApp.find(params[:module_app_id]) rescue nil @module_app = ModuleApp.find(params[:module_app_id]) rescue nil
raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil? raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
@module_app_id = @module_app.id rescue nil @module_app_id = @module_app.id rescue nil
@assets = @assets.page(params[:page]).per(10)
render :layout => "assets" render :layout => "assets"
end end

View File

@ -6,6 +6,7 @@
<input type="hidden" value="<%= asset.description_translations[locale] rescue nil %>" id="<%= locale %>_desc_<%= asset.id %>" /> <input type="hidden" value="<%= asset.description_translations[locale] rescue nil %>" id="<%= locale %>_desc_<%= asset.id %>" />
<input type="hidden" value="<%= asset.title_translations[locale] rescue nil %>" id="<%= locale %>_title_<%= asset.id %>" /> <input type="hidden" value="<%= asset.title_translations[locale] rescue nil %>" id="<%= locale %>_title_<%= asset.id %>" />
<% end %> <% end %>
<input type="hidden" value="<%= File.extname(asset.data.url) %>" id="ext_<%= asset.id %>" />
</td> </td>
<td><%= asset.title_translations[I18n.locale.to_s] rescue nil %></td> <td><%= asset.title_translations[I18n.locale.to_s] rescue nil %></td>
<!-- <td> <!-- <td>
@ -20,7 +21,7 @@
<!-- <td><%#= asset.data.file.content_type rescue nil %></td> --> <!-- <td><%#= asset.data.file.content_type rescue nil %></td> -->
<td><%= number_to_human_size(asset.data.file.file_length) rescue nil %></td> <td><%= number_to_human_size(asset.data.file.file_length) rescue nil %></td>
<td><%= asset.description rescue nil %></td> <td><%= asset.description rescue nil %></td>
<td> <!-- <td>
<div class="label-group"> <div class="label-group">
<div class="label-td"> <div class="label-td">
<% asset.sorted_tags.each do |tag| %> <% asset.sorted_tags.each do |tag| %>
@ -28,7 +29,7 @@
<% end %> <% end %>
</div> </div>
</div> </div>
</td> </td> -->
<td> <td>
<a href="<%= edit_admin_asset_path(asset) %>" class="editform">Edit</a> <a href="<%= edit_admin_asset_path(asset) %>" class="editform">Edit</a>
</td> </td>

View File

@ -214,11 +214,14 @@
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane fade in active" id="filemanager"> <div class="tab-pane fade in active" id="filemanager">
<div class="input-area clearfix"> <div class="input-area clearfix">
<!-- <a href="<%= admin_module_tags_path(:module_app_id => @module_app_id.to_s) %>"> Tag Management </a> -->
<div id="panel_r" class="pull-right"> <div id="panel_r" class="pull-right">
preview is here <label>Preview</label>
<div class="preview-area">
</div>
</div> </div>
<div id="panel_l" class="tab-pane fade in active pull-left"> <div id="panel_l" class="tab-pane fade in active pull-left">
<lable>Search Box : </label>
<input type="text" name="filter" placeholder="Enter Filename" />
<table id="asset_sort_list" class="table main-list"> <table id="asset_sort_list" class="table main-list">
<thead> <thead>
<tr> <tr>
@ -226,7 +229,6 @@
<th>Name</th> <th>Name</th>
<th>Size</th> <th>Size</th>
<th>Description</th> <th>Description</th>
<th>Tags</th>
<th>Action</th> <th>Action</th>
</tr> </tr>
</thead> </thead>
@ -235,24 +237,13 @@
</tbody> </tbody>
</table> </table>
<div class="pagination pagination-centered"> <div class="pagination pagination-centered">
<ul> <%= paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :type => params[:type]}, :remote => true %>
<li><a href="#">«</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">»</a></li>
</ul>
</div> </div>
</div> </div>
</div> </div>
<div class="form-actions form-fixed pagination-right"> <div class="form-actions form-fixed pagination-right">
<button class="btn btn-primary" id="insert_btn" style="display:none;">Insert</button> <button class="btn btn-primary" id="insert_btn" style="display:none;">Insert</button>
<button class="btn btn-primary" id="delete_btn" style="display:none;">Delete</button> <button class="btn btn-primary" id="delete_btn" style="display:none;">Delete</button>
<div id="asset_pagination" class="paginationFixed">
<%= paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}, :remote => true %>
</div>
</div> </div>
</div> </div>
<div class="tab-pane fade" id="upload"> <div class="tab-pane fade" id="upload">

View File

@ -0,0 +1,3 @@
$("#tbody_assets").html("<%= j render :partial => 'asset', :collection => @assets %>");
$(".pagination").html("<%= j paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :type => params[:type]}, :remote => true %>");
$( ".preview-area" ).empty();