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 7d51ec1a..5a956f60 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 00000000..a24a32ba
--- /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 00000000..27f87400
--- /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 ba7af6a1..08824525 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 6293f668..c55eb2a0 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 c6fdac73..b9e664bd 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 9871d74c..07c09e14 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 19c3c640..9743b9e1 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 23fb6053..c518814c 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'