All Projects → deejay-hub → Timeline Lwc

deejay-hub / Timeline Lwc

Licence: mit
An interactive timeline for the Salesforce platform.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Timeline Lwc

timeline-component-lwc
This component enables timeline view for Salesforce Record history.
Stars: ✭ 18 (-84.48%)
Mutual labels:  timeline, salesforce
Just Dashboard
📊 📋 Dashboards using YAML or JSON files
Stars: ✭ 1,511 (+1202.59%)
Mutual labels:  d3
Force Dev Tool
[DEPRECATED] Command line tool supporting the Force.com development lifecycle
Stars: ✭ 106 (-8.62%)
Mutual labels:  salesforce
Mdline
Markdown timeline format and toolkit.
Stars: ✭ 111 (-4.31%)
Mutual labels:  timeline
Freecodecamp.cn
FCC China open source codebase and curriculum. Learn to code and help nonprofits.
Stars: ✭ 36,576 (+31431.03%)
Mutual labels:  d3
Go Force
Go (golang) library for calling Salesforce.com (force.com) web api's
Stars: ✭ 111 (-4.31%)
Mutual labels:  salesforce
Workaholic
A Github's like work contribution timeline. 🤸🏻
Stars: ✭ 106 (-8.62%)
Mutual labels:  timeline
Markvis
make visualization in markdown. 📊📈
Stars: ✭ 1,509 (+1200.86%)
Mutual labels:  d3
Vue D3
a vue.js plugin for D3
Stars: ✭ 113 (-2.59%)
Mutual labels:  d3
Sfdc Lax
The service Lightning Component to write a clear asynchronous JavaScript code
Stars: ✭ 109 (-6.03%)
Mutual labels:  salesforce
Stocks
machine learning web app game where the user competes against the AI in picking stocks
Stars: ✭ 108 (-6.9%)
Mutual labels:  d3
Testdatafactory
The ultimate Apex Test Data Factory 🏭
Stars: ✭ 108 (-6.9%)
Mutual labels:  salesforce
Awesome Frontendmasters
📚 List of awesome frontendmasters course resources
Stars: ✭ 110 (-5.17%)
Mutual labels:  d3
D3js doc
D3js中文文档 D3中文 📊 📈 🎉
Stars: ✭ 1,599 (+1278.45%)
Mutual labels:  d3
Covid 19 Germany Gae
COVID-19 statistics for Germany. For states and counties. With time series data. Daily updates. Official RKI numbers.
Stars: ✭ 114 (-1.72%)
Mutual labels:  timeline
D3 Tube Map
Draw tube maps in the style of the London Underground using d3
Stars: ✭ 106 (-8.62%)
Mutual labels:  d3
Stream Node Orm
NodeJS Client - Build Activity Feeds & Streams with GetStream.io
Stars: ✭ 108 (-6.9%)
Mutual labels:  timeline
Workflow
审批王,华炎魔方内置BPM工作流引擎,低代码快速开发平台。
Stars: ✭ 111 (-4.31%)
Mutual labels:  salesforce
Planetary.js
🌎 Awesome interactive globes for the web
Stars: ✭ 1,545 (+1231.9%)
Mutual labels:  d3
Swiftlysalesforce
The swiftest way to build iOS apps that connect to Salesforce
Stars: ✭ 115 (-0.86%)
Mutual labels:  salesforce

Time Warp

Overview | Install Me | How it Works | FAQs | Contribute

An interactive Lightning Web Component for the Salesforce platform

forks on github stars on github watchers issues

timeline demo

Overview

A complete custom experience component. Created to allow users to view related records to a parent on an interactive timeline written with D3.js.

  • Multi Object Support. Plot related records to Lead, Account, Contact, Opportunity and Case.
  • Junction Object Support. Plot junction object records and use simple dot notation.
  • Multi Language Support. All labels and error messages as translatable custom labels.
  • Locale Support for Dates. Date formats change based on your Salesforce locale setting.
  • 3rd Party JS. Demonstrates 3rd Party JS and Apex imperative callouts to populate data in an interactive timeline.
  • Responsive interface. Uses flexipageRegionWidth to determine where in the page it is located.
  • Minimises server roundtrips. Uses Lightning Data Service for tooltips and falls back to queried data when needed.

This sample application is designed to run on Salesforce Platform. If you want to experience Lightning Web Components on any platform, please visit https://lwc.dev, and try out the Lightning Web Components sample application LWC Recipes OSS.

Installation Instructions

Now available as a managed package from the AppExchange.

Alternatively you can install the component straight from source control into a Scratch Org using the instructions below:

  1. Set up your environment. Follow the steps in the Quick Start: Lightning Web Components Trailhead project. The steps include:
  • Enable Dev Hub in your Trailhead Playground
  • Install Salesforce CLI
  • Install Visual Studio Code
  • Install the Visual Studio Code Salesforce extensions, including the Lightning Web Components extension
  1. If you haven't already done so, authenticate with your hub org and provide it with an alias (myhuborg in the command below):
sfdx force:auth:web:login -d -a myhuborg
  1. Clone the timeline-lwc repository:
git clone https://github.com/deejay-hub/timeline-lwc
cd timeline-lwc
  1. Create a scratch org and provide it with an alias (timeline-lwc in the command below):
sfdx force:org:create -s -f config/project-scratch-def.json -a timeline-lwc
  1. Push the app to your scratch org:
sfdx force:source:push
  1. Assign the Timeline_User permission set to the default user:
sfdx force:user:permset:assign -n Timeline_User
  1. Load sample data:
sfdx force:data:tree:import --plan data/timeline-plan.json
  1. Open the scratch org:
sfdx force:org:open
  1. Navigate to Sales, under App Launcher, select the Sales app.

  2. Find the contact Jane Lo and drill into her detailed information.

  3. Navigate to Setup, and select Edit Page

  4. Drag the timeline component into the page - found under custom components

timeline app builder

How it Works

For full details see the Configuration Guide

Object Support

Timeline is installed as a custom component available in the App Builder component pallette. The component is available on all standard and custom objects but has been designed specifically to see clusters of interactions over time.

Component Properties

The component has the following properties that can be set at design time in App Builder by an administrator

Property Description Validation
Parent Record Adjusts the timeline parent id Dynamic Picklist (valid relationships)
Title Adjusts the label String
Height Adjusts the vertical height Picklist (1 - 5)
Historical Time Range (Years) Adjusts the start date Picklist (0.25 - 5)
Future Time Range (Years) Adjusts the end date Picklist (0.25 - 1)
Zoom Based On Adjusts the position of the zoom Picklist (Current Date, Last Activity)
Zoom Range (Days) Adjusts the extent of the zoom Integer min 15 max 120

Custom Labels

Labels can be translated where appropriate. Navigate to Setup -> Custom Labels and add translations for your chosen languages. Note you will need the permission - Manage Transalations.

Label Name Default translation
Timeline_Error_Apex Apex error
Timeline_Error_Setup Setup error
Timeline_Error_JavaScriptResources Unable to load JavaScript resources
Timeline_Error_NoDataHeader No data to display
Timeline_Error_NoDataSubHeader Related records show up here on an interactive timeline. Check your filter or create a record.
Timeline_Error_Unhandled Houston...we've had a problem
Timeline_Label_Days day(s)
Timeline_Label_Items item(s)
Timeline_Label_Showing Showing:
Timeline_Label_Filters Filters (Used in filter panel)
Timeline_Label_Filter_All_Types All Types (Used in filter panel as select/deselect all checkbox)
Timeline_Label_Filter_Type_Legend Types to Show (Used in Filter panel)
Timeline_Label_Files Files & Notes (used in Filter when sObject is ContentDocumentLink)
Timeline_Label_Date_Range_Legend Date Range (Used in Filter panel)
Timeline_Label_Apply Label for apply button (Used in Filter panel)
Timeline_Label_Cancel Label for cancel button (Used in Filter panel)
Timeline_Navigation_Toast_Header Label used in Toast message header when drilling down on CaseComment
Timeline_Navigation_Toast_Body Label used in Toast message body when drilling down on CaseComment

Configuring Child Records to Plot

Specifying which child records to plot is done using the Timeline_Configuration_mdt metadata type. When populating the metadata type the following is a description of the columns and their purpose

Field Name Description
Parent_Object__c The API Name of the parent object that the child record relates to
Object_Name__c The API Name of the object that is the child to plot
Relationship_Name__c The API Name of the relationship between Parent and Child
Position_Date_Field__c The API Name of the field on the child (Object_Name__c) to use as the date value to use to position the record on the timeline (must be Date or Date/Time)
Detail_Field__c The API Name of the field on the child (Object_Name__c) to use as the description for the record to plot on the timeline
Icon__c A relative url to the image to use for this record
Icon_Background_Colour__c The background colour to use for the above image (rgb and hex supported)
Type_Field__c Reserved for 'Tasks' only. Used to specify the field to distinguish Calls vs Emails. Only used when Object_Name__c is Task
Fallback_Tooltip_Field__c The API Name of the field on the child object to use when the UI API does not support this object. Timeline will use the Detail_Fieldc value and the Fallback_Tooltip_Fieldc as the tooltip.
Drilldown_Id_Field__c The field containing the Id value that should be used for the drilldown operation. e.g. Which record should the user be navigated to. Important for junction objects.
Tooltip_Id_Field__c The field containing the Id value that should be used for the hover tooltip e.g. Which record should the user see when they hover over a record on the timeline. Important for junction objects.
Tooltip_Object_Name__c The object used by the tooltip. The label is also looked up to use in the filter panel.
Test__c Protected records used for Apex testing only.

FAQs

For FAQs and troubleshooting see the Knowledge Base

How to I specify the fields for the tooltip?

Use the Compact Layout of the object plotted (for the most part).

Does it support multiple languages other than English?

Yes - Supports a users locale, language and has custom labels for translation available.

Does it support Communities?

Yes. The timeline will work on a record detail page in the community. Sadly we don't support changing Parent Field at this stage.

Does it support Mobile?

No. The timeline component is really best suited to the desktop. Long term it is a goal to come up with a mobile version suited to reduced real estate. At the moment the component cannot be dragged into a mobile layout.

Does it support Person Accounts?

Yes.

Does it support Files / Notes / Attachments?

Yes. Files and Notes (sometimes referred to as enhanced Notes) are supported. We have added any record in the ContentDocumentLink object.

Does it support External Objects / Big Objects?

No. We would have to consider scale and performance too so for now the component only supports standard and custom objects.

Does it support History Objects?

No. History objects are deliberately removed from the query. They don't make good candidates to plot on the timeline due to the volume of updates.

Does it support Junction Objects?

Yes.

Contributing

Contributions are what make the trailblazer community such an amazing place. I regard this component as a way to inspire and learn from others. Any contributions you make are greatly appreciated.

See contributing.md for timeline principles.

Utilities and Dependencies

Dependencies

  • D3.js v 5.7.0
  • moment.js v2.2.4

Code formatting

Prettier is a code formatter used to ensure consistent formatting across your code base. To use Prettier with Visual Studio Code, install this extension from the Visual Studio Code Marketplace. The .prettierignore and .prettierrc files are provided as part of this repository to control the behavior of the Prettier formatter.

Code linting

ESLint is a popular JavaScript linting tool used to identify stylistic errors and erroneous constructs. To use ESLint with Visual Studio Code, install this extension from the Visual Studio Code Marketplace. The .eslintignore file is provided as part of this repository to exclude specific files from the linting process in the context of Lightning Web Components development.

Code quality

PMD is a cross-language static code analyser. To use PMD with Visual Studio Code, install this extension from the Visual Studio Code Marketplace. The .pmdruleset.xml file is provided as part of this repository to exclude specific files and/or types of code quality checks from the process in the context of Lightning Web Components development.

Codacy

Codacy automates code reviews and monitors code quality over time. Static analysis, code coverage and metrics for JavaScript and Apex. Tests for common styling and security issues.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].