From c3bf5dccfe56a6453f11e9a99d62c1aa3fb1ee19 Mon Sep 17 00:00:00 2001 From: Nicolas Bally Date: Fri, 28 Nov 2014 23:16:19 +0100 Subject: [PATCH] data files manager --- app/assets/stylesheets/manager.scss | 116 ++++++++++++++++++ .../admin/file_folders_controller.rb | 6 +- .../admin/data_files/_data_file.html.haml | 4 +- .../_data_files_container.html.haml | 5 +- .../admin/data_files/_index_block.html.haml | 103 ++++++++-------- app/views/admin/data_files/index.html.haml | 4 +- .../admin/file_folders/_file_folder.html.haml | 11 +- .../file_folders/_file_folders.html.haml | 2 +- .../_file_folders_navbar.html.haml | 9 ++ app/views/admin/file_folders/new.js.erb | 4 +- 10 files changed, 192 insertions(+), 72 deletions(-) create mode 100644 app/views/admin/file_folders/_file_folders_navbar.html.haml diff --git a/app/assets/stylesheets/manager.scss b/app/assets/stylesheets/manager.scss index d263916..0579cb3 100644 --- a/app/assets/stylesheets/manager.scss +++ b/app/assets/stylesheets/manager.scss @@ -207,3 +207,119 @@ background:rgba(247,245,246,0.9); } + + + + + + + + + +/* Aperçu des images */ + +#data_files_navbar{ +left:300px; +background:rgba(247,245,246,0.9); +} + +#data_files_big_container{ + + position:absolute; + top:0px; + left:0px; + bottom:0px; + right:0px; + + + + + + #data_files_container{ + width:auto; + position:absolute; + top:0px; + left:300px; + bottom:0px; + right:0px; + overflow:auto; + background:white; + + padding:20px; + padding-bottom:60px; + } + #file_folders_navbar{ + position:absolute; + + width:299px; + bottom:0px; + left:0px; + border-top:1px solid rgba(191,191,191,1); + height:51px; + background:rgba(220,220,220,1); + a{ + color:#5e5e5e; + font-size:1.5em; + position:absolute; + top:10px; + + } + #add_file_folder{ + left:10px; + } + + #edit_current_file_folder{ + + right:10px; + } + + #remove_current_file_folder{ + + right:50px; + } + } + + #file_folders{ + padding-bottom:60px; + position:absolute; + top:0px; + width:300px; + bottom:0px; + left:0px; + overflow:auto; + background:rgba(230,230,230,1); + border-right:1px solid rgba(191,191,191,1); + + + + ul{ + padding-top: 1.2em; + li{ + border-top:1px solid rgba(191,191,191,0.5) ; + position:static; + + + a{ + position:static; + color:rgba(0,0,0,0.8); + &:hover, &.active{ + background:rgba(220,220,220,1); + + } + } + + #edit_current_file_folder{ + position:absolute; + top:10px; + } + + } + + + } + + } + + +} + diff --git a/app/controllers/admin/file_folders_controller.rb b/app/controllers/admin/file_folders_controller.rb index cd7f4bc..bdf3327 100644 --- a/app/controllers/admin/file_folders_controller.rb +++ b/app/controllers/admin/file_folders_controller.rb @@ -16,7 +16,7 @@ class Admin::FileFoldersController < ApplicationController @file_folder_create = true if @file_folder.save - @file_folders = FileFolder.all(:order => :name) + @file_folders = FileFolder.order(:name).all else render :action => :new @@ -32,7 +32,7 @@ class Admin::FileFoldersController < ApplicationController @file_folder_update = true if @file_folder.update_attributes(params.require(:file_folder).permit!) - @file_folders = FileFolder.all(:order => :name) + @file_folders = FileFolder.order(:name).all else render :action => :edit @@ -43,7 +43,7 @@ class Admin::FileFoldersController < ApplicationController @file_folder = FileFolder.find(params[:id]) if @file_folder.id != 1 @file_folder.delete - @file_folders = FileFolder.all(:order => :name) + @file_folders = FileFolder.order(:name).all end end diff --git a/app/views/admin/data_files/_data_file.html.haml b/app/views/admin/data_files/_data_file.html.haml index 8f24e98..c5f893e 100644 --- a/app/views/admin/data_files/_data_file.html.haml +++ b/app/views/admin/data_files/_data_file.html.haml @@ -14,9 +14,9 @@ =data_file.file_type %td =data_file.file.url - %td{:style => "width:100px;"} + %td{:style => "width:120px;text-align:right;"} =link_to i(:"download"), data_file.file.url = link_to i(:"trash-o"), admin_data_file_path(:id => data_file.id, :manager => params[:manager], :multiple => params[:multiple]), :data => {:confirm => 'Voulez-vous vraiment supprimer cette image ?'}, :method => :delete, :remote => true - = link_to i(:ok), "#",:onclick => "manager_send_data_file("+data_file.id.to_s+");return false;" if params[:manager] and !params[:multiple] + = link_to i(:check), "#",:onclick => "manager_send_data_file("+data_file.id.to_s+");return false;" if params[:manager] and !params[:multiple] diff --git a/app/views/admin/data_files/_data_files_container.html.haml b/app/views/admin/data_files/_data_files_container.html.haml index 09c0300..87ba304 100644 --- a/app/views/admin/data_files/_data_files_container.html.haml +++ b/app/views/admin/data_files/_data_files_container.html.haml @@ -1,3 +1,4 @@ -%table#data_files_container.table - %tbody#data_files=render @data_files +#data_files_container + %table.table + %tbody#data_files=render @data_files \ No newline at end of file diff --git a/app/views/admin/data_files/_index_block.html.haml b/app/views/admin/data_files/_index_block.html.haml index ff9428a..63e5dff 100644 --- a/app/views/admin/data_files/_index_block.html.haml +++ b/app/views/admin/data_files/_index_block.html.haml @@ -1,67 +1,70 @@ #data_files_content #data_files_big_container.container-fluid - .row-fluid - .span3#file_folders{:"data-file_folders_url" => admin_file_folders_url(:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple])} - =render :partial => "admin/file_folders/file_folders" + #file_folders=render :partial => "admin/file_folders/file_folders" + - .span9 - =render :partial => "data_files_container" + #file_folders_navbar + =render :partial => "admin/file_folders/file_folders_navbar" + + + + + =render :partial => "data_files_container" %form#fileupload{:action => admin_data_files_path(:id => @data_file.id, :file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]),:method=>"POST", :enctype=>"multipart/form-data", :style => "display:inline;"} %input{:name => "redirect", :type => "hidden", :value => "/"}/ - - .navbar.navbar-fixed-bottom{:style => "position:absolute;"} - .navbar-inner - .container-fluid + + + %nav.navbar.navbar-default.navbar-fixed-bottom#image_files_navbar{:style => "position:absolute;"} + + .container-fluid + + %ul.nav.navbar-nav.navbar-right - .pull-right{:style => ""} - - .fileupload-progress.fade{:style => "float:left;"} - #upload_details{:style => ""} - .content - .fileupload-buttonbar - %button.btn.btn-warning.cancel{:type => "reset"} - %i.icon-ban-circle.icon-white - %span Cancel upload - %span.fileupload-loading - - %table.table.table-striped{:role => "presentation"} - %tbody.ulpoad_files - - - - .progress-extended{:style => "float:left;padding: 10px;font-size:14px;line-height:20px;"} - + .fileupload-progress.fade{:style => "float:left;"} + #upload_details{:style => ""} + .content + .fileupload-buttonbar + %button.btn.btn-warning.cancel{:type => "reset"} + %i.icon-ban-circle.icon-white + %span Cancel upload + %span.fileupload-loading + + %table.table.table-striped{:role => "presentation"} + %tbody.ulpoad_files + + + + .progress-extended{:style => "float:left;padding: 10px;font-size:14px;line-height:20px;"} + + + .progress.progress-success.progress-striped.active{"aria-valuemax" => "100", "aria-valuemin" => "0", :role => "progressbar",:style => "width:200px;float:left;margin: 10px;height:20px;"} + .bar{:style => "width:0%;"} - .progress.progress-success.progress-striped.active{"aria-valuemax" => "100", "aria-valuemin" => "0", :role => "progressbar",:style => "width:200px;float:left;margin: 10px;height:20px;"} - .bar{:style => "width:0%;"} - - - - + + + .navbar-header + %span.navbar-brand Fichiers + + + + .collapse.navbar-collapse + %ul.nav.navbar-nav + %li + %a{:href => "#", :onclick => "$(this).next('input').click();return false;"} + %span.fileinput-button{} + %i.icon-plus.icon-white + %span Ajouter des fichiers + %input{:multiple => "", :name => "files[]", :type => "file", :style => "display:none;"} + + + - .brand Fichiers - - - - - - - .container.nav-collapse - %ul.nav - %li - %a{:href => "#", :onclick => "$(this).next('input').click();"} - %span.fileinput-button{} - %i.icon-plus.icon-white - %span Ajouter des fichiers - %input{:multiple => "", :name => "files[]", :type => "file", :style => "display:none;"} - - diff --git a/app/views/admin/data_files/index.html.haml b/app/views/admin/data_files/index.html.haml index 891b211..83dff9e 100644 --- a/app/views/admin/data_files/index.html.haml +++ b/app/views/admin/data_files/index.html.haml @@ -1,2 +1,2 @@ - -=render :partial => "index_block" \ No newline at end of file +%div{:style => ("position:absolute;bottom:0px;left:0px;right:0px;top:52px;" if !params[:manager])} + =render :partial => "index_block" \ No newline at end of file diff --git a/app/views/admin/file_folders/_file_folder.html.haml b/app/views/admin/file_folders/_file_folder.html.haml index 87851ac..727bcf9 100644 --- a/app/views/admin/file_folders/_file_folder.html.haml +++ b/app/views/admin/file_folders/_file_folder.html.haml @@ -2,13 +2,4 @@ =link_to file_folder.name, admin_data_files_path(:file_folder_id => file_folder.id, :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :class => "file_folder"+(" active" if file_folder.id == params[:file_folder_id].to_i).to_s, :id => "file_folder_"+file_folder.id.to_s,:"data-file_folder_id" => file_folder.id, :"data-file_folder_path" => admin_file_folder_path(:format => "js",:file_folder_id => file_folder.id, :manager => params[:manager], :multiple => params[:multiple], :id => file_folder.id), :"data-edit_file_folder_path" => edit_admin_file_folder_path(:format => "js",:file_folder_id => file_folder.id, :manager => params[:manager], :multiple => params[:multiple], :id => file_folder.id) - -if file_folder.id == params[:file_folder_id].to_i - - = link_to i(:pencil),edit_admin_file_folder_url(:id => params[:file_folder_id], :file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "edit_current_file_folder", :style => "display:inline-block; margin-right:5px;" - - = link_to i(:"trash-o"), admin_file_folder_url(:id => params[:file_folder_id],:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "remove_current_file_folder", :method => :delete, :confirm => "Voulez-vous vraiment supprimer cet file_folder ? Attention, toutes les images de celui-ci seront définitivement supprimées.", :style => "display:inline-block;" - - - - - + \ No newline at end of file diff --git a/app/views/admin/file_folders/_file_folders.html.haml b/app/views/admin/file_folders/_file_folders.html.haml index 6c45155..4b06e9e 100644 --- a/app/views/admin/file_folders/_file_folders.html.haml +++ b/app/views/admin/file_folders/_file_folders.html.haml @@ -2,5 +2,5 @@ =render @file_folders %li - = link_to i(:plus), new_admin_file_folder_url(:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "add_album" + =# link_to i(:plus), new_admin_file_folder_url(:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "add_album" diff --git a/app/views/admin/file_folders/_file_folders_navbar.html.haml b/app/views/admin/file_folders/_file_folders_navbar.html.haml new file mode 100644 index 0000000..a6ec442 --- /dev/null +++ b/app/views/admin/file_folders/_file_folders_navbar.html.haml @@ -0,0 +1,9 @@ += link_to ic(:plus), new_admin_file_folder_url(:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "add_file_folder" += link_to ic(:pencil),edit_admin_file_folder_url(:id => params[:file_folder_id], :file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "edit_current_file_folder", :style => "display:inline-block; margin-right:5px;" + += link_to ic(:"trash-o"), admin_file_folder_url(:id => params[:file_folder_id],:file_folder_id => params[:file_folder_id], :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :id => "remove_current_file_folder", :method => :delete, :"data-confirm" => "Voulez-vous vraiment supprimer cet file_folder ? Attention, toutes les images de celui-ci seront définitivement supprimées.", :style => "display:inline-block;" + + + + + diff --git a/app/views/admin/file_folders/new.js.erb b/app/views/admin/file_folders/new.js.erb index 8e1488e..1f35639 100644 --- a/app/views/admin/file_folders/new.js.erb +++ b/app/views/admin/file_folders/new.js.erb @@ -1,9 +1,9 @@ -var new_file_folder_name = prompt("Nom du dossier :\n <%= "Vous n'avez spécifié aucuns nom pour ce nouvel file_folder, ou le nom que vous avez chosi existe déjà." if @file_folder_create %>", "<%=escape_javascript(@file_folder.name) %>"); +var new_file_folder_name = prompt("Nom de l'file_folder :\n <%= "Vous n'avez spécifié aucuns nom pour ce nouvel file_folder, ou le nom que vous avez chosi existe déjà." if @file_folder_create %>", "<%=escape_javascript(@file_folder.name) %>"); if(new_file_folder_name){ - $.ajax({url : $("#file_folders").data('file_folders_url'), type: "POST", data : { + $.ajax({url : "/admin/file_folders?&manager=true&multiple=true", type: "POST", data : { file_folder : { name: new_file_folder_name }