muck-comments 0.1.20 → 0.1.21
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 +1 -1
- data/lib/active_record/acts/muck_comment.rb +5 -28
- data/lib/acts_as_commentable_with_threading.rb +2 -31
- data/muck-comments.gemspec +37 -4
- data/test/rails_root/config/database.yml +15 -18
- data/test/rails_root/db/migrate/20100206000906_remove_name_fields.rb +15 -0
- data/test/rails_root/public/images/fancybox/blank.gif +0 -0
- data/test/rails_root/public/images/fancybox/fancy_close.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_loading.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_nav_left.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_nav_right.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_e.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_n.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_ne.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_nw.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_s.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_se.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_sw.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_w.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_left.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_main.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_over.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_right.png +0 -0
- data/test/rails_root/public/images/fancybox/fancybox-x.png +0 -0
- data/test/rails_root/public/images/fancybox/fancybox-y.png +0 -0
- data/test/rails_root/public/images/fancybox/fancybox.png +0 -0
- data/test/rails_root/public/images/icon_no.gif +0 -0
- data/test/rails_root/public/images/icon_success.gif +0 -0
- data/test/rails_root/public/javascripts/jquery/fg.menu.js +517 -0
- data/test/rails_root/public/javascripts/jquery/jquery-ui.js +862 -123
- data/test/rails_root/public/javascripts/jquery/jquery.easing.js +46 -1
- data/test/rails_root/public/javascripts/jquery/jquery.fancybox.js +34 -6
- data/test/rails_root/public/javascripts/jquery/jquery.form.js +45 -30
- data/test/rails_root/public/javascripts/jquery/jquery.js +150 -15
- data/test/rails_root/public/javascripts/jquery/jquery.mousewheel.js +13 -0
- data/test/rails_root/public/javascripts/jquery/jquery.timers.js +138 -0
- data/test/rails_root/public/javascripts/muck-countries.js +1 -1
- data/test/rails_root/public/javascripts/muck-src.js +147 -0
- data/test/rails_root/public/javascripts/muck-users.js +6 -0
- data/test/rails_root/public/javascripts/muck.js +5 -91
- data/test/rails_root/public/javascripts/muck_admin.js +13 -0
- data/test/rails_root/public/stylesheets/admin.css +22 -0
- data/test/rails_root/public/stylesheets/fgmenu/fg.menu.css +114 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-icons_0073ea_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-icons_454545_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-icons_666666_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-icons_ff0084_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/flick/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/flick/jquery-ui-1.8.1.custom.css +486 -0
- data/test/rails_root/public/stylesheets/jquery/jquery.fancybox.css +77 -38
- metadata +50 -4
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jQuery.timers - Timer abstractions for jQuery
|
|
3
|
+
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
|
|
4
|
+
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
|
|
5
|
+
* Date: 2009/10/16
|
|
6
|
+
*
|
|
7
|
+
* @author Blair Mitchelmore
|
|
8
|
+
* @version 1.2
|
|
9
|
+
*
|
|
10
|
+
**/
|
|
11
|
+
|
|
12
|
+
jQuery.fn.extend({
|
|
13
|
+
everyTime: function(interval, label, fn, times) {
|
|
14
|
+
return this.each(function() {
|
|
15
|
+
jQuery.timer.add(this, interval, label, fn, times);
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
oneTime: function(interval, label, fn) {
|
|
19
|
+
return this.each(function() {
|
|
20
|
+
jQuery.timer.add(this, interval, label, fn, 1);
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
stopTime: function(label, fn) {
|
|
24
|
+
return this.each(function() {
|
|
25
|
+
jQuery.timer.remove(this, label, fn);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
jQuery.extend({
|
|
31
|
+
timer: {
|
|
32
|
+
global: [],
|
|
33
|
+
guid: 1,
|
|
34
|
+
dataKey: "jQuery.timer",
|
|
35
|
+
regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
|
|
36
|
+
powers: {
|
|
37
|
+
// Yeah this is major overkill...
|
|
38
|
+
'ms': 1,
|
|
39
|
+
'cs': 10,
|
|
40
|
+
'ds': 100,
|
|
41
|
+
's': 1000,
|
|
42
|
+
'das': 10000,
|
|
43
|
+
'hs': 100000,
|
|
44
|
+
'ks': 1000000
|
|
45
|
+
},
|
|
46
|
+
timeParse: function(value) {
|
|
47
|
+
if (value == undefined || value == null)
|
|
48
|
+
return null;
|
|
49
|
+
var result = this.regex.exec(jQuery.trim(value.toString()));
|
|
50
|
+
if (result[2]) {
|
|
51
|
+
var num = parseFloat(result[1]);
|
|
52
|
+
var mult = this.powers[result[2]] || 1;
|
|
53
|
+
return num * mult;
|
|
54
|
+
} else {
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
add: function(element, interval, label, fn, times) {
|
|
59
|
+
var counter = 0;
|
|
60
|
+
|
|
61
|
+
if (jQuery.isFunction(label)) {
|
|
62
|
+
if (!times)
|
|
63
|
+
times = fn;
|
|
64
|
+
fn = label;
|
|
65
|
+
label = interval;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
interval = jQuery.timer.timeParse(interval);
|
|
69
|
+
|
|
70
|
+
if (typeof interval != 'number' || isNaN(interval) || interval < 0)
|
|
71
|
+
return;
|
|
72
|
+
|
|
73
|
+
if (typeof times != 'number' || isNaN(times) || times < 0)
|
|
74
|
+
times = 0;
|
|
75
|
+
|
|
76
|
+
times = times || 0;
|
|
77
|
+
|
|
78
|
+
var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
|
|
79
|
+
|
|
80
|
+
if (!timers[label])
|
|
81
|
+
timers[label] = {};
|
|
82
|
+
|
|
83
|
+
fn.timerID = fn.timerID || this.guid++;
|
|
84
|
+
|
|
85
|
+
var handler = function() {
|
|
86
|
+
if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
|
|
87
|
+
jQuery.timer.remove(element, label, fn);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
handler.timerID = fn.timerID;
|
|
91
|
+
|
|
92
|
+
if (!timers[label][fn.timerID])
|
|
93
|
+
timers[label][fn.timerID] = window.setInterval(handler,interval);
|
|
94
|
+
|
|
95
|
+
this.global.push( element );
|
|
96
|
+
|
|
97
|
+
},
|
|
98
|
+
remove: function(element, label, fn) {
|
|
99
|
+
var timers = jQuery.data(element, this.dataKey), ret;
|
|
100
|
+
|
|
101
|
+
if ( timers ) {
|
|
102
|
+
|
|
103
|
+
if (!label) {
|
|
104
|
+
for ( label in timers )
|
|
105
|
+
this.remove(element, label, fn);
|
|
106
|
+
} else if ( timers[label] ) {
|
|
107
|
+
if ( fn ) {
|
|
108
|
+
if ( fn.timerID ) {
|
|
109
|
+
window.clearInterval(timers[label][fn.timerID]);
|
|
110
|
+
delete timers[label][fn.timerID];
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
for ( var fn in timers[label] ) {
|
|
114
|
+
window.clearInterval(timers[label][fn]);
|
|
115
|
+
delete timers[label][fn];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
for ( ret in timers[label] ) break;
|
|
120
|
+
if ( !ret ) {
|
|
121
|
+
ret = null;
|
|
122
|
+
delete timers[label];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
for ( ret in timers ) break;
|
|
127
|
+
if ( !ret )
|
|
128
|
+
jQuery.removeData(element, this.dataKey);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
jQuery(window).bind("unload", function() {
|
|
135
|
+
jQuery.each(jQuery.timer.global, function(index, item) {
|
|
136
|
+
jQuery.timer.remove(item);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -19,7 +19,7 @@ function setup_country(force_load){
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
if(force_load || state_id == '' || state_id == null || state_id == -1) {
|
|
22
|
-
jQuery.getJSON("/
|
|
22
|
+
jQuery.getJSON("/load_states_for_country/" + country_id + ".json", function(data){
|
|
23
23
|
var options = '';
|
|
24
24
|
jQuery("#counties-container").hide();
|
|
25
25
|
jQuery('#states-container label').html(data.label);
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// compress with http://closure-compiler.appspot.com/home
|
|
2
|
+
//jQuery.noConflict();
|
|
3
|
+
jQuery(document).ajaxSend(function(event, request, settings) {
|
|
4
|
+
add_headers(request);
|
|
5
|
+
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/
|
|
6
|
+
// settings.data is a serialized string like "foo=bar&baz=boink" (or null)
|
|
7
|
+
settings.data = settings.data || "";
|
|
8
|
+
if (typeof(AUTH_TOKEN) != "undefined")
|
|
9
|
+
settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
function apply_ajax_forms() {
|
|
13
|
+
jQuery('form.ajax').ajaxForm({
|
|
14
|
+
dataType: 'script',
|
|
15
|
+
beforeSend: add_headers
|
|
16
|
+
});
|
|
17
|
+
jQuery('form.ajax').append('<input type="hidden" name="format" value="js" />');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function add_headers(xhr){
|
|
21
|
+
xhr.setRequestHeader("Accept", "text/javascript");
|
|
22
|
+
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
jQuery(document).ready(function() {
|
|
26
|
+
|
|
27
|
+
jQuery('a.ajax-delete').live('click', function() {
|
|
28
|
+
var title = jQuery(this).attr('title');
|
|
29
|
+
var do_delete = true;
|
|
30
|
+
if(title.length > 0){
|
|
31
|
+
do_delete = confirm(title);
|
|
32
|
+
}
|
|
33
|
+
if (do_delete){
|
|
34
|
+
jQuery.post(this.href, { _method: 'delete', format: 'js' }, null, "script");
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
jQuery('a.ajax-update').live('click', function() {
|
|
40
|
+
jQuery.post(this.href, { _method: 'put', format: 'js' }, null, "script");
|
|
41
|
+
return false;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
jQuery(".submit-form").click(function() {
|
|
45
|
+
jQuery(this).parent('form').submit();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
apply_ajax_forms();
|
|
49
|
+
|
|
50
|
+
jQuery('a.dialog-pop').live('click', function() {
|
|
51
|
+
var d = jQuery('<div class="dialog"></div>').appendTo("body");
|
|
52
|
+
d.dialog({ modal: true, autoOpen: false, width: 'auto', title: jQuery(this).attr('title') });
|
|
53
|
+
d.load(jQuery(this).attr('href'), '', function(){
|
|
54
|
+
d.dialog("open");
|
|
55
|
+
apply_ajax_forms();
|
|
56
|
+
});
|
|
57
|
+
return false;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
jQuery(".submit-delete").live('click', function() {
|
|
61
|
+
jQuery(this).parents('.delete-container').fadeOut();
|
|
62
|
+
var form = jQuery(this).parents('form');
|
|
63
|
+
jQuery.post(form.attr('action') + '.json', form.serialize(),
|
|
64
|
+
function(data){
|
|
65
|
+
var json = eval('(' + data + ')');
|
|
66
|
+
if(!json.success){
|
|
67
|
+
jQuery.jGrowl.info(json.message);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return false;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
jQuery(".submit-delete-js").live('click', function() {
|
|
74
|
+
jQuery(this).parents('.delete-container').fadeOut();
|
|
75
|
+
var form = jQuery(this).parents('form');
|
|
76
|
+
jQuery.post(form.attr('action') + '.js', form.serialize(),
|
|
77
|
+
function(data){
|
|
78
|
+
});
|
|
79
|
+
return false;
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
jQuery(document).ready(function() {
|
|
83
|
+
jQuery('.waiting').hide();
|
|
84
|
+
jQuery(".wait-button").live('click', function() {
|
|
85
|
+
jQuery(this).siblings('.waiting').show();
|
|
86
|
+
jQuery(this).hide();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// String list methods. These are handy for dealing with comma delimited lists
|
|
93
|
+
// in text boxes such as a list of emails or tags.
|
|
94
|
+
// Given a comma delimited string add a new item if it isn't in the string
|
|
95
|
+
function add_to_list(items_string, new_item){
|
|
96
|
+
var items = split_list(items_string);
|
|
97
|
+
var add = true;
|
|
98
|
+
for(i=0;i<items.length;i++){
|
|
99
|
+
if(items[i] == new_item){ add = false; }
|
|
100
|
+
}
|
|
101
|
+
if(add){
|
|
102
|
+
items.push(new_item);
|
|
103
|
+
}
|
|
104
|
+
return items.join(', ');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Given a comma delimited list remove an item from the string
|
|
108
|
+
function remove_from_list(items_string, remove_item){
|
|
109
|
+
var items = split_list(items_string);
|
|
110
|
+
var cleaned = [];
|
|
111
|
+
for(i=0;i<items.length;i++){
|
|
112
|
+
if(items[i] != remove_item){
|
|
113
|
+
cleaned.push(items[i]);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return cleaned.join(', ');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Split a string on commas
|
|
120
|
+
function split_list(items_string){
|
|
121
|
+
if(undefined != items_string && items_string.length > 0){
|
|
122
|
+
var items = items_string.split(',');
|
|
123
|
+
} else {
|
|
124
|
+
var items = [];
|
|
125
|
+
}
|
|
126
|
+
var cleaned = [];
|
|
127
|
+
for(i=0;i<items.length;i++){
|
|
128
|
+
var cleaned_item = jQuery.trim(items[i]);
|
|
129
|
+
if(cleaned_item.length > 0){
|
|
130
|
+
cleaned.push(cleaned_item);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return cleaned;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function isEncodedHtml(str) {
|
|
137
|
+
if(str.search(/&/g) != -1 || str.search(/</g) != -1 || str.search(/>/g) != -1)
|
|
138
|
+
return true;
|
|
139
|
+
else
|
|
140
|
+
return false;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
function decodeHtml(str){
|
|
144
|
+
if(isEncodedHtml(str))
|
|
145
|
+
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
146
|
+
return str;
|
|
147
|
+
}
|
|
@@ -15,4 +15,10 @@ jQuery(document).ready(function() {
|
|
|
15
15
|
jQuery("#user_email").keydown(function() {
|
|
16
16
|
jQuery("#email-availibility").html('');
|
|
17
17
|
});
|
|
18
|
+
jQuery(".login-search").autocomplete('/users/login_search.js', {
|
|
19
|
+
minChars: 1,
|
|
20
|
+
delay: 200,
|
|
21
|
+
autoFill: true,
|
|
22
|
+
mustMatch: false
|
|
23
|
+
});
|
|
18
24
|
});
|
|
@@ -1,91 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
settings.data = settings.data || "";
|
|
7
|
-
if (typeof(AUTH_TOKEN) != "undefined")
|
|
8
|
-
settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
function apply_ajax_forms() {
|
|
12
|
-
jQuery('form.ajax').ajaxForm({
|
|
13
|
-
dataType: 'script',
|
|
14
|
-
beforeSend: add_headers
|
|
15
|
-
});
|
|
16
|
-
jQuery('form.ajax').append('<input type="hidden" name="format" value="js" />');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function add_headers(xhr){
|
|
20
|
-
xhr.setRequestHeader("Accept", "text/javascript");
|
|
21
|
-
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
jQuery(document).ready(function() {
|
|
25
|
-
|
|
26
|
-
jQuery('a.ajax-delete').live('click', function() {
|
|
27
|
-
var title = jQuery(this).attr('title');
|
|
28
|
-
var do_delete = true;
|
|
29
|
-
if(title.length > 0){
|
|
30
|
-
do_delete = confirm(title);
|
|
31
|
-
}
|
|
32
|
-
if (do_delete){
|
|
33
|
-
jQuery.post(this.href, { _method: 'delete', format: 'js' }, null, "script");
|
|
34
|
-
}
|
|
35
|
-
return false;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
jQuery('a.ajax-update').live('click', function() {
|
|
39
|
-
jQuery.post(this.href, { _method: 'put', format: 'js' }, null, "script");
|
|
40
|
-
return false;
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
jQuery(".submit-form").click(function() {
|
|
44
|
-
jQuery(this).parent('form').submit();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
apply_ajax_forms();
|
|
48
|
-
|
|
49
|
-
jQuery('a.fancy-pop').fancybox({'hideOnContentClick':false, 'overlayShow':true, 'frameWidth':600, 'frameHeight':500 });
|
|
50
|
-
|
|
51
|
-
jQuery('a.dialog-pop').live('click', function() {
|
|
52
|
-
var d = jQuery('<div class="dialog"></div>').appendTo("body");
|
|
53
|
-
d.dialog({ modal: true, autoOpen: false, width: 'auto', title: jQuery(this).attr('title') });
|
|
54
|
-
d.load(jQuery(this).attr('href'), '', function(){
|
|
55
|
-
d.dialog("open");
|
|
56
|
-
apply_ajax_forms();
|
|
57
|
-
});
|
|
58
|
-
return false;
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
jQuery(".submit-delete").live('click', function() {
|
|
62
|
-
jQuery(this).parents('.delete-container').fadeOut();
|
|
63
|
-
var form = jQuery(this).parents('form');
|
|
64
|
-
jQuery.post(form.attr('action') + '.json', form.serialize(),
|
|
65
|
-
function(data){
|
|
66
|
-
var json = eval('(' + data + ')');
|
|
67
|
-
if(!json.success){
|
|
68
|
-
jQuery.jGrowl.info(json.message);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
return false;
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
jQuery(".submit-delete-js").live('click', function() {
|
|
75
|
-
jQuery(this).parents('.delete-container').fadeOut();
|
|
76
|
-
var form = jQuery(this).parents('form');
|
|
77
|
-
jQuery.post(form.attr('action') + '.js', form.serialize(),
|
|
78
|
-
function(data){
|
|
79
|
-
});
|
|
80
|
-
return false;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
jQuery(document).ready(function() {
|
|
84
|
-
jQuery('.waiting').hide();
|
|
85
|
-
jQuery(".wait-button").click(function() {
|
|
86
|
-
jQuery('.waiting').show();
|
|
87
|
-
jQuery(this).hide();
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
});
|
|
1
|
+
jQuery(document).ajaxSend(function(a,b,c){add_headers(b);if(!(c.type.toUpperCase()=="GET"||typeof AUTH_TOKEN=="undefined")){c.data=c.data||"";if(typeof AUTH_TOKEN!="undefined")c.data+=(c.data?"&":"")+"authenticity_token="+encodeURIComponent(AUTH_TOKEN)}});function apply_ajax_forms(){jQuery("form.ajax").ajaxForm({dataType:"script",beforeSend:add_headers});jQuery("form.ajax").append('<input type="hidden" name="format" value="js" />')}
|
|
2
|
+
function add_headers(a){a.setRequestHeader("Accept","text/javascript");a.setRequestHeader("X-Requested-With","XMLHttpRequest")}
|
|
3
|
+
jQuery(document).ready(function(){jQuery("a.ajax-delete").live("click",function(){var a=jQuery(this).attr("title"),b=true;if(a.length>0)b=confirm(a);b&&jQuery.post(this.href,{_method:"delete",format:"js"},null,"script");return false});jQuery("a.ajax-update").live("click",function(){jQuery.post(this.href,{_method:"put",format:"js"},null,"script");return false});jQuery(".submit-form").click(function(){jQuery(this).parent("form").submit()});apply_ajax_forms();jQuery("a.dialog-pop").live("click",function(){var a=
|
|
4
|
+
jQuery('<div class="dialog"></div>').appendTo("body");a.dialog({modal:true,autoOpen:false,width:"auto",title:jQuery(this).attr("title")});a.load(jQuery(this).attr("href"),"",function(){a.dialog("open");apply_ajax_forms()});return false});jQuery(".submit-delete").live("click",function(){jQuery(this).parents(".delete-container").fadeOut();var a=jQuery(this).parents("form");jQuery.post(a.attr("action")+".json",a.serialize(),function(b){b=eval("("+b+")");b.success||jQuery.jGrowl.info(b.message)});return false});
|
|
5
|
+
jQuery(".submit-delete-js").live("click",function(){jQuery(this).parents(".delete-container").fadeOut();var a=jQuery(this).parents("form");jQuery.post(a.attr("action")+".js",a.serialize(),function(){});return false});jQuery(document).ready(function(){jQuery(".waiting").hide();jQuery(".wait-button").click(function(){jQuery(".waiting").show();jQuery(this).hide()})})});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
jQuery(function(){
|
|
2
|
+
// BUTTONS
|
|
3
|
+
jQuery('.fg-button').hover(
|
|
4
|
+
function(){ jQuery(this).removeClass('ui-state-default').addClass('ui-state-focus'); },
|
|
5
|
+
function(){ jQuery(this).removeClass('ui-state-focus').addClass('ui-state-default'); }
|
|
6
|
+
);
|
|
7
|
+
jQuery('.flat').each(function() {
|
|
8
|
+
jQuery(this).menu({
|
|
9
|
+
content: jQuery(this).next().html(), // grab content from this page
|
|
10
|
+
showSpeed: 200
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -31,6 +31,8 @@ ul.admin-list li a{font-size:1.2em;}
|
|
|
31
31
|
#admin-messages{display:none;}
|
|
32
32
|
/* ui elements */
|
|
33
33
|
#ui-datepicker-div{z-index:2005;}
|
|
34
|
+
/* jquery-ui theme overrides */
|
|
35
|
+
.ui-widget {font-size:.8em;}
|
|
34
36
|
/* tables */
|
|
35
37
|
.adminTable{margin:5px 0 0 0;padding:0 0 40px 0px;width:980px;}
|
|
36
38
|
.adminTable a{color:#000;text-decoration:none;font-weight:bold;}
|
|
@@ -38,3 +40,23 @@ ul.admin-list li a{font-size:1.2em;}
|
|
|
38
40
|
.adminTable tr{background-color:#fff;}
|
|
39
41
|
.adminTable table{border:2px solid #c4ad63;}
|
|
40
42
|
.adminTable tr td{font-size:1.1em;font-weight:bold;padding:5px;border-bottom:1px solid #eee;}
|
|
43
|
+
/* menu styles*/
|
|
44
|
+
.hidden { position:absolute; top:0; left:-9999px; width:1px; height:1px; overflow:hidden; }
|
|
45
|
+
.fg-button { font-size:11px; clear:left; padding: .4em 1em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
|
|
46
|
+
.fg-button .ui-icon { position: absolute; top: 50%; margin-top: -8px; left: 50%; margin-left: -8px; }
|
|
47
|
+
a.fg-button { float:left; }
|
|
48
|
+
button.fg-button { width:auto; overflow:visible; } /* removes extra button width in IE */
|
|
49
|
+
.fg-button-icon-left { padding-left: 2.1em; }
|
|
50
|
+
.fg-button-icon-right { padding-right: 2.1em; }
|
|
51
|
+
.fg-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; }
|
|
52
|
+
.fg-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; }
|
|
53
|
+
.fg-button-icon-solo { display:block; width:8px; text-indent: -9999px; } /* solo icon buttons must have block properties for the text-indent to work */
|
|
54
|
+
.fg-button.ui-state-loading .ui-icon { background: url(spinner_bar.gif) no-repeat 0 0;}
|
|
55
|
+
/*tabs*/
|
|
56
|
+
.tabs{font-size:1.2em;border-bottom:solid 2px #000;position:relative;}
|
|
57
|
+
.tabs ul{list-style-type:none;}
|
|
58
|
+
.tabs ul li{float:left;display:inline;margin-right:20px;}
|
|
59
|
+
.tabs ul li a{color:#000;text-decoration:none;}
|
|
60
|
+
.tabs ul li a:hover{color:#333;}
|
|
61
|
+
.tabs ul li a.active{background-position:0 bottom;color:#fff;}
|
|
62
|
+
.tabs ul li a.active span{background-position:right bottom;}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* Styles for jQuery menu widget
|
|
2
|
+
Author: Maggie Wachs, maggie@filamentgroup.com
|
|
3
|
+
Date: September 2008
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/* REQUIRED STYLES - the menus will only render correctly with these rules */
|
|
8
|
+
.fg-button:hover { color:#FFFFFF; }
|
|
9
|
+
.fg-menu-container { position: absolute; top:0; left:-999px; padding: .4em; overflow: hidden; }
|
|
10
|
+
.fg-menu-container.fg-menu-flyout { overflow: visible; }
|
|
11
|
+
|
|
12
|
+
.fg-menu, .fg-menu ul { list-style-type:none; padding: 0; margin:0; }
|
|
13
|
+
|
|
14
|
+
.fg-menu { position:relative; }
|
|
15
|
+
.fg-menu-flyout .fg-menu { position:static; }
|
|
16
|
+
|
|
17
|
+
.fg-menu ul { position:absolute; top:0; }
|
|
18
|
+
.fg-menu ul ul { top:-1px; }
|
|
19
|
+
|
|
20
|
+
.fg-menu-container.fg-menu-ipod .fg-menu-content,
|
|
21
|
+
.fg-menu-container.fg-menu-ipod .fg-menu-content ul { background: none !important; }
|
|
22
|
+
|
|
23
|
+
.fg-menu.fg-menu-scroll,
|
|
24
|
+
.fg-menu ul.fg-menu-scroll { overflow: scroll; overflow-x: hidden; }
|
|
25
|
+
|
|
26
|
+
.fg-menu li { clear:both; float:left; width:100%; margin: 0; padding:0; border: 0; }
|
|
27
|
+
.fg-menu li li { font-size:1em; } /* inner li font size must be reset so that they don't blow up */
|
|
28
|
+
|
|
29
|
+
.fg-menu-flyout ul ul { padding: .4em; }
|
|
30
|
+
.fg-menu-flyout li { position:relative; }
|
|
31
|
+
|
|
32
|
+
.fg-menu-scroll { overflow: scroll; overflow-x: hidden; }
|
|
33
|
+
|
|
34
|
+
.fg-menu-breadcrumb { margin: 0; padding: 0; }
|
|
35
|
+
|
|
36
|
+
.fg-menu-footer { margin-top: .4em; padding: .4em; }
|
|
37
|
+
.fg-menu-header { margin-bottom: .4em; padding: .4em; }
|
|
38
|
+
|
|
39
|
+
.fg-menu-breadcrumb li { float: left; list-style: none; margin: 0; padding: 0 .2em; font-size: .9em; opacity: .7; }
|
|
40
|
+
.fg-menu-breadcrumb li.fg-menu-prev-list,
|
|
41
|
+
.fg-menu-breadcrumb li.fg-menu-current-crumb { clear: left; float: none; opacity: 1; }
|
|
42
|
+
.fg-menu-breadcrumb li.fg-menu-current-crumb { padding-top: .2em; }
|
|
43
|
+
|
|
44
|
+
.fg-menu-breadcrumb a,
|
|
45
|
+
.fg-menu-breadcrumb span { float: left; }
|
|
46
|
+
|
|
47
|
+
.fg-menu-footer a:link,
|
|
48
|
+
.fg-menu-footer a:visited { float:left; width:100%; text-decoration: none; }
|
|
49
|
+
.fg-menu-footer a:hover,
|
|
50
|
+
.fg-menu-footer a:active { }
|
|
51
|
+
|
|
52
|
+
.fg-menu-footer a span { float:left; cursor: pointer; }
|
|
53
|
+
|
|
54
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a:link,
|
|
55
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a:visited,
|
|
56
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a:hover,
|
|
57
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a:active { background-image: none; text-decoration:none; }
|
|
58
|
+
|
|
59
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a { float: left; padding-right: .4em; }
|
|
60
|
+
.fg-menu-breadcrumb .fg-menu-prev-list a .ui-icon { float: left; }
|
|
61
|
+
|
|
62
|
+
.fg-menu-breadcrumb .fg-menu-current-crumb a:link,
|
|
63
|
+
.fg-menu-breadcrumb .fg-menu-current-crumb a:visited,
|
|
64
|
+
.fg-menu-breadcrumb .fg-menu-current-crumb a:hover,
|
|
65
|
+
.fg-menu-breadcrumb .fg-menu-current-crumb a:active { display:block; background-image:none; font-size:1.3em; text-decoration:none; }
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
/* REQUIRED LINK STYLES: links are "display:block" by default; if the menu options are split into
|
|
70
|
+
selectable node links and 'next' links, the script floats the node links left and floats the 'next' links to the right */
|
|
71
|
+
|
|
72
|
+
.fg-menu a:link,
|
|
73
|
+
.fg-menu a:visited,
|
|
74
|
+
.fg-menu a:hover,
|
|
75
|
+
.fg-menu a:active { float:left; width:92%; padding:.3em 3%; text-decoration:none; outline: 0 !important; }
|
|
76
|
+
|
|
77
|
+
.fg-menu a { border: 1px dashed transparent; }
|
|
78
|
+
|
|
79
|
+
.fg-menu a.ui-state-default:link,
|
|
80
|
+
.fg-menu a.ui-state-default:visited,
|
|
81
|
+
.fg-menu a.ui-state-default:hover,
|
|
82
|
+
.fg-menu a.ui-state-default:active,
|
|
83
|
+
.fg-menu a.ui-state-hover:link,
|
|
84
|
+
.fg-menu a.ui-state-hover:visited,
|
|
85
|
+
.fg-menu a.ui-state-hover:hover,
|
|
86
|
+
.fg-menu a.ui-state-hover:active,
|
|
87
|
+
.fg-menu a.ui-state-active:link,
|
|
88
|
+
.fg-menu a.ui-state-active:visited,
|
|
89
|
+
.fg-menu a.ui-state-active:hover,
|
|
90
|
+
.fg-menu a.ui-state-active:active { border-style: solid; font-weight: normal; }
|
|
91
|
+
|
|
92
|
+
.fg-menu a span { display:block; cursor:pointer; }
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
/* SUGGESTED STYLES - for use with jQuery UI Themeroller CSS */
|
|
96
|
+
|
|
97
|
+
.fg-menu-indicator span { float:left; }
|
|
98
|
+
.fg-menu-indicator span.ui-icon { float:right; }
|
|
99
|
+
|
|
100
|
+
.fg-menu-content.ui-widget-content,
|
|
101
|
+
.fg-menu-content ul.ui-widget-content { border:0; }
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
/* ICONS AND DIVIDERS */
|
|
105
|
+
|
|
106
|
+
.fg-menu.fg-menu-has-icons a:link,
|
|
107
|
+
.fg-menu.fg-menu-has-icons a:visited,
|
|
108
|
+
.fg-menu.fg-menu-has-icons a:hover,
|
|
109
|
+
.fg-menu.fg-menu-has-icons a:active { padding-left:20px; }
|
|
110
|
+
|
|
111
|
+
.fg-menu .horizontal-divider hr, .fg-menu .horizontal-divider span { padding:0; margin:5px .6em; }
|
|
112
|
+
.fg-menu .horizontal-divider hr { border:0; height:1px; }
|
|
113
|
+
.fg-menu .horizontal-divider span { font-size:.9em; text-transform: uppercase; padding-left:.2em; }
|
|
114
|
+
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/test/rails_root/public/stylesheets/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|