aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-06-22 23:48:53 -0700
committerJose Antonio Marquez2012-06-22 23:48:53 -0700
commit7396ca7f01ca884564b1dd86a8847d28364f1a96 (patch)
tree328d31ced65133b25fd52601dbcb3154ace6592d
parent6879ed0f3e4ffb66639f34b32ea8e9fc18452f61 (diff)
downloadninja-7396ca7f01ca884564b1dd86a8847d28364f1a96.tar.gz
Fixing bug with gradient stop limits
It seems that from-to stops are omitted if using objects with no 0 and/or 100 percent stops, seems like browser induced, but can't confirmed, bug never reported, but this should fix it.
-rwxr-xr-xjs/controllers/color-controller.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/js/controllers/color-controller.js b/js/controllers/color-controller.js
index 3165988d..2a6fe9bd 100755
--- a/js/controllers/color-controller.js
+++ b/js/controllers/color-controller.js
@@ -254,7 +254,12 @@ exports.ColorController = Montage.create(Component, {
254 gradient.css = css; 254 gradient.css = css;
255 // 255 //
256 arr = css.split('from('); 256 arr = css.split('from(');
257 arr = arr[1].split('),'); 257 //
258 if (arr.length > 1) {
259 arr = arr[1].split('),');
260 } else {
261 arr = (css.split(css.split('color-stop(')[0])[1]).split('),');
262 }
258 // 263 //
259 for (i=0; arr[i]; i++) { 264 for (i=0; arr[i]; i++) {
260 arr[i] = arr[i].replace(/ color-stop\(/i, ""); 265 arr[i] = arr[i].replace(/ color-stop\(/i, "");
@@ -264,14 +269,20 @@ exports.ColorController = Montage.create(Component, {
264 arr[i] = arr[i].replace(/\)\)/i, ""); 269 arr[i] = arr[i].replace(/\)\)/i, "");
265 } 270 }
266 // 271 //
267 if (i === 0) { 272 if (i === 0 && arr[i].indexOf('color-stop') === -1) {
268 arr[i] = {css: arr[i], percent: 0}; 273 arr[i] = {css: arr[i], percent: 0};
269 } else if (i === arr.length-1) { 274 } else if (i === arr.length-1) {
270 arr[i] = {css: arr[i], percent: 100}; 275 temp = arr[i].split(', rgb');
276 if (temp.length > 1) {
277 arr[i] = {css: 'rgb'+temp[1].replace(/\)\)/i, ""), percent: Math.round(parseFloat(temp[0])*100)};
278 } else {
279 arr[i] = {css: arr[i], percent: 100};
280 }
271 } else { 281 } else {
272 // 282 //
273 if (arr[i].indexOf('rgb') >= 0 && arr[i].indexOf('rgba') < 0) { 283 if (arr[i].indexOf('rgb') >= 0 && arr[i].indexOf('rgba') < 0) {
274 temp = arr[i].split(', rgb'); 284 temp = arr[i].split(', rgb');
285 temp[0] = temp[0].replace(/color\-stop\(/gi, '');
275 arr[i] = {css: 'rgb'+temp[1], percent: Math.round(parseFloat(temp[0])*100)}; 286 arr[i] = {css: 'rgb'+temp[1], percent: Math.round(parseFloat(temp[0])*100)};
276 } else if (arr[i].indexOf('rgba') >= 0) { 287 } else if (arr[i].indexOf('rgba') >= 0) {
277 temp = arr[i].split(', rgba'); 288 temp = arr[i].split(', rgba');