|
@@ -1,116 +0,0 @@
|
|
|
-// this is image_share.js
|
|
|
-Images = new Mongo.Collection("images");
|
|
|
-
|
|
|
-if (Meteor.isClient) {
|
|
|
- Session.set("imageLimit", 8);
|
|
|
-
|
|
|
- let lastScrollTop = 0;
|
|
|
-
|
|
|
- $(window).scroll(function (event) {
|
|
|
- let $window = $(window);
|
|
|
-
|
|
|
- // Current position in the page.
|
|
|
- let scrollTop = $window.scrollTop();
|
|
|
-
|
|
|
- // If we are near the bottom of the window.
|
|
|
- if (scrollTop + $window.height() > $(document).height() - 100) {
|
|
|
- // If we are heading down.
|
|
|
- if (scrollTop > lastScrollTop) {
|
|
|
- Session.set("imageLimit", Session.get("imageLimit") + 4);
|
|
|
- console.log('Increased image count');
|
|
|
- }
|
|
|
- lastScrollTop = scrollTop;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- 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 },
|
|
|
- limit: Session.get("imageLimit")
|
|
|
- });
|
|
|
- },
|
|
|
- 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;
|
|
|
- }
|
|
|
- });
|
|
|
-}
|