mirror of
https://github.com/skishore/makemeahanzi.git
synced 2025-11-01 12:07:15 +08:00
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
function save_glyph(glyph) {
|
|
check(glyph.name, String);
|
|
var saved_glyph = _.extend({}, glyph);
|
|
saved_glyph.derived = {
|
|
errors: saved_glyph.render.log.filter(function(pair) {
|
|
return pair[0] !== 'success';
|
|
}),
|
|
strokes: saved_glyph.render.strokes,
|
|
};
|
|
delete saved_glyph.render;
|
|
Glyphs.upsert({name: glyph.name}, saved_glyph);
|
|
return glyph;
|
|
}
|
|
|
|
Meteor.methods({
|
|
get_glyph: function(name) {
|
|
return Glyphs.findOne({name: name});
|
|
},
|
|
get_next_glyph: function(glyph) {
|
|
var name = glyph ? glyph.name : undefined;
|
|
var next = Glyphs.findOne({name: {$gt: name}}, {sort: {name: 1}});
|
|
return next ? next : Glyphs.findOne({}, {sort: {name: 1}});
|
|
},
|
|
get_next_glyph_skip_verified: function(glyph) {
|
|
var name = glyph ? glyph.name : undefined;
|
|
var next = Glyphs.findOne(
|
|
{name: {$gt: name}, 'manual.verified': {$ne: true}}, {sort: {name: 1}});
|
|
return next ? next : Glyphs.findOne(
|
|
{'manual.verified': {$ne: true}}, {sort: {name: 1}});
|
|
},
|
|
get_previous_glyph: function(glyph) {
|
|
var name = glyph ? glyph.name : undefined;
|
|
var prev = Glyphs.findOne({name: {$lt: name}}, {sort: {name: -1}});
|
|
return prev ? prev : Glyphs.findOne({}, {sort: {name: -1}});
|
|
},
|
|
get_previous_glyph_skip_verified: function(glyph) {
|
|
var name = glyph ? glyph.name : undefined;
|
|
var prev = Glyphs.findOne(
|
|
{name: {$lt: name}, 'manual.verified': {$ne: true}}, {sort: {name: -1}});
|
|
return prev ? prev : Glyphs.findOne(
|
|
{'manual.verified': {$ne: true}}, {sort: {name: -1}});
|
|
},
|
|
get_fraction_verified: function() {
|
|
return Glyphs.find({'manual.verified': true}).count()/Glyphs.find().count();
|
|
},
|
|
save_glyph: save_glyph,
|
|
save_glyphs: function(glyphs) {
|
|
for (var i = 0; i < glyphs.length; i++) {
|
|
save_glyph(glyphs[i]);
|
|
}
|
|
},
|
|
});
|
|
|
|
Meteor.startup(function() {
|
|
Glyphs._ensureIndex({name: 1}, {unique: true});
|
|
Glyphs._ensureIndex({'manual.verified': 1});
|
|
});
|