mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 08:35:41 +01:00
Feature: Add referer field for Pin
This commit is contained in:
@@ -137,7 +137,7 @@ class PinResource(ModelResource):
|
|||||||
return super(PinResource, self).save_m2m(bundle)
|
return super(PinResource, self).save_m2m(bundle)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
fields = ['id', 'url', 'origin', 'description']
|
fields = ['id', 'url', 'origin', 'description', 'referer']
|
||||||
ordering = ['id']
|
ordering = ['id']
|
||||||
filtering = {
|
filtering = {
|
||||||
'submitter': ALL_WITH_RELATIONS
|
'submitter': ALL_WITH_RELATIONS
|
||||||
|
|||||||
19
core/migrations/0002_pin_referer.py
Normal file
19
core/migrations/0002_pin_referer.py
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('core', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='pin',
|
||||||
|
name='referer',
|
||||||
|
field=models.URLField(null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -42,6 +42,7 @@ class Pin(models.Model):
|
|||||||
submitter = models.ForeignKey(User)
|
submitter = models.ForeignKey(User)
|
||||||
url = models.URLField(null=True)
|
url = models.URLField(null=True)
|
||||||
origin = models.URLField(null=True)
|
origin = models.URLField(null=True)
|
||||||
|
referer = models.URLField(null=True)
|
||||||
description = models.TextField(blank=True, null=True)
|
description = models.TextField(blank=True, null=True)
|
||||||
image = models.ForeignKey(Image, related_name='pin')
|
image = models.ForeignKey(Image, related_name='pin')
|
||||||
published = models.DateTimeField(auto_now_add=True)
|
published = models.DateTimeField(auto_now_add=True)
|
||||||
|
|||||||
@@ -92,7 +92,8 @@
|
|||||||
border: '1px solid #555'
|
border: '1px solid #555'
|
||||||
});
|
});
|
||||||
image.onclick = function() {
|
image.onclick = function() {
|
||||||
var popUrl = getFormUrl()+encodeURIComponent(imageUrl);
|
var popUrl = getFormUrl() + encodeURIComponent(imageUrl);
|
||||||
|
popUrl = popUrl + '&referer=' + encodeURIComponent(window.location);
|
||||||
window.open(popUrl);
|
window.open(popUrl);
|
||||||
closePinry();
|
closePinry();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ $(window).load(function() {
|
|||||||
return {
|
return {
|
||||||
submitter: currentUser,
|
submitter: currentUser,
|
||||||
url: $('#pin-form-image-url').val(),
|
url: $('#pin-form-image-url').val(),
|
||||||
|
referer: $('#pin-form-referer').val(),
|
||||||
description: $('#pin-form-description').val(),
|
description: $('#pin-form-description').val(),
|
||||||
tags: cleanTags($('#pin-form-tags').val())
|
tags: cleanTags($('#pin-form-tags').val())
|
||||||
}
|
}
|
||||||
@@ -26,6 +27,7 @@ $(window).load(function() {
|
|||||||
var context = {pins: [{
|
var context = {pins: [{
|
||||||
submitter: currentUser,
|
submitter: currentUser,
|
||||||
image: {thumbnail: {image: $('#pin-form-image-url').val()}},
|
image: {thumbnail: {image: $('#pin-form-image-url').val()}},
|
||||||
|
referer: $('#pin-form-referer').val(),
|
||||||
description: $('#pin-form-description').val(),
|
description: $('#pin-form-description').val(),
|
||||||
tags: cleanTags($('#pin-form-tags').val())
|
tags: cleanTags($('#pin-form-tags').val())
|
||||||
}]},
|
}]},
|
||||||
@@ -59,9 +61,14 @@ $(window).load(function() {
|
|||||||
function createPinForm(editPinId) {
|
function createPinForm(editPinId) {
|
||||||
$('body').append(renderTemplate('#pin-form-template', ''));
|
$('body').append(renderTemplate('#pin-form-template', ''));
|
||||||
var modal = $('#pin-form'),
|
var modal = $('#pin-form'),
|
||||||
formFields = [$('#pin-form-image-url'), $('#pin-form-description'),
|
formFields = [
|
||||||
$('#pin-form-tags')],
|
$('#pin-form-image-url'),
|
||||||
pinFromUrl = getUrlParameter('pin-image-url');
|
$('#pin-form-referer'),
|
||||||
|
$('#pin-form-description'),
|
||||||
|
$('#pin-form-tags')
|
||||||
|
],
|
||||||
|
pinFromUrl = getUrlParameter('pin-image-url'),
|
||||||
|
pinFromReferer = getUrlParameter('referer');
|
||||||
// If editable grab existing data
|
// If editable grab existing data
|
||||||
if (editPinId) {
|
if (editPinId) {
|
||||||
var promise = getPinData(editPinId);
|
var promise = getPinData(editPinId);
|
||||||
@@ -69,6 +76,7 @@ $(window).load(function() {
|
|||||||
editedPin = data;
|
editedPin = data;
|
||||||
$('#pin-form-image-url').val(editedPin.image.thumbnail.image);
|
$('#pin-form-image-url').val(editedPin.image.thumbnail.image);
|
||||||
$('#pin-form-image-url').parent().hide();
|
$('#pin-form-image-url').parent().hide();
|
||||||
|
$('#pin-form-referer').parent().hide();
|
||||||
$('#pin-form-image-upload').parent().hide();
|
$('#pin-form-image-upload').parent().hide();
|
||||||
$('#pin-form-description').val(editedPin.description);
|
$('#pin-form-description').val(editedPin.description);
|
||||||
$('#pin-form-tags').val(editedPin.tags);
|
$('#pin-form-tags').val(editedPin.tags);
|
||||||
@@ -113,6 +121,7 @@ $(window).load(function() {
|
|||||||
if (pinFromUrl) {
|
if (pinFromUrl) {
|
||||||
$('#pin-form-image-upload').parent().css('display', 'none');
|
$('#pin-form-image-upload').parent().css('display', 'none');
|
||||||
$('#pin-form-image-url').val(pinFromUrl);
|
$('#pin-form-image-url').val(pinFromUrl);
|
||||||
|
$('#pin-form-referer').val(pinFromReferer);
|
||||||
$('.navbar').css('display', 'none');
|
$('.navbar').css('display', 'none');
|
||||||
modal.css({
|
modal.css({
|
||||||
'margin-top': -35,
|
'margin-top': -35,
|
||||||
@@ -155,6 +164,7 @@ $(window).load(function() {
|
|||||||
} else {
|
} else {
|
||||||
var data = {
|
var data = {
|
||||||
submitter: '/api/v1/user/'+currentUser.id+'/',
|
submitter: '/api/v1/user/'+currentUser.id+'/',
|
||||||
|
referer: $('#pin-form-referer').val(),
|
||||||
description: $('#pin-form-description').val(),
|
description: $('#pin-form-description').val(),
|
||||||
tags: cleanTags($('#pin-form-tags').val())
|
tags: cleanTags($('#pin-form-tags').val())
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,8 +24,9 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div class="text extra pull-right">
|
<div class="text extra pull-right">
|
||||||
<a href="{{url}}" class="btn btn-sm btn-default btn-warning">Original URL</a>
|
<a href="{{referer}}" class="btn btn-sm btn-default btn-warning" target="_blank">Referer</a>
|
||||||
<a href="/{{id}}/" class="btn btn-sm btn-default btn-success">Pin URL</a>
|
<a href="{{url}}" class="btn btn-sm btn-default btn-primary" target="_blank">Original URL</a>
|
||||||
|
<a href="/{{id}}/" class="btn btn-sm btn-default btn-success" target="_blank">Pin URL</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -17,6 +17,10 @@
|
|||||||
<label for="pin-form-image-upload">Image Upload</label>
|
<label for="pin-form-image-upload">Image Upload</label>
|
||||||
<form action="/pins/create-image/" id="pin-form-image-upload" class="dropzone"></form>
|
<form action="/pins/create-image/" id="pin-form-image-upload" class="dropzone"></form>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="pin-form-referer">Referer</label>
|
||||||
|
<input name="pin-form-referer" id="pin-form-referer" class="form-control" type="text"/>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="pin-form-description">Description</label>
|
<label for="pin-form-description">Description</label>
|
||||||
<textarea name="pin-form-description" id="pin-form-description" class="form-control"></textarea>
|
<textarea name="pin-form-description" id="pin-form-description" class="form-control"></textarea>
|
||||||
|
|||||||
Reference in New Issue
Block a user