3 window.ImageManager = new Vue({
15 created: function () {
17 this.fetchData(this.page);
26 fetchData: function () {
28 this.$http.get('/images/all/' + _this.page, function (data) {
29 _this.images = _this.images.concat(data.images);
30 _this.hasMore = data.hasMore;
35 setupDropZone: function () {
37 var dropZone = new Dropzone(_this.$$.dropZone, {
41 this.on("sending", function (file, xhr, data) {
42 data.append("_token", document.querySelector('meta[name=token]').getAttribute('content'));
44 this.on("success", function (file, data) {
45 _this.images.unshift(data);
46 $(file.previewElement).fadeOut(400, function () {
54 imageClick: function (image) {
55 var dblClickTime = 380;
56 var cTime = (new Date()).getTime();
57 var timeDiff = cTime - this.cClickTime;
58 if (this.cClickTime !== 0 && timeDiff < dblClickTime && this.selectedImage === image) {
65 this.selectedImage = (this.selectedImage === image) ? false : image;
67 this.cClickTime = cTime;
70 selectButtonClick: function () {
72 this.callback(this.selectedImage);
77 show: function (callback) {
78 this.callback = callback;
79 this.$$.overlay.style.display = 'block';
82 overlayClick: function (e) {
83 if (e.target.className === 'overlay') {
89 this.$$.overlay.style.display = 'none';
92 saveImageDetails: function (e) {
95 var form = $(_this.$$.imageForm);
96 $.ajax('/images/update/' + _this.selectedImage.id, {
98 data: form.serialize()
100 form.showSuccess('Image name updated');
101 }).fail(function (jqXHR) {
102 form.showFailure(jqXHR.responseJSON);
106 deleteImage: function (e) {
109 var form = $(_this.$$.imageDeleteForm);
110 $.ajax('/images/' + _this.selectedImage.id, {
112 data: form.serialize()
113 }).done(function () {
114 _this.images.splice(_this.images.indexOf(_this.selectedImage), 1);
115 _this.selectedImage = false;
116 $(_this.$$.imageTitle).showSuccess('Image Deleted');