74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
/** @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 {useInputField} from "@web/views/fields/input_field_hook";
|
|
import {FileUploader} from "@web/views/fields/file_handler";
|
|
import {session} from "@web/session";
|
|
import {useService} from "@web/core/utils/hooks";
|
|
import {isBinarySize} from "@web/core/utils/binary";
|
|
import {download} from "@web/core/network/download";
|
|
import utils from 'web.utils';
|
|
|
|
import core from 'web.core';
|
|
import rpc from 'web.rpc';
|
|
|
|
var QWeb = core.qweb;
|
|
|
|
import {Component, onWillUpdateProps, useState, useRef, useEffect} from "@odoo/owl";
|
|
|
|
export class StepViewer extends Component {
|
|
setup() {
|
|
this.props.url = 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},
|
|
};
|
|
|
|
StepViewer.extractProps = ({attrs}) => {
|
|
return {
|
|
url: attrs.options.url,
|
|
};
|
|
};
|
|
|
|
registry.category("fields").add("Viewer3D", StepViewer);
|