Implemented:

 - DB model
 - Add badge to favorites view
This commit is contained in:
Paul Smith 2013-06-02 23:29:33 -04:00
Родитель e20a11ba79
Коммит 871e316858
5 изменённых файлов: 83 добавлений и 5 удалений

Просмотреть файл

@ -1,6 +1,7 @@
const openbadger = require('../openbadger');
const db = require('../db');
const claim = db.model('Claim');
const favorite = db.model('Favorite');
const loggedIn = require('../middleware').loggedIn;
module.exports = function (app) {
@ -92,6 +93,28 @@ module.exports = function (app) {
});
});
app.post('/mybadges/:id/favorite', [
loggedIn,
openbadger.middleware('getUserBadge')
], function (req, res, next) {
var data = req.remote;
var badge = data.badge;
var user = res.locals.user;
favorite.findOrCreate({
type: 'badge',
itemId: req.params.id, // assume if we got here id is valid input
LearnerId: user.id
}).complete(function(err, fav) {
if (err) {
return next(err);
}
res.render('user/badge-favorited.html', {
badge: data.badge
});
});
});
app.get('/favorites/:view?', function (req, res, next) {
var badge = {
thumbnail: '/media/images/badge.png',
@ -131,4 +154,4 @@ module.exports = function (app) {
})
})
};
};

Просмотреть файл

@ -0,0 +1,18 @@
module.exports = {
up: function(migration, DataTypes) {
migration.addIndex(
'Favorites',
['type', 'itemId', 'LearnerId'],
{
indexName: 'Favorites_unique_item_idx',
indicesType: 'UNIQUE'
}
);
},
down: function(migration) {
migration.removeIndex(
'Favorites',
['type', 'itemId', 'LearnerId']
);
}
}

30
models/favorite.js Normal file
Просмотреть файл

@ -0,0 +1,30 @@
var db = require('../db');
module.exports = {
properties: {
id: {
type: db.type.INTEGER,
primaryKey: true,
autoIncrement: true
},
type: {
type: db.type.ENUM,
values: [
'badge',
'org',
'program'
],
allowNull: false
},
itemId: {
type: db.type.STRING,
allowNull: false
}
},
relationships: [
{
model: 'Learner',
type: 'belongsTo'
}
]
};

Просмотреть файл

@ -16,10 +16,10 @@
{% endblock %}
{% block item_actions %}
{#
{{ super() }}
<a class="btn show-tooltip" title="Add to your favorites" href="{{ item.url }}/favorite"><i class="icon-heart"></i></a>
#}
<form action="{{ item.url }}/favorite" method="POST" class="favorites-form">
<button type="submit" class="btn show-tooltip" title="Add to your favorites"><i class="icon-heart"></i></button>
</form>
{% endblock %}
@ -48,4 +48,4 @@
</div>
</div>
{% endblock %}
{% endblock %}

Просмотреть файл

@ -0,0 +1,7 @@
{% extends 'layout.html' %}
{% set pageTitle = 'You favorited a badge' %}
{% set navItem = 'backpack' %}
{% block content %}
You favorited a badge!
{% endblock %}