@dejwcake/craftable 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,14 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _vue2Dropzone = require('vue2-dropzone');
8
-
9
- var _vue2Dropzone2 = _interopRequireDefault(_vue2Dropzone);
10
-
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
-
6
+ exports["default"] = void 0;
7
+ var _vue2Dropzone = _interopRequireDefault(require("vue2-dropzone"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
9
  var BaseUpload = {
14
10
  components: {
15
- Dropzone: _vue2Dropzone2.default
11
+ Dropzone: _vue2Dropzone["default"]
16
12
  },
17
13
  props: {
18
14
  url: {
@@ -26,12 +22,12 @@ var BaseUpload = {
26
22
  maxNumberOfFiles: {
27
23
  type: Number,
28
24
  required: false,
29
- default: 1
25
+ "default": 1
30
26
  },
31
27
  maxFileSizeInMb: {
32
28
  type: Number,
33
29
  required: false,
34
- default: 2
30
+ "default": 2
35
31
  },
36
32
  acceptedFileTypes: {
37
33
  type: String,
@@ -40,105 +36,128 @@ var BaseUpload = {
40
36
  thumbnailWidth: {
41
37
  type: Number,
42
38
  required: false,
43
- default: 200
39
+ "default": 200
44
40
  },
45
41
  uploadedImages: {
46
42
  type: Array,
47
43
  required: false,
48
- default: function _default() {
44
+ "default": function _default() {
45
+ return [];
46
+ }
47
+ },
48
+ uploadedMedia: {
49
+ type: Array,
50
+ required: false,
51
+ "default": function _default() {
49
52
  return [];
50
53
  }
51
54
  }
52
55
  },
53
56
  data: function data() {
54
57
  return {
55
- mutableUploadedImages: this.uploadedImages,
58
+ mutableUploadedMedia: this.getMutableUploadedMedia(),
56
59
  headers: {
57
60
  'X-CSRF-TOKEN': document.head.querySelector('meta[name="csrf-token"]').getAttribute('content')
58
61
  }
59
62
  };
60
63
  },
61
- template: '<dropzone :id="collection" \n :url="url" \n v-bind:preview-template="template"\n v-on:vdropzone-success="onSuccess"\n v-on:vdropzone-error="onUploadError"\n v-on:vdropzone-removed-file="onFileDelete"\n v-on:vdropzone-file-added="onFileAdded"\n :useFontAwesome="true" \n :ref="collection"\n :maxNumberOfFiles="maxNumberOfFiles"\n :maxFileSizeInMB="maxFileSizeInMb"\n :acceptedFileTypes="acceptedFileTypes"\n :thumbnailWidth="thumbnailWidth"\n :headers="headers">\n \n <input type="hidden" name="collection" :value="collection">\n </dropzone>',
64
+ template: "<dropzone :id=\"collection\" \n :url=\"url\" \n v-bind:preview-template=\"template\"\n v-on:vdropzone-success=\"onSuccess\"\n v-on:vdropzone-error=\"onUploadError\"\n v-on:vdropzone-removed-file=\"onFileDelete\"\n v-on:vdropzone-file-added=\"onFileAdded\"\n :useFontAwesome=\"true\" \n :ref=\"collection\"\n :maxNumberOfFiles=\"maxNumberOfFiles\"\n :maxFileSizeInMB=\"maxFileSizeInMb\"\n :acceptedFileTypes=\"acceptedFileTypes\"\n :thumbnailWidth=\"thumbnailWidth\"\n :headers=\"headers\">\n \n <input type=\"hidden\" name=\"collection\" :value=\"collection\">\n </dropzone>",
62
65
  mounted: function mounted() {
63
66
  this.attachAlreadyUploadedMedia();
64
67
  },
65
68
  methods: {
69
+ getMutableUploadedMedia: function getMutableUploadedMedia() {
70
+ var _this = this;
71
+ var files = [];
72
+ if (this.uploadedMedia.length === 0) {
73
+ _.each(this.uploadedImages, function (file, key) {
74
+ files.push(_this.getFileObj(file));
75
+ });
76
+ } else {
77
+ _.each(this.uploadedMedia, function (file, key) {
78
+ files.push(_this.getFileObj(file));
79
+ });
80
+ }
81
+ return files;
82
+ },
83
+ attachAlreadyUploadedMedia: function attachAlreadyUploadedMedia() {
84
+ var _this2 = this;
85
+ this.$nextTick(function () {
86
+ if (_this2.mutableUploadedMedia) {
87
+ _.each(_this2.mutableUploadedMedia, function (file, key) {
88
+ _this2.$refs[_this2.collection].manuallyAddFile({
89
+ name: file.name,
90
+ size: file.size,
91
+ type: file.type,
92
+ url: file.url
93
+ }, file.thumb_url, false, false, {
94
+ dontSubstractMaxFiles: false,
95
+ addToFiles: true
96
+ });
97
+ });
98
+ }
99
+ });
100
+ },
66
101
  onSuccess: function onSuccess(file, response) {
67
102
  if (!file.type.includes('image')) {
68
103
  setTimeout(function () {
69
- //FIXME jquery
70
- $(file.previewElement).removeClass('dz-file-preview');
104
+ file.previewElement.classList.remove('dz-file-preview');
71
105
  }, 3000);
72
106
  }
73
107
  },
74
-
75
108
  onUploadError: function onUploadError(file, error) {
76
109
  var errorMessage = typeof error == 'string' ? error : error.message;
77
- this.$notify({ type: 'error', title: 'Error!', text: errorMessage });
78
- $(file.previewElement).find('.dz-error-message span').text(errorMessage);
110
+ this.$notify({
111
+ type: 'error',
112
+ title: 'Error!',
113
+ text: errorMessage
114
+ });
115
+ file.previewElement.querySelector('.dz-error-message span').textContent = errorMessage;
79
116
  },
80
-
81
117
  onFileAdded: function onFileAdded(file) {
82
118
  this.placeIcon(file);
83
119
  },
84
-
85
120
  onFileDelete: function onFileDelete(file, error, xhr) {
86
- var deletedFileIndex = _.findIndex(this.mutableUploadedImages, { url: file.url });
87
- if (this.mutableUploadedImages[deletedFileIndex]) {
88
- this.mutableUploadedImages[deletedFileIndex]['deleted'] = true;
121
+ var deletedFileIndex = _.findIndex(this.mutableUploadedMedia, function (e) {
122
+ return e.url === file.url;
123
+ });
124
+ if (!deletedFileIndex || !file.url) {
125
+ deletedFileIndex = _.findIndex(this.mutableUploadedMedia, function (e) {
126
+ return e.name === file.name;
127
+ });
128
+ }
129
+ if (this.mutableUploadedMedia[deletedFileIndex]) {
130
+ this.mutableUploadedMedia[deletedFileIndex]['deleted'] = true;
89
131
 
90
132
  //dontSubstractMaxFiles fix
91
133
  var currentMax = this.$refs[this.collection].dropzone.options.maxFiles;
92
134
  this.$refs[this.collection].setOption('maxFiles', currentMax + 1);
93
135
  }
94
136
  },
95
-
96
- attachAlreadyUploadedMedia: function attachAlreadyUploadedMedia() {
97
- var _this = this;
98
-
99
- this.$nextTick(function () {
100
- if (_this.mutableUploadedImages) {
101
- _.each(_this.mutableUploadedImages, function (file, key) {
102
-
103
- _this.$refs[_this.collection].manuallyAddFile({ name: file['name'],
104
- size: file['size'],
105
- type: file['type'],
106
- url: file['url']
107
- }, file['thumb_url'], false, false, {
108
- dontSubstractMaxFiles: false,
109
- addToFiles: true
110
- });
111
- });
112
- }
113
- });
114
- },
115
-
116
137
  getFiles: function getFiles() {
117
- var _this2 = this;
118
-
138
+ var _this3 = this;
119
139
  var files = [];
120
-
121
- _.each(this.mutableUploadedImages, function (file, key) {
140
+ _.each(this.mutableUploadedMedia, function (file, key) {
122
141
  if (file.deleted) {
123
142
  files.push({
124
143
  id: file.id,
125
- collection_name: _this2.collection,
144
+ collection_name: _this3.collection,
126
145
  action: 'delete'
127
146
  });
128
147
  }
129
148
  });
130
-
131
149
  _.each(this.$refs[this.collection].getAcceptedFiles(), function (file, key) {
132
150
  var response = JSON.parse(file.xhr.response);
133
-
134
151
  if (response.path) {
135
152
  files.push({
136
153
  id: file.id,
137
- collection_name: _this2.collection,
154
+ collection_name: _this3.collection,
138
155
  path: response.path,
139
- action: file.deleted ? 'delete' : 'add', //TODO: update ie. meta_data.name
156
+ action: file.deleted ? 'delete' : 'add',
157
+ //TODO: update ie. meta_data.name
140
158
  meta_data: {
141
- name: file.name, //TODO: editable in the future
159
+ name: file.name,
160
+ //TODO: editable in the future
142
161
  file_name: file.name,
143
162
  width: file.width,
144
163
  height: file.height
@@ -146,43 +165,52 @@ var BaseUpload = {
146
165
  });
147
166
  }
148
167
  });
149
-
150
168
  return files;
151
169
  },
152
-
153
170
  placeIcon: function placeIcon(file) {
154
- //FIXME cele to je jqueryoidne, asi si budeme musiet spravit vlastny vue wrapper, tento je zbugovany
155
- var $previewElement = $(file.previewElement);
156
-
171
+ var previewElement = file.previewElement;
157
172
  if (file.url) {
158
- $previewElement.find('.dz-filename').html('<a href="' + file.url + '" target="_BLANK" class="dz-btn dz-custom-download">' + file.name + '</a>');
173
+ previewElement.querySelector('.dz-filename').innerHTML = '<a href="' + file.url + '" target="_BLANK" class="dz-btn dz-custom-download">' + file.name + '</a>';
159
174
  }
160
-
161
- if (file.type.includes('image')) {
162
- //nothing, default thumb
163
- } else if (file.type.includes('pdf')) {
164
- $previewElement.find('.dz-image').html('<i class="fa fa-file-pdf-o"></i><p>' + file.name + '</p>');
165
- } else if (file.type.includes('word')) {
166
- $previewElement.find('.dz-image').html('<i class="fa fa-file-word-o"></i><p>' + file.name + '</p>');
167
- } else if (file.type.includes('spreadsheet') || file.type.includes('csv')) {
168
- $previewElement.find('.dz-image').html('<i class="fa fa-file-excel-o"></i><p>' + file.name + '</p>');
169
- } else if (file.type.includes('presentation')) {
170
- $previewElement.find('.dz-image').html('<i class="fa fa-file-powerpoint-o"></i><p>' + file.name + '</p>');
171
- } else if (file.type.includes('video')) {
172
- $previewElement.find('.dz-image').html('<i class="fa fa-file-video-o"></i><p>' + file.name + '</p>');
173
- } else if (file.type.includes('text')) {
174
- $previewElement.find('.dz-image').html('<i class="fa fa-file-text-o"></i><p>' + file.name + '</p>');
175
- } else if (file.type.includes('zip') || file.type.includes('rar')) {
176
- $previewElement.find('.dz-image').html('<i class="fa fa-file-archive-o"></i><p>' + file.name + '</p>');
175
+ if (file.type) {
176
+ if (file.type.includes('image')) {
177
+ //nothing, default thumb
178
+ } else if (file.type.includes('pdf')) {
179
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-pdf-o"></i><p>' + file.name + '</p>';
180
+ } else if (file.type.includes('word')) {
181
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-word-o"></i><p>' + file.name + '</p>';
182
+ } else if (file.type.includes('spreadsheet') || file.type.includes('csv')) {
183
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-excel-o"></i><p>' + file.name + '</p>';
184
+ } else if (file.type.includes('presentation')) {
185
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-powerpoint-o"></i><p>' + file.name + '</p>';
186
+ } else if (file.type.includes('video')) {
187
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-video-o"></i><p>' + file.name + '</p>';
188
+ } else if (file.type.includes('text')) {
189
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-text-o"></i><p>' + file.name + '</p>';
190
+ } else if (file.type.includes('zip') || file.type.includes('rar')) {
191
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-archive-o"></i><p>' + file.name + '</p>';
192
+ } else {
193
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-o"></i><p>' + file.name + '</p>';
194
+ }
177
195
  } else {
178
- $previewElement.find('.dz-image').html('<i class="fa fa-file-o"></i><p>' + file.name + '</p>');
196
+ previewElement.querySelector('.dz-image').innerHTML = '<i class="fa fa-file-o"></i><p>' + file.name + '</p>';
179
197
  }
180
198
  },
181
-
182
199
  template: function template() {
183
- return '\n <div class="dz-preview dz-file-preview">\n <div class="dz-image">\n <img data-dz-thumbnail />\n </div>\n <div class="dz-details">\n <div class="dz-size"><span data-dz-size></span></div>\n <div class="dz-filename"></div>\n </div>\n <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>\n <div class="dz-error-message"><span data-dz-errormessage></span></div>\n <div class="dz-success-mark"><i class="fa fa-check"></i></div>\n <div class="dz-error-mark"><i class="fa fa-close"></i></div>\n </div>\n ';
200
+ return "\n <div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-image\">\n <img data-dz-thumbnail />\n </div>\n <div class=\"dz-details\">\n <div class=\"dz-size\"><span data-dz-size></span></div>\n <div class=\"dz-filename\"></div>\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <div class=\"dz-success-mark\"><i class=\"fa fa-check\"></i></div>\n <div class=\"dz-error-mark\"><i class=\"fa fa-close\"></i></div>\n </div>\n ";
201
+ },
202
+ getFileObj: function getFileObj(file) {
203
+ var _ref, _file$custom_properti, _file$custom_properti2, _file$mime_type, _file$original_url, _ref2, _file$thumb_url;
204
+ return {
205
+ id: file.id,
206
+ collection_name: this.collection,
207
+ name: (_ref = (_file$custom_properti = (_file$custom_properti2 = file.custom_properties) === null || _file$custom_properti2 === void 0 ? void 0 : _file$custom_properti2.name) !== null && _file$custom_properti !== void 0 ? _file$custom_properti : file.file_name) !== null && _ref !== void 0 ? _ref : file.name,
208
+ type: (_file$mime_type = file.mime_type) !== null && _file$mime_type !== void 0 ? _file$mime_type : file.type,
209
+ size: file.size,
210
+ url: (_file$original_url = file.original_url) !== null && _file$original_url !== void 0 ? _file$original_url : file.url,
211
+ thumb_url: (_ref2 = (_file$thumb_url = file.thumb_url) !== null && _file$thumb_url !== void 0 ? _file$thumb_url : file.original_url) !== null && _ref2 !== void 0 ? _ref2 : file.url
212
+ };
184
213
  }
185
214
  }
186
215
  };
187
-
188
- exports.default = BaseUpload;
216
+ var _default2 = exports["default"] = BaseUpload;
@@ -1,21 +1,17 @@
1
- 'use strict';
2
-
3
- var _vue = require('vue');
4
-
5
- var _vue2 = _interopRequireDefault(_vue);
6
-
7
- var _jquery = require('jquery');
8
-
9
- var _jquery2 = _interopRequireDefault(_jquery);
10
-
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1
+ "use strict";
12
2
 
3
+ var _vue = _interopRequireDefault(require("vue"));
4
+ var _jquery = _interopRequireDefault(require("jquery"));
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
6
  // This file is here only to ensure backwards compatibility
14
7
 
15
- window.$ = window.jQuery = _jquery2.default;
16
- window.Vue = _vue2.default;
17
-
8
+ window.$ = window.jQuery = _jquery["default"];
9
+ window.Vue = _vue["default"];
18
10
  var token = document.head.querySelector('meta[name="csrf-token"]');
19
11
  if (token) {
20
- $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': token.content } });
12
+ $.ajaxSetup({
13
+ headers: {
14
+ 'X-CSRF-TOKEN': token.content
15
+ }
16
+ });
21
17
  }