@europeana/portal
Version:
Europeana Portal
262 lines (204 loc) • 10.4 kB
JavaScript
exports.ids = [54];
exports.modules = {
/***/ 324:
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(404);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(13).default
module.exports.__inject__ = function (context) {
add("231774c4", content, true, context)
};
/***/ }),
/***/ 403:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3de7061e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(324);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3de7061e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3de7061e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3de7061e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3de7061e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/***/ 404:
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(12);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".contentful[data-v-3de7061e]{font-size:11px}.contentful button[data-v-3de7061e]{margin-right:.5rem}.contentful .thumbnail-preview[data-v-3de7061e]{float:right;max-height:200px;max-width:35%;height:200px;width:100%;background:#ddd;text-align:center}.contentful .thumbnail-preview img[data-v-3de7061e]{margin:auto;width:auto;height:100%;max-height:200px}.contentful input[data-v-3de7061e]{width:60%}.contentful p[data-v-3de7061e]{margin-top:.5rem}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/***/ 554:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/contentful/record-harvester/index.vue?vue&type=template&id=3de7061e&scoped=true&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"contentful"},[_c('b-form-group',[_c('div',{staticClass:"thumbnail-preview"},[(_vm.thumbnailUrl)?_c('img',{attrs:{"src":_vm.thumbnailUrl,"alt":""}}):_vm._e()]),_vm._v(" "),_c('b-form-input',{attrs:{"type":"text"},model:{value:(_vm.identifier),callback:function ($$v) {_vm.identifier=$$v},expression:"identifier"}}),_vm._v(" "),_c('p',[_c('b-button',{staticClass:"mb-2",attrs:{"disabled":!_vm.identifier},on:{"click":_vm.harvestRecord}},[_vm._v("\n Go!\n ")]),_vm._v(" "),_c('b-button',{staticClass:"mb-2",on:{"click":_vm.resetRecord}},[_vm._v("\n Clear all data\n ")])],1)],1),_vm._ssrNode(" <p data-v-3de7061e>"+_vm._ssrEscape(_vm._s(_vm.message))+"</p>")],2)}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/pages/contentful/record-harvester/index.vue?vue&type=template&id=3de7061e&scoped=true&
// EXTERNAL MODULE: ./src/plugins/europeana/utils.js
var utils = __webpack_require__(2);
// EXTERNAL MODULE: ./src/plugins/europeana/record.js
var record = __webpack_require__(55);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/contentful/record-harvester/index.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var record_harvestervue_type_script_lang_js_ = ({
name: 'ContentfulRecordHarvesterPage',
layout: 'contentful',
data() {
return {
contentfulExtensionSdk: null,
encoding: null,
identifier: '',
message: ''
};
},
head() {
return {
title: this.$pageHeadTitle('Record harvester - Contentful app'),
bodyAttrs: {
class: '',
style: 'background: transparent;'
}
};
},
computed: {
thumbnailUrl() {
var _this$encoding;
if ((_this$encoding = this.encoding) !== null && _this$encoding !== void 0 && _this$encoding.edmPreview) {
var _this$encoding2;
return ((_this$encoding2 = this.encoding) === null || _this$encoding2 === void 0 ? void 0 : _this$encoding2.edmPreview[0]) + 'size=w200';
}
return undefined;
}
},
mounted() {
window.contentfulExtension.init(sdk => {
this.contentfulExtensionSdk = sdk;
if (sdk.location.is(window.contentfulExtension.locations.LOCATION_ENTRY_FIELD)) {
var _sdk$entry$fields$enc;
sdk.window.startAutoResizer();
this.identifier = sdk.field.getValue();
this.encoding = (_sdk$entry$fields$enc = sdk.entry.fields.encoding) === null || _sdk$entry$fields$enc === void 0 ? void 0 : _sdk$entry$fields$enc.getValue();
}
});
},
methods: {
async harvestRecord() {
const itemIdentifier = Object(record["c" /* recordIdFromUrl */])(this.identifier);
if (!itemIdentifier) {
this.message = `Unable to parse URL: ${this.identifier} Please make sure the URL conforms to the accepted formats.`;
return;
}
const recordSearchParams = {
profile: 'minimal',
query: `europeana_id:"${itemIdentifier}"`,
qf: ['contentTier:*'],
rows: 1
};
let itemResponse;
try {
itemResponse = await this.$apis.record.search(recordSearchParams);
if (!itemResponse.items[0]) {
throw new Error('Not found');
}
} catch (error) {
this.message = `Unable to harvest "${itemIdentifier}". Please make sure the item can be accessed on the Record API. Error: "${error.message}"`;
return;
}
this.identifier = itemResponse.items[0].id;
this.encoding = itemResponse.items[0];
try {
await this.populateFields();
this.message = 'Success';
} catch (error) {
this.message = `There was a problem updating the entry. ${error.message}`;
}
},
generateName() {
var _this$encoding3;
return (Object(utils["h" /* langMapValueForLocale */])((_this$encoding3 = this.encoding) === null || _this$encoding3 === void 0 ? void 0 : _this$encoding3.dcTitleLangAware, 'en').values[0] || `Record ${this.identifier}`).substring(0, 255);
},
async populateFields() {
var _this$contentfulExten, _this$contentfulExten2;
const name = this.generateName();
this.contentfulExtensionSdk.field.setValue(this.encoding.id);
(_this$contentfulExten = this.contentfulExtensionSdk.entry.fields.name) === null || _this$contentfulExten === void 0 ? void 0 : _this$contentfulExten.setValue(name, 'en-GB');
(_this$contentfulExten2 = this.contentfulExtensionSdk.entry.fields.encoding) === null || _this$contentfulExten2 === void 0 ? void 0 : _this$contentfulExten2.setValue(this.encoding);
},
resetRecord() {
try {
Object.values(this.contentfulExtensionSdk.entry.fields).forEach(field => {
field.removeValue();
});
} catch (error) {
this.message = `There was a problem clearing the entry. ${error.message}`;
return;
}
this.identifier = null;
this.encoding = null;
this.message = 'Successfully cleared all data';
}
}
});
// CONCATENATED MODULE: ./src/pages/contentful/record-harvester/index.vue?vue&type=script&lang=js&
/* harmony default export */ var contentful_record_harvestervue_type_script_lang_js_ = (record_harvestervue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// CONCATENATED MODULE: ./src/pages/contentful/record-harvester/index.vue
function injectStyles (context) {
var style0 = __webpack_require__(403)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
contentful_record_harvestervue_type_script_lang_js_,
render,
staticRenderFns,
false,
injectStyles,
"3de7061e",
"7b77335d"
)
/* harmony default export */ var record_harvester = __webpack_exports__["default"] = (component.exports);
/***/ })
};;
//# sourceMappingURL=index.js.map