Skip to content

Commit bfca5fa

Browse files
committed
add themes circle v2.1.3
1 parent 2951fc6 commit bfca5fa

15 files changed

+1678
-0
lines changed

themes/circle/doc/CHANGELOG

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
== Redmine Circle theme
2+
3+
Copyright (C) 2011-2017 Kirill Bezrukov
4+
https://www.redmineup.com/pages/themes/circle
5+
6+
== 2017-07-18 v2.1.3
7+
8+
* Redmine 3.4 fixes
9+
* New styles for checkbox and radio inputs
10+
11+
== 2017-06-01 v2.1.2
12+
13+
* Multiple select2 styles
14+
* Margin fixes for inputs
15+
* Quick search select max width to 300px
16+
17+
== 2017-03-01 v2.1.1
18+
19+
* Select2 styles for new CRM
20+
* Date field styles
21+
* Glyphs for moving arrows on the main menu
22+
23+
== 2016-06-22 v2.1.0
24+
25+
* New object "+" button support
26+
* Tabs buttons styles
27+
* Gravatar fixes for Redmine 3.3
28+
* Responsive colors
29+
* Reverted hideable sidebar
30+
31+
== 2015-09-22 v2.0.0
32+
33+
* Hide sidebar button (no need Hide Sidebar plugin anymore)
34+
* Add hidden project menu items to the dropdown menu
35+
* Add hidden top menu items to the dropdown menu
36+
* Responsive styles
37+
38+
== 2014-04-09 v1.0.2
39+
40+
* Disabled context menu fixes
41+
* New date picker styles
42+
* Padding for done ration progress
43+
44+
== 2014-01-19 v1.0.1
45+
46+
* Issues list priorities colors
47+
* Table cells padding
48+
* Table row select and hover styles
49+
* iOS buttons support
50+
* Context menu styles
51+
* Issue tip styles
52+
53+
== 2014-01-17 v1.0.0
54+
55+
* Initial release
56+
* Styles for selects and inputs
57+
* Styles for buttons
58+
* Styles for RedmineCRM plugins (CRM, Invoices, Helpdesk, Finance, Products, People)
59+
* Styles for Modal windows and Date pickers

themes/circle/doc/COPYING

+339
Large diffs are not rendered by default.

themes/circle/doc/LICENSE

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
LICENSING
2+
3+
RedmineUP Licencing
4+
5+
This End User License Agreement is a binding legal agreement between you and RedmineUP. Purchase, installation or use of RedmineUP Extensions provided on redmineup.com signifies that you have read, understood, and agreed to be bound by the terms outlined below.
6+
7+
RedmineUP GPL Licencing
8+
9+
All Redmine Extensions produced by RedmineUP are released under the GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html). Specifically, the Ruby code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript are NOT GPL, and are released under the RedmineUP Proprietary Use License v1.0 (See below) unless specifically authorized by RedmineUP. Elements of the extensions released under this proprietary license may not be redistributed or repackaged for use other than those allowed by the Terms of Service.
10+
11+
RedmineUP Proprietary Use License (v1.0)
12+
13+
The RedmineUP Proprietary Use License covers any images, cascading stylesheets, manuals and JavaScript files in any extensions produced and/or distributed by redmineup.com. These files are copyrighted by redmineup.com (RedmineUP) and cannot be redistributed in any form without prior consent from redmineup.com (RedmineUP)
14+
15+
Usage Terms
16+
17+
You are allowed to use the Extensions on one or many "production" domains, depending on the type of your license
18+
You are allowed to make any changes to the code, however modified code will not be supported by us.
19+
20+
Modification Of Extensions Produced By RedmineUP.
21+
22+
You are authorized to make any modification(s) to RedmineUP extension Ruby code. However, if you change any Ruby code and it breaks functionality, support may not be available to you.
23+
24+
In accordance with the RedmineUP Proprietary Use License v1.0, you may not release any proprietary files (modified or otherwise) under the GPL license. The terms of this license and the GPL v2 prohibit the removal of the copyright information from any file.
25+
26+
Please contact us if you have any requirements that are not covered by these terms.

themes/circle/images/close.png

500 Bytes
Loading

themes/circle/images/close_active.png

510 Bytes
Loading

themes/circle/images/logo.png

1.08 KB
Loading

themes/circle/images/logo2x.png

1.96 KB
Loading

themes/circle/images/menu_button.png

149 Bytes
Loading
145 Bytes
Loading

themes/circle/images/next.png

212 Bytes
Loading

themes/circle/images/prev.png

210 Bytes
Loading

themes/circle/images/select.png

296 Bytes
Loading

themes/circle/images/select2x.png

321 Bytes
Loading

themes/circle/javascripts/theme.js

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
if (window.jQuery) {
2+
$(window).load(function(){
3+
if (window.devicePixelRatio > 1) {
4+
var images = findImagesByRegexp('contacts_thumbnail', document);
5+
6+
for(var i = 0; i < images.length; i++) {
7+
var lowres = images[i].src;
8+
old_size = lowres.match(/\/(\d*)$/)[1]
9+
var highres = lowres.replace(/\/(\d*)$/, "/" + String(old_size*2));
10+
images[i].src = highres;
11+
}
12+
13+
var images = findImagesByRegexp(/gravatar.com\/avatar.*size=\d+/, document)
14+
15+
for(var i = 0; i < images.length; i++) {
16+
var lowres = images[i].src;
17+
old_size = lowres.match(/size=(\d+)/)[1]
18+
var highres = lowres.replace(/size=(\d+)/, "size=" + String(old_size*2));
19+
images[i].src = highres;
20+
images[i].height = old_size;
21+
images[i].width = old_size;
22+
}
23+
24+
var images = findImagesByRegexp(/\/attachments\/thumbnail\/\d+$/, document)
25+
26+
for(var i = 0; i < images.length; i++) {
27+
var lowres = images[i].src;
28+
var height = images[i].height
29+
var width = images[i].width
30+
var highres = lowres + "?size=" + Math.max(height, width)*2;
31+
if (Math.max(height, width) > 0) {
32+
images[i].src = highres;
33+
images[i].height = height;
34+
images[i].width = width;
35+
}
36+
}
37+
38+
// Sized thumbnails
39+
var images = findImagesByRegexp(/\/attachments\/thumbnail\/\d+\/\d+$/, document)
40+
for(var i = 0; i < images.length; i++) {
41+
var lowres = images[i].src;
42+
var height = images[i].height
43+
var width = images[i].width
44+
old_size = lowres.match(/\/(\d*)$/)[1]
45+
var highres = lowres.replace(/\/(\d*)$/, "/" + String(old_size*2));
46+
images[i].src = highres;
47+
if (Math.max(height, width) > 0) {
48+
images[i].src = highres;
49+
images[i].height = height;
50+
images[i].width = width;
51+
}
52+
}
53+
54+
// People avatars
55+
var images = findImagesByRegexp(/people\/avatar.*size=\d+$/, document)
56+
57+
for(var i = 0; i < images.length; i++) {
58+
var lowres = images[i].src;
59+
old_size = lowres.match(/size=(\d+)$/)[1]
60+
var highres = lowres.replace(/size=(\d+)$/, "size=" + String(old_size*2));
61+
images[i].src = highres;
62+
}
63+
64+
65+
}
66+
});
67+
} else {
68+
document.observe("dom:loaded", function() {
69+
if (window.devicePixelRatio > 1) {
70+
var images = findImagesByRegexp('thumbnail', document);
71+
72+
for(var i = 0; i < images.length; i++) {
73+
var lowres = images[i].src;
74+
old_size = lowres.match(/size=(\d*)$/)[1]
75+
var highres = lowres.replace(/size=(\d*)$/, "size=" + String(old_size*2));
76+
images[i].src = highres;
77+
}
78+
79+
var images = findImagesByRegexp(/gravatar.com\/avatar.*size=\d+/, document)
80+
81+
for(var i = 0; i < images.length; i++) {
82+
var lowres = images[i].src;
83+
old_size = lowres.match(/size=(\d+)/)[1]
84+
var highres = lowres.replace(/size=(\d+)/, "size=" + String(old_size*2));
85+
images[i].src = highres;
86+
images[i].height = old_size;
87+
images[i].width = old_size;
88+
}
89+
}
90+
91+
});
92+
}
93+
94+
function findImagesByRegexp(regexp, parentNode) {
95+
var images = Array.prototype.slice.call((parentNode || document).getElementsByTagName('img'));
96+
var length = images.length;
97+
var ret = [];
98+
for(var i = 0; i < length; ++i) {
99+
if(images[i].src.search(regexp) != -1) {
100+
ret.push(images[i]);
101+
}
102+
}
103+
return ret;
104+
};

0 commit comments

Comments
 (0)