I need to add the attachment 'Description' (the 'Notes' field of the attachment file 'OpportunityFile') to the Timeline tile for an attachment (Opportunities section). I'm probably missing a step out, but if somebody can clarify this for me it would be much appreciated:
1) The Data for key 'OpportunityPageV2' of 'TimelinePageSetting':
select "Key", encode("Data",'escape') as "Data" from "TimelinePageSetting"
{ "entityConfigKey":"59de07a7-28dd-4dc9-a106-a07cb9981423", "entitySchemaName":"OpportunityFile", "typeColumnName":"Type", "typeColumnValue":"529bc2f8-0ee0-df11-971b-001d60e938c6", "referenceColumnName":"Opportunity", "masterRecordColumnName":"Id" },
2) The edited entry for Id '59de07a7-28dd-4dc9-a106-a07cb9981423' of 'TimelineTileSetting':
select "Id", "Name", encode("Data", 'escape') as "Data" from "TimelineTileSetting"
{ "typeColumnValue":"529bc2f8-0ee0-df11-971b-001d60e938c6", "entitySchemaName":"##ReferenceSchemaName##File", "viewModelClassName":"Terrasoft.FileTimelineItemViewModel", "viewClassName":"Terrasoft.UsrFileTimelineItemView", "orderColumnName":"CreatedOn", "authorColumnName":"CreatedBy", "captionColumnName":"Name", "messageColumnName":"Notes" }
3) 'UsrFileTimelineItemView' is a new Module with source code copied from 'FileTimelineItemView' with the addition of the 'getMessageViewConfig' method copied from the example (note I am using the original viewModelClassName 'FileTimelineItemViewModel'):
define("UsrFileTimelineItemView", ["BaseTimelineItemView"], function() { /** * @class Terrasoft.configuration.FileTimelineItemView * File timeline item view class. */ Ext.define("Terrasoft.configuration.UsrFileTimelineItemView", { extend: "Terrasoft.BaseTimelineItemView", alternateClassName: "Terrasoft.UsrFileTimelineItemView", // region Methods: Protected /** * Returns file type icon view config. * @protected * @return {Object} */ getFileTypeIconConfig: function() { return { "name": "FileTypeIcon", "itemType": Terrasoft.ViewItemType.IMAGE, "getSrcMethod": "FileTypeSrc", "generator": "ImageCustomGeneratorV2.generateSimpleCustomImage", "onPhotoChange": Terrasoft.emptyFn, "classes": { "wrapClass": ["timeline-item-file-type-icon"] } }; }, /** * Returns file preview image view config. * @protected * @return {Object} */ getFilePreviewImageConfig: function() { return { "name": "FilePreviewImage", "itemType": Terrasoft.ViewItemType.IMAGE, "getSrcMethod": "getPreviewImageSrc", "generator": "ImageCustomGeneratorV2.generateSimpleCustomImage", "onPhotoChange": Terrasoft.emptyFn, "classes": { "wrapClass": ["timeline-item-file-preview-image"] } }; }, /** * @inheritdoc Terrasoft.BaseTimelineItemView#getCaptionViewConfig * @protected */ getCaptionViewConfig: function() { var config = this.callParent(arguments); config.target = "_self"; delete config.click; return config; }, /** * @inheritdoc Terrasoft.BaseTimelineItemView#getLeftHeaderViewConfig * @protected */ getLeftHeaderViewConfig: function() { var leftHeaderConfig = this.callParent(arguments); leftHeaderConfig.items.splice(1, 0, this.getFileTypeIconConfig()); return leftHeaderConfig; }, /** * @inheritdoc Terrasoft.BaseTimelineItemView#getBodyViewConfig * @override */ getBodyViewConfig: function() { var bodyConfig = this.callParent(arguments); bodyConfig.controlConfig.visibilityHeight = 0; bodyConfig.visible = { "bindTo": "isFilePreviewImageVisible" }; bodyConfig.items = [ this.getFilePreviewImageConfig() ]; return bodyConfig; }, // endregion // Redefined method returning the [Message] tile field configuration. getMessageViewConfig: function() { // Receiving standard settings. var config = this.callParent(arguments); // Visibility setup. Visible if the tile is deployed. config.visible = { "bindTo": "IsExpanded" }; return config; } }); });
Like
1 comments
Show all comments