1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // this is image_share.js
- Images = new Mongo.Collection("images");
- if (Meteor.isClient) {
- Accounts.ui.config({
- passwordSignupFields: "USERNAME_AND_EMAIL"
- });
- const getUser = (userId) => {
- let user = Meteor.users.findOne({ _id: userId });
- return user ? user.username : "anonymous";
- };
- Template.images.helpers({ getUser,
- images: function () {
- const createdBy = Session.get("userFilter");
- const selector = createdBy ? { createdBy } : {};
- return Images.find(selector, { sort: { createdOn: -1, rating: -1 }});
- },
- filtering_images: function () {
- const userFilter = Session.get("userFilter");
- return !!userFilter;
- },
- image_id: function () {
- return "rating-" + this._id;
- },
- getFilterUser: function () {
- const userFilter = Session.get("userFilter");
- return getUser(userFilter);
- }
- });
- Template.body.helpers({
- username: function () {
- let user = Meteor.user();
- let name = user ? user.username : "anon";
- return name;
- }
- });
- Template.images.events({
- "click .js-image": function (event) {
- $(event.target).css("width", "50px");
- },
- "click .js-del-image": function (event) {
- let imageId = this._id;
- console.log(imageId);
- // use jquery to hide the image component
- // then remove it at the end of the animation
- $("#" + imageId).hide("slow", function () {
- Images.remove({ _id: imageId });
- });
- },
- "click .js-rate-image": function (event) {
- let rating = $(event.currentTarget).data("userrating");
- let imageId = this.id.substring(7); // "rating-".length = 7.
- console.log(imageId);
- Images.update({ _id: imageId },
- { $set: { rating: rating }}
- );
- },
- "click .js-show-image-form": function () {
- $("#image_add_form").modal("show");
- },
- "click .js-set-image-filter": function () {
- Session.set("userFilter", this.createdBy);
- },
- "click .js-unset-image-filter": () => {
- Session.delete("userFilter");
- }
- });
- Template.image_add_form.events({
- 'submit .js-add-image': function (event) {
- let img_src = event.target.img_src.value;
- let img_alt = event.target.img_alt.value;
- console.log("src: " + img_src + " alt: " + img_alt);
- if (Meteor.user()) {
- Images.insert({
- img_src: img_src,
- img_alt: img_alt,
- createdOn: new Date(),
- createdBy: Meteor.userId()
- });
- }
- $("#image_add_form").modal("hide");
- return false;
- }
- });
- }
|