Holy crap. Working on add.

master
Nick Sergeant 2012-04-08 00:52:10 -04:00
parent cba3c1b0d5
commit 9b5bbe730a
7 changed files with 64 additions and 14 deletions

View File

@ -416,6 +416,7 @@ article.snipt div.container div.bottom-x {
}
article.snipt div.container header {
border-bottom: 1px solid #F1F1EE;
min-height: 58px;
-webkit-box-shadow: inset 0 -1px 0 white;
-moz-box-shadow: inset 0 -1px 0 white;
box-shadow: inset 0 -1px 0 white;

View File

@ -492,6 +492,7 @@ article.snipt {
}
header {
border-bottom: 1px solid #F1F1EE;
min-height: 58px;
@include inset-box-shadow(0, -1px, 0, #FFF);
@include vertical-gradient(#FFF, #FFFAF2);

View File

@ -24,6 +24,12 @@
}
}
url = url && addSlash(url);
if (typeof url === 'undefined') {
url = '/api/private/snipt/';
this.unset('id', {'silent': true});
this.unset('user', {'silent': true});
}
return url || null;
};

View File

@ -242,16 +242,24 @@
$('script#disqus').remove();
window.site.$body.append('<script id="disqus" type="text/javascript">' + $('script#disqus-template').text() + '</script>');
// For new snipts.
if (this.$el.attr('id') === 'new-snipt') {
this.$el.fadeIn('fast');
this.$el.attr('id', 'snipt-' + this.model.get('id'));
}
return this;
},
save: function() {
that.model.set('title', $('input#snipt_title').val());
that.model.set('tags', $('label.tags textarea').val());
that.model.set('tags_list', $('label.tags textarea').val());
that.model.set('lexer', $('select[name="lexer"]').val());
that.model.set('lexer_name', $('select[name="lexer"] option:selected').text());
that.model.set('code', window.editor.getSession().getValue());
that.model.set('public', $('label.public input').is(':checked'));
that.model.set({
'title': $('input#snipt_title').val(),
'tags': $('label.tags textarea').val(),
'tags_list': $('label.tags textarea').val(),
'lexer': $('select[name="lexer"]').val(),
'lexer_name': $('select[name="lexer"] option:selected').text(),
'code': window.editor.getSession().getValue(),
'public': $('label.public input').is(':checked')
}, {'silent': true});
that.model.save();
},
@ -354,6 +362,36 @@
});
},
addNewSnipt: function() {
var $articleNewSnipt = $('article#new-snipt');
if ($articleNewSnipt.length === 0) {
window.site.snipt_list.$el.prepend('<article id="new-snipt" class="hidden snipt"></article>');
var data = {
id: '',
code: '',
tags: [],
tags_list: '',
title: '',
lexer: 'text',
lexer_name: 'Text only',
user: {
username: ''
}
};
data['public'] = false;
var newSniptView = new Snipt.SniptView({
el: $('article#new-snipt'),
model: new Snipt.SniptModel(data)
});
newSniptView.edit();
} else {
$articleNewSnipt.trigger('edit');
}
return false;
},
escapeUI: function(destroyed) {

View File

@ -133,7 +133,7 @@ class PrivateSniptResource(ModelResource):
class Meta:
queryset = Snipt.objects.all().order_by('-created')
resource_name = 'snipt'
fields = ['title', 'slug', 'lexer', 'code', 'line_count',
fields = ['id', 'title', 'slug', 'lexer', 'code', 'line_count',
'stylized', 'key', 'public', 'created', 'modified',]
validation = Validation()
include_absolute_url = True

View File

@ -36,8 +36,8 @@ class Snipt(models.Model):
public = models.BooleanField(default=False)
# TODO: Change back auto
created = models.DateTimeField(auto_now_add=False, editable=False)
modified = models.DateTimeField(auto_now=False, editable=False)
created = models.DateTimeField(auto_now_add=True, editable=False)
modified = models.DateTimeField(auto_now=True, editable=False)
def save(self, *args, **kwargs):
@ -118,8 +118,8 @@ class Favorite(models.Model):
user = models.ForeignKey(User)
# TODO: Change back auto
created = models.DateTimeField(auto_now_add=False, editable=False)
modified = models.DateTimeField(auto_now=False, editable=False)
created = models.DateTimeField(auto_now_add=True, editable=False)
modified = models.DateTimeField(auto_now=True, editable=False)
def __unicode__(self):
return u'{} favorited by {}'.format(self.snipt.title, self.user.username)

View File

@ -4,7 +4,9 @@
<script id="edit" type="text/html">
<header class="fixed-save">
<div class="inner group">
<button class="delete btn btn-secondary">Delete</button>
<% if (snipt.id) { %>
<button class="delete btn btn-secondary">Delete</button>
<% } %>
<button class="save btn btn-success">Save</button>
<button class="cancel btn btn-secondary">Cancel</button>
</div>
@ -12,7 +14,9 @@
<div class="inner">
<section class="snipts" id="snipts">
<article id="snipt-<%= snipt.id %>" class="snipt editing">
<div class="number">#<%= snipt.id %></div>
<% if (snipt.id) { %>
<div class="number">#<%= snipt.id %></div>
<% } %>
<div class="group">
<div class="container">
<header>