Matchu
0aca529e27
checkbox for closet management
...
drop the remove link (just use quantity: 0)
to create a bigger checkbox label target
2015-09-26 13:56:25 -07:00
Matchu
9108703dd0
womp womp, our source link was broken. thanks, dice.
2015-09-26 13:18:58 -07:00
Matchu
b953e572a3
hide desc on complete campaign; add toggle link
2015-09-26 13:17:38 -07:00
Matchu
4ae43f61ea
good-enough zeroclipboard implementation
2015-09-24 20:50:27 -07:00
Matchu
90ac52dc74
tweak the fine print phrasing again ;P
2015-09-22 22:41:00 -07:00
Matchu
2ca784c3a2
thank-you message automatically deploys on campaign success
2015-09-22 22:40:51 -07:00
Matchu
5466cc9301
when remaining costs < $200, pitch harder
2015-09-22 22:19:43 -07:00
7b17f70635
show campaign on trade lists
...
Turns out ~22% of our users initially land on a trade list.
We like to keep the campaign off the pages where space is at a
premium, so we try to whitelist it to major landing pages in order
to avoid accidentally creating a bad experience on some page :)
2015-09-05 17:53:15 +00:00
Matchu
a4079d2e0c
campaign 2015 copy updates
2015-08-30 16:49:46 -07:00
Matchu
b11d7a8c9c
oh dang, did we just fix most of the mixed content?
2015-08-05 20:11:08 -04:00
Matchu
4a18f22571
camo the emotes on the campaign show page
2015-08-05 19:41:42 -04:00
Matchu
5d2c226357
yum, new campaigns
2015-08-05 19:26:12 -04:00
Matchu
b9a9ce3890
import from gallery
...
some of the stuff to support single-pageiness feels a bit hacky. ah, well :P
2015-07-28 15:05:40 -04:00
Matchu
deb0aa90f0
refactor importing
2015-07-27 13:25:24 -04:00
Matchu
dcf254a78d
finally let people remove all items from the list at once.
...
I've been doing this manually via email for a long time,
since building new stuff in the logged-in world was a pain in the old env.
But now here we are! Finally, finally :)
2015-07-19 12:35:49 -04:00
Matchu
b639453f61
on a fresh copy of the site, hide the latest contribution section
2015-07-16 18:39:43 -04:00
Matchu
e9449b70f2
update impress repository URL :)
2015-07-16 14:21:35 -04:00
093ae27ae8
get upset when we neopets.com bans us :P
2015-07-15 00:09:17 -04:00
b0cc4c2396
swf links
2015-05-03 16:57:42 -05:00
bf9f9ed82e
download links for each image size
2015-05-03 16:37:24 -05:00
caaf524060
download link in left sidebar
2015-05-03 16:01:08 -05:00
0e6f823154
toggle whether a donation campaign is advertised
2015-02-25 13:49:18 -06:00
a3c31f7042
yum, we accept bitcoin!
2014-12-23 23:22:15 -05:00
6f92df17a4
remove the image mode faq link, because it is now super outdated :/
2014-12-22 12:26:37 -05:00
026bdbbc0c
warn users with trading lists but no neomail address
2014-12-02 10:05:11 -06:00
f11d95c273
drop dat donation banner, yo
2014-11-20 14:27:16 -06:00
41da9d0629
swap the homepage forms back in anticipation of Neopets.com uptime
2014-09-19 07:26:30 -05:00
8e3a2f59e9
swap the new outfit forms because downtime
2014-09-17 22:48:48 -05:00
29c58cf1a3
thank you note, future donations explanation
2014-09-17 14:28:50 -05:00
e2f4ff383f
further notes on payment and precise currency
2014-09-13 22:59:44 -05:00
cf2550c7bc
for large donations, show a banner instead of their placeholder outfits
2014-09-13 20:54:39 -05:00
75e9fcbe5a
when there are no donors yet, draw less attention to that fact :P
2014-09-11 20:58:43 -05:00
be87039cba
copy edits
2014-09-11 20:43:40 -05:00
94d9aab547
campaign bar in infinite closet
2014-09-11 20:12:43 -05:00
8f0f37b4c8
campaign for outfit pages
2014-09-11 20:10:48 -05:00
d588253c4c
campaign banner on homepage is pretty
2014-09-11 18:09:00 -05:00
8e22c271a4
track campaign progress
2014-09-11 17:40:37 -05:00
04a328e6ee
homepage outfit features
2014-09-10 15:38:26 -05:00
f11f6374da
donation mailer
2014-09-10 14:32:54 -05:00
90b45dcecd
edit featured outfits on donation page
2014-09-09 23:16:02 -05:00
59d5e99312
donation show form and basic name updating
2014-09-09 22:04:17 -05:00
595b1c2fc5
charge and record donations
2014-09-09 21:11:55 -05:00
2a1a3c61fa
stripe checkout image; breaks in development because dev copy of image is not public :P
2014-09-09 20:41:58 -05:00
0afc8ddb2b
stripe checkout; tokens not yet passed anywhere
2014-09-09 20:24:27 -05:00
1d7ca7cec2
new donations page mockup; temporary outfits and old campaign as placeholders
2014-09-09 18:02:49 -05:00
05841d091b
update terms
2014-08-25 20:57:07 -05:00
5644ecd67b
fall back to image if flash unsupported in outfits#show (e.g. mobile)
2014-05-29 23:00:03 -07:00
79a96b7670
lookup link alongside neomail
2014-05-15 22:34:00 -07:00
dd0a3cd350
dont allow blank name submissions in modeling hub small form
2014-04-16 11:11:15 -05:00
44ff466a64
advanced search by pet type fit :)
2014-04-05 18:48:20 -05:00
acbec2ad5e
design mockup for autofilter; no new behavior yet
2014-04-05 17:16:35 -05:00
a375707e40
handle errors from neopia, finally!
2014-04-04 15:53:53 -05:00
d25d2b3398
big picture mode
2014-04-04 14:36:35 -05:00
868bbcdd41
yank tips in favor of border and autofocus for item search
2014-04-04 14:17:57 -05:00
cc786c4241
navigate tips
2014-04-02 23:37:19 -05:00
f00a8f5d3b
yum, tip styling
2014-04-02 23:26:51 -05:00
8fc156833f
basic tip functionality
2014-04-02 23:00:50 -05:00
7e73313d43
remove Go button from locale form on noscript
...
primarily because it's confusing for advanced search and looks like
the form's submit button - at least according to lavelle ;P
2014-04-02 22:15:15 -05:00
ad1aa8e42c
advanced search i18n
2014-04-02 22:06:45 -05:00
250af4487c
remove search.examples i18n
2014-04-02 21:35:08 -05:00
77497cd471
lol, turns out i was smart about return_to links before. remove todo
2014-04-02 21:32:43 -05:00
ecacb44153
update current species name
2014-04-02 21:14:58 -05:00
d4b65ecf62
remove some todos
2014-04-02 21:09:15 -05:00
d557daadf4
filter by user owns/wants
2014-04-02 21:08:35 -05:00
9cae578ef7
basic advanced search behavior; only name supported right now
2014-04-02 20:05:18 -05:00
93a732e027
fix display bug with narrower screens
2014-04-02 19:25:51 -05:00
c20ac77fdd
actually, drop the extra form and just keep the search bar always large :/
2014-04-02 19:21:18 -05:00
ce734fae7e
advanced search behaves toggle-like in that the link stays in place, and OMG pagination on the right is sooo much better!
2014-04-02 19:04:47 -05:00
c1d9133451
add an item search form to closet so that new users will be less stumped
2014-04-02 14:53:58 -05:00
bda9f69ce9
reorganize form a bit; group like things
2014-04-02 14:18:14 -05:00
4ad806847b
switch between basic and advanced forms
2014-04-02 13:54:27 -05:00
e0b5d3e73f
advanced search fields mockup
2014-04-02 13:21:42 -05:00
39f5284752
first draft of advanced search form
2014-04-02 10:32:13 -05:00
1d11cf6edc
better handling of i18n and labels and resource filters and junk
2014-04-02 10:32:13 -05:00
f9fa3eb596
prank color artist credit
2014-03-31 21:05:28 -05:00
6e80c228c1
include prank message on wardrobe page
2014-03-30 22:37:33 -05:00
2ed3f3d4c6
more abstraction
2014-03-28 15:22:21 -05:00
8781d58540
extract prank_color_message to helper
2014-03-28 15:19:45 -05:00
32bab89ed4
add prank messages to outfits#show
2014-03-28 15:15:04 -05:00
8e93d603fa
list prank colors as fake on the homepage, unless pranks are funny today
2014-03-27 22:44:18 -05:00
8ace3111f7
oops; put impress_user field on model-a-pet homepage form
2014-01-20 16:03:40 -06:00
03c76fe882
Update missing body ID prediction to handle, say, the Maraquan Mynci.
...
It turns out that some pets for seemingly nonstandard colors have the
standard body type anyway, and vice-versa. This implies that we should
stop relying on a color's standardness, but, for the time being, we've
just revised the prediction model:
Old model:
* If I see a body_id, I find the corresponding color_ids, and it's wearable
by all pet types with those color_ids.
New model:
* If I see a body_id,
* If it also belongs to a basic pet type, it's a standard body ID.
* It therefore fits all pet types of standard color (if there's
more than one body ID modeled already). (Not really,
because of weird exceptions like Orange Chia. Should that be
standard or not?)
* If it doesn't also belong to a basic pet type, it's a nonstandard
body ID.
* It therefore only belongs to one color, and therefore the item
fits all pet types of the same color.
2014-01-20 15:29:01 -06:00
fb6df82570
ugh, push temporary version without new items
2014-01-20 14:46:50 -06:00
00841e45d2
modeling i18n
2014-01-20 13:56:19 -06:00
b2fca6b6c1
closet hangers index uses neopets connections dropdown
2014-01-18 22:50:14 -06:00
72b174c9b3
store all neopets usernames for logged-in users, but breaks closet_hangers#index
2014-01-18 21:55:01 -06:00
8288b8a10d
username form, backed by localstorage for guests; not yet backed by db for logged-in users
2014-01-17 11:12:56 -06:00
813cfbddea
filter customizations by missing body ids
2014-01-10 16:25:03 -05:00
fd106d7dba
basic modeling buttons
...
no behavior yet, nor are they filtered
2014-01-10 16:25:03 -05:00
949fa2a77a
i18n newest items headers
2014-01-10 16:25:02 -05:00
342f8ef859
remove unused outfits.new.newest_items.header i18n key
2014-01-10 16:25:02 -05:00
7dd2646dbb
add basic caching - TODO: avoid these computations in the controller
2014-01-10 16:25:02 -05:00
9a4e114964
oh yum, this is really starting to come together :)
2014-01-10 16:25:02 -05:00
85e1973f55
yummy mockups for newest items progress bars
2014-01-10 16:25:02 -05:00
7c6e607612
basic neopia api integration
2014-01-10 16:25:02 -05:00
b6247fa22f
prepare partials for closet_hangers#index, too
2013-12-27 21:48:28 -05:00
6b340f906e
Cache trade info on items#show, finally! I think it's the performance culprit.
2013-12-27 14:49:46 -05:00
5f95ef7e56
make userbar area more compact, including removing favicon
2013-12-26 13:08:51 -05:00
12a1c0f500
monocle favicon
2013-12-26 12:44:03 -05:00
f07996d762
cache pet images on items#show, in case that's what's being a super-slow jerkface
2013-12-05 15:22:43 -06:00
cc7ac363dd
WIP commit for speeding up item show pages
2013-12-05 13:27:56 -06:00
8bd7ad5a1e
support manually uploaded swf asset images - not the actual uploading, but block them from being reconverted
2013-10-16 15:50:48 -05:00
019303031b
choose list when importing from pets
2013-08-17 12:07:04 -04:00
3c127569fe
stop caching item preview species images, and fix the bad query instead
...
Most of the reasoning is documented in the big comment. In short, we tried
to solve the problem with caching, but the caching should hardly be necessary
now that the bottleneck should be fixed. We'll see on production if it
actually solves the whole problem, but I've confirmed in the console that
redefining this function makes random_basic_per_species (as called during
rendering) a ton faster. And this way we keep our randomness, woo!
2013-06-23 22:35:27 -07:00
d858f33083
noscript warning on closet_hangers#index
2013-06-22 16:42:38 -07:00
816584f177
Move item_link partial caching to a helper rather than the template itself
...
This is a surprisingly huge performance gain. On my testing (with
cache_classes set to true to also cache templates), this sped up
closet_hangers#index rendering by a factor of 2 when there were a
significant number of items. Cool beans.
I think we can even hold off on the individual hanger caching now:
we've made the closet hanger partial tons faster by moving forms out
of them and doing this cache check earlier. I'm expecting significant
performance gains both here and on items#index (though less so there).
I'll deploy and see how much it helps in production; if not enough, we
can look at the layered caching of hangers, lists, groups, full pages,
etc.
So glad we don't *have* to move to a pagination model!
2013-06-22 16:31:46 -07:00
d132567931
move closet-hanger-destroy form to JS
2013-06-22 15:45:59 -07:00
2876de2db0
Move closet-hangers-update form from partial to JS
...
We lose no-JS support, which I kinda miss, but caching is gonna be more
important down the line. Delete form moves next, then we cache.
CSRF token changes: it looks like, by setting a data attribute in AJAX, I
was overwriting the CSRF token. I don't remember it working that way, but
now we use beforeSend to add the X-CSRF-Token header instead, which is nicer,
anyway. The issue might've been something else, but this worked :/
The CSS was also not showing the loading ellipsis properly. I think that's a
dev-only issue in how live assets are being served versus static assets, but
may as well add UTF-8 charset directives everywhere, anyway.
2013-06-22 15:27:00 -07:00
f1aca20185
stop including ?q= in _item_link links: it's getting cached, so is almost always wrong
2013-06-21 19:43:11 -07:00
154bdd5d0d
cache item-preview-species on items#show
...
items#show has been very slow recently, and I think it's because there's a lot
of querying to be done. Another option would have been to attempt to
short-circuit Item#supported_species if not body specific, but that would
still leave us with 1s load times for body specific items, which is not
satisfactory. The short-circuiting might still be worth doing, but probably
not now.
I'm also not sure that this is actually the core performance problem, but
we'll see. It definitely helped on the dev server: items#show took about
200ms on item pages where everything but species images were cached, then
took about 30ms on subsequent loads. Looking like a good candidate.
2013-06-21 19:30:41 -07:00
2fc0e61394
use inline-block for petpage exports, now that TNT allow it
2013-05-06 21:50:49 -04:00
3c91f0cde0
import items to a specific list
2013-04-09 15:50:33 -05:00
e5702076ff
move jquery-ui south-street assets to google cdn
2013-03-08 13:43:16 -06:00
c7237d7d44
fix a bunch of precompiled-asset-missing errors
2013-03-05 22:26:14 -06:00
cf5191d33c
phew. rails 3.2.12, including some asset pipeline. still buggy.
2013-03-05 20:08:57 -06:00
4cd2755f84
oops, distinguish between owns/wants in closet petpage
2013-02-19 11:08:10 -06:00
7f2ce2839b
appearance dropdown - wow, that was easy
2013-01-31 19:46:34 -06:00
1ef39f854c
localize outfits#_outfit
2013-01-26 12:42:38 -06:00
52fee4f0c9
localize outfits#edit wear/unwear/closet/uncloset
2013-01-26 11:58:16 -06:00
8c348d4535
localize outfits#edit search helpers
2013-01-26 11:11:42 -06:00
26ac3782ec
move zones to database
2013-01-24 18:26:00 -06:00
0f49d3ed02
simple locale dropdown in layouts#application
2013-01-24 18:24:33 -06:00
3b1ffe71a9
i18n for will_paginate, including dynamically in outfits#edit
2013-01-24 18:23:21 -06:00
34e99bba72
i18n for outfits/new.js
2013-01-24 18:23:21 -06:00
8b15d31639
i18n for pet_query.js
2013-01-24 18:23:21 -06:00
e833179155
refactor outfits.new for hierarchy
2013-01-24 18:23:21 -06:00
e54e4c606c
oops, re-refactor closet_hangers.index.autocomplete, since markdown wraps it in a paragraph
2013-01-24 18:23:21 -06:00
82479315f0
refactor neopets_pages.new for twl
2013-01-24 18:23:21 -06:00
70ff4974a3
refactor items.show for hierarchy and twl
2013-01-24 18:23:21 -06:00
0cbdc30a15
refactor items.index for hierarchy and twl
2013-01-24 18:23:21 -06:00
4bf73b4285
refactor closet_lists.form hierarchy
2013-01-24 18:23:20 -06:00
1f1bfb3140
refactor closet_hangers.petpage.instructions to use twl
2013-01-24 18:23:20 -06:00
5935ed055d
refactor tmd helper, move closet_hangers#index autocomplete to markdown
2013-01-24 18:23:20 -06:00
3d8266951f
i18n for outfits/edit.js item partials: no-data-yet and icons
2013-01-24 18:23:20 -06:00
629e5c68a9
i18n for outfits/edit.js userbar message and outfit save errors
2013-01-24 18:23:20 -06:00
ec6c7b550d
i18n for outfits/edit.js sharing urls
2013-01-24 18:23:20 -06:00
2b1cb2fe7f
i18n for outfits#edit base template - dynamic content in outfits/edit.js still needs examined
2013-01-24 18:23:20 -06:00
b346bcc6d9
i18n for outfits#index - plus the translate_with_links helper, which can be used for refactoring other stuff
2013-01-24 18:23:20 -06:00
8c9dda37d5
i18n for closet_hangers#index search bar autocomplete
2013-01-24 18:23:20 -06:00
706fad0174
localize items#item_link cache
2013-01-24 18:23:20 -06:00
30cdbface5
i18n for closet_hangers#petpage and items#_item (NC icon)
2013-01-24 18:23:19 -06:00
b213f6d0ba
i18n for closet_hangers#index, closet_lists#edit, closet_lists#new, and maybe some more closet-related things - this was a biggie
2013-01-24 18:23:19 -06:00
c32425bc14
i18n for neopets_pages#new
2013-01-24 18:23:19 -06:00
5498a739f2
i18n for pets#bulk
2013-01-24 18:23:19 -06:00
9488a27916
i18n for neopets_users#new
2013-01-24 18:23:19 -06:00
ac0490dc1d
i18n for items#show (including javascripts/items/show.js)
2013-01-24 18:23:19 -06:00
b69793c008
i18n for contributions#index
2013-01-24 18:23:18 -06:00
5e89e2b947
i18n for items#index (and layouts#items)
2013-01-24 18:23:18 -06:00
34d919179a
i18n for broken_image_reports#new
2013-01-24 18:23:18 -06:00
1356fdaa0c
i18n for users#top_contributors
2013-01-24 18:23:18 -06:00
fea0b42a17
i18n for outfits#show
2013-01-24 18:23:18 -06:00
132a49d30b
i18n for outfits#new (and layouts#application), including caching
2013-01-24 18:23:18 -06:00
07f49307f1
a few tweaks to items#show contributors appearance
2012-10-24 22:16:01 -05:00
f56b544963
brought-to-you-by on items#show lists contributors
2012-10-24 22:09:05 -05:00
e9e7d305f0
retire neoitems links, replace with jn items links
2012-10-21 15:57:17 -05:00
5601511ad5
xss vulnerability in outfits#show
...
This one was actually pretty darn clever - nobody's abused it, but
I was reading a blog post where someone described this type of
issue, I realized it was a brilliant attack, and then realized
DTI was vulnerable. Oops. Thanks for the solution, Jamie!
http://jamie-wong.com/2012/08/22/what-i-did-at-khan-academy/#XSS+Fix
2012-10-20 17:56:38 -05:00
270f8caa3d
remove sharing beta message - finally
2012-08-23 20:56:00 -05:00
412c401c5f
better cache items#show
2012-08-10 00:02:11 -04:00
99669b8e4e
cache homepage latest contribution
2012-08-09 22:59:35 -04:00
f6d34841ec
cache newest items on homepage and items#index
2012-08-09 22:35:30 -04:00
1e3938eea9
improve closet performance by caching item link
2012-08-09 19:34:56 -04:00
5e89287537
durr, don't cache new items on the homepage
2012-08-08 23:05:32 -04:00
5cec28e29b
fix logout bug: stop caching authenticity_token fields
...
Many forms on the site contain a hidden authenticity_token field,
unique to each visitory. If a user submits a request with an
invalid authenticity_token, Rails assumes that it's a CSRF attempt
and logs out the user. So, if we happen to cache those forms with
authenticity_token fields, all users who use that form will have
the same authenticity_token (valid for only the first user who
saw the form, invalid for everyone else), and all requests made
through that form will log out the user. Bad news.
So, we stopped caching those forms. Yay!
2012-08-07 17:32:51 -04:00
72237f225c
modeling hub
2012-08-06 21:15:31 -04:00
a6e4398e54
take homepage latest contribution and new items out of cache block - should probably cache them later, but, for now, meh
2012-08-01 15:11:08 -04:00
c2a0c5de74
new frontpage layout, yay
2012-08-01 13:34:54 -04:00
c630cde66c
outfit thumbnails beta message
2012-07-31 10:21:20 -04:00
54ca5881fe
add thumbnails to outfits#show via open graph
2012-07-29 16:45:12 -04:00
f8aacfba98
put a cog behind outfits whose thumbnails are enqueued
2012-07-29 16:07:18 -04:00
f5cf9aa13b
redesign outfits#index with thumbnails
2012-07-29 15:43:28 -04:00
249c493d25
beautiful outfits tab using thumbnails
2012-07-27 03:21:22 -04:00
b02c95c2d9
pretty tab navigation for wardrobe sidebar
2012-07-25 19:02:23 -04:00
b2eac2d1fd
sharing url formats
2012-07-17 16:14:05 -04:00
f5ab71dce5
sharing thumbnail
2012-07-17 14:42:31 -04:00
7b5856ebf9
basic sharing
...
Sharing pane works, everything is great for guests. Logged in
users are on the way, since right now Share Outfit re-saves
anonymously rather than showing sharing data for the existing
outfit.
2012-07-17 12:15:04 -04:00
7c015e2d88
carrierwave for asset swfs
2012-07-16 16:45:26 -04:00
c7c8f3a78e
oops. accidentally used trading post url for auctions. fixed
2012-05-23 20:12:17 -04:00
4451800e42
added shop wiz, etc., links to NP item show page
2012-05-23 20:09:35 -04:00
63f503e7a4
keep copyright year up to date
2012-05-15 13:52:15 -05:00
f3d64840d6
filter lists on petpage export
2012-04-08 15:59:51 -05:00
c46d7ae2c0
fix petpage export styles
...
thumbnails were right-aligned when they really shouldn't have been
2012-04-08 14:50:50 -05:00
b04c5db98a
add ajax auth for closet_hangers#index
2012-03-23 16:59:23 -05:00
99a7558dd9
update items#show style
2012-03-23 16:48:00 -05:00
7d0edbf23c
closet_hangers#destroy now tied to hanger ID, not item
2012-03-23 16:25:10 -05:00
44156c5b21
can now have the same item in more than one list
2012-03-23 16:25:10 -05:00
19e854b6f8
oops, remove maintenance message
2012-01-26 13:30:12 -06:00
686d6560c4
specify size on image download
2012-01-13 19:37:56 -06:00
696b2aedaf
give SWFs real, unique ID numbers
...
Lots of scary bugs were being caused by the fact that the possibly-duplicate Neopets ID
was being treated as an SWF's real primary key, meaning that a save meant for object swf
number 123 could be saved to biology swf number 123. Which is awful.
This update gives SWFs their own unique internal ID numbers. All external lookups still use
the remote ID and the type, meaning that the client side remains totally unchanged (phew).
However, all database relationships with SWFs use the new ID numbers, making everything
cleaner. Yay.
There are probably a few places where it would be appropriate to optimize certain lookups
that still depend on remote ID and type. Whatever. Today's goal was to remove crazy
glitches that have been floating around like mad. And I think that goal has been met.
2012-01-12 17:17:59 -06:00
70cf262387
remove campaign banner from most pages
2011-10-10 22:06:46 -05:00
df62e3540f
copyright 2011
2011-10-10 21:56:12 -05:00
09fcc7fa4b
remove timer donation request on outfits#edit
2011-08-07 19:57:11 -04:00
c930397123
edit campaign copy now that image mode is public
2011-08-07 19:52:35 -04:00
04ec18b196
update image mode faq for public release
2011-08-07 19:27:01 -04:00
7358aae680
report broken images
2011-08-07 18:23:44 -04:00
564ba9bdd9
js part of reporting broken images
2011-08-07 17:24:54 -04:00
4c510f91db
search by username
2011-08-05 11:28:11 -04:00
f9de777c79
update campaign: upgrade complete
2011-08-05 00:12:17 -04:00
0906e49a72
update campaign progress to say we have exceeded our goal
2011-08-04 15:34:28 -04:00
163d74fe07
donate update, campaign complete
2011-08-04 10:25:57 -04:00
d99a1ad792
newest items
2011-08-04 10:01:44 -04:00