/** @odoo-module **/ import {registry} from "@web/core/registry"; import {_lt} from "@web/core/l10n/translation"; import {standardFieldProps} from "@web/views/fields/standard_field_props"; import {session} from "@web/session"; // import core from 'web.core'; // var QWeb = core.qweb; import {Component, onPatched} from "@odoo/owl"; export class StepViewer extends Component { setup() { this.props.url = this.formatUrl(); onPatched(() => { this.props.url = this.formatUrl(); const dom = $(this.__owl__.bdom.parentEl).children('model-viewer') if(dom && dom.length) { dom.attr('src', this.formatUrl()) } }) } formatUrl() { var url = ''; if (this.props.value) { if (this.props.value.slice(-1) == 'b' && !isNaN(this.props.value.split(' ')[0])) { var url_props = { base_url: session['web.base.url'], model: this.props.record.resModel, id: JSON.stringify(this.props.record.data['id']), field: this.props.name }; url = url_props['base_url'].replace('http://', 'https://') + '/web/content/' + url_props['model'] + '/' + url_props['id'] + '/' + url_props['field'] + '?download=true'; // url = 'http://localhost:8069'+'/web/content/'+url_props['model']+'/'+url_props['id']+'/'+url_props['field']+'?download=true' // console.log('url111111', url) return url; } else { url = "data:model/gltf-binary;base64," + this.props.value; // console.log('url2', url) return url; // localStorage.setItem('url',url) // let new_url = localStorage.getItem(('url')) // var oViewer = document.getElementsByTagName('model-viewer')[0]; // return new_url // url = "web_widget_model_viewer/static/src/images/not_model.png"; } } else { // var oImg = document.getElementsByClassName('test')[0] // console.log(oImg) } } } StepViewer.template = "web_widget_model_viewer.BinaryField3d"; StepViewer.displayName = _lt("3D File"); StepViewer.supportedTypes = ["binary"]; StepViewer.props = { ...standardFieldProps, url: {type: String, optional: true}, isInList: {type: Boolean, optional: true}, }; StepViewer.extractProps = ({attrs}) => { const modifiedAttrs = JSON.parse(attrs.modifiers || '{}'); return { url: attrs.options.url, isInList: modifiedAttrs.isInList, }; }; registry.category("fields").add("Viewer3D", StepViewer);