@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.
- package/README.md +35 -3
- package/dist/admin/Admin.js +33 -35
- package/dist/auth/Form.js +6 -13
- package/dist/base-components/Form/BaseForm.js +53 -88
- package/dist/base-components/Form/BaseUpload.js +112 -84
- package/dist/base-components/Form/bootstrap.js +11 -15
- package/dist/base-components/Listing/BaseListing.js +438 -425
- package/dist/base-components/Listing/components/Pagination.js +90 -95
- package/dist/base-components/Listing/components/Sortable.js +34 -41
- package/dist/base-components/Listing/components/UserDetailTooltip.js +49 -50
- package/dist/index.js +23 -38
- package/dist/overrides/trumbowyg.edit-embed-template.js +63 -67
- package/dist/overrides/trumbowyg.reupload.js +123 -141
- package/dist/overrides/trumbowyg.template.js +56 -59
- package/dist/translation/Form.js +6 -13
- package/dist/translation/Listing.js +255 -266
- package/dist/ui/index.js +27 -28
- package/package.json +7 -7
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var _vue2Dropzone = require(
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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({
|
|
78
|
-
|
|
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.
|
|
87
|
-
|
|
88
|
-
|
|
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
|
|
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:
|
|
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:
|
|
154
|
+
collection_name: _this3.collection,
|
|
138
155
|
path: response.path,
|
|
139
|
-
action: file.deleted ? 'delete' : 'add',
|
|
156
|
+
action: file.deleted ? 'delete' : 'add',
|
|
157
|
+
//TODO: update ie. meta_data.name
|
|
140
158
|
meta_data: {
|
|
141
|
-
name: file.name,
|
|
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
|
-
|
|
155
|
-
var $previewElement = $(file.previewElement);
|
|
156
|
-
|
|
171
|
+
var previewElement = file.previewElement;
|
|
157
172
|
if (file.url) {
|
|
158
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
16
|
-
window.Vue =
|
|
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
|
-
|
|
12
|
+
$.ajaxSetup({
|
|
13
|
+
headers: {
|
|
14
|
+
'X-CSRF-TOKEN': token.content
|
|
15
|
+
}
|
|
16
|
+
});
|
|
21
17
|
}
|