diff --git a/app/controllers/outfits_controller.rb b/app/controllers/outfits_controller.rb index 80566046..a4f76275 100644 --- a/app/controllers/outfits_controller.rb +++ b/app/controllers/outfits_controller.rb @@ -3,12 +3,12 @@ class OutfitsController < ApplicationController def create if user_signed_in? - outfit = Outfit.new params[:outfit] - outfit.user = current_user - if outfit.save - render :json => outfit.id + @outfit = Outfit.new params[:outfit] + @outfit.user = current_user + if @outfit.save + render :json => @outfit.id else - render :json => {:errors => outfit.errors}, :status => :bad_request + render_outfit_errors end else render :json => {:errors => {:user => ['not logged in']}}, :status => :forbidden @@ -21,7 +21,11 @@ class OutfitsController < ApplicationController end def destroy - authenticate_action &:destroy + if @outfit.destroy + render :json => true + else + render :json => false, :status => :bad_request + end end def new @@ -39,21 +43,21 @@ class OutfitsController < ApplicationController end def update - authenticate_action { |outfit| outfit.update_attributes(params[:outfit]) } + if @outfit.update_attributes(params[:outfit]) + render :json => true + else + render_outfit_errors + end end private - def authenticate_action - if yield(@outfit) - render :json => true - else - render :json => false, :status => :bad_request - end - end - def find_authorized_outfit raise ActiveRecord::RecordNotFound unless user_signed_in? @outfit = current_user.outfits.find(params[:id]) end + + def render_outfit_errors + render :json => {:errors => @outfit.errors}, :status => :bad_request + end end diff --git a/app/stylesheets/outfits/_edit.sass b/app/stylesheets/outfits/_edit.sass index 41b7b446..c9c87501 100644 --- a/app/stylesheets/outfits/_edit.sass +++ b/app/stylesheets/outfits/_edit.sass @@ -64,22 +64,30 @@ $outfit-content-inner-width: $outfit-content-width - $outfit-header-padding /* makes it not take up inline space position: relative width: 16px - &.loading - background-image: image-url("loading.gif") !important + &.loading .outfit-star + background-image: image-url("loading.gif") !important h4 cursor: pointer - font-size: 115% + display: inline &:hover text-decoration: underline + h4, .outfit-rename-field + font-size: 115% + .outfit-rename-button, .outfit-rename-form + display: none + .outfit-rename-button + +opacity(.75) + font-size: 75% + margin-left: 1em .outfit-url +opacity(.5) background: transparent - border-color: $background-color + border-width: 0 font-size: 75% width: $outfit-content-inner-width &:hover +opacity(1) - border-color: $input-border-color + border-width: 1px .outfit-delete-confirmation display: none font-size: 75% @@ -96,9 +104,25 @@ $outfit-content-inner-width: $outfit-content-width - $outfit-header-padding display: none .outfit-delete-confirmation display: block + &.renaming + h4 + display: none + .outfit-rename-form + display: inline + &:hover + .outfit-rename-button + display: none &.starred .outfit-star background-image: image-url("star.png") + &:hover + .outfit-rename-button + display: inline + +=sidebar-view-child + margin: + left: $sidebar-unit-horizontal-padding + right: $sidebar-unit-horizontal-padding body.outfits-edit #preview-toolbar @@ -262,12 +286,10 @@ body.outfits-edit float: right height: 100% margin: 0 + overflow: auto position: relative - width: auto - > div - height: 100% - overflow: auto - width: $sidebar-width + width: $sidebar-width + .sidebar-view h2 margin: bottom: .25em @@ -355,14 +377,13 @@ body.outfits-edit display: none text-align: left > ul + +sidebar-view-child background: image-url("loading.gif") no-repeat center top display: block font-family: $main-font list-style: none margin: bottom: 1em - left: $sidebar-unit-horizontal-padding - right: $sidebar-unit-horizontal-padding min-height: 16px > li +outfit @@ -377,8 +398,10 @@ body.outfits-edit top: 1em #save-success, #save-error, #outfit-not-found + +sidebar-view-child display: none - margin-top: 1em + margin: + top: 1em text-align: center #save-success @@ -393,6 +416,7 @@ body.outfits-edit #new-outfit +outfit + +sidebar-view-child display: none h4 display: inline diff --git a/app/views/outfits/edit.html.haml b/app/views/outfits/edit.html.haml index 341dbfde..69b511f5 100644 --- a/app/views/outfits/edit.html.haml +++ b/app/views/outfits/edit.html.haml @@ -27,18 +27,18 @@ #outfit-not-found Outfit not found #save-success Outfit successfully saved #save-error - #preview-closet + #preview-closet.sidebar-view %a#preview-sidebar-nav-outfits.preview-sidebar-nav{:href => '#'} Your outfits %h2 Closet %ul %p#fullscreen-copyright Images © 2000-2010 Neopets, Inc. All Rights Reserved. Used With Permission - #preview-outfits + #preview-outfits.sidebar-view %a#preview-sidebar-nav-closet.preview-sidebar-nav{:href => "#"} ← Back to Closet %h2 Your outfits %ul - #preview-saving-outfit + #preview-saving-outfit.sidebar-view %a#preview-sidebar-nav-cancel-save.preview-sidebar-nav{:href => '#'} ← Cancel %h2 Saving new outfit #new-outfit @@ -95,6 +95,9 @@ %button.outfit-delete × .outfit-star %h4 ${name} + %a.outfit-rename-button{:href => '#'} rename + %form.outfit-rename-form + %input.outfit-rename-field{:type => 'text'} %input.outfit-url{:type => 'text', :value => "http://#{request.host}/outfits/${id}"} .outfit-delete-confirmation %span Delete forever? diff --git a/public/javascripts/outfits/edit.js b/public/javascripts/outfits/edit.js index 5a2871b8..ef2d30e1 100644 --- a/public/javascripts/outfits/edit.js +++ b/public/javascripts/outfits/edit.js @@ -21,7 +21,18 @@ })(); $.fn.notify = function () { - this.stop().show('slow').delay(5000).hide('fast'); + this.stop(true, true).show('slow').delay(5000).hide('fast'); +} + +$.fn.outfitLoading = function () { + this.delay(1000).queue(function (next) { + $(this).addClass('loading'); + next(); + }); +} + +$.fn.stopLoading = function () { + this.removeClass('loading').clearQueue(); } var Partial = {}, main_wardrobe, @@ -449,6 +460,10 @@ View.Outfits = function (wardrobe) { signed_in, previously_viewing = ''; + function liForOutfit(outfit) { + return $('li.outfit-' + outfit.id); + } + function navLinkTo(callback) { return function (e) { e.preventDefault(); @@ -541,6 +556,30 @@ View.Outfits = function (wardrobe) { wardrobe.outfit.load($(this).tmplItem().data.id); }); + $('a.outfit-rename-button').live('click', function (e) { + e.preventDefault(); + var li = $(this).closest('li').addClass('renaming'), + name = li.find('h4').text(); + li.find('input.outfit-rename-field').val(name).focus(); + }); + + function submitRename() { + var el = $(this), outfit = el.tmplItem().data, new_name = el.val(), + li = el.closest('li').removeClass('renaming'); + if(new_name != outfit.name) { + li.outfitLoading(); + wardrobe.user.renameOutfit(outfit, new_name); + } + } + + $('input.outfit-rename-field').live('blur', submitRename); + + $('form.outfit-rename-form').live('submit', function (e) { + e.preventDefault(); + var input = $(this).find('input'); + submitRename.apply(input); + }); + $('input.outfit-url').live('mouseover', function () { this.focus(); }).live('mouseout', function () { @@ -568,14 +607,14 @@ View.Outfits = function (wardrobe) { stars.live('click', function () { var el = $(this); - setTimeout(function () { el.addClass('loading') }, 1000); + el.closest('li').outfitLoading(); wardrobe.user.toggleOutfitStar(el.tmplItem().data); }); function setActiveOutfit(outfit) { outfits_list_el.find('li.active').removeClass('active'); if(outfit.id) { - $('li.outfit-' + outfit.id).addClass('active'); + liForOutfit(outfit).addClass('active'); save_current_outfit_name_el.text(outfit.name); } save_outfit_wrapper_el.toggleClass('active-outfit', outfit.id ? true : false); @@ -588,6 +627,12 @@ View.Outfits = function (wardrobe) { wardrobe.outfit.bind('setOutfit', setActiveOutfit); wardrobe.outfit.bind('outfitNotFound', setActiveOutfit); + wardrobe.user.bind('outfitRenamed', function (outfit) { + if(outfit.id == wardrobe.outfit.getId()) { + save_current_outfit_name_el.text(outfit.name); + } + }); + /* Saving */ save_current_outfit_el.click(function () { @@ -627,7 +672,7 @@ View.Outfits = function (wardrobe) { wardrobe.user.updateOutfit(outfit); }); - wardrobe.outfit.bind('saveFailure', function (response) { + function saveFailure(outfit, response) { var errors = response.errors; if(typeof errors == 'undefined') { saveErrorMessage("Whoops! The save failed, but the server didn't say why. Please try again."); @@ -644,7 +689,11 @@ View.Outfits = function (wardrobe) { } } } - }); + liForOutfit(outfit).stopLoading(); + } + + wardrobe.outfit.bind('saveFailure', saveFailure); + wardrobe.user.bind('saveFailure', saveFailure) /* Error */ diff --git a/public/javascripts/wardrobe.js b/public/javascripts/wardrobe.js index 0391bcfa..9b8c0049 100644 --- a/public/javascripts/wardrobe.js +++ b/public/javascripts/wardrobe.js @@ -334,7 +334,11 @@ function Wardrobe() { Outfit.cache[outfit.id] = outfit; success(outfit); }, - error: function () { if(typeof failure !== 'undefined') failure(outfit) } + error: function (xhr) { + if(typeof failure !== 'undefined') { + failure(outfit, $.parseJSON(xhr.responseText)); + } + } }); } @@ -367,6 +371,10 @@ function Wardrobe() { return visible_assets; } + this.rename = function (new_name, success, failure) { + this.updateAttributes({name: new_name}, success, failure); + } + this.setClosetItemsByIds = function (ids, updateItemsCallback) { if(ids) closet_item_ids = ids; if(ids && ids.length) { @@ -508,19 +516,19 @@ function Wardrobe() { success(outfit); }, error: function (xhr) { - error($.parseJSON(xhr.responseText)); + error(outfit, $.parseJSON(xhr.responseText)); } }); } - this.updateAttributes = function (attributes, success) { + this.updateAttributes = function (attributes, success, failure) { var outfit_data = {}; for(var key in attributes) { if(attributes.hasOwnProperty(key)) { outfit_data[key] = outfit[key] = attributes[key]; } } - sendUpdate(outfit_data, success); + sendUpdate(outfit_data, success, failure); } } @@ -770,6 +778,10 @@ function Wardrobe() { return outfit.closet_items; } + this.getId = function () { + return outfit.id; + } + this.getOutfit = function () { return outfit; } @@ -997,7 +1009,7 @@ function Wardrobe() { function yankOutfit(outfit) { var i; for(i = 0; i < outfits.length; i++) { - if(outfit == outfits[i]) { + if(outfit.id == outfits[i].id) { outfits.splice(i, 1); break; } @@ -1024,6 +1036,18 @@ function Wardrobe() { } } + this.renameOutfit = function (outfit, new_name) { + var old_name = outfit.name; + outfit.rename(new_name, function () { + yankOutfit(outfit); + insertOutfit(outfit); + controller.events.trigger('outfitRenamed', outfit); + }, function (outfit_copy, response) { + outfit.name = old_name; + controller.events.trigger('saveFailure', outfit_copy, response); + }); + } + this.toggleOutfitStar = function (outfit) { outfit.toggleStar(function () { yankOutfit(outfit); diff --git a/public/stylesheets/compiled/screen.css b/public/stylesheets/compiled/screen.css index 522f004d..546c2dc8 100644 --- a/public/stylesheets/compiled/screen.css +++ b/public/stylesheets/compiled/screen.css @@ -760,12 +760,12 @@ body.items-show .nc-icon { } @import url(../shared/jquery.jgrowl.css); -/* line 104, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 128, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-toolbar { margin-bottom: 0.5em; text-align: left; } -/* line 107, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 131, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-toolbar form { display: -moz-inline-box; -moz-box-orient: vertical; @@ -775,23 +775,23 @@ body.outfits-edit #preview-toolbar form { *vertical-align: auto; margin-right: 2em; } -/* line 110, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 134, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-info form { display: inline; } -/* line 113, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 137, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form ul { list-style: none; } -/* line 115, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 139, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form ul, body.outfits-edit #pet-state-form ul li { display: inline; } -/* line 117, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 141, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form input { display: none; } -/* line 119, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 143, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form label { /* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */ -moz-border-radius: 5px; @@ -823,7 +823,7 @@ body.outfits-edit #pet-state-form label:hover { body.outfits-edit #pet-state-form label:active { top: 1px; } -/* line 122, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 146, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form li.selected label { background: #0b61a4 url('/images/alert-overlay.png?1289168102') repeat-x; } @@ -831,15 +831,15 @@ body.outfits-edit #pet-state-form li.selected label { body.outfits-edit #pet-state-form li.selected label:hover { background-color: #005093; } -/* line 124, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 148, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #pet-state-form.hidden { visibility: hidden; } -/* line 126, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 150, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-outfit-wrapper { float: right; } -/* line 128, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 152, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-outfit-wrapper button { background: #ff5c00 url('/images/alert-overlay.png?1289168102') repeat-x; display: none; @@ -848,11 +848,11 @@ body.outfits-edit #save-outfit-wrapper button { body.outfits-edit #save-outfit-wrapper button:hover { background-color: #ee4b00; } -/* line 131, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 155, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview { clear: both; } -/* line 133, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 157, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-swf { float: left; height: 400px; @@ -860,7 +860,7 @@ body.outfits-edit #preview-swf { position: relative; width: 400px; } -/* line 139, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 163, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-swf-overlay { -moz-opacity: 0; -webkit-opacity: 0; @@ -873,7 +873,7 @@ body.outfits-edit #preview-swf-overlay { top: 0; width: 100%; } -/* line 147, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 171, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar { float: left; height: 400px; @@ -881,68 +881,68 @@ body.outfits-edit #preview-sidebar { margin-bottom: 1em; width: 380px; } -/* line 154, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 178, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar.viewing-outfits #preview-closet { display: none; } -/* line 156, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 180, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar.viewing-outfits #preview-outfits { display: block; } -/* line 158, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 182, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar.viewing-saving-outfit { height: auto; max-height: 100%; } -/* line 161, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 185, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar.viewing-saving-outfit #preview-closet { display: none; } -/* line 163, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 187, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar.viewing-saving-outfit #preview-saving-outfit { display: block; } -/* line 166, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 190, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet h2 { margin-bottom: 0; } -/* line 168, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 192, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet ul { text-align: center; } -/* line 170, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 194, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object { background: #eeffee; } -/* line 172, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 196, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object img { -moz-opacity: 0.5; -webkit-opacity: 0.5; -o-opacity: 0.5; -khtml-opacity: 0.5; } -/* line 174, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 198, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object.worn { background: transparent; } -/* line 176, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 200, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object.worn img { -moz-opacity: 1; -webkit-opacity: 1; -o-opacity: 1; -khtml-opacity: 1; } -/* line 178, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 202, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object.no-assets { background: #fbe3e4; color: #8a1f11; padding-bottom: 1.25em; } -/* line 182, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 206, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-closet .object.no-assets .no-assets-message { display: block; } -/* line 184, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 208, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .no-assets-message { background: #f3dbdc; bottom: 0; @@ -954,7 +954,7 @@ body.outfits-edit .no-assets-message { position: absolute; width: 100%; } -/* line 194, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 218, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #no-assets-full-message { -moz-border-radius: 5px; -webkit-border-radius: 5px; @@ -968,12 +968,12 @@ body.outfits-edit #no-assets-full-message { top: -9999px; width: 30em; } -/* line 205, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 229, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form { clear: both; text-align: left; } -/* line 208, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 232, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form h2 { display: -moz-inline-box; -moz-box-orient: vertical; @@ -983,7 +983,7 @@ body.outfits-edit #preview-search-form h2 { *vertical-align: auto; margin: 0 1em 0 0; } -/* line 211, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 235, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form input { display: -moz-inline-box; -moz-box-orient: vertical; @@ -992,7 +992,7 @@ body.outfits-edit #preview-search-form input { *display: inline; *vertical-align: auto; } -/* line 213, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 237, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-pagination { display: -moz-inline-box; -moz-box-orient: vertical; @@ -1002,53 +1002,53 @@ body.outfits-edit #preview-search-form-pagination { *vertical-align: auto; margin-left: 2em; } -/* line 216, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 240, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-pagination a, body.outfits-edit #preview-search-form-pagination span { margin: 0 0.25em; } -/* line 218, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 242, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-pagination .current { font-weight: bold; } -/* line 220, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 244, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-clear { display: none; font-size: 87.5%; margin-left: 2em; } -/* line 224, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 248, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-loading { display: none; font-size: 75%; font-style: italic; margin-left: 2em; } -/* line 230, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 254, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-no-results { display: none; } -/* line 232, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 256, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-search-form-help { font-size: 87.5%; margin-left: 2em; } -/* line 235, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 259, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .search-helper { font-family: inherit; } -/* line 237, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 261, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .possible-error { display: none; } -/* line 240, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 264, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #fullscreen-copyright { display: none; } -/* line 242, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 266, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen { height: 100%; } -/* line 245, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 269, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #container { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; @@ -1061,19 +1061,19 @@ body.outfits-edit.fullscreen #container { position: relative; width: 80%; } -/* line 253, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 277, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen h1 { display: none; } -/* line 255, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 279, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #short-url-response { position: static; } -/* line 257, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 281, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #preview { width: 100%; } -/* line 259, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 283, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #preview-sidebar { -moz-border-radius: 10px; -webkit-border-radius: 10px; @@ -1081,26 +1081,21 @@ body.outfits-edit.fullscreen #preview-sidebar { float: right; height: 100%; margin: 0; - position: relative; - width: auto; -} -/* line 267, ../../../app/stylesheets/outfits/_edit.sass */ -body.outfits-edit.fullscreen #preview-sidebar > div { - height: 100%; overflow: auto; + position: relative; width: 400px; } -/* line 271, ../../../app/stylesheets/outfits/_edit.sass */ -body.outfits-edit.fullscreen #preview-sidebar > div h2 { +/* line 293, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit.fullscreen #preview-sidebar .sidebar-view h2 { margin-bottom: 0.25em; margin-left: 24px; } -/* line 275, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 297, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #preview-sidebar.viewing-saving-outfit { height: auto; max-height: 100%; } -/* line 278, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 300, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #preview-search-form { bottom: 1.5em; left: 0; @@ -1109,7 +1104,7 @@ body.outfits-edit.fullscreen #preview-search-form { position: absolute; width: 100%; } -/* line 286, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 308, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #preview-search-form-help div { display: -moz-inline-box; -moz-box-orient: vertical; @@ -1119,27 +1114,27 @@ body.outfits-edit.fullscreen #preview-search-form-help div { *vertical-align: auto; width: 48%; } -/* line 289, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 311, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #footer { bottom: 0; left: 0; position: absolute; width: 100%; } -/* line 294, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 316, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #footer ul, body.outfits-edit.fullscreen #footer p, body.outfits-edit.fullscreen #footer li { display: inline; } -/* line 296, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 318, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.fullscreen #footer ul { margin-right: 2em; } -/* line 299, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 321, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object { padding: 6px; position: relative; } -/* line 302, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 324, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object ul { display: none; left: 0; @@ -1147,11 +1142,11 @@ body.outfits-edit .object ul { position: absolute; top: 0; } -/* line 308, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 330, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object ul li { margin-bottom: 0.25em; } -/* line 310, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 332, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object ul li a { /* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */ -moz-border-radius: 5px; @@ -1192,11 +1187,11 @@ body.outfits-edit .object ul li a:active { body.outfits-edit .object ul li a:hover { background-color: #999999; } -/* line 316, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 338, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object:hover ul, body.outfits-edit .object:hover .object-info { display: block; } -/* line 323, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 345, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .nc-icon { background: url('/images/nc.png?1285023784') no-repeat; height: 16px; @@ -1206,14 +1201,14 @@ body.outfits-edit .nc-icon { top: 64px; width: 16px; } -/* line 331, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 353, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .nc-icon:hover { -moz-opacity: 0.5; -webkit-opacity: 0.5; -o-opacity: 0.5; -khtml-opacity: 0.5; } -/* line 334, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 356, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object-info { -moz-border-radius: 12px; -webkit-border-radius: 12px; @@ -1230,37 +1225,37 @@ body.outfits-edit .object-info { top: 0; width: 16px; } -/* line 345, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 367, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object-info span { font-family: "Droid Serif", Georgia, "Times New Roman", Times, serif; font-weight: bold; position: relative; top: -2px; } -/* line 351, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 373, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .object-info:hover { -moz-opacity: 1; -webkit-opacity: 1; -o-opacity: 1; -khtml-opacity: 1; } -/* line 354, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 376, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits { display: none; text-align: left; } -/* line 357, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 379, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul { + margin-left: 24px; + margin-right: 24px; background: url('/images/loading.gif?1289657021') no-repeat center top; display: block; font-family: "Droid Sans", Helvetica, Arial, Verdana, sans-serif; list-style: none; margin-bottom: 1em; - margin-left: 24px; - margin-right: 24px; min-height: 16px; } -/* line 367, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 388, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li { padding: 0.25em 0; } @@ -1336,100 +1331,135 @@ body.outfits-edit #preview-outfits > ul > li .outfit-star { width: 16px; } /* line 67, ../../../app/stylesheets/outfits/_edit.sass */ -body.outfits-edit #preview-outfits > ul > li .outfit-star.loading { +body.outfits-edit #preview-outfits > ul > li.loading .outfit-star { background-image: url('/images/loading.gif?1289657021') !important; } /* line 69, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li h4 { cursor: pointer; - font-size: 115%; + display: inline; } /* line 72, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li h4:hover { text-decoration: underline; } /* line 74, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li h4, body.outfits-edit #preview-outfits > ul > li .outfit-rename-field { + font-size: 115%; +} +/* line 76, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li .outfit-rename-button, body.outfits-edit #preview-outfits > ul > li .outfit-rename-form { + display: none; +} +/* line 78, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li .outfit-rename-button { + -moz-opacity: 0.75; + -webkit-opacity: 0.75; + -o-opacity: 0.75; + -khtml-opacity: 0.75; + font-size: 75%; + margin-left: 1em; +} +/* line 82, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li .outfit-url { -moz-opacity: 0.5; -webkit-opacity: 0.5; -o-opacity: 0.5; -khtml-opacity: 0.5; background: transparent; - border-color: white; + border-width: 0; font-size: 75%; width: 284px; } -/* line 80, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 88, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li .outfit-url:hover { -moz-opacity: 1; -webkit-opacity: 1; -o-opacity: 1; -khtml-opacity: 1; - border-color: #cceecc; + border-width: 1px; } -/* line 83, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 91, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li .outfit-delete-confirmation { display: none; font-size: 75%; } -/* line 86, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 94, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li .outfit-delete-confirmation span { color: red; } -/* line 88, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 96, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li .outfit-delete-confirmation a { margin: 0 0.25em; } -/* line 90, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 98, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li.active { background: #eeffee; } -/* line 93, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 101, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li.confirming-deletion .outfit-delete { visibility: hidden; } -/* line 95, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 103, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li.confirming-deletion .outfit-url { display: none; } -/* line 97, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 105, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li.confirming-deletion .outfit-delete-confirmation { display: block; } -/* line 100, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 108, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li.renaming h4 { + display: none; +} +/* line 110, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li.renaming .outfit-rename-form { + display: inline; +} +/* line 113, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li.renaming:hover .outfit-rename-button { + display: none; +} +/* line 116, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul > li.starred .outfit-star { background-image: url('/images/star.png?1289657021'); } -/* line 369, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 119, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #preview-outfits > ul > li:hover .outfit-rename-button { + display: inline; +} +/* line 390, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-outfits > ul.loaded { background: transparent; } -/* line 372, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 393, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .preview-sidebar-nav { float: right; font-size: 85%; margin-right: 24px; margin-top: 1em; } -/* line 379, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 400, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-success, body.outfits-edit #save-error, body.outfits-edit #outfit-not-found { + margin-left: 24px; + margin-right: 24px; display: none; margin-top: 1em; text-align: center; } -/* line 384, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 407, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #save-success { background: #e6efc2; border: 1px solid #c6d880; color: #264409; } -/* line 387, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 410, ../../../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 390, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 413, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #userbar-message { -moz-opacity: 0.5; -webkit-opacity: 0.5; @@ -1437,9 +1467,11 @@ body.outfits-edit #userbar-message { -khtml-opacity: 0.5; display: none; } -/* line 394, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 417, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit { padding: 0.25em 0; + margin-left: 24px; + margin-right: 24px; display: none; } /* line 29, ../../../app/stylesheets/outfits/_edit.sass */ @@ -1514,97 +1546,130 @@ body.outfits-edit #new-outfit .outfit-star { width: 16px; } /* line 67, ../../../app/stylesheets/outfits/_edit.sass */ -body.outfits-edit #new-outfit .outfit-star.loading { +body.outfits-edit #new-outfit.loading .outfit-star { background-image: url('/images/loading.gif?1289657021') !important; } /* line 69, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4 { cursor: pointer; - font-size: 115%; + display: inline; } /* line 72, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4:hover { text-decoration: underline; } /* line 74, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit h4, body.outfits-edit #new-outfit .outfit-rename-field { + font-size: 115%; +} +/* line 76, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit .outfit-rename-button, body.outfits-edit #new-outfit .outfit-rename-form { + display: none; +} +/* line 78, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit .outfit-rename-button { + -moz-opacity: 0.75; + -webkit-opacity: 0.75; + -o-opacity: 0.75; + -khtml-opacity: 0.75; + font-size: 75%; + margin-left: 1em; +} +/* line 82, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-url { -moz-opacity: 0.5; -webkit-opacity: 0.5; -o-opacity: 0.5; -khtml-opacity: 0.5; background: transparent; - border-color: white; + border-width: 0; font-size: 75%; width: 284px; } -/* line 80, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 88, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-url:hover { -moz-opacity: 1; -webkit-opacity: 1; -o-opacity: 1; -khtml-opacity: 1; - border-color: #cceecc; + border-width: 1px; } -/* line 83, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 91, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-delete-confirmation { display: none; font-size: 75%; } -/* line 86, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 94, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-delete-confirmation span { color: red; } -/* line 88, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 96, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-delete-confirmation a { margin: 0 0.25em; } -/* line 90, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 98, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit.active { background: #eeffee; } -/* line 93, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 101, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit.confirming-deletion .outfit-delete { visibility: hidden; } -/* line 95, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 103, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit.confirming-deletion .outfit-url { display: none; } -/* line 97, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 105, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit.confirming-deletion .outfit-delete-confirmation { display: block; } -/* line 100, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 108, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit.renaming h4 { + display: none; +} +/* line 110, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit.renaming .outfit-rename-form { + display: inline; +} +/* line 113, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit.renaming:hover .outfit-rename-button { + display: none; +} +/* line 116, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit.starred .outfit-star { background-image: url('/images/star.png?1289657021'); } -/* line 397, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 119, ../../../app/stylesheets/outfits/_edit.sass */ +body.outfits-edit #new-outfit:hover .outfit-rename-button { + display: inline; +} +/* line 421, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4 { display: inline; } -/* line 399, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 423, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit h4:hover { text-decoration: none; } -/* line 401, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 425, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit .outfit-star { margin-top: 0.5em; } -/* line 404, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 428, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #new-outfit-name { font: inherit; line-height: 1; } -/* line 408, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 432, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-saving-outfit { display: none; padding-bottom: 1em; } -/* line 412, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 436, ../../../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 415, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 439, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit .control-overlay { height: 100%; left: 0; @@ -1613,27 +1678,27 @@ body.outfits-edit .control-overlay { width: 100%; z-index: 5; } -/* line 423, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 447, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit #preview-sidebar-nav-outfits, body.outfits-edit #save-outfit-signed-in { display: none; } -/* line 427, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 451, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #preview-sidebar-nav-outfits { display: block; } -/* line 429, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 453, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit { display: inline-block; } -/* line 432, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 456, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-signed-in #save-outfit-wrapper.active-outfit #save-outfit { display: none; } -/* line 434, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 458, ../../../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 438, ../../../app/stylesheets/outfits/_edit.sass */ +/* line 462, ../../../app/stylesheets/outfits/_edit.sass */ body.outfits-edit.user-not-signed-in #save-outfit-not-signed-in { display: inline-block; }