From c48a11d9f57bb92882554938618cea009f96c550 Mon Sep 17 00:00:00 2001 From: Matthew Fu Date: Tue, 19 Jul 2011 18:31:53 +0800 Subject: [PATCH] Add some JS for design uploading --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/design_temp.js | 25 +++++++++ app/assets/stylesheets/design_temp.css | 12 +++++ app/controllers/admin/designs_controller.rb | 1 + app/helpers/design_helper.rb | 2 + app/models/design.rb | 7 ++- app/models/design_file.rb | 3 ++ app/views/admin/designs/._form.html.erb.swp | Bin 12288 -> 12288 bytes app/views/admin/designs/_form.html.erb | 56 +++++++++++++++----- config/routes.rb | 7 ++- 10 files changed, 97 insertions(+), 17 deletions(-) create mode 100644 app/assets/javascripts/design_temp.js create mode 100644 app/assets/stylesheets/design_temp.css diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 7d51ec1ad..5a956f60d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -4,6 +4,7 @@ // // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the // // the compiled file. // // +// //= require design_temp // //= require jquery // //= require jquery_ujs diff --git a/app/assets/javascripts/design_temp.js b/app/assets/javascripts/design_temp.js new file mode 100644 index 000000000..a24a32bab --- /dev/null +++ b/app/assets/javascripts/design_temp.js @@ -0,0 +1,25 @@ +$(".r_snapshot").hover( + function(){ + $(this).append($("").html('

')); + } + , + function(){ + $(this).find("span:last").remove(); + } + ); + +$('input.multi_files').change(function(){ + $(this).prev("ul").append("
  • "+$(this).val()+"
  • "); + new_node =$(this).clone(); + new_node.css("display","none"); + //new_node.val("asd"); + $(this).parent().append(new_node); + $(this).val(""); +}); + +$('a.remove_mark').live("click",function(){ + $(this).prev("input").value("true"); + $(this).parent().css("text-decoration","line-through") + $(this).remove(); + return false; +}); diff --git a/app/assets/stylesheets/design_temp.css b/app/assets/stylesheets/design_temp.css new file mode 100644 index 000000000..27f874007 --- /dev/null +++ b/app/assets/stylesheets/design_temp.css @@ -0,0 +1,12 @@ +.z-preview * { + width: 100%; + height: 100%; +} +.z-preview { + background: white; + border: solid; + position: absolute; + width: 200px; + float: right; + height: 200px; +} diff --git a/app/controllers/admin/designs_controller.rb b/app/controllers/admin/designs_controller.rb index ba7af6a18..088245254 100644 --- a/app/controllers/admin/designs_controller.rb +++ b/app/controllers/admin/designs_controller.rb @@ -1,6 +1,7 @@ class Admin::DesignsController < ApplicationController layout "admin" + def index @designs = Design.all.entries end diff --git a/app/helpers/design_helper.rb b/app/helpers/design_helper.rb index 6293f668b..c55eb2a09 100644 --- a/app/helpers/design_helper.rb +++ b/app/helpers/design_helper.rb @@ -1,2 +1,4 @@ module DesignHelper + + end diff --git a/app/models/design.rb b/app/models/design.rb index c6fdac73b..b9e664bd0 100644 --- a/app/models/design.rb +++ b/app/models/design.rb @@ -17,7 +17,7 @@ class Design embeds_many :javascripts embeds_many :images - after_save :save_embedded_objects + after_save :procs_embedded_objects def javascripts=(*attrs) self.files = (attrs << 'javascripts') @@ -41,13 +41,16 @@ class Design protected - def save_embedded_objects + def procs_embedded_objects [self.stylesheets, self.javascripts, self.images].each do |objects| objects.each do |object| if object.to_save object.to_save = false object.save end + if object.to_destroy + object.destroy + end end end end diff --git a/app/models/design_file.rb b/app/models/design_file.rb index 9871d74c5..07c09e14a 100644 --- a/app/models/design_file.rb +++ b/app/models/design_file.rb @@ -4,5 +4,8 @@ class DesignFile mount_uploader :file, AssetUploader field :to_save, :type => Boolean + field :to_destroy, :type => Boolean + + end diff --git a/app/views/admin/designs/._form.html.erb.swp b/app/views/admin/designs/._form.html.erb.swp index aadcc0f18f045caffc517bb50b95a74b2476247e..2dbb06f611c3edf518c6d138af89225ed017a4a7 100644 GIT binary patch literal 12288 zcmeI2zmFS56vrniLLeMLmo%p|lZ~uPB(od1g2b{75(&{2&_RkQT8(eVw}WSYWOvrd zASAj_P@@!7^fVNJgy?|p%-G(IUtb{Pd+;sz2HXc90S+#Mi{LQ$dySAk!5`pv@EiCJd;vZL+u)z) z3Hb$l4L$`KVBjiP0}qa29dI9f2|fp7kbpP9QSifagnR5Y1x|sVp2b?=HmHCC zIk*h^U;})0l#mZV1$IFQHo!w@^dm4@9gz4tH=F`a0jGdd;Hg)j8{~aLX}3jr8qt>i zj=ROJtsWivLm_!M6kJBMqrcPkoz9MAW!dX{NhOs)r{tyA?i6Y-=V%oP+eO1YGkI4} zqDPndO+4z^_wue;o9oxEdu{r#n-QM)&<;7K;-VZw@$N8^GId)^tZe~HU(z^3+HDQ4y&Hld1aj}~E>vb>Bl<)o-eY4{?i39S9~Zj+eQMtiL<~Tu#%e!c=nQc3)^Q> zqO6q)AA4D){Hl=W=(NyKE=xXnNNojd9yxY|DS9nR#c)gnR7&+MVq>JbAAOB0Ap8|XMMkXdRD18D^{3)YB*cK uHY{I32_^Z01&rX$Bc?O4oULH)>jkuJ9sN*>bQCJKJ3YfgoP)V%X8jLTVaG`T delta 468 zcmaLRF-yZh6bJBE9BoV#T&n1m8bU0lqDZNvap)ipic=SnHkwO~#I*K`R4CX_;9!@6 zgE}~ibQ1AfIEaHTj!r6wpx{5%t?0pzdvN#O`!|ctVr*kNzqHKK#w_6|M6X{XEAjpz zT1{TYUgU`0k(77&z>E^TLHI+*^(hnG!a1D62^_;N&k$IK6F*2M#7N z)*B~`*4+{Y4HJrjTdp$A;le8gYofOAbFsyFO{{CoDYJ&#=;phcy6y`+ztc4Gk#BLk BY-9ic diff --git a/app/views/admin/designs/_form.html.erb b/app/views/admin/designs/_form.html.erb index 19c3c6400..9743b9e1d 100644 --- a/app/views/admin/designs/_form.html.erb +++ b/app/views/admin/designs/_form.html.erb @@ -1,3 +1,4 @@ +<%= stylesheet_link_tag "design_temp" %>

    <%= f.label :title, t('admin.title') %> <%= f.text_field :title, :class => 'text' %> @@ -24,22 +25,49 @@

    -<%= f.label "stylesheet", t('admin.stylesheet') %> -<%= fields_for "design[stylesheets][]", @design, :index => nil do |f| %> - <%= f.file_field :file %> + <%= f.label "stylesheet", t('admin.stylesheet') %> +

      + <% @design.stylesheets.each do |t| %> +
    • <%= t.file_filename %> + <%= fields_for "design[stylesheets][]", t, :index => nil do |f| %> + <%= f.hidden_field :id %> + <%= f.hidden_field :to_destroy %> + <%end%> + Del
    • + <% end %> +
    + <%= fields_for "design[stylesheet][]", @design, :index => nil do |f| %> + <%= f.file_field :file ,{:class=>"multi_files",:rtype=>"stylesheets"}%> + <% end %> +

    + +

    + <%= f.label "javascript", t('admin.javascript') %> +

      + <% @design.javascripts.each do |t| %> +
    • <%= t.file_filename %> + <%=fields_for "design[javascripts][]",t,:index=>nil do |f| %> + <%= f.hidden_field :id %> + <%= f.hidden_field :to_destroy %> + <%end%> + Del
    • + <% end %> +
    + <%= fields_for "design[javascripts][]", @design, :index => nil do |f| %> + <%= f.file_field :file,{:class=>"multi_files",:rtype=>"javascripts"} %> <% end %>

    -<%= f.label "javascript", t('admin.') %> -<%= fields_for "design[javascripts][]", @design, :index => nil do |f| %> - <%= f.file_field :file %> -<% end %> -

    - -

    -<%= f.label "image", t('admin.') %> -<%= fields_for "design[images][]", @design, :index => nil do |f| %> - <%= f.file_field :file %> -<% end %> + <%= f.label "image", t('admin.image') %> +

      + <% @design.images.each do |t| %> +
    • <%= t.file_filename %> + Del +
    • + <% end %> +
    + <%= fields_for "design[images][]", @design, :index => nil do |f| %> + <%= f.file_field :file ,{:class=>"multi_files",:rtype=>"images"}%> + <% end %>

    diff --git a/config/routes.rb b/config/routes.rb index 23fb6053e..c518814c3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -44,7 +44,12 @@ PrototypeR4::Application.routes.draw do end resources :layouts - resources :designs + resources :designs do + member do + get 'delete' + end + end + resources :links do member do get 'delete'