From b1e856ddd79f93588699345162e2ab14a104a26d Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Thu, 12 Apr 2012 17:28:30 -0400 Subject: [PATCH] Working on favorites. --- media/css/style.scss | 32 ++++++++++++------ media/images/favorite-icon.png | Bin 0 -> 1443 bytes media/images/favorited-icon.png | Bin 0 -> 1690 bytes media/js/src/modules/snipt.js | 16 +++++++++ .../templates/snipts/snipt-js-template.html | 2 +- snipts/templates/snipts/snipt-list.html | 15 ++++++-- snipts/templatetags/__init__.py | 0 snipts/templatetags/snipt_tags.py | 14 ++++++++ 8 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 media/images/favorite-icon.png create mode 100644 media/images/favorited-icon.png create mode 100644 snipts/templatetags/__init__.py create mode 100644 snipts/templatetags/snipt_tags.py diff --git a/media/css/style.scss b/media/css/style.scss index 694b68e..4910594 100644 --- a/media/css/style.scss +++ b/media/css/style.scss @@ -682,10 +682,9 @@ article.snipt { } &.copy { background-image: url('/static/images/copy-icon.png'); - - span.done { - display: none; - } + } + &.favorite { + background-image: url('/static/images/favorite-icon.png'); } } } @@ -791,6 +790,14 @@ article.snipt { } } } + div.modal { + textarea { + font: normal 12px/16px $Consolas; + height: 200px; + margin: 0; + width: 520px; + } + } &.selected { div.container { -webkit-box-shadow: 0 0 20px #85D2DD; @@ -802,12 +809,17 @@ article.snipt { } } } - div.modal { - textarea { - font: normal 12px/16px $Consolas; - height: 200px; - margin: 0; - width: 520px; + &.favorited { + div.container { + header { + @include vertical-gradient-with-image(url('/static/images/favorited-icon.png') top right no-repeat, #FFF, #FFFAF2); + + h1 { + a { + padding-right: 25px; + } + } + } } } } diff --git a/media/images/favorite-icon.png b/media/images/favorite-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f79434a5a2ccaeecfbdb23fc81e680ae5a7b980b GIT binary patch literal 1443 zcmeAS@N?(olHy`uVBq!ia0vp^d>}Rl8<3oNC%zs?NtU=qlmzFem6RtIr7}3C)9WTXpJp<7&;SCUwvn^&w1Gr=XbIJqdZpd>RtPXT0NVp4u- ziLDaQr4TRV7Ql_oD~1LWFu?RH5)1SV^$b8>f+_U%#ji9s7p}UvBq$Z(UaSTehg24% z>IbD3=a&{G10ya?8Dv#~m2**QVo82cNPd0}EEEGW@=NlIGx7@*oP$jjd=ry1^FVyC zdS72F&%EN2#JuEGPZwJypb2`JnJHEV7AEFq&aS5BE(T_XhOUN=hK9y2mKHANreWX3;SGL3YI-=)@yB=yo1B@(qa1tIo>T@vsyx9Pom^?a#VrCS9*?5=IUelz?1R>}V3%u~HslQv4+cw2TO$4o)2 zTXFKqJraEFYtBFa?J>hcr73DHTc-=tmnvHhiMGbW4;emI$XLzg(-GsI;kSIk`RDV) zR$uLi(PIaivive<(M}nees_gF27?wS#U3|hkL8yYCVC{8&7QmU_S@fU!%kbu^?wb~ zo$BSd{yKBt;|``d4hM=WE1wog%J8x4Oh4Ve`l^>>#o~(H7O+G1VXVY#!@od`shlP9ZzgJZe_kUPpXWw}Jb!~g6dd;8r{OsT6^|~#d zUuqS*@AlhW*I#dy`X|WM`bbTH!=`X&jC{oM%bo|!S6}_b`P)jGhplh_#2mBRp#~B> znOkpV*R2X#IVJyAhRL}@4?jfj`M<~4DMzr=OSzBju{fT3kmfEPZ@KeTd*7t(Pa|;&7J$?}Pu+}$XW5k{VVF|nM9?IL! z+^3@ud~x;e9h!AZgKmEL{a62N+UIbk1+(-s{-y4X`@XpJyNT4<@+~Y8+i#zp9i=su zN#msiSF7CP$GmUVA8Nd3=X)n)ep+Sn$!ltpS33RBXJliL`~N@b_^gTe~ HDWM4fB1ss| literal 0 HcmV?d00001 diff --git a/media/images/favorited-icon.png b/media/images/favorited-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8059489667b4c6495384253203299d74c81dd9 GIT binary patch literal 1690 zcmaJ?Yfuwc7>$Y#P$NVX6s6mMARtLL0b(NI5jG)Ef;7;WS`b6BK)~G%*@XmDR0dEZ zS|EiQoVKW__y(2QszvLA4lM)P0SY+PiZCExf%-%gyFsD-QMxm`_kMTIIp6cn?v9EK zoo}<$hC-pt50gMLa{Z8eSIwD4e*3fTRFlgRLZl#~u|z_z)WMWsHI@JaVTdvbmcdGO zW?DV$Pod19Yho0HLK?wWVF*KM!7vPnmSj^X{(%OqQk4o5KmwekK?U@|%U9`uMlGPP z^Odrs+7LKdBgxXi(OHo(s;pEMPfZUD0Q?PnQUHMoC15}{p*Y_lppWbF$-U*6Ne9Lu zM5=)PE+~aG3JAe;FyPBzd8=4{EWi(BfE*t#m%9pJvp^P;#b$zRZ;;F9u=y+&@cyBb z-gN3jz6=t-_eEL)dNM(1`Anu>uV?5v3{02A1bIB3MT5=uCK29vCQ2v`-YD)ep#Z_S zN~h5h8Vm(2ipm5moejA>$o~m40&6qVNh_4p<_T1_mTa_jscwW_xrwh zV08O-(b4@0*q(zpU-ea~cB2_K$9+@j6Oq!zT-hs`ih-S+G3 z|D?V723}k-k7jlXyl-DMFI=|qn#1GTeYHg9AvIPUj3$WKJ^|u z+UV5Nbtr#LufQsQhv-^Es$C8w-uKdDR^N7N?W-OBIuLZH}WMO8@CL!ZX)6G{v12J6|z=DMw;9fLFU-ICvBa-Raj z#i6tpTXT;6k`{2Gt;0R}E$6~EryqicBSeU^C?@OlP3>}H>Abs%=UP2oSJ3o%xrLr+ zHWhj<9Q6=;#yM2! zzM=fBqoZ9%)0JO$R2tg!_D7e*KYGNJccwdSIRP%d=V7h65x=WbaL~H)+`2L4+{Z~N z;R3DW{+aitd7*{2J^3kEo0@urtH#37yZvb4P(XG@%^TZ|ltq%D8m|_&>6X7mm?#oD IBixwtH#%XG{r~^~ literal 0 HcmV?d00001 diff --git a/media/js/src/modules/snipt.js b/media/js/src/modules/snipt.js index 45be1e6..d92b0a2 100644 --- a/media/js/src/modules/snipt.js +++ b/media/js/src/modules/snipt.js @@ -174,6 +174,14 @@ }); return false; }, + favorite: function() { + + }, + initFavorite: function() { + this.$favorite.click(function() { + return false; + }); + }, initLocalVars: function() { this.$aside = $('aside', this.$el); this.$container = $('div.container', this.$el); @@ -182,6 +190,7 @@ this.$copyModalBody = $('div.modal-body', this.$copyModal); this.$embedModal = $('div.embed-modal', this.$el); this.$embedModalBody = $('div.modal-body', this.$embedModal); + this.$favorite = $('a.favorite', this.$el); this.$h1 = $('header h1 a', this.$el); this.$tags = $('section.tags ul', this.$aside); @@ -196,6 +205,10 @@ window.ui_halted = false; window.from_modal = true; }); + + if (this.$favorite.length) { + this.initFavorite(); + } }, next: function() { if (!window.ui_halted) { @@ -283,6 +296,9 @@ selectFromClick: function(e) { this.select(true); e.stopPropagation(); + }, + unFavorite: function() { + } }); Snipt.SniptListView = Backbone.View.extend({ diff --git a/snipts/templates/snipts/snipt-js-template.html b/snipts/templates/snipts/snipt-js-template.html index 70a6236..5d244db 100644 --- a/snipts/templates/snipts/snipt-js-template.html +++ b/snipts/templates/snipts/snipt-js-template.html @@ -34,7 +34,7 @@ Embed
  • - Copy + Copy
  • diff --git a/snipts/templates/snipts/snipt-list.html b/snipts/templates/snipts/snipt-list.html index c944619..f95bc79 100644 --- a/snipts/templates/snipts/snipt-list.html +++ b/snipts/templates/snipts/snipt-list.html @@ -1,6 +1,6 @@ -{% load humanize %} +{% load humanize snipt_tags %} -
    +
    #{{ snipt.pk }}
    @@ -33,8 +33,17 @@ Embed
  • - Copy + Copy
  • + {% if snipt.user != request.user and request.user.is_authenticated %} +
  • + {% if snipt|is_favorited_by:request.user %} + Favorited + {% else %} + Favorite + {% endif %} +
  • + {% endif %}

    {{ snipt.tags.all|length }} tag{{ snipt.tags.all|pluralize }}

    diff --git a/snipts/templatetags/__init__.py b/snipts/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/snipts/templatetags/snipt_tags.py b/snipts/templatetags/snipt_tags.py new file mode 100644 index 0000000..69fe2c8 --- /dev/null +++ b/snipts/templatetags/snipt_tags.py @@ -0,0 +1,14 @@ +from django import template + +from snipts.models import Favorite + +register = template.Library() + + +@register.filter +def is_favorited_by(snipt, user): + try: + Favorite.objects.get(snipt=snipt, user=user) + return True + except Favorite.DoesNotExist: + return False