wontomedia 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION.yml +2 -2
- data/app/helpers/format_helper.rb +23 -2
- data/app/views/layouts/_amazon_ads.html.erb +42 -28
- data/app/views/layouts/_dynamic_alert_framework.html.erb +59 -0
- data/app/views/layouts/_google_ads.html.erb +20 -12
- data/app/views/layouts/_master_help.html.erb +2 -4
- data/app/views/layouts/application.html.erb +2 -3
- data/app/views/layouts/base.html.erb +3 -0
- data/app/views/layouts/home.html.erb +3 -3
- data/assets/wontomedia-sample.rb +3 -0
- data/config/asset_packages.yml +2 -0
- data/config/cucumber.yml +2 -4
- data/config/environment.rb +27 -9
- data/default-custom/public/stylesheets/wm.css +34 -2
- data/public/images/alert_background.png +0 -0
- data/public/images/error_error_icon.png +0 -0
- data/public/images/error_status_icon.png +0 -0
- data/public/images/good_status_icon.png +0 -0
- data/public/images/warn_error_icon.png +0 -0
- data/public/images/working_status_icon.gif +0 -0
- data/public/javascripts/application.js +28 -3
- data/public/javascripts/cookies.js +151 -0
- data/public/javascripts/reconcileJQueryAndPrototype.js +11 -0
- data/public/stylesheets/scaffold.css +2 -2
- metadata +6 -3
data/VERSION.yml
CHANGED
@@ -99,7 +99,7 @@ module FormatHelper
|
|
99
99
|
def text_with_tooltip( text, tip, id = nil )
|
100
100
|
span = id.nil? ? '<span>' : "<span id='#{id}'>"
|
101
101
|
inner = "#{span}#{text}</span>" +
|
102
|
-
"<span class='tip'
|
102
|
+
"<span class='tip'>#{tip}</span>"
|
103
103
|
link_to inner, "#", :class=>'texthastip', :tabindex=>'0'
|
104
104
|
end
|
105
105
|
|
@@ -114,7 +114,7 @@ module FormatHelper
|
|
114
114
|
def link_with_tooltip( text, tip, href, id = nil )
|
115
115
|
span = id.nil? ? '<span>' : "<span id='#{id}'>"
|
116
116
|
inner = "#{span}#{text}</span>" +
|
117
|
-
"<span class='tip'
|
117
|
+
"<span class='tip'>#{tip}</span>"
|
118
118
|
link_to inner, href, :class=>'linkhastip', :tabindex=>'0'
|
119
119
|
end
|
120
120
|
|
@@ -151,4 +151,25 @@ module FormatHelper
|
|
151
151
|
return content_tag( 'span', params[:destination] + help_link,
|
152
152
|
:style => "white-space: nowrap;" ) + " "
|
153
153
|
end
|
154
|
+
|
155
|
+
def logo_image
|
156
|
+
logo_name = (File.exists?(
|
157
|
+
Rails.root.join( 'public', 'images', 'logo.jpg'))) ?
|
158
|
+
'/images/logo.jpg' :
|
159
|
+
'/images/logo.png'
|
160
|
+
image_tag( logo_name, :alt=>'Logo', :width=>'99%',
|
161
|
+
:style=>'margin-bottom: 0.7ex;' )
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
ALERT_CONTENT_NAME = 'dynamic_alert_content'
|
166
|
+
ALERT_CONTENT_PATH = Rails.root.join(
|
167
|
+
'app', 'views', 'layouts', '_' + ALERT_CONTENT_NAME + '.html' )
|
168
|
+
def allpages_alert
|
169
|
+
if File.exists? ALERT_CONTENT_PATH
|
170
|
+
render :partial => File.join( 'layouts', 'dynamic_alert_framework' )
|
171
|
+
else
|
172
|
+
''
|
173
|
+
end
|
174
|
+
end
|
154
175
|
end
|
@@ -22,34 +22,48 @@
|
|
22
22
|
<% if WontoMedia.ads.amazon and
|
23
23
|
WontoMedia.ads.amazon.associate_id %>
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
divWidth = parseFloat(divResult[0]) / 100;
|
34
|
-
divWidth = divWidth * floatWidth * window.innerWidth;
|
35
|
-
amazon_ad_width = Math.floor(divWidth - 4).toString();
|
36
|
-
}
|
37
|
-
else if (divResult = divWidth.match(/^([0-9.]+)px$/)){
|
38
|
-
amazon_ad_width = (parseInt(divResult[0]) - 4) + "px";
|
39
|
-
}
|
40
|
-
if (parseInt(amazon_ad_width) < 120)
|
41
|
-
amazon_ad_product_images = "hide";
|
42
|
-
|
43
|
-
// boiler-plate from Amazon
|
44
|
-
amazon_ad_tag = "<%= WontoMedia.ads.amazon.associate_id -%>";
|
45
|
-
amazon_ad_width = "160";
|
46
|
-
amazon_ad_height = "600";
|
47
|
-
amazon_ad_logo = "hide";
|
48
|
-
amazon_ad_border = "hide";
|
49
|
-
//--></script>
|
50
|
-
<script type="text/javascript"
|
51
|
-
src="http://www.assoc-amazon.com/s/ads.js"></script>
|
52
|
-
</div>
|
25
|
+
<!-- specifying the height for this div prevents re-layout when content
|
26
|
+
is added later in page load. Must update if ad unit changes -->
|
27
|
+
<div id="block-amazon-ad" class="box"
|
28
|
+
style="width: 99%; height: 600px; text-align: center;"></div>
|
29
|
+
<script>
|
30
|
+
addToDivsToMove('block-amazon-ad');
|
31
|
+
</script>
|
53
32
|
|
33
|
+
<% content_for :last_bottom_page_js do %>
|
34
|
+
<div id="block-amazon-ad-content" style="display: none;">
|
35
|
+
<script type="text/javascript"><!--
|
36
|
+
// adjust for our fluid-width layout as possible
|
37
|
+
// TODO: really ought to repeat these calculations in a
|
38
|
+
// window-resize event handler....
|
39
|
+
divWidth = $('block-amazon-ad').style.width;
|
40
|
+
if (divResult = divWidth.match(/^([0-9.]+)%$/)){
|
41
|
+
floatWidth = $('float-left').style.width; // always a %
|
42
|
+
floatWidth = parseFloat(floatWidth) / 100;
|
43
|
+
|
44
|
+
divWidth = parseFloat(divResult[0]) / 100;
|
45
|
+
divWidth = divWidth * floatWidth * window.innerWidth;
|
46
|
+
amazon_ad_width = Math.floor(divWidth - 4).toString();
|
47
|
+
}
|
48
|
+
else if (divResult = divWidth.match(/^([0-9.]+)px$/))
|
49
|
+
amazon_ad_width = (parseInt(divResult[0]) - 4) + "px";
|
50
|
+
|
51
|
+
amazon_ad_width = (parseInt(amazon_ad_width) >= 160)? "160":"120";
|
52
|
+
|
53
|
+
|
54
|
+
// boiler-plate from Amazon
|
55
|
+
amazon_ad_tag = "<%= WontoMedia.ads.amazon.associate_id -%>";
|
56
|
+
amazon_ad_height = "600";
|
57
|
+
amazon_ad_logo = "hide";
|
58
|
+
amazon_ad_border = "hide";
|
59
|
+
amazon_color_border = "f8f8ff";
|
60
|
+
amazon_color_link = "1D43C0";
|
61
|
+
amazon_color_logo = "040460";
|
62
|
+
//-->
|
63
|
+
</script>
|
64
|
+
<script type="text/javascript"
|
65
|
+
src="http://www.assoc-amazon.com/s/ads.js"></script>
|
66
|
+
</div>
|
67
|
+
<% end %>
|
54
68
|
<% end %>
|
55
69
|
<% end %>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<%
|
2
|
+
# WontoMedia - a wontology web application
|
3
|
+
# Copyright (C) 2010 - Glen E. Ivey
|
4
|
+
# www.wontology.com
|
5
|
+
#
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
7
|
+
# it under the terms of the GNU Affero General Public License version
|
8
|
+
# 3 as published by the Free Software Foundation.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful, but
|
11
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
# Affero General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Affero General Public License
|
16
|
+
# along with this program in the file COPYING and/or LICENSE. If not,
|
17
|
+
# see "http://www.gnu.org/licenses/".
|
18
|
+
%>
|
19
|
+
|
20
|
+
|
21
|
+
<%
|
22
|
+
# strategy: when an alert is present, it is displayed in one of two ways:
|
23
|
+
# 1) show a floating box with the alert message fixed near the top
|
24
|
+
# of the browser window. Message box includes an "X" close button.
|
25
|
+
# 2) show a single-line "Show Alert" link below the upper-right logo
|
26
|
+
# and above the other right-column boxes
|
27
|
+
#
|
28
|
+
# When a visitor first views a site page after an alert is posted,
|
29
|
+
# the box is displayed, and it is displayed on all subsequent pages
|
30
|
+
# until the alert is removed or the visitor takes action. When the
|
31
|
+
# box's "X" is clicked, the box is un-displayed and the link is
|
32
|
+
# added. This state then persists on subsequent pages. When the
|
33
|
+
# "Show Alert" list is clicked, the box is re-displayed and the link
|
34
|
+
# removed, and the box resumes its persitence across pages.
|
35
|
+
#
|
36
|
+
# implementation: alert text and managing JS code is included only
|
37
|
+
# when an alert is present. Use a session cookie, set and read from
|
38
|
+
# JS on the links, to control whether the box or link is displayed.
|
39
|
+
%>
|
40
|
+
|
41
|
+
|
42
|
+
<div id="alert_show_link"
|
43
|
+
style="display: none; margin-top: 0.7ex; margin-bottom: 0.7ex;">
|
44
|
+
<%= link_to_function "Show Alert", "dynamic_alert_show_box();" %>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div id="alert_box" style="display: none;">
|
48
|
+
<div id="alert_box_close_link">
|
49
|
+
<%= link_to_function "X", "dynamic_alert_show_link();" %>
|
50
|
+
</div>
|
51
|
+
<%= open(FormatHelper::ALERT_CONTENT_PATH).read %>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<script>
|
55
|
+
if (Cookie.get( alert_cookie_name ) == "true")
|
56
|
+
document.getElementById('alert_show_link').style.display = 'block';
|
57
|
+
else
|
58
|
+
document.getElementById('alert_box').style.display = 'block';
|
59
|
+
</script>
|
@@ -23,18 +23,26 @@
|
|
23
23
|
WontoMedia.ads.google.publisher_id and
|
24
24
|
WontoMedia.ads.google.data_page_slot %>
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
//--></script>
|
34
|
-
<script type="text/javascript"
|
35
|
-
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
36
|
-
</script>
|
37
|
-
</div>
|
26
|
+
<!-- specifying the height for this div prevents re-layout when content
|
27
|
+
is added later in page load. Must update if ad unit changes -->
|
28
|
+
<div id="block-google-ad" class="box"
|
29
|
+
style="width: 98%; height: 600px; text-align: center;"></div>
|
30
|
+
<script>
|
31
|
+
addToDivsToMove('block-google-ad');
|
32
|
+
</script>
|
38
33
|
|
34
|
+
<% content_for :last_bottom_page_js do %>
|
35
|
+
<div id="block-google-ad-content" style="display: none;">
|
36
|
+
<script type="text/javascript"><!--
|
37
|
+
google_ad_client = "<%= WontoMedia.ads.google.publisher_id -%>";
|
38
|
+
google_ad_slot = "<%= WontoMedia.ads.google.data_page_slot -%>";
|
39
|
+
google_ad_width = 160;
|
40
|
+
google_ad_height = 600;
|
41
|
+
//--></script>
|
42
|
+
<script type="text/javascript"
|
43
|
+
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
44
|
+
</script>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
39
47
|
<% end %>
|
40
48
|
<% end %>
|
@@ -17,8 +17,6 @@
|
|
17
17
|
# see "http://www.gnu.org/licenses/".
|
18
18
|
%>
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
<span class="unimplemented">[top-level "Help" link]</span>
|
20
|
+
<div id="block-help">
|
21
|
+
<%= link_to 'Help', WontoMedia.help_url_prefix + "Help:Main_Page" %>
|
23
22
|
</div>
|
24
|
-
<% end %>
|
@@ -56,9 +56,8 @@
|
|
56
56
|
</div>
|
57
57
|
</div>
|
58
58
|
<div id="column-left">
|
59
|
-
<%= link_to(
|
60
|
-
|
61
|
-
:style=>'margin-bottom: 0.7ex;' ), root_url ) %>
|
59
|
+
<%= link_to( logo_image, root_url ) %>
|
60
|
+
<%= allpages_alert %>
|
62
61
|
<%= render :partial => "layouts/amazon_ads" %>
|
63
62
|
</div>
|
64
63
|
</div>
|
@@ -50,15 +50,15 @@
|
|
50
50
|
<%= render :partial => "layouts/search_box" %>
|
51
51
|
</div>
|
52
52
|
<div id="page-top-controls"
|
53
|
-
style="position: absolute; top: 0; right:
|
53
|
+
style="position: absolute; top: 0; right: 15.6%;">
|
54
54
|
<%= render :partial => "layouts/master_help" %>
|
55
55
|
<%= render :partial => "layouts/language_select" %>
|
56
56
|
<%= render :partial => "layouts/login_controls" %>
|
57
57
|
</div>
|
58
58
|
</div>
|
59
59
|
<div id="column-left" style="width: 98%">
|
60
|
-
<%=
|
61
|
-
|
60
|
+
<%= logo_image %>
|
61
|
+
<%= allpages_alert %>
|
62
62
|
<%= yield( :left_column ) %>
|
63
63
|
</div>
|
64
64
|
</div>
|
data/assets/wontomedia-sample.rb
CHANGED
@@ -28,9 +28,12 @@ WontoMedia = OpenStruct.new({
|
|
28
28
|
|
29
29
|
:ads => OpenStruct.new({
|
30
30
|
# :amazon => OpenStruct.new({
|
31
|
+
# # the color scheme of Amazon ads is controlled from JS constants
|
32
|
+
# # in /app/views/layouts/_amazon_ads.html.erb
|
31
33
|
# :associate_id => "your-amazon-id-here"
|
32
34
|
# }),
|
33
35
|
# :google => OpenStruct.new({
|
36
|
+
# # the color scheme of Google ads is controlled from their site
|
34
37
|
# :publisher_id => "your-google-id-here",
|
35
38
|
# # "data page" is used in the partial common/_google_ads,
|
36
39
|
# # which is used in [items or connections]/[index or show] pages
|
data/config/asset_packages.yml
CHANGED
data/config/cucumber.yml
CHANGED
@@ -20,10 +20,8 @@
|
|
20
20
|
common = uber_common + "--format progress "
|
21
21
|
tags_common = "--tags ~@invalid"
|
22
22
|
tags_rake = "--tags ~@extended"
|
23
|
-
static = "-r features/support/
|
24
|
-
|
25
|
-
dynamic = "-r features/support/local.rb " +
|
26
|
-
"-r features/support/dynamic.rb -r features/step_definitions "
|
23
|
+
static = "-r features/support/static.rb -r features/step_definitions "
|
24
|
+
dynamic = "-r features/support/dynamic.rb -r features/step_definitions "
|
27
25
|
static_only = "--exclude=dynamic features "
|
28
26
|
dynamic_only = "--exclude=static features "
|
29
27
|
%>
|
data/config/environment.rb
CHANGED
@@ -15,8 +15,26 @@
|
|
15
15
|
# along with this program in the file COPYING and/or LICENSE. If not,
|
16
16
|
# see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
|
+
#### Active lines here at the top of file. Unused Rails boiler-plate down below
|
19
|
+
|
20
|
+
RAILS_GEM_VERSION = '~> 2.3' unless defined? RAILS_GEM_VERSION
|
21
|
+
require File.join(File.dirname(__FILE__), 'boot')
|
22
|
+
|
23
|
+
Rails::Initializer.run do |config|
|
24
|
+
# config.log_level = :debug
|
25
|
+
|
26
|
+
config.frameworks -= [ :action_mailer ]
|
27
|
+
config.time_zone = 'UTC'
|
28
|
+
config.action_controller.session = {
|
29
|
+
:session_key => '_wontomedia_session',
|
30
|
+
:secret => '1f59de398da7f80aca3f4a943eae6e8f5759efe7ec9e7690c57a4f485012f4f487ccf4530d4885a70fb20f51801306ddc50688b00bb3616da44303238cb15a64'
|
31
|
+
}
|
32
|
+
end
|
18
33
|
|
19
34
|
|
35
|
+
|
36
|
+
###########################################################################
|
37
|
+
|
20
38
|
# Be sure to restart your server when you modify this file
|
21
39
|
|
22
40
|
# Uncomment below to force Rails into production mode when
|
@@ -24,12 +42,12 @@
|
|
24
42
|
# ENV['RAILS_ENV'] ||= 'production'
|
25
43
|
|
26
44
|
# Specifies gem version of Rails to use when vendor/rails is not present
|
27
|
-
RAILS_GEM_VERSION = '~> 2.3' unless defined? RAILS_GEM_VERSION
|
45
|
+
#RAILS_GEM_VERSION = '~> 2.3' unless defined? RAILS_GEM_VERSION
|
28
46
|
|
29
47
|
# Bootstrap the Rails environment, frameworks, and default configuration
|
30
|
-
require File.join(File.dirname(__FILE__), 'boot')
|
48
|
+
#require File.join(File.dirname(__FILE__), 'boot')
|
31
49
|
|
32
|
-
Rails::Initializer.run do |config|
|
50
|
+
#Rails::Initializer.run do |config|
|
33
51
|
# Settings in config/environments/* take precedence over those specified here.
|
34
52
|
# Application configuration should go into files in config/initializers
|
35
53
|
# -- all .rb files in that directory are automatically loaded.
|
@@ -62,7 +80,7 @@ Rails::Initializer.run do |config|
|
|
62
80
|
# Make Time.zone default to the specified zone, and make Active Record store time values
|
63
81
|
# in the database in UTC, and return them converted to the specified local zone.
|
64
82
|
# Run "rake -D time" for a list of tasks for finding time zone names. Comment line to use default local time.
|
65
|
-
config.time_zone = 'UTC'
|
83
|
+
# config.time_zone = 'UTC'
|
66
84
|
|
67
85
|
# The internationalization framework can be changed to have another default locale (standard is :en) or more load paths.
|
68
86
|
# All files from config/locales/*.rb,yml are added automatically.
|
@@ -73,10 +91,10 @@ Rails::Initializer.run do |config|
|
|
73
91
|
# If you change this key, all old sessions will become invalid!
|
74
92
|
# Make sure the secret is at least 30 characters and all random,
|
75
93
|
# no regular words or you'll be exposed to dictionary attacks.
|
76
|
-
config.action_controller.session = {
|
77
|
-
:session_key => '_wontomedia_session',
|
78
|
-
:secret => '1f59de398da7f80aca3f4a943eae6e8f5759efe7ec9e7690c57a4f485012f4f487ccf4530d4885a70fb20f51801306ddc50688b00bb3616da44303238cb15a64'
|
79
|
-
}
|
94
|
+
# config.action_controller.session = {
|
95
|
+
# :session_key => '_wontomedia_session',
|
96
|
+
# :secret => '1f59de398da7f80aca3f4a943eae6e8f5759efe7ec9e7690c57a4f485012f4f487ccf4530d4885a70fb20f51801306ddc50688b00bb3616da44303238cb15a64'
|
97
|
+
# }
|
80
98
|
|
81
99
|
# Use the database for sessions instead of the cookie-based default,
|
82
100
|
# which shouldn't be used to store highly confidential information
|
@@ -91,4 +109,4 @@ Rails::Initializer.run do |config|
|
|
91
109
|
# Activate observers that should always be running
|
92
110
|
# Please note that observers generated using script/generate observer need to have an _observer suffix
|
93
111
|
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
94
|
-
end
|
112
|
+
#end
|
@@ -7,6 +7,7 @@
|
|
7
7
|
active area background: light blue #d0d0ff
|
8
8
|
content border: 2nd-darkest blue #b0b0ff
|
9
9
|
dk blue #040460
|
10
|
+
error color: dk red #990000 ; scaffold.css, .png's
|
10
11
|
unvisited link color: #1d43c0
|
11
12
|
visited link color: #64439d
|
12
13
|
accent color: yellow
|
@@ -183,6 +184,8 @@ p.unimplemented {
|
|
183
184
|
}
|
184
185
|
.tip {
|
185
186
|
display: none;
|
187
|
+
font-weight: normal;
|
188
|
+
white-space: nowrap;
|
186
189
|
}
|
187
190
|
.texthastip:hover .tip,
|
188
191
|
.linkhastip:hover .tip {
|
@@ -207,6 +210,35 @@ p + table { margin-bottom: 1.5em; }
|
|
207
210
|
letter-spacing: -0.3em;
|
208
211
|
}
|
209
212
|
|
213
|
+
#block-help {
|
214
|
+
float: right;
|
215
|
+
border-width: 1px;
|
216
|
+
border-color: #e8e8ff;
|
217
|
+
border-style: none solid solid;
|
218
|
+
background: #f8f8ff;
|
219
|
+
padding: 0 0.3em;
|
220
|
+
height: 2.7ex;
|
221
|
+
font-size: 200%;
|
222
|
+
}
|
223
|
+
|
224
|
+
#alert_box {
|
225
|
+
width: 30%;
|
226
|
+
position: fixed;
|
227
|
+
top: 18px;
|
228
|
+
left: 35%;
|
229
|
+
z-index: 150;
|
230
|
+
font-size: 110%;
|
231
|
+
font-weight: bold;
|
232
|
+
background: url("/images/alert_background.png") repeat;
|
233
|
+
text-align: center;
|
234
|
+
}
|
235
|
+
#alert_box_close_link {
|
236
|
+
float: right;
|
237
|
+
border: solid 1px #1d43c0;
|
238
|
+
margin: 0 5px;
|
239
|
+
}
|
240
|
+
|
241
|
+
|
210
242
|
|
211
243
|
/* styles first intended for item & connection info tables:
|
212
244
|
* app/views/ ** /index, home, show */
|
@@ -275,7 +307,7 @@ p.directions {
|
|
275
307
|
|
276
308
|
.helpTextFlagged {
|
277
309
|
font-weight: bold;
|
278
|
-
color: #
|
310
|
+
color: #990000;
|
279
311
|
}
|
280
312
|
|
281
313
|
.confirmationTextInvisible {
|
@@ -284,7 +316,7 @@ p.directions {
|
|
284
316
|
|
285
317
|
.confirmationTextShow {
|
286
318
|
display: inline;
|
287
|
-
color: #
|
319
|
+
color: #b0b0ff;
|
288
320
|
}
|
289
321
|
|
290
322
|
.activeButton {
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -16,10 +16,22 @@
|
|
16
16
|
// see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
18
|
|
19
|
+
// invoked at bottom of app/views/layouts/base.html.erb
|
20
|
+
function moveAndDisplayDelayedDivs(){
|
21
|
+
if (typeof divsToMove !== 'undefined')
|
22
|
+
for (var c =0; c < divsToMove.length; c++){
|
23
|
+
var targetDiv = document.getElementById( divsToMove[c] );
|
24
|
+
var divWithAd = document.getElementById( divsToMove[c] + '-content' );
|
19
25
|
|
20
|
-
//
|
21
|
-
|
22
|
-
|
26
|
+
// remove the ad div from the main document
|
27
|
+
var parent = divWithAd.parentNode;
|
28
|
+
parent.removeChild( divWithAd );
|
29
|
+
// put the ad div into its target location on the page
|
30
|
+
targetDiv.appendChild( divWithAd );
|
31
|
+
// and make it visible
|
32
|
+
divWithAd.style.display = 'block';
|
33
|
+
}
|
34
|
+
}
|
23
35
|
|
24
36
|
|
25
37
|
// common to several forms
|
@@ -50,7 +62,20 @@ jQuery(document).ready(function() {
|
|
50
62
|
"Click outside box or type 'ESC' to close</span>"; },
|
51
63
|
'transitionIn' : 'elastic',
|
52
64
|
'transitionOut' : 'elastic',
|
65
|
+
'width' : '80%',
|
53
66
|
'type' : 'iframe'
|
54
67
|
});
|
55
68
|
});
|
56
69
|
|
70
|
+
|
71
|
+
function dynamic_alert_show_box(){
|
72
|
+
Cookie.set( alert_cookie_name, "false" );
|
73
|
+
document.getElementById('alert_box').style.display = 'block';
|
74
|
+
document.getElementById('alert_show_link').style.display = 'none';
|
75
|
+
}
|
76
|
+
|
77
|
+
function dynamic_alert_show_link(){
|
78
|
+
Cookie.set( alert_cookie_name, "true" );
|
79
|
+
document.getElementById('alert_box').style.display = 'none';
|
80
|
+
document.getElementById('alert_show_link').style.display = 'block';
|
81
|
+
}
|
@@ -0,0 +1,151 @@
|
|
1
|
+
/**
|
2
|
+
* Small Cookies JavaScript Helper
|
3
|
+
*
|
4
|
+
* Source code available at http://github.com/tdd/cookies-js-helper
|
5
|
+
*
|
6
|
+
* Copyright (c) 2010 Christophe Porteneuve <tdd@tddsworld.com>
|
7
|
+
*
|
8
|
+
* Permission is hereby granted, free of charge, to any person
|
9
|
+
* obtaining a copy of this software and associated documentation
|
10
|
+
* files (the "Software"), to deal in the Software without
|
11
|
+
* restriction, including without limitation the rights to use,
|
12
|
+
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
13
|
+
* copies of the Software, and to permit persons to whom the
|
14
|
+
* Software is furnished to do so, subject to the following
|
15
|
+
* conditions:
|
16
|
+
*
|
17
|
+
* The above copyright notice and this permission notice shall be
|
18
|
+
* included in all copies or substantial portions of the Software.
|
19
|
+
*
|
20
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
22
|
+
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
24
|
+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
25
|
+
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
26
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
27
|
+
* OTHER DEALINGS IN THE SOFTWARE.
|
28
|
+
*/
|
29
|
+
|
30
|
+
(function(scope) {
|
31
|
+
|
32
|
+
var _toString = Object.prototype.toString;
|
33
|
+
function isDate(o) { return '[object Date]' == _toString.call(o); }
|
34
|
+
function isRegExp(o) { return '[object RegExp]' == _toString.call(o); }
|
35
|
+
|
36
|
+
var Cookie = {
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Cookie.get(name) -> String | null
|
40
|
+
* - name (String): The name of the cookie you want to fetch.
|
41
|
+
*
|
42
|
+
* Returns the cookie’s value for the passed name, or +null+ if the cookie
|
43
|
+
* does not exist.
|
44
|
+
*/
|
45
|
+
get: function get(name) {
|
46
|
+
return Cookie.has(name) ? Cookie.list()[name] : null;
|
47
|
+
},
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Cookie.has(name) -> Boolean
|
51
|
+
* - name (String): The name of the cookie you want to test the presence of.
|
52
|
+
*
|
53
|
+
* Returns whether the cookie for that name exists or not.
|
54
|
+
*/
|
55
|
+
has: function has(name) {
|
56
|
+
return new RegExp("(?:;\\s*|^)" + encodeURIComponent(name) + '=').test(document.cookie);
|
57
|
+
},
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Cookie.list([nameRegExp]) -> { name: value[, name: value …]}
|
61
|
+
* - nameRegExp (RegExp) an optional `RegExp` to filter cookie names. If anything but
|
62
|
+
* an actual `RegExp` is passed, this argument is ignored.
|
63
|
+
*
|
64
|
+
* Returns a key-value dictionary of existing cookies for the current page.
|
65
|
+
* Note the ordering of names is basically browser-dependent (as in, JS-engine-dependent).
|
66
|
+
*/
|
67
|
+
list: function list(nameRegExp) {
|
68
|
+
var pairs = document.cookie.split(';'), pair, result = {};
|
69
|
+
for (var index = 0, len = pairs.length; index < len; ++index) {
|
70
|
+
pair = pairs[index].split('=');
|
71
|
+
if (!isRegExp(nameRegExp) || nameRegExp.test(pair[0]))
|
72
|
+
result[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
73
|
+
}
|
74
|
+
return result;
|
75
|
+
},
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Cookie.remove(name[, options]) -> String
|
79
|
+
* - name (String): The name of the cookie you want to remove.
|
80
|
+
* - options (Object): An optional set of settings for cookie removal. See Cookie.set for details.
|
81
|
+
*
|
82
|
+
* Removes the cookie value for the name you passed, honoring potential filtering options.
|
83
|
+
* Returns the actual cookie string written to the underlying `document.cookie` property.
|
84
|
+
*/
|
85
|
+
remove: function remove(name, options) {
|
86
|
+
var opt2 = {};
|
87
|
+
for (var key in (options || {})) opts2[key] = options[key];
|
88
|
+
opt2.expires = new Date(0);
|
89
|
+
opt2.maxAge = -1;
|
90
|
+
return Cookie.set(name, null, opt2);
|
91
|
+
},
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Cookie.set(name, value, [, options]) -> String
|
95
|
+
* - name (String): The name of the cookie you want to set.
|
96
|
+
* - value (Object): The value for the cookie you want to set. It will undergo a basic `toString()`
|
97
|
+
* transform, so if it's a complex object you likely want to, say, use its JSON representation instead.
|
98
|
+
* - options (Object): An optional set of settings for cookie setting. See below.
|
99
|
+
*
|
100
|
+
* Sets a cookie for the name and value you passed, honoring potential filtering options.
|
101
|
+
* Returns the actual cookie string written to the underlying `document.cookie` property.
|
102
|
+
*
|
103
|
+
* Possible options are:
|
104
|
+
*
|
105
|
+
* * `path` sets the path within the current domain. Defaults to the current path. Minimum is '/'.
|
106
|
+
* Ignored if blank.
|
107
|
+
* * `domain` sets the (sub)domain this cookie pertains to. At the shortest, the current root
|
108
|
+
* domain (e.g. 'example.com'), but can also be any depth of subdomain up to the current one
|
109
|
+
* (e.g. 'www.demo.example.com'). Ignored if blank.
|
110
|
+
* * `maxAge` / `max_age` / `max-age` is one way to define when the cookie should expire; this
|
111
|
+
* is a time-to-live in _seconds_. Any of the three keys is accepted, in this order of
|
112
|
+
* decreasing priority (first found key short-circuits the latter ones).
|
113
|
+
* * `expires` is the traditional way of setting a cookie expiry, using an absolute GMT date/time
|
114
|
+
* string with an RFC2822 format (e.g. 'Tue, 02 Feb 2010 22:04:47 GMT'). You can also pass
|
115
|
+
* a `Date` object set appropriately, in which case its `toUTCString()` method will be used.
|
116
|
+
* * `secure` defines whether the cookie should only be passed through HTTPS connections. It's
|
117
|
+
* used as `Boolean`-equivalent (so zero, `null`, `undefined` and the empty string are all false).
|
118
|
+
*/
|
119
|
+
set: function set(name, value, options) {
|
120
|
+
options = options || {};
|
121
|
+
var def = [encodeURIComponent(name) + '=' + encodeURIComponent(value)];
|
122
|
+
if (options.path) def.push('path=' + options.path);
|
123
|
+
if (options.domain) def.push('domain=' + options.path);
|
124
|
+
var maxAge = 'maxAge' in options ? options.maxAge :
|
125
|
+
('max_age' in options ? options.max_age : options['max-age']), maxAgeNbr;
|
126
|
+
if ('undefined' != typeof maxAge && 'null' != typeof maxAge && (!isNaN(maxAgeNbr = parseFloat(maxAge))))
|
127
|
+
def.push('max-age=' + maxAgeNbr);
|
128
|
+
var expires = isDate(options.expires) ? options.expires.toUTCString() : options.expires;
|
129
|
+
if (expires) def.push('expires=' + expires);
|
130
|
+
if (options.secure) def.push('secure');
|
131
|
+
def = def.join('; ');
|
132
|
+
document.cookie = def;
|
133
|
+
return def;
|
134
|
+
},
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Cookie.test() -> Boolean
|
138
|
+
*
|
139
|
+
* Tests whether cookies are enabled or not.
|
140
|
+
*/
|
141
|
+
test: function test() {
|
142
|
+
var key = '70ab3d396b85e670f25b93be05e027e4eb655b71', value = 'Élodie Jaubert'
|
143
|
+
Cookie.remove(key);
|
144
|
+
Cookie.set(key, value);
|
145
|
+
var result = value == Cookie.get(key);
|
146
|
+
Cookie.remove(key);
|
147
|
+
return result;
|
148
|
+
},
|
149
|
+
};
|
150
|
+
scope.Cookie = Cookie;
|
151
|
+
})(window);
|
@@ -16,4 +16,15 @@
|
|
16
16
|
// see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
18
|
|
19
|
+
// this has to execute between when we load jQuery and when we load Prototype
|
19
20
|
jQuery.noConflict(); // free-up '$' for 'prototype' (in :defaults)
|
21
|
+
|
22
|
+
|
23
|
+
// these are WontoMedia helpers that need to be available at the top of page
|
24
|
+
function addToDivsToMove(divId){
|
25
|
+
if (typeof divsToMove === 'undefined')
|
26
|
+
divsToMove = new Array();
|
27
|
+
divsToMove[ divsToMove.length ] = divId;
|
28
|
+
}
|
29
|
+
|
30
|
+
alert_cookie_name = 'show_alert';
|
@@ -1,12 +1,12 @@
|
|
1
1
|
.fieldWithErrors {
|
2
2
|
padding: 2px;
|
3
|
-
background-color:
|
3
|
+
background-color: #990000;
|
4
4
|
display: table;
|
5
5
|
}
|
6
6
|
|
7
7
|
#errorExplanation {
|
8
8
|
width: 400px;
|
9
|
-
border: 2px solid
|
9
|
+
border: 2px solid #990000;
|
10
10
|
padding: 7px;
|
11
11
|
padding-bottom: 12px;
|
12
12
|
margin-bottom: 20px;
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Glen E. Ivey
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-03-08 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- app/views/items/newpop.html.erb
|
81
81
|
- app/views/items/show.html.erb
|
82
82
|
- app/views/layouts/_amazon_ads.html.erb
|
83
|
+
- app/views/layouts/_dynamic_alert_framework.html.erb
|
83
84
|
- app/views/layouts/_glossary_help_box.html.erb
|
84
85
|
- app/views/layouts/_google_ads.html.erb
|
85
86
|
- app/views/layouts/_language_select.html.erb
|
@@ -144,6 +145,7 @@ files:
|
|
144
145
|
- public/dispatch.fcgi
|
145
146
|
- public/dispatch.rb
|
146
147
|
- public/favicon.ico
|
148
|
+
- public/images/alert_background.png
|
147
149
|
- public/images/blank_error_icon.png
|
148
150
|
- public/images/blank_status_icon.png
|
149
151
|
- public/images/error_error_icon.png
|
@@ -155,6 +157,7 @@ files:
|
|
155
157
|
- public/images/working_status_icon.gif
|
156
158
|
- public/javascripts/application.js
|
157
159
|
- public/javascripts/controls.js
|
160
|
+
- public/javascripts/cookies.js
|
158
161
|
- public/javascripts/dragdrop.js
|
159
162
|
- public/javascripts/effects.js
|
160
163
|
- public/javascripts/event.simulate.js
|