import tmpl from './baseActionComponent.html';
|
|
import { LightningElement, track } from 'lwc';
|
|
import { OmniscriptBaseMixin } from 'vlocity_cmt/omniscriptBaseMixin';
|
|
|
|
export default class BaseActionComponent extends OmniscriptBaseMixin(LightningElement) {
|
|
@track url;
|
|
@track query = JSON.stringify({
|
|
datasource: {
|
|
type: "query",
|
|
value: {
|
|
query: "SELECT Id, name FROM Contact LIMIT 1"
|
|
}
|
|
},
|
|
url: "/${data[0].Id}",
|
|
target: "_blank",
|
|
parameters: {},
|
|
navigate: false
|
|
});
|
|
|
|
connectedCallback() {
|
|
console.log('BaseActionComponent - Connected');
|
|
}
|
|
|
|
render() {
|
|
return tmpl;
|
|
}
|
|
|
|
fetchData(evt) {
|
|
let action = evt.target;
|
|
let def = JSON.parse(this.query);
|
|
action.definition = this.query;
|
|
action.triggerAction();
|
|
}
|
|
// I'm passing these properties down to the navigate-action via
|
|
// attributes.
|
|
onSuccessCallback(evt) {
|
|
let result = evt.detail.result;
|
|
this._targetType = "Record";
|
|
this._targetId = result[0].Id;
|
|
|
|
// Because we're setting the attribute values via attributes,
|
|
// we need to give the ui a chance to re-render.
|
|
Promise.resolve().then(() => {
|
|
this.url = result[0].attributes.url;
|
|
});
|
|
}
|
|
|
|
onErrorCallback(error) {
|
|
console.log(error);
|
|
}
|
|
|
|
|
|
}
|