@@ -17,33 +17,33 @@
+ :type="createModel.form.url.type"
+ :message="createModel.form.url.error">
+ :type="createModel.form.referer.type"
+ :message="createModel.form.referer.error">
+ :type="createModel.form.description.type"
+ :message="createModel.form.description.error">
@@ -51,7 +51,7 @@
@@ -99,11 +99,11 @@ export default {
FilterSelect,
},
data() {
- const form = ModelForm.createFormModel(fields);
- form.tags.value = [];
+ const createModel = ModelForm.fromFields(fields);
+ createModel.form.tags.value = [];
return {
disableUrlField: false,
- form,
+ createModel,
formUpload: {
imageId: null,
},
@@ -144,24 +144,17 @@ export default {
createPin() {
const self = this;
let promise;
- if (isURLBlank(this.form.url.value) && this.formUpload.imageId === null) {
+ if (isURLBlank(this.createModel.form.url.value) && this.formUpload.imageId === null) {
return;
}
if (this.formUpload.imageId === null) {
- const data = {
- url: this.form.url.value,
- referer: this.form.referer.value,
- description: this.form.description.value,
- tags: this.form.tags.value,
- };
+ const data = this.createModel.asDataByFields(fields);
promise = API.Pin.createFromURL(data);
} else {
- const data = {
- referer: this.form.referer.value,
- description: this.form.description.value,
- tags: this.form.tags.value,
- image_by_id: this.formUpload.imageId,
- };
+ const data = this.createModel.asDataByFields(
+ ['referer', 'description', 'tags'],
+ );
+ data.image_by_id = this.formUpload.imageId;
promise = API.Pin.createFromUploaded(data);
}
promise.then(
diff --git a/pinry-spa/src/components/utils/ModelForm.js b/pinry-spa/src/components/utils/ModelForm.js
index 43da7ed..ae9115d 100644
--- a/pinry-spa/src/components/utils/ModelForm.js
+++ b/pinry-spa/src/components/utils/ModelForm.js
@@ -48,6 +48,17 @@ function FormHelper(form, fields = []) {
);
return data;
}
+
+ function asDataByFields(requiredFields) {
+ const data = {};
+ requiredFields.forEach(
+ (fieldName) => {
+ data[fieldName] = self[fieldName].value;
+ },
+ );
+ return data;
+ }
+
function assignToForm(data) {
Object.entries(data).forEach(
(dataField) => {
@@ -72,6 +83,7 @@ function FormHelper(form, fields = []) {
markFieldAsDanger,
resetField,
asData,
+ asDataByFields,
assignToForm,
resetAllFields,
};