From f5ab71dce574c3babe3ec2d52c97ac14c7308ccd Mon Sep 17 00:00:00 2001 From: Matchu Date: Tue, 17 Jul 2012 14:42:31 -0400 Subject: [PATCH] sharing thumbnail --- app/stylesheets/outfits/_edit.sass | 29 ++++++++ app/views/outfits/edit.html.haml | 5 ++ public/images/outfits/small_loading.gif | Bin 0 -> 39029 bytes public/javascripts/outfits/edit.js | 83 +++++++++++++++++---- public/javascripts/wardrobe.js | 3 - public/stylesheets/compiled/screen.css | 94 ++++++++++++++++-------- 6 files changed, 168 insertions(+), 46 deletions(-) create mode 100644 public/images/outfits/small_loading.gif diff --git a/app/stylesheets/outfits/_edit.sass b/app/stylesheets/outfits/_edit.sass index 93fa2352..68836be9 100644 --- a/app/stylesheets/outfits/_edit.sass +++ b/app/stylesheets/outfits/_edit.sass @@ -491,6 +491,35 @@ body.outfits-edit input display: block width: 100% + + #preview-sharing-thumbnail-wrapper + border: 1px solid $soft-border-color + display: block + height: 150px + margin: 0 auto + width: 150px + + #preview-sharing-thumbnail-loading + position: relative + + span + color: $soft-text-color + font-size: 85% + margin-top: -1em + position: absolute + text-align: center + top: 50% + width: 100% + + #preview-sharing-thumbnail + display: none + + &.loaded + #preview-sharing-thumbnail-loading + display: none + + #preview-sharing-thumbnail + display: block .preview-sidebar-nav float: right diff --git a/app/views/outfits/edit.html.haml b/app/views/outfits/edit.html.haml index 5f6580ec..8bc5b29b 100644 --- a/app/views/outfits/edit.html.haml +++ b/app/views/outfits/edit.html.haml @@ -79,6 +79,11 @@ #preview-sharing.sidebar-view %a.preview-sidebar-nav-closet.preview-sidebar-nav{:href => '#'} ← Back to Closet %h2 Sharing + #preview-sharing-thumbnail-wrapper + #preview-sharing-thumbnail-loading + = image_tag 'outfits/small_loading.gif' + %span Generating… + %img#preview-sharing-thumbnail %ul %li %label{:for => 'preview-sharing-permalink-url'} Outfit page diff --git a/public/images/outfits/small_loading.gif b/public/images/outfits/small_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..89f4b50462afa5900530b4c096a72170c4617cea GIT binary patch literal 39029 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

_l!72Ev{VnMBA3@0py1H=M$i5;E9wkQLB|_UQ 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 literal 0 HcmV?d00001 diff --git a/public/javascripts/outfits/edit.js b/public/javascripts/outfits/edit.js index 359f2c4a..2b06bf5e 100644 --- a/public/javascripts/outfits/edit.js +++ b/public/javascripts/outfits/edit.js @@ -603,6 +603,12 @@ View.Outfits = function (wardrobe) { wardrobe.user.toggleOutfitStar(el.tmplItem().data); }); + function pathToUrl(path) { + var host = document.location.protocol + "//" + document.location.host; + if(document.location.port) host += ":" + document.location.port; + return host + path; + } + function generateOutfitPermalink(outfit) { return pathToUrl("/outfits/" + outfit.id); } @@ -620,19 +626,6 @@ View.Outfits = function (wardrobe) { function setSharedOutfitPermalink(outfit) { setOutfitPermalink(outfit, shared_outfit_permalink_el, shared_outfit_url_el); } - - function pathToUrl(path) { - var host = document.location.protocol + "//" + document.location.host; - if(document.location.port) host += ":" + document.location.port; - return host + path; - } - - function setSharingUrls(outfit) { - sharing_url_els.permalink.val(generateOutfitPermalink(outfit)); - sharing_url_els.large_image.val(pathToUrl(outfit.image_versions.large)); - sharing_url_els.medium_image.val(pathToUrl(outfit.image_versions.medium)); - sharing_url_els.small_image.val(pathToUrl(outfit.image_versions.small)); - } function setActiveOutfit(outfit) { outfits_list_el.find('li.active').removeClass('active'); @@ -656,6 +649,70 @@ View.Outfits = function (wardrobe) { save_current_outfit_name_el.text(outfit.name); } }); + + /* Sharing */ + + function setSharingUrls(outfit) { + var small_image_url = pathToUrl(outfit.image_versions.small); + sharing_thumbnail.setUrl(small_image_url); + sharing_url_els.small_image.val(small_image_url); + + sharing_url_els.permalink.val(generateOutfitPermalink(outfit)); + sharing_url_els.large_image.val(pathToUrl(outfit.image_versions.large)); + sharing_url_els.medium_image.val(pathToUrl(outfit.image_versions.medium)); + } + + var sharing_thumbnail = new function SharingThumbnail() { + var WRAPPER = $('#preview-sharing-thumbnail-wrapper'); + var IMAGE = $('#preview-sharing-thumbnail'); + var RETRY_DELAY = 2000; // 2 seconds + var url = null; + var xhr = null; + + function abort() { + if(xhr && xhr.readystate != 4) { + log("Aborting sharing thumbnail XHR"); + xhr.abort(); + } + } + + function hide() { + WRAPPER.removeClass('loaded'); + } + + function load() { + log("Loading sharing thumbnail", url); + xhr = $.ajax({ + type: 'HEAD', + cache: false, // in case some browser tries to cache a 404 + url: url, + success: show, + error: retry + }); + } + + function retry() { + log("Sharing thumbnail not found, retry in", RETRY_DELAY); + setTimeout(load, RETRY_DELAY); + } + + function show() { + log("Sharing thumbnail found"); + IMAGE.attr('src', url); + WRAPPER.addClass('loaded'); + } + + this.setUrl = function (newUrl) { + if(newUrl != url) { + abort(); + hide(); + url = newUrl; + load(); + } else { + log("Sharing thumbnail URLs are identical; no change."); + } + } + } /* Saving */ diff --git a/public/javascripts/wardrobe.js b/public/javascripts/wardrobe.js index f309dc26..6780e888 100644 --- a/public/javascripts/wardrobe.js +++ b/public/javascripts/wardrobe.js @@ -7,9 +7,6 @@ function arraysMatch(array1, array2) { return array1 == array2; } temp = []; - if ( (!array1[0]) || (!array2[0]) ) { - return false; - } if (array1.length != array2.length) { return false; } diff --git a/public/stylesheets/compiled/screen.css b/public/stylesheets/compiled/screen.css index 07014120..497bd665 100644 --- a/public/stylesheets/compiled/screen.css +++ b/public/stylesheets/compiled/screen.css @@ -2954,13 +2954,47 @@ body.outfits-edit #preview-sharing > ul li input { width: 100%; } /* line 495, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper { + border: 1px solid #aaddaa; + display: block; + height: 150px; + margin: 0 auto; + width: 150px; +} +/* line 502, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper #preview-sharing-thumbnail-loading { + position: relative; +} +/* line 505, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper #preview-sharing-thumbnail-loading span { + color: #448844; + font-size: 85%; + margin-top: -1em; + position: absolute; + text-align: center; + top: 50%; + width: 100%; +} +/* line 514, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper #preview-sharing-thumbnail { + display: none; +} +/* line 518, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper.loaded #preview-sharing-thumbnail-loading { + display: none; +} +/* line 521, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-sharing #preview-sharing-thumbnail-wrapper.loaded #preview-sharing-thumbnail { + display: block; +} +/* line 524, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .preview-sidebar-nav { float: right; font-size: 85%; margin-right: 24px; margin-top: 1em; } -/* line 502, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 531, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-success, body.outfits-edit #save-error, body.outfits-edit #outfit-not-found, body.outfits-edit #preview-sidebar-donation-request { margin-left: 24px; margin-right: 24px; @@ -2968,7 +3002,7 @@ body.outfits-edit #save-success, body.outfits-edit #save-error, body.outfits-edi margin-top: 1em; text-align: center; } -/* line 509, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 538, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar-donation-request { background: #e6efc2; border: 1px solid #c6d880; @@ -2976,23 +3010,23 @@ body.outfits-edit #preview-sidebar-donation-request { font-size: 85%; padding: 1em; } -/* line 514, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 543, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar-donation-request-no-thanks { margin-left: 1em; } -/* line 517, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 546, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-success { background: #e6efc2; border: 1px solid #c6d880; color: #264409; } -/* line 520, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 549, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-error, body.outfits-edit #outfit-not-found { background: #fbe3e4; border: 1px solid #fbc2c4; color: #8a1f11; } -/* line 523, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 552, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #userbar-message { -moz-opacity: 0.5; -webkit-opacity: 0.5; @@ -3000,7 +3034,7 @@ body.outfits-edit #userbar-message { -khtml-opacity: 0.5; display: none; } -/* line 527, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 556, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit { padding: 0.25em 0; margin-left: 24px; @@ -3186,28 +3220,28 @@ body.outfits-edit #new-outfit.renaming:hover .outfit-rename-button { body.outfits-edit #new-outfit:hover .outfit-rename-button { display: inline; } -/* line 531, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 560, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4 { display: inline; } -/* line 533, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 562, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4:hover { text-decoration: none; } -/* line 535, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 564, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-star { margin-top: 0.5em; } -/* line 538, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 567, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit-name { font: inherit; line-height: 1; } -/* line 542, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 571, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-type-form, body.outfits-edit #pet-state-form, body.outfits-edit #preview-swf, body.outfits-edit #preview-search-form { position: relative; } -/* line 545, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 574, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .control-overlay { height: 100%; left: 0; @@ -3216,11 +3250,11 @@ body.outfits-edit .control-overlay { width: 100%; z-index: 5; } -/* line 553, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 582, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar-nav-outfits, body.outfits-edit #save-outfit-signed-in { display: none; } -/* line 556, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 585, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit form#save-outfit-form { padding: 0.25em 0; display: none; @@ -3406,7 +3440,7 @@ body.outfits-edit form#save-outfit-form.renaming:hover .outfit-rename-button { body.outfits-edit form#save-outfit-form:hover .outfit-rename-button { display: inline; } -/* line 562, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 591, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit form#save-outfit-form .outfit-star, body.outfits-edit form#save-outfit-form input, body.outfits-edit form#save-outfit-form button { display: -moz-inline-box; -moz-box-orient: vertical; @@ -3420,50 +3454,50 @@ body.outfits-edit form#save-outfit-form .outfit-star, body.outfits-edit form#sav body.outfits-edit form#save-outfit-form .outfit-star, body.outfits-edit form#save-outfit-form input, body.outfits-edit form#save-outfit-form button { *display: inline; } -/* line 567, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 596, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit form#save-outfit-form .outfit-star { margin-top: 0.25em; } -/* line 570, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 599, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .outfit-url { font-size: 75%; } -/* line 573, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 602, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-error { background: #fbe3e4; border: 1px solid #fbc2c4; color: #8a1f11; padding: 0.25em 0.5em; } -/* line 578, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 607, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #preview-sidebar-nav-outfits { display: block; } -/* line 580, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 609, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit { display: inline-block; } -/* line 584, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 613, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.active-outfit #save-outfit { display: none; } -/* line 586, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 615, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.active-outfit #save-current-outfit, body.outfits-edit.user-signed-in #save-outfit-wrapper.active-outfit #save-outfit-copy { display: inline-block; } -/* line 588, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 617, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.active-outfit #current-outfit-permalink { display: inline-block; } -/* line 591, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 620, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #save-outfit-form { display: block; } -/* line 593, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 622, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #save-outfit, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #save-current-outfit, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #save-outfit-copy, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #current-outfit-permalink, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #shared-outfit-permalink, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #share-outfit, body.outfits-edit.user-signed-in #save-outfit-wrapper.saving-outfit #shared-outfit-url { display: none; } -/* line 595, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 624, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in .preview-search-form-your-items { display: -moz-inline-box; -moz-box-orient: vertical; @@ -3475,15 +3509,15 @@ body.outfits-edit.user-signed-in .preview-search-form-your-items { body.outfits-edit.user-signed-in .preview-search-form-your-items { *display: inline; } -/* line 599, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 628, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-not-signed-in #save-outfit-not-signed-in { display: inline-block; } -/* line 603, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 632, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-outfit-wrapper.shared-outfit #shared-outfit-permalink, body.outfits-edit #save-outfit-wrapper.shared-outfit #shared-outfit-url { display: inline-block; } -/* line 605, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 634, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-outfit-wrapper.shared-outfit #current-outfit-permalink { display: none !important; }