forked from OpenNeo/impress
working home page
This commit is contained in:
parent
defafa0eb6
commit
c8acdc4e8d
29 changed files with 1679 additions and 146 deletions
|
@ -1,6 +1,8 @@
|
||||||
class ItemsController < ApplicationController
|
class ItemsController < ApplicationController
|
||||||
before_filter :set_query
|
before_filter :set_query
|
||||||
|
|
||||||
|
layout 'items'
|
||||||
|
|
||||||
def index
|
def index
|
||||||
if params.has_key?(:q)
|
if params.has_key?(:q)
|
||||||
begin
|
begin
|
||||||
|
@ -18,7 +20,7 @@ class ItemsController < ApplicationController
|
||||||
end
|
end
|
||||||
rescue
|
rescue
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { flash.now[:error] = $!.message }
|
format.html { flash.now[:alert] = $!.message }
|
||||||
format.js { render :json => {:error => $!.message}, :callback => params[:callback] }
|
format.js { render :json => {:error => $!.message}, :callback => params[:callback] }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,4 +2,10 @@ class OutfitsController < ApplicationController
|
||||||
def edit
|
def edit
|
||||||
render :layout => false
|
render :layout => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@colors = Color.all
|
||||||
|
@species = Species.all
|
||||||
|
@top_contributors = User.top_contributors.limit(3)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,28 @@
|
||||||
class PetsController < ApplicationController
|
class PetsController < ApplicationController
|
||||||
def show
|
rescue_from Pet::PetNotFound, :with => :pet_not_found
|
||||||
@pet = Pet.load(params[:id])
|
|
||||||
|
DESTINATIONS = {
|
||||||
|
'needed_items' => '?',
|
||||||
|
'root' => '#',
|
||||||
|
'wardrobe' => '#'
|
||||||
|
}
|
||||||
|
|
||||||
|
def load
|
||||||
|
raise Pet::PetNotFound unless params[:name]
|
||||||
|
@pet = Pet.load(params[:name])
|
||||||
@pet.save
|
@pet.save
|
||||||
redirect_to wardrobe_path(:anchor => @pet.wardrobe_query)
|
destination = params[:destination]
|
||||||
|
destination = 'root' unless DESTINATIONS[destination]
|
||||||
|
query_joiner = DESTINATIONS[destination]
|
||||||
|
path = send("#{destination}_path") + query_joiner + @pet.wardrobe_query
|
||||||
|
redirect_to path
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def pet_not_found
|
||||||
|
path = params[:origin] || root_path
|
||||||
|
path += "?name=#{params[:name]}"
|
||||||
|
redirect_to path, :alert => 'Could not find any pet by that name. Did you spell it correctly?'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,11 +7,29 @@ module ApplicationHelper
|
||||||
).to_s
|
).to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def body_class
|
||||||
|
"#{params[:controller]} #{params[:controller]}-#{params[:action]}"
|
||||||
|
end
|
||||||
|
|
||||||
def flashes
|
def flashes
|
||||||
flash.inject('') do |html, pair|
|
raw(flash.inject('') do |html, pair|
|
||||||
key, value = pair
|
key, value = pair
|
||||||
content_tag 'p', value, :class => key
|
html + content_tag('p', value, :class => key)
|
||||||
end
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
JAVASCRIPT_LIBRARIES = {
|
||||||
|
:addthis => 'http://s7.addthis.com/js/250/addthis_widget.js#username=openneo',
|
||||||
|
:bitly => 'http://bit.ly/javascript-api.js?version=latest&login=openneo&apiKey=R_4d0438829b7a99860de1d3edf55d8dc8',
|
||||||
|
:html5 => 'http://html5shim.googlecode.com/svn/trunk/html5.js',
|
||||||
|
:jquery => 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js',
|
||||||
|
:swfobject => 'http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js'
|
||||||
|
}
|
||||||
|
|
||||||
|
def include_javascript_libraries(*library_names)
|
||||||
|
raw(library_names.inject('') do |html, name|
|
||||||
|
html + javascript_include_tag(JAVASCRIPT_LIBRARIES[name])
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
def login_path_with_return_to
|
def login_path_with_return_to
|
||||||
|
|
18
app/helpers/outfits_helper.rb
Normal file
18
app/helpers/outfits_helper.rb
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
module OutfitsHelper
|
||||||
|
def destination_tag(value)
|
||||||
|
hidden_field_tag 'destination', value, :id => nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def origin_tag(value)
|
||||||
|
hidden_field_tag 'origin', value, :id => nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def pet_attribute_select(name, collection, value=nil)
|
||||||
|
select_tag name,
|
||||||
|
options_from_collection_for_select(collection, :id, :human_name, value)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pet_name_tag
|
||||||
|
text_field_tag 'name', nil, :spellcheck => false, :id => nil
|
||||||
|
end
|
||||||
|
end
|
|
@ -2,10 +2,14 @@ class PetAttribute < StaticResource
|
||||||
def as_json(options={})
|
def as_json(options={})
|
||||||
{
|
{
|
||||||
:id => self.id,
|
:id => self.id,
|
||||||
:name => self.name.capitalize
|
:name => self.human_name
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def human_name
|
||||||
|
self.name.capitalize
|
||||||
|
end
|
||||||
|
|
||||||
def self.find_by_name(name)
|
def self.find_by_name(name)
|
||||||
@objects_by_name[name.downcase]
|
@objects_by_name[name.downcase]
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
class User < ActiveRecord::Base
|
class User < ActiveRecord::Base
|
||||||
DefaultAuthServerId = 1
|
DefaultAuthServerId = 1
|
||||||
|
|
||||||
|
scope :top_contributors, order('points DESC')
|
||||||
|
|
||||||
def self.find_or_create_from_remote_auth_data(user_data)
|
def self.find_or_create_from_remote_auth_data(user_data)
|
||||||
user = find_or_initialize_by_remote_id_and_auth_server_id(
|
user = find_or_initialize_by_remote_id_and_auth_server_id(
|
||||||
user_data['id'],
|
user_data['id'],
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
$text-color: #004400
|
|
||||||
$link-color: $text-color + #222222
|
|
||||||
$module-bg-color: #eeffee
|
|
||||||
$module-border-color: #006600
|
|
||||||
$input-border-color: #cceecc
|
|
||||||
$marked-button-color: #0b61a4
|
|
||||||
|
|
||||||
$notice-color: #264409
|
|
||||||
$notice-bg-color: #e6efc2
|
|
||||||
$notice-border-color: #c6d880
|
|
||||||
$error-color: #8a1f11
|
|
||||||
$error-bg-color: #fbe3e4
|
|
||||||
$error-border-color: #fbc2c4
|
|
||||||
|
|
||||||
$header-font: Delicious, Helvetica, Arial, Verdana, sans-serif
|
|
||||||
$body-font: "Droid Serif", Georgia, "Times New Roman", Times, serif
|
|
||||||
|
|
||||||
$object-img-size: 80px
|
|
||||||
$object-width: 100px
|
|
||||||
$object-padding: 6px
|
|
||||||
$nc-icon-size: 16px
|
|
19
app/stylesheets/_items.sass
Normal file
19
app/stylesheets/_items.sass
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
body.items
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
input[type=text]
|
||||||
|
font-size: 125%
|
||||||
|
width: 15em
|
||||||
|
|
||||||
|
h1
|
||||||
|
margin-bottom: 1em
|
||||||
|
img
|
||||||
|
height: 80px
|
||||||
|
margin-bottom: -0.5em
|
||||||
|
width: 80px
|
||||||
|
a
|
||||||
|
text-decoration: none
|
||||||
|
span
|
||||||
|
text-decoration: underline
|
||||||
|
&:hover span
|
||||||
|
text-decoration: none
|
239
app/stylesheets/_layout.sass
Normal file
239
app/stylesheets/_layout.sass
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
/* Reset
|
||||||
|
|
||||||
|
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
|
||||||
|
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
|
||||||
|
font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b,
|
||||||
|
u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
|
||||||
|
caption, tbody, tfoot, thead, tr, th, td
|
||||||
|
margin: 0
|
||||||
|
padding: 0
|
||||||
|
border: 0
|
||||||
|
outline: 0
|
||||||
|
font-size: 100%
|
||||||
|
vertical-align: baseline
|
||||||
|
background: transparent
|
||||||
|
|
||||||
|
/* Typography
|
||||||
|
|
||||||
|
html, body
|
||||||
|
height: 100%
|
||||||
|
|
||||||
|
body
|
||||||
|
color: $text-color
|
||||||
|
font:
|
||||||
|
family: $main-font
|
||||||
|
size: 90%
|
||||||
|
line-height: 1.5
|
||||||
|
|
||||||
|
a
|
||||||
|
color: $link-color
|
||||||
|
|
||||||
|
p
|
||||||
|
font-family: $text-font
|
||||||
|
|
||||||
|
input, button, select
|
||||||
|
font:
|
||||||
|
family: inherit
|
||||||
|
size: 100%
|
||||||
|
|
||||||
|
p
|
||||||
|
margin-bottom: 1em
|
||||||
|
|
||||||
|
h1, h2, h3
|
||||||
|
+header-text
|
||||||
|
|
||||||
|
h1
|
||||||
|
font-size: 3em
|
||||||
|
line-height: 1
|
||||||
|
margin-bottom: 0.50em
|
||||||
|
|
||||||
|
h2
|
||||||
|
font-size: 2em
|
||||||
|
margin-bottom: 0.75em
|
||||||
|
|
||||||
|
h3
|
||||||
|
font-size: 1.5em
|
||||||
|
line-height: 1
|
||||||
|
margin-bottom: 1.00em
|
||||||
|
|
||||||
|
.inline-image
|
||||||
|
margin-right: 1em
|
||||||
|
vertical-align: middle
|
||||||
|
|
||||||
|
/* Main
|
||||||
|
|
||||||
|
$container_width: 800px
|
||||||
|
|
||||||
|
#container
|
||||||
|
margin: 1em auto
|
||||||
|
padding-top: 3em
|
||||||
|
position: relative
|
||||||
|
width: $container_width
|
||||||
|
|
||||||
|
input, button, select, label
|
||||||
|
cursor: pointer
|
||||||
|
|
||||||
|
input[type=text], input[type=password], input[type=search], select
|
||||||
|
+border-radius(3px)
|
||||||
|
background: #fff
|
||||||
|
border: 1px solid $input-border-color
|
||||||
|
color: $text-color + #444444
|
||||||
|
padding: .25em
|
||||||
|
&:focus, &:active
|
||||||
|
color: inherit
|
||||||
|
|
||||||
|
a.button, input[type=submit], button
|
||||||
|
+awesome-button
|
||||||
|
&.loud
|
||||||
|
+loud-awesome-button
|
||||||
|
|
||||||
|
a.button
|
||||||
|
+arrowed-awesome-button
|
||||||
|
|
||||||
|
ul.buttons
|
||||||
|
margin-bottom: 1em
|
||||||
|
li
|
||||||
|
list-style: none
|
||||||
|
margin: 0 .5em
|
||||||
|
&, form
|
||||||
|
display: inline
|
||||||
|
|
||||||
|
#footer
|
||||||
|
clear: both
|
||||||
|
font-size: 75%
|
||||||
|
margin-bottom: 1em
|
||||||
|
padding-top: 2em
|
||||||
|
text-align: center
|
||||||
|
ul, div
|
||||||
|
display: inline
|
||||||
|
margin: 0 1em
|
||||||
|
li, div ul
|
||||||
|
display: inline
|
||||||
|
margin: 0 .5em
|
||||||
|
|
||||||
|
.success, .alert, .warning
|
||||||
|
margin-bottom: 1em
|
||||||
|
padding: .25em .5em
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
.success
|
||||||
|
background: $notice-bg-color
|
||||||
|
border: 1px solid $notice-border-color
|
||||||
|
color: $notice-color
|
||||||
|
|
||||||
|
.alert
|
||||||
|
background: $error-bg-color
|
||||||
|
border: 1px solid $error-border-color
|
||||||
|
color: $error-color
|
||||||
|
|
||||||
|
.warning
|
||||||
|
background: $warning-bg-color
|
||||||
|
border: 1px solid $warning-border-color
|
||||||
|
color: $warning-color
|
||||||
|
|
||||||
|
#userbar
|
||||||
|
+header-text
|
||||||
|
position: absolute
|
||||||
|
right: 0
|
||||||
|
top: 0
|
||||||
|
> *
|
||||||
|
display: inline
|
||||||
|
margin: 0 .25em
|
||||||
|
|
||||||
|
#userbar-log-in
|
||||||
|
text-decoration: none
|
||||||
|
img
|
||||||
|
margin:
|
||||||
|
bottom: -4px
|
||||||
|
right: .25em
|
||||||
|
span
|
||||||
|
text-decoration: underline
|
||||||
|
&:hover span
|
||||||
|
text-decoration: none
|
||||||
|
|
||||||
|
.object
|
||||||
|
+inline-block
|
||||||
|
padding: .5em
|
||||||
|
position: relative
|
||||||
|
text-align: center
|
||||||
|
vertical-align: top
|
||||||
|
width: $object-width
|
||||||
|
a
|
||||||
|
text-decoration: none
|
||||||
|
img
|
||||||
|
+opacity(0.75)
|
||||||
|
&:hover img
|
||||||
|
+opacity(1)
|
||||||
|
img
|
||||||
|
display: block
|
||||||
|
height: $object-img-size
|
||||||
|
margin: 0 auto
|
||||||
|
width: $object-img-size
|
||||||
|
|
||||||
|
dt
|
||||||
|
font-weight: bold
|
||||||
|
|
||||||
|
dd
|
||||||
|
margin: 0 0 1.5em 1em
|
||||||
|
|
||||||
|
#home-link
|
||||||
|
+header-text
|
||||||
|
font:
|
||||||
|
size: 175%
|
||||||
|
weight: bold
|
||||||
|
left: 0
|
||||||
|
line-height: 1
|
||||||
|
padding: .25em
|
||||||
|
position: absolute
|
||||||
|
top: 0
|
||||||
|
&:hover
|
||||||
|
background: $module-bg-color
|
||||||
|
text-decoration: none
|
||||||
|
span:before
|
||||||
|
content: "<< "
|
||||||
|
|
||||||
|
.pagination
|
||||||
|
a, span
|
||||||
|
margin: 0 .5em
|
||||||
|
.current
|
||||||
|
font-weight: bold
|
||||||
|
|
||||||
|
/* Fonts
|
||||||
|
|
||||||
|
/* A font by Jos Buivenga (exljbris) -> www.exljbris.nl
|
||||||
|
@font-face
|
||||||
|
font-family: Delicious
|
||||||
|
src: url("/assets/fonts/Delicious-Roman.otf")
|
||||||
|
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: Delicious
|
||||||
|
font-weight: bold
|
||||||
|
src: url("/assets/fonts/Delicious-Bold.otf")
|
||||||
|
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: Delicious
|
||||||
|
font-style: italic
|
||||||
|
src: url("/assets/fonts/Delicious-Italic.otf")
|
||||||
|
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: 'Droid Serif'
|
||||||
|
font-style: normal
|
||||||
|
font-weight: normal
|
||||||
|
src: local("Droid Serif"), url("http://themes.googleusercontent.com/font?kit=70P0G8gxVDIV6F9om0DsKg") format("truetype")
|
||||||
|
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: 'Droid Serif'
|
||||||
|
font-style: normal
|
||||||
|
font-weight: bold
|
||||||
|
src: local("Droid Serif"), url("http://themes.googleusercontent.com/font?kit=QQt14e8dY39u-eYBZmppwf5Jgr8ufe5A6KahQF76Xmg") format("truetype")
|
||||||
|
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: 'Droid Sans'
|
||||||
|
font-style: normal
|
||||||
|
font-weight: normal
|
||||||
|
src: local("Droid Sans"), url("http://themes.googleusercontent.com/font?kit=POVDFY-UUf0WFR9DIMCU8g") format("truetype")
|
|
@ -48,7 +48,7 @@ body.items-show
|
||||||
width: 300px
|
width: 300px
|
||||||
#item-zones
|
#item-zones
|
||||||
font:
|
font:
|
||||||
family: $body-font
|
family: $text-font
|
||||||
size: 85%
|
size: 85%
|
||||||
p:first-child
|
p:first-child
|
||||||
margin-bottom: .25em
|
margin-bottom: .25em
|
||||||
|
|
145
app/stylesheets/outfits/_new.sass
Normal file
145
app/stylesheets/outfits/_new.sass
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
body.outfits-new
|
||||||
|
#outfit-forms
|
||||||
|
+clearfix
|
||||||
|
+module
|
||||||
|
margin-bottom: 3em
|
||||||
|
position: relative
|
||||||
|
h1
|
||||||
|
margin-bottom: 0
|
||||||
|
h2
|
||||||
|
font:
|
||||||
|
size: 150%
|
||||||
|
style: italic
|
||||||
|
text-indent: 1em
|
||||||
|
#pet-preview
|
||||||
|
float: left
|
||||||
|
height: 300px
|
||||||
|
margin-right: 2em
|
||||||
|
position: relative
|
||||||
|
width: 300px
|
||||||
|
img
|
||||||
|
height: 100%
|
||||||
|
width: 100%
|
||||||
|
&.loading img
|
||||||
|
+opacity(0.5)
|
||||||
|
&.hidden img
|
||||||
|
display: none
|
||||||
|
&.loaded
|
||||||
|
cursor: pointer
|
||||||
|
span
|
||||||
|
background: rgb(128, 128, 128)
|
||||||
|
background: rgba(0, 0, 0, 0.5)
|
||||||
|
bottom: 0
|
||||||
|
color: #fff
|
||||||
|
padding: .25em .5em
|
||||||
|
position: absolute
|
||||||
|
right: 0
|
||||||
|
&:empty
|
||||||
|
display: none
|
||||||
|
fieldset
|
||||||
|
position: relative
|
||||||
|
left: 1em
|
||||||
|
legend
|
||||||
|
margin-left: -1em
|
||||||
|
#load-pet-to-wardrobe
|
||||||
|
font-size: 175%
|
||||||
|
margin:
|
||||||
|
bottom: 1em
|
||||||
|
top: 2em
|
||||||
|
input
|
||||||
|
font-size: 67%
|
||||||
|
padding: .5em
|
||||||
|
width: 10em
|
||||||
|
button
|
||||||
|
+loud-awesome-button
|
||||||
|
font-size: 67%
|
||||||
|
#description, #top-contributors
|
||||||
|
float: left
|
||||||
|
#description
|
||||||
|
margin-right: 2%
|
||||||
|
width: 64%
|
||||||
|
#top-contributors
|
||||||
|
border: 1px solid $input-border-color
|
||||||
|
margin-top: 1em
|
||||||
|
padding: 1%
|
||||||
|
width: 30%
|
||||||
|
ol
|
||||||
|
margin-left: 2em
|
||||||
|
padding-left: 1em
|
||||||
|
> a
|
||||||
|
font-size: 80%
|
||||||
|
display: block
|
||||||
|
text-align: right
|
||||||
|
#how-can-i-help, #i-found-something
|
||||||
|
+module
|
||||||
|
float: left
|
||||||
|
padding: 1%
|
||||||
|
width: 46%
|
||||||
|
h2
|
||||||
|
font-style: italic
|
||||||
|
input, button
|
||||||
|
font-size: 115%
|
||||||
|
input[type=text]
|
||||||
|
border-color: $module-border-color
|
||||||
|
width: 12em
|
||||||
|
#how-can-i-help
|
||||||
|
margin-right: 1%
|
||||||
|
#i-found-something
|
||||||
|
margin-left: 1%
|
||||||
|
a
|
||||||
|
float: right
|
||||||
|
font-size: 87.5%
|
||||||
|
margin-top: 1em
|
||||||
|
$section-count: 3
|
||||||
|
$section-border-width: 1px
|
||||||
|
$section-padding: 0.5em
|
||||||
|
$section-width: 100% / $section-count
|
||||||
|
// (A - (B-1)*C) / B
|
||||||
|
#sections
|
||||||
|
+clearfix
|
||||||
|
display: table
|
||||||
|
list-style: none
|
||||||
|
margin-bottom: 1em
|
||||||
|
h3
|
||||||
|
margin-bottom: .25em
|
||||||
|
li
|
||||||
|
border-left:
|
||||||
|
color: $module-border-color
|
||||||
|
style: solid
|
||||||
|
width: $section-border-width
|
||||||
|
display: table-cell
|
||||||
|
padding: $section-padding
|
||||||
|
position: relative
|
||||||
|
width: $section-width
|
||||||
|
&:first-child
|
||||||
|
border-left: 0
|
||||||
|
div
|
||||||
|
color: $soft-text-color
|
||||||
|
font-size: 75%
|
||||||
|
margin-left: 1em
|
||||||
|
z-index: 2
|
||||||
|
h4, input
|
||||||
|
font-size: 116%
|
||||||
|
h4, input[type=text]
|
||||||
|
color: inherit
|
||||||
|
h4 a
|
||||||
|
background: #ffffc0
|
||||||
|
img
|
||||||
|
+opacity(0.75)
|
||||||
|
float: right
|
||||||
|
margin-left: .5em
|
||||||
|
&:hover
|
||||||
|
+opacity(1)
|
||||||
|
#read-more
|
||||||
|
float: right
|
||||||
|
#tell-the-world
|
||||||
|
font-size: 87.5%
|
||||||
|
left: 0
|
||||||
|
position: absolute
|
||||||
|
top: 0
|
||||||
|
img
|
||||||
|
margin:
|
||||||
|
bottom: -0.25em
|
||||||
|
right: .25em
|
||||||
|
height: 16px
|
||||||
|
width: 16px
|
27
app/stylesheets/partials/clean/_constants.sass
Normal file
27
app/stylesheets/partials/clean/_constants.sass
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
$text-color: #040
|
||||||
|
$soft-text-color: $text-color + #444
|
||||||
|
$link-color: $text-color + #222
|
||||||
|
$module-bg-color: #efe
|
||||||
|
$module-border-color: #060
|
||||||
|
$soft-border-color: #ada
|
||||||
|
$input-border-color: #cec
|
||||||
|
$marked-button-color: #0b61a4
|
||||||
|
|
||||||
|
$notice-color: #264409
|
||||||
|
$notice-bg-color: #e6efc2
|
||||||
|
$notice-border-color: #c6d880
|
||||||
|
$warning-color: #514721
|
||||||
|
$warning-bg-color: #fff6bf
|
||||||
|
$warning-border-color: #ffd324
|
||||||
|
$error-color: #8a1f11
|
||||||
|
$error-bg-color: #fbe3e4
|
||||||
|
$error-border-color: #fbc2c4
|
||||||
|
|
||||||
|
$header-font: Delicious, Helvetica, Arial, Verdana, sans-serif
|
||||||
|
$main-font: "Droid Sans", Helvetica, Arial, Verdana, sans-serif
|
||||||
|
$text-font: "Droid Serif", Georgia, "Times New Roman", Times, serif
|
||||||
|
|
||||||
|
$object-img-size: 80px
|
||||||
|
$object-width: 100px
|
||||||
|
$object-padding: 6px
|
||||||
|
$nc-icon-size: 16px
|
73
app/stylesheets/partials/clean/_mixins.sass
Normal file
73
app/stylesheets/partials/clean/_mixins.sass
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
=box-sizing($bs)
|
||||||
|
$bs: unquote($bs)
|
||||||
|
+experimental(box-sizing, $bs, -moz, -webkit, not -o, -ms, not -khtml, official)
|
||||||
|
|
||||||
|
=clearfix
|
||||||
|
overflow: hidden
|
||||||
|
display: inline-block
|
||||||
|
&
|
||||||
|
display: block
|
||||||
|
|
||||||
|
=border-radius($r)
|
||||||
|
-moz-border-radius: $r
|
||||||
|
-webkit-border-radius: $r
|
||||||
|
|
||||||
|
=inline-block
|
||||||
|
display: -moz-inline-box
|
||||||
|
-moz-box-orient: vertical
|
||||||
|
display: inline-block
|
||||||
|
vertical-align: middle
|
||||||
|
*display: inline
|
||||||
|
*vertical-align: auto
|
||||||
|
|
||||||
|
=opacity($o)
|
||||||
|
-moz-opacity: $o
|
||||||
|
-webkit-opacity: $o
|
||||||
|
-o-opacity: $o
|
||||||
|
-khtml-opacity: $o
|
||||||
|
|
||||||
|
=header-text
|
||||||
|
font-family: $header-font
|
||||||
|
|
||||||
|
=awesome-button-color($c)
|
||||||
|
background: $c url(/assets/images/alert-overlay.png) repeat-x
|
||||||
|
&:hover
|
||||||
|
background-color: $c - #111111
|
||||||
|
|
||||||
|
=awesome-button
|
||||||
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html
|
||||||
|
+border-radius(5px)
|
||||||
|
+awesome-button-color(#006400)
|
||||||
|
border: 0
|
||||||
|
display: inline-block
|
||||||
|
padding: .5em .75em .45em
|
||||||
|
color: #fff
|
||||||
|
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
|
||||||
|
&:hover
|
||||||
|
color: #fff
|
||||||
|
&:active
|
||||||
|
top: 1px
|
||||||
|
|
||||||
|
=loud-awesome-button-color
|
||||||
|
+awesome-button-color(#ff5c00)
|
||||||
|
|
||||||
|
=loud-awesome-button
|
||||||
|
+loud-awesome-button-color
|
||||||
|
font-size: 125%
|
||||||
|
padding: 8px 14px 9px
|
||||||
|
|
||||||
|
=arrowed-awesome-button
|
||||||
|
&:after
|
||||||
|
content: " >>"
|
||||||
|
|
||||||
|
=module
|
||||||
|
background: $module-bg-color
|
||||||
|
border: 1px solid $module-border-color
|
||||||
|
padding: 1em
|
|
@ -1,36 +1,10 @@
|
||||||
@import compass
|
@import compass
|
||||||
@import clean_constants
|
@import partials/clean/constants
|
||||||
|
@import partials/clean/mixins
|
||||||
|
|
||||||
body
|
@import layout
|
||||||
text-align: center
|
|
||||||
|
|
||||||
input[type=text]
|
|
||||||
font-size: 125%
|
|
||||||
width: 15em
|
|
||||||
|
|
||||||
h1
|
|
||||||
margin-bottom: 1em
|
|
||||||
img
|
|
||||||
height: 80px
|
|
||||||
margin-bottom: -0.5em
|
|
||||||
width: 80px
|
|
||||||
a
|
|
||||||
text-decoration: none
|
|
||||||
span
|
|
||||||
text-decoration: underline
|
|
||||||
&:hover span
|
|
||||||
text-decoration: none
|
|
||||||
|
|
||||||
#userbar-log-in
|
|
||||||
text-decoration: none
|
|
||||||
img
|
|
||||||
margin:
|
|
||||||
bottom: -4px
|
|
||||||
right: .25em
|
|
||||||
span
|
|
||||||
text-decoration: underline
|
|
||||||
&:hover span
|
|
||||||
text-decoration: none
|
|
||||||
|
|
||||||
|
@import items
|
||||||
@import items/index
|
@import items/index
|
||||||
@import items/show
|
@import items/show
|
||||||
|
@import outfits/new
|
||||||
|
|
55
app/views/layouts/application.html.haml
Normal file
55
app/views/layouts/application.html.haml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
!!! 5
|
||||||
|
%html
|
||||||
|
%head
|
||||||
|
%title Dress to Impress
|
||||||
|
= stylesheet_link_tag "compiled/screen"
|
||||||
|
= javascript_include_tag "http://#{RemoteImpressHost}/assets/js/analytics.js"
|
||||||
|
%body{:class => body_class}
|
||||||
|
#container
|
||||||
|
= yield :before_flashes
|
||||||
|
= flashes
|
||||||
|
|
||||||
|
- if content_for? :content
|
||||||
|
= yield(:content)
|
||||||
|
- else
|
||||||
|
= yield
|
||||||
|
|
||||||
|
- if content_for? :home_link
|
||||||
|
= yield :home_link
|
||||||
|
- else
|
||||||
|
%a#home-link{:href => root_path}
|
||||||
|
%span Dress to Impress
|
||||||
|
|
||||||
|
#userbar
|
||||||
|
- if user_signed_in?
|
||||||
|
== Hey, #{current_user.name}!
|
||||||
|
== You have #{current_user.points} points.
|
||||||
|
= link_to 'Log out', logout_path
|
||||||
|
- else
|
||||||
|
= link_to login_path_with_return_to, :id => 'userbar-log-in' do
|
||||||
|
= image_tag auth_server_icon_url
|
||||||
|
%span Log in
|
||||||
|
|
||||||
|
#footer
|
||||||
|
%ul
|
||||||
|
%li
|
||||||
|
%a{:href => "http://openneo.net/", :target => "_blank"} OpenNeo
|
||||||
|
%li
|
||||||
|
%a{:href => "http://blog.openneo.net/", :target => "_blank"} Blog
|
||||||
|
%li
|
||||||
|
%a{:href => "http://forum.openneo.net/", :target => "_blank"} Forum
|
||||||
|
%li
|
||||||
|
%a{:href => "http://github.com/matchu/openneo-impress"} The Source Code
|
||||||
|
%li
|
||||||
|
%a{:href => "/terms.html"} Terms of Use
|
||||||
|
%div
|
||||||
|
Contact:
|
||||||
|
%ul
|
||||||
|
%li
|
||||||
|
%a{:href => "http://openneo.uservoice.com/forums/40720-dress-to-impress"} Feedback
|
||||||
|
%li
|
||||||
|
%a{:href => "mailto:webmaster@openneo.net"} Questions, comments, bug reports
|
||||||
|
%p
|
||||||
|
Images © 2000-2010 Neopets, Inc. All Rights Reserved.
|
||||||
|
Used With Permission
|
||||||
|
= yield(:javascripts)
|
|
@ -1,40 +1,11 @@
|
||||||
!!! 5
|
- content_for :before_flashes do
|
||||||
%html
|
%h1
|
||||||
%head
|
= link_to items_path do
|
||||||
%title Infinite Closet
|
= image_tag 'http://images.neopets.com/items/mall_floatingneggfaerie.gif'
|
||||||
= stylesheet_link_tag "http://#{RemoteImpressHost}/assets/css/clean/layout.css"
|
%span Infinite Closet
|
||||||
= stylesheet_link_tag "compiled/screen"
|
- content_for :content do
|
||||||
= javascript_include_tag "http://#{RemoteImpressHost}/assets/js/analytics.js"
|
= form_tag items_path, :method => :get do
|
||||||
%body{:class => params[:action]}
|
= text_field_tag :q, @query
|
||||||
#container
|
= submit_tag 'Search', :name => nil
|
||||||
%h1
|
= yield
|
||||||
= link_to items_path do
|
= render :file => 'layouts/application'
|
||||||
= image_tag 'http://images.neopets.com/items/mall_floatingneggfaerie.gif'
|
|
||||||
%span Infinite Closet
|
|
||||||
= flashes
|
|
||||||
= form_tag items_path, :method => :get do
|
|
||||||
= text_field_tag :q, @query
|
|
||||||
= submit_tag 'Search', :name => nil
|
|
||||||
= yield
|
|
||||||
%a#home-link{:href => "http://#{RemoteImpressHost}"}
|
|
||||||
%span Dress to Impress
|
|
||||||
#userbar
|
|
||||||
- if user_signed_in?
|
|
||||||
== Hey, #{current_user.name}!
|
|
||||||
== You have #{current_user.points} points.
|
|
||||||
= link_to 'Log out', logout_path
|
|
||||||
- else
|
|
||||||
= link_to login_path_with_return_to, :id => 'userbar-log-in' do
|
|
||||||
= image_tag auth_server_icon_url
|
|
||||||
%span Log in
|
|
||||||
#footer
|
|
||||||
%ul
|
|
||||||
%li= link_to 'OpenNeo', 'http://www.openneo.net/'
|
|
||||||
%li= link_to 'Blog', 'http://blog.openneo.net/'
|
|
||||||
%li= link_to 'The Source Code', 'http://github.com/matchu/openneo-impress'
|
|
||||||
%li= link_to 'Forum', 'http://forum.openneo.net/'
|
|
||||||
%li= link_to 'Terms of Use', "http://#{RemoteImpressHost}/terms.html"
|
|
||||||
%p
|
|
||||||
Images © 2000-2010 Neopets, Inc. All Rights Reserved.
|
|
||||||
Used With Permission
|
|
||||||
= yield(:javascripts)
|
|
||||||
|
|
|
@ -81,11 +81,8 @@
|
||||||
#no-assets-full-message
|
#no-assets-full-message
|
||||||
We haven't seen this item on this body type before. Have you? Submit its name on the home page if you have!
|
We haven't seen this item on this body type before. Have you? Submit its name on the home page if you have!
|
||||||
/[if IE]
|
/[if IE]
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
= include_javascript_libraries :html5
|
||||||
%script{:src => "http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js", :type => "text/javascript"}
|
= include_javascript_libraries :jquery, :swfobject, :bitly, :addthis
|
||||||
%script{:src => "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js", :type => "text/javascript"}
|
|
||||||
%script{:src => "http://bit.ly/javascript-api.js?version=latest&login=openneo&apiKey=R_4d0438829b7a99860de1d3edf55d8dc8", :type => "text/javascript"}
|
|
||||||
%script{:src => "http://s7.addthis.com/js/250/addthis_widget.js#username=openneo", :type => "text/javascript"}
|
|
||||||
%script{:src => "http://#{RemoteImpressHost}/assets/timestamped/js/jquery.jgrowl-v1278204174.js", :type => "text/javascript"}
|
%script{:src => "http://#{RemoteImpressHost}/assets/timestamped/js/jquery.jgrowl-v1278204174.js", :type => "text/javascript"}
|
||||||
= include_javascripts :edit_outfit_package
|
= include_javascripts :edit_outfit_package
|
||||||
#userbar
|
#userbar
|
||||||
|
@ -115,5 +112,5 @@
|
||||||
%li
|
%li
|
||||||
%a{:href => "mailto:webmaster@openneo.net"} Questions, comments, bug reports
|
%a{:href => "mailto:webmaster@openneo.net"} Questions, comments, bug reports
|
||||||
%p
|
%p
|
||||||
Images © 2000-2010 Neopets, Inc. All Rights Reserved.
|
Images © 2000-2010 Neopets, Inc. All Rights Reserved.
|
||||||
Used With Permission
|
Used With Permission
|
||||||
|
|
107
app/views/outfits/new.html.haml
Normal file
107
app/views/outfits/new.html.haml
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
#outfit-forms
|
||||||
|
#pet-preview
|
||||||
|
= image_tag 'default_preview.png'
|
||||||
|
%span
|
||||||
|
%h1 Dress to Impress
|
||||||
|
%h2 Neopets wearables made easy!
|
||||||
|
= form_tag load_pet_path, :id => 'load-pet-to-wardrobe' do
|
||||||
|
= origin_tag root_path
|
||||||
|
= destination_tag 'wardrobe'
|
||||||
|
%fieldset
|
||||||
|
%legend Enter your pet's name
|
||||||
|
= pet_name_tag
|
||||||
|
%button{:type => "submit"}
|
||||||
|
Plan my outfit!
|
||||||
|
= form_tag wardrobe_path, :method => 'get', :id => 'start-from-scratch' do
|
||||||
|
%fieldset
|
||||||
|
%legend Or start from scratch
|
||||||
|
= pet_attribute_select 'color', @colors, 8
|
||||||
|
= pet_attribute_select 'species', @species
|
||||||
|
%input{:type => "submit", :value => "Go"}
|
||||||
|
%ul#sections
|
||||||
|
%li
|
||||||
|
%a{:href => "http://forum.openneo.net"}
|
||||||
|
= image_tag 'forum.png'
|
||||||
|
%h3
|
||||||
|
%a{:href => "http://forum.openneo.net/"} Forum
|
||||||
|
%div
|
||||||
|
%h4 Join our community!
|
||||||
|
%p
|
||||||
|
Show off your designs, ask for advice, or play silly forum games
|
||||||
|
here.
|
||||||
|
%li
|
||||||
|
%a{:href => items_path}
|
||||||
|
= image_tag 'items.png'
|
||||||
|
%h3
|
||||||
|
%a{:href => items_path}
|
||||||
|
Infinite Closet
|
||||||
|
%div
|
||||||
|
%h4 Looking for something?
|
||||||
|
%p
|
||||||
|
Take a look through our wearables database!
|
||||||
|
= form_tag items_path, :method => 'get' do
|
||||||
|
= text_field_tag 'q', '', :placeholder => raw('search items…'), :type => 'search'
|
||||||
|
= submit_tag 'search'
|
||||||
|
%li#blog-preview
|
||||||
|
%a{:href => "http://blog.openneo.net"}
|
||||||
|
= image_tag 'blog.png'
|
||||||
|
%h3
|
||||||
|
%a{:href => "http://blog.openneo.net/"} OpenNeo Blog
|
||||||
|
%div
|
||||||
|
%h4 We'll keep you posted!
|
||||||
|
%p
|
||||||
|
Dress to Impress is always improving, and you can always stay in
|
||||||
|
the loop through our blog.
|
||||||
|
#description
|
||||||
|
%h2 Built by you, just for you!
|
||||||
|
%p
|
||||||
|
Dress to Impress lets you plan how you want to dress up your Neopets,
|
||||||
|
before you even go shopping! Whenever you give us a Neopet's name, we
|
||||||
|
automatically look up what it's wearing and organize the data into
|
||||||
|
our own wearables database — a community closet, if you will.
|
||||||
|
Then you can plan your outfit, mixing and matching various items, so
|
||||||
|
you can have the best-dressed Neopet in all of Neopia!
|
||||||
|
%p
|
||||||
|
To make all this possible, though, we need your help — and if
|
||||||
|
you log in at the top, we'll keep track of your
|
||||||
|
= link_to 'contributions', contributions_path
|
||||||
|
and award
|
||||||
|
= link_to 'points', top_contributors_path
|
||||||
|
so you can show off just how dedicated you really are!
|
||||||
|
#top-contributors
|
||||||
|
%h3 Top Contributors
|
||||||
|
%ol
|
||||||
|
- @top_contributors.each do |user|
|
||||||
|
%li
|
||||||
|
= link_to user.name, user_contributions_path(user)
|
||||||
|
—
|
||||||
|
= user.points
|
||||||
|
%a{:href => top_contributors_path} see more
|
||||||
|
= form_tag load_pet_path, :id => 'how-can-i-help' do
|
||||||
|
= destination_tag 'needed_items'
|
||||||
|
= origin_tag root_path
|
||||||
|
%h2 How can I help?
|
||||||
|
%p
|
||||||
|
Enter your pet's name, and we'll tell you what items you can help us
|
||||||
|
model. Thanks so much!
|
||||||
|
= pet_name_tag
|
||||||
|
%button{:type => "submit"}
|
||||||
|
Let's model!
|
||||||
|
= form_tag load_pet_path, :id => 'i-found-something' do
|
||||||
|
= origin_tag root_path
|
||||||
|
%a{:href => bulk_pets_path}
|
||||||
|
add many pets
|
||||||
|
%h2 I found something!
|
||||||
|
%p
|
||||||
|
Enter the name of the pet you found, and we'll keep a copy of what
|
||||||
|
it's wearing. Thanks so much!
|
||||||
|
= pet_name_tag
|
||||||
|
%button{:type => "submit"}
|
||||||
|
I pwn!
|
||||||
|
- content_for :home_link do
|
||||||
|
%button#tell-the-world.button.addthis_button
|
||||||
|
%img{:src => "http://s7.addthis.com/static/t00/logo1414.gif"}
|
||||||
|
Tell the world!
|
||||||
|
- content_for :javascripts do
|
||||||
|
= include_javascript_libraries :jquery, :addthis
|
||||||
|
= include_javascripts :new_outfit_package
|
|
@ -4,3 +4,7 @@ javascripts:
|
||||||
edit_outfit_package:
|
edit_outfit_package:
|
||||||
- public/javascripts/wardrobe.js
|
- public/javascripts/wardrobe.js
|
||||||
- public/javascripts/outfits/edit.js
|
- public/javascripts/outfits/edit.js
|
||||||
|
|
||||||
|
new_outfit_package:
|
||||||
|
- public/javascripts/pet_query.js
|
||||||
|
- public/javascripts/outfits/new.js
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
OpenneoImpressItems::Application.routes.draw do |map|
|
OpenneoImpressItems::Application.routes.draw do |map|
|
||||||
root :to => 'items#index'
|
root :to => 'outfits#new'
|
||||||
match '/' => 'items#index', :as => :items
|
match '/' => 'items#index', :as => :items
|
||||||
match '/index.js' => 'items#index', :format => :js
|
match '/index.js' => 'items#index', :format => :js
|
||||||
match '/items.json' => 'items#index', :format => :json
|
match '/items.json' => 'items#index', :format => :json
|
||||||
|
@ -15,13 +15,26 @@ OpenneoImpressItems::Application.routes.draw do |map|
|
||||||
match '/pet_states/:pet_state_id/swf_assets.json' => 'swf_assets#index', :as => :pet_state_swf_assets
|
match '/pet_states/:pet_state_id/swf_assets.json' => 'swf_assets#index', :as => :pet_state_swf_assets
|
||||||
match '/species/:species_id/color/:color_id/pet_type.json' => 'pet_types#show'
|
match '/species/:species_id/color/:color_id/pet_type.json' => 'pet_types#show'
|
||||||
|
|
||||||
resources :items, :only => [:index]
|
resources :contributions, :only => [:index]
|
||||||
|
resources :items, :only => [:index] do
|
||||||
|
collection do
|
||||||
|
get :needed
|
||||||
|
end
|
||||||
|
end
|
||||||
resources :pet_attributes, :only => [:index]
|
resources :pet_attributes, :only => [:index]
|
||||||
resources :pets, :only => [:show]
|
|
||||||
|
match '/pets/load' => 'pets#load', :method => :post, :as => :load_pet
|
||||||
|
match '/pets/bulk' => 'pets#bulk', :as => :bulk_pets
|
||||||
|
|
||||||
match '/login' => 'sessions#new', :as => :login
|
match '/login' => 'sessions#new', :as => :login
|
||||||
match '/logout' => 'sessions#destroy', :as => :logout
|
match '/logout' => 'sessions#destroy', :as => :logout
|
||||||
match '/users/authorize' => 'sessions#create'
|
match '/users/authorize' => 'sessions#create'
|
||||||
|
|
||||||
|
resources :user, :only => [] do
|
||||||
|
resources :contributions, :only => [:index]
|
||||||
|
end
|
||||||
|
match 'users/top-contributors' => 'users#top_contributors', :as => :top_contributors
|
||||||
|
match 'users/top_contributors' => redirect('/users/top-contributors')
|
||||||
|
|
||||||
match '/wardrobe' => 'outfits#edit', :as => :wardrobe
|
match '/wardrobe' => 'outfits#edit', :as => :wardrobe
|
||||||
end
|
end
|
||||||
|
|
BIN
public/images/blog.png
Normal file
BIN
public/images/blog.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4 KiB |
BIN
public/images/default_preview.png
Normal file
BIN
public/images/default_preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 142 KiB |
BIN
public/images/forum.png
Normal file
BIN
public/images/forum.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
public/images/items.png
Normal file
BIN
public/images/items.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7 KiB |
176
public/javascripts/outfits/new.js
Normal file
176
public/javascripts/outfits/new.js
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
(function () { // don't need to export anything in here
|
||||||
|
|
||||||
|
var preview_el = $('#pet-preview'),
|
||||||
|
img_el = preview_el.find('img'),
|
||||||
|
response_el = preview_el.find('span'),
|
||||||
|
name_el = $('#name');
|
||||||
|
|
||||||
|
preview_el.click(function () {
|
||||||
|
name_el.val(Preview.Job.current.name).closest('form').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
var Preview = {
|
||||||
|
clear: function () {
|
||||||
|
if(typeof Preview.Job.fallback != 'undefined') Preview.Job.fallback.setAsCurrent();
|
||||||
|
},
|
||||||
|
displayLoading: function () {
|
||||||
|
preview_el.addClass('loading');
|
||||||
|
response_el.text('Loading...');
|
||||||
|
},
|
||||||
|
notFound: function (str) {
|
||||||
|
preview_el.addClass('hidden');
|
||||||
|
response_el.text(str);
|
||||||
|
},
|
||||||
|
updateWithName: function () {
|
||||||
|
var name = name_el.val(), job;
|
||||||
|
if(name) {
|
||||||
|
currentName = name;
|
||||||
|
if(!Preview.Job.current || name != Preview.Job.current.name) {
|
||||||
|
job = new Preview.Job.Name(name);
|
||||||
|
job.setAsCurrent();
|
||||||
|
Preview.displayLoading();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Preview.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.get('/spotlight_pets.txt', function (data) {
|
||||||
|
var names = data.split('\n'), i = Math.floor(Math.random()*(names.length-1));
|
||||||
|
Preview.Job.fallback = new Preview.Job.Name(names[i]);
|
||||||
|
if(!Preview.Job.current) {
|
||||||
|
Preview.Job.fallback.setAsCurrent();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Preview.Job = function (key, base) {
|
||||||
|
var job = this,
|
||||||
|
quality = 2;
|
||||||
|
job.loading = false;
|
||||||
|
|
||||||
|
function getImageSrc() {
|
||||||
|
return petImage(base + '/' + key, quality);
|
||||||
|
}
|
||||||
|
|
||||||
|
function load() {
|
||||||
|
job.loading = true;
|
||||||
|
img_el.attr('src', getImageSrc());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.increaseQualityIfPossible = function () {
|
||||||
|
if(quality == 2) {
|
||||||
|
quality = 4;
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setAsCurrent = function () {
|
||||||
|
Preview.Job.current = job;
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Preview.Job.Name = function (name) {
|
||||||
|
this.name = name;
|
||||||
|
Preview.Job.apply(this, [name, 'cpn']);
|
||||||
|
}
|
||||||
|
|
||||||
|
Preview.Job.Hash = function (hash) {
|
||||||
|
Preview.Job.apply(this, [hash, 'cp']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
var previewWithNameTimeout;
|
||||||
|
|
||||||
|
name_el.val(PetQuery.name);
|
||||||
|
Preview.updateWithName();
|
||||||
|
|
||||||
|
name_el.keyup(function () {
|
||||||
|
if(previewWithNameTimeout) {
|
||||||
|
clearTimeout(previewWithNameTimeout);
|
||||||
|
Preview.Job.current.loading = false;
|
||||||
|
}
|
||||||
|
previewWithNameTimeout = setTimeout(Preview.updateWithName, 250);
|
||||||
|
});
|
||||||
|
|
||||||
|
img_el.load(function () {
|
||||||
|
if(Preview.Job.current.loading) {
|
||||||
|
Preview.Job.loading = false;
|
||||||
|
Preview.Job.current.increaseQualityIfPossible();
|
||||||
|
preview_el.removeClass('loading').removeClass('hidden').addClass('loaded');
|
||||||
|
response_el.text(Preview.Job.current.name);
|
||||||
|
}
|
||||||
|
}).error(function () {
|
||||||
|
if(Preview.Job.current.loading) {
|
||||||
|
Preview.Job.loading = false;
|
||||||
|
Preview.notFound('Pet not found.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var selectFields = $('#species, #color');
|
||||||
|
selectFields.change(function () {
|
||||||
|
var type = {}, name = [];
|
||||||
|
selectFields.each(function () {
|
||||||
|
var el = $(this), selectedEl = el.children(':selected');
|
||||||
|
type[el.attr('id')] = selectedEl.val();
|
||||||
|
name.push(selectedEl.text());
|
||||||
|
});
|
||||||
|
name = name.join(' ');
|
||||||
|
Preview.displayLoading();
|
||||||
|
$.ajax({
|
||||||
|
url: '/pet_types.json',
|
||||||
|
data: {
|
||||||
|
'for': 'image',
|
||||||
|
'species_id': type.species,
|
||||||
|
'color_id': type.color
|
||||||
|
},
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (data) {
|
||||||
|
var job;
|
||||||
|
if(data) {
|
||||||
|
job = new Preview.Job.Hash(data.image_hash);
|
||||||
|
job.name = name;
|
||||||
|
job.setAsCurrent();
|
||||||
|
} else {
|
||||||
|
Preview.notFound("We haven't seen a " + name + ". Have you?");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
Preview.notFound("Error fetching preview. Try again?");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$.getJSON('http://blog.openneo.net/api/read/json?callback=?', function (data) {
|
||||||
|
var post = data.posts[0], el = $('#blog-preview'),
|
||||||
|
url = post['url-with-slug'], header = "Here's the latest!", body = '',
|
||||||
|
truncate_body_at = 100, image;
|
||||||
|
if(post.type == 'regular') {
|
||||||
|
header = post['regular-title'];
|
||||||
|
body = post['regular-body'];
|
||||||
|
} else if(post.type == 'link') {
|
||||||
|
header = post['link-text'];
|
||||||
|
body = post['link-description'];
|
||||||
|
} else if(post.type == 'photo') {
|
||||||
|
body = post['photo-caption'];
|
||||||
|
image = post['photo-url-75'];
|
||||||
|
}
|
||||||
|
body = body.replace(/(<\/?[\S][^>]*>)/gi, '');
|
||||||
|
if(body.length > truncate_body_at) {
|
||||||
|
body = body.substring(0, truncate_body_at);
|
||||||
|
body = body.replace(/\s+\w+$/, '');
|
||||||
|
body += '…';
|
||||||
|
}
|
||||||
|
el.find('h4').text(header).wrapInner($('<a/>', {href: url}));
|
||||||
|
el.find('p').html(body);
|
||||||
|
$('<a/>', {'id': 'read-more', href: url, text: 'read more'}).appendTo(el.find('div'));
|
||||||
|
if(image) {
|
||||||
|
el.find('img').attr('src', image).parent().attr('href', url);
|
||||||
|
}
|
||||||
|
el.children('div').hide().fadeIn('slow');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
})();
|
29
public/javascripts/pet_query.js
Normal file
29
public/javascripts/pet_query.js
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
function petImage(id, size) {
|
||||||
|
return 'http://pets.neopets.com/' + id + '/1/' + size + '.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
var PetQuery = {},
|
||||||
|
query_string = document.location.hash || document.location.search;
|
||||||
|
|
||||||
|
$.each(query_string.substr(1).split('&'), function () {
|
||||||
|
var split_piece = this.split('=');
|
||||||
|
if(split_piece.length == 2) {
|
||||||
|
PetQuery[split_piece[0]] = split_piece[1];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(PetQuery.name) {
|
||||||
|
if(PetQuery.species && PetQuery.color) {
|
||||||
|
var notice = $('<div></div>', {
|
||||||
|
'class': 'success',
|
||||||
|
'html': "Thanks for showing us <strong>" + PetQuery.name + "</strong>! " +
|
||||||
|
"Keep up the good work!"
|
||||||
|
}),
|
||||||
|
image = $('<img/>', {
|
||||||
|
'class': 'inline-image',
|
||||||
|
'src': petImage('cpn/' + PetQuery.name, 1)
|
||||||
|
});
|
||||||
|
image.prependTo(notice);
|
||||||
|
notice.prependTo('#container');
|
||||||
|
}
|
||||||
|
}
|
58
public/spotlight_pets.txt
Normal file
58
public/spotlight_pets.txt
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
Tanymu
|
||||||
|
Yenivie
|
||||||
|
__Shippou_chan__
|
||||||
|
Veii
|
||||||
|
Mexitl
|
||||||
|
Dizum
|
||||||
|
estermineishon
|
||||||
|
TavishDileas
|
||||||
|
Mattid
|
||||||
|
Oraille
|
||||||
|
Tommy_XBoy
|
||||||
|
Kapurnia
|
||||||
|
Dakota6252
|
||||||
|
hlos
|
||||||
|
JCMK0589
|
||||||
|
xorol
|
||||||
|
bramley
|
||||||
|
Okebi
|
||||||
|
Viqc
|
||||||
|
Kithiarah
|
||||||
|
Kuschelix
|
||||||
|
Hiawana
|
||||||
|
Aramaoi
|
||||||
|
Amtal
|
||||||
|
D3SFrosch
|
||||||
|
Xhrounis
|
||||||
|
kim_pik
|
||||||
|
Manshierah
|
||||||
|
0Max_Sombra0
|
||||||
|
Venus
|
||||||
|
Grymma
|
||||||
|
DivaBlu
|
||||||
|
Skaech
|
||||||
|
__FIRE_WING_2001
|
||||||
|
Jieane
|
||||||
|
ambersands
|
||||||
|
Milkstick
|
||||||
|
cutecumberrr
|
||||||
|
Frost_Pelt
|
||||||
|
lauren_ashley09
|
||||||
|
Melina_Rodriges
|
||||||
|
sara_626_778
|
||||||
|
Marrie_MyCuteKacheek
|
||||||
|
cauchy_xvii
|
||||||
|
Kahq
|
||||||
|
Xaeladora
|
||||||
|
darck_faerie
|
||||||
|
Sweet_Seraph
|
||||||
|
Kauboii_
|
||||||
|
LunaScarlett
|
||||||
|
Vuranje
|
||||||
|
Aubepines
|
||||||
|
rubythexweetok4
|
||||||
|
suzusuzu0423
|
||||||
|
Tzaviare
|
||||||
|
Delphinid_Redux
|
||||||
|
CrunchCrunch979_2005
|
||||||
|
Lennythebluedumdum
|
|
@ -1,55 +1,404 @@
|
||||||
/* line 4, ../../../app/stylesheets/screen.sass */
|
/* Reset */
|
||||||
|
/* line 3, ../../../app/stylesheets/_layout.sass */
|
||||||
|
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
|
||||||
|
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
|
||||||
|
font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b,
|
||||||
|
u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
|
||||||
|
caption, tbody, tfoot, thead, tr, th, td {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
outline: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
vertical-align: baseline;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography */
|
||||||
|
/* line 18, ../../../app/stylesheets/_layout.sass */
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 21, ../../../app/stylesheets/_layout.sass */
|
||||||
body {
|
body {
|
||||||
|
color: #004400;
|
||||||
|
font-family: "Droid Sans", Helvetica, Arial, Verdana, sans-serif;
|
||||||
|
font-size: 90%;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 28, ../../../app/stylesheets/_layout.sass */
|
||||||
|
a {
|
||||||
|
color: #226622;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 31, ../../../app/stylesheets/_layout.sass */
|
||||||
|
p {
|
||||||
|
font-family: "Droid Serif", Georgia, "Times New Roman", Times, serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 34, ../../../app/stylesheets/_layout.sass */
|
||||||
|
input, button, select {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 39, ../../../app/stylesheets/_layout.sass */
|
||||||
|
p {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 42, ../../../app/stylesheets/_layout.sass */
|
||||||
|
h1, h2, h3 {
|
||||||
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 45, ../../../app/stylesheets/_layout.sass */
|
||||||
|
h1 {
|
||||||
|
font-size: 3em;
|
||||||
|
line-height: 1;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 50, ../../../app/stylesheets/_layout.sass */
|
||||||
|
h2 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin-bottom: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 54, ../../../app/stylesheets/_layout.sass */
|
||||||
|
h3 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 59, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.inline-image {
|
||||||
|
margin-right: 1em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Main */
|
||||||
|
/* line 67, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#container {
|
||||||
|
margin: 1em auto;
|
||||||
|
padding-top: 3em;
|
||||||
|
position: relative;
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 73, ../../../app/stylesheets/_layout.sass */
|
||||||
|
input, button, select, label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 76, ../../../app/stylesheets/_layout.sass */
|
||||||
|
input[type=text], input[type=password], input[type=search], select {
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
background: white;
|
||||||
|
border: 1px solid #cceecc;
|
||||||
|
color: #448844;
|
||||||
|
padding: 0.25em;
|
||||||
|
}
|
||||||
|
/* line 82, ../../../app/stylesheets/_layout.sass */
|
||||||
|
input[type=text]:focus, input[type=text]:active, input[type=password]:focus, input[type=password]:active, input[type=search]:focus, input[type=search]:active, select:focus, select:active {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 85, ../../../app/stylesheets/_layout.sass */
|
||||||
|
a.button, input[type=submit], button {
|
||||||
|
/* http://www.zurb.com/blog_uploads/0000/0617/buttons-03.html */
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
background: #006400 url(/assets/images/alert-overlay.png) 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;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
a.button:hover, input[type=submit]:hover, button:hover {
|
||||||
|
background-color: #005300;
|
||||||
|
}
|
||||||
|
/* line 53, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
a.button:hover, input[type=submit]:hover, button:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/* line 55, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
a.button:active, input[type=submit]:active, button:active {
|
||||||
|
top: 1px;
|
||||||
|
}
|
||||||
|
/* line 87, ../../../app/stylesheets/_layout.sass */
|
||||||
|
a.button.loud, input[type=submit].loud, button.loud {
|
||||||
|
background: #ff5c00 url(/assets/images/alert-overlay.png) repeat-x;
|
||||||
|
font-size: 125%;
|
||||||
|
padding: 8px 14px 9px;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
a.button.loud:hover, input[type=submit].loud:hover, button.loud:hover {
|
||||||
|
background-color: #ee4b00;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 67, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
a.button:after {
|
||||||
|
content: " >>";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 93, ../../../app/stylesheets/_layout.sass */
|
||||||
|
ul.buttons {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
/* line 95, ../../../app/stylesheets/_layout.sass */
|
||||||
|
ul.buttons li {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0 0.5em;
|
||||||
|
}
|
||||||
|
/* line 98, ../../../app/stylesheets/_layout.sass */
|
||||||
|
ul.buttons li, ul.buttons li form {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 101, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#footer {
|
||||||
|
clear: both;
|
||||||
|
font-size: 75%;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
padding-top: 2em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
/* line 107, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#footer ul, #footer div {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 1em;
|
||||||
|
}
|
||||||
|
/* line 110, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#footer li, #footer div ul {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 114, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.success, .alert, .warning {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 7, ../../../app/stylesheets/screen.sass */
|
/* line 119, ../../../app/stylesheets/_layout.sass */
|
||||||
input[type=text] {
|
.success {
|
||||||
font-size: 125%;
|
background: #e6efc2;
|
||||||
width: 15em;
|
border: 1px solid #c6d880;
|
||||||
|
color: #264409;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 11, ../../../app/stylesheets/screen.sass */
|
/* line 124, ../../../app/stylesheets/_layout.sass */
|
||||||
h1 {
|
.alert {
|
||||||
margin-bottom: 1em;
|
background: #fbe3e4;
|
||||||
}
|
border: 1px solid #fbc2c4;
|
||||||
/* line 13, ../../../app/stylesheets/screen.sass */
|
color: #8a1f11;
|
||||||
h1 img {
|
|
||||||
height: 80px;
|
|
||||||
margin-bottom: -0.5em;
|
|
||||||
width: 80px;
|
|
||||||
}
|
|
||||||
/* line 17, ../../../app/stylesheets/screen.sass */
|
|
||||||
h1 a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
/* line 19, ../../../app/stylesheets/screen.sass */
|
|
||||||
h1 a span {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
/* line 21, ../../../app/stylesheets/screen.sass */
|
|
||||||
h1 a:hover span {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* line 24, ../../../app/stylesheets/screen.sass */
|
/* line 129, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.warning {
|
||||||
|
background: #fff6bf;
|
||||||
|
border: 1px solid #ffd324;
|
||||||
|
color: #514721;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 134, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#userbar {
|
||||||
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
/* line 139, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#userbar > * {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 143, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in {
|
#userbar-log-in {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/* line 26, ../../../app/stylesheets/screen.sass */
|
/* line 145, ../../../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 30, ../../../app/stylesheets/screen.sass */
|
/* line 149, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in span {
|
#userbar-log-in span {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
/* line 32, ../../../app/stylesheets/screen.sass */
|
/* line 151, ../../../app/stylesheets/_layout.sass */
|
||||||
#userbar-log-in:hover span {
|
#userbar-log-in:hover span {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* line 154, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.object {
|
||||||
|
display: -moz-inline-box;
|
||||||
|
-moz-box-orient: vertical;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
*display: inline;
|
||||||
|
*vertical-align: auto;
|
||||||
|
padding: 0.5em;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
/* line 161, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.object a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
/* line 163, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.object a img {
|
||||||
|
-moz-opacity: 0.75;
|
||||||
|
-webkit-opacity: 0.75;
|
||||||
|
-o-opacity: 0.75;
|
||||||
|
-khtml-opacity: 0.75;
|
||||||
|
}
|
||||||
|
/* line 165, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.object a:hover img {
|
||||||
|
-moz-opacity: 1;
|
||||||
|
-webkit-opacity: 1;
|
||||||
|
-o-opacity: 1;
|
||||||
|
-khtml-opacity: 1;
|
||||||
|
}
|
||||||
|
/* line 167, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.object img {
|
||||||
|
display: block;
|
||||||
|
height: 80px;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 173, ../../../app/stylesheets/_layout.sass */
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 176, ../../../app/stylesheets/_layout.sass */
|
||||||
|
dd {
|
||||||
|
margin: 0 0 1.5em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 179, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#home-link {
|
||||||
|
font-family: Delicious, Helvetica, Arial, Verdana, sans-serif;
|
||||||
|
font-size: 175%;
|
||||||
|
font-weight: bold;
|
||||||
|
left: 0;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 0.25em;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
/* line 189, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#home-link:hover {
|
||||||
|
background: #eeffee;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
/* line 192, ../../../app/stylesheets/_layout.sass */
|
||||||
|
#home-link span:before {
|
||||||
|
content: "<< ";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 196, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.pagination a, .pagination span {
|
||||||
|
margin: 0 0.5em;
|
||||||
|
}
|
||||||
|
/* line 198, ../../../app/stylesheets/_layout.sass */
|
||||||
|
.pagination .current {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fonts */
|
||||||
|
/* A font by Jos Buivenga (exljbris) -> www.exljbris.nl */
|
||||||
|
@font-face {
|
||||||
|
font-family: Delicious;
|
||||||
|
src: url("/assets/fonts/Delicious-Roman.otf");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Delicious;
|
||||||
|
font-weight: bold;
|
||||||
|
src: url("/assets/fonts/Delicious-Bold.otf");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Delicious;
|
||||||
|
font-style: italic;
|
||||||
|
src: url("/assets/fonts/Delicious-Italic.otf");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Droid Serif";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local("Droid Serif"), url("http://themes.googleusercontent.com/font?kit=70P0G8gxVDIV6F9om0DsKg") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Droid Serif";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local("Droid Serif"), url("http://themes.googleusercontent.com/font?kit=QQt14e8dY39u-eYBZmppwf5Jgr8ufe5A6KahQF76Xmg") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Droid Sans";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local("Droid Sans"), url("http://themes.googleusercontent.com/font?kit=POVDFY-UUf0WFR9DIMCU8g") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 1, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
/* line 4, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items input[type=text] {
|
||||||
|
font-size: 125%;
|
||||||
|
width: 15em;
|
||||||
|
}
|
||||||
|
/* line 8, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items h1 {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
/* line 10, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items h1 img {
|
||||||
|
height: 80px;
|
||||||
|
margin-bottom: -0.5em;
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
/* line 14, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items h1 a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
/* line 16, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items h1 a span {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
/* line 18, ../../../app/stylesheets/_items.sass */
|
||||||
|
body.items h1 a:hover span {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* line 8, ../../../app/stylesheets/items/_index.sass */
|
/* line 8, ../../../app/stylesheets/items/_index.sass */
|
||||||
body.items-index form {
|
body.items-index form {
|
||||||
margin-bottom: 2em;
|
margin-bottom: 2em;
|
||||||
|
@ -64,9 +413,10 @@ body.items-index .object .nc-icon {
|
||||||
}
|
}
|
||||||
/* line 17, ../../../app/stylesheets/items/_index.sass */
|
/* line 17, ../../../app/stylesheets/items/_index.sass */
|
||||||
body.items-index .object .nc-icon:hover {
|
body.items-index .object .nc-icon:hover {
|
||||||
opacity: 0.5;
|
-moz-opacity: 0.5;
|
||||||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
-webkit-opacity: 0.5;
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
-o-opacity: 0.5;
|
||||||
|
-khtml-opacity: 0.5;
|
||||||
}
|
}
|
||||||
/* line 20, ../../../app/stylesheets/items/_index.sass */
|
/* line 20, ../../../app/stylesheets/items/_index.sass */
|
||||||
body.items-index #search-help {
|
body.items-index #search-help {
|
||||||
|
@ -167,9 +517,10 @@ body.items-show #item-preview-species a.current {
|
||||||
}
|
}
|
||||||
/* line 34, ../../../app/stylesheets/items/_show.sass */
|
/* line 34, ../../../app/stylesheets/items/_show.sass */
|
||||||
body.items-show #item-preview-species a.deactivated {
|
body.items-show #item-preview-species a.deactivated {
|
||||||
opacity: 0.5;
|
-moz-opacity: 0.5;
|
||||||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
-webkit-opacity: 0.5;
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
-o-opacity: 0.5;
|
||||||
|
-khtml-opacity: 0.5;
|
||||||
background: #fbe3e4;
|
background: #fbe3e4;
|
||||||
}
|
}
|
||||||
/* line 39, ../../../app/stylesheets/items/_show.sass */
|
/* line 39, ../../../app/stylesheets/items/_show.sass */
|
||||||
|
@ -220,3 +571,248 @@ body.items-show .nc-icon {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* line 2, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms {
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
background: #eeffee;
|
||||||
|
border: 1px solid #006600;
|
||||||
|
padding: 1em;
|
||||||
|
margin-bottom: 3em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
/* line 8, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.outfits-new #outfit-forms {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 7, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms h1 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
/* line 9, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms h2 {
|
||||||
|
font-size: 150%;
|
||||||
|
font-style: italic;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
/* line 14, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview {
|
||||||
|
float: left;
|
||||||
|
height: 300px;
|
||||||
|
margin-right: 2em;
|
||||||
|
position: relative;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
/* line 20, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview img {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
/* line 23, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview.loading img {
|
||||||
|
-moz-opacity: 0.5;
|
||||||
|
-webkit-opacity: 0.5;
|
||||||
|
-o-opacity: 0.5;
|
||||||
|
-khtml-opacity: 0.5;
|
||||||
|
}
|
||||||
|
/* line 25, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview.hidden img {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 27, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview.loaded {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
/* line 29, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview span {
|
||||||
|
background: gray;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
bottom: 0;
|
||||||
|
color: white;
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
/* line 37, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms #pet-preview span:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 39, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms fieldset {
|
||||||
|
position: relative;
|
||||||
|
left: 1em;
|
||||||
|
}
|
||||||
|
/* line 42, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #outfit-forms fieldset legend {
|
||||||
|
margin-left: -1em;
|
||||||
|
}
|
||||||
|
/* line 44, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #load-pet-to-wardrobe {
|
||||||
|
font-size: 175%;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
/* line 49, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #load-pet-to-wardrobe input {
|
||||||
|
font-size: 67%;
|
||||||
|
padding: 0.5em;
|
||||||
|
width: 10em;
|
||||||
|
}
|
||||||
|
/* line 53, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #load-pet-to-wardrobe button {
|
||||||
|
background: #ff5c00 url(/assets/images/alert-overlay.png) repeat-x;
|
||||||
|
font-size: 125%;
|
||||||
|
padding: 8px 14px 9px;
|
||||||
|
font-size: 67%;
|
||||||
|
}
|
||||||
|
/* line 34, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.outfits-new #load-pet-to-wardrobe button:hover {
|
||||||
|
background-color: #ee4b00;
|
||||||
|
}
|
||||||
|
/* line 56, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #description, body.outfits-new #top-contributors {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
/* line 58, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #description {
|
||||||
|
margin-right: 2%;
|
||||||
|
width: 64%;
|
||||||
|
}
|
||||||
|
/* line 61, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #top-contributors {
|
||||||
|
border: 1px solid #cceecc;
|
||||||
|
margin-top: 1em;
|
||||||
|
padding: 1%;
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
/* line 66, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #top-contributors ol {
|
||||||
|
margin-left: 2em;
|
||||||
|
padding-left: 1em;
|
||||||
|
}
|
||||||
|
/* line 69, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #top-contributors > a {
|
||||||
|
font-size: 80%;
|
||||||
|
display: block;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
/* line 73, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #how-can-i-help, body.outfits-new #i-found-something {
|
||||||
|
background: #eeffee;
|
||||||
|
border: 1px solid #006600;
|
||||||
|
padding: 1em;
|
||||||
|
float: left;
|
||||||
|
padding: 1%;
|
||||||
|
width: 46%;
|
||||||
|
}
|
||||||
|
/* line 78, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #how-can-i-help h2, body.outfits-new #i-found-something h2 {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
/* line 80, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #how-can-i-help input, body.outfits-new #how-can-i-help button, body.outfits-new #i-found-something input, body.outfits-new #i-found-something button {
|
||||||
|
font-size: 115%;
|
||||||
|
}
|
||||||
|
/* line 82, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #how-can-i-help input[type=text], body.outfits-new #i-found-something input[type=text] {
|
||||||
|
border-color: #006600;
|
||||||
|
width: 12em;
|
||||||
|
}
|
||||||
|
/* line 85, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #how-can-i-help {
|
||||||
|
margin-right: 1%;
|
||||||
|
}
|
||||||
|
/* line 87, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #i-found-something {
|
||||||
|
margin-left: 1%;
|
||||||
|
}
|
||||||
|
/* line 89, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #i-found-something a {
|
||||||
|
float: right;
|
||||||
|
font-size: 87.5%;
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
/* line 98, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections {
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
display: table;
|
||||||
|
list-style: none;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
/* line 8, ../../../app/stylesheets/partials/clean/_mixins.sass */
|
||||||
|
body.outfits-new #sections {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 103, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections h3 {
|
||||||
|
margin-bottom: 0.25em;
|
||||||
|
}
|
||||||
|
/* line 105, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections li {
|
||||||
|
border-left-color: #006600;
|
||||||
|
border-left-style: solid;
|
||||||
|
border-left-width: 1px;
|
||||||
|
display: table-cell;
|
||||||
|
padding: 0.5em;
|
||||||
|
position: relative;
|
||||||
|
width: 33.333%;
|
||||||
|
}
|
||||||
|
/* line 114, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections li:first-child {
|
||||||
|
border-left: 0;
|
||||||
|
}
|
||||||
|
/* line 116, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections div {
|
||||||
|
color: #448844;
|
||||||
|
font-size: 75%;
|
||||||
|
margin-left: 1em;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
/* line 121, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections h4, body.outfits-new #sections input {
|
||||||
|
font-size: 116%;
|
||||||
|
}
|
||||||
|
/* line 123, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections h4, body.outfits-new #sections input[type=text] {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
/* line 125, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections h4 a {
|
||||||
|
background: #ffffc0;
|
||||||
|
}
|
||||||
|
/* line 127, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections img {
|
||||||
|
-moz-opacity: 0.75;
|
||||||
|
-webkit-opacity: 0.75;
|
||||||
|
-o-opacity: 0.75;
|
||||||
|
-khtml-opacity: 0.75;
|
||||||
|
float: right;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
/* line 131, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #sections img:hover {
|
||||||
|
-moz-opacity: 1;
|
||||||
|
-webkit-opacity: 1;
|
||||||
|
-o-opacity: 1;
|
||||||
|
-khtml-opacity: 1;
|
||||||
|
}
|
||||||
|
/* line 133, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #read-more {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
/* line 135, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #tell-the-world {
|
||||||
|
font-size: 87.5%;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
/* line 140, ../../../app/stylesheets/outfits/_new.sass */
|
||||||
|
body.outfits-new #tell-the-world img {
|
||||||
|
margin-bottom: -0.25em;
|
||||||
|
margin-right: 0.25em;
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue