diff --git a/snipt/media/css/style.scss b/snipt/media/css/style.scss index 8918894..c4cfb66 100644 --- a/snipt/media/css/style.scss +++ b/snipt/media/css/style.scss @@ -65,11 +65,6 @@ body { li { line-height: normal; } - a, button { - &:focus { - outline: none; - } - } } // Utils @@ -155,7 +150,7 @@ header.main { height: auto; margin: 0; padding: 7px; - padding-left: 28px; + text-indent: 21px; width: 175px; @include border-radius(3px); @include inset-box-shadow(0, 1px, 0px, #1D4249); @@ -233,7 +228,7 @@ header.sub { max-width: 490px; line-height: normal; overflow: hidden; - padding: 5px 0 7px 0; + padding: 2px 0 4px 0; text-overflow: ellipsis; white-space: nowrap; @@ -259,7 +254,7 @@ header.sub { color: #999999; float: right; font: bold 12px $Consolas; - padding-top: 7px; + padding-top: 4px; text-shadow: 0 1px 0 #FFF; } } @@ -629,6 +624,7 @@ article.snipt { top: -3px; width: 3px; -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); } } &.embed { @@ -887,16 +883,17 @@ body.detail { } } } -body.account { - form.account-form { +body.static { + .static-box { background: rgba(#FFF, .65); + border: 1px solid #DDDDDD; margin: 20px; padding: 20px; - @include border-radius(10px); + @include border-radius(4px); div.form-actions { margin-bottom: 0; - @include multi-border-radius(0, 0, 5px, 5px); + @include vertical-gradient(#F5F5F5, #FBFBFB); } div.alert { ul { @@ -907,5 +904,17 @@ body.account { } } } + div.alert-info { + a { + color: #3A87AD; + text-decoration: underline; + } + } + } + aside.main { + padding-top: 20px; + } + div.alert-alone { + margin: 0; } } diff --git a/snipt/media/js/plugins/jquery.hotkeys.js b/snipt/media/js/plugins/jquery.hotkeys.js index bb2280d..73d2a18 100644 --- a/snipt/media/js/plugins/jquery.hotkeys.js +++ b/snipt/media/js/plugins/jquery.hotkeys.js @@ -1,6 +1,6 @@ (function(jQuery){jQuery.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":"\"",",":"<",".":">","/":"?","\\":"|"}};function keyHandler(handleObj){if(typeof handleObj.data!=="string"){return;} -var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text")){return;} +var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text"||event.target.type === "password")){return;} var special=event.type!=="keypress"&&jQuery.hotkeys.specialKeys[event.which],character=String.fromCharCode(event.which).toLowerCase(),key,modif="",possible={};if(event.altKey&&special!=="alt"){modif+="alt+";} if(event.ctrlKey&&special!=="ctrl"){modif+="ctrl+";} if(event.metaKey&&!event.ctrlKey&&special!=="meta"){modif+="meta+";} diff --git a/snipt/media/js/src/modules/site.js b/snipt/media/js/src/modules/site.js index c4277e0..c8a6ee5 100644 --- a/snipt/media/js/src/modules/site.js +++ b/snipt/media/js/src/modules/site.js @@ -53,16 +53,13 @@ e.preventDefault(); $search_query.focus(); }); - $document.bind('keydown', 'Shift+/', function(e) { + $document.bind('keydown', 'h', function(e) { $el.trigger('showKeyboardShortcuts'); }); $('input').bind('keydown', 'esc', function(e) { e.preventDefault(); this.blur(); }); - $document.bind('keydown', 'Shift+h', function(e) { - history.go(-1); - }); }, showKeyboardShortcuts: function() { $('#keyboard-shortcuts').modal('toggle'); diff --git a/snipt/media/js/src/modules/snipt.js b/snipt/media/js/src/modules/snipt.js index 48a03d6..c62a1de 100644 --- a/snipt/media/js/src/modules/snipt.js +++ b/snipt/media/js/src/modules/snipt.js @@ -189,9 +189,6 @@ } window.scrollTo(0, document.body.scrollHeight); }); - $document.bind('keydown', 'h', function() { - window.location = '/'; - }); $document.bind('keydown', 'n', function() { var $anc = $('li.next a'); if ($anc.length) { diff --git a/snipt/settings.py b/snipt/settings.py index 1a9b3e0..65dd67c 100644 --- a/snipt/settings.py +++ b/snipt/settings.py @@ -193,6 +193,7 @@ VIRTUALENV_PATH = '/Users/Nick/.virtualenvs/snipt/lib/python2.7/site-packages/' LOGIN_REDIRECT_URL = '/' LOGIN_URL = '/login/' LOGOUT_URL = '/logout/' +ACCOUNT_ACTIVATION_DAYS = 0 # HTTPS USE_HTTPS = False diff --git a/snipt/snipts/utils.py b/snipt/snipts/utils.py index 666d1c1..a5c9ec2 100644 --- a/snipt/snipts/utils.py +++ b/snipt/snipts/utils.py @@ -1,4 +1,7 @@ +from django.contrib.auth import authenticate, login from django.template.defaultfilters import slugify +from registration.signals import user_registered + def slugify_uniquely(value, model, slugfield="slug"): suffix = 0 @@ -10,3 +13,14 @@ def slugify_uniquely(value, model, slugfield="slug"): if not model.objects.filter(**{slugfield: potential}).count(): return potential suffix += 1 + +def activate_user(user, request, **kwargs): + user.is_active = True + user.save() + + user = authenticate(username=request.POST['username'], + password=request.POST['password1']) + login(request, user) + + +user_registered.connect(activate_user) diff --git a/snipt/snipts/views.py b/snipt/snipts/views.py index 61cb299..2dcbc57 100644 --- a/snipt/snipts/views.py +++ b/snipt/snipts/views.py @@ -41,9 +41,11 @@ def list_user(request, username, tag_slug=None): if user == request.user: tags = tags.filter(snipt__user=user) snipts = snipts.filter(user=user) + public = False else: tags = tags.filter(snipt__user=user, snipt__public=True) snipts = snipts.filter(user=user, public=True) + public = True tags = tags.annotate(count=Count('taggit_taggeditem_items__id')) tags = tags.order_by('-count', 'name') @@ -53,6 +55,7 @@ def list_user(request, username, tag_slug=None): snipts = snipts.filter(tags__name__in=[tag_slug]) return { + 'public': public, 'snipts': snipts, 'tags': tags, 'tag': tag_slug, diff --git a/snipt/templates/api.html b/snipt/templates/api.html new file mode 100644 index 0000000..322b43a --- /dev/null +++ b/snipt/templates/api.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block page-title %}API - {{ block.super }}{% endblock %} + +{% block body-class %}{{ block.super }} api static{% endblock %} +{% block sub-header %}{% endblock %} + +{% block content %} +