UNPKG

@europeana/portal

Version:
2 lines 4.18 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{1077:function(e,t,l){"use strict";l.r(t);var n=l(16),o=(l(14),l(38),l(42),l(21),l(22),{name:"ContentfulSlugValidationPage",layout:"contentful",data:()=>({value:null,contentTypes:[],slugField:null,titleField:null,slugFromTitle:!1,errorMessage:null,debouncedDuplicateStatus:null,contentfulExtensionSdk:null}),head(){return{title:this.$pageHeadTitle("Slug validation - Contentful app"),script:[{src:"https://cdn.jsdelivr.net/npm/speakingurl@13.0.0/speakingurl.min.js"}]}},watch:{value:"updateContentfulField",debouncedDuplicateStatus:"handleStatus"},mounted(){window.contentfulExtension.init((e=>{if(this.contentfulExtensionSdk=e,e.location.is(window.contentfulExtension.locations.LOCATION_ENTRY_FIELD)){e.window.startAutoResizer(),this.contentTypes=[e.contentType.sys.id].concat(e.parameters.instance.contentTypes.split(",")),this.value=e.field.getValue(),this.slugField=e.field;var t=e.contentType.displayField;this.titleField=e.entry.fields[t],this.titleField.onValueChanged(this.handleTitleChange);var l=this.titleField.getValue();this.value&&"undefined"!==this.value&&""!==this.value?this.value===this.convertToSlug(l)&&(this.slugFromTitle=!0):(this.slugFromTitle=!0,this.handleTitleChange(l))}}))},methods:{updateContentfulField(){var e,t;null===(e=this.contentfulExtensionSdk)||void 0===e||null===(t=e.field)||void 0===t||t.setValue(this.value)},convertToSlug:text=>window.getSlug(text),handleValueChange(e){this.value=e,this.getDebouncedDuplicateStatus(e)},handleSlugChange(e){this.slugFromTitle=!1,this.handleValueChange(e)},handleTitleChange(e){this.slugFromTitle&&this.handleValueChange(this.convertToSlug(e||""))},handleStatus(){var e=this;return Object(n.a)((function*(){(yield e.debouncedDuplicateStatus)?(e.slugField.removeValue(),e.slugField.setInvalid(!0),e.errorMessage="This slug has already been published in another entry"):(e.slugField.setInvalid(!1),e.errorMessage=null)}))()},getDebouncedDuplicateStatus(e){this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((()=>{this.debouncedDuplicateStatus=this.getDuplicates(e)}),500)},getDuplicates(e){var t=this;return Object(n.a)((function*(){if(!e)return Promise.resolve(!1);var l={};for(var n of(l["fields."+t.slugField.id]=e,l["sys.id[ne]"]=t.contentfulExtensionSdk.entry.getSys().id,l["sys.publishedAt[exists]"]=!0,t.contentTypes)){if(l.content_type=n,(yield t.contentfulExtensionSdk.space.getEntries(l)).total>=1)return!0}return!1}))()}}}),r=(l(879),l(40)),component=Object(r.a)(o,(function(){var e=this,t=e.$createElement,l=e._self._c||t;return l("div",{staticClass:"contentful"},[l("b-form",[l("b-form-group",[l("b-form-input",{class:e.errorMessage?"error":"",attrs:{autocomplete:"off"},on:{input:e.handleSlugChange},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),e._v(" "),e.errorMessage?l("label",{staticClass:"error-message",domProps:{textContent:e._s(e.errorMessage)}}):e._e()],1)],1)],1)}),[],!1,null,"04b474bb",null);t.default=component.exports},779:function(e,t,l){var content=l(880);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,l(106).default)("d3ad8346",content,!0,{sourceMap:!1})},879:function(e,t,l){"use strict";l(779)},880:function(e,t,l){var n=l(105)(!1);n.push([e.i,'.contentful[data-v-04b474bb]{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:.875rem}.contentful .form-control[data-v-04b474bb]{font-size:.875rem;border-radius:0;outline:none;background-color:#fff;border:1px solid #d3dce0;max-height:2.5rem;color:#536171;padding:.6563rem;padding-left:.6563rem;margin:0;width:100%;appearance:textfield}.contentful .form-control[data-v-04b474bb]:focus{border:1px solid #2e75d4;box-shadow:0 0 7px #2e75d4}.contentful .form-control.error[data-v-04b474bb]{border:1px solid #bf3045}.contentful .form-control.error[data-v-04b474bb]:focus{box-shadow:0 0 7px #bf3045}.contentful .error-message[data-v-04b474bb]{color:#bf3045;margin-top:.75em}',""]),e.exports=n}}]); //# sourceMappingURL=a44db6c.modern.js.map