muck-engine 0.1.23 → 0.1.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/VERSION +1 -1
  2. data/app/helpers/muck_custom_form_builder.rb +6 -2
  3. data/app/helpers/muck_engine_helper.rb +47 -2
  4. data/app/views/forms/_base_field.html.erb +1 -1
  5. data/app/views/forms/_menu_field.html.erb +1 -0
  6. data/app/views/layouts/admin.html.erb +20 -38
  7. data/app/views/layouts/default.html.erb +20 -37
  8. data/app/views/layouts/frame.html.erb +16 -0
  9. data/app/views/layouts/global/_google_analytics.html.erb +12 -0
  10. data/app/views/layouts/global/_head.html.erb +24 -0
  11. data/app/views/layouts/popup.html.erb +19 -0
  12. data/app/views/shared/_delete.html.erb +11 -0
  13. data/lib/action_controller/muck_application.rb +35 -0
  14. data/locales/en.yml +4 -1
  15. data/muck-engine.gemspec +17 -4
  16. data/public/images/icons/blue_guy.png +0 -0
  17. data/public/images/icons/button_background.png +0 -0
  18. data/public/images/icons/cancel.png +0 -0
  19. data/public/images/icons/close.png +0 -0
  20. data/public/images/icons/delete.png +0 -0
  21. data/public/images/icons/exclaim.png +0 -0
  22. data/public/images/icons/grey_guy.png +0 -0
  23. data/public/images/icons/hide.png +0 -0
  24. data/public/images/icons/information.png +0 -0
  25. data/public/images/icons/minus.png +0 -0
  26. data/public/images/icons/question.png +0 -0
  27. data/public/images/icons/search_box.png +0 -0
  28. data/public/images/icons/star.png +0 -0
  29. data/public/images/icons/stop.png +0 -0
  30. data/public/images/icons/thumb_down.png +0 -0
  31. data/public/images/icons/thumb_up.png +0 -0
  32. data/public/images/icons/vote.png +0 -0
  33. data/public/images/nothing.png +0 -0
  34. data/public/stylesheets/styles.css +1 -1
  35. data/test/rails_root/public/javascripts/muck.js +22 -5
  36. data/test/rails_root/public/stylesheets/styles.css +30 -2
  37. metadata +12 -3
  38. data/app/views/forms/_menu_field.erb +0 -4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.23
1
+ 0.1.24
@@ -76,7 +76,7 @@ class MuckCustomFormBuilder < ActionView::Helpers::FormBuilder
76
76
 
77
77
  if object.nil?
78
78
  locals[:value] = ''
79
- locals[:id] = ''
79
+ locals[:id] = ''
80
80
  else
81
81
  locals[:value] = object.send(field)
82
82
  locals[:id] = object.id
@@ -131,6 +131,10 @@ class MuckCustomFormBuilder < ActionView::Helpers::FormBuilder
131
131
  end
132
132
 
133
133
  def menu_select(method, label, collection, options = {}, html_options = {})
134
+ muck_select(method, :id, :name, label, collection, options, html_options)
135
+ end
136
+
137
+ def muck_select(method, value_method, name_method, label, collection, options = {}, html_options = {})
134
138
 
135
139
  # this code will look for a cookie that matches the control and set the value to the cookie value
136
140
  # if html_options.has_key?(:class)
@@ -143,7 +147,7 @@ class MuckCustomFormBuilder < ActionView::Helpers::FormBuilder
143
147
  html_options[:class] ||= ''
144
148
  html_options[:class] << add_space_to_css(html_options) + 'tip-field'
145
149
  end
146
- self.collection_select(method, collection, :id, :name, options.merge(:object => @object, :label => label, :type => :choose_menu, :label_class => 'desc', :field_id => html_options[:id]), html_options)
150
+ self.collection_select(method, collection, value_method, name_method, options.merge(:object => @object, :label => label, :type => :choose_menu, :label_class => 'desc', :field_id => html_options[:id]), html_options)
147
151
  end
148
152
 
149
153
  private
@@ -52,8 +52,9 @@ module MuckEngineHelper
52
52
  # size is commonly one of:
53
53
  # :medium, :thumb or :icon but can be any value provided by the photo object
54
54
  def icon(object, size = :icon)
55
- return "" if object.blank? || object.photo.blank?
56
- link_to(image_tag(object.photo.url(size), :class => size), object, { :title => object.full_name })
55
+ return "" if object.blank?
56
+ image_url = object.photo.url(size) rescue '/images/profile_default.jpg'
57
+ link_to(image_tag(image_url, :class => size), object, { :title => object.full_name })
57
58
  end
58
59
 
59
60
  def secure_mail_to(email)
@@ -75,4 +76,48 @@ module MuckEngineHelper
75
76
  link_to name, request.url.gsub(request.protocol, "#{request.protocol}#{locale}.")
76
77
  end
77
78
 
79
+ # Generate parameters for a url that refer to a given object as parent. Useful
80
+ # for comments, shares, etc
81
+ def make_muck_parent_params(parent)
82
+ return if parent.blank?
83
+ { :parent_id => parent.id, :parent_type => parent.class.to_s }
84
+ end
85
+
86
+ # Take a block and renders that block within the context of a partial.
87
+ # from http://snippets.dzone.com/posts/show/2483
88
+ def block_to_partial(partial_name, options = {}, &block)
89
+ options.merge!(:body => capture(&block))
90
+ concat(render(:partial => partial_name, :locals => options))
91
+ end
92
+
93
+ # Take a block and renders that block within the context of a partial.
94
+ # Passes the block to the partial. The partial is then responsible for
95
+ # capturing and rendering the block.
96
+ # from http://snippets.dzone.com/posts/show/2483
97
+ def raw_block_to_partial(partial_name, options = {}, &block)
98
+ options.merge!(:block => block)
99
+ concat(render(:partial => partial_name, :locals => options))
100
+ end
101
+
102
+ # Summarize html content by removing html
103
+ # tags and truncating at a given number of words.
104
+ # Truncation will occur at word boundries
105
+ # Parameters:
106
+ # text - The text to truncate
107
+ # length - The desired number of words
108
+ # omission - Text to add when the text is truncated ie 'read more'
109
+ def html_summarize(text, length = 30, omission = '...')
110
+ snippet(strip_tags(text), length, omission)
111
+ end
112
+
113
+ # Truncates text at a word boundry and provides a
114
+ # parameter for a 'more link'
115
+ # Parameters:
116
+ # text - The text to truncate
117
+ # wordcount - The number of words
118
+ # omission - Text to add when the text is truncated ie 'read more'
119
+ def snippet(text, wordcount, omission)
120
+ text.split[0..(wordcount-1)].join(" ") + (text.split.size > wordcount ? " " + omission : "")
121
+ end
122
+
78
123
  end
@@ -6,6 +6,6 @@
6
6
  <%= label_element %>
7
7
  <%= field_element %>
8
8
  <% end -%>
9
- <% if required -%><div id="<%= field_name %>_required" class="required-tip" style="display:none;"><em><%= I18n.t(:please_enter_a_value, :label => label_name, :scope => [:muck, :users, :forms, :_base_field]) %></em></div><% end -%>
9
+ <% if required -%><div id="<%= field_name %>_required" class="required-tip" style="display:none;"><em><%= I18n.t('muck.forms.please_enter_a_value', :label => label_name) %></em></div><% end -%>
10
10
  <% if !hide_control_error && defined? error -%><div class="form_error_message"><%= error %></div><% end -%>
11
11
  <%= extra_html %>
@@ -1,3 +1,4 @@
1
1
  <div <%= wrapper_id.nil? ? '' : "id=\"#{wrapper_id}\"" -%> class="chooseMenu">
2
2
  <%= render :partial => 'forms/base_field', :locals => local_assigns %>
3
+ <%= render :partial => 'forms/tips', :locals => local_assigns %>
3
4
  </div>
@@ -1,39 +1,21 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
- <head>
4
- <title><%= @page_title || GlobalConfig.application_name %></title>
5
- <meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />
6
- <meta http-equiv="imagetoolbar" content="no" />
7
- <meta name="distribution" content="all" />
8
- <meta name="robots" content="all" />
9
- <meta name="resource-type" content="document" />
10
- <meta name="MSSmartTagsPreventParsing" content="true" />
11
- <%= stylesheet_link_tag 'blueprint/print.css', :media => "print" %>
12
- <!--[if IE]><link rel="stylesheet" href="/stylesheets/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
13
- <%= stylesheet_link_tag %W{ reset styles blueprint/liquid_screen.css }, :cache => true %>
14
- <%= javascript_include_tag %w{
15
- jquery/jquery.js
16
- jquery/jquery-ui.js
17
- jquery/jrails.js
18
- jquery/jquery.jgrowl.js
19
- jquery/jquery.tips.js
20
- application.js }, :cache => 'all_js_cached' %>
21
- <%= javascript_tag %[const AUTH_TOKEN = #{form_authenticity_token.inspect};] if protect_against_forgery? %>
22
- <%= yield :head -%>
23
- </head>
24
- <body>
25
- <div class="container">
26
- <div id="header">
27
- <%= yield :header %>
28
- </div>
29
- <div id="content-wrapper">
30
- <div id="content">
31
- <%= yield :layout %>
32
- </div>
33
- </div>
34
- </div>
35
- <script type="text/javascript" language="JavaScript">
36
- <%= yield :javascript %>
37
- </script>
38
- </body>
39
- </html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="<%= I18n.locale %>" xml:lang="<%= I18n.locale %>">
3
+ <head>
4
+ <%= render :partial => 'layouts/global/head', :locals => { :admin_layout => true } %>
5
+ </head>
6
+ <body>
7
+ <div class="container">
8
+ <div id="header">
9
+ <%= yield :header %>
10
+ </div>
11
+ <div id="content-wrapper">
12
+ <div id="content">
13
+ <%= yield :layout %>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <script type="text/javascript" language="JavaScript">
18
+ <%= yield :javascript %>
19
+ </script>
20
+ </body>
21
+ </html>
@@ -1,39 +1,22 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
- <head>
4
- <title><%= @page_title || GlobalConfig.application_name %></title>
5
- <meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />
6
- <meta http-equiv="imagetoolbar" content="no" />
7
- <meta name="distribution" content="all" />
8
- <meta name="robots" content="all" />
9
- <meta name="resource-type" content="document" />
10
- <meta name="MSSmartTagsPreventParsing" content="true" />
11
- <%= stylesheet_link_tag 'blueprint/print.css', :media => "print" %>
12
- <!--[if IE]><link rel="stylesheet" href="/stylesheets/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
13
- <%= stylesheet_link_tag %W{ reset styles blueprint/screen.css }, :cache => true %>
14
- <%= javascript_include_tag %w{
15
- jquery/jquery.js
16
- jquery/jquery-ui.js
17
- jquery/jrails.js
18
- jquery/jquery.jgrowl.js
19
- jquery/jquery.tips.js
20
- application.js }, :cache => 'all_js_cached' %>
21
- <%= javascript_tag %[const AUTH_TOKEN = #{form_authenticity_token.inspect};] if protect_against_forgery? %>
22
- <%= yield :head -%>
23
- </head>
24
- <body>
25
- <div id="container">
26
- <div id="header">
27
- <%= yield :header %>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="<%= I18n.locale %>" xml:lang="<%= I18n.locale %>">
3
+ <head>
4
+ <%= render :partial => 'layouts/global/head' %>
5
+ </head>
6
+ <body>
7
+ <div id="container">
8
+ <div id="header">
9
+ <%= yield :header %>
10
+ </div>
11
+ <div id="content-wrapper">
12
+ <div id="content">
13
+ <%= yield :layout %>
28
14
  </div>
29
- <div id="content-wrapper">
30
- <div id="content">
31
- <%= yield :layout %>
32
- </div>
33
- </div>
34
- </div>
35
- <script type="text/javascript" language="JavaScript">
36
- <%= yield :javascript %>
37
- </script>
38
- </body>
39
- </html>
15
+ </div>
16
+ </div>
17
+ <script type="text/javascript" language="JavaScript">
18
+ <%= yield :javascript %>
19
+ </script>
20
+ <%= render :partial => 'layouts/global/google_analytics' %>
21
+ </body>
22
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="<%= I18n.locale %>" xml:lang="<%= I18n.locale %>">
3
+ <head>
4
+ <%= render :partial => 'layouts/global/head' %>
5
+ <style type="text/css">
6
+ html { scrollbar-shadow-color: #FFFFFF;scrollbar-highlight-color: #FFFFFF;scrollbar-face-color: #FFFFFF;scrollbar-3dlight-color: #FFFFFF;scrollbar-darkshadow-color: #FFFFFF;scrollbar-track-color: #FFFFFF;scrollbar-arrow-color: #FFFFFF;}
7
+ </style>
8
+ </head>
9
+ <body scroll="no" style="overflow: hidden">
10
+ <%= yield :layout %>
11
+ <script type="text/javascript" language="JavaScript">
12
+ <%= yield :javascript %>
13
+ </script>
14
+ <%= render :partial => 'layouts/global/google_analytics' %>
15
+ </body>
16
+ </html>
@@ -0,0 +1,12 @@
1
+ <script type="text/javascript">
2
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
3
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
4
+ </script>
5
+ <script type="text/javascript">
6
+ try {
7
+ var pageTracker = _gat._getTracker("<%= GlobalConfig.google_tracking_code %>");
8
+ <% if GlobalConfig.google_tracking_set_domain -%>
9
+ pageTracker._setDomainName("<%= GlobalConfig.google_tracking_set_domain %>");
10
+ <% end -%>
11
+ pageTracker._trackPageview();
12
+ } catch(err) {}</script>
@@ -0,0 +1,24 @@
1
+ <title><%= @page_title || GlobalConfig.application_name %></title>
2
+ <meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />
3
+ <meta http-equiv="imagetoolbar" content="no" />
4
+ <meta name="distribution" content="all" />
5
+ <meta name="robots" content="all" />
6
+ <meta name="resource-type" content="document" />
7
+ <meta name="MSSmartTagsPreventParsing" content="true" />
8
+ <%= stylesheet_link_tag 'blueprint/print.css', :media => "print" %>
9
+ <!--[if IE]><link rel="stylesheet" href="/stylesheets/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
10
+ <% if defined?(admin_layout) -%>
11
+ <%= stylesheet_link_tag %W{ reset styles blueprint/liquid_screen.css }, :cache => true %>
12
+ <% else -%>
13
+ <%= stylesheet_link_tag %W{ reset styles blueprint/screen.css }, :cache => true %>
14
+ <% end -%>
15
+ <%= javascript_include_tag %w{
16
+ jquery/jquery.js
17
+ jquery/jquery-ui.js
18
+ jquery/jrails.js
19
+ jquery/jquery.jgrowl.js
20
+ jquery/jquery.tips.js
21
+ muck.js
22
+ application.js }, :cache => 'all_js_cached' %>
23
+ <%= javascript_tag %[const AUTH_TOKEN = #{form_authenticity_token.inspect};] if protect_against_forgery? %>
24
+ <%= yield :head -%>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="<%= I18n.locale %>" xml:lang="<%= I18n.locale %>">
3
+ <head>
4
+ <%= render :partial => 'layouts/global/head' %>
5
+ </head>
6
+ <body>
7
+ <div id="popup_wrapper" class="container">
8
+ <div id="content-wrapper">
9
+ <div id="content">
10
+ <%= yield :layout %>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ <script type="text/javascript" language="JavaScript">
15
+ <%= yield :javascript %>
16
+ </script>
17
+ <%= render :partial => 'layouts/global/google_analytics' %>
18
+ </body>
19
+ </html>
@@ -0,0 +1,11 @@
1
+ <% if button_type == :text -%>
2
+ <%= link_to_remote( button_text, :url => delete_path, :method => :delete) %>
3
+ <% else -%>
4
+ <% remote_form_for(delete_object, :url => delete_path, :html => { :class => "delete-form #{form_class}", :method => :delete } ) do |f| -%>
5
+ <% if button_type == :image -%>
6
+ <%= image_submit_tag '/images/icons/delete.png', {:title => button_text, :width => '15', :height => '15', :alt => button_text } %>
7
+ <% else -%>
8
+ <%= submit_tag button_text, { :title => button_text } %>
9
+ <% end -%>
10
+ <% end -%>
11
+ <% end -%>
@@ -108,6 +108,41 @@ module ActionController
108
108
  result
109
109
  end
110
110
 
111
+ # **********************************************
112
+ # Parent methods
113
+
114
+ # Attempts to create an @parent object using params
115
+ # or the url.
116
+ def setup_parent
117
+ @parent = get_parent
118
+ if @parent.blank?
119
+ render :text => t('muck.engine.missing_parent_error')
120
+ return false
121
+ end
122
+ end
123
+
124
+ # Tries to get parent using parent_type and parent_id from the url.
125
+ # If that fails and attempt is then made using find_parent
126
+ def get_parent
127
+ if params[:parent_type].blank? || params[:parent_id].blank?
128
+ find_parent
129
+ else
130
+ klass = params[:parent_type].to_s.constantize
131
+ klass.find(params[:parent_id])
132
+ end
133
+ end
134
+
135
+ # Searches the params to try and find an entry ending with _id
136
+ # ie article_id, user_id, etc. Will return the first value found.
137
+ def find_parent
138
+ params.each do |name, value|
139
+ if name =~ /(.+)_id$/
140
+ return $1.classify.constantize.find(value)
141
+ end
142
+ end
143
+ nil
144
+ end
145
+
111
146
  end
112
147
 
113
148
  def self.included(receiver)
data/locales/en.yml CHANGED
@@ -18,10 +18,13 @@ en:
18
18
  update: Update
19
19
  previous: '&laquo; Previous'
20
20
  next: 'Next &raquo;'
21
+ time_ago: "{{time_in_words}} ago"
22
+ read_more: "read more"
21
23
  engine:
22
24
  choose_country: "Choose Country"
23
25
  select_country_prompt: "Please select a country"
24
26
  choose_state: "Choose State"
25
27
  select_state_prompt: "Please select a state"
26
28
  choose_language: "Choose Language"
27
- select_language_prompt: "Please select a language"
29
+ select_language_prompt: "Please select a language"
30
+ missing_parent_error: "Please specify a parent object"
data/muck-engine.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{muck-engine}
5
- s.version = "0.1.23"
5
+ s.version = "0.1.24"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Justin Ball"]
9
- s.date = %q{2009-07-28}
9
+ s.date = %q{2009-08-08}
10
10
  s.description = %q{The base engine for the muck system. Contains common tables, custom for, css and javascript.}
11
11
  s.email = %q{justinball@gmail.com}
12
12
  s.extra_rdoc_files = [
@@ -42,8 +42,6 @@ Gem::Specification.new do |s|
42
42
  "app/views/forms/_field.html.erb",
43
43
  "app/views/forms/_field_with_tips.html.erb",
44
44
  "app/views/forms/_field_with_tips.html.erb",
45
- "app/views/forms/_menu_field.erb",
46
- "app/views/forms/_menu_field.erb",
47
45
  "app/views/forms/_menu_field.html.erb",
48
46
  "app/views/forms/_menu_field.html.erb",
49
47
  "app/views/forms/_tips.html.erb",
@@ -56,6 +54,16 @@ Gem::Specification.new do |s|
56
54
  "app/views/layouts/email_default.text.html.erb",
57
55
  "app/views/layouts/email_default.text.plain.erb",
58
56
  "app/views/layouts/email_default.text.plain.erb",
57
+ "app/views/layouts/frame.html.erb",
58
+ "app/views/layouts/frame.html.erb",
59
+ "app/views/layouts/global/_google_analytics.html.erb",
60
+ "app/views/layouts/global/_google_analytics.html.erb",
61
+ "app/views/layouts/global/_head.html.erb",
62
+ "app/views/layouts/global/_head.html.erb",
63
+ "app/views/layouts/popup.html.erb",
64
+ "app/views/layouts/popup.html.erb",
65
+ "app/views/shared/_delete.html.erb",
66
+ "app/views/shared/_delete.html.erb",
59
67
  "app/views/shared/_error_box.html.erb",
60
68
  "app/views/shared/_error_box.html.erb",
61
69
  "app/views/shared/_field_error.html.erb",
@@ -198,19 +206,24 @@ Gem::Specification.new do |s|
198
206
  "public/images/icons/accept.png",
199
207
  "public/images/icons/add.png",
200
208
  "public/images/icons/blue_guy.png",
209
+ "public/images/icons/button_background.png",
201
210
  "public/images/icons/cancel.png",
211
+ "public/images/icons/close.png",
202
212
  "public/images/icons/delete.png",
203
213
  "public/images/icons/exclaim.png",
204
214
  "public/images/icons/grey_guy.png",
215
+ "public/images/icons/hide.png",
205
216
  "public/images/icons/information.png",
206
217
  "public/images/icons/minus.png",
207
218
  "public/images/icons/question.png",
219
+ "public/images/icons/search_box.png",
208
220
  "public/images/icons/star.png",
209
221
  "public/images/icons/stop.png",
210
222
  "public/images/icons/thumb_down.png",
211
223
  "public/images/icons/thumb_up.png",
212
224
  "public/images/icons/vote.png",
213
225
  "public/images/loading.gif",
226
+ "public/images/nothing.png",
214
227
  "public/images/spinner.gif",
215
228
  "public/images/sprites.png",
216
229
  "public/javascripts/fancyzoom.min.js",
Binary file
Binary file
Binary file
File without changes
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
File without changes
Binary file
@@ -81,4 +81,4 @@ div.jGrowl div.jGrowl-notification h2{text-align:left;font-weight:bold;padding:5
81
81
  #errorExplanation{padding:7px;padding-bottom:12px;margin-bottom:20px;}
82
82
  #errorExplanation h2{text-align:left;font-weight:bold;padding:5px 5px 5px 15px;font-size:16px;background-color:#B61E12;color:#fff;}
83
83
  #errorExplanation p{color:#333;margin-bottom:0;padding:5px;}
84
- #errorExplanation ul li{list-style:square;}
84
+ #errorExplanation ul li{list-style:square;}
@@ -1,10 +1,13 @@
1
1
  //jQuery.noConflict();
2
-
3
2
  jQuery(document).ajaxSend(function(event, request, settings) {
4
- if (typeof(AUTH_TOKEN) == "undefined") return;
5
- if (settings.type == "GET") return; // for details see: http://www.justinball.com/2009/07/08/jquery-ajax-get-in-firefox-post-in-internet-explorer/
3
+ request.setRequestHeader("Accept", "text/javascript");
4
+ request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
5
+
6
+ if (settings.type.toUpperCase() == 'GET' || typeof(AUTH_TOKEN) == "undefined") return; // for details see: http://www.justinball.com/2009/07/08/jquery-ajax-get-in-firefox-post-in-internet-explorer/
7
+ // settings.data is a serialized string like "foo=bar&baz=boink" (or null)
6
8
  settings.data = settings.data || "";
7
- settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
9
+ if (typeof(AUTH_TOKEN) != "undefined")
10
+ settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
8
11
  });
9
12
 
10
13
  function setup_submit_delete(){
@@ -74,4 +77,18 @@ jQuery(document).ready(function() {
74
77
  jQuery("#quick-login-submit").click(function() {
75
78
  jQuery("#quick-login").submit();
76
79
  });
77
- });
80
+ });
81
+
82
+ jQuery(document).ready(function() {
83
+ jQuery("#content_iframe").load(maximize_iframe_height);
84
+ jQuery(window).bind('resize', function() {
85
+ maximize_iframe_height();
86
+ });
87
+ });
88
+
89
+ function maximize_iframe_height() {
90
+ var frame = jQuery("#content_iframe");
91
+ var frame_buffer = 5;
92
+ frame.height(jQuery(window).height() - (jQuery('#toolbar').height() + frame_buffer));
93
+ }
94
+
@@ -1,3 +1,7 @@
1
+ /* general */
2
+ .center{text-align:center;}
3
+ #popup_wrapper{width:auto;}
4
+
1
5
  /* forms */
2
6
  input{margin:0 10px 5px 0;padding:4px;font-size:1.3em;}
3
7
  input[type="text"],input[type="password"]{border:1px solid #8f8685;}
@@ -12,7 +16,8 @@ fieldset{border:none;margin:0;padding:0;}
12
16
  form fieldset{margin:0 0 2px;padding:0px;}
13
17
  form fieldset input[type="text"],form fieldset input[type="password"]{width:500px;}
14
18
  .common-form{width:500px;margin:40px auto;}
15
- .common-form h1{font-size:1.8em;}
19
+ .wide-form h1, .common-form h1{font-size:1.8em;}
20
+ .wide-form{width:700px;margin:40px auto;}
16
21
  .form-item{float:left;}
17
22
  .common-content{width:500px;margin:40px auto;font-size:1.2em;color:#555;}
18
23
  .button-link {background-color:transparent;border-top-width: 0px;border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;}
@@ -76,4 +81,27 @@ div.jGrowl div.jGrowl-notification h2{text-align:left;font-weight:bold;padding:5
76
81
  #errorExplanation{padding:7px;padding-bottom:12px;margin-bottom:20px;}
77
82
  #errorExplanation h2{text-align:left;font-weight:bold;padding:5px 5px 5px 15px;font-size:16px;background-color:#B61E12;color:#fff;}
78
83
  #errorExplanation p{color:#333;margin-bottom:0;padding:5px;}
79
- #errorExplanation ul li{list-style:square;}
84
+ #errorExplanation ul li{list-style:square;}
85
+
86
+ /* iFrame */
87
+ .framed_content{height:100%;margin-bottom:-1px;width:100%;}
88
+ #content_iframe{display:block;display:block;}
89
+ #toolbar{height:30px;background:#EFF1E5;border-bottom:1px solid #999;}
90
+ #toolbar .section{padding:5px 20px;}
91
+ #toolbar #profile{float:left;}
92
+ #toolbar #search{float:right;}
93
+ #toolbar #search input{font-size:.8em;}
94
+ #toolbar #tools{float:right;}
95
+ #toolbar #tools a{margin-right:5px;padding-left:18px;font-weight:bolder;font-size:1em;color:#54493F;}
96
+ #toolbar #tools a:hover{color:#999;}
97
+ #toolbar #close{float:right;padding-right:5px;}
98
+ #toolbar .section a{text-decoration:none;}
99
+ a#close_frame{-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background:transparent url('/images/icons/close.png') no-repeat scroll left top;display:block;height:19px;width:19px;}
100
+ a#close_frame:hover{background-position:left bottom;}
101
+ a#close_frame_text{display:none;}
102
+ a#comment{background:transparent url('/images/icons/question.png') no-repeat scroll left top;}
103
+ a#share{background:transparent url('/images/icons/add.png') no-repeat scroll left top;}
104
+ #toolbar #search #search_go{display:none;}
105
+ #toolbar #search #search_box{width:150px;height:21px;background:transparent url('/images/icons/search_box.png') no-repeat scroll left bottom;}
106
+ #toolbar #search #search_box:hover{background:transparent url('/images/icons/search_box.png') no-repeat scroll left top;}
107
+ #toolbar #search #search_box input {-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background:transparent none repeat scroll 0 0;border:0 none;width:125px;}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muck-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.23
4
+ version: 0.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Ball
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-28 00:00:00 -06:00
12
+ date: 2009-08-08 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -48,13 +48,17 @@ files:
48
48
  - app/views/forms/_default.html.erb
49
49
  - app/views/forms/_field.html.erb
50
50
  - app/views/forms/_field_with_tips.html.erb
51
- - app/views/forms/_menu_field.erb
52
51
  - app/views/forms/_menu_field.html.erb
53
52
  - app/views/forms/_tips.html.erb
54
53
  - app/views/layouts/admin.html.erb
55
54
  - app/views/layouts/default.html.erb
56
55
  - app/views/layouts/email_default.text.html.erb
57
56
  - app/views/layouts/email_default.text.plain.erb
57
+ - app/views/layouts/frame.html.erb
58
+ - app/views/layouts/global/_google_analytics.html.erb
59
+ - app/views/layouts/global/_head.html.erb
60
+ - app/views/layouts/popup.html.erb
61
+ - app/views/shared/_delete.html.erb
58
62
  - app/views/shared/_error_box.html.erb
59
63
  - app/views/shared/_field_error.html.erb
60
64
  - app/views/shared/_flash_error_box.html.erb
@@ -138,19 +142,24 @@ files:
138
142
  - public/images/icons/accept.png
139
143
  - public/images/icons/add.png
140
144
  - public/images/icons/blue_guy.png
145
+ - public/images/icons/button_background.png
141
146
  - public/images/icons/cancel.png
147
+ - public/images/icons/close.png
142
148
  - public/images/icons/delete.png
143
149
  - public/images/icons/exclaim.png
144
150
  - public/images/icons/grey_guy.png
151
+ - public/images/icons/hide.png
145
152
  - public/images/icons/information.png
146
153
  - public/images/icons/minus.png
147
154
  - public/images/icons/question.png
155
+ - public/images/icons/search_box.png
148
156
  - public/images/icons/star.png
149
157
  - public/images/icons/stop.png
150
158
  - public/images/icons/thumb_down.png
151
159
  - public/images/icons/thumb_up.png
152
160
  - public/images/icons/vote.png
153
161
  - public/images/loading.gif
162
+ - public/images/nothing.png
154
163
  - public/images/spinner.gif
155
164
  - public/images/sprites.png
156
165
  - public/javascripts/fancyzoom.min.js
@@ -1,4 +0,0 @@
1
- <div <%= wrapper_id.nil? ? '' : "id=\"#{wrapper_id}\"" -%> class="chooseMenu">
2
- <%= render :partial => 'forms/base_field', :locals => local_assigns %>
3
- <%= render :partial => 'forms/tips', :locals => local_assigns %>
4
- </div>