forked from OpenNeo/impress
closet lists, round one
This commit is contained in:
parent
b86ce67c02
commit
358840076c
26 changed files with 581 additions and 200 deletions
2
Gemfile
2
Gemfile
|
@ -35,6 +35,8 @@ gem "character-encodings", "~> 0.4.1", :platforms => :ruby_18
|
||||||
|
|
||||||
gem "nokogiri", "~> 1.5.0"
|
gem "nokogiri", "~> 1.5.0"
|
||||||
|
|
||||||
|
gem 'sanitize', '~> 2.0.3'
|
||||||
|
|
||||||
group :development_async do
|
group :development_async do
|
||||||
# async wrappers
|
# async wrappers
|
||||||
gem 'eventmachine', :git => 'git://github.com/eventmachine/eventmachine.git'
|
gem 'eventmachine', :git => 'git://github.com/eventmachine/eventmachine.git'
|
||||||
|
|
|
@ -165,9 +165,11 @@ GEM
|
||||||
ruby-hmac (0.4.0)
|
ruby-hmac (0.4.0)
|
||||||
rufus-scheduler (2.0.9)
|
rufus-scheduler (2.0.9)
|
||||||
tzinfo (>= 0.3.23)
|
tzinfo (>= 0.3.23)
|
||||||
|
sanitize (2.0.3)
|
||||||
|
nokogiri (< 1.6, >= 1.4.4)
|
||||||
sinatra (1.2.6)
|
sinatra (1.2.6)
|
||||||
rack (~> 1.1)
|
rack (~> 1.1)
|
||||||
tilt (>= 1.2.2, < 2.0)
|
tilt (< 2.0, >= 1.2.2)
|
||||||
swf_converter (0.0.3)
|
swf_converter (0.0.3)
|
||||||
thor (0.14.6)
|
thor (0.14.6)
|
||||||
tilt (1.3.2)
|
tilt (1.3.2)
|
||||||
|
@ -215,6 +217,7 @@ DEPENDENCIES
|
||||||
resque-scheduler (~> 2.0.0.d)
|
resque-scheduler (~> 2.0.0.d)
|
||||||
right_aws (~> 2.1.0)
|
right_aws (~> 2.1.0)
|
||||||
rspec-rails (~> 2.0.0.beta.22)
|
rspec-rails (~> 2.0.0.beta.22)
|
||||||
|
sanitize (~> 2.0.3)
|
||||||
swf_converter (~> 0.0.3)
|
swf_converter (~> 0.0.3)
|
||||||
whenever (~> 0.6.2)
|
whenever (~> 0.6.2)
|
||||||
will_paginate (~> 3.0.pre2)
|
will_paginate (~> 3.0.pre2)
|
||||||
|
|
|
@ -14,8 +14,11 @@ class ClosetHangersController < ApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@user = User.find params[:user_id]
|
@user = User.find params[:user_id]
|
||||||
@closet_hangers_by_owned = @user.closet_hangers.owned_before_wanted.
|
@closet_lists_by_owned = @user.closet_lists.alphabetical.
|
||||||
alphabetical_by_item_name.includes(:item).group_by(&:owned)
|
includes(:hangers => :item).group_by(&:hangers_owned)
|
||||||
|
@unlisted_closet_hangers_by_owned = @user.closet_hangers.unlisted.
|
||||||
|
owned_before_wanted.alphabetical_by_item_name.includes(:item).
|
||||||
|
group_by(&:owned)
|
||||||
@public_perspective = params.has_key?(:public) || !user_is?(@user)
|
@public_perspective = params.has_key?(:public) || !user_is?(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -37,7 +40,9 @@ class ClosetHangersController < ApplicationController
|
||||||
if @closet_hanger.save
|
if @closet_hanger.save
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html {
|
format.html {
|
||||||
flash[:success] = "Success! You #{@closet_hanger.verb(:you)} #{@closet_hanger.quantity} #{@item.name.pluralize}."
|
message = "Success! You #{@closet_hanger.verb(:you)} #{@closet_hanger.quantity} #{@item.name.pluralize}"
|
||||||
|
message << " in the \"#{@closet_hanger.list.name}\" list" if @closet_hanger.list
|
||||||
|
flash[:success] = "#{message}."
|
||||||
redirect_back!(@item)
|
redirect_back!(@item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,49 @@
|
||||||
class ClosetListsController < ApplicationController
|
class ClosetListsController < ApplicationController
|
||||||
before_filter :authorize_user!
|
before_filter :authorize_user!
|
||||||
|
before_filter :find_closet_list, :only => [:edit, :update, :destroy]
|
||||||
def new
|
|
||||||
@closet_list = current_user.closet_lists.build
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@closet_list = current_user.closet_lists.build params[:closet_list]
|
@closet_list = current_user.closet_lists.build params[:closet_list]
|
||||||
if @closet_list.save
|
if @closet_list.save
|
||||||
flash[:success] = "Successfully saved \"#{@closet_list.name}\""
|
save_successful!
|
||||||
redirect_to user_closet_hangers_path(current_user)
|
|
||||||
else
|
else
|
||||||
flash.now[:alert] = "We can't save this list because: #{@closet_list.errors.full_messages.to_sentence}"
|
save_failed!
|
||||||
render :action => :new
|
render :action => :new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
@closet_list.destroy
|
||||||
|
flash[:success] = "Successfully deleted \"#{@closet_list.name}\""
|
||||||
|
redirect_to user_closet_hangers_path(current_user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@closet_list = current_user.closet_lists.build params[:closet_list]
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
if @closet_list.update_attributes(params[:closet_list])
|
||||||
|
save_successful!
|
||||||
|
else
|
||||||
|
save_failed!
|
||||||
|
render :action => :edit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def find_closet_list
|
||||||
|
@closet_list = current_user.closet_lists.find params[:id]
|
||||||
|
end
|
||||||
|
|
||||||
|
def save_failed!
|
||||||
|
flash.now[:alert] = "We can't save this list because: #{@closet_list.errors.full_messages.to_sentence}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def save_successful!
|
||||||
|
flash[:success] = "Successfully saved \"#{@closet_list.name}\""
|
||||||
|
redirect_to user_closet_hangers_path(current_user)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,11 @@ module ApplicationHelper
|
||||||
hidden_field_tag :return_to, request.fullpath
|
hidden_field_tag :return_to, request.fullpath
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def secondary_nav(&block)
|
||||||
|
content_for :before_flashes,
|
||||||
|
content_tag(:nav, :id => 'secondary-nav', &block)
|
||||||
|
end
|
||||||
|
|
||||||
def show_title_header?
|
def show_title_header?
|
||||||
params[:controller] != 'items'
|
params[:controller] != 'items'
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,14 +13,57 @@ module ClosetHangersHelper
|
||||||
public_perspective? ? @user.name : :you
|
public_perspective? ? @user.name : :you
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Do we have either unlisted hangers that are owned/wanted, or non-empty
|
||||||
|
# owned/wanted lists?
|
||||||
|
def has_hangers?(owned)
|
||||||
|
# If we have unlisted hangers of this type, pass.
|
||||||
|
return true if @unlisted_closet_hangers_by_owned.has_key?(owned)
|
||||||
|
|
||||||
|
# Additionally, if we have no lists of this type, fail.
|
||||||
|
lists = @closet_lists_by_owned[owned]
|
||||||
|
return false unless lists
|
||||||
|
|
||||||
|
# If any of those lists are non-empty, pass.
|
||||||
|
lists.each do |list|
|
||||||
|
return true unless list.hangers.empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
# Otherwise, all of the lists are empty. Fail.
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_lists?(owned)
|
||||||
|
@closet_lists_by_owned.has_key?(owned)
|
||||||
|
end
|
||||||
|
|
||||||
|
def link_to_add_closet_list(content, options)
|
||||||
|
owned = options.delete(:owned)
|
||||||
|
path = new_user_closet_list_path current_user,
|
||||||
|
:closet_list => {:hangers_owned => owned}
|
||||||
|
link_to(content, path, options)
|
||||||
|
end
|
||||||
|
|
||||||
def public_perspective?
|
def public_perspective?
|
||||||
@public_perspective
|
@public_perspective
|
||||||
end
|
end
|
||||||
|
|
||||||
def render_closet_hangers(owned)
|
def render_closet_lists(lists)
|
||||||
render :partial => 'closet_hanger',
|
if lists
|
||||||
:collection => @closet_hangers_by_owned[owned],
|
render :partial => 'closet_lists/closet_list', :collection => lists,
|
||||||
:locals => {:show_controls => !public_perspective?}
|
:locals => {:show_controls => !public_perspective?}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_unlisted_closet_hangers(owned)
|
||||||
|
if @unlisted_closet_hangers_by_owned[owned]
|
||||||
|
content = render :partial => 'closet_hanger',
|
||||||
|
:collection => @unlisted_closet_hangers_by_owned[owned],
|
||||||
|
:locals => {:show_controls => !public_perspective?}
|
||||||
|
if has_lists?(owned)
|
||||||
|
content = content_tag(:header, content_tag(:h4, '(Not in a list)')) + content
|
||||||
|
end
|
||||||
|
content_tag(:div, content, :class => 'closet-list unlisted')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,30 @@
|
||||||
module ClosetListsHelper
|
module ClosetListsHelper
|
||||||
|
def closet_list_delete_confirmation(closet_list)
|
||||||
|
"Are you sure you want to delete \"#{closet_list.name}\"?".tap do |msg|
|
||||||
|
unless closet_list.hangers.empty?
|
||||||
|
msg << " Even if you do, we'll remember that you " +
|
||||||
|
ClosetHanger.verb(closet_list.hangers_owned, :you) +
|
||||||
|
" these items."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def closet_list_description_format(list)
|
||||||
|
md = RDiscount.new(list.description)
|
||||||
|
Sanitize.clean(md.to_html, Sanitize::Config::BASIC).html_safe
|
||||||
|
end
|
||||||
|
|
||||||
def hangers_owned_options
|
def hangers_owned_options
|
||||||
@hangers_owned_options ||= [true, false].map do |owned|
|
@hangers_owned_options ||= [true, false].map do |owned|
|
||||||
verb = ClosetHanger.verb(:i, owned)
|
verb = ClosetHanger.verb(:i, owned)
|
||||||
["items I #{verb}", owned]
|
["items I #{verb}", owned]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def render_sorted_hangers(list, show_controls)
|
||||||
|
render :partial => 'closet_hanger',
|
||||||
|
:collection => list.hangers.sort { |x,y| x.item.name <=> y.item.name },
|
||||||
|
:locals => {:show_controls => show_controls}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ class ClosetHanger < ActiveRecord::Base
|
||||||
belongs_to :list, :class_name => 'ClosetList'
|
belongs_to :list, :class_name => 'ClosetList'
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
attr_accessible :owned, :quantity
|
attr_accessible :list_id, :owned, :quantity
|
||||||
|
|
||||||
validates :item_id, :uniqueness => {:scope => [:user_id, :owned]}
|
validates :item_id, :uniqueness => {:scope => [:user_id, :owned]}
|
||||||
validates :quantity, :numericality => {:greater_than => 0}
|
validates :quantity, :numericality => {:greater_than => 0}
|
||||||
|
@ -11,11 +11,13 @@ class ClosetHanger < ActiveRecord::Base
|
||||||
|
|
||||||
scope :alphabetical_by_item_name, joins(:item).order(Item.arel_table[:name])
|
scope :alphabetical_by_item_name, joins(:item).order(Item.arel_table[:name])
|
||||||
scope :owned_before_wanted, order(arel_table[:owned].desc)
|
scope :owned_before_wanted, order(arel_table[:owned].desc)
|
||||||
|
scope :unlisted, where(:list_id => nil)
|
||||||
|
|
||||||
before_validation :set_owned_by_list
|
before_validation :set_owned_by_list
|
||||||
|
|
||||||
def set_owned_by_list
|
def set_owned_by_list
|
||||||
self.owned = list.hangers_owned if list?
|
self.owned = list.hangers_owned if list_id?
|
||||||
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def verb(subject=:someone)
|
def verb(subject=:someone)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
class ClosetList < ActiveRecord::Base
|
class ClosetList < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
has_many :hangers, :class_name => 'ClosetHanger'
|
has_many :hangers, :class_name => 'ClosetHanger', :foreign_key => 'list_id',
|
||||||
|
:dependent => :nullify
|
||||||
|
|
||||||
attr_accessible :description, :hangers_owned, :name
|
attr_accessible :description, :hangers_owned, :name
|
||||||
|
|
||||||
|
@ -8,6 +9,8 @@ class ClosetList < ActiveRecord::Base
|
||||||
validates :user, :presence => true
|
validates :user, :presence => true
|
||||||
validates :hangers_owned, :inclusion => {:in => [true, false], :message => "can't be blank"}
|
validates :hangers_owned, :inclusion => {:in => [true, false], :message => "can't be blank"}
|
||||||
|
|
||||||
|
scope :alphabetical, order(:name)
|
||||||
|
|
||||||
after_save :sync_hangers_owned!
|
after_save :sync_hangers_owned!
|
||||||
|
|
||||||
def sync_hangers_owned!
|
def sync_hangers_owned!
|
||||||
|
|
|
@ -93,9 +93,6 @@ a.button, input[type=submit], button
|
||||||
&.loud
|
&.loud
|
||||||
+loud-awesome-button
|
+loud-awesome-button
|
||||||
|
|
||||||
a.button
|
|
||||||
+arrowed-awesome-button
|
|
||||||
|
|
||||||
ul.buttons
|
ul.buttons
|
||||||
margin-bottom: 1em
|
margin-bottom: 1em
|
||||||
li
|
li
|
||||||
|
|
|
@ -1,21 +1,16 @@
|
||||||
@import "partials/context_button"
|
@import "partials/context_button"
|
||||||
@import "partials/icon"
|
@import "partials/icon"
|
||||||
|
@import "partials/secondary_nav"
|
||||||
|
|
||||||
body.closet_hangers-index
|
body.closet_hangers-index
|
||||||
|
+secondary-nav
|
||||||
|
|
||||||
#title
|
#title
|
||||||
float: left
|
|
||||||
margin-bottom: 0
|
margin-bottom: 0
|
||||||
|
|
||||||
.flash
|
|
||||||
clear: both
|
|
||||||
|
|
||||||
#import-link, #closet-hangers-items-search
|
|
||||||
margin-top: .75em
|
|
||||||
|
|
||||||
#import-link
|
#import-link
|
||||||
+awesome-button
|
+awesome-button
|
||||||
+loud-awesome-button-color
|
+loud-awesome-button-color
|
||||||
margin-left: 2em
|
|
||||||
|
|
||||||
#closet-hangers-items-search
|
#closet-hangers-items-search
|
||||||
float: right
|
float: right
|
||||||
|
@ -101,35 +96,87 @@ body.closet_hangers-index
|
||||||
form
|
form
|
||||||
display: none
|
display: none
|
||||||
|
|
||||||
header
|
.quantity-1
|
||||||
border-bottom: 1px solid $soft-border-color
|
display: none
|
||||||
display: block
|
|
||||||
margin-bottom: .25em
|
|
||||||
padding: .25em 0
|
|
||||||
position: relative
|
|
||||||
|
|
||||||
h3
|
|
||||||
font-size: 250%
|
|
||||||
margin: 0
|
|
||||||
|
|
||||||
span.show, span.hide
|
|
||||||
color: $soft-text-color
|
|
||||||
display: none
|
|
||||||
font-size: 85%
|
|
||||||
position: absolute
|
|
||||||
right: 1em
|
|
||||||
bottom: 0
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
span.show, span.hide
|
|
||||||
color: inherit
|
|
||||||
text-decoration: underline
|
|
||||||
|
|
||||||
.closet-hangers-group
|
.closet-hangers-group
|
||||||
border-top: 1px solid $module-border-color
|
border-top: 1px solid $module-border-color
|
||||||
margin-bottom: 2em
|
margin-bottom: 2em
|
||||||
padding-bottom: 1em
|
padding-bottom: 1em
|
||||||
|
|
||||||
|
> header
|
||||||
|
border-bottom: 1px solid $soft-border-color
|
||||||
|
display: block
|
||||||
|
margin-bottom: .25em
|
||||||
|
padding: .25em 0
|
||||||
|
position: relative
|
||||||
|
|
||||||
|
h3
|
||||||
|
font-size: 250%
|
||||||
|
margin: 0
|
||||||
|
|
||||||
|
.add-closet-list
|
||||||
|
+awesome-button
|
||||||
|
bottom: 50%
|
||||||
|
margin-bottom: -1em
|
||||||
|
position: absolute
|
||||||
|
right: 1em
|
||||||
|
|
||||||
|
&:active
|
||||||
|
margin-bottom: -1.1em
|
||||||
|
top: auto
|
||||||
|
|
||||||
|
span.show, span.hide
|
||||||
|
color: $soft-text-color
|
||||||
|
display: none
|
||||||
|
font-size: 85%
|
||||||
|
left: 1em
|
||||||
|
position: absolute
|
||||||
|
top: 1em
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
color: inherit
|
||||||
|
text-decoration: underline
|
||||||
|
|
||||||
|
.closet-list
|
||||||
|
border-bottom: 1px solid $soft-border-color
|
||||||
|
padding: .5em 0
|
||||||
|
|
||||||
|
header
|
||||||
|
display: block
|
||||||
|
position: relative
|
||||||
|
|
||||||
|
h4
|
||||||
|
+header-text
|
||||||
|
font-size: 150%
|
||||||
|
margin: 0 auto
|
||||||
|
|
||||||
|
.empty-list
|
||||||
|
font-style: italic
|
||||||
|
|
||||||
|
.closet-list-controls
|
||||||
|
display: none
|
||||||
|
position: absolute
|
||||||
|
right: 1em
|
||||||
|
top: 0
|
||||||
|
|
||||||
|
a, input[type=submit]
|
||||||
|
+context-button
|
||||||
|
|
||||||
|
form
|
||||||
|
display: inline
|
||||||
|
|
||||||
|
&.unlisted
|
||||||
|
h4
|
||||||
|
font-style: italic
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
.closet-list-controls
|
||||||
|
display: block
|
||||||
|
|
||||||
|
&:last-child
|
||||||
|
border-bottom: 0
|
||||||
|
|
||||||
&.current-user
|
&.current-user
|
||||||
#closet-hangers
|
#closet-hangers
|
||||||
.object:hover
|
.object:hover
|
||||||
|
@ -163,6 +210,8 @@ body.closet_hangers-index
|
||||||
&.js
|
&.js
|
||||||
#closet-hangers
|
#closet-hangers
|
||||||
.object:hover .quantity
|
.object:hover .quantity
|
||||||
|
display: block
|
||||||
|
|
||||||
input[type=number]
|
input[type=number]
|
||||||
width: 2.5em
|
width: 2.5em
|
||||||
|
|
||||||
|
@ -173,8 +222,11 @@ body.closet_hangers-index
|
||||||
background: $module-bg-color
|
background: $module-bg-color
|
||||||
outline: 1px solid $module-border-color
|
outline: 1px solid $module-border-color
|
||||||
|
|
||||||
.quantity span:after
|
.quantity
|
||||||
content: "…"
|
display: block
|
||||||
|
|
||||||
|
span:after
|
||||||
|
content: "…"
|
||||||
|
|
||||||
#closet-hangers-contact
|
#closet-hangers-contact
|
||||||
form
|
form
|
||||||
|
@ -192,7 +244,8 @@ body.closet_hangers-index
|
||||||
|
|
||||||
.closet-hangers-group
|
.closet-hangers-group
|
||||||
header
|
header
|
||||||
cursor: pointer
|
.show, .hide
|
||||||
|
cursor: pointer
|
||||||
|
|
||||||
.hide
|
.hide
|
||||||
display: block
|
display: block
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
body.closet_lists-new, body.closet_lists-create
|
body.closet_lists-new, body.closet_lists-create, body.closet_lists-edit, body.closet_lists-update
|
||||||
|
+secondary-nav
|
||||||
|
|
||||||
form ul.fields
|
form ul.fields
|
||||||
list-style: none
|
list-style: none
|
||||||
|
|
|
@ -68,7 +68,7 @@ body.items-show
|
||||||
float: right
|
float: right
|
||||||
font-size: 85%
|
font-size: 85%
|
||||||
padding: 1em
|
padding: 1em
|
||||||
width: 18em
|
width: 21em
|
||||||
|
|
||||||
label, header
|
label, header
|
||||||
display: block
|
display: block
|
||||||
|
@ -80,6 +80,9 @@ body.items-show
|
||||||
form
|
form
|
||||||
padding: .5em 0
|
padding: .5em 0
|
||||||
|
|
||||||
|
select
|
||||||
|
width: 9em
|
||||||
|
|
||||||
input[type=number]
|
input[type=number]
|
||||||
width: 4em
|
width: 4em
|
||||||
|
|
||||||
|
|
12
app/stylesheets/partials/_secondary_nav.sass
Normal file
12
app/stylesheets/partials/_secondary_nav.sass
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
=secondary-nav
|
||||||
|
#title
|
||||||
|
float: left
|
||||||
|
margin-right: .5em
|
||||||
|
|
||||||
|
.flash
|
||||||
|
clear: both
|
||||||
|
|
||||||
|
#secondary-nav
|
||||||
|
display: block
|
||||||
|
margin-top: .75em
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- show_controls ||= false # we could do user check here, but may as well do it once
|
- show_controls ||= false # we could do user check here, but may as well do it once
|
||||||
.object
|
.object
|
||||||
= render :partial => 'items/item_link', :locals => {:item => closet_hanger.item}
|
= render :partial => 'items/item_link', :locals => {:item => closet_hanger.item}
|
||||||
.quantity
|
.quantity{:class => "quantity-#{closet_hanger.quantity}"}
|
||||||
%span= closet_hanger.quantity
|
%span= closet_hanger.quantity
|
||||||
- if show_controls
|
- if show_controls
|
||||||
= form_for closet_hanger, :url => user_item_closet_hanger_path(current_user, closet_hanger.item), :html => {:class => 'closet-hanger-update'} do |f|
|
= form_for closet_hanger, :url => user_item_closet_hanger_path(current_user, closet_hanger.item), :html => {:class => 'closet-hanger-update'} do |f|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- unless public_perspective?
|
- unless public_perspective?
|
||||||
- title 'Your Items'
|
- title 'Your Items'
|
||||||
- add_body_class 'current-user'
|
- add_body_class 'current-user'
|
||||||
- content_for :before_flashes do
|
- secondary_nav do
|
||||||
= link_to "Import closet from Neopets", new_closet_page_path, :id => 'import-link'
|
= link_to "Import closet from Neopets", new_closet_page_path, :id => 'import-link'
|
||||||
= form_tag items_path, :method => :get, :id => 'closet-hangers-items-search', 'data-current-user-id' => current_user.id do
|
= form_tag items_path, :method => :get, :id => 'closet-hangers-items-search', 'data-current-user-id' => current_user.id do
|
||||||
= text_field_tag :q, nil, :placeholder => "Find items to add"
|
= text_field_tag :q, nil, :placeholder => "Find items to add"
|
||||||
|
@ -31,19 +31,18 @@
|
||||||
= f.submit "Save"
|
= f.submit "Save"
|
||||||
%span#cancel-contact-link cancel
|
%span#cancel-contact-link cancel
|
||||||
|
|
||||||
- unless @closet_hangers_by_owned.empty?
|
%p
|
||||||
%p
|
These are the items you are tracking on Dress to Impress. Hover over an
|
||||||
These are the items you are tracking on Dress to Impress. Hover over an
|
item to remove it from the list or to change the quantity.
|
||||||
item to remove it from the list or to change the quantity.
|
|
||||||
|
|
||||||
%p
|
%p
|
||||||
You can share
|
You can share
|
||||||
= link_to "this page", request.fullpath
|
= link_to "this page", request.fullpath
|
||||||
with the world, and they'll be able to see what items you own and want.
|
with the world, and they'll be able to see what items you own and want.
|
||||||
It's also a good idea to
|
It's also a good idea to
|
||||||
%span.edit-contact-link add your Neopets username
|
%span.edit-contact-link add your Neopets username
|
||||||
so that when other users see your items they will know how to contact you for
|
so that when other users see your items they will know how to contact you for
|
||||||
trades.
|
trades.
|
||||||
|
|
||||||
#closet-hangers{:class => public_perspective? ? nil : 'current-user'}
|
#closet-hangers{:class => public_perspective? ? nil : 'current-user'}
|
||||||
- [true, false].each do |owned|
|
- [true, false].each do |owned|
|
||||||
|
@ -53,14 +52,17 @@
|
||||||
Items
|
Items
|
||||||
= closet_hanger_subject
|
= closet_hanger_subject
|
||||||
%span.verb= closet_hanger_verb(owned)
|
%span.verb= closet_hanger_verb(owned)
|
||||||
%span.show click to show
|
%span.toggle.show show
|
||||||
%span.hide click to hide
|
%span.toggle.hide hide
|
||||||
|
= link_to_add_closet_list 'Add new list', :owned => owned, :class => 'add-closet-list'
|
||||||
.closet-hangers-group-content
|
.closet-hangers-group-content
|
||||||
|
= render_closet_lists(@closet_lists_by_owned[owned])
|
||||||
|
= render_unlisted_closet_hangers(owned)
|
||||||
- if public_perspective?
|
- if public_perspective?
|
||||||
- unless @closet_hangers_by_owned[owned]
|
- unless has_hangers?(owned)
|
||||||
%p #{@user.name} doesn't seem to #{closet_hanger_verb(owned, false)} anything.
|
%p #{@user.name} doesn't seem to #{closet_hanger_verb(owned, false)} anything.
|
||||||
- else
|
- else
|
||||||
- unless @closet_hangers_by_owned[owned]
|
- unless has_hangers?(owned)
|
||||||
%p
|
%p
|
||||||
You haven't tracked any items you #{closet_hanger_verb(owned)} on
|
You haven't tracked any items you #{closet_hanger_verb(owned)} on
|
||||||
Dress to Impress. As you browse the site and create outfits, we'll
|
Dress to Impress. As you browse the site and create outfits, we'll
|
||||||
|
@ -78,7 +80,6 @@
|
||||||
= link_to "import your Neopets closet in a few quick steps", new_closet_page_path
|
= link_to "import your Neopets closet in a few quick steps", new_closet_page_path
|
||||||
so why not?
|
so why not?
|
||||||
%p Have fun!
|
%p Have fun!
|
||||||
= render_closet_hangers(owned)
|
|
||||||
|
|
||||||
- content_for :stylesheets do
|
- content_for :stylesheets do
|
||||||
= stylesheet_link_tag 'south-street/jquery-ui'
|
= stylesheet_link_tag 'south-street/jquery-ui'
|
||||||
|
|
16
app/views/closet_lists/_closet_list.html.haml
Normal file
16
app/views/closet_lists/_closet_list.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
.closet-list
|
||||||
|
%header
|
||||||
|
- if show_controls
|
||||||
|
.closet-list-controls
|
||||||
|
= link_to 'Edit', edit_user_closet_list_path(closet_list.user, closet_list)
|
||||||
|
= form_tag user_closet_list_path(closet_list.user, closet_list), :method => 'delete' do
|
||||||
|
= submit_tag 'Delete', :confirm => closet_list_delete_confirmation(closet_list)
|
||||||
|
%h4= closet_list.name
|
||||||
|
|
||||||
|
- if closet_list.description?
|
||||||
|
= closet_list_description_format closet_list
|
||||||
|
- unless closet_list.hangers.empty?
|
||||||
|
= render_sorted_hangers(closet_list, show_controls)
|
||||||
|
- else
|
||||||
|
%span.empty-list This list is empty.
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
- secondary_nav do
|
||||||
|
= link_to 'Back to Your Items', user_closet_hangers_path(current_user), :class => 'button'
|
||||||
|
|
||||||
= form_for [@closet_list.user, @closet_list] do |f|
|
= form_for [@closet_list.user, @closet_list] do |f|
|
||||||
%ul.fields
|
%ul.fields
|
||||||
%li
|
%li
|
||||||
|
@ -13,5 +16,13 @@
|
||||||
Why are these items in a list? What are your terms for trading?
|
Why are these items in a list? What are your terms for trading?
|
||||||
Or you can leave this blank.
|
Or you can leave this blank.
|
||||||
= f.text_area :description
|
= f.text_area :description
|
||||||
|
%span.hint
|
||||||
|
We
|
||||||
|
= surround '_' do
|
||||||
|
%em support
|
||||||
|
= surround '**' do
|
||||||
|
%strong Markdown
|
||||||
|
and
|
||||||
|
some HTML.
|
||||||
= f.submit 'Save list'
|
= f.submit 'Save list'
|
||||||
|
|
||||||
|
|
3
app/views/closet_lists/edit.html.haml
Normal file
3
app/views/closet_lists/edit.html.haml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- title "Editing list \"#{@closet_list.name}\""
|
||||||
|
= render 'form'
|
||||||
|
|
|
@ -26,6 +26,9 @@
|
||||||
= f.hidden_field :owned
|
= f.hidden_field :owned
|
||||||
= f.label :quantity, "How many of these do you #{hanger.verb(:you)}?"
|
= f.label :quantity, "How many of these do you #{hanger.verb(:you)}?"
|
||||||
= f.number_field :quantity, :min => 0, :required => true
|
= f.number_field :quantity, :min => 0, :required => true
|
||||||
|
- lists = current_user.closet_lists.where(:hangers_owned => hanger.owned).all
|
||||||
|
- unless lists.empty?
|
||||||
|
= f.collection_select :list_id, lists, :id, :name, :include_blank => 'Not in a list'
|
||||||
= f.submit "Save"
|
= f.submit "Save"
|
||||||
%p= @item.description
|
%p= @item.description
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ OpenneoImpressItems::Application.routes.draw do |map|
|
||||||
resources :users, :path => 'user', :only => [:update] do
|
resources :users, :path => 'user', :only => [:update] do
|
||||||
resources :contributions, :only => [:index]
|
resources :contributions, :only => [:index]
|
||||||
resources :closet_hangers, :only => [:index], :path => 'closet'
|
resources :closet_hangers, :only => [:index], :path => 'closet'
|
||||||
resources :closet_lists, :only => [:new, :create], :path => 'closet/lists'
|
resources :closet_lists, :only => [:new, :create, :edit, :update, :destroy], :path => 'closet/lists'
|
||||||
|
|
||||||
resources :items, :only => [] do
|
resources :items, :only => [] do
|
||||||
resource :closet_hanger, :only => [:create, :update, :destroy]
|
resource :closet_hanger, :only => [:create, :update, :destroy]
|
||||||
|
|
|
@ -9,13 +9,13 @@ class CreateClosetLists < ActiveRecord::Migration
|
||||||
t.timestamps
|
t.timestamps
|
||||||
end
|
end
|
||||||
|
|
||||||
add_column :closet_hangers, :closet_list_id, :integer
|
add_column :closet_hangers, :list_id, :integer
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.down
|
def self.down
|
||||||
drop_table :closet_lists
|
drop_table :closet_lists
|
||||||
|
|
||||||
remove_column :closet_hangers, :closet_list_id
|
remove_column :closet_hangers, :list_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@ ActiveRecord::Schema.define(:version => 20110726231143) do
|
||||||
t.integer "quantity"
|
t.integer "quantity"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.boolean "owned", :default => true, :null => false
|
t.boolean "owned", :default => true, :null => false
|
||||||
t.integer "closet_list_id"
|
t.integer "list_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "closet_lists", :force => true do |t|
|
create_table "closet_lists", :force => true do |t|
|
||||||
|
|
|
@ -13,8 +13,10 @@
|
||||||
label: el.find('span.verb').text(),
|
label: el.find('span.verb').text(),
|
||||||
owned: (el.attr('data-owned') == 'true')
|
owned: (el.attr('data-owned') == 'true')
|
||||||
};
|
};
|
||||||
}).find('header').click(function () {
|
});
|
||||||
$(this).parent().toggleClass('hidden');
|
|
||||||
|
$('div.closet-hangers-group span.toggle').live('click', function () {
|
||||||
|
$(this).closest('.closet-hangers-group').toggleClass('hidden');
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -78,7 +80,9 @@
|
||||||
var input = form.children("input[type=number]");
|
var input = form.children("input[type=number]");
|
||||||
if(input.hasChanged()) {
|
if(input.hasChanged()) {
|
||||||
var objectWrapper = form.closest(".object").addClass("loading");
|
var objectWrapper = form.closest(".object").addClass("loading");
|
||||||
var span = objectWrapper.find("span").text(input.val());
|
var newQuantity = input.val();
|
||||||
|
var span = objectWrapper.find("span").text(newQuantity);
|
||||||
|
span.parent().attr('class', 'quantity quantity-' + newQuantity);
|
||||||
var data = form.serialize(); // get data before disabling inputs
|
var data = form.serialize(); // get data before disabling inputs
|
||||||
objectWrapper.disableForms();
|
objectWrapper.disableForms();
|
||||||
form.data('loading', true);
|
form.data('loading', true);
|
||||||
|
@ -284,5 +288,15 @@
|
||||||
});
|
});
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Hanger list controls
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$('input[type=submit][data-confirm]').live('click', function (e) {
|
||||||
|
if(!confirm(this.getAttribute('data-confirm'))) e.preventDefault();
|
||||||
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
|
@ -157,26 +157,21 @@ a.button.loud:hover, input[type=submit].loud:hover, button.loud:hover {
|
||||||
background-color: #ee4b00;
|
background-color: #ee4b00;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 87, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
/* line 96, ../../../app/stylesheets/_layout.sass */
|
||||||
a.button:after {
|
|
||||||
content: " >>";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* line 99, ../../../app/stylesheets/_layout.sass */
|
|
||||||
ul.buttons {
|
ul.buttons {
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
}
|
}
|
||||||
/* line 101, ../../../app/stylesheets/_layout.sass */
|
/* line 98, ../../../app/stylesheets/_layout.sass */
|
||||||
ul.buttons li {
|
ul.buttons li {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0 0.5em;
|
margin: 0 0.5em;
|
||||||
}
|
}
|
||||||
/* line 104, ../../../app/stylesheets/_layout.sass */
|
/* line 101, ../../../app/stylesheets/_layout.sass */
|
||||||
ul.buttons li, ul.buttons li form {
|
ul.buttons li, ul.buttons li form {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 107, ../../../app/stylesheets/_layout.sass */
|
/* line 104, ../../../app/stylesheets/_layout.sass */
|
||||||
#footer {
|
#footer {
|
||||||
clear: both;
|
clear: both;
|
||||||
font-size: 75%;
|
font-size: 75%;
|
||||||
|
@ -184,65 +179,65 @@ ul.buttons li, ul.buttons li form {
|
||||||
padding-top: 2em;
|
padding-top: 2em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
/* line 113, ../../../app/stylesheets/_layout.sass */
|
/* line 110, ../../../app/stylesheets/_layout.sass */
|
||||||
#footer ul, #footer div {
|
#footer ul, #footer div {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin: 0 1em;
|
margin: 0 1em;
|
||||||
}
|
}
|
||||||
/* line 116, ../../../app/stylesheets/_layout.sass */
|
/* line 113, ../../../app/stylesheets/_layout.sass */
|
||||||
#footer li, #footer div ul {
|
#footer li, #footer div ul {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin: 0 0.5em;
|
margin: 0 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 120, ../../../app/stylesheets/_layout.sass */
|
/* line 117, ../../../app/stylesheets/_layout.sass */
|
||||||
.success, .alert, .warning {
|
.success, .alert, .warning {
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
padding: 0.25em 0.5em;
|
padding: 0.25em 0.5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 125, ../../../app/stylesheets/_layout.sass */
|
/* line 122, ../../../app/stylesheets/_layout.sass */
|
||||||
.success {
|
.success {
|
||||||
background: #e6efc2;
|
background: #e6efc2;
|
||||||
border: 1px solid #c6d880;
|
border: 1px solid #c6d880;
|
||||||
color: #264409;
|
color: #264409;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 128, ../../../app/stylesheets/_layout.sass */
|
/* line 125, ../../../app/stylesheets/_layout.sass */
|
||||||
.alert {
|
.alert {
|
||||||
background: #fbe3e4;
|
background: #fbe3e4;
|
||||||
border: 1px solid #fbc2c4;
|
border: 1px solid #fbc2c4;
|
||||||
color: #8a1f11;
|
color: #8a1f11;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 131, ../../../app/stylesheets/_layout.sass */
|
/* line 128, ../../../app/stylesheets/_layout.sass */
|
||||||
.warning {
|
.warning {
|
||||||
background: #fff6bf;
|
background: #fff6bf;
|
||||||
border: 1px solid #ffd324;
|
border: 1px solid #ffd324;
|
||||||
color: #514721;
|
color: #514721;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 134, ../../../app/stylesheets/_layout.sass */
|
/* line 131, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar {
|
#userbar {
|
||||||
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
/* line 139, ../../../app/stylesheets/_layout.sass */
|
/* line 136, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar > * {
|
#userbar > * {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin: 0 0.25em;
|
margin: 0 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 143, ../../../app/stylesheets/_layout.sass */
|
/* line 140, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-image-mode {
|
#userbar-image-mode {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 147, ../../../app/stylesheets/_layout.sass */
|
/* line 144, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-image-mode img {
|
#userbar-image-mode img {
|
||||||
bottom: -2px;
|
bottom: -2px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
|
@ -250,25 +245,25 @@ ul.buttons li, ul.buttons li form {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 150, ../../../app/stylesheets/_layout.sass */
|
/* line 147, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in {
|
#userbar-log-in {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 152, ../../../app/stylesheets/_layout.sass */
|
/* line 149, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in img {
|
#userbar-log-in img {
|
||||||
margin-bottom: -4px;
|
margin-bottom: -4px;
|
||||||
margin-right: 0.25em;
|
margin-right: 0.25em;
|
||||||
}
|
}
|
||||||
/* line 156, ../../../app/stylesheets/_layout.sass */
|
/* line 153, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in span {
|
#userbar-log-in span {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
/* line 158, ../../../app/stylesheets/_layout.sass */
|
/* line 155, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in:hover span {
|
#userbar-log-in:hover span {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 161, ../../../app/stylesheets/_layout.sass */
|
/* line 158, ../../../app/stylesheets/_layout.sass */
|
||||||
.object {
|
.object {
|
||||||
display: -moz-inline-box;
|
display: -moz-inline-box;
|
||||||
-moz-box-orient: vertical;
|
-moz-box-orient: vertical;
|
||||||
|
@ -283,32 +278,32 @@ ul.buttons li, ul.buttons li form {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
/* line 169, ../../../app/stylesheets/_layout.sass */
|
/* line 166, ../../../app/stylesheets/_layout.sass */
|
||||||
.object a {
|
.object a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 171, ../../../app/stylesheets/_layout.sass */
|
/* line 168, ../../../app/stylesheets/_layout.sass */
|
||||||
.object a img {
|
.object a img {
|
||||||
-moz-opacity: 0.75;
|
-moz-opacity: 0.75;
|
||||||
-webkit-opacity: 0.75;
|
-webkit-opacity: 0.75;
|
||||||
-o-opacity: 0.75;
|
-o-opacity: 0.75;
|
||||||
-khtml-opacity: 0.75;
|
-khtml-opacity: 0.75;
|
||||||
}
|
}
|
||||||
/* line 173, ../../../app/stylesheets/_layout.sass */
|
/* line 170, ../../../app/stylesheets/_layout.sass */
|
||||||
.object img {
|
.object img {
|
||||||
display: block;
|
display: block;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 80px;
|
width: 80px;
|
||||||
}
|
}
|
||||||
/* line 178, ../../../app/stylesheets/_layout.sass */
|
/* line 175, ../../../app/stylesheets/_layout.sass */
|
||||||
.object:hover img, .object a:hover img {
|
.object:hover img, .object a:hover img {
|
||||||
-moz-opacity: 1;
|
-moz-opacity: 1;
|
||||||
-webkit-opacity: 1;
|
-webkit-opacity: 1;
|
||||||
-o-opacity: 1;
|
-o-opacity: 1;
|
||||||
-khtml-opacity: 1;
|
-khtml-opacity: 1;
|
||||||
}
|
}
|
||||||
/* line 184, ../../../app/stylesheets/_layout.sass */
|
/* line 181, ../../../app/stylesheets/_layout.sass */
|
||||||
.object .nc-icon, .object .closeted-icons {
|
.object .nc-icon, .object .closeted-icons {
|
||||||
-moz-opacity: 1;
|
-moz-opacity: 1;
|
||||||
-webkit-opacity: 1;
|
-webkit-opacity: 1;
|
||||||
|
@ -319,7 +314,7 @@ ul.buttons li, ul.buttons li form {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 64px;
|
top: 64px;
|
||||||
}
|
}
|
||||||
/* line 190, ../../../app/stylesheets/_layout.sass */
|
/* line 187, ../../../app/stylesheets/_layout.sass */
|
||||||
.object .nc-icon:hover, .object .closeted-icons:hover {
|
.object .nc-icon:hover, .object .closeted-icons:hover {
|
||||||
-moz-opacity: 0.5;
|
-moz-opacity: 0.5;
|
||||||
-webkit-opacity: 0.5;
|
-webkit-opacity: 0.5;
|
||||||
|
@ -327,32 +322,32 @@ ul.buttons li, ul.buttons li form {
|
||||||
-khtml-opacity: 0.5;
|
-khtml-opacity: 0.5;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
/* line 194, ../../../app/stylesheets/_layout.sass */
|
/* line 191, ../../../app/stylesheets/_layout.sass */
|
||||||
.object .nc-icon, .object .closeted-icons img {
|
.object .nc-icon, .object .closeted-icons img {
|
||||||
display: inline;
|
display: inline;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
/* line 199, ../../../app/stylesheets/_layout.sass */
|
/* line 196, ../../../app/stylesheets/_layout.sass */
|
||||||
.object .nc-icon {
|
.object .nc-icon {
|
||||||
right: 18px;
|
right: 18px;
|
||||||
}
|
}
|
||||||
/* line 202, ../../../app/stylesheets/_layout.sass */
|
/* line 199, ../../../app/stylesheets/_layout.sass */
|
||||||
.object .closeted-icons {
|
.object .closeted-icons {
|
||||||
left: 18px;
|
left: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 205, ../../../app/stylesheets/_layout.sass */
|
/* line 202, ../../../app/stylesheets/_layout.sass */
|
||||||
dt {
|
dt {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 208, ../../../app/stylesheets/_layout.sass */
|
/* line 205, ../../../app/stylesheets/_layout.sass */
|
||||||
dd {
|
dd {
|
||||||
margin: 0 0 1.5em 1em;
|
margin: 0 0 1.5em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 211, ../../../app/stylesheets/_layout.sass */
|
/* line 208, ../../../app/stylesheets/_layout.sass */
|
||||||
#home-link {
|
#home-link {
|
||||||
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
font-size: 175%;
|
font-size: 175%;
|
||||||
|
@ -363,21 +358,21 @@ dd {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
/* line 221, ../../../app/stylesheets/_layout.sass */
|
/* line 218, ../../../app/stylesheets/_layout.sass */
|
||||||
#home-link:hover {
|
#home-link:hover {
|
||||||
background: #eeffee;
|
background: #eeffee;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 224, ../../../app/stylesheets/_layout.sass */
|
/* line 221, ../../../app/stylesheets/_layout.sass */
|
||||||
#home-link span:before {
|
#home-link span:before {
|
||||||
content: "<< ";
|
content: "<< ";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 228, ../../../app/stylesheets/_layout.sass */
|
/* line 225, ../../../app/stylesheets/_layout.sass */
|
||||||
.pagination a, .pagination span {
|
.pagination a, .pagination span {
|
||||||
margin: 0 0.5em;
|
margin: 0 0.5em;
|
||||||
}
|
}
|
||||||
/* line 230, ../../../app/stylesheets/_layout.sass */
|
/* line 227, ../../../app/stylesheets/_layout.sass */
|
||||||
.pagination .current {
|
.pagination .current {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
@ -561,20 +556,25 @@ div.jGrowl div.jGrowl-closer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 5, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 2, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
body.closet_hangers-index #title {
|
body.closet_hangers-index #title {
|
||||||
float: left;
|
float: left;
|
||||||
margin-bottom: 0;
|
margin-right: 0.5em;
|
||||||
}
|
}
|
||||||
/* line 9, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 6, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
body.closet_hangers-index .flash {
|
body.closet_hangers-index .flash {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
/* line 12, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 9, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
body.closet_hangers-index #import-link, body.closet_hangers-index #closet-hangers-items-search {
|
body.closet_hangers-index #secondary-nav {
|
||||||
|
display: block;
|
||||||
margin-top: 0.75em;
|
margin-top: 0.75em;
|
||||||
}
|
}
|
||||||
/* line 15, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 8, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index #title {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
/* line 11, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #import-link {
|
body.closet_hangers-index #import-link {
|
||||||
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
|
@ -593,7 +593,6 @@ body.closet_hangers-index #import-link {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
background: #ff5c00 url('/images/alert-overlay.png?1296599919') repeat-x;
|
background: #ff5c00 url('/images/alert-overlay.png?1296599919') repeat-x;
|
||||||
margin-left: 2em;
|
|
||||||
}
|
}
|
||||||
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
body.closet_hangers-index #import-link:hover {
|
body.closet_hangers-index #import-link:hover {
|
||||||
|
@ -611,18 +610,18 @@ body.closet_hangers-index #import-link:active {
|
||||||
body.closet_hangers-index #import-link:hover {
|
body.closet_hangers-index #import-link:hover {
|
||||||
background-color: #ee4b00;
|
background-color: #ee4b00;
|
||||||
}
|
}
|
||||||
/* line 20, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 15, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-items-search {
|
body.closet_hangers-index #closet-hangers-items-search {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
/* line 24, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 19, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-items-search input[name=q].loading {
|
body.closet_hangers-index #closet-hangers-items-search input[name=q].loading {
|
||||||
background-image: url(/images/loading.gif);
|
background-image: url(/images/loading.gif);
|
||||||
background-position: 2px center;
|
background-position: 2px center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
/* line 31, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 26, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-contact {
|
body.closet_hangers-index #closet-hangers-contact {
|
||||||
clear: both;
|
clear: both;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
|
@ -630,65 +629,65 @@ body.closet_hangers-index #closet-hangers-contact {
|
||||||
margin-left: 2em;
|
margin-left: 2em;
|
||||||
min-height: 16px;
|
min-height: 16px;
|
||||||
}
|
}
|
||||||
/* line 38, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 33, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-contact a {
|
body.closet_hangers-index #closet-hangers-contact a {
|
||||||
background-image: url('/images/neomail.png?1311369565');
|
background-image: url('/images/neomail.png?1311877030');
|
||||||
background-position: left center;
|
background-position: left center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding-left: 18px;
|
padding-left: 18px;
|
||||||
}
|
}
|
||||||
/* line 45, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 40, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-contact input[type=text], body.closet_hangers-index #closet-hangers-contact body.pets-bulk #bulk-pets-form textarea, body.pets-bulk #bulk-pets-form body.closet_hangers-index #closet-hangers-contact textarea {
|
body.closet_hangers-index #closet-hangers-contact input[type=text], body.closet_hangers-index #closet-hangers-contact body.pets-bulk #bulk-pets-form textarea, body.pets-bulk #bulk-pets-form body.closet_hangers-index #closet-hangers-contact textarea {
|
||||||
width: 10em;
|
width: 10em;
|
||||||
}
|
}
|
||||||
/* line 48, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 43, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-contact label {
|
body.closet_hangers-index #closet-hangers-contact label {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-right: 0.5em;
|
margin-right: 0.5em;
|
||||||
}
|
}
|
||||||
/* line 52, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 47, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers-contact label:after {
|
body.closet_hangers-index #closet-hangers-contact label:after {
|
||||||
content: ":";
|
content: ":";
|
||||||
}
|
}
|
||||||
/* line 55, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 50, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #edit-contact-link-to-replace-form, body.closet_hangers-index #cancel-contact-link {
|
body.closet_hangers-index #edit-contact-link-to-replace-form, body.closet_hangers-index #cancel-contact-link {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 58, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 53, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index .edit-contact-link, body.closet_hangers-index #cancel-contact-link {
|
body.closet_hangers-index .edit-contact-link, body.closet_hangers-index #cancel-contact-link {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
/* line 62, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 57, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index .edit-contact-link:hover, body.closet_hangers-index #cancel-contact-link:hover {
|
body.closet_hangers-index .edit-contact-link:hover, body.closet_hangers-index #cancel-contact-link:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 66, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 61, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #edit-contact-link-to-replace-form #contact-link-has-value {
|
body.closet_hangers-index #edit-contact-link-to-replace-form #contact-link-has-value {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 69, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 64, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #edit-contact-link-to-replace-form #contact-link-no-value {
|
body.closet_hangers-index #edit-contact-link-to-replace-form #contact-link-no-value {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
/* line 73, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 68, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #edit-contact-link-to-replace-form.has-value #contact-link-has-value {
|
body.closet_hangers-index #edit-contact-link-to-replace-form.has-value #contact-link-has-value {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
/* line 76, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 71, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #edit-contact-link-to-replace-form.has-value #contact-link-no-value {
|
body.closet_hangers-index #edit-contact-link-to-replace-form.has-value #contact-link-no-value {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 79, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 74, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #cancel-contact-link {
|
body.closet_hangers-index #cancel-contact-link {
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
/* line 82, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 77, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers {
|
body.closet_hangers-index #closet-hangers {
|
||||||
clear: both;
|
clear: both;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
/* line 87, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 82, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers .object .quantity {
|
body.closet_hangers-index #closet-hangers .object .quantity {
|
||||||
-moz-opacity: 0.75;
|
-moz-opacity: 0.75;
|
||||||
-webkit-opacity: 0.75;
|
-webkit-opacity: 0.75;
|
||||||
|
@ -702,59 +701,187 @@ body.closet_hangers-index #closet-hangers .object .quantity {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
top: 60px;
|
top: 60px;
|
||||||
}
|
}
|
||||||
/* line 97, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 92, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers .object .quantity span, body.closet_hangers-index #closet-hangers .object .quantity input[type=number] {
|
body.closet_hangers-index #closet-hangers .object .quantity span, body.closet_hangers-index #closet-hangers .object .quantity input[type=number] {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
/* line 101, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 96, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index #closet-hangers .object form {
|
body.closet_hangers-index #closet-hangers .object form {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 104, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 99, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index header {
|
body.closet_hangers-index #closet-hangers .object .quantity-1 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 102, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group {
|
||||||
|
border-top: 1px solid #006600;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
padding-bottom: 1em;
|
||||||
|
}
|
||||||
|
/* line 107, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header {
|
||||||
border-bottom: 1px solid #aaddaa;
|
border-bottom: 1px solid #aaddaa;
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 0.25em;
|
margin-bottom: 0.25em;
|
||||||
padding: 0.25em 0;
|
padding: 0.25em 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
/* line 111, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 114, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index header h3 {
|
body.closet_hangers-index .closet-hangers-group > header h3 {
|
||||||
font-size: 250%;
|
font-size: 250%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
/* line 115, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 118, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index header span.show, body.closet_hangers-index header span.hide {
|
body.closet_hangers-index .closet-hangers-group > header .add-closet-list {
|
||||||
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
background: #006400 url('/images/alert-overlay.png?1296599919') repeat-x;
|
||||||
|
border: 0;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.5em 0.75em 0.45em;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
||||||
|
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
||||||
|
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.25);
|
||||||
|
position: relative;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1;
|
||||||
|
bottom: 50%;
|
||||||
|
margin-bottom: -1em;
|
||||||
|
position: absolute;
|
||||||
|
right: 1em;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header .add-closet-list:hover {
|
||||||
|
background-color: #005300;
|
||||||
|
}
|
||||||
|
/* line 53, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header .add-closet-list:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/* line 55, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header .add-closet-list:active {
|
||||||
|
top: 1px;
|
||||||
|
}
|
||||||
|
/* line 125, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header .add-closet-list:active {
|
||||||
|
margin-bottom: -1.1em;
|
||||||
|
top: auto;
|
||||||
|
}
|
||||||
|
/* line 129, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-hangers-group > header span.show, body.closet_hangers-index .closet-hangers-group > header span.hide {
|
||||||
color: #448844;
|
color: #448844;
|
||||||
display: none;
|
display: none;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
|
left: 1em;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1em;
|
top: 1em;
|
||||||
bottom: 0;
|
|
||||||
}
|
}
|
||||||
/* line 124, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 137, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index header:hover span.show, body.closet_hangers-index header:hover span.hide {
|
body.closet_hangers-index .closet-hangers-group > header span.show:hover, body.closet_hangers-index .closet-hangers-group > header span.hide:hover {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
/* line 128, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 141, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index .closet-hangers-group {
|
body.closet_hangers-index .closet-list {
|
||||||
border-top: 1px solid #006600;
|
border-bottom: 1px solid #aaddaa;
|
||||||
margin-bottom: 2em;
|
padding: 0.5em 0;
|
||||||
padding-bottom: 1em;
|
|
||||||
}
|
}
|
||||||
/* line 136, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 145, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list header {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
/* line 149, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list h4 {
|
||||||
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
|
font-size: 150%;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
/* line 154, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list .empty-list {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
/* line 157, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
right: 1em;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
/* line 163, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls a, body.closet_hangers-index .closet-list .closet-list-controls input[type=submit] {
|
||||||
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
background: #006400 url('/images/alert-overlay.png?1296599919') repeat-x;
|
||||||
|
border: 0;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.5em 0.75em 0.45em;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
||||||
|
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
||||||
|
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
border-bottom: 1px solid rgba(0, 0, 0, 0.25);
|
||||||
|
position: relative;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1;
|
||||||
|
background: #aaaaaa url('/images/alert-overlay.png?1296599919') repeat-x;
|
||||||
|
-moz-opacity: 0.9;
|
||||||
|
-webkit-opacity: 0.9;
|
||||||
|
-o-opacity: 0.9;
|
||||||
|
-khtml-opacity: 0.9;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls a:hover, body.closet_hangers-index .closet-list .closet-list-controls input[type=submit]:hover {
|
||||||
|
background-color: #005300;
|
||||||
|
}
|
||||||
|
/* line 53, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls a:hover, body.closet_hangers-index .closet-list .closet-list-controls input[type=submit]:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/* line 55, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls a:active, body.closet_hangers-index .closet-list .closet-list-controls input[type=submit]:active {
|
||||||
|
top: 1px;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls a:hover, body.closet_hangers-index .closet-list .closet-list-controls input[type=submit]:hover {
|
||||||
|
background-color: #999999;
|
||||||
|
}
|
||||||
|
/* line 166, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list .closet-list-controls form {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
/* line 170, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list.unlisted h4 {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
/* line 174, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list:hover .closet-list-controls {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 177, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index .closet-list:last-child {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
/* line 183, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover form {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover form {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
/* line 139, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 186, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 18px;
|
right: 18px;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
/* line 144, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 191, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy input {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy input {
|
||||||
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
|
@ -795,7 +922,7 @@ body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-han
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy input:hover {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .closet-hanger-destroy input:hover {
|
||||||
background-color: #999999;
|
background-color: #999999;
|
||||||
}
|
}
|
||||||
/* line 147, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 194, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity {
|
||||||
-moz-opacity: 1;
|
-moz-opacity: 1;
|
||||||
-webkit-opacity: 1;
|
-webkit-opacity: 1;
|
||||||
|
@ -805,97 +932,119 @@ body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity {
|
||||||
top: 56px;
|
top: 56px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
/* line 153, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 200, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity span {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity span {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 156, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 203, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity input[type=number] {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity input[type=number] {
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
width: 2em;
|
width: 2em;
|
||||||
}
|
}
|
||||||
/* line 160, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 207, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity input[type=submit] {
|
body.closet_hangers-index.current-user #closet-hangers .object:hover .quantity input[type=submit] {
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
}
|
}
|
||||||
/* line 166, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 212, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index.current-user.js #closet-hangers .object:hover .quantity {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 215, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers .object:hover .quantity input[type=number] {
|
body.closet_hangers-index.current-user.js #closet-hangers .object:hover .quantity input[type=number] {
|
||||||
width: 2.5em;
|
width: 2.5em;
|
||||||
}
|
}
|
||||||
/* line 169, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 218, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers .object:hover .quantity input[type=submit] {
|
body.closet_hangers-index.current-user.js #closet-hangers .object:hover .quantity input[type=submit] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 172, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 221, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers .object.loading {
|
body.closet_hangers-index.current-user.js #closet-hangers .object.loading {
|
||||||
background: #eeffee;
|
background: #eeffee;
|
||||||
outline: 1px solid #006600;
|
outline: 1px solid #006600;
|
||||||
}
|
}
|
||||||
/* line 176, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 225, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
|
body.closet_hangers-index.current-user.js #closet-hangers .object.loading .quantity {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 228, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers .object.loading .quantity span:after {
|
body.closet_hangers-index.current-user.js #closet-hangers .object.loading .quantity span:after {
|
||||||
content: "…";
|
content: "…";
|
||||||
}
|
}
|
||||||
/* line 180, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 232, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers-contact form {
|
body.closet_hangers-index.current-user.js #closet-hangers-contact form {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 183, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 235, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers-contact .edit-contact-link, body.closet_hangers-index.current-user.js #closet-hangers-contact #cancel-contact-link {
|
body.closet_hangers-index.current-user.js #closet-hangers-contact .edit-contact-link, body.closet_hangers-index.current-user.js #closet-hangers-contact #cancel-contact-link {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
/* line 187, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 239, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers-contact.editing form {
|
body.closet_hangers-index.current-user.js #closet-hangers-contact.editing form {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
/* line 190, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 242, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js #closet-hangers-contact.editing .edit-contact-link {
|
body.closet_hangers-index.current-user.js #closet-hangers-contact.editing .edit-contact-link {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 194, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 247, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js .closet-hangers-group header {
|
body.closet_hangers-index.current-user.js .closet-hangers-group header .show, body.closet_hangers-index.current-user.js .closet-hangers-group header .hide {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
/* line 197, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 250, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js .closet-hangers-group header .hide {
|
body.closet_hangers-index.current-user.js .closet-hangers-group header .hide {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
/* line 201, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 254, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js .closet-hangers-group.hidden header .hide, body.closet_hangers-index.current-user.js .closet-hangers-group.hidden .closet-hangers-group-content {
|
body.closet_hangers-index.current-user.js .closet-hangers-group.hidden header .hide, body.closet_hangers-index.current-user.js .closet-hangers-group.hidden .closet-hangers-group-content {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
/* line 204, ../../../app/stylesheets/closet_hangers/_index.sass */
|
/* line 257, ../../../app/stylesheets/closet_hangers/_index.sass */
|
||||||
body.closet_hangers-index.current-user.js .closet-hangers-group.hidden header .show {
|
body.closet_hangers-index.current-user.js .closet-hangers-group.hidden header .show {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 3, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 2, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
body.closet_lists-new form ul.fields, body.closet_lists-create form ul.fields {
|
body.closet_lists-new #title, body.closet_lists-create #title, body.closet_lists-edit #title, body.closet_lists-update #title {
|
||||||
|
float: left;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
/* line 6, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
|
body.closet_lists-new .flash, body.closet_lists-create .flash, body.closet_lists-edit .flash, body.closet_lists-update .flash {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
/* line 9, ../../../app/stylesheets/partials/_secondary_nav.sass */
|
||||||
|
body.closet_lists-new #secondary-nav, body.closet_lists-create #secondary-nav, body.closet_lists-edit #secondary-nav, body.closet_lists-update #secondary-nav {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0.75em;
|
||||||
|
}
|
||||||
|
/* line 4, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
|
body.closet_lists-new form ul.fields, body.closet_lists-create form ul.fields, body.closet_lists-edit form ul.fields, body.closet_lists-update form ul.fields {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
/* line 6, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 7, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
body.closet_lists-new form ul.fields label, body.closet_lists-create form ul.fields label {
|
body.closet_lists-new form ul.fields label, body.closet_lists-create form ul.fields label, body.closet_lists-edit form ul.fields label, body.closet_lists-update form ul.fields label {
|
||||||
float: left;
|
float: left;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
/* line 11, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 12, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
body.closet_lists-new form ul.fields li, body.closet_lists-create form ul.fields li {
|
body.closet_lists-new form ul.fields li, body.closet_lists-create form ul.fields li, body.closet_lists-edit form ul.fields li, body.closet_lists-update form ul.fields li {
|
||||||
padding: 0.75em 0;
|
padding: 0.75em 0;
|
||||||
width: 25em;
|
width: 25em;
|
||||||
}
|
}
|
||||||
/* line 15, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 16, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
body.closet_lists-new form ul.fields input, body.closet_lists-new form ul.fields textarea, body.closet_lists-new form ul.fields select, body.closet_lists-create form ul.fields input, body.closet_lists-create form ul.fields textarea, body.closet_lists-create form ul.fields select {
|
body.closet_lists-new form ul.fields input, body.closet_lists-new form ul.fields textarea, body.closet_lists-new form ul.fields select, body.closet_lists-create form ul.fields input, body.closet_lists-create form ul.fields textarea, body.closet_lists-create form ul.fields select, body.closet_lists-edit form ul.fields input, body.closet_lists-edit form ul.fields textarea, body.closet_lists-edit form ul.fields select, body.closet_lists-update form ul.fields input, body.closet_lists-update form ul.fields textarea, body.closet_lists-update form ul.fields select {
|
||||||
clear: both;
|
clear: both;
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 0.25em;
|
margin-top: 0.25em;
|
||||||
width: 80%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
/* line 21, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 22, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
body.closet_lists-new form ul.fields textarea, body.closet_lists-create form ul.fields textarea {
|
body.closet_lists-new form ul.fields textarea, body.closet_lists-create form ul.fields textarea, body.closet_lists-edit form ul.fields textarea, body.closet_lists-update form ul.fields textarea {
|
||||||
height: 12em;
|
height: 12em;
|
||||||
}
|
}
|
||||||
/* line 24, ../../../app/stylesheets/closet_lists/_form.sass */
|
/* line 25, ../../../app/stylesheets/closet_lists/_form.sass */
|
||||||
body.closet_lists-new form ul.fields .hint, body.closet_lists-create form ul.fields .hint {
|
body.closet_lists-new form ul.fields .hint, body.closet_lists-create form ul.fields .hint, body.closet_lists-edit form ul.fields .hint, body.closet_lists-update form ul.fields .hint {
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
}
|
}
|
||||||
|
@ -1303,7 +1452,7 @@ body.items-show #closet-hangers {
|
||||||
float: right;
|
float: right;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
width: 18em;
|
width: 21em;
|
||||||
}
|
}
|
||||||
/* line 73, ../../../app/stylesheets/items/_show.sass */
|
/* line 73, ../../../app/stylesheets/items/_show.sass */
|
||||||
body.items-show #closet-hangers label, body.items-show #closet-hangers header {
|
body.items-show #closet-hangers label, body.items-show #closet-hangers header {
|
||||||
|
@ -1319,6 +1468,10 @@ body.items-show #closet-hangers form {
|
||||||
padding: 0.5em 0;
|
padding: 0.5em 0;
|
||||||
}
|
}
|
||||||
/* line 83, ../../../app/stylesheets/items/_show.sass */
|
/* line 83, ../../../app/stylesheets/items/_show.sass */
|
||||||
|
body.items-show #closet-hangers select {
|
||||||
|
width: 9em;
|
||||||
|
}
|
||||||
|
/* line 86, ../../../app/stylesheets/items/_show.sass */
|
||||||
body.items-show #closet-hangers input[type=number] {
|
body.items-show #closet-hangers input[type=number] {
|
||||||
width: 4em;
|
width: 4em;
|
||||||
}
|
}
|
||||||
|
@ -1901,7 +2054,7 @@ body.outfits-edit .object:hover ul, body.outfits-edit .object:hover .object-info
|
||||||
}
|
}
|
||||||
/* line 418, ../../../app/stylesheets/outfits/_edit.sass */
|
/* line 418, ../../../app/stylesheets/outfits/_edit.sass */
|
||||||
body.outfits-edit .nc-icon {
|
body.outfits-edit .nc-icon {
|
||||||
background: url('/images/nc.png?1311369565') no-repeat;
|
background: url('/images/nc.png?1311877029') no-repeat;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 16px;
|
right: 16px;
|
||||||
|
|
BIN
vendor/cache/sanitize-2.0.3.gem
vendored
Normal file
BIN
vendor/cache/sanitize-2.0.3.gem
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue