goldencobra 1.4.0 → 1.4.27
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/README.markdown +3 -2
- data/app/assets/images/goldencobra/Jcrop.gif +0 -0
- data/app/assets/javascripts/goldencobra/active_admin.js +145 -84
- data/app/assets/javascripts/goldencobra/jquery.Jcrop.min.js +22 -0
- data/app/assets/javascripts/goldencobra/jquery.color.js +661 -0
- data/app/assets/stylesheets/goldencobra/active_admin.css.scss +375 -252
- data/app/assets/stylesheets/goldencobra/{application.css → application.css.scss} +0 -0
- data/app/assets/stylesheets/goldencobra/ikusei_active_admin.scss +35 -26
- data/app/assets/stylesheets/goldencobra/jquery.Jcrop.min.css +29 -0
- data/app/controllers/goldencobra/api/v2/articles_controller.rb +221 -0
- data/app/controllers/goldencobra/api/v2/locales_controller.rb +31 -0
- data/app/controllers/goldencobra/api/v2/settings_controller.rb +31 -0
- data/app/controllers/goldencobra/articles_controller.rb +42 -16
- data/app/controllers/goldencobra/sessions_controller.rb +8 -1
- data/app/helpers/goldencobra/application_helper.rb +3 -1
- data/app/helpers/goldencobra/articles_helper.rb +14 -8
- data/app/middleware/goldencobra/handle_invalid_percent_encoding.rb +40 -0
- data/app/models/ability.rb +43 -48
- data/app/models/goldencobra/article.rb +292 -218
- data/app/models/goldencobra/article_author.rb +19 -0
- data/app/models/goldencobra/article_image.rb +2 -0
- data/app/models/goldencobra/articletype.rb +30 -28
- data/app/models/goldencobra/author.rb +5 -3
- data/app/models/goldencobra/domain.rb +2 -0
- data/app/models/goldencobra/import.rb +2 -2
- data/app/models/goldencobra/link_checker.rb +64 -0
- data/app/models/goldencobra/menue.rb +4 -2
- data/app/models/goldencobra/permission.rb +3 -1
- data/app/models/goldencobra/redirector.rb +131 -0
- data/app/models/goldencobra/setting.rb +29 -3
- data/app/models/goldencobra/upload.rb +60 -1
- data/app/models/goldencobra/url_builder.rb +58 -0
- data/app/models/goldencobra/vita.rb +4 -0
- data/app/models/goldencobra/widget.rb +10 -0
- data/app/models/user.rb +1 -1
- data/app/views/goldencobra/admin/articles/_article_type.html.erb +1 -1
- data/app/views/goldencobra/admin/articles/_articles_index.html.erb +3 -3
- data/app/views/goldencobra/admin/articles/_image_module_sidebar.html.erb +19 -7
- data/app/views/goldencobra/admin/articles/_layout_sidebar.html.erb +2 -2
- data/app/views/goldencobra/admin/articles/_link_checker.html.erb +4 -4
- data/app/views/goldencobra/admin/articles/_link_checker_index.html.erb +1 -1
- data/app/views/goldencobra/admin/articles/_select_article_type.html.erb +8 -8
- data/app/views/goldencobra/admin/articles/_sort_articles_index.html.erb +1 -1
- data/app/views/goldencobra/admin/articles/_widgets_sidebar.html.erb +2 -2
- data/app/views/goldencobra/admin/articles/toggle_expert_mode.js.erb +2 -2
- data/app/views/goldencobra/admin/settings/_index.html.erb +14 -0
- data/app/views/goldencobra/admin/settings/_key_value.html.erb +12 -0
- data/app/views/goldencobra/admin/settings/_settings_group.html.erb +14 -0
- data/app/views/goldencobra/admin/shared/_help.html.erb +12 -10
- data/app/views/goldencobra/admin/shared/_item.html.erb +4 -4
- data/app/views/goldencobra/admin/shared/_overview.html.erb +14 -4
- data/app/views/goldencobra/admin/shared/load_overviewtree.js.erb +6 -0
- data/app/views/goldencobra/admin/uploads/_jcrop.html.erb +23 -0
- data/app/views/goldencobra/articles/_edit_article_link.html.erb +1 -1
- data/app/views/goldencobra/articles/show.rss.builder +5 -0
- data/app/views/goldencobra/articles/sitemap.xml.builder +15 -1
- data/app/views/goldencobra/manage/_admin_article_management.html.erb +1 -1
- data/app/views/goldencobra/manage/_admin_article_management_content.html.erb +4 -4
- data/app/views/goldencobra/manage/render_admin_menue.html.erb +1 -0
- data/app/views/goldencobra/manage/render_admin_menue.js.erb +0 -1
- data/app/views/goldencobra/sessions/_login.html.erb +4 -4
- data/app/views/goldencobra/sessions/_register.html.erb +6 -6
- data/app/views/layouts/goldencobra/active_admin_resque.html.erb +1 -1
- data/app/worker/articles_cache_worker.rb +1 -1
- data/config/initializers/check_for_missing_articletypes.rb +40 -37
- data/config/initializers/devise.rb +3 -1
- data/config/initializers/http_validator.rb +9 -2
- data/config/initializers/liquid_tags.rb +2 -2
- data/config/locales/active_admin.de.yml +509 -3
- data/config/locales/active_admin.en.yml +580 -64
- data/config/locales/de.yml +478 -4
- data/config/locales/en.yml +406 -10
- data/config/pre-commit.rb +3 -0
- data/config/routes.rb +12 -1
- data/config/settings.yml +51 -50
- data/db/migrate/20130114154115_add_sorter_to_goldencobra_permissions.rb +4 -1
- data/db/migrate/20140204221345_add_operator_to_goldencobra_permissions.rb +5 -0
- data/db/migrate/20140411152728_add_creator_id_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20140505144517_add_taggingcounter.rb +15 -0
- data/db/migrate/20140603084537_add_domain_to_goldencobra_permissions.rb +7 -0
- data/db/migrate/20140615200342_resize_link_checkfield.rb +13 -0
- data/db/migrate/20140626135753_add_externalreferee_to_goldencobra_articles.rb +6 -0
- data/db/migrate/20140702103024_add_externaldate_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20140702105550_add_remoteurl_to_goldencobra_uploads.rb +5 -0
- data/db/migrate/20140702142818_add_image_gallery_type_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20140819101033_add_urlpath_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20141009104216_set_db_and_tables_to_utf8.rb +20 -0
- data/db/migrate/20141104115144_create_goldencobra_redirectors.rb +15 -0
- data/db/migrate/20141112124531_add_globalsorting_to_goldencobra_articles.rb +7 -0
- data/db/migrate/20141124170930_add_indiex_to_gc.rb +26 -0
- data/db/migrate/20150115111024_create_goldencobra_article_authors.rb +28 -0
- data/db/migrate/20150115134707_add_remove_author_stuff.rb +11 -0
- data/db/migrate/20150417153454_add_status_to_goldencobra_vita_steps.rb +5 -0
- data/db/seeds.rb +4 -153
- data/lib/generators/goldencobra/articletype/templates/edit_index.html.erb +1 -1
- data/lib/generators/goldencobra/articletype/templates/initializer.rb +4 -2
- data/lib/generators/goldencobra/install_generator.rb +3 -0
- data/lib/generators/goldencobra/server_generator.rb +67 -0
- data/lib/generators/goldencobra/templates/active_admin.rb.erb +3 -0
- data/lib/generators/goldencobra/templates/robots.txt +5 -0
- data/lib/generators/goldencobra/templates/views/articletypes/default/_edit_index.html.erb +9 -0
- data/lib/generators/goldencobra/templates/views/articletypes/default/_edit_show.html.erb +0 -0
- data/lib/generators/goldencobra/templates/views/articletypes/default/_index.html.erb +31 -18
- data/lib/generators/goldencobra/templates/views/articletypes/default/_show.html.erb +22 -15
- data/lib/goldencobra/engine.rb +19 -3
- data/lib/goldencobra/version.rb +1 -1
- data/lib/tasks/article_cache.rake +19 -0
- data/lib/tasks/i18n.rake +1 -1
- data/lib/tasks/import.rake +31 -3
- data/lib/tasks/link_checker.rake +4 -2
- metadata +217 -23
- data/config/locales/activerecord.de.yml +0 -227
- data/config/locales/activerecord.en.yml +0 -148
- data/config/locales/devise.de.yml +0 -54
- data/config/locales/devise.en.yml +0 -57
- data/config/locales/formtastic.de.yml +0 -10
- data/config/locales/formtastic.en.yml +0 -10
- data/config/locales/goldencobra.de.yml +0 -40
- data/config/locales/goldencobra.en.yml +0 -3
data/README.markdown
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
[](http://travis-ci.org/ikusei/Goldencobra)
|
4
4
|
|
5
|
-
This Project is still under development
|
5
|
+
This Project is still under development.
|
6
|
+
This repository is now in sync with http://git.ikusei.de/projects/GC/repos/basis-modul/browse and now always up to date!
|
6
7
|
|
7
8
|
#Powered by
|
8
9
|
- ActiveAdmin
|
@@ -11,7 +12,7 @@ Installation of Goldencobra into a fresh Ruby on Rails project:
|
|
11
12
|
|
12
13
|
#Requirements
|
13
14
|
* Ruby 1.9.2-p180+ (recommended 1.9.3-p286)
|
14
|
-
* Rails 3.2.
|
15
|
+
* Rails 3.2.16
|
15
16
|
* Mysql 5.5.x (tested with e.g. 5.5.19)
|
16
17
|
|
17
18
|
|
Binary file
|
@@ -3,6 +3,8 @@
|
|
3
3
|
//= require goldencobra/notifications
|
4
4
|
//= require goldencobra/countable
|
5
5
|
// require goldencobra/togetherjs besser in actve_admin_js über url einbinden
|
6
|
+
//= require goldencobra/jquery.color
|
7
|
+
//= require goldencobra/jquery.Jcrop.min
|
6
8
|
|
7
9
|
|
8
10
|
//Live Support Settings
|
@@ -19,10 +21,32 @@ var TogetherJSConfig_on = {
|
|
19
21
|
};
|
20
22
|
|
21
23
|
$(function() {
|
24
|
+
|
25
|
+
//Wenn es get_goldencobra_articles_per_remote im 'Artikel bearbeiten' gibt,
|
26
|
+
// hole alle Goldencobra:Article :id,:title, :ancestry
|
27
|
+
var $select_parent_articles = $(".get_goldencobra_articles_per_remote");
|
28
|
+
if ( $select_parent_articles.length ){
|
29
|
+
$.ajax({
|
30
|
+
url: "/api/v2/articles.json"
|
31
|
+
}).done(function(data){
|
32
|
+
var selected_parent_id = $select_parent_articles.find("option:selected").val();
|
33
|
+
$select_parent_articles.html("<option value=''></option>");
|
34
|
+
$.each( data, function(index,value){
|
35
|
+
var selected_option = "";
|
36
|
+
if (value.id == selected_parent_id){
|
37
|
+
selected_option = " selected='selected' ";
|
38
|
+
}
|
39
|
+
$select_parent_articles.append("<option value='" + value.id + "' " + selected_option + ">" + value.parent_path + "</option>") ;
|
40
|
+
});
|
41
|
+
$select_parent_articles.trigger("chosen:updated");
|
42
|
+
return false;
|
43
|
+
});
|
44
|
+
}
|
45
|
+
|
22
46
|
//Importer optionen Ein und Ausblendbar machen
|
23
|
-
$(
|
24
|
-
id_to_class = $(this).closest(".head").attr(
|
25
|
-
$(
|
47
|
+
$("table.importer_assoziations tr.head td.nested_model_header span.button").bind("click", function(){
|
48
|
+
var id_to_class = $(this).closest(".head").attr("id");
|
49
|
+
$("tr.model_group." + id_to_class).toggle();
|
26
50
|
if ($(this).html() == "Felder anzeigen"){
|
27
51
|
$(this).html("Felder ausblenden");
|
28
52
|
}else{
|
@@ -30,64 +54,64 @@ $(function() {
|
|
30
54
|
}
|
31
55
|
});
|
32
56
|
|
33
|
-
if (typeof tinyMCESetting_theme_advanced_blockformats ===
|
34
|
-
var tinyMCESetting_theme_advanced_blockformats = "p,h1,h2,h3,div"
|
57
|
+
if (typeof tinyMCESetting_theme_advanced_blockformats === "undefined") {
|
58
|
+
var tinyMCESetting_theme_advanced_blockformats = "p,h1,h2,h3,div";
|
35
59
|
}
|
36
60
|
|
37
|
-
$(
|
61
|
+
$("textarea.tinymce-no-buttons").tinymce({
|
38
62
|
script_url: "/assets/goldencobra/tiny_mce.js",
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
relative_urls
|
48
|
-
convert_urls
|
49
|
-
theme_advanced_blockformats
|
50
|
-
plugins
|
51
|
-
dialog_type
|
52
|
-
paste_auto_cleanup_on_paste
|
63
|
+
mode: "textareas",
|
64
|
+
theme: "advanced",
|
65
|
+
theme_advanced_buttons1: "",
|
66
|
+
theme_advanced_buttons2: "",
|
67
|
+
theme_advanced_buttons3: "",
|
68
|
+
theme_advanced_toolbar_location: "top",
|
69
|
+
theme_advanced_toolbar_align: "center",
|
70
|
+
theme_advanced_resizing: false,
|
71
|
+
relative_urls: true,
|
72
|
+
convert_urls: false,
|
73
|
+
theme_advanced_blockformats: tinyMCESetting_theme_advanced_blockformats,
|
74
|
+
plugins: "autolink,paste",
|
75
|
+
dialog_type: "modal",
|
76
|
+
paste_auto_cleanup_on_paste: true
|
53
77
|
});
|
54
78
|
|
55
79
|
|
56
80
|
$('textarea.tinymce').tinymce({
|
57
81
|
script_url: "/assets/goldencobra/tiny_mce.js",
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
relative_urls
|
67
|
-
convert_urls
|
68
|
-
|
69
|
-
plugins
|
70
|
-
dialog_type
|
71
|
-
paste_auto_cleanup_on_paste
|
82
|
+
mode: "textareas",
|
83
|
+
theme: "advanced",
|
84
|
+
theme_advanced_buttons1: "formatselect, bold, italic, underline, strikethrough,|, bullist, numlist, blockquote, |, pastetext,pasteword, |, undo, redo, |, link, unlink, code, fullscreen",
|
85
|
+
theme_advanced_buttons2: "",
|
86
|
+
theme_advanced_buttons3: "",
|
87
|
+
theme_advanced_toolbar_location: "top",
|
88
|
+
theme_advanced_toolbar_align: "center",
|
89
|
+
theme_advanced_resizing: false,
|
90
|
+
relative_urls: true,
|
91
|
+
convert_urls: false,
|
92
|
+
theme_advanced_blockformats: tinyMCESetting_theme_advanced_blockformats,
|
93
|
+
plugins: "fullscreen,autolink,paste",
|
94
|
+
dialog_type: "modal",
|
95
|
+
paste_auto_cleanup_on_paste: true
|
72
96
|
});
|
73
97
|
|
74
98
|
$('textarea.tinymce_extended').tinymce({
|
75
99
|
script_url: "/assets/goldencobra/tiny_mce.js",
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
relative_urls
|
85
|
-
|
86
|
-
|
87
|
-
plugins
|
88
|
-
dialog_type
|
89
|
-
paste_auto_cleanup_on_paste
|
90
|
-
verify_html
|
100
|
+
mode: "textareas",
|
101
|
+
theme: "advanced",
|
102
|
+
theme_advanced_buttons1: "formatselect, bold, italic, underline, strikethrough,|, bullist, numlist, blockquote, |, pastetext,pasteword, |, undo, redo, |, link, unlink, code, fullscreen",
|
103
|
+
theme_advanced_buttons2: "removeformat, fontsizeselect, forecolor, backcolor, forecolorpicker, backcolorpicker",
|
104
|
+
theme_advanced_buttons3: "tablecontrols",
|
105
|
+
theme_advanced_toolbar_location: "top",
|
106
|
+
theme_advanced_toolbar_align: "left",
|
107
|
+
theme_advanced_resizing: false,
|
108
|
+
relative_urls: true,
|
109
|
+
convert_urls: false,
|
110
|
+
theme_advanced_blockformats: tinyMCESetting_theme_advanced_blockformats,
|
111
|
+
plugins: "fullscreen,autolink,paste,table",
|
112
|
+
dialog_type: "modal",
|
113
|
+
paste_auto_cleanup_on_paste: true,
|
114
|
+
verify_html: false
|
91
115
|
});
|
92
116
|
|
93
117
|
//TextCounter auf title, subtitle, Teaser, Summary, Breadcrumb, url_name
|
@@ -103,28 +127,28 @@ $(function() {
|
|
103
127
|
});
|
104
128
|
|
105
129
|
//Foldable overview in sidebar
|
106
|
-
$("div.overview-sidebar div.folder").
|
130
|
+
$("div.overview-sidebar div.folder").live("click", function(){
|
107
131
|
$(this).closest('li').find("ul:first").slideToggle();
|
108
132
|
});
|
109
133
|
$("div.overview-sidebar div.folder").trigger("click");
|
110
134
|
|
111
135
|
//Add Button Background Jobs zu Settings
|
112
|
-
|
136
|
+
//$('#einstellungen ul').append("<li><a href='/admin/background'>Background Jobs</a></li>")
|
113
137
|
|
114
138
|
$('.metadescription_hint').tinymce({
|
115
139
|
script_url: "/assets/goldencobra/tiny_mce.js",
|
116
|
-
|
117
|
-
|
140
|
+
mode: "textareas",
|
141
|
+
theme: "advanced",
|
118
142
|
readonly: 1,
|
119
|
-
theme_advanced_default_background_color
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
body_id
|
127
|
-
content_css
|
143
|
+
theme_advanced_default_background_color: "#f4f4f4",
|
144
|
+
theme_advanced_buttons1: "",
|
145
|
+
theme_advanced_buttons2: "",
|
146
|
+
theme_advanced_buttons3: "",
|
147
|
+
theme_advanced_toolbar_location: "bottom",
|
148
|
+
theme_advanced_toolbar_align: "center",
|
149
|
+
theme_advanced_resizing: false,
|
150
|
+
body_id: "metadescription-tinymce-body",
|
151
|
+
content_css: "/assets/goldencobra/active_admin.css"
|
128
152
|
});
|
129
153
|
|
130
154
|
function postInitWork() {
|
@@ -146,10 +170,10 @@ $(function() {
|
|
146
170
|
$("#goldencobra_image_maganger").fadeOut();
|
147
171
|
});
|
148
172
|
|
149
|
-
$('#footer').html("<p>Goldencobra</p>")
|
173
|
+
$('#footer').html("<p>Goldencobra</p>");
|
150
174
|
|
151
175
|
//die fieldsets bekommen einen button zum auf und zu klappen
|
152
|
-
$('div#main_content > form > fieldset.foldable > legend').prepend("<div class='foldable_icon_wrapper'><div class='foldable_icon'></div></div>")
|
176
|
+
$('div#main_content > form > fieldset.foldable > legend').prepend("<div class='foldable_icon_wrapper'><div class='foldable_icon'></div></div>");
|
153
177
|
$('div#main_content > form > fieldset.foldable > legend').bind("click", function(){
|
154
178
|
$(this).closest("fieldset").find(".foldable_icon").toggleClass("open");
|
155
179
|
$(this).closest("fieldset").find('ol').slideToggle();
|
@@ -157,14 +181,23 @@ $(function() {
|
|
157
181
|
$('div#main_content > form > fieldset.foldable.closed legend').trigger("click");
|
158
182
|
|
159
183
|
//die sidebar_section bekommen einen button zum auf und zu klappen
|
160
|
-
$('div#sidebar div.sidebar_section h3').prepend("<div class='foldable_icon_wrapper'><div class='foldable_icon'></div></div>")
|
184
|
+
$('div#sidebar div.sidebar_section h3').prepend("<div class='foldable_icon_wrapper'><div class='foldable_icon'></div></div>");
|
161
185
|
$('div#sidebar div.sidebar_section h3').bind("click", function(){
|
162
186
|
$(this).closest(".sidebar_section").find(".foldable_icon").toggleClass("open");
|
163
187
|
$(this).closest(".sidebar_section").find('.panel_contents').slideToggle();
|
164
188
|
});
|
165
|
-
$('div#sidebar div.sidebar_section:not(#
|
189
|
+
$('div#sidebar div.sidebar_section:not(#layout_positions_sidebar_section) h3').trigger("click");
|
166
190
|
$('div#sidebar div.sidebar_section .warning').closest("div.sidebar_section").addClass("warning").find("h3").trigger("click");
|
167
191
|
|
192
|
+
|
193
|
+
//die Settings sub groups bekommen ein button zum aufklappen
|
194
|
+
$('div#goldencobra_settings_wrapper .foldable').prepend("<div class='foldable_icon_wrapper'><div class='foldable_icon'></div></div>");
|
195
|
+
$('div#goldencobra_settings_wrapper .foldable').bind("click", function(){
|
196
|
+
$(this).closest(".settings_group_title").find(".foldable_icon").toggleClass("open");
|
197
|
+
$(this).closest(".settings_level").children('.settings_sub_group').slideToggle();
|
198
|
+
});
|
199
|
+
|
200
|
+
|
168
201
|
$(".chzn-select").chosen();
|
169
202
|
$(".chzn-select-deselect").chosen({ allow_single_deselect: true });
|
170
203
|
$("a.button").live("click", function(){
|
@@ -174,28 +207,29 @@ $(function() {
|
|
174
207
|
|
175
208
|
//Menuepunkte bekommen eine funktion zum auf und zu klappen
|
176
209
|
$('div#overview_sidebar div.title a').bind("click", function(){
|
177
|
-
|
210
|
+
$(this).children("ul").hide();
|
178
211
|
});
|
179
212
|
|
180
213
|
$('div#overview_sidebar div.title a').trigger("click");
|
181
214
|
|
182
|
-
$("#main_content form input:submit").attr("value", $("#main_content form input:submit").attr("value") + " (⌘-S)");
|
215
|
+
$("#main_content form:not(.without_short_key) input:submit").attr("value", $("#main_content form input:submit").attr("value") + " (⌘-S)");
|
216
|
+
|
183
217
|
key('⌘+s, ctrl+s', function() {
|
184
|
-
|
185
|
-
|
218
|
+
$("#main_content form input:submit").trigger("click");
|
219
|
+
return false;
|
186
220
|
});
|
187
221
|
|
188
222
|
$("body.show #title_bar .action_items a[href$='edit']").append(" (⌘-E)");
|
189
223
|
key('⌘+e, ctrl+e', function(){
|
190
|
-
|
191
|
-
|
192
|
-
|
224
|
+
target = $("#title_bar .action_items a[href$='edit']").attr("href");
|
225
|
+
window.location = target;
|
226
|
+
return false;
|
193
227
|
});
|
194
228
|
|
195
229
|
//Short Key for Life support on every Page
|
196
|
-
|
197
|
-
|
198
|
-
|
230
|
+
key('⌘+k, ctrl+k', function(){
|
231
|
+
call_for_help();
|
232
|
+
});
|
199
233
|
|
200
234
|
// $("#title_bar .action_items a[href$='revert']").append(" (⌘-Z)");
|
201
235
|
// key('⌘+z, ctrl+z', function(){
|
@@ -217,13 +251,13 @@ $(function() {
|
|
217
251
|
// für jede checkbox die dazugehörigen input felder holen und anhängen
|
218
252
|
checkBoxesDays.each(function(i, el) {
|
219
253
|
// checkbox muss neue css styles erhalten
|
220
|
-
var addCssBox = {"float"
|
254
|
+
var addCssBox = {"float": "left", "width": "50px", "margin-top": "8px"};
|
221
255
|
$(el).height(50).find("label").css(addCssBox);
|
222
256
|
// selektoren für start und end inputs eines tages
|
223
257
|
var startInput = $("#widget_offline_time_start_" + engDaysShort[i] + "_input");
|
224
258
|
var endInput = $("#widget_offline_time_end_" + engDaysShort[i] + "_input");
|
225
259
|
// label der inputs entfernen und benötigten css style ergänzen
|
226
|
-
var addCssInput = {"float"
|
260
|
+
var addCssInput = {"float": "left", "width": "180px"};
|
227
261
|
$(startInput).css(addCssInput).find("label").remove();
|
228
262
|
$(endInput).css(addCssInput).find("label").remove();
|
229
263
|
// inputs zur checkbox gruppieren
|
@@ -231,16 +265,43 @@ $(function() {
|
|
231
265
|
$(endInput).appendTo(el);
|
232
266
|
});
|
233
267
|
/**** END DOM Manipulation *****/
|
268
|
+
|
269
|
+
$("ul.link_checker_ul div.link_checker_label").click(function(){
|
270
|
+
$(this).siblings(".link_checker_sources").toggle();
|
271
|
+
});
|
272
|
+
|
273
|
+
// optimize header menu bar
|
274
|
+
$('#utility_nav').after('<div style="clear: both;"></div>');
|
275
|
+
$('#wrapper > #header').css('height', 'auto').css('min-width', '890px').css('filter', 'none');
|
276
|
+
|
277
|
+
// own logo per app from settings url
|
278
|
+
changeLogoFromSetting();
|
234
279
|
});
|
235
280
|
|
236
|
-
function call_for_help
|
281
|
+
function call_for_help(argument) {
|
237
282
|
TogetherJS(this);
|
238
283
|
return false;
|
239
284
|
}
|
240
285
|
|
241
|
-
$(function() {
|
242
|
-
$("ul.link_checker_ul div.link_checker_label").click(function(){
|
243
|
-
$(this).siblings(".link_checker_sources").toggle();
|
244
|
-
});
|
245
|
-
});
|
246
286
|
|
287
|
+
/**
|
288
|
+
*
|
289
|
+
* get ajax logo url for chanigng admin backend logo picture
|
290
|
+
*
|
291
|
+
*/
|
292
|
+
function changeLogoFromSetting() {
|
293
|
+
$.ajax({
|
294
|
+
type : 'GET',
|
295
|
+
url : '/api/v2/setting_string',
|
296
|
+
data : { 'setting_key': 'goldencobra.random_logo_url' },
|
297
|
+
success: function (data) {
|
298
|
+
if (data && data.indexOf('translation missing') == -1) {
|
299
|
+
// change background image of header logo
|
300
|
+
$('#header h1').css('background', 'url("' + data + '") no-repeat scroll center top / 100px auto rgba(0, 0, 0, 0)');
|
301
|
+
} else {
|
302
|
+
// set standard url of header logo for fallback
|
303
|
+
$('#header h1').css('background', 'url("/assets/goldencobra/cobra.png") no-repeat scroll center top / auto auto rgba(0, 0, 0, 0)');
|
304
|
+
}
|
305
|
+
}
|
306
|
+
});
|
307
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* jquery.Jcrop.min.js v0.9.12 (build:20130202)
|
3
|
+
* jQuery Image Cropping Plugin - released under MIT License
|
4
|
+
* Copyright (c) 2008-2013 Tapmodo Interactive LLC
|
5
|
+
* https://github.com/tapmodo/Jcrop
|
6
|
+
*/
|
7
|
+
(function(a){a.Jcrop=function(b,c){function i(a){return Math.round(a)+"px"}function j(a){return d.baseClass+"-"+a}function k(){return a.fx.step.hasOwnProperty("backgroundColor")}function l(b){var c=a(b).offset();return[c.left,c.top]}function m(a){return[a.pageX-e[0],a.pageY-e[1]]}function n(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function o(a,b,c){e=l(D),bc.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bc.activateHandlers(q(b),v,c);var d=_.getFixed(),f=r(a),g=_.getCorner(r(f));_.setPressed(_.getCorner(f)),_.setCurrent(g),bc.activateHandlers(p(a,d),v,c)}function p(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}_.setCurrent(c),bb.update()}}function q(a){var b=a;return bd.watchKeys
|
8
|
+
(),function(a){_.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bb.update()}}function r(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function s(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(b)),b.stopPropagation(),b.preventDefault(),!1)}}function t(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),T=a.width()/d,U=a.height()/e,a.width(d).height(e)}function u(a){return{x:a.x*T,y:a.y*U,x2:a.x2*T,y2:a.y2*U,w:a.w*T,h:a.h*U}}function v(a){var b=_.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bb.enableHandles(),bb.done()):bb.release(),bc.setCursor(d.allowSelect?"crosshair":"default")}function w(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;W=!0,e=l(D),bb.disableHandles(),bc.setCursor("crosshair");var b=m(a);return _.setPressed(b),bb.update(),bc.activateHandlers(x,v,a.type.substring
|
9
|
+
(0,5)==="touch"),bd.watchKeys(),a.stopPropagation(),a.preventDefault(),!1}function x(a){_.setCurrent(a),bb.update()}function y(){var b=a("<div></div>").addClass(j("tracker"));return g&&b.css({opacity:0,backgroundColor:"white"}),b}function be(a){G.removeClass().addClass(j("holder")).addClass(a)}function bf(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/T,e=a[1]/U,f=a[2]/T,g=a[3]/U;if(X)return;var h=_.flipCoords(c,e,f,g),i=_.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;c=k[0],e=k[1],f=k[2],g=k[3],bb.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=Math.round(c+q/100*m),k[1]=Math.round(e+q/100*n),k[2]=Math.round(f+q/100*o),k[3]=Math.round(g+q/100*p),q>=99.8&&(q=100),q<100?(bh(k),t()):(bb.done(),bb.animMode(!1),typeof b=="function"&&b.call(bs))}}();t()}function bg(a){bh([a[0]/T,a[1]/U,a[2]/T,a[3]/U]),d.onSelect.call(bs,u(_.getFixed())),bb.enableHandles()}function bh(a){_.setPressed([a[0],a[1]]),_.setCurrent([a[2],
|
10
|
+
a[3]]),bb.update()}function bi(){return u(_.getFixed())}function bj(){return _.getFixed()}function bk(a){n(a),br()}function bl(){d.disabled=!0,bb.disableHandles(),bb.setCursor("default"),bc.setCursor("default")}function bm(){d.disabled=!1,br()}function bn(){bb.done(),bc.activateHandlers(null,null)}function bo(){G.remove(),A.show(),A.css("visibility","visible"),a(b).removeData("Jcrop")}function bp(a,b){bb.release(),bl();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;D.width(e).height(f),D.attr("src",a),H.attr("src",a),t(D,g,h),E=D.width(),F=D.height(),H.width(E).height(F),M.width(E+L*2).height(F+L*2),G.width(E).height(F),ba.resize(E,F),bm(),typeof b=="function"&&b.call(bs)},c.src=a}function bq(a,b,c){var e=b||d.bgColor;d.bgFade&&k()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function br(a){d.allowResize?a?bb.enableOnly():bb.enableHandles():bb.disableHandles(),bc.setCursor(d.allowSelect?"crosshair":"default"),bb
|
11
|
+
.setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(T=d.trueSize[0]/E,U=d.trueSize[1]/F),d.hasOwnProperty("setSelect")&&(bg(d.setSelect),bb.done(),delete d.setSelect),ba.refresh(),d.bgColor!=N&&(bq(d.shade?ba.getShades():G,d.shade?d.shadeColor||d.bgColor:d.bgColor),N=d.bgColor),O!=d.bgOpacity&&(O=d.bgOpacity,d.shade?ba.refresh():bb.setBgOpacity(O)),P=d.maxSize[0]||0,Q=d.maxSize[1]||0,R=d.minSize[0]||0,S=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(D.attr("src",d.outerImage),delete d.outerImage),bb.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f=navigator.userAgent.toLowerCase(),g=/msie/.test(f),h=/msie [1-6]\./.test(f);typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),n(c);var z={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},A=a(b),B=!0;if(b.tagName=="IMG"){if(A[0].width!=0&&A[0].height!=0)A.width(A[0].width),A.height(A[0].height);else{var C=new Image;C.src=A[0].src,A.width(C.width),A.height(C.height)}var D=A.clone().removeAttr("id").
|
12
|
+
css(z).show();D.width(A.width()),D.height(A.height()),A.after(D).hide()}else D=A.css(z).show(),B=!1,d.shade===null&&(d.shade=!0);t(D,d.boxWidth,d.boxHeight);var E=D.width(),F=D.height(),G=a("<div />").width(E).height(F).addClass(j("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(A).append(D);d.addClass&&G.addClass(d.addClass);var H=a("<div />"),I=a("<div />").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),J=a("<div />").width("100%").height("100%").css("zIndex",320),K=a("<div />").css({position:"absolute",zIndex:600}).dblclick(function(){var a=_.getFixed();d.onDblClick.call(bs,a)}).insertBefore(D).append(I,J);B&&(H=a("<img />").attr("src",D.attr("src")).css(z).width(E).height(F),I.append(H)),h&&K.css({overflowY:"hidden"});var L=d.boundary,M=y().width(E+L*2).height(F+L*2).css({position:"absolute",top:i(-L),left:i(-L),zIndex:290}).mousedown(w),N=d.bgColor,O=d.bgOpacity,P,Q,R,S,T,U,V=!0,W,X,Y;e=l(D);var Z=function(){function a(){var a={},b=["touchstart"
|
13
|
+
,"touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;d<b.length;d++){var e=b[d];e="on"+e;var f=e in c;f||(c.setAttribute(e,"return;"),f=typeof c[e]=="function"),a[b[d]]=f}return a.touchstart&&a.touchend&&a.touchmove}catch(g){return!1}}function b(){return d.touchSupport===!0||d.touchSupport===!1?d.touchSupport:a()}return{createDragger:function(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(Z.cfilter(b)),!0),b.stopPropagation(),b.preventDefault(),!1)}},newSelection:function(a){return w(Z.cfilter(a))},cfilter:function(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,a},isSupported:a,support:b()}}(),_=function(){function h(d){d=n(d),c=a=d[0],e=b=d[1]}function i(a){a=n(a),f=a[0]-c,g=a[1]-e,c=a[0],e=a[1]}function j(){return[f,g]}function k(d){var f=d[0],g=d[1];0>a+f&&(f-=f+a),0>b+g&&(g-=g+b),F<e+g&&(g+=F-(e+g)),E<c+f&&(f+=E-(c+f)),a+=f,c+=f,b+=g,e+=g}function l(a){var b=m();switch(a){case"ne":return[
|
14
|
+
b.x2,b.y];case"nw":return[b.x,b.y];case"se":return[b.x2,b.y2];case"sw":return[b.x,b.y2]}}function m(){if(!d.aspectRatio)return p();var f=d.aspectRatio,g=d.minSize[0]/T,h=d.maxSize[0]/T,i=d.maxSize[1]/U,j=c-a,k=e-b,l=Math.abs(j),m=Math.abs(k),n=l/m,r,s,t,u;return h===0&&(h=E*10),i===0&&(i=F*10),n<f?(s=e,t=m*f,r=j<0?a-t:t+a,r<0?(r=0,u=Math.abs((r-a)/f),s=k<0?b-u:u+b):r>E&&(r=E,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>F&&(s=F,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-a<g?r=a+g:r-a>h&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):r<a&&(a-r<g?r=a-g:a-r>h&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>E&&(a-=r-E,r=E),s<0?(b-=s,s=0):s>F&&(b-=s-F,s=F),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>E&&(a[0]=E),a[1]>F&&(a[1]=F),[Math.round(a[0]),Math.round(a[1])]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return c<a&&(e=c,f=a),d<b&&(g=d,h=b),[e,g,f,h]}function p(){var d=c-a,f=e-b,g;return P&&Math.abs(d)>P&&(c=d>0?a+P:a-P),Q&&Math.abs
|
15
|
+
(f)>Q&&(e=f>0?b+Q:b-Q),S/U&&Math.abs(f)<S/U&&(e=f>0?b+S/U:b-S/U),R/T&&Math.abs(d)<R/T&&(c=d>0?a+R/T:a-R/T),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&(a-=c,c-=c),e<0&&(b-=e,e-=e),c>E&&(g=c-E,a-=g,c-=g),e>F&&(g=e-F,b-=g,e-=g),a>E&&(g=a-F,e-=g,b-=g),b>F&&(g=b-F,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),ba=function(){function f(a,b){e.left.css({height:i(b)}),e.right.css({height:i(b)})}function g(){return h(_.getFixed())}function h(a){e.top.css({left:i(a.x),width:i(a.w),height:i(a.y)}),e.bottom.css({top:i(a.y2),left:i(a.x),width:i(a.w),height:i(F-a.y2)}),e.right.css({left:i(a.x2),width:i(E-a.x2)}),e.left.css({width:i(a.x)})}function j(){return a("<div />").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(D),g(),bb.setBgOpacity(1,0,1),H.hide(),l(d.shadeColor||d.bgColor,1),bb.
|
16
|
+
isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){bq(p(),a,b)}function m(){b&&(c.remove(),H.show(),b=!1,bb.isAwake()?bb.setBgOpacity(d.bgOpacity,1,1):(bb.setBgOpacity(1,1,1),bb.disableHandles()),bq(G,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bb.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("<div />").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(F),right:j().height(F),bottom:j()};return{update:g,updateRaw:h,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bb=function(){function k(b){var c=a("<div />").css({position:"absolute",opacity:d.borderOpacity}).addClass(j(b));return I.append(c),c}function l(b,c){var d=a("<div />").mousedown(s(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return Z.support&&d.bind("touchstart.jcrop",Z.createDragger(b)),J.append(d),d}function m(a){var b=d.handleSize,e=l(a,c++
|
17
|
+
).css({opacity:d.handleOpacity}).addClass(j("handle"));return b&&e.width(b).height(b),e}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o(a){var b;for(b=0;b<a.length;b++)g[a[b]]=n(a[b])}function p(a){var b,c;for(c=0;c<a.length;c++){switch(a[c]){case"n":b="hline";break;case"s":b="hline bottom";break;case"e":b="vline right";break;case"w":b="vline"}e[a[c]]=k(b)}}function q(a){var b;for(b=0;b<a.length;b++)f[a[b]]=m(a[b])}function r(a,b){d.shade||H.css({top:i(-b),left:i(-a)}),K.css({top:i(b),left:i(a)})}function t(a,b){K.width(Math.round(a)).height(Math.round(b))}function v(){var a=_.getFixed();_.setPressed([a.x,a.y]),_.setCurrent([a.x2,a.y2]),w()}function w(a){if(b)return x(a)}function x(a){var c=_.getFixed();t(c.w,c.h),r(c.x,c.y),d.shade&&ba.updateRaw(c),b||A(),a?d.onSelect.call(bs,u(c)):d.onChange.call(bs,u(c))}function z(a,c,e){if(!b&&!c)return;d.bgFade&&!e?D.animate({opacity:a},{queue:!1,duration:d.fadeTime}):D.css("opacity",a)}function A(){K.show(),d.shade?ba.opacity(O):z(O,!0),b=!0}function B
|
18
|
+
(){F(),K.hide(),d.shade?ba.opacity(1):z(1),b=!1,d.onRelease.call(bs)}function C(){h&&J.show()}function E(){h=!0;if(d.allowResize)return J.show(),!0}function F(){h=!1,J.hide()}function G(a){a?(X=!0,F()):(X=!1,E())}function L(){G(!1),v()}var b,c=370,e={},f={},g={},h=!1;d.dragEdges&&a.isArray(d.createDragbars)&&o(d.createDragbars),a.isArray(d.createHandles)&&q(d.createHandles),d.drawBorders&&a.isArray(d.createBorders)&&p(d.createBorders),a(document).bind("touchstart.jcrop-ios",function(b){a(b.currentTarget).hasClass("jcrop-tracker")&&b.stopPropagation()});var M=y().mousedown(s("move")).css({cursor:"move",position:"absolute",zIndex:360});return Z.support&&M.bind("touchstart.jcrop",Z.createDragger("move")),I.append(M),F(),{updateVisible:w,update:x,release:B,refresh:v,isAwake:function(){return b},setCursor:function(a){M.css("cursor",a)},enableHandles:E,enableOnly:function(){h=!0},showHandles:C,disableHandles:F,animMode:G,setBgOpacity:z,done:L}}(),bc=function(){function f(b){M.css({zIndex:450}),b?a(document).bind("touchmove.jcrop"
|
19
|
+
,k).bind("touchend.jcrop",l):e&&a(document).bind("mousemove.jcrop",h).bind("mouseup.jcrop",i)}function g(){M.css({zIndex:290}),a(document).unbind(".jcrop")}function h(a){return b(m(a)),!1}function i(a){return a.preventDefault(),a.stopPropagation(),W&&(W=!1,c(m(a)),bb.isAwake()&&d.onSelect.call(bs,u(_.getFixed())),g(),b=function(){},c=function(){}),!1}function j(a,d,e){return W=!0,b=a,c=d,f(e),!1}function k(a){return b(m(Z.cfilter(a))),!1}function l(a){return i(Z.cfilter(a))}function n(a){M.css("cursor",a)}var b=function(){},c=function(){},e=d.trackDocument;return e||M.mousemove(h).mouseup(i).mouseout(i),D.before(M),{activateHandlers:j,setCursor:n}}(),bd=function(){function e(){d.keySupport&&(b.show(),b.focus())}function f(a){b.hide()}function g(a,b,c){d.allowMove&&(_.moveOffset([b,c]),bb.updateVisible(!0)),a.preventDefault(),a.stopPropagation()}function i(a){if(a.ctrlKey||a.metaKey)return!0;Y=a.shiftKey?!0:!1;var b=Y?10:1;switch(a.keyCode){case 37:g(a,-b,0);break;case 39:g(a,b,0);break;case 38:g(a,0,-b);break;
|
20
|
+
case 40:g(a,0,b);break;case 27:d.allowSelect&&bb.release();break;case 9:return!0}return!1}var b=a('<input type="radio" />').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),c=a("<div />").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),h||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(D)):b.insertBefore(D)),{watchKeys:e}}();Z.support&&M.bind("touchstart.jcrop",Z.newSelection),J.hide(),br(!0);var bs={setImage:bp,animateTo:bf,setSelect:bg,setOptions:bk,tellSelect:bi,tellScaled:bj,setClass:be,disable:bl,enable:bm,cancel:bn,release:bb.release,destroy:bo,focus:bd.watchKeys,getBounds:function(){return[E*T,F*U]},getWidgetSize:function(){return[E,F]},getScaleFactor:function(){return[T,U]},getOptions:function(){return d},ui:{holder:G,selection:K}};return g&&G.bind("selectstart",function(){return!1}),A.data("Jcrop",bs),bs},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if(
|
21
|
+
b==="api")return a(this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges
|
22
|
+
:!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery);
|
@@ -0,0 +1,661 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery Color Animations v2.0pre
|
3
|
+
* http://jquery.org/
|
4
|
+
*
|
5
|
+
* Copyright 2011 John Resig
|
6
|
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
7
|
+
* http://jquery.org/license
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function( jQuery, undefined ){
|
11
|
+
var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color outlineColor".split(" "),
|
12
|
+
|
13
|
+
// plusequals test for += 100 -= 100
|
14
|
+
rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
|
15
|
+
// a set of RE's that can match strings and generate color tuples.
|
16
|
+
stringParsers = [{
|
17
|
+
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
|
18
|
+
parse: function( execResult ) {
|
19
|
+
return [
|
20
|
+
execResult[ 1 ],
|
21
|
+
execResult[ 2 ],
|
22
|
+
execResult[ 3 ],
|
23
|
+
execResult[ 4 ]
|
24
|
+
];
|
25
|
+
}
|
26
|
+
}, {
|
27
|
+
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
|
28
|
+
parse: function( execResult ) {
|
29
|
+
return [
|
30
|
+
2.55 * execResult[1],
|
31
|
+
2.55 * execResult[2],
|
32
|
+
2.55 * execResult[3],
|
33
|
+
execResult[ 4 ]
|
34
|
+
];
|
35
|
+
}
|
36
|
+
}, {
|
37
|
+
re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,
|
38
|
+
parse: function( execResult ) {
|
39
|
+
return [
|
40
|
+
parseInt( execResult[ 1 ], 16 ),
|
41
|
+
parseInt( execResult[ 2 ], 16 ),
|
42
|
+
parseInt( execResult[ 3 ], 16 )
|
43
|
+
];
|
44
|
+
}
|
45
|
+
}, {
|
46
|
+
re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,
|
47
|
+
parse: function( execResult ) {
|
48
|
+
return [
|
49
|
+
parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
|
50
|
+
parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
|
51
|
+
parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
|
52
|
+
];
|
53
|
+
}
|
54
|
+
}, {
|
55
|
+
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
|
56
|
+
space: "hsla",
|
57
|
+
parse: function( execResult ) {
|
58
|
+
return [
|
59
|
+
execResult[1],
|
60
|
+
execResult[2] / 100,
|
61
|
+
execResult[3] / 100,
|
62
|
+
execResult[4]
|
63
|
+
];
|
64
|
+
}
|
65
|
+
}],
|
66
|
+
|
67
|
+
// jQuery.Color( )
|
68
|
+
color = jQuery.Color = function( color, green, blue, alpha ) {
|
69
|
+
return new jQuery.Color.fn.parse( color, green, blue, alpha );
|
70
|
+
},
|
71
|
+
spaces = {
|
72
|
+
rgba: {
|
73
|
+
cache: "_rgba",
|
74
|
+
props: {
|
75
|
+
red: {
|
76
|
+
idx: 0,
|
77
|
+
type: "byte",
|
78
|
+
empty: true
|
79
|
+
},
|
80
|
+
green: {
|
81
|
+
idx: 1,
|
82
|
+
type: "byte",
|
83
|
+
empty: true
|
84
|
+
},
|
85
|
+
blue: {
|
86
|
+
idx: 2,
|
87
|
+
type: "byte",
|
88
|
+
empty: true
|
89
|
+
},
|
90
|
+
alpha: {
|
91
|
+
idx: 3,
|
92
|
+
type: "percent",
|
93
|
+
def: 1
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
hsla: {
|
98
|
+
cache: "_hsla",
|
99
|
+
props: {
|
100
|
+
hue: {
|
101
|
+
idx: 0,
|
102
|
+
type: "degrees",
|
103
|
+
empty: true
|
104
|
+
},
|
105
|
+
saturation: {
|
106
|
+
idx: 1,
|
107
|
+
type: "percent",
|
108
|
+
empty: true
|
109
|
+
},
|
110
|
+
lightness: {
|
111
|
+
idx: 2,
|
112
|
+
type: "percent",
|
113
|
+
empty: true
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
},
|
118
|
+
propTypes = {
|
119
|
+
"byte": {
|
120
|
+
floor: true,
|
121
|
+
min: 0,
|
122
|
+
max: 255
|
123
|
+
},
|
124
|
+
"percent": {
|
125
|
+
min: 0,
|
126
|
+
max: 1
|
127
|
+
},
|
128
|
+
"degrees": {
|
129
|
+
mod: 360,
|
130
|
+
floor: true
|
131
|
+
}
|
132
|
+
},
|
133
|
+
rgbaspace = spaces.rgba.props,
|
134
|
+
support = color.support = {},
|
135
|
+
|
136
|
+
// colors = jQuery.Color.names
|
137
|
+
colors,
|
138
|
+
|
139
|
+
// local aliases of functions called often
|
140
|
+
each = jQuery.each;
|
141
|
+
|
142
|
+
spaces.hsla.props.alpha = rgbaspace.alpha;
|
143
|
+
|
144
|
+
function clamp( value, prop, alwaysAllowEmpty ) {
|
145
|
+
var type = propTypes[ prop.type ] || {},
|
146
|
+
allowEmpty = prop.empty || alwaysAllowEmpty;
|
147
|
+
|
148
|
+
if ( allowEmpty && value == null ) {
|
149
|
+
return null;
|
150
|
+
}
|
151
|
+
if ( prop.def && value == null ) {
|
152
|
+
return prop.def;
|
153
|
+
}
|
154
|
+
if ( type.floor ) {
|
155
|
+
value = ~~value;
|
156
|
+
} else {
|
157
|
+
value = parseFloat( value );
|
158
|
+
}
|
159
|
+
if ( value == null || isNaN( value ) ) {
|
160
|
+
return prop.def;
|
161
|
+
}
|
162
|
+
if ( type.mod ) {
|
163
|
+
value = value % type.mod;
|
164
|
+
// -10 -> 350
|
165
|
+
return value < 0 ? type.mod + value : value;
|
166
|
+
}
|
167
|
+
|
168
|
+
// for now all property types without mod have min and max
|
169
|
+
return type.min > value ? type.min : type.max < value ? type.max : value;
|
170
|
+
}
|
171
|
+
|
172
|
+
function stringParse( string ) {
|
173
|
+
var inst = color(),
|
174
|
+
rgba = inst._rgba = [];
|
175
|
+
|
176
|
+
string = string.toLowerCase();
|
177
|
+
|
178
|
+
each( stringParsers, function( i, parser ) {
|
179
|
+
var match = parser.re.exec( string ),
|
180
|
+
values = match && parser.parse( match ),
|
181
|
+
parsed,
|
182
|
+
spaceName = parser.space || "rgba",
|
183
|
+
cache = spaces[ spaceName ].cache;
|
184
|
+
|
185
|
+
|
186
|
+
if ( values ) {
|
187
|
+
parsed = inst[ spaceName ]( values );
|
188
|
+
|
189
|
+
// if this was an rgba parse the assignment might happen twice
|
190
|
+
// oh well....
|
191
|
+
inst[ cache ] = parsed[ cache ];
|
192
|
+
rgba = inst._rgba = parsed._rgba;
|
193
|
+
|
194
|
+
// exit each( stringParsers ) here because we matched
|
195
|
+
return false;
|
196
|
+
}
|
197
|
+
});
|
198
|
+
|
199
|
+
// Found a stringParser that handled it
|
200
|
+
if ( rgba.length !== 0 ) {
|
201
|
+
|
202
|
+
// if this came from a parsed string, force "transparent" when alpha is 0
|
203
|
+
// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
|
204
|
+
if ( Math.max.apply( Math, rgba ) === 0 ) {
|
205
|
+
jQuery.extend( rgba, colors.transparent );
|
206
|
+
}
|
207
|
+
return inst;
|
208
|
+
}
|
209
|
+
|
210
|
+
// named colors / default - filter back through parse function
|
211
|
+
if ( string = colors[ string ] ) {
|
212
|
+
return string;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
color.fn = color.prototype = {
|
217
|
+
constructor: color,
|
218
|
+
parse: function( red, green, blue, alpha ) {
|
219
|
+
if ( red === undefined ) {
|
220
|
+
this._rgba = [ null, null, null, null ];
|
221
|
+
return this;
|
222
|
+
}
|
223
|
+
if ( red instanceof jQuery || red.nodeType ) {
|
224
|
+
red = red instanceof jQuery ? red.css( green ) : jQuery( red ).css( green );
|
225
|
+
green = undefined;
|
226
|
+
}
|
227
|
+
|
228
|
+
var inst = this,
|
229
|
+
type = jQuery.type( red ),
|
230
|
+
rgba = this._rgba = [],
|
231
|
+
source;
|
232
|
+
|
233
|
+
// more than 1 argument specified - assume ( red, green, blue, alpha )
|
234
|
+
if ( green !== undefined ) {
|
235
|
+
red = [ red, green, blue, alpha ];
|
236
|
+
type = "array";
|
237
|
+
}
|
238
|
+
|
239
|
+
if ( type === "string" ) {
|
240
|
+
return this.parse( stringParse( red ) || colors._default );
|
241
|
+
}
|
242
|
+
|
243
|
+
if ( type === "array" ) {
|
244
|
+
each( rgbaspace, function( key, prop ) {
|
245
|
+
rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
|
246
|
+
});
|
247
|
+
return this;
|
248
|
+
}
|
249
|
+
|
250
|
+
if ( type === "object" ) {
|
251
|
+
if ( red instanceof color ) {
|
252
|
+
each( spaces, function( spaceName, space ) {
|
253
|
+
if ( red[ space.cache ] ) {
|
254
|
+
inst[ space.cache ] = red[ space.cache ].slice();
|
255
|
+
}
|
256
|
+
});
|
257
|
+
} else {
|
258
|
+
each( spaces, function( spaceName, space ) {
|
259
|
+
each( space.props, function( key, prop ) {
|
260
|
+
var cache = space.cache;
|
261
|
+
|
262
|
+
// if the cache doesn't exist, and we know how to convert
|
263
|
+
if ( !inst[ cache ] && space.to ) {
|
264
|
+
|
265
|
+
// if the value was null, we don't need to copy it
|
266
|
+
// if the key was alpha, we don't need to copy it either
|
267
|
+
if ( red[ key ] == null || key === "alpha") {
|
268
|
+
return;
|
269
|
+
}
|
270
|
+
inst[ cache ] = space.to( inst._rgba );
|
271
|
+
}
|
272
|
+
|
273
|
+
// this is the only case where we allow nulls for ALL properties.
|
274
|
+
// call clamp with alwaysAllowEmpty
|
275
|
+
inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
|
276
|
+
});
|
277
|
+
});
|
278
|
+
}
|
279
|
+
return this;
|
280
|
+
}
|
281
|
+
},
|
282
|
+
is: function( compare ) {
|
283
|
+
var is = color( compare ),
|
284
|
+
same = true,
|
285
|
+
myself = this;
|
286
|
+
|
287
|
+
each( spaces, function( _, space ) {
|
288
|
+
var isCache = is[ space.cache ],
|
289
|
+
localCache;
|
290
|
+
if (isCache) {
|
291
|
+
localCache = myself[ space.cache ] || space.to && space.to( myself._rgba ) || [];
|
292
|
+
each( space.props, function( _, prop ) {
|
293
|
+
if ( isCache[ prop.idx ] != null ) {
|
294
|
+
same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
|
295
|
+
return same;
|
296
|
+
}
|
297
|
+
});
|
298
|
+
}
|
299
|
+
return same;
|
300
|
+
});
|
301
|
+
return same;
|
302
|
+
},
|
303
|
+
_space: function() {
|
304
|
+
var used = [],
|
305
|
+
inst = this;
|
306
|
+
each( spaces, function( spaceName, space ) {
|
307
|
+
if ( inst[ space.cache ] ) {
|
308
|
+
used.push( spaceName );
|
309
|
+
}
|
310
|
+
});
|
311
|
+
return used.pop();
|
312
|
+
},
|
313
|
+
transition: function( other, distance ) {
|
314
|
+
var end = color( other ),
|
315
|
+
spaceName = end._space(),
|
316
|
+
space = spaces[ spaceName ],
|
317
|
+
start = this[ space.cache ] || space.to( this._rgba ),
|
318
|
+
result = start.slice();
|
319
|
+
|
320
|
+
end = end[ space.cache ];
|
321
|
+
each( space.props, function( key, prop ) {
|
322
|
+
var index = prop.idx,
|
323
|
+
startValue = start[ index ],
|
324
|
+
endValue = end[ index ],
|
325
|
+
type = propTypes[ prop.type ] || {};
|
326
|
+
|
327
|
+
// if null, don't override start value
|
328
|
+
if ( endValue === null ) {
|
329
|
+
return;
|
330
|
+
}
|
331
|
+
// if null - use end
|
332
|
+
if ( startValue === null ) {
|
333
|
+
result[ index ] = endValue;
|
334
|
+
} else {
|
335
|
+
if ( type.mod ) {
|
336
|
+
if ( endValue - startValue > type.mod / 2 ) {
|
337
|
+
startValue += type.mod;
|
338
|
+
} else if ( startValue - endValue > type.mod / 2 ) {
|
339
|
+
startValue -= type.mod;
|
340
|
+
}
|
341
|
+
}
|
342
|
+
result[ prop.idx ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
|
343
|
+
}
|
344
|
+
});
|
345
|
+
return this[ spaceName ]( result );
|
346
|
+
},
|
347
|
+
blend: function( opaque ) {
|
348
|
+
// if we are already opaque - return ourself
|
349
|
+
if ( this._rgba[ 3 ] === 1 ) {
|
350
|
+
return this;
|
351
|
+
}
|
352
|
+
|
353
|
+
var rgb = this._rgba.slice(),
|
354
|
+
a = rgb.pop(),
|
355
|
+
blend = color( opaque )._rgba;
|
356
|
+
|
357
|
+
return color( jQuery.map( rgb, function( v, i ) {
|
358
|
+
return ( 1 - a ) * blend[ i ] + a * v;
|
359
|
+
}));
|
360
|
+
},
|
361
|
+
toRgbaString: function() {
|
362
|
+
var prefix = "rgba(",
|
363
|
+
rgba = jQuery.map( this._rgba, function( v, i ) {
|
364
|
+
return v == null ? ( i > 2 ? 1 : 0 ) : v;
|
365
|
+
});
|
366
|
+
|
367
|
+
if ( rgba[ 3 ] === 1 ) {
|
368
|
+
rgba.pop();
|
369
|
+
prefix = "rgb(";
|
370
|
+
}
|
371
|
+
|
372
|
+
return prefix + rgba.join(",") + ")";
|
373
|
+
},
|
374
|
+
toHslaString: function() {
|
375
|
+
var prefix = "hsla(",
|
376
|
+
hsla = jQuery.map( this.hsla(), function( v, i ) {
|
377
|
+
if ( v == null ) {
|
378
|
+
v = i > 2 ? 1 : 0;
|
379
|
+
}
|
380
|
+
|
381
|
+
// catch 1 and 2
|
382
|
+
if ( i && i < 3 ) {
|
383
|
+
v = Math.round( v * 100 ) + "%";
|
384
|
+
}
|
385
|
+
return v;
|
386
|
+
});
|
387
|
+
|
388
|
+
if ( hsla[ 3 ] === 1 ) {
|
389
|
+
hsla.pop();
|
390
|
+
prefix = "hsl(";
|
391
|
+
}
|
392
|
+
return prefix + hsla.join(",") + ")";
|
393
|
+
},
|
394
|
+
toHexString: function( includeAlpha ) {
|
395
|
+
var rgba = this._rgba.slice(),
|
396
|
+
alpha = rgba.pop();
|
397
|
+
|
398
|
+
if ( includeAlpha ) {
|
399
|
+
rgba.push( ~~( alpha * 255 ) );
|
400
|
+
}
|
401
|
+
|
402
|
+
return "#" + jQuery.map( rgba, function( v, i ) {
|
403
|
+
|
404
|
+
// default to 0 when nulls exist
|
405
|
+
v = ( v || 0 ).toString( 16 );
|
406
|
+
return v.length === 1 ? "0" + v : v;
|
407
|
+
}).join("");
|
408
|
+
},
|
409
|
+
toString: function() {
|
410
|
+
return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
|
411
|
+
}
|
412
|
+
};
|
413
|
+
color.fn.parse.prototype = color.fn;
|
414
|
+
|
415
|
+
// hsla conversions adapted from:
|
416
|
+
// http://www.google.com/codesearch/p#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/inspector/front-end/Color.js&d=7&l=193
|
417
|
+
|
418
|
+
function hue2rgb( p, q, h ) {
|
419
|
+
h = ( h + 1 ) % 1;
|
420
|
+
if ( h * 6 < 1 ) {
|
421
|
+
return p + (q - p) * 6 * h;
|
422
|
+
}
|
423
|
+
if ( h * 2 < 1) {
|
424
|
+
return q;
|
425
|
+
}
|
426
|
+
if ( h * 3 < 2 ) {
|
427
|
+
return p + (q - p) * ((2/3) - h) * 6;
|
428
|
+
}
|
429
|
+
return p;
|
430
|
+
}
|
431
|
+
|
432
|
+
spaces.hsla.to = function ( rgba ) {
|
433
|
+
if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
|
434
|
+
return [ null, null, null, rgba[ 3 ] ];
|
435
|
+
}
|
436
|
+
var r = rgba[ 0 ] / 255,
|
437
|
+
g = rgba[ 1 ] / 255,
|
438
|
+
b = rgba[ 2 ] / 255,
|
439
|
+
a = rgba[ 3 ],
|
440
|
+
max = Math.max( r, g, b ),
|
441
|
+
min = Math.min( r, g, b ),
|
442
|
+
diff = max - min,
|
443
|
+
add = max + min,
|
444
|
+
l = add * 0.5,
|
445
|
+
h, s;
|
446
|
+
|
447
|
+
if ( min === max ) {
|
448
|
+
h = 0;
|
449
|
+
} else if ( r === max ) {
|
450
|
+
h = ( 60 * ( g - b ) / diff ) + 360;
|
451
|
+
} else if ( g === max ) {
|
452
|
+
h = ( 60 * ( b - r ) / diff ) + 120;
|
453
|
+
} else {
|
454
|
+
h = ( 60 * ( r - g ) / diff ) + 240;
|
455
|
+
}
|
456
|
+
|
457
|
+
if ( l === 0 || l === 1 ) {
|
458
|
+
s = l;
|
459
|
+
} else if ( l <= 0.5 ) {
|
460
|
+
s = diff / add;
|
461
|
+
} else {
|
462
|
+
s = diff / ( 2 - add );
|
463
|
+
}
|
464
|
+
return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];
|
465
|
+
};
|
466
|
+
|
467
|
+
spaces.hsla.from = function ( hsla ) {
|
468
|
+
if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
|
469
|
+
return [ null, null, null, hsla[ 3 ] ];
|
470
|
+
}
|
471
|
+
var h = hsla[ 0 ] / 360,
|
472
|
+
s = hsla[ 1 ],
|
473
|
+
l = hsla[ 2 ],
|
474
|
+
a = hsla[ 3 ],
|
475
|
+
q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
|
476
|
+
p = 2 * l - q,
|
477
|
+
r, g, b;
|
478
|
+
|
479
|
+
return [
|
480
|
+
Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
|
481
|
+
Math.round( hue2rgb( p, q, h ) * 255 ),
|
482
|
+
Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
|
483
|
+
a
|
484
|
+
];
|
485
|
+
};
|
486
|
+
|
487
|
+
|
488
|
+
each( spaces, function( spaceName, space ) {
|
489
|
+
var props = space.props,
|
490
|
+
cache = space.cache,
|
491
|
+
to = space.to,
|
492
|
+
from = space.from;
|
493
|
+
|
494
|
+
// makes rgba() and hsla()
|
495
|
+
color.fn[ spaceName ] = function( value ) {
|
496
|
+
|
497
|
+
// generate a cache for this space if it doesn't exist
|
498
|
+
if ( to && !this[ cache ] ) {
|
499
|
+
this[ cache ] = to( this._rgba );
|
500
|
+
}
|
501
|
+
if ( value === undefined ) {
|
502
|
+
return this[ cache ].slice();
|
503
|
+
}
|
504
|
+
|
505
|
+
var type = jQuery.type( value ),
|
506
|
+
arr = ( type === "array" || type === "object" ) ? value : arguments,
|
507
|
+
local = this[ cache ].slice(),
|
508
|
+
ret;
|
509
|
+
|
510
|
+
each( props, function( key, prop ) {
|
511
|
+
var val = arr[ type === "object" ? key : prop.idx ];
|
512
|
+
if ( val == null ) {
|
513
|
+
val = local[ prop.idx ];
|
514
|
+
}
|
515
|
+
local[ prop.idx ] = clamp( val, prop );
|
516
|
+
});
|
517
|
+
|
518
|
+
if ( from ) {
|
519
|
+
ret = color( from( local ) );
|
520
|
+
ret[ cache ] = local;
|
521
|
+
return ret;
|
522
|
+
} else {
|
523
|
+
return color( local );
|
524
|
+
}
|
525
|
+
};
|
526
|
+
|
527
|
+
// makes red() green() blue() alpha() hue() saturation() lightness()
|
528
|
+
each( props, function( key, prop ) {
|
529
|
+
// alpha is included in more than one space
|
530
|
+
if ( color.fn[ key ] ) {
|
531
|
+
return;
|
532
|
+
}
|
533
|
+
color.fn[ key ] = function( value ) {
|
534
|
+
var vtype = jQuery.type( value ),
|
535
|
+
fn = ( key === 'alpha' ? ( this._hsla ? 'hsla' : 'rgba' ) : spaceName ),
|
536
|
+
local = this[ fn ](),
|
537
|
+
cur = local[ prop.idx ],
|
538
|
+
match;
|
539
|
+
|
540
|
+
if ( vtype === "undefined" ) {
|
541
|
+
return cur;
|
542
|
+
}
|
543
|
+
|
544
|
+
if ( vtype === "function" ) {
|
545
|
+
value = value.call( this, cur );
|
546
|
+
vtype = jQuery.type( value );
|
547
|
+
}
|
548
|
+
if ( value == null && prop.empty ) {
|
549
|
+
return this;
|
550
|
+
}
|
551
|
+
if ( vtype === "string" ) {
|
552
|
+
match = rplusequals.exec( value );
|
553
|
+
if ( match ) {
|
554
|
+
value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
|
555
|
+
}
|
556
|
+
}
|
557
|
+
local[ prop.idx ] = value;
|
558
|
+
return this[ fn ]( local );
|
559
|
+
};
|
560
|
+
});
|
561
|
+
});
|
562
|
+
|
563
|
+
// add .fx.step functions
|
564
|
+
each( stepHooks, function( i, hook ) {
|
565
|
+
jQuery.cssHooks[ hook ] = {
|
566
|
+
set: function( elem, value ) {
|
567
|
+
var parsed, backgroundColor, curElem;
|
568
|
+
|
569
|
+
if ( jQuery.type( value ) !== 'string' || ( parsed = stringParse( value ) ) )
|
570
|
+
{
|
571
|
+
value = color( parsed || value );
|
572
|
+
if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
|
573
|
+
curElem = hook === "backgroundColor" ? elem.parentNode : elem;
|
574
|
+
do {
|
575
|
+
backgroundColor = jQuery.curCSS( curElem, "backgroundColor" );
|
576
|
+
} while (
|
577
|
+
( backgroundColor === "" || backgroundColor === "transparent" ) &&
|
578
|
+
( curElem = curElem.parentNode ) &&
|
579
|
+
curElem.style
|
580
|
+
);
|
581
|
+
|
582
|
+
value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
|
583
|
+
backgroundColor :
|
584
|
+
"_default" );
|
585
|
+
}
|
586
|
+
|
587
|
+
value = value.toRgbaString();
|
588
|
+
}
|
589
|
+
elem.style[ hook ] = value;
|
590
|
+
}
|
591
|
+
};
|
592
|
+
jQuery.fx.step[ hook ] = function( fx ) {
|
593
|
+
if ( !fx.colorInit ) {
|
594
|
+
fx.start = color( fx.elem, hook );
|
595
|
+
fx.end = color( fx.end );
|
596
|
+
fx.colorInit = true;
|
597
|
+
}
|
598
|
+
jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
|
599
|
+
};
|
600
|
+
});
|
601
|
+
|
602
|
+
// detect rgba support
|
603
|
+
jQuery(function() {
|
604
|
+
var div = document.createElement( "div" ),
|
605
|
+
div_style = div.style;
|
606
|
+
|
607
|
+
div_style.cssText = "background-color:rgba(1,1,1,.5)";
|
608
|
+
support.rgba = div_style.backgroundColor.indexOf( "rgba" ) > -1;
|
609
|
+
});
|
610
|
+
|
611
|
+
// Some named colors to work with
|
612
|
+
// From Interface by Stefan Petre
|
613
|
+
// http://interface.eyecon.ro/
|
614
|
+
colors = jQuery.Color.names = {
|
615
|
+
aqua: "#00ffff",
|
616
|
+
azure: "#f0ffff",
|
617
|
+
beige: "#f5f5dc",
|
618
|
+
black: "#000000",
|
619
|
+
blue: "#0000ff",
|
620
|
+
brown: "#a52a2a",
|
621
|
+
cyan: "#00ffff",
|
622
|
+
darkblue: "#00008b",
|
623
|
+
darkcyan: "#008b8b",
|
624
|
+
darkgrey: "#a9a9a9",
|
625
|
+
darkgreen: "#006400",
|
626
|
+
darkkhaki: "#bdb76b",
|
627
|
+
darkmagenta: "#8b008b",
|
628
|
+
darkolivegreen: "#556b2f",
|
629
|
+
darkorange: "#ff8c00",
|
630
|
+
darkorchid: "#9932cc",
|
631
|
+
darkred: "#8b0000",
|
632
|
+
darksalmon: "#e9967a",
|
633
|
+
darkviolet: "#9400d3",
|
634
|
+
fuchsia: "#ff00ff",
|
635
|
+
gold: "#ffd700",
|
636
|
+
green: "#008000",
|
637
|
+
indigo: "#4b0082",
|
638
|
+
khaki: "#f0e68c",
|
639
|
+
lightblue: "#add8e6",
|
640
|
+
lightcyan: "#e0ffff",
|
641
|
+
lightgreen: "#90ee90",
|
642
|
+
lightgrey: "#d3d3d3",
|
643
|
+
lightpink: "#ffb6c1",
|
644
|
+
lightyellow: "#ffffe0",
|
645
|
+
lime: "#00ff00",
|
646
|
+
magenta: "#ff00ff",
|
647
|
+
maroon: "#800000",
|
648
|
+
navy: "#000080",
|
649
|
+
olive: "#808000",
|
650
|
+
orange: "#ffa500",
|
651
|
+
pink: "#ffc0cb",
|
652
|
+
purple: "#800080",
|
653
|
+
violet: "#800080",
|
654
|
+
red: "#ff0000",
|
655
|
+
silver: "#c0c0c0",
|
656
|
+
white: "#ffffff",
|
657
|
+
yellow: "#ffff00",
|
658
|
+
transparent: [ null, null, null, 0 ],
|
659
|
+
_default: "#ffffff"
|
660
|
+
};
|
661
|
+
})( jQuery );
|