2 jQuery.fn.showSuccess = function(message) {
4 var success = $('<div class="text-pos" style="display:none;"><i class="zmdi zmdi-check-circle"></i>'+message+'</div>');
6 success.slideDown(400, function() {
7 setTimeout(function() {success.slideUp(400, function() {
13 jQuery.fn.showFailure = function(messageMap) {
15 $.each(messageMap, function(key, messages) {
16 var input = elem.find('[name="'+key+'"]').last();
17 var fail = $('<div class="text-neg" style="display:none;"><i class="zmdi zmdi-alert-circle"></i>'+messages.join("\n")+'</div>');
19 fail.slideDown(400, function() {
20 setTimeout(function() {fail.slideUp(400, function() {
30 var ImageManager = new Vue({
44 this.fetchData(this.page);
53 fetchData: function() {
55 $.getJSON('/images/all/' + _this.page, function(data) {
56 _this.images = _this.images.concat(data.images);
57 _this.hasMore = data.hasMore;
62 setupDropZone: function() {
64 var dropZone = new Dropzone(_this.$$.dropZone, {
68 this.on("sending", function(file, xhr, data) {
69 data.append("_token", document.querySelector('meta[name=token]').getAttribute('content'));
71 this.on("success", function(file, data) {
72 _this.images.unshift(data);
73 $(file.previewElement).fadeOut(400, function() {
81 imageClick: function(image) {
82 var dblClickTime = 380;
83 var cTime = (new Date()).getTime();
84 var timeDiff = cTime - this.cClickTime;
85 if(this.cClickTime !== 0 && timeDiff < dblClickTime && this.selectedImage === image) {
92 this.selectedImage = (this.selectedImage===image) ? false : image;
94 this.cClickTime = cTime;
97 selectButtonClick: function() {
99 this.callback(this.selectedImage);
104 show: function(callback) {
105 this.callback = callback;
106 this.$$.overlay.style.display = 'block';
109 overlayClick: function(e) {
110 if(e.target.className==='overlay') {
116 this.$$.overlay.style.display = 'none';
119 saveImageDetails: function(e) {
122 var form = $(_this.$$.imageForm);
123 $.ajax('/images/update/' + _this.selectedImage.id, {
125 data: form.serialize()
127 form.showSuccess('Image name updated');
128 }).fail(function(jqXHR) {
129 form.showFailure(jqXHR.responseJSON);
133 deleteImage: function(e) {
136 var form = $(_this.$$.imageDeleteForm);
137 $.ajax('/images/' + _this.selectedImage.id, {
139 data: form.serialize()
141 _this.images.splice(_this.images.indexOf(_this.selectedImage), 1);
142 _this.selectedImage = false;
143 $(_this.$$.imageTitle).showSuccess('Image Deleted');
151 window.ImageManager = ImageManager;