diff --git a/.auto-changelog b/.auto-changelog index b64f475c..6cae4d38 100644 --- a/.auto-changelog +++ b/.auto-changelog @@ -2,7 +2,7 @@ "output": "CHANGELOG.md", "template": "keepachangelog", "unreleased": true, - "commitLimit": 0, + "commitLimit": 40, "hideCredit": true, - "tagPrefix": "" + "tagPrefix": "v" } diff --git a/.eslintignore b/.eslintignore index 5f7b681a..6c95c99e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -13,4 +13,6 @@ **/aura/**/*.tokens **/aura/**/*.xml **/aura/**/*.app +**/ActionPlan_Resources/js .sfdx +.sf diff --git a/.forceignore b/.forceignore index 8b5ee128..185bb0dc 100755 --- a/.forceignore +++ b/.forceignore @@ -47,6 +47,7 @@ TaskPriority.standardValueSet TaskType.standardValueSet Lead-Lead Layout.layout Account-Account Layout.layout +Opportunity-Opportunity Layout.layout-meta.xml Global-Global Layout.layout Account.object Campaign.object diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05bf56a2..1d1a2e8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,22 +41,10 @@ jobs: if: steps.cache-npm.outputs.cache-hit != 'true' run: npm ci - # Start local Apex parser server for Prettier - - name: 'Start local Apex parser server for Prettier' - run: npm run apex:local:start & - - # Wait for Apex parser server startup - - name: 'Wait for Apex parser server startup' - run: timeout 30 bash -c 'until printf "" 2>>/dev/null >>/dev/tcp/$0/$1; do sleep 1; done' 127.0.0.1 2117 - # Prettier formatting - name: 'Code formatting verification with Prettier' - run: npm run prettier:verify:apex:local + run: npm run prettier:verify - # Stop local Apex parser server for Prettier - - name: 'Stop local Apex parser server for Prettier' - if: always() - run: npm run apex:local:stop pmd-analysis: runs-on: ubuntu-latest needs: format-lint @@ -66,16 +54,10 @@ jobs: - name: 'Checkout source code' uses: actions/checkout@v3 - - name: 'Use latest PMD version' - run: | - VERSION=$(curl -s https://api.github.com/repos/pmd/pmd/releases/latest | grep '.tag_name' | sed 's:.*/::' | sed 's:",::') - echo $VERSION - echo -n $VERSION > pmd/pmd-version.txt - # Install PMD - name: 'Install PMD' run: | - PMD_VERSION=`cat pmd/pmd-version.txt` + PMD_VERSION=$(curl -s https://api.github.com/repos/pmd/pmd/releases/latest | grep '.tag_name' | sed 's:.*/::' | sed 's:",::') wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F$PMD_VERSION/pmd-bin-$PMD_VERSION.zip unzip pmd-bin-$PMD_VERSION.zip -d ~ mv ~/pmd-bin-$PMD_VERSION ~/pmd diff --git a/.github/workflows/dependabot-approve-and-auto-merge.yml b/.github/workflows/dependabot-approve-and-auto-merge.yml new file mode 100644 index 00000000..0c8f61ac --- /dev/null +++ b/.github/workflows/dependabot-approve-and-auto-merge.yml @@ -0,0 +1,38 @@ +name: Dependabot Pull Request Approve and Merge +on: pull_request_target +permissions: + pull-requests: write + contents: write +jobs: + # Auto merge Dependabot PRs for: + # - patch updates on prod dependencies + # - minor updates on dev dependencies + dependabot-auto-merge: + # Only run for Dependabot PRs + if: ${{ github.actor == 'dependabot[bot]' }} + runs-on: ubuntu-latest + steps: + - name: "Fetch Dependabot metadata" + id: dependabot + uses: dependabot/fetch-metadata@v1 + + - name: "Check auto merge conditions" + id: auto-merge + if: | + ( + steps.dependabot.outputs.update-type == 'version-update:semver-patch' && + contains('direct:production,indirect:production', steps.dependabot.outputs.dependency-type) + ) || ( + contains('version-update:semver-minor,version-update:semver-patch', steps.dependabot.outputs.update-type) && + contains('direct:development,indirect:development', steps.dependabot.outputs.dependency-type) + ) + run: echo "::notice ::auto-merge conditions satisfied" + + - name: "Approve and merge PR" + if: ${{ steps.auto-merge.conclusion == 'success' }} + run: | + gh pr review --approve "$PR_URL" + gh pr merge --auto --squash "$PR_URL" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ github.event.pull_request.html_url }} diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml deleted file mode 100644 index cebfc1b4..00000000 --- a/.github/workflows/packaging.yml +++ /dev/null @@ -1,91 +0,0 @@ -# Unique name for this workflow -name: Packaging - -# Definition when the workflow should run -on: - release: - types: [released] - -# Jobs to be executed -jobs: - packaging: - runs-on: ubuntu-latest - steps: - # Install Salesforce CLI - - name: Install Salesforce CLI - run: | - wget https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz - mkdir sfdx-cli - tar xJf sfdx-linux-amd64.tar.xz -C sfdx-cli --strip-components 1 - ./sfdx-cli/install - # Checkout the code in the pull request - - name: 'Checkout source code' - uses: actions/checkout@v3 - with: - #token: ${{ secrets.PAT }} - ref: 'main' - - # Store secret for dev hub - - name: 'Populate auth file with DEVHUB_SFDX_URL secret' - shell: bash - run: 'echo ${{ secrets.DEVHUB_SFDX_URL}} > ./DEVHUB_SFDX_URL.txt' - - # Authenticate dev hub - - name: 'Authenticate Dev Hub' - run: 'sfdx force:auth:sfdxurl:store -f ./DEVHUB_SFDX_URL.txt -a devhub -d' - - # Remove auth file - - name: Remove auth file - run: rm -f ./DEVHUB_SFDX_URL.txt - - # Add namespace to project config - - name: Add namespace to project config - run: | - sed -i 's,"namespace": "","namespace": "LabsActionPlans",' sfdx-project.json - - # Update release number in sfdx-project.json - - name: Update Package number in sfdx-project.json - run: | - versionNumber="${{ github.event.release.tag_name }}" - versionName="${{ github.event.release.name }}" - versionNameRegex="\"versionName\": \".*\"" - versionNumberRegex="\"versionNumber\": \"[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.NEXT\"" - newVersionName="\"versionName\": \"${versionName}\"" - newVersionNumber="\"versionNumber\": \"${versionNumber/v/}.NEXT\"" - sed -i -E "s,${versionNameRegex},${newVersionName}," sfdx-project.json - sed -i -E "s,${versionNumberRegex},${newVersionNumber}," sfdx-project.json - - # Create package version and extract its id - - name: Create package version - id: create-package-version - run: | - set +e - json=$(sfdx force:package:version:create -c -p ActionPlans --path sfdx-source/LabsActionPlans --installationkeybypass -w 20 --json) - echo $json - status=$(echo $json | jq '.status') - if [ $status == "0" ]; then - packageVersionId=$(echo $json | jq '.result.SubscriberPackageVersionId') - echo "::set-output name=packageVersionId::$packageVersionId" - else - echo "sfdx force:package:version:create failed" - fi - exit $status - - # Update sfdx-project.json and README to use only latest package version - #- name: 'Update sfdx-project.json and README' - # id: packaging-updater - # uses: trailheadapps/github-action-sfdx-packaging-updater@main - - # Remove namespace from project config - - name: Remove namespace from project config - run: | - sed -i 's,"namespace": "LabsActionPlans","namespace": "",' sfdx-project.json - - # Update sfdx-project.json - - name: 'Commit changes' - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: 'Created new package version' - tagging_message: '${{ github.event.release.tag_name }}' - file_pattern: sfdx-project.json README.md - push_options: '--force' diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4a5562ba..bc29f04c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -10,7 +10,11 @@ on: - 'config/**' - 'data/**' workflow_dispatch: - push: + +concurrency: + group: pr-tests-${{ github.ref }}-1 + cancel-in-progress: true + # Jobs to be executed jobs: check-pmd: @@ -21,16 +25,10 @@ jobs: - name: 'Checkout source code' uses: actions/checkout@v3 - - name: 'Use latest PMD version' - run: | - VERSION=$(curl -s https://api.github.com/repos/pmd/pmd/releases/latest | grep '.tag_name' | sed 's:.*/::' | sed 's:",::') - echo $VERSION - echo -n $VERSION > pmd/pmd-version.txt - # Install PMD - name: 'Install PMD' run: | - PMD_VERSION=`cat pmd/pmd-version.txt` + PMD_VERSION=$(curl -s https://api.github.com/repos/pmd/pmd/releases/latest | grep '.tag_name' | sed 's:.*/::' | sed 's:",::') wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F$PMD_VERSION/pmd-bin-$PMD_VERSION.zip unzip pmd-bin-$PMD_VERSION.zip -d ~ mv ~/pmd-bin-$PMD_VERSION ~/pmd @@ -48,13 +46,17 @@ jobs: uses: actions/checkout@v3 # Install Salesforce CLI - - name: 'Install Salesforce CLI' + - name: 'Install Salesforce sfdx CLI' + run: | + npm install sfdx-cli --location=global + nodeInstallPath=$(npm config get prefix) + echo "$nodeInstallPath/bin" >> $GITHUB_PATH + sfdx --version + + - name: 'Install Salesforce sf CLI' run: | - wget https://developer.salesforce.com/media/salesforce-cli/sfdx/channels/stable/sfdx-linux-x64.tar.xz - mkdir ~/sfdx - tar xJf sfdx-linux-x64.tar.xz -C ~/sfdx --strip-components 1 - echo "$HOME/sfdx/bin" >> $GITHUB_PATH - ~/sfdx/bin/sfdx version + npm install @salesforce/cli --global + sf --version # Store secret for dev hub - name: 'Populate auth file with DEVHUB_SFDX_URL secret' @@ -69,7 +71,7 @@ jobs: # Authenticate dev hub - name: 'Authenticate Dev Hub' - run: sfdx auth:sfdxurl:store -f ./DEVHUB_SFDX_URL.txt -a devhub -d + run: sf org login sfdx-url --sfdx-url-file ./DEVHUB_SFDX_URL.txt --alias devhub --set-default-dev-hub # Add namespace to project config - name: Add namespace to project config @@ -78,30 +80,35 @@ jobs: # Create scratch org - name: 'Create scratch org' - run: sfdx force:org:create -f config/project-scratch-def.json -a ActionPlans -s -d 1 -w 20 --noancestors + #run: sfdx force:org:create -f config/project-scratch-def.json -a ActionPlans -s -d 1 -w 20 --no-ancestors + run: sf org create scratch --definition-file config/project-scratch-def.json --alias ActionPlans --set-default --no-ancestors --duration-days 1 --wait 20 --target-dev-hub devhub # Deploy source to scratch org - name: 'Push source to scratch org' - run: sfdx force:source:push + #run: sfdx force:source:push + run: sf deploy metadata --target-org ActionPlans # Assign permissionset - name: 'Assign permissionset to default user' - run: sfdx force:user:permset:assign -n Action_Plans_Admin + #run: sfdx force:user:permset:assign -n Action_Plans_Admin + run: sf org assign permset --name Action_Plans_Admin --target-org ActionPlans # Run Apex tests in scratch org - name: 'Run Apex tests' - run: sfdx force:apex:test:run --codecoverage --resultformat human -l RunLocalTests --wait 20 --outputdir ./ + #run: sfdx force:apex:test:run --codecoverage --detailedcoverage --resultformat human -l RunLocalTests --wait 20 --outputdir ./ + run: sf apex run test --code-coverage --detailed-coverage --result-format human --wait 20 --test-level RunLocalTests --output-dir ./ # Upload code coverage to Codecov.io - name: 'Upload code coverage for Apex to Codecov.io' uses: codecov/codecov-action@v3 with: flags: Apex + token: ${{ secrets.CODECOV_TOKEN }} # Housekeeping - name: 'Delete scratch org' if: always() - run: sfdx force:org:delete --noprompt -u ActionPlans + run: sf org delete scratch --no-prompt --target-org ActionPlans # Remove namespace from project config - name: Remove namespace from project config diff --git a/.husky/pre-commit b/.husky/pre-commit index d63410f7..6e9bf51f 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,11 +1,4 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" -VERSION=$(curl -s https://api.github.com/repos/pmd/pmd/releases/latest | grep '.tag_name' | sed 's:.*/::' | sed 's:",::') -echo $VERSION - -printf '%s' "$VERSION" > pmd/pmd-version.txt -git add pmd/pmd-version.txt - -npm run updateHighlight -npx lint-staged \ No newline at end of file +npm run precommit diff --git a/.prettierignore b/.prettierignore index be82c773..749dc553 100755 --- a/.prettierignore +++ b/.prettierignore @@ -4,6 +4,7 @@ .localdevserver .sfdx +.sf .vscode/settings.json data/ diff --git a/.sfdx-scanner/config.json b/.sfdx-scanner/config.json new file mode 100644 index 00000000..e74d5ffb --- /dev/null +++ b/.sfdx-scanner/config.json @@ -0,0 +1,20 @@ +{ + "engines": [ + { + "name": "eslint", + "targetPatterns": ["**/*.js", "!**/lwc/**/*.js", "!**/node_modules/**", "!**/bower_components/**", "!**/jquery*.js"], + "disabled": false + }, + { + "name": "eslint-lwc", + "targetPatterns": ["**/lwc/**/*.js", "!**/node_modules/**"], + "disabled": true + }, + { + "name": "CPD", + "targetPatterns": ["**/*.cls", "**/*.trigger", "**/*.java", "**/*.page", "**/*.component", "**/*.xml", "!**/node_modules/**", "!**/*-meta.xml"], + "disabled": true, + "minimumTokens": "100" + } + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 556fbb90..eee32f43 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,15 +1,14 @@ { - "recommendations": [ - "salesforce.salesforcedx-vscode", - "redhat.vscode-xml", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "financialforce.lana", - "peterweinberg.apexdox-vs-code", - "chuckjonas.apex-pmd", - "eg2.vscode-npm-script", - "matteopieroni.refresh-npm-packages", - "subc4i.sublime-mavensmate-monokai-apex", - "PKief.material-icon-theme" - ] + "recommendations": [ + "chuckjonas.apex-pmd", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "financialforce.lana", + "matteopieroni.refresh-npm-packages", + "peterweinberg.apexdox-vs-code", + "pkief.material-icon-theme", + "redhat.vscode-xml", + "salesforce.salesforcedx-vscode", + "subc4i.sublime-mavensmate-monokai-apex" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 00fc2889..a05f0e97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,62 +5,187 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased](https://github.com/SalesforceLabs/ActionPlansV4/compare/4.2.1...HEAD) +## [Unreleased](https://github.com/dschach/ActionPlansV4/compare/4.2.1...HEAD) ### Merged -- Cosmetic rearrangements, apexdoc [`#55`](https://github.com/SalesforceLabs/ActionPlansV4/pull/55) -- 4.3.0 Queues, Child Objects [`#53`](https://github.com/SalesforceLabs/ActionPlansV4/pull/53) -- Version 4.3.0 pt 2 [`#47`](https://github.com/SalesforceLabs/ActionPlansV4/pull/47) -- Version 4.3.0 [`#44`](https://github.com/SalesforceLabs/ActionPlansV4/pull/44) -- Codecov to v3 [`#41`](https://github.com/SalesforceLabs/ActionPlansV4/pull/41) - -## [4.2.1](https://github.com/SalesforceLabs/ActionPlansV4/compare/4.2.0...4.2.1) - 2022-05-25 +- build(deps-dev): bump lint-staged from 13.1.2 to 13.2.0 [`#7`](https://github.com/dschach/ActionPlansV4/pull/7) +- build(deps-dev): bump eslint from 8.35.0 to 8.36.0 [`#6`](https://github.com/dschach/ActionPlansV4/pull/6) +- build(deps-dev): bump eslint from 8.34.0 to 8.35.0 [`#4`](https://github.com/dschach/ActionPlansV4/pull/4) +- feat(tests): update tests (assertions, messages) [`#3`](https://github.com/dschach/ActionPlansV4/pull/3) +- feat: update API to 57.0 [`#1`](https://github.com/dschach/ActionPlansV4/pull/1) +- Bump github/codeql-action from 1 to 2 [`#59`](https://github.com/dschach/ActionPlansV4/pull/59) +- Fix assigned to field [`#60`](https://github.com/dschach/ActionPlansV4/pull/60) +- Archived flag, dependent task fixes, SOQL optimization [`#58`](https://github.com/dschach/ActionPlansV4/pull/58) +- Cosmetic rearrangements, apexdoc [`#55`](https://github.com/dschach/ActionPlansV4/pull/55) +- 4.3.0 Queues, Child Objects [`#53`](https://github.com/dschach/ActionPlansV4/pull/53) +- Version 4.3.0 pt 2 [`#47`](https://github.com/dschach/ActionPlansV4/pull/47) +- Version 4.3.0 [`#44`](https://github.com/dschach/ActionPlansV4/pull/44) +- Codecov to v3 [`#41`](https://github.com/dschach/ActionPlansV4/pull/41) + +### Commits + +- build(npm): update package dependencies [`e40b10a`](https://github.com/dschach/ActionPlansV4/commit/e40b10a0129cc415527a4876ae6bf2f5893369b5) +- lightning lookup w/o API v1 [`e8dac8e`](https://github.com/dschach/ActionPlansV4/commit/e8dac8e7d0ab626fbb18bce7587a092b80a646cb) +- docs(ApexDox): rerun ApexDox [`bc720e2`](https://github.com/dschach/ActionPlansV4/commit/bc720e21f85ee44c9fbecd2ddc9c5b12523b24a4) +- docs(ApexDox): include Installation & Changelog [`4910af9`](https://github.com/dschach/ActionPlansV4/commit/4910af9d9714cb57ce662e0057c00a97a5897e3f) +- feat(docs): ApexDox version upgrade [`178e1ce`](https://github.com/dschach/ActionPlansV4/commit/178e1ce30ff4bcf6505429fcf809e7ec742f08c3) +- build: move tests folder into classes [`99d78d5`](https://github.com/dschach/ActionPlansV4/commit/99d78d5a3302b6881a99d01c370c3c6e7cc523f4) +- Tests use Assert class [`59d6ef2`](https://github.com/dschach/ActionPlansV4/commit/59d6ef2150bf29d68d79014be463923e83e39e35) +- build(sfdx): change sfdx to sf commands [`994b3f2`](https://github.com/dschach/ActionPlansV4/commit/994b3f241cd5e5ab81955571bc6ad9ab839d4c38) +- revert(API): use 56.0 to avoid GVS bug [`6eb588a`](https://github.com/dschach/ActionPlansV4/commit/6eb588a4439d1787e613995f4dbe6e9c808df7e1) +- feat: finish Professional Edition template lookup [`415fdcf`](https://github.com/dschach/ActionPlansV4/commit/415fdcfc8f784af02a6b5c22a25e38e52dffce93) +- docs: update CanTheUser comments [`22ea89c`](https://github.com/dschach/ActionPlansV4/commit/22ea89c57e2a545cb2443e4f8f9c13aabff9adb9) +- API 56.0 [`4303659`](https://github.com/dschach/ActionPlansV4/commit/43036599390a3fec5617f9b39986b030382960cb) +- fix: page redirect on template from object [`70f43ba`](https://github.com/dschach/ActionPlansV4/commit/70f43ba924930914499b9ad3cdc8d5dc0c9796be) +- feat(sfdx): update sfdx to sf [`f360666`](https://github.com/dschach/ActionPlansV4/commit/f36066624737f029454d9eed5d28a81c6309f24e) +- fix: remove unnecessary jsencode [`96070b1`](https://github.com/dschach/ActionPlansV4/commit/96070b187dda50d7cfe21a897868c690976b750c) +- fix: redirect on template choice for records [`8bf011b`](https://github.com/dschach/ActionPlansV4/commit/8bf011b5eb9e965f0f6016233b81a1aa239edc25) +- Deploy rules & scripts [`5b80488`](https://github.com/dschach/ActionPlansV4/commit/5b80488663d56cc79ba90ffcf6a727c44d1a588a) +- APTemplate lookup actions [`d34eaaf`](https://github.com/dschach/ActionPlansV4/commit/d34eaaf3d3c6958bb5115215259b81a491dfe266) +- fix(docs): update ApexDox [`e8481e8`](https://github.com/dschach/ActionPlansV4/commit/e8481e82bce1c97f8b44a5e47178f8ca815c8824) +- ci(codeQL): delete codeQL d/t IP address [`fa066cf`](https://github.com/dschach/ActionPlansV4/commit/fa066cfc4ddeb5017957abe873bfc8ad22f155f6) +- dependabot auto-merge [`b5e5d4f`](https://github.com/dschach/ActionPlansV4/commit/b5e5d4f4a1e1e2db2f9ffd8e09b4e7ffd67488cf) +- docs: cleanup code, document variables [`f27e8dc`](https://github.com/dschach/ActionPlansV4/commit/f27e8dccc8c4977a859e70a939b6c34a624729e8) +- feat: Update tests to use Assert class [`2069b97`](https://github.com/dschach/ActionPlansV4/commit/2069b97f7a65a68966efb2c49867a05a1f587719) +- fix(build): Update plugin dependencies [`4bf530c`](https://github.com/dschach/ActionPlansV4/commit/4bf530c6e5f1b60dcef86408e3acffc2376993dd) +- Update scratch org definition files [`851171c`](https://github.com/dschach/ActionPlansV4/commit/851171c6b2120b3e421909bb627fc2e454a2d4f7) +- chore: Scratch org shape updates [`fbe390e`](https://github.com/dschach/ActionPlansV4/commit/fbe390e7745f2d508a221d900d98f47feda0f061) +- docs(Apex): test comments [`5056ebc`](https://github.com/dschach/ActionPlansV4/commit/5056ebc9d8665fc70f4bf6d566a160c86251d5b6) +- ci: update PR sfdx to sf, npm installation [`77fa739`](https://github.com/dschach/ActionPlansV4/commit/77fa73957caf481dd5081a258d6b5a9e3c72decc) +- build(changelog): instructions & tag prefix [`0ae955b`](https://github.com/dschach/ActionPlansV4/commit/0ae955b8fc5056351c4c1f4ad66690fb56f53ea5) +- Beta 4.3.0-9 [`d4b477c`](https://github.com/dschach/ActionPlansV4/commit/d4b477c46a7487fd6ff07784b91ac99979e8bc71) +- fix(sfdx): sf apex test correct config [`6a030e4`](https://github.com/dschach/ActionPlansV4/commit/6a030e43da9aaff5bd9780803996f9fe63736cf1) +- feat: sfdx-scanner config [`42c6889`](https://github.com/dschach/ActionPlansV4/commit/42c6889df390a41195629f11d8453d429d64e769) +- docs(README): add image descriptions [`2b9f999`](https://github.com/dschach/ActionPlansV4/commit/2b9f999452002ff43152102cbb85348dbd0e1d7e) +- Dependabot alerts [`dea7b92`](https://github.com/dschach/ActionPlansV4/commit/dea7b929eaf6d555762795865fcfd2d12181d403) +- Bug Report Template [`acfda0a`](https://github.com/dschach/ActionPlansV4/commit/acfda0ae35984f3b48103be7fea9cce6411d2791) +- Bug template [`516f70c`](https://github.com/dschach/ActionPlansV4/commit/516f70c863549733964884939ef6b2cd77ca46d1) +- build(pmd): remove updatepmd [`0ef9783`](https://github.com/dschach/ActionPlansV4/commit/0ef9783b4c94c86ba07429ca36aa1abb650d9c19) +- feat(scripts): update latest jQuery [`992988e`](https://github.com/dschach/ActionPlansV4/commit/992988e433f53d6cf7099902d2b9ab79ba86503e) +- fix(lookup): escape=false for record name [`5fae8c0`](https://github.com/dschach/ActionPlansV4/commit/5fae8c09373dc86c9cc3ae30ad6ac7d27bb47770) +- Changelog [`6516aa9`](https://github.com/dschach/ActionPlansV4/commit/6516aa97d738d0742cf552c8cd608d5761c3ae09) + +## [4.2.1](https://github.com/dschach/ActionPlansV4/compare/4.2.0...4.2.1) - 2022-05-25 ### Merged -- Version 4.2.1 [`#37`](https://github.com/SalesforceLabs/ActionPlansV4/pull/37) -- Namespace to sample code [`#36`](https://github.com/SalesforceLabs/ActionPlansV4/pull/36) -- v4.2.0 [`#30`](https://github.com/SalesforceLabs/ActionPlansV4/pull/30) +- Version 4.2.1 [`#37`](https://github.com/dschach/ActionPlansV4/pull/37) +- Namespace to sample code [`#36`](https://github.com/dschach/ActionPlansV4/pull/36) +- v4.2.0 [`#30`](https://github.com/dschach/ActionPlansV4/pull/30) ### Fixed -- Version 4.2.1 (#37) [`#35`](https://github.com/SalesforceLabs/ActionPlansV4/issues/35) [`#34`](https://github.com/SalesforceLabs/ActionPlansV4/issues/34) -- Namespace to sample code (#36) [`#35`](https://github.com/SalesforceLabs/ActionPlansV4/issues/35) +- Version 4.2.1 (#37) [`#35`](https://github.com/dschach/ActionPlansV4/issues/35) [`#34`](https://github.com/dschach/ActionPlansV4/issues/34) +- Namespace to sample code (#36) [`#35`](https://github.com/dschach/ActionPlansV4/issues/35) -## [4.2.0](https://github.com/SalesforceLabs/ActionPlansV4/compare/4.1.0...4.2.0) - 2022-04-01 +### Commits -### Merged +- Correct Apex global method syntax [`eaee330`](https://github.com/dschach/ActionPlansV4/commit/eaee3301c8502edcf27a99c0955b44ce063ca0d0) +- ApexDox update [`da133ff`](https://github.com/dschach/ActionPlansV4/commit/da133ffed6f45bd0c4ebb8cf498a0223ed5d02d0) +- Promote v2.4.0.7 [`70849b9`](https://github.com/dschach/ActionPlansV4/commit/70849b9570742c112054b161973d9584cf0cc5a1) +- Changelog, packaging workflow [`5b77ddb`](https://github.com/dschach/ActionPlansV4/commit/5b77ddba5da486f283825e3304d1be5b8dce298c) +- Packaging workflow [`9107fd9`](https://github.com/dschach/ActionPlansV4/commit/9107fd99c3f3f36c4d070960412837f98b20af88) + +## [4.2.0](https://github.com/dschach/ActionPlansV4/compare/4.1.0...4.2.0) - 2022-04-01 -- Specify Action Plan Name in Invocable Apex [`#27`](https://github.com/SalesforceLabs/ActionPlansV4/pull/27) -- Prettier, JS fixing [`#26`](https://github.com/SalesforceLabs/ActionPlansV4/pull/26) -- Highlight.js to 11.5 [`#25`](https://github.com/SalesforceLabs/ActionPlansV4/pull/25) -- Add changelog [`#24`](https://github.com/SalesforceLabs/ActionPlansV4/pull/24) -- Bump minimist from 1.2.5 to 1.2.6 [`#23`](https://github.com/SalesforceLabs/ActionPlansV4/pull/23) -- Upgrading Instructions [`#22`](https://github.com/SalesforceLabs/ActionPlansV4/pull/22) -- Add Codecov [`#21`](https://github.com/SalesforceLabs/ActionPlansV4/pull/21) +### Merged -## [4.1.0](https://github.com/SalesforceLabs/ActionPlansV4/compare/4.0.0-9...4.1.0) - 2022-03-17 +- Specify Action Plan Name in Invocable Apex [`#27`](https://github.com/dschach/ActionPlansV4/pull/27) +- Prettier, JS fixing [`#26`](https://github.com/dschach/ActionPlansV4/pull/26) +- Highlight.js to 11.5 [`#25`](https://github.com/dschach/ActionPlansV4/pull/25) +- Add changelog [`#24`](https://github.com/dschach/ActionPlansV4/pull/24) +- Bump minimist from 1.2.5 to 1.2.6 [`#23`](https://github.com/dschach/ActionPlansV4/pull/23) +- Upgrading Instructions [`#22`](https://github.com/dschach/ActionPlansV4/pull/22) +- Add Codecov [`#21`](https://github.com/dschach/ActionPlansV4/pull/21) + +### Commits + +- ApexDox remove unused modifiers [`3b321db`](https://github.com/dschach/ActionPlansV4/commit/3b321dbd7d72eb7214e6533d5f24da105c76e6d5) +- Create codeql-analysis.yml [`2822bc5`](https://github.com/dschach/ActionPlansV4/commit/2822bc510e267148e3800d3241414893d0b0d92e) +- Highlight inline code security update [`57662e7`](https://github.com/dschach/ActionPlansV4/commit/57662e75737928c6362853cbaec4bafd199b6f25) +- Pull Request workflow update [`2c84f4d`](https://github.com/dschach/ActionPlansV4/commit/2c84f4dfd17062ddf4d08ff04d773f2a3d3f3d4b) +- Update and rename CONTRIBUTION.md to CONTRIBUTING.md [`cb7f3c1`](https://github.com/dschach/ActionPlansV4/commit/cb7f3c1c1ceea838050e6afe65eb89b556ab1d38) +- update Prettierignore [`37aeafa`](https://github.com/dschach/ActionPlansV4/commit/37aeafa8c42bdb08ba167eb3e82898ba16a2abf1) +- Add link to Apex documentation [`96f9cde`](https://github.com/dschach/ActionPlansV4/commit/96f9cde62ce62e1e568d609838250653c35ec7cb) +- Sample template update [`4c957ca`](https://github.com/dschach/ActionPlansV4/commit/4c957ca63a3a93f0378d95bba563ad86402b990d) +- Update CONTRIBUTING.md [`9e3b175`](https://github.com/dschach/ActionPlansV4/commit/9e3b175772293fdebb6ae0a17e574d0d3f8cbc33) +- Add AppExchange listing to README [`760dfc9`](https://github.com/dschach/ActionPlansV4/commit/760dfc91b97ed879aeec8d0ca1228cc46f4ad154) +- Sample flow update [`397b763`](https://github.com/dschach/ActionPlansV4/commit/397b76342026c63507cacc97a147a43287cc02ee) + +## [4.1.0](https://github.com/dschach/ActionPlansV4/compare/4.0.0-9...4.1.0) - 2022-03-17 ### Merged -- Release Ready [`#19`](https://github.com/SalesforceLabs/ActionPlansV4/pull/19) -- Pre-Release (beta15) [`#18`](https://github.com/SalesforceLabs/ActionPlansV4/pull/18) -- Pre-Commit ApexDox cleanup [`#16`](https://github.com/SalesforceLabs/ActionPlansV4/pull/16) -- Scripts, Cleanup, New Build [`#15`](https://github.com/SalesforceLabs/ActionPlansV4/pull/15) +- Release Ready [`#19`](https://github.com/dschach/ActionPlansV4/pull/19) +- Pre-Release (beta15) [`#18`](https://github.com/dschach/ActionPlansV4/pull/18) +- Pre-Commit ApexDox cleanup [`#16`](https://github.com/dschach/ActionPlansV4/pull/16) +- Scripts, Cleanup, New Build [`#15`](https://github.com/dschach/ActionPlansV4/pull/15) + +### Commits + +- Update issue templates [`e2be869`](https://github.com/dschach/ActionPlansV4/commit/e2be869204599eed28a990fffa43837c3ea3b5be) +- Import file language [`5be81e1`](https://github.com/dschach/ActionPlansV4/commit/5be81e17568678735f289c05a080589a5e63bfab) +- Start package versioning via release [`afd008a`](https://github.com/dschach/ActionPlansV4/commit/afd008adb2f753dbe5742e9027ea70121b169b9d) +- ISV toolkit md exclusion [`022c65a`](https://github.com/dschach/ActionPlansV4/commit/022c65a67eba69f1c220e006a70ca6ececad03b9) +- AppExchange link [`31f2e02`](https://github.com/dschach/ActionPlansV4/commit/31f2e028c89548c1cea2677693f0dabc277d9ae1) +- Apex highlighting [`0609b37`](https://github.com/dschach/ActionPlansV4/commit/0609b3733a8f5066037768cb1ac6145357d80b6f) ## 4.0.0-9 - 2022-02-23 ### Merged -- AP Task AssignedTo field cleanup [`#14`](https://github.com/SalesforceLabs/ActionPlansV4/pull/14) -- Managed vs Unmanaged Project Config [`#13`](https://github.com/SalesforceLabs/ActionPlansV4/pull/13) -- Permissions Updates [`#12`](https://github.com/SalesforceLabs/ActionPlansV4/pull/12) -- Remove tests from ApexDox [`#10`](https://github.com/SalesforceLabs/ActionPlansV4/pull/10) -- Security, code coverage, Print page, Spring 22! [`#7`](https://github.com/SalesforceLabs/ActionPlansV4/pull/7) -- Code and documentation cleanup [`#6`](https://github.com/SalesforceLabs/ActionPlansV4/pull/6) -- PMD-suggested cleanup [`#5`](https://github.com/SalesforceLabs/ActionPlansV4/pull/5) -- Rename Template Task [`#4`](https://github.com/SalesforceLabs/ActionPlansV4/pull/4) -- Version 4.0.0.7 [`#3`](https://github.com/SalesforceLabs/ActionPlansV4/pull/3) -- Code comment cleanup [`#2`](https://github.com/SalesforceLabs/ActionPlansV4/pull/2) -- ApexDocs, Project Files, PMD rules [`#1`](https://github.com/SalesforceLabs/ActionPlansV4/pull/1) +- AP Task AssignedTo field cleanup [`#14`](https://github.com/dschach/ActionPlansV4/pull/14) +- Managed vs Unmanaged Project Config [`#13`](https://github.com/dschach/ActionPlansV4/pull/13) +- Permissions Updates [`#12`](https://github.com/dschach/ActionPlansV4/pull/12) +- Remove tests from ApexDox [`#10`](https://github.com/dschach/ActionPlansV4/pull/10) +- Security, code coverage, Print page, Spring 22! [`#7`](https://github.com/dschach/ActionPlansV4/pull/7) +- Code and documentation cleanup [`#6`](https://github.com/dschach/ActionPlansV4/pull/6) +- PMD-suggested cleanup [`#5`](https://github.com/dschach/ActionPlansV4/pull/5) +- Rename Template Task [`#4`](https://github.com/dschach/ActionPlansV4/pull/4) +- Version 4.0.0.7 [`#3`](https://github.com/dschach/ActionPlansV4/pull/3) +- Code comment cleanup [`#2`](https://github.com/dschach/ActionPlansV4/pull/2) +- ApexDocs, Project Files, PMD rules [`#1`](https://github.com/dschach/ActionPlansV4/pull/1) + +### Commits + +- Documentation with ApexDox [`236c66b`](https://github.com/dschach/ActionPlansV4/commit/236c66b82c79062836ee059917842bf25d42ac39) +- Iniital commit, updated for namespace [`f4d7498`](https://github.com/dschach/ActionPlansV4/commit/f4d74984e51128788ee329a03764b521b9515b68) +- migrate to new sfdx-falcon directory [`0cde1dc`](https://github.com/dschach/ActionPlansV4/commit/0cde1dc403755cdf37dd7bd9e31155fce65277df) +- move to sfdx-source falcon directory structure [`2edf46d`](https://github.com/dschach/ActionPlansV4/commit/2edf46d356f0e2c029159c2818d874a3a6192620) +- package files [`16c26fc`](https://github.com/dschach/ActionPlansV4/commit/16c26fc10e24f9331c16973cca7c9ed0b2ce753c) +- Prettier first pass [`9467195`](https://github.com/dschach/ActionPlansV4/commit/94671959b397325f040c898a1e01173eafe284cc) +- ApexDox [`1fc534b`](https://github.com/dschach/ActionPlansV4/commit/1fc534ba2f94fd715972537598f5146760866aed) +- ApexDox [`48589f7`](https://github.com/dschach/ActionPlansV4/commit/48589f7481ed8bb5baa565def244c4029f0dd0d2) +- First commit - ReadMe & Installation [`406674a`](https://github.com/dschach/ActionPlansV4/commit/406674a13cb7b5c68db946ff8038c9df16e62d63) +- package files [`45278ca`](https://github.com/dschach/ActionPlansV4/commit/45278caa0d7f0d97141c5950fa0be8831e7c1c95) +- Install/update prettier [`62fd10a`](https://github.com/dschach/ActionPlansV4/commit/62fd10a3fad113f2ee39a0e6dc642d1c84dc4dfe) +- Exclude unmanaged and unpackaged metadata [`32bcb00`](https://github.com/dschach/ActionPlansV4/commit/32bcb0020732b1fa6aba8c9776fe1b0ac3d2b474) +- Unmanaged metadata for managed installation [`ed24492`](https://github.com/dschach/ActionPlansV4/commit/ed244927e79d18b8bb5085364c1481e92d97e6b4) +- Remove non-dev org actions [`29208d8`](https://github.com/dschach/ActionPlansV4/commit/29208d835bf4edd3952f981db85e30fbd21b6ae3) +- Install script for custom setting [`11e6b5d`](https://github.com/dschach/ActionPlansV4/commit/11e6b5d9e07f01a5a60521faa7a9632618fbfd66) +- Update for EE orgs [`83e459d`](https://github.com/dschach/ActionPlansV4/commit/83e459d805cfa59c2f381f53949ddcddeb7d9bd0) +- Fix lookup for portal users, custom setting DML [`dc6ea13`](https://github.com/dschach/ActionPlansV4/commit/dc6ea13871cf95df4d3d76f931edfdef373d04a1) +- Support unmanaged metadata [`f8681e8`](https://github.com/dschach/ActionPlansV4/commit/f8681e880dfae3eec6b2a5427b6df65a9141224b) +- Add gitignore [`433c579`](https://github.com/dschach/ActionPlansV4/commit/433c57938dd801ad1078cfc58bb2aa7b3b01fba8) +- Documentation and support files [`9993d83`](https://github.com/dschach/ActionPlansV4/commit/9993d83093101ab05f5057b7f726350065c0c4f6) +- ApexDox [`c5c3144`](https://github.com/dschach/ActionPlansV4/commit/c5c314412d1f42d5138b9575c317333ecc18e83a) +- Simplify Account layout [`536459a`](https://github.com/dschach/ActionPlansV4/commit/536459a34b23fed29841d63a3b77fda154eca876) +- ApexDox [`2662ae8`](https://github.com/dschach/ActionPlansV4/commit/2662ae868db1d30dd87eec48e81cf8a9568cff65) +- Create first package version [`53b252f`](https://github.com/dschach/ActionPlansV4/commit/53b252febede7e20351f82346a2b0dfc68b4b7f6) +- Org metadata and ignore files [`0725de0`](https://github.com/dschach/ActionPlansV4/commit/0725de02a377057af7f4fb9f6901d6d8384176ba) +- Removed TradeStyle to allow installation in regular orgs [`fa17e9d`](https://github.com/dschach/ActionPlansV4/commit/fa17e9d97d6ef1349475d8b7cde49606011b62fb) +- Handle ID lists [`b07c6a7`](https://github.com/dschach/ActionPlansV4/commit/b07c6a72c5c8162d55510d4c50da52bd3e983855) +- Works in managed package with unmanaged objects [`ef595b4`](https://github.com/dschach/ActionPlansV4/commit/ef595b4c57f44ee08b2d94bcf27738ed485fd1f8) +- Simplify installation instructions [`bdb2de3`](https://github.com/dschach/ActionPlansV4/commit/bdb2de3a738f00eab23287965e354bdc2bbf41f6) +- Readme update, ignore record types [`1412184`](https://github.com/dschach/ActionPlansV4/commit/1412184ae57ace230eb73cb9652e9ecbdcd5c184) +- Fix fieldset test visibility bug [`644087e`](https://github.com/dschach/ActionPlansV4/commit/644087e795cae2214dd2a775259537e07c4fc811) +- Class and method accessibility [`7515c2a`](https://github.com/dschach/ActionPlansV4/commit/7515c2ac2c60047b2f6cda655b73c50afc4727e9) +- Remove debugs [`07e4ee7`](https://github.com/dschach/ActionPlansV4/commit/07e4ee75d69ba6a9fb8dbb34e5aba3cdb3bad8b3) +- Release version 4.0.0-6 [`3f7a3fa`](https://github.com/dschach/ActionPlansV4/commit/3f7a3fa615c1623aad90cc105284243904d6139d) +- Script for working with custom object invocable [`9fe7c54`](https://github.com/dschach/ActionPlansV4/commit/9fe7c54ae80fa57baf48603bafbeaf227861c6e2) +- Create custom setting on install [`c3f795c`](https://github.com/dschach/ActionPlansV4/commit/c3f795c8b833df25877746ba17579c1493f9c02f) +- New task layout [`c31ec9f`](https://github.com/dschach/ActionPlansV4/commit/c31ec9f4f91c89e21cdb476c4053c6f0140f963a) +- Unprotect custom metadata so users can edit [`f947d4b`](https://github.com/dschach/ActionPlansV4/commit/f947d4b2c6632a19ea680352799a75eac8bc6176) +- Beta 3 [`19ace7e`](https://github.com/dschach/ActionPlansV4/commit/19ace7e5d04c68e62bfb37125e5941ad119f6330) +- ApexDox [`0076c54`](https://github.com/dschach/ActionPlansV4/commit/0076c543bc60834541223e0da28c749ab6a33367) diff --git a/INSTALLATION.md b/INSTALLATION.md index c23b25b6..ab742000 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -28,23 +28,23 @@ Follow these instructions to deploy Action Plans to your org. 1. If you haven't already done so, authorize your hub org and provide it with an alias (**myhuborg** in the command below): - ``` - sfdx auth:web:login -d -a myhuborg + ```bash + sf org login web --set-default --alias myhuborg ``` 1. Clone this repository: - ``` + ```bash git clone https://github.com/SalesforceLabs/ActionPlansV4 cd ActionPlansV4 ``` 1. From the terminal window, run the installation script - ``` - npm run-script scratchorg + ```bash + npm run scratchorg ``` or - ``` + ```bash . scripts/scratchorg.sh ``` @@ -59,13 +59,13 @@ Start from a brand-new environment to avoid conflicts with previous work you may 1. Authorize your org and provide it with an alias (**myorg** in the command below): - ``` - sfdx auth:web:login -s -a myorg + ```bash + sf org login web --set-default --alias myorg ``` 1. Clone this repository: - ``` + ```bash git clone https://github.com/SalesforceLabs/ActionPlansV4 cd ActionPlansV4 ``` @@ -73,7 +73,7 @@ Start from a brand-new environment to avoid conflicts with previous work you may 1. If you are setting up a Developer Edition: go to **Setup**, and under **My Domain**, [register a My Domain](https://help.salesforce.com/articleView?id=domain_name_setup.htm&type=5). Then ensure that enhanced domains are activated. You may need to enable Salesforce Edge network first. 1. To run all the next steps at once, run this [command](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/scripts/unmanaged.sh) in the terminal: - ``` + ```bash . scripts/unmanaged.sh ``` The org will open. That's it! @@ -82,23 +82,27 @@ Start from a brand-new environment to avoid conflicts with previous work you may 1. Run this command to deploy the app. - ``` - sfdx force:source:deploy -p sfdx-source/LabsActionPlans --tracksource - ``` + ```bash + sf deploy metadata --source-dir sfdx-source/LabsActionPlans + ``` 2. Assign the `Action_Plans_Admin` permission set to the admin user. - ``` - sfdx force:user:permset:assign -n Action_Plans_Admin - ``` + ```bash + sf org assign permset --name Action_Plans_Admin + ``` 3. (Optional) [Load sample metadata](#optional-installation-instructions) (see below) + ```bash + sf deploy metadata --source-dir sfdx-source/unmanaged + ``` + 4. If your org isn't already open, open it now: - ``` - sfdx force:org:open -u myorg - ``` + ```bash + sf org open --target-org myorg + ``` 2. In App Launcher, select the **Action Plans** app. @@ -106,7 +110,7 @@ Start from a brand-new environment to avoid conflicts with previous work you may This repository contains several files that are relevant if you want to add sample data, or integrate modern web development tooling to your Salesforce development processes or to your continuous integration/continuous deployment processes. -### Data Import (Optional - NOT available if using the AppExchange managed package) +### Data/Metadata Import (Optional - NOT available if using the AppExchange managed package) - This repository creates sample data (Accounts, Contacts, Leads) if you choose to create a scratch org. To prevent this, go to the [scratch org definition](./config/project-scratch-def.json) and change `hasSampleData` to `false`. ``` @@ -114,64 +118,65 @@ This repository contains several files that are relevant if you want to add samp ``` - To create a sample Action Plan Template for Account onboarding, run the following: - ``` - sfdx force:apex:execute -f ./data/sample-data.apex + ```bash + sf apex run --file ./data/sample-data.apex ``` - To create - a sample Flow that uses the sample template - a sample Account layout - a sample Task layout - a sample report on open Action Plan-related Tasks - ``` - sfdx force:source:deploy -p sfdx-source/unmanaged --tracksource + ```bash + sf deploy metadata --source-dir sfdx-source/unmanaged ``` - You can also create other sample Account and Contact records by running the following command: - ``` - sfdx force:data:tree:import -p ./data/action-plan-data-plan.json + ```bash + sf data import tree --plan ./data/action-plan-data-plan.json ``` -### Data Import (Optional - ONLY if using the AppExchange managed package) +### Data/Metadata Import (Optional - ONLY if using the AppExchange managed package) - When FIRST installing the package, it will automatically create a sample Action Plan Template for Account onboarding. If you want to recreate it manually, run the following: - ``` - sfdx force:apex:execute -f ./data/sample-data-managed.apex + ```bash + sf apex run --file ./data/sample-data-managed.apex ``` - To create - a sample Flow that uses the sample template - a sample Account layout - a sample Task layout - a sample report on open Action Plan-related Tasks - ``` - sfdx force:source:deploy -p sfdx-source/unmanagedExtension --tracksource + ```bash + sf deploy metadata --source-dir sfdx-source/unmanagedExtension ``` - You can also create other sample Account and Contact records by running the following command: - ``` - sfdx force:data:tree:import -p ./data/action-plan-data-plan.json + ```bash + sf data import tree --plan ./data/action-plan-data-plan.json ``` ### Code formatting [Prettier](https://prettier.io/) is a code formatter used to ensure consistent formatting across your code base. To use Prettier with Visual Studio Code, install [this extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) from the Visual Studio Code Marketplace. The [.prettierignore](/.prettierignore) and [.prettierrc](/.prettierrc) files are provided as part of this repository to control the behavior of the Prettier formatter. -### Code linting +[Prettier Apex](https://github.com/dangmai/prettier-plugin-apex) is an extension that handles Apex-specific formatting and allows the removal of the extra line via the Prettier config file. To use it with Visual Studio Code, follow [these instructions](https://developer.salesforce.com/tools/vscode/en/user-guide/prettier) from the Salesforce Extensions site. -[ESLint](https://eslint.org/) is a popular JavaScript linting tool used to identify stylistic errors and erroneous constructs. To use ESLint with Visual Studio Code, install [this extension](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) from the Visual Studio Code Marketplace. The [.eslintignore](/.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. + ### Pre-commit hook -This repository also comes with a [package.json](./package.json) file that makes it easy to set up a pre-commit hook that enforces code formatting and linting by running Prettier and ESLint every time you `git commit` changes. +This repository also comes with a [package.json](./package.json) file that makes it easy to set up a pre-commit hook that enforces code formatting by running Prettier every time you `git commit` changes. -To set up the formatting and linting pre-commit hook: +To set up the formatting pre-commit hook: 1. Install [Node.js](https://nodejs.org) if you haven't already done so -1. Run `npm install` in your project's root folder to install the Husky, ESLint, and Prettier modules (Note: Mac users should verify that Xcode command line tools are installed before running this command.) +2. Run `npm install` in your project's root folder to install the Husky and Prettier modules (Note: Mac users should verify that Xcode command line tools are installed before running this command.) -Husky will now run Prettier and ESLint automatically every time you commit changes, with some other updates if you installed the recommended extension ApexDox. The commit will fail if linting errors are detected. You can also run the formatting and linting from the command line using the following commands (check out [package.json](./package.json) for the full list): +Husky will now run Prettier automatically every time you commit changes, with some other updates if you installed the recommended extension ApexDox. You can also run the formatting from the command line using the following command (check out [package.json](./package.json) for the full list): -``` -npm run lint:lwc +```bash npm run prettier ``` diff --git a/README.md b/README.md index f2cc68d1..2e4f06eb 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Action Plans -[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![Latest Commit](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/ci.yml/badge.svg)](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/ci.yml) [![Latest Pull Request](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/pr.yml/badge.svg)](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/pr.yml) [![codecov](https://codecov.io/gh/salesforcelabs/actionplansv4/branch/main/graph/badge.svg?token=9BD97HKVUI)](https://codecov.io/gh/salesforcelabs/actionplansv4) [![Twitter](https://img.shields.io/twitter/follow/salesforce_labs.svg?style=social)](https://twitter.com/salesforce_labs) +[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![Latest Commit](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/ci.yml/badge.svg)](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/ci.yml) [![Latest Pull Request](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/pr.yml/badge.svg)](https://github.com/SalesforceLabs/ActionPlansV4/actions/workflows/pr.yml) [![codecov](https://codecov.io/gh/salesforcelabs/actionplansv4/branch/main/graph/badge.svg?token=9BD97HKVUI)](https://codecov.io/gh/salesforcelabs/actionplansv4) [![Twitter](https://img.shields.io/twitter/follow/appexchange.svg?style=social)](https://twitter.com/appexchange) -## [Changelog](./CHANGELOG.md) +## [Changelog](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/CHANGELOG.md) # Action Plans Installation and Setup -## Please follow installation instructions, shown on the **[Installation page](./INSTALLATION.md)** +## Please follow installation instructions, shown on the **[Installation page](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/INSTALLATION.md)** -### [AppExchange](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/INSTALLATION.md#appexchange-managed-package---recommended) +### [AppExchange - Recommended](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/INSTALLATION.md#appexchange-managed-package---recommended) - [AppExchange Listing](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000Gg6NVUAZ) - [Post-intall extras](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/INSTALLATION.md#data-import-optional---only-if-using-the-appexchange-managed-package) @@ -120,7 +120,7 @@ Assign the appropriate Permission Set(s) to each user who will need to use Actio - `Action Plans Template Creator:` Full permissions for Action Plan Templates and AP Template Tasks. No Action Plan access. - `Action Plans Creator:` Read, Create, Edit, Delete for Action Plans and AP Tasks. Read-only for Action Plan Templates and APT Task Templates. - `Action Plans Import/Export:` Access to export and import Action Plan Template records. View the appropriate button for export and tab for import. -- `Action Plans User:` Read-only for Action Plans and AP Tasks. +- `Action Plans User:` Read-only for Action Plans and AP Tasks. Edit permission for Tasks should be provided via the user's profile or other permission sets. Uses for each Permission Set: - Some users may require visibility into the Action Plans related to those Tasks. These users need the `Action Plans User` Permission Set. It gives Read-only access to Action Plan. @@ -133,30 +133,37 @@ Note: The Apex used in Flows or via triggers does not require special permission # Using Action Plans with Custom Objects -## To Start Using an Object with Action Plans +## Start Using an Object with Action Plans 1. Create the object and be sure to check "Track Activities" for the object attrributes 1. Create a lookup field from Action Plan to the object. **Name the field the same as the object name.** The field label can be anything. - As an example, if you have a custom object named `MyObject__c`, you must name the field on Action Plan `MyObject__c` 1. Add the field to the `Related Objects` fieldset on Action Plan. 1. The related object will now be available for selection when creating a new Action Plan and relating it to an object. -1. Add the following code to the object trigger in `before delete` and `after undelete` contexts (removing the `LabsActionPlans` namespace if you're not using the managed package: +1. Add the following code to the object trigger in `before delete` and `after undelete` contexts (removing the `LabsActionPlans` namespace if you're not using the managed package): ```apex - LabsActionPlans.ActionPlansTriggerHandlers.actionPlansSObjectTriggerHandler( 'Custom_Object__c' ); + LabsActionPlans.ActionPlansTriggerHandlers.actionPlansSObjectTriggerHandler( 'CustomObject__c' ); ``` -![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/ActionPlanFieldSet.png) -## Adding a New Custom Object Action Plan button to the Action Plan object +![Field set on Action Plan with all related objects available and only some selected](doc-assets/readme/ActionPlanFieldSet.png) + +## Test Code for Additional Objects + +Don't forget to write a test class to cover the custom object trigger. If you're just going for coverage (not a best-practice!) just make a test method inserting and then deleting a record. +Unfortunately, the code in this package does not lend itself to easy creation of an Action Plan for a custom object... yet. + +## Adding a `Create Custom Object Action Plan` button to the Action Plan object While Action Plans already overrides the New Action Plan action, the New button will show a new Action Plan screen, but will not allow adding an existing template. (Perhaps this will be in a future release... safe harbor.) Create a custom button with the following format on the Action Plan object and add it to the related list on the custom object page layout: 1. Navigate to Setup > Object Manager > Action Plan > Buttons, Links, and Actions > New Button or Link 1. Give it a label and name, such as "New MyObject Action Plan" 1. Display Type is List Button. Uncheck the list checkbox. -1. Use the following format for the button (removing the `LabsActionPlans` namespace if you're not using the managed package): +1. Use the following format for the button (removing the `LabsActionPlans__` namespace if you're not using the managed package): ```plaintext {!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType="CustomObject__c", refId=CustomObject__c.Id] )} ``` -## Create Action Plans for multiple Custom Object records +1. Be sure to remove the standard New button on the Action Plans related list and use this button instead. +## `Create Action Plans` for multiple Custom Object records Just as there is a button for Account list views to create multiple Action Plans, you can do the same for your custom object. Create a Visualforce page with the following code: ```xml @@ -188,7 +195,7 @@ Now you're ready to create your first template. Navigate to the Action Plans Tem The template screen looks like this: -![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/Template-Creation.png) +![](doc-assets/readme/Template-Creation.png) 1. Name - Template Name. 1. Description - An explanation of how the template should be used. @@ -223,25 +230,25 @@ If your org uses Task Record Types, you must specify which Record Type to use fo 1. Navigate to an Accounts list view. Select the Accounts for which you want to create Action Plans. Click on the "Create Account Action Plans" button. - ![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/Select-Accounts.png) + ![List view of Accounts with 50 selected. The "Create Account Action Plans" button is highlighted](doc-assets/readme/Select-Accounts.png) 1. Select the template you want to use by typing the name on the lookup and clicking on it. - ![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/Choose-template-step1.png) + ![Action Plan creation screen with 50 sample records indicated on the page layout](doc-assets/readme/Choose-template-step1.png) 1. Enter the information specific to this plan. Note that the Accounts you selected earlier are visible. - ![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/Choose-template-step2.png) + ![Filled-in Action Plan creation screen](doc-assets/readme/Choose-template-step2.png) 1. Save the Action Plan. Note: Action Plan creation is handled by a queueable (asynchronous) process. It can take a couple of minutes to be able to view all created records. - ![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/ActionPlan-Detail.png) + ![Single Action Plan detail screen](doc-assets/readme/ActionPlan-Detail.png) 1. Verify the Action Plan and the tasks. 1. Complete the first task on the Action Plan. - Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete. + Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete. (A Contact related list is shown here, but this applies equally to Accounts.) - ![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/AccountActionPlan-Detail.png) + ![Contact related lists showing Action Plans for the Contact and one open and one closed task](doc-assets/readme/AccountActionPlan-Detail.png) # Task notifications for Flow-created Action Plans @@ -262,7 +269,7 @@ If the user has enabled task notification, then those will be sent when an Actio # Queues -Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the createdTasks (which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page. +Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the created Tasks (which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page. # Automate Action Plan Creation @@ -271,7 +278,7 @@ Action Plan Tasks cannot be assigned to queues, so if the parent record is owned Action Plans includes an Invocable Apex class that can be included in a Flow. The Record ID of the triggering record is required, as is the Id OR the Name of the desired template. Days from trigger to start Action Plan is optional (and defaults to 0). The first task will be due the number of days (specified on the template) from the start date. This date may fall on a weekend, though task due dates can be moved to avoid weekends if set on the template. -![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/FlowAction.png) +![Flow action setup screen](doc-assets/readme/FlowAction.png) The Invocable Apex class returns the Salesforce IDs of all the created Action Plan Tasks, which can be used in the next Flow steps. @@ -280,12 +287,12 @@ The Invocable Apex class returns the Salesforce IDs of all the created Action Pl Run the following: ```plaintext -sfdx force:apex:execute -f ./data/sample-data.apex +sf apex run --file ./data/sample-data.apex ``` To use this Template with the included Flow, see the `Create Action Plan From Template` Apex Action in the `New Customer Onboarding Activities` Flow - ![Set input variables for the Flow action](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/FlowActionVariables.png) + ![Set input variables for the Flow action](doc-assets/readme/FlowActionVariables.png) Create an Account and set `Type` to any value that starts with 'Customer' @@ -295,7 +302,7 @@ It is recommended NOT to check the Recursion box when creating a Process Builder **It is also recommended NOT to use Process Builder at all!** - + ## Apex @@ -350,7 +357,7 @@ Action Plans supports the sharing and discovery of best practices using Template Export is simple. Navigate to the Template you wish to export. Click on the "Export" button. -![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/ActionPlanTemplate-import-1.png) +![](doc-assets/readme/ActionPlanTemplate-import-1.png) Export creates a simple XML file containing template header and task information. It also includes information about who created the template. Note: It does not include user information or sensitive data about what objects you might use this template with. @@ -363,8 +370,8 @@ Sharing the file is easy. Email the file to whomever you want to share it with. Import is also simple. Navigate to the "Import Template" tab. Select the file you want to import using "Browse" and once you've found it click on "Import Template." -![](sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images/ActionPlanTemplate-import-2.png) +![](doc-assets/readme/ActionPlanTemplate-import-2.png) ## (Optional) Sample Action Plan Template Import -This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download [New Customer Onboarding](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/data/Export%20-%20New%20Customer%20Onboarding.xml) or [Trade Show Follow Up](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/data/Trade%20Show%20Follow%20Up.xml) from GitHub, or you can find it in this SFDX project in the `data` folder. +This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download [New Customer Onboarding](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/data/Export%20-%20New%20Customer%20Onboarding.xml) or [Trade Show Follow Up](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/data/Trade%20Show%20Follow%20Up.xml) from GitHub, or you can find it in this SFDX project in the [`data`](https://github.com/SalesforceLabs/ActionPlansV4/blob/main/data) folder. diff --git a/apexdox.yml b/apexdox.yml index b05f35fb..1af1b726 100644 --- a/apexdox.yml +++ b/apexdox.yml @@ -1,9 +1,9 @@ engine: source: - path: '${workspaceFolder}/sfdx-source/LabsActionPlans/main/default/classes' - sourceUrl: https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes - - path: '${workspaceFolder}/sfdx-source/LabsActionPlans/main/default/tests' - sourceUrl: https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests + sourceUrl: https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes + - path: '${workspaceFolder}/sfdx-source/LabsActionPlans/main/default/classes/tests' + sourceUrl: https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests targetDirectory: '${workspaceFolder}/docs' #excludes: # - "*Test.cls" @@ -20,8 +20,9 @@ engine: #- webService - testMethod homePagePath: '${workspaceFolder}/doc-assets/readme.html' - #pages: - #- '${workspaceFolder}/doc-assets/Installation.html' + pages: + - '${workspaceFolder}/doc-assets/installation.html' + - '${workspaceFolder}/doc-assets/changelog.html' assets: - '${workspaceFolder}/doc-assets/logo.png' - '${workspaceFolder}/doc-assets/favicon.png' @@ -43,6 +44,7 @@ engine: - '${workspaceFolder}/doc-assets/highlight.css' - '${workspaceFolder}/doc-assets/highlight.js' - '${workspaceFolder}/doc-assets/index.js' + port: 8088 docblock: alignItems: true diff --git a/config/enterprise-scratch-def.json b/config/enterprise-scratch-def.json index c916da53..315bf31e 100644 --- a/config/enterprise-scratch-def.json +++ b/config/enterprise-scratch-def.json @@ -5,8 +5,14 @@ "description": "Enterprise Edition Scratch org for Action Plans", "features": ["EnableSetPasswordInApi"], "settings": { + "mobileSettings": { + "enableS1EncryptedStoragePref2": false + }, "lightningExperienceSettings": { "enableS1DesktopEnabled": true + }, + "chatterSettings": { + "enableChatter": true } } } diff --git a/config/install-scratch-def.json b/config/install-scratch-def.json index 7e4f324b..78fcce36 100644 --- a/config/install-scratch-def.json +++ b/config/install-scratch-def.json @@ -5,8 +5,14 @@ "description": "Developer Edition org requirements for Action Plans Installation", "features": ["EnableSetPasswordInApi"], "settings": { + "mobileSettings": { + "enableS1EncryptedStoragePref2": false + }, "lightningExperienceSettings": { "enableS1DesktopEnabled": true + }, + "chatterSettings": { + "enableChatter": true } } } diff --git a/config/professional-scratch-def.json b/config/professional-scratch-def.json index cc332460..ce5155d0 100644 --- a/config/professional-scratch-def.json +++ b/config/professional-scratch-def.json @@ -7,6 +7,9 @@ "settings": { "lightningExperienceSettings": { "enableS1DesktopEnabled": true + }, + "chatterSettings": { + "enableChatter": true } } } diff --git a/config/project-scratch-def.json b/config/project-scratch-def.json index 6b26facc..14034f10 100644 --- a/config/project-scratch-def.json +++ b/config/project-scratch-def.json @@ -3,13 +3,16 @@ "edition": "Developer", "hasSampleData": true, "description": "Developer Edition Scratch org for Action Plans", - "features": ["EnableSetPasswordInApi", "OrderSaveLogicEnabled"], + "features": ["EnableSetPasswordInApi"], "settings": { + "mobileSettings": { + "enableS1EncryptedStoragePref2": false + }, "lightningExperienceSettings": { "enableS1DesktopEnabled": true }, - "orderSettings": { - "enableOrders": true + "chatterSettings": { + "enableChatter": true } } } diff --git a/doc-assets/ApexDoxSetup.sh b/doc-assets/ApexDoxSetup.sh new file mode 100644 index 00000000..607671b1 --- /dev/null +++ b/doc-assets/ApexDoxSetup.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env sh + +printf '' > "doc-assets/readme.html" +echo >> "doc-assets/readme.html" +npx marked -i README.md --breaks >> "doc-assets/readme.html" + +sed -i '' 's|href="./|target="_blank" href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/|g' doc-assets/readme.html +sed -i '' 's|src="doc-assets/readme|class="readmeimage" src="assets|g' doc-assets/readme.html +sed -i '' 's|https://github.com/SalesforceLabs/ActionPlansV4/blob/main/INSTALLATION.md|./installation.html|g' doc-assets/readme.html +sed -i '' 's|https://github.com/SalesforceLabs/ActionPlansV4/blob/main/CHANGELOG.md|./changelog.html|g' doc-assets/readme.html + +printf '' > "doc-assets/installation.html" +echo >> "doc-assets/installation.html" +npx marked -i INSTALLATION.md --breaks >> "doc-assets/installation.html" + + +printf '' > "doc-assets/changelog.html" +echo >> "doc-assets/changelog.html" +npx marked -i CHANGELOG.md --breaks >> "doc-assets/changelog.html" + +. doc-assets/updateHighlight.sh \ No newline at end of file diff --git a/doc-assets/INSTALLATION.html b/doc-assets/INSTALLATION.html new file mode 100644 index 00000000..8fb976fe --- /dev/null +++ b/doc-assets/INSTALLATION.html @@ -0,0 +1,149 @@ + +

Action Plans Installation

+

Follow these instructions to deploy Action Plans to your org.

+

Deployment Methods

+

AppExchange: The managed package is the best way to go - it will let you upgrade seamlessly as features are added.

+

Installing the App Using a Scratch Org: Fast and easy way to work with this app in a scratch org

+

Installing the app using a Developer Edition Org or a Sandbox: Useful when tackling Trailhead Badges or if you want the app deployed to a more permanent environment than a scratch org.

+

Optional installation instructions: Installing sample Action Plan Template and other metadata

+
+ + +

Action Plans: This is the best way to install the package, which you can easily upgrade as features are added.

+

Installing the App using a Scratch Org

+
    +
  1. Set up your environment. Follow the steps in the Quick Start: Lightning Web Components Trailhead project. The steps include:

    + +
  2. +
  3. If you haven't already done so, authorize your hub org and provide it with an alias (myhuborg in the command below):

    +
    sf org login web --set-default --alias myhuborg
    +
    +
  4. +
  5. Clone this repository:

    +
    git clone https://github.com/SalesforceLabs/ActionPlansV4
    +cd ActionPlansV4
    +
    +
  6. +
  7. From the terminal window, run the installation script

    +
    npm run scratchorg
    +
    +

    or

    +
    . scripts/scratchorg.sh
    +
    +
  8. +
  9. That's it!

    +
  10. +
+

Installing the App using a Developer Edition Org or your own Sandbox Org

+

Follow this set of instructions if you want to deploy the app to a more permanent environment than a Scratch org.
This includes non source-tracked orgs such as a free Developer Edition Org or a Trailhead Playground, or your own Sandbox.

+

Start from a brand-new environment to avoid conflicts with previous work you may have done.

+
    +
  1. Authorize your org and provide it with an alias (myorg in the command below):

    +
    sf org login web --set-default --alias myorg
    +
    +
  2. +
  3. Clone this repository:

    +
    git clone https://github.com/SalesforceLabs/ActionPlansV4
    +cd ActionPlansV4
    +
    +
  4. +
  5. If you are setting up a Developer Edition: go to Setup, and under My Domain, register a My Domain. Then ensure that enhanced domains are activated. You may need to enable Salesforce Edge network first.

    +
  6. +
  7. To run all the next steps at once, run this command in the terminal:

    +
    . scripts/unmanaged.sh
    +
    +

    The org will open. That's it!

    +

    Or run these steps one by one

    +
      +
    1. Run this command to deploy the app.

      +
      sf deploy metadata --source-dir sfdx-source/LabsActionPlans
      +
      +
    2. +
    3. Assign the Action_Plans_Admin permission set to the admin user.

      +
      sf org assign permset --name Action_Plans_Admin
      +
      +
    4. +
    5. (Optional) Load sample metadata (see below)

      +
      sf deploy metadata --source-dir sfdx-source/unmanaged
      +
      +
    6. +
    7. If your org isn't already open, open it now:

      +
      sf org open --target-org myorg
      +
      +
    8. +
    +
  8. +
  9. In App Launcher, select the Action Plans app.

    +
  10. +
+

Optional Installation Instructions

+

This repository contains several files that are relevant if you want to add sample data, or integrate modern web development tooling to your Salesforce development processes or to your continuous integration/continuous deployment processes.

+

Data/Metadata Import (Optional - NOT available if using the AppExchange managed package)

+ +

Data/Metadata Import (Optional - ONLY if using the AppExchange managed package)

+ +

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.

+

Prettier Apex is an extension that handles Apex-specific formatting and allows the removal of the extra line via the Prettier config file. To use it with Visual Studio Code, follow these instructions from the Salesforce Extensions site.

+ + +

Pre-commit hook

+

This repository also comes with a package.json file that makes it easy to set up a pre-commit hook that enforces code formatting by running Prettier every time you git commit changes.

+

To set up the formatting pre-commit hook:

+
    +
  1. Install Node.js if you haven't already done so
  2. +
  3. Run npm install in your project's root folder to install the Husky and Prettier modules (Note: Mac users should verify that Xcode command line tools are installed before running this command.)
  4. +
+

Husky will now run Prettier automatically every time you commit changes, with some other updates if you installed the recommended extension ApexDox. You can also run the formatting from the command line using the following command (check out package.json for the full list):

+
npm run prettier
+
+ diff --git a/doc-assets/README.html b/doc-assets/README.html index 1dfc1c8e..5fd2fd26 100644 --- a/doc-assets/README.html +++ b/doc-assets/README.html @@ -1,16 +1,16 @@

Action Plans

-

License Latest Commit Latest Pull Request codecov Twitter

-

Changelog

+

License Latest Commit Latest Pull Request codecov Twitter

+

Changelog

Action Plans Installation and Setup

-

Please follow installation instructions, shown on the Installation page

-

AppExchange

+

Please follow installation instructions, shown on the Installation page

+ -

Scratch Org

-

Developer Edition / Sandbox

+

Scratch Org

+

Developer Edition / Sandbox

Apex Code Documentation

About Action Plans

Action Plans helps your organization encapsulate best practices into easily sharable, reusable task templates.

@@ -95,7 +95,7 @@

Use Permission Sets For Security

  • Action Plans Template Creator: Full permissions for Action Plan Templates and AP Template Tasks. No Action Plan access.
  • Action Plans Creator: Read, Create, Edit, Delete for Action Plans and AP Tasks. Read-only for Action Plan Templates and APT Task Templates.
  • Action Plans Import/Export: Access to export and import Action Plan Template records. View the appropriate button for export and tab for import.
  • -
  • Action Plans User: Read-only for Action Plans and AP Tasks.
  • +
  • Action Plans User: Read-only for Action Plans and AP Tasks. Edit permission for Tasks should be provided via the user's profile or other permission sets.
  • Uses for each Permission Set:

    Note: The Apex used in Flows or via triggers does not require special permissions to run.

    Using Action Plans with Custom Objects

    -

    To Start Using an Object with Action Plans

    +

    Start Using an Object with Action Plans

    1. Create the object and be sure to check "Track Activities" for the object attrributes
    2. Create a lookup field from Action Plan to the object. Name the field the same as the object name. The field label can be anything.
    -

    Adding a New Custom Object Action Plan button to the Action Plan object

    +

    Field set on Action Plan with all related objects available and only some selected

    +

    Test Code for Additional Objects

    +

    Don't forget to write a test class to cover the custom object trigger. If you're just going for coverage (not a best-practice!) just make a test method inserting and then deleting a record.
    Unfortunately, the code in this package does not lend itself to easy creation of an Action Plan for a custom object... yet.

    +

    Adding a Create Custom Object Action Plan button to the Action Plan object

    While Action Plans already overrides the New Action Plan action, the New button will show a new Action Plan screen, but will not allow adding an existing template. (Perhaps this will be in a future release... safe harbor.) Create a custom button with the following format on the Action Plan object and add it to the related list on the custom object page layout:

    1. Navigate to Setup > Object Manager > Action Plan > Buttons, Links, and Actions > New Button or Link
    2. Give it a label and name, such as "New MyObject Action Plan"
    3. Display Type is List Button. Uncheck the list checkbox.
    4. -
    5. Use the following format for the button (removing the LabsActionPlans namespace if you're not using the managed package):
      {!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType="CustomObject__c", refId=CustomObject__c.Id] )}
      +
    6. Use the following format for the button (removing the LabsActionPlans__ namespace if you're not using the managed package):
      {!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType="CustomObject__c", refId=CustomObject__c.Id] )}
       
    7. +
    8. Be sure to remove the standard New button on the Action Plans related list and use this button instead.
    -

    Create Action Plans for multiple Custom Object records

    +

    Create Action Plans for multiple Custom Object records

    Just as there is a button for Account list views to create multiple Action Plans, you can do the same for your custom object. Create a Visualforce page with the following code:

    <apex:page standardController="CustomObject__c" recordsetvar="o" 
      extensions="LabsActionPlans.ActionPlansCreateMultipleAPsExtension" 
    @@ -203,19 +207,19 @@ 

    Task Record Types

    Create Action Plans for Several Accounts

    1. Navigate to an Accounts list view. Select the Accounts for which you want to create Action Plans. Click on the "Create Account Action Plans" button.

      -

      +

      List view of Accounts with 50 selected. The "Create Account Action Plans" button is highlighted

    2. -
    3. Select the template you want to use by typing the name on the lookup and clicking on it.

      +
    4. Select the template you want to use by typing the name on the lookup and clicking on it.
      Action Plan creation screen with 50 sample records indicated on the page layout

    5. -
    6. Enter the information specific to this plan. Note that the Accounts you selected earlier are visible.

      +
    7. Enter the information specific to this plan. Note that the Accounts you selected earlier are visible.
      Filled-in Action Plan creation screen

    8. Save the Action Plan.
      Note: Action Plan creation is handled by a queueable (asynchronous) process. It can take a couple of minutes to be able to view all created records.

      -

      +

      Single Action Plan detail screen

    9. Verify the Action Plan and the tasks.

    10. -
    11. Complete the first task on the Action Plan.
      Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete.

      -

      +
    12. Complete the first task on the Action Plan.
      Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete. (A Contact related list is shown here, but this applies equally to Accounts.)

      +

      Contact related lists showing Action Plans for the Contact and one open and one closed task

    Task notifications for Flow-created Action Plans

    @@ -230,15 +234,15 @@

    Action Plan Tasks

  • If the box is checked, assuming that notifications are enabled for that user, the email will be sent.
  • Queues

    -

    Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the createdTasks (which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page.

    +

    Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the created Tasks (which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page.

    Automate Action Plan Creation

    Flow

    Action Plans includes an Invocable Apex class that can be included in a Flow. The Record ID of the triggering record is required, as is the Id OR the Name of the desired template.
    Days from trigger to start Action Plan is optional (and defaults to 0). The first task will be due the number of days (specified on the template) from the start date. This date may fall on a weekend, though task due dates can be moved to avoid weekends if set on the template.

    -

    +

    Flow action setup screen

    The Invocable Apex class returns the Salesforce IDs of all the created Action Plan Tasks, which can be used in the next Flow steps.

    (Optional) Sample Action Plan Template for Account onboarding

    Run the following:

    -
    sfdx force:apex:execute -f ./data/sample-data.apex
    +
    sf apex run --file ./data/sample-data.apex
     

    To use this Template with the included Flow, see the Create Action Plan From Template Apex Action in the New Customer Onboarding Activities Flow

    Set input variables for the Flow action

    @@ -246,7 +250,7 @@

    (Optional)

    Process Builder

    It is recommended NOT to check the Recursion box when creating a Process Builder to work with Action Plans.

    It is also recommended NOT to use Process Builder at all!

    - +

    Apex

    To call the invocable Apex from a Trigger or Apex class, adapt the following sample code:

    @@ -302,5 +306,5 @@

    Best Practices: How to Import

    Import is also simple. Navigate to the "Import Template" tab. Select the file you want to import using "Browse" and once you've found it click on "Import Template."

    (Optional) Sample Action Plan Template Import

    -

    This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download New Customer Onboarding or Trade Show Follow Up from GitHub, or you can find it in this SFDX project in the data folder.

    +

    This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download New Customer Onboarding or Trade Show Follow Up from GitHub, or you can find it in this SFDX project in the data folder.

    diff --git a/doc-assets/README.md b/doc-assets/README.md index 555c6f13..f0cd2a24 100644 --- a/doc-assets/README.md +++ b/doc-assets/README.md @@ -1 +1,24 @@ -This directory contains files for generating the ApexDox documentation + + +# ApexDox Documentation Instructions + +Updating ApexDox happens in three parts. + +1. Run ApexDoxSetup.sh + ``` + . doc-assets/ApexDoxSetup.sh + ``` + +1. Run ApexDox + ``` + SHIFT + COMMAND + P, select ApexDox: Run + ``` + +1. Run ApexDox cleanup + ``` + npm run prettier:docs + ``` + +# Changelog Instructions + + diff --git a/doc-assets/changelog.html b/doc-assets/changelog.html new file mode 100644 index 00000000..b52f8f2a --- /dev/null +++ b/doc-assets/changelog.html @@ -0,0 +1,185 @@ + +

    Changelog

    +

    All notable changes to this project will be documented in this file.

    +

    The format is based on Keep a Changelog
    and this project adheres to Semantic Versioning.

    +

    Unreleased

    +

    Merged

    +
      +
    • build(deps-dev): bump lint-staged from 13.1.2 to 13.2.0 #7
    • +
    • build(deps-dev): bump eslint from 8.35.0 to 8.36.0 #6
    • +
    • build(deps-dev): bump eslint from 8.34.0 to 8.35.0 #4
    • +
    • feat(tests): update tests (assertions, messages) #3
    • +
    • feat: update API to 57.0 #1
    • +
    • Bump github/codeql-action from 1 to 2 #59
    • +
    • Fix assigned to field #60
    • +
    • Archived flag, dependent task fixes, SOQL optimization #58
    • +
    • Cosmetic rearrangements, apexdoc #55
    • +
    • 4.3.0 Queues, Child Objects #53
    • +
    • Version 4.3.0 pt 2 #47
    • +
    • Version 4.3.0 #44
    • +
    • Codecov to v3 #41
    • +
    +

    Commits

    +
      +
    • build(npm): update package dependencies e40b10a
    • +
    • lightning lookup w/o API v1 e8dac8e
    • +
    • docs(ApexDox): rerun ApexDox bc720e2
    • +
    • docs(ApexDox): include Installation & Changelog 4910af9
    • +
    • feat(docs): ApexDox version upgrade 178e1ce
    • +
    • build: move tests folder into classes 99d78d5
    • +
    • Tests use Assert class 59d6ef2
    • +
    • build(sfdx): change sfdx to sf commands 994b3f2
    • +
    • revert(API): use 56.0 to avoid GVS bug 6eb588a
    • +
    • feat: finish Professional Edition template lookup 415fdcf
    • +
    • docs: update CanTheUser comments 22ea89c
    • +
    • API 56.0 4303659
    • +
    • fix: page redirect on template from object 70f43ba
    • +
    • feat(sfdx): update sfdx to sf f360666
    • +
    • fix: remove unnecessary jsencode 96070b1
    • +
    • fix: redirect on template choice for records 8bf011b
    • +
    • Deploy rules & scripts 5b80488
    • +
    • APTemplate lookup actions d34eaaf
    • +
    • fix(docs): update ApexDox e8481e8
    • +
    • ci(codeQL): delete codeQL d/t IP address fa066cf
    • +
    • dependabot auto-merge b5e5d4f
    • +
    • docs: cleanup code, document variables f27e8dc
    • +
    • feat: Update tests to use Assert class 2069b97
    • +
    • fix(build): Update plugin dependencies 4bf530c
    • +
    • Update scratch org definition files 851171c
    • +
    • chore: Scratch org shape updates fbe390e
    • +
    • docs(Apex): test comments 5056ebc
    • +
    • ci: update PR sfdx to sf, npm installation 77fa739
    • +
    • build(changelog): instructions & tag prefix 0ae955b
    • +
    • Beta 4.3.0-9 d4b477c
    • +
    • fix(sfdx): sf apex test correct config 6a030e4
    • +
    • feat: sfdx-scanner config 42c6889
    • +
    • docs(README): add image descriptions 2b9f999
    • +
    • Dependabot alerts dea7b92
    • +
    • Bug Report Template acfda0a
    • +
    • Bug template 516f70c
    • +
    • build(pmd): remove updatepmd 0ef9783
    • +
    • feat(scripts): update latest jQuery 992988e
    • +
    • fix(lookup): escape=false for record name 5fae8c0
    • +
    • Changelog 6516aa9
    • +
    +

    4.2.1 - 2022-05-25

    +

    Merged

    +
      +
    • Version 4.2.1 #37
    • +
    • Namespace to sample code #36
    • +
    • v4.2.0 #30
    • +
    +

    Fixed

    +
      +
    • Version 4.2.1 (#37) #35 #34
    • +
    • Namespace to sample code (#36) #35
    • +
    +

    Commits

    + +

    4.2.0 - 2022-04-01

    +

    Merged

    +
      +
    • Specify Action Plan Name in Invocable Apex #27
    • +
    • Prettier, JS fixing #26
    • +
    • Highlight.js to 11.5 #25
    • +
    • Add changelog #24
    • +
    • Bump minimist from 1.2.5 to 1.2.6 #23
    • +
    • Upgrading Instructions #22
    • +
    • Add Codecov #21
    • +
    +

    Commits

    +
      +
    • ApexDox remove unused modifiers 3b321db
    • +
    • Create codeql-analysis.yml 2822bc5
    • +
    • Highlight inline code security update 57662e7
    • +
    • Pull Request workflow update 2c84f4d
    • +
    • Update and rename CONTRIBUTION.md to CONTRIBUTING.md cb7f3c1
    • +
    • update Prettierignore 37aeafa
    • +
    • Add link to Apex documentation 96f9cde
    • +
    • Sample template update 4c957ca
    • +
    • Update CONTRIBUTING.md 9e3b175
    • +
    • Add AppExchange listing to README 760dfc9
    • +
    • Sample flow update 397b763
    • +
    +

    4.1.0 - 2022-03-17

    +

    Merged

    +
      +
    • Release Ready #19
    • +
    • Pre-Release (beta15) #18
    • +
    • Pre-Commit ApexDox cleanup #16
    • +
    • Scripts, Cleanup, New Build #15
    • +
    +

    Commits

    + +

    4.0.0-9 - 2022-02-23

    +

    Merged

    +
      +
    • AP Task AssignedTo field cleanup #14
    • +
    • Managed vs Unmanaged Project Config #13
    • +
    • Permissions Updates #12
    • +
    • Remove tests from ApexDox #10
    • +
    • Security, code coverage, Print page, Spring 22! #7
    • +
    • Code and documentation cleanup #6
    • +
    • PMD-suggested cleanup #5
    • +
    • Rename Template Task #4
    • +
    • Version 4.0.0.7 #3
    • +
    • Code comment cleanup #2
    • +
    • ApexDocs, Project Files, PMD rules #1
    • +
    +

    Commits

    +
      +
    • Documentation with ApexDox 236c66b
    • +
    • Iniital commit, updated for namespace f4d7498
    • +
    • migrate to new sfdx-falcon directory 0cde1dc
    • +
    • move to sfdx-source falcon directory structure 2edf46d
    • +
    • package files 16c26fc
    • +
    • Prettier first pass 9467195
    • +
    • ApexDox 1fc534b
    • +
    • ApexDox 48589f7
    • +
    • First commit - ReadMe & Installation 406674a
    • +
    • package files 45278ca
    • +
    • Install/update prettier 62fd10a
    • +
    • Exclude unmanaged and unpackaged metadata 32bcb00
    • +
    • Unmanaged metadata for managed installation ed24492
    • +
    • Remove non-dev org actions 29208d8
    • +
    • Install script for custom setting 11e6b5d
    • +
    • Update for EE orgs 83e459d
    • +
    • Fix lookup for portal users, custom setting DML dc6ea13
    • +
    • Support unmanaged metadata f8681e8
    • +
    • Add gitignore 433c579
    • +
    • Documentation and support files 9993d83
    • +
    • ApexDox c5c3144
    • +
    • Simplify Account layout 536459a
    • +
    • ApexDox 2662ae8
    • +
    • Create first package version 53b252f
    • +
    • Org metadata and ignore files 0725de0
    • +
    • Removed TradeStyle to allow installation in regular orgs fa17e9d
    • +
    • Handle ID lists b07c6a7
    • +
    • Works in managed package with unmanaged objects ef595b4
    • +
    • Simplify installation instructions bdb2de3
    • +
    • Readme update, ignore record types 1412184
    • +
    • Fix fieldset test visibility bug 644087e
    • +
    • Class and method accessibility 7515c2a
    • +
    • Remove debugs 07e4ee7
    • +
    • Release version 4.0.0-6 3f7a3fa
    • +
    • Script for working with custom object invocable 9fe7c54
    • +
    • Create custom setting on install c3f795c
    • +
    • New task layout c31ec9f
    • +
    • Unprotect custom metadata so users can edit f947d4b
    • +
    • Beta 3 19ace7e
    • +
    • ApexDox 0076c54
    • +
    + diff --git a/doc-assets/highlight.js b/doc-assets/highlight.js index 9491f128..c65744b2 100644 --- a/doc-assets/highlight.js +++ b/doc-assets/highlight.js @@ -1,5 +1,5 @@ /*! - Highlight.js v11.6.0 (git: bed790f3f3) + Highlight.js v11.7.0 (git: 82688fad18) (c) 2006-2022 undefined and other contributors License: BSD-3-Clause */ @@ -299,7 +299,7 @@ e["before:highlightBlock"](Object.assign({block:n.el},n)) }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)} }),n.debugMode=()=>{s=!1},n.safeMode=()=>{s=!0 -},n.versionString="11.6.0",n.regex={concat:m,lookahead:g,either:p,optional:b, +},n.versionString="11.7.0",n.regex={concat:m,lookahead:g,either:p,optional:b, anyNumberOfTimes:u};for(const n in T)"object"==typeof T[n]&&e.exports(T[n]) ;return Object.assign(n,T),n})({});const te=e=>({IMPORTANT:{scope:"meta", begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ @@ -326,8 +326,9 @@ end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ const t=e[0].length+e.index,a=e.input[t] ;if("<"===a||","===a)return void n.ignoreMatch();let i ;">"===a&&(((e,{after:n})=>{const t="",contains:[{ @@ -402,7 +403,7 @@ begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$\(\(/, +contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/, end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 }),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, @@ -602,7 +603,7 @@ contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+ue("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"], +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], literal:["false","true","null"], type:["char","boolean","long","float","int","byte","short","double"], built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ @@ -759,9 +760,9 @@ begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},i={ -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ -begin:/_(?!_)/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ @@ -957,19 +958,20 @@ match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ -"variable.constant":["__FILE__","__LINE__"], +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], "variable.language":["self","super"], -keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"], -built_in:["proc","lambda"],literal:["true","false","nil"]},s={ -className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">" -},l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{ -contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={ -className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string", -contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/, -end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{ -begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/, -end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ +begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] +}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, +end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ @@ -984,9 +986,11 @@ begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ -match:[/class\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"}, -keywords:r},{relevance:0,match:[i,/\.new[ (]/],scope:{1:"title.class"}},{ -relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ begin:e.IDENT_RE+"::"},{className:"symbol", begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", diff --git a/doc-assets/onReadMeChange.sh b/doc-assets/onReadMeChange.sh deleted file mode 100644 index 9c3cb52f..00000000 --- a/doc-assets/onReadMeChange.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env sh - -printf '' > "doc-assets/README.html" -echo >> "doc-assets/README.html" -npx marked -i README.md --breaks >> "doc-assets/README.html" - -sed -i '' 's|href="./|target="_blank" href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/|g' doc-assets/README.html - -sed -i '' 's|src="sfdx-source/LabsActionPlans/main/default/staticresources/ActionPlan_Resources/about_images|class="readmeimage" src="assets|g' doc-assets/README.html \ No newline at end of file diff --git a/scripts/updateHighlight.sh b/doc-assets/updateHighlight.sh similarity index 100% rename from scripts/updateHighlight.sh rename to doc-assets/updateHighlight.sh diff --git a/docs/ActionPlanCreateInvocable.html b/docs/ActionPlanCreateInvocable.html index c2a5f839..616545e2 100644 --- a/docs/ActionPlanCreateInvocable.html +++ b/docs/ActionPlanCreateInvocable.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L21"> ActionPlanCreateInvocable @@ -342,7 +342,14 @@

    Signature
    global without sharing class ActionPlanCreateInvocable
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlanCreateInvocable Methods

    @@ -361,7 +368,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L42"> makeActionPlanFromTemplate(requests)

    @@ -409,7 +416,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L333"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L328"> ActionPlanCreateInvocable.CreateActionPlanRequest

    @@ -418,7 +425,14 @@

    Signature
    global class CreateActionPlanRequest
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlanCreateInvocable.CreateActionPlanRequest Properties

    @@ -436,7 +450,7 @@

    ActionPlanCreateInvocable.CreateActionPl rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L356"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L351"> actionPlanName @@ -453,7 +467,7 @@

    ActionPlanCreateInvocable.CreateActionPl rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L344"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L339"> daysToActionPlanStart @@ -470,7 +484,7 @@

    ActionPlanCreateInvocable.CreateActionPl rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L338"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L333"> relatedRecordID @@ -487,7 +501,7 @@

    ActionPlanCreateInvocable.CreateActionPl rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L350"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreateInvocable.cls#L345"> templateNameOrID diff --git a/docs/ActionPlanCreateInvocableTest.html b/docs/ActionPlanCreateInvocableTest.html index 371c315d..04513a70 100644 --- a/docs/ActionPlanCreateInvocableTest.html +++ b/docs/ActionPlanCreateInvocableTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest

  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L25"> ActionPlanCreateInvocableTest @@ -347,7 +347,15 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

    ActionPlanCreateInvocableTest Properties

    @@ -363,7 +371,7 @@

    ActionPlanCreateInvocableTest Properties rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L27"> BULK_COUNT @@ -378,7 +386,7 @@

    ActionPlanCreateInvocableTest Properties rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L26"> TASK_COUNT @@ -442,7 +450,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L327"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L329"> bogusTemplateName()

    @@ -457,7 +465,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L225"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L227"> bulkAccounts()

    @@ -472,7 +480,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L259"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L261"> checkWeekendDueDate()

    @@ -487,7 +495,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L28"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L30"> relatedAccount()

    @@ -502,7 +510,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L159"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L161"> relatedCampaign()

    @@ -517,7 +525,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L181"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L183"> relatedCase()

    @@ -532,7 +540,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L70"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L72"> relatedContact()

    @@ -547,7 +555,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L203"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L205"> relatedContract()

    @@ -562,7 +570,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L112"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L114"> relatedLead()

    @@ -577,7 +585,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L137"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L139"> relatedOpportunity()

    @@ -592,7 +600,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L377"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L379"> setupRequest(templateId, relatedID, daysToActionPlanStart)

    @@ -628,7 +636,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreateInvocableTest.cls#L395"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreateInvocableTest.cls#L397"> setupRequest(templateId, relatedID, daysToActionPlanStart, actionPlanName)

    diff --git a/docs/ActionPlanCreationController.html b/docs/ActionPlanCreationController.html index 284c2377..2a6f3fc5 100644 --- a/docs/ActionPlanCreationController.html +++ b/docs/ActionPlanCreationController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest

  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L25"> ActionPlanCreationController @@ -347,8 +347,15 @@

    -
    Rodrigo Birriel - David Schach
    2022 +
    Authors
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlanCreationController Properties

    @@ -366,7 +373,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L34"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L34"> actionPlan @@ -386,7 +393,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L107"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L108"> addedTask @@ -406,7 +413,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L88"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L89"> apTasks @@ -426,7 +433,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L73"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L74"> canDisplayReminder @@ -444,7 +451,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L97"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L98"> cloneParam @@ -462,7 +469,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L69"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L70"> errorMsg @@ -480,7 +487,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L51"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L52"> hasRelated @@ -498,7 +505,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L55"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L56"> hasRelatedObject @@ -516,7 +523,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L102"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L103"> inVisualforceContext @@ -536,7 +543,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L78"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L79"> mapTasksListBkp @@ -554,7 +561,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L92"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L93"> pendingDeletes @@ -572,7 +579,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L423"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L439"> refId @@ -590,7 +597,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L436"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L452"> refType @@ -608,7 +615,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L348"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L364"> relatedFieldName @@ -626,7 +633,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L64"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L65"> relatedObjDisplayField @@ -644,7 +651,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L60"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L61"> relatedObjectName @@ -664,7 +671,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1250"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1293"> relatedObjectOptions @@ -682,7 +689,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L46"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L47"> relatedObjLabelPlural @@ -700,7 +707,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1092"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1135"> relatedObjNameList @@ -723,7 +730,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L42"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L43"> relatedRecordIDs @@ -741,7 +748,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1129"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1172"> relatedRecordsOne @@ -759,7 +766,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1137"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1180"> relatedRecordsThree @@ -777,7 +784,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1133"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1176"> relatedRecordsTwo @@ -795,7 +802,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L376"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L392"> relationshipFields @@ -813,7 +820,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L82"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L83"> subtitle @@ -831,7 +838,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L332"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L349"> taskHasRecordType @@ -849,7 +856,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L29"> taskIndex @@ -867,7 +874,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L260"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L273"> taskOwnerMap @@ -885,7 +892,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1380"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1423"> taskPriorities @@ -903,7 +910,7 @@

    ActionPlanCreationController Properties< rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1363"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1406"> taskTypes @@ -914,23 +921,26 @@

    ActionPlanCreationController Properties< Picklist of Task.Type values - + + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L39"> templateId -
    private Id templateId
    +
    public Id templateId
    - TemplateId is pulled from the page parameters and tells us if we're making an Action Plan based on a template + + TemplateId is pulled from the page parameters and tells us if we're making an Action Plan based on a template
    It can also be set by choosing a + template when applying a template to one or more records +

    @@ -951,7 +961,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L115"> ActionPlanCreationController(stdController)

    @@ -1002,6 +1012,11 @@

    ActionPlanCreationController Methods

    Checks if Action Plan Tasks has cyclic dependency.
  • +
  • + checkHasRelated () + +
    Check all relationship fields and return true if at least one is filled
    +
  • checkPendingDeletes () @@ -1154,6 +1169,13 @@

    ActionPlanCreationController Methods

    Query all Task records for the Action Plan's Tasks so we can display the owher name read-only if it is a queue
  • +
  • + queryRecord (recordId) + +
    + Main code for lightning lookup record selection. Included in this class because we use this as the controller for our main page +
    +
  • referedObjectInit () @@ -1218,6 +1240,13 @@

    ActionPlanCreationController Methods

    Saves Action Plan Instance and task. Also creates all due dates for tasks, then redirects to the AP list
  • +
  • + searchTemplates (searchText) + +
    + Main code for lightning lookup search. Included in this class because we use this as the controller for our main page +
    +
  • @@ -1226,7 +1255,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L731"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L782"> addTask()

    @@ -1250,7 +1279,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1266"> calculateMaxTaskIndex()

    @@ -1268,7 +1297,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1280"> calculateMaxTemplateTaskIndex()

    @@ -1286,7 +1315,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L683"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L734"> cancel()

    @@ -1304,7 +1333,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1143"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1186"> checkCycleDependent()

    @@ -1315,6 +1344,24 @@

    Returns
    Boolean True if there is a cyclic dependency

    +
    +

    + + checkHasRelated() + +

    +
    Check all relationship fields and return true if at least one is filled
    +
    Signature
    + +
    private Boolean checkHasRelated()
    +
    Returns
    +
    Boolean Is at least one lookup to a parent record populated?
    +

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L488"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L504"> checkPendingDeletes()

    @@ -1338,7 +1385,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L396"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L412"> chooseDisplayField(objectName)

    @@ -1364,7 +1411,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1175"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1218"> dependantCycle(controllingTask, index)

    @@ -1389,7 +1436,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1345"> findActivityEnabledObjects()

    @@ -1407,7 +1454,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L399"> getAllRelationshipFields()

    @@ -1435,7 +1482,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L840"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L881"> getAPTasks()

    @@ -1453,7 +1500,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1373"> getDefaultTaskRecordTypeId()

    @@ -1481,7 +1528,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1013"> getDisplayTemplateLookup()

    @@ -1499,7 +1546,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1214"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1257"> getErrorMsg()

    @@ -1517,7 +1564,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1399"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1442"> getHoursOption()

    @@ -1539,7 +1586,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1122"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1165"> getNameListSize()

    @@ -1561,7 +1608,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1409"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1452"> getNamespacePrefix()

    @@ -1587,7 +1634,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1339"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1382"> getRecordTypeName()

    @@ -1609,7 +1656,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1299"> getRelatedObjectOptions()

    @@ -1633,7 +1680,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L980"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1021"> getSubjectItems()

    @@ -1651,7 +1698,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1387"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1430"> getTaskPriorities()

    @@ -1679,7 +1726,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1399"> getTaskRTPicklistValues()

    @@ -1709,7 +1756,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L812"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L863"> getTasks()

    @@ -1727,7 +1774,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1370"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1413"> getTaskTypes()

    @@ -1753,7 +1800,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L321"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L338"> getTemplateName()

    @@ -1781,7 +1828,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L471"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L487"> hasRelatedObject()

    @@ -1805,7 +1852,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L164"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L165"> initCloneActionPlan()

    @@ -1821,7 +1868,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L154"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L155"> initEditActionPlan()

    @@ -1837,7 +1884,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L243"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L256"> initNewActionPlan()

    @@ -1853,7 +1900,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L201"> initNewActionPlanFromTemplate(visualforceContext)

    @@ -1879,7 +1926,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L211"> initNewActionPlanFromTemplate(visualforceContext, apt)

    @@ -1906,7 +1953,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L415"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L431"> onLoad()

    @@ -1928,7 +1975,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1025"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1066"> parseRelatedIDs(relatedIDs)

    @@ -1954,7 +2001,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L268"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L281"> queryAPTaskOwners(ap)

    @@ -1973,6 +2020,38 @@

    Author
    David Schach

    +
    +

    + + queryRecord(recordId) + +

    +
    + Main code for lightning lookup record selection. Included in this class because we use this as the controller for our main page +
    +
    Signature
    +
    @RemoteAction
    +
    public static List<SObject> queryRecord(String recordId)
    +
    Parameters
    +
    recordId
    +
    Type: String
    +
    Single record ID for chosen Action Plan Template
    +
    Returns
    +
    List<SObject> Returned records
    +
    See
    +
    + ActionPlanSectionHeaderController +
    +
    Since
    +
    +
  • 2023-02
  • +
    +

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1001"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1042"> referedObjectInit()

    @@ -2002,7 +2081,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1361"> refreshRelatedObjectsLookUp()

    @@ -2026,7 +2105,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L454"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L470"> relatedObjectId()

    @@ -2044,7 +2123,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L765"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L816"> removeTask()

    @@ -2062,7 +2141,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1089"> retrieveNameRelatedRecord(relatedRecordIDs, relatedObjectName)

    @@ -2087,7 +2166,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L973"> retrieveTaskFromExistingActionPlan(actionPlanId)

    @@ -2109,7 +2188,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L509"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L543"> save()

    @@ -2136,7 +2215,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L573"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L620"> saveAndNew()

    @@ -2154,7 +2233,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L630"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L681"> saveHandler()

    @@ -2183,7 +2262,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L590"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L641"> saveMultipleAP()

    @@ -2209,7 +2288,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L652"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L703"> savePageRef()

    @@ -2233,7 +2312,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L529"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L580"> saveSingleAP()

    @@ -2244,6 +2323,36 @@

    Returns
    Id Action Plan Id

    +
    +

    + + searchTemplates(searchText) + +

    +
    Main code for lightning lookup search. Included in this class because we use this as the controller for our main page
    +
    Signature
    +
    @RemoteAction
    +
    public static List<SObject> searchTemplates(String searchText)
    +
    Parameters
    +
    searchText
    +
    Type: String
    +
    Search string (escaped!) to get matching AP Templates
    +
    Returns
    +
    List<SObject> Returned records
    +
    See
    +
    + ActionPlanSectionHeaderController +
    +
    Since
    +
    +
  • 2023-02
  • +
    +
    @@ -2255,17 +2364,34 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1420"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1502"> ActionPlanCreationController.ApTaskWrapper

    -
    Wrapper Class for AP Task SObject
    +
    + Wrapper Class for AP Task SObject
    Note: I don't like the way we decide to show the User field - especially if we want to assign to a Queue. This part + should be refactored next, probably with a User/Queue picklist depending on org settings +
    Signature
    public class ApTaskWrapper
    -
    Rodrigo Birriel - David Schach
    08/01/2010 4/2022 +
    Author
    + +
    Since
    +
    +
  • 08/01/2010
  • +
    +
    Author
    + +
    Since
    +
    +
  • 2022-04
  • +

    ActionPlanCreationController.ApTaskWrapper Properties

    @@ -2283,7 +2409,7 @@

    ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1424"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1506"> ap @@ -2300,7 +2426,7 @@

    ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1429"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1511"> apt @@ -2317,7 +2443,7 @@

    ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1445"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1527"> assignToOwner @@ -2327,6 +2453,23 @@

    ActionPlanCreationController.ApTaskWrapp Does blank User field default to parent owner?
    Filled from custom setting + + + + canEditUserField + + + +
    private Boolean canEditUserField
    + + + Because it uses a describe call, check user permission once, in constructor + ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1439"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1521"> isLast @@ -2344,6 +2487,40 @@

    ActionPlanCreationController.ApTaskWrapp Last Task + + + + pageHasRelatedIds + + + +
    private Boolean pageHasRelatedIds
    + + + Store if page has relatedIDs once; set in constructor + + + + + pageTemplateId + + + +
    private String pageTemplateId
    + + + Store page template ID once, in constructor + ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1434"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1516"> position @@ -2368,7 +2545,7 @@

    ActionPlanCreationController.ApTaskWrapp rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1484"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1582"> userRequired @@ -2400,7 +2577,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1548"> ApTaskWrapper(ap, apTask, position, apTaskRTId)

    @@ -2446,7 +2623,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L1598"> getUserRender()

    @@ -2475,7 +2652,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L292"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L309"> ActionPlanCreationController.OwnerWrapper

    @@ -2501,7 +2678,7 @@

    ActionPlanCreationController.OwnerWrappe rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L312"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L329"> tOwnerId @@ -2518,7 +2695,7 @@

    ActionPlanCreationController.OwnerWrappe rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L307"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L324"> tOwnerName @@ -2547,7 +2724,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanCreationController.cls#L316"> OwnerWrapper(taskOwnerId, taskOwnerName)

    diff --git a/docs/ActionPlanCreationControllerTest.html b/docs/ActionPlanCreationControllerTest.html index ccb525a4..f346f257 100644 --- a/docs/ActionPlanCreationControllerTest.html +++ b/docs/ActionPlanCreationControllerTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L24"> ActionPlanCreationControllerTest @@ -347,7 +347,15 @@

    -
    David Schach +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

  • ActionPlanCreationControllerTest Methods

    @@ -356,6 +364,9 @@

    ActionPlanCreationControllerTest Methods actionPlanSave () +
  • + actionPlanSaveAndMakeDependent () +
  • actionPlanSaveAndNew ()
  • @@ -403,6 +414,8 @@

    ActionPlanCreationControllerTest Methods
  • makeData () + +
    Set up test data
  • newAPWithoutTasks () @@ -413,6 +426,9 @@

    ActionPlanCreationControllerTest Methods removeActionPlanTask ()

  • +
  • + saveAndDelete () +
  • saveAndView ()
  • @@ -430,7 +446,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L149"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L174"> actionPlanSave()

    @@ -438,6 +454,21 @@

    @IsTest
    private static void actionPlanSave()

    +
    +

    + + actionPlanSaveAndMakeDependent() + +

    +
    Signature
    +
    @IsTest
    +
    private static void actionPlanSaveAndMakeDependent()
    +

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L217"> actionPlanSaveAndNew()

    @@ -460,7 +491,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L344"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L385"> addNewTask()

    @@ -475,7 +506,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L424"> changeAPTaskOwner()

    @@ -490,7 +521,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L479"> checkActionPlanTaskList()

    @@ -505,7 +536,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L329"> checkCompletedTasks()

    @@ -520,7 +551,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L742"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L782"> checkMaxTasks()

    @@ -535,7 +566,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L799"> checkMaxTasksError()

    @@ -550,7 +581,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L630"> checkReferredObject()

    @@ -565,7 +596,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L497"> checkSubjectItems()

    @@ -580,7 +611,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L95"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L119"> constructorTests()

    @@ -595,7 +626,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L584"> cyclicDependencyTasksFail()

    @@ -610,7 +641,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L543"> cyclicDependencyTaskSuccess()

    @@ -625,7 +656,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L758"> forceNoRecordTypes()

    @@ -640,7 +671,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L701"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L741"> forceRecordTypes()

    @@ -655,7 +686,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L318"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L359"> longNameTasks()

    @@ -670,10 +701,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L29"> makeData()

    +
    Set up test data
    Signature
    @TestSetup
    private static void makeData()
    @@ -685,7 +717,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L106"> newAPWithoutTasks()

    @@ -700,7 +732,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L276"> relateToMultipleContacts()

    @@ -715,7 +747,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L456"> removeActionPlanTask()

    @@ -723,6 +755,21 @@

    @IsTest

    private static void removeActionPlanTask()
    +
    +

    + + saveAndDelete() + +

    +
    Signature
    +
    @IsTest
    +
    private static void saveAndDelete()
    +

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationControllerTest.cls#L57"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L62"> saveAndView()

    @@ -745,7 +792,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L705"> setTaskRecordType()

    @@ -760,7 +807,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationControllerTest.cls#L41"> singleRecordConstructor()

    diff --git a/docs/ActionPlanCreationTaskWrapperTest.html b/docs/ActionPlanCreationTaskWrapperTest.html index 30656b94..aa3d1ceb 100644 --- a/docs/ActionPlanCreationTaskWrapperTest.html +++ b/docs/ActionPlanCreationTaskWrapperTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationTaskWrapperTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L24"> ActionPlanCreationTaskWrapperTest @@ -349,7 +349,14 @@

    >ActionPlanCreationController.ApTaskWrapper, ActionPlanCreationController

  • -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlanCreationTaskWrapperTest Methods

    @@ -360,9 +367,13 @@

    ActionPlanCreationTaskWrapperTest Methods
  • doEditActionPlan () + +
    We make a new Actoin Plan via Visualforce
  • doTemplateCreateEdit () + +
    Reused method to create an Action Plan Template - run in multiple user contexts
  • editActionPlanAssignByDefault () @@ -389,7 +400,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L41"> checkActionPlanTaskList()

    @@ -404,13 +415,21 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L148"> doEditActionPlan()

    +
    We make a new Actoin Plan via Visualforce
    Signature
    private static ActionPlanCreationController doEditActionPlan()
    +
    Returns
    +
    ActionPlanCreationController The created controller
    +
    See
    +
    + editActionPlanAssignByDefault, + editActionPlanNOTAssignByDefault +
  • @@ -419,13 +438,16 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L66"> doTemplateCreateEdit()

    +
    Reused method to create an Action Plan Template - run in multiple user contexts
    Signature
    private static ActionPlanCreationController doTemplateCreateEdit()
    +
    Returns
    +
    ActionPlanCreationController The instance of the controller for the VF page

    @@ -434,7 +456,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L168"> editActionPlanAssignByDefault()

    @@ -449,7 +471,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L182"> editActionPlanNOTAssignByDefault()

    @@ -464,7 +486,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanCreationTaskWrapperTest.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L29"> makeData()

    @@ -480,7 +502,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L111"> makeFromTemplateAssignByDefault()

    @@ -495,7 +517,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanCreationTaskWrapperTest.cls#L123"> makeFromTemplateNOTAssignByDefault()

    diff --git a/docs/ActionPlanDetailController.html b/docs/ActionPlanDetailController.html index 799d8201..f13727ea 100644 --- a/docs/ActionPlanDetailController.html +++ b/docs/ActionPlanDetailController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L22"> ActionPlanDetailController @@ -342,8 +342,15 @@

    Signature
    public with sharing class ActionPlanDetailController
    -
    Rodrigo Birriel - David Schach
    2022 +
    Authors
    + +
    Since
    +
    +
  • 2022
  • +

  • ActionPlanDetailController Properties

    @@ -361,7 +368,7 @@

    ActionPlanDetailController Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L26"> actionPlan @@ -378,7 +385,7 @@

    ActionPlanDetailController Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L125"> apTaskWrapperList @@ -395,7 +402,7 @@

    ActionPlanDetailController Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L39"> canDisplayReminder @@ -412,7 +419,7 @@

    ActionPlanDetailController Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L32"> hasRecordType @@ -441,7 +448,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L45"> ActionPlanDetailController(stdController)

    @@ -518,7 +525,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L69"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L69"> deletePlan()

    @@ -542,7 +549,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L130"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L130"> getActionPlanTasks()

    @@ -562,7 +569,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L306"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L311"> getCanShare()

    @@ -584,7 +591,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L315"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L320"> getCanTransfer()

    @@ -606,7 +613,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L113"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L113"> gethasControllingTasks()

    @@ -630,7 +637,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L290"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L295"> getRecordTypeName()

    @@ -648,7 +655,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L238"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L243"> getRelatedObjectLabel()

    @@ -666,7 +673,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L256"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L261"> getrelatedRecordName()

    @@ -684,7 +691,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L224"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L229"> getVersion()

    @@ -702,7 +709,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L59"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L59"> onLoad()

    @@ -728,7 +735,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L183"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L183"> ActionPlanDetailController.TaskWrapper

    @@ -756,7 +763,7 @@

    ActionPlanDetailController.TaskWrapper P rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L187"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L187"> apt @@ -773,7 +780,7 @@

    ActionPlanDetailController.TaskWrapper P rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L191"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L195"> taskId @@ -790,7 +797,7 @@

    ActionPlanDetailController.TaskWrapper P rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L195"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L199"> taskOwnerId @@ -807,7 +814,7 @@

    ActionPlanDetailController.TaskWrapper P rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L199"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L203"> taskOwnerName @@ -817,6 +824,23 @@

    ActionPlanDetailController.TaskWrapper P The (standard) Task OwnerId + + + + tsk + + + +
    public Task tsk
    + + + The Action Plan Task related Task +

    @@ -836,7 +860,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanDetailController.cls#L210"> TaskWrapper(aptParam, taskParam)

    diff --git a/docs/ActionPlanDetailControllerTest.html b/docs/ActionPlanDetailControllerTest.html index 7bcff02d..3651f6ed 100644 --- a/docs/ActionPlanDetailControllerTest.html +++ b/docs/ActionPlanDetailControllerTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L22"> ActionPlanDetailControllerTest @@ -347,7 +347,10 @@

    -
    David Schach +
    Author
    +

  • ActionPlanDetailControllerTest Methods

    @@ -388,7 +391,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L106"> checkActionPlanTemplateVersion()

    @@ -403,7 +406,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L140"> checkDeleteActionPlan()

    @@ -418,7 +421,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L88"> checkDependentTasks()

    @@ -433,7 +436,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L161"> checkGetRelatedRecordName()

    @@ -448,7 +451,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L70"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L70"> checkNoTasks()

    @@ -463,7 +466,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L52"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L52"> checkTasks()

    @@ -478,7 +481,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L24"> constructorTests()

    @@ -493,7 +496,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L232"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L233"> forceNoRecordType()

    @@ -508,7 +511,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanDetailControllerTest.cls#L211"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanDetailControllerTest.cls#L212"> forceRecordType()

    diff --git a/docs/ActionPlanTemplateCreationCntrlTest.html b/docs/ActionPlanTemplateCreationCntrlTest.html index 466ae6c7..dfc997e7 100644 --- a/docs/ActionPlanTemplateCreationCntrlTest.html +++ b/docs/ActionPlanTemplateCreationCntrlTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L22"> ActionPlanTemplateCreationCntrlTest @@ -346,7 +346,8 @@

    -
    David Schach 2since 2022 +
    Author
    +
    David Schach 2since 2022

  • ActionPlanTemplateCreationCntrlTest Properties

    @@ -362,7 +363,7 @@

    ActionPlanTemplateCreationCntrlTest Prop rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L23"> TEMPLATE_TASKS_COUNT @@ -438,7 +439,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L234"> addNewActionPlanTemplateTask()

    @@ -453,7 +454,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L214"> addTemplateTask()

    @@ -468,7 +469,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L125"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L125"> cancel()

    @@ -483,7 +484,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L197"> checkMaxTasksError()

    @@ -498,7 +499,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L371"> checkTemplateSubjectItem()

    @@ -513,7 +514,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L350"> checkTemplateTaskSize()

    @@ -528,7 +529,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L26"> contructor()

    @@ -543,7 +544,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L389"> cyclicDependencyFail()

    @@ -558,7 +559,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L467"> cyclicDependencySuccess()

    @@ -573,7 +574,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L179"> forceNoRecordType()

    @@ -588,7 +589,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L437"> itselfCyclicDependencyFail()

    @@ -603,7 +604,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L323"> longNameTemplateTasks()

    @@ -618,7 +619,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L260"> removeTemplateTask()

    @@ -633,7 +634,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L279"> removingActionPlanTemplateTask()

    @@ -648,7 +649,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L305"> retrievingTemplateTasks()

    @@ -663,7 +664,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L57"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L57"> save()

    @@ -678,7 +679,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateCreationCntrlTest.cls#L86"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L86"> saveTemplate()

    @@ -693,7 +694,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateCreationCntrlTest.cls#L146"> setTaskRecordType()

    diff --git a/docs/ActionPlanTemplateCreationController.html b/docs/ActionPlanTemplateCreationController.html index 68d4407b..d6e6b901 100644 --- a/docs/ActionPlanTemplateCreationController.html +++ b/docs/ActionPlanTemplateCreationController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L23"> ActionPlanTemplateCreationController @@ -343,8 +343,15 @@

    Signature

  • public with sharing class ActionPlanTemplateCreationController
    -
    Rodrigo Birriel - David Schach
    v3 +
    Since
    +
    +
  • v3
  • +
    +
    Authors
    +

    ActionPlanTemplateCreationController Properties

    @@ -362,7 +369,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L29"> actionPlanTemplate @@ -382,7 +389,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L311"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L314"> aptTasks @@ -393,7 +400,7 @@

    ActionPlanTemplateCreationController Pro
    @TestVisible
    - + The list of Template Tasks (no wrapper) - private for internal use only @@ -402,7 +409,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L37"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L37"> canDisplayReminder @@ -420,7 +427,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L504"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L507"> errorMsg @@ -438,7 +445,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L44"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L44"> pendingTemplateTaskDeletes @@ -458,7 +465,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L33"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L33"> subTitle @@ -476,7 +483,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L41"> taskHasRecordType @@ -494,7 +501,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L24"> taskIndex @@ -512,7 +519,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L567"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L570"> taskPriorities @@ -530,7 +537,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L550"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L553"> taskTypes @@ -548,7 +555,7 @@

    ActionPlanTemplateCreationController Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L48"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L48"> templateId @@ -584,7 +591,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L57"> ActionPlanTemplateCreationController(stdController)

    @@ -731,7 +738,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L231"> addTemplateTask()

    @@ -747,7 +754,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L521"> calculateTaskIndexValue()

    @@ -765,7 +772,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L212"> cancelTemplate()

    @@ -783,7 +790,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L423"> checkCycleDependent()

    @@ -801,7 +808,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L467"> dependantCycle(inspectedTask, index)

    @@ -826,7 +833,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L117"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L117"> doSave()

    @@ -847,7 +854,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L537"> getDefaultTaskRecordTypeId()

    @@ -871,7 +878,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L510"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L513"> getErrorMsg()

    @@ -893,7 +900,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L589"> getHoursOption()

    @@ -915,7 +922,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L577"> getTaskPriorities()

    @@ -943,7 +950,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L546"> getTaskRTPicklistValues()

    @@ -967,7 +974,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L557"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L560"> getTaskTypes()

    @@ -993,7 +1000,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L402"> getTemplateSubjectItems()

    @@ -1011,7 +1018,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L362"> getTemplateTasks()

    @@ -1029,7 +1036,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L394"> getTemplateTaskSize()

    @@ -1047,7 +1054,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L295"> getTemplateWrappers()

    @@ -1069,7 +1076,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L103"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L103"> onLoad()

    @@ -1091,7 +1098,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L331"> queryAPTTasks(templateId)

    @@ -1117,7 +1124,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L249"> removeTemplateTask()

    @@ -1133,7 +1140,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L196"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L196"> saveAndNew()

    @@ -1151,7 +1158,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L180"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L180"> saveTemplate()

    @@ -1172,7 +1179,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L435"> templateCycleDependent()

    @@ -1194,7 +1201,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L600"> ActionPlanTemplateCreationController.ApTTaskWrapper

    @@ -1203,8 +1210,11 @@

    Signature

    public class ApTTaskWrapper
    -
    Matias Menafra @date 08/08/2010 - David Schach @date 05/2021 +
    Authors
    +
    + Matias Menafra @date 08/08/2010, + David Schach @date 05/2021 +

    ActionPlanTemplateCreationController.ApTTaskWrapper Properties

    @@ -1222,7 +1232,7 @@

    ActionPlanTemplateCreationController.ApT rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L612"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L615"> isLast @@ -1239,7 +1249,7 @@

    ActionPlanTemplateCreationController.ApT rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L607"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L610"> position @@ -1256,7 +1266,7 @@

    ActionPlanTemplateCreationController.ApT rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L602"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L605"> task @@ -1285,7 +1295,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateCreationController.cls#L624"> ApTTaskWrapper(apTask, pos, apTTaskRTId)

    diff --git a/docs/ActionPlanTemplateDetailCntrlTest.html b/docs/ActionPlanTemplateDetailCntrlTest.html index d790009b..af3f0b50 100644 --- a/docs/ActionPlanTemplateDetailCntrlTest.html +++ b/docs/ActionPlanTemplateDetailCntrlTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateDetailCntrlTest.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L23"> ActionPlanTemplateDetailCntrlTest @@ -347,7 +347,14 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

  • ActionPlanTemplateDetailCntrlTest Methods

    @@ -385,7 +392,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateDetailCntrlTest.cls#L103"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L103"> checkNoTasks()

    @@ -400,7 +407,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateDetailCntrlTest.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L25"> constructor()

    @@ -415,7 +422,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L121"> deleteActionPlanTemplate()

    @@ -430,7 +437,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateDetailCntrlTest.cls#L186"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L187"> exportTest()

    @@ -445,7 +452,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L82"> forceNoRecordType()

    @@ -460,7 +467,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateDetailCntrlTest.cls#L60"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L60"> forceRecordType()

    @@ -475,7 +482,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L165"> retrievingActionPlanTemplate()

    @@ -490,7 +497,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateDetailCntrlTest.cls#L142"> retrievingTemplateTasks()

    diff --git a/docs/ActionPlanTemplateDetailController.html b/docs/ActionPlanTemplateDetailController.html index debd77b5..7a7b3fc3 100644 --- a/docs/ActionPlanTemplateDetailController.html +++ b/docs/ActionPlanTemplateDetailController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L21"> ActionPlanTemplateDetailController @@ -342,7 +342,14 @@

    Signature
    public with sharing class ActionPlanTemplateDetailController
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

  • ActionPlanTemplateDetailController Properties

    @@ -360,7 +367,7 @@

    ActionPlanTemplateDetailController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L27"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L27"> actionPlanExportXMLId @@ -369,7 +376,7 @@

    ActionPlanTemplateDetailController Prope - The Id of the Action Plan for Exporting. Shown on the Export page that shares thsi controller + The Id of the Action Plan for Exporting. Shown on the Export page that shares this controller @@ -378,7 +385,7 @@

    ActionPlanTemplateDetailController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L23"> actionPlanTemplate @@ -398,7 +405,7 @@

    ActionPlanTemplateDetailController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L35"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L35"> canDisplayReminder @@ -416,7 +423,7 @@

    ActionPlanTemplateDetailController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L31"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L31"> taskHasRecordType @@ -451,7 +458,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L44"> ActionPlanTemplateDetailController(stdController)

    @@ -527,7 +534,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L80"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L80"> deleteTemplate()

    @@ -545,7 +552,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L130"> exportTemplateToXMLDoc()

    @@ -565,7 +572,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L175"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L175"> getCanShare()

    @@ -591,7 +598,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L185"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L185"> getCanTransfer()

    @@ -617,7 +624,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L64"> getRecordTypeName()

    @@ -635,7 +642,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L140"> getSuccessMessage()

    @@ -657,7 +664,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L99"> getTemplateTasks()

    @@ -675,7 +682,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L55"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateDetailController.cls#L55"> onLoad()

    diff --git a/docs/ActionPlanTemplateExport.html b/docs/ActionPlanTemplateExport.html index 26b75ea6..376b1bf4 100644 --- a/docs/ActionPlanTemplateExport.html +++ b/docs/ActionPlanTemplateExport.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L21"> ActionPlanTemplateExport @@ -349,7 +349,10 @@

    >ActionPlanTemplateDetailController.exportTemplateToXMLDoc

  • -
    2011 +
    Since
    +
    +
  • 2011
  • +

    ActionPlanTemplateExport Properties

    @@ -367,7 +370,7 @@

    ActionPlanTemplateExport Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L30"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L30"> fileOrDocumentId @@ -386,7 +389,7 @@

    ActionPlanTemplateExport Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L25"> templateId @@ -415,7 +418,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L36"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L36"> ActionPlanTemplateExport(templateId)

    @@ -467,7 +470,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L129"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L129"> buildXmlString(target)

    @@ -488,7 +491,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L46"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L46"> export()

    @@ -514,7 +517,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L110"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L110"> saveToContent(name, xml)

    @@ -543,7 +546,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L91"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L91"> saveToDocument(name, xml)

    @@ -570,7 +573,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L196"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateExport.cls#L196"> writeElement(out, tag, content)

    diff --git a/docs/ActionPlanTemplateExportTest.html b/docs/ActionPlanTemplateExportTest.html index 7e41be35..b80e3434 100644 --- a/docs/ActionPlanTemplateExportTest.html +++ b/docs/ActionPlanTemplateExportTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateExportTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateExportTest.cls#L25"> ActionPlanTemplateExportTest @@ -348,7 +348,15 @@

    ActionPlanTemplateExport, ActionPlanTemplateImportController

  • -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

    ActionPlanTemplateExportTest Methods

    @@ -371,7 +379,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateExportTest.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateExportTest.cls#L42"> exportDocTest()

    @@ -386,7 +394,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateExportTest.cls#L58"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateExportTest.cls#L59"> exportFileTest()

    @@ -401,7 +409,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateExportTest.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateExportTest.cls#L27"> exportTest()

    diff --git a/docs/ActionPlanTemplateImport.html b/docs/ActionPlanTemplateImport.html index 749fb32b..0ab02853 100644 --- a/docs/ActionPlanTemplateImport.html +++ b/docs/ActionPlanTemplateImport.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L22"> ActionPlanTemplateImport @@ -347,7 +347,14 @@

    -
    David Schach
    2022 +
    Since
    +
    +
  • 2022
  • +
    +
    Author
    +

  • ActionPlanTemplateImport Properties

    @@ -363,7 +370,7 @@

    ActionPlanTemplateImport Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L23"> importedTasks @@ -378,7 +385,7 @@

    ActionPlanTemplateImport Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L24"> newTasks @@ -405,7 +412,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L29"> ActionPlanTemplateImport()

    @@ -473,7 +480,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L396"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L396"> getDecodedString(reader)

    @@ -495,7 +502,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L121"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L121"> importAPTemplate(xml)

    @@ -517,7 +524,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L143"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L143"> importAPTtasks(xml, apTemplateId)

    @@ -540,7 +547,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L163"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L163"> parseMetaData(reader)

    @@ -563,7 +570,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L218"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L218"> parseTemplate(reader)

    @@ -584,7 +591,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L271"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L271"> parseTemplateTask(reader, apTemplateId)

    @@ -607,7 +614,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L41"> processImportedDocument(document)

    @@ -631,7 +638,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L97"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L97"> readingMetaData(xml)

    @@ -653,7 +660,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L365"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L365"> setupDependentTasks()

    @@ -675,7 +682,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L401"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImport.cls#L401"> ActionPlanTemplateImport.ImportException

    diff --git a/docs/ActionPlanTemplateImportCntrlTest.html b/docs/ActionPlanTemplateImportCntrlTest.html index 2bb56e80..d714c55f 100644 --- a/docs/ActionPlanTemplateImportCntrlTest.html +++ b/docs/ActionPlanTemplateImportCntrlTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L25"> ActionPlanTemplateImportCntrlTest @@ -347,7 +347,15 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

  • ActionPlanTemplateImportCntrlTest Properties

    @@ -363,7 +371,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L26"> xmlImport @@ -378,7 +386,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L30"> xmlImportEmptyMetaData @@ -393,7 +401,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L30"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L31"> xmlImportFromExport @@ -408,7 +416,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L27"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L28"> xmlImportWrongAPTask @@ -423,7 +431,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L27"> xmlImportWrongAPTemplate @@ -438,7 +446,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L28"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L29"> xmlImportWrongMetaData @@ -453,7 +461,7 @@

    ActionPlanTemplateImportCntrlTest Proper rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L31"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L32"> xmlWithControllingTasks @@ -505,7 +513,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L131"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L132"> badFields()

    @@ -520,7 +528,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L155"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L156"> controllingTask()

    @@ -535,7 +543,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L169"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L170"> roundTrip()

    @@ -550,7 +558,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlanTemplateImportCntrlTest.cls#L34"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L35"> xMLImport()

    @@ -565,7 +573,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L49"> xMLImportEmptyAttachment()

    @@ -580,7 +588,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L62"> xMLImportEmptyXML()

    @@ -595,7 +603,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L118"> xMLImportFromExport()

    @@ -610,7 +618,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L104"> xMLImportWrongMetaData()

    @@ -625,7 +633,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L76"> xMLImportWrongTemplate()

    @@ -640,7 +648,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlanTemplateImportCntrlTest.cls#L90"> xMLImportWrongTemplateTask()

    diff --git a/docs/ActionPlanTemplateImportController.html b/docs/ActionPlanTemplateImportController.html index 26227eba..2ead1bd4 100644 --- a/docs/ActionPlanTemplateImportController.html +++ b/docs/ActionPlanTemplateImportController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L23"> ActionPlanTemplateImportController @@ -347,7 +347,14 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

  • ActionPlanTemplateImportController Properties

    @@ -365,7 +372,7 @@

    ActionPlanTemplateImportController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L29"> attachment @@ -394,7 +401,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L34"> ActionPlanTemplateImportController()

    @@ -422,7 +429,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L43"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlanTemplateImportController.cls#L43"> importTemplate()

    diff --git a/docs/ActionPlansBuilderUtilities.html b/docs/ActionPlansBuilderUtilities.html index cb881add..426df2ae 100644 --- a/docs/ActionPlansBuilderUtilities.html +++ b/docs/ActionPlansBuilderUtilities.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L25"> ActionPlansBuilderUtilities @@ -349,8 +349,15 @@

    ActionPlanCreationController, ActionPlansQueueableBuilder

  • -
    Rodrigo Birriel - David Schach
    v3 +
    Authors
    + +
    Since
    +
    +
  • v3
  • +

    ActionPlansBuilderUtilities Properties

    @@ -368,32 +375,15 @@

    ActionPlansBuilderUtilities Properties - baseAPTaskList - - - -
    private List<APTask__c> baseAPTaskList
    - - - - - - - - mode + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L59"> + allTasksToUpsert -
    private ApEditMode mode
    +
    private List<Task> allTasksToUpsert
    - + A single list of all Tasks - we set the DMLOption to send an email notification when we add the Task to this list @@ -402,32 +392,15 @@

    ActionPlansBuilderUtilities Properties - myNewTasksWithEmail - - - -
    private List<Task> myNewTasksWithEmail
    - - - Tasks to insert that have Send Email checked - - - - - myOldTasksWithEmail + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L29"> + baseAPTaskList -
    private List<Task> myOldTasksWithEmail
    +
    private List<APTask__c> baseAPTaskList
    - Tasks to update that have Send Email checked + Local store of aPTListparam passed to constructor @@ -436,15 +409,15 @@

    ActionPlansBuilderUtilities Properties - myTasksWithOutEmail + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L54"> + mode -
    private List<Task> myTasksWithOutEmail
    +
    private ApEditMode mode
    - All tasks for upserting that will not require an email to be sent + Store the enum value @@ -453,7 +426,7 @@

    ActionPlansBuilderUtilities Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L33"> relActionPlans @@ -461,24 +434,7 @@

    ActionPlansBuilderUtilities Propertiesprivate List<ActionPlan__c> relActionPlans

    - - - - - - relAPTaskList - - - -
    private List<APTask__c> relAPTaskList
    - - - + The constructed ActionPlan__c records @@ -487,7 +443,7 @@

    ActionPlansBuilderUtilities Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L38"> relatedObjectName @@ -495,7 +451,7 @@

    ActionPlansBuilderUtilities Propertiesprivate String relatedObjectName - + Local store of refType passed to constructor @@ -504,7 +460,7 @@

    ActionPlansBuilderUtilities Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L42"> relatedRecordIDs @@ -512,7 +468,7 @@

    ActionPlansBuilderUtilities Propertiesprivate Set<Id> relatedRecordIDs - + Local store of oIdsSet passed to constructor @@ -532,7 +488,7 @@

    Enums

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L37"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L47"> ApEditMode @@ -551,7 +507,7 @@

    ActionPlansBuilderUtilities Constructors
  • - ActionPlansBuilderUtilities (baseObj, aPTListparam, refType, oIdsLIst) + ActionPlansBuilderUtilities (baseObj, aPTListparam, refType, oIdsSet)
    Constructor
    @@ -564,15 +520,15 @@

    - ActionPlansBuilderUtilities(baseObj, aPTListparam, refType, oIdsLIst) + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L68"> + ActionPlansBuilderUtilities(baseObj, aPTListparam, refType, oIdsSet)

    Constructor
    Signature
    - public ActionPlansBuilderUtilities(ActionPlan__c baseObj, List<APTask__c> aPTListparam, String refType, Set<Id> oIdsLIst) + public ActionPlansBuilderUtilities(ActionPlan__c baseObj, List<APTask__c> aPTListparam, String refType, Set<Id> oIdsSet)
    Parameters
    baseObj
    @@ -584,7 +540,7 @@

    refType
    Type: String
    Related object Name
    -
    oIdsLIst
    +
    oIdsSet
    Type: Set<Id>
    Parent IDs
    @@ -634,7 +590,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L102"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L106"> generateActionPlans()

    @@ -656,7 +612,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L416"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L418"> generateObjectFeeds(recIDs)

    @@ -682,7 +638,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L346"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L333"> getAPTaskTemplateUser(ap, relObjOwners, apTaskUser)

    @@ -716,7 +672,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L462"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L464"> getPostObjectBody(recID, apName)

    @@ -745,7 +701,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L351"> getRelatedRecordOwnerId(ap, relObjOwners)

    @@ -772,7 +728,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansBuilderUtilities.cls#L375"> retrieveOwnersDataRelatedObject(relatedRecordIDs)

    diff --git a/docs/ActionPlansCreateMultipleAPsExtTest.html b/docs/ActionPlansCreateMultipleAPsExtTest.html index 5872093b..b4b250aa 100644 --- a/docs/ActionPlansCreateMultipleAPsExtTest.html +++ b/docs/ActionPlansCreateMultipleAPsExtTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansCreateMultipleAPsExtTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansCreateMultipleAPsExtTest.cls#L24"> ActionPlansCreateMultipleAPsExtTest
  • @@ -349,7 +349,15 @@

    -
    David Schach +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

    ActionPlansCreateMultipleAPsExtTest Methods

    @@ -369,7 +377,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansCreateMultipleAPsExtTest.cls#L49"> givenNoRecordsToCreateThenNotCreated()

    @@ -384,7 +392,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansCreateMultipleAPsExtTest.cls#L26"> givenRecordsToCreateThenCreated()

    diff --git a/docs/ActionPlansCreateMultipleAPsExtension.html b/docs/ActionPlansCreateMultipleAPsExtension.html index 5905f560..666576fc 100644 --- a/docs/ActionPlansCreateMultipleAPsExtension.html +++ b/docs/ActionPlansCreateMultipleAPsExtension.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L23"> ActionPlansCreateMultipleAPsExtension
  • @@ -343,7 +343,14 @@

    Signature
    global with sharing class ActionPlansCreateMultipleAPsExtension
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansCreateMultipleAPsExtension Properties

    @@ -361,7 +368,7 @@

    ActionPlansCreateMultipleAPsExtension Pr rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L32"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L32"> objIDs @@ -378,7 +385,7 @@

    ActionPlansCreateMultipleAPsExtension Pr rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L27"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L27"> stdSetCntrlr @@ -411,7 +418,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L39"> ActionPlansCreateMultipleAPsExtension(stdSetController)

    @@ -447,7 +454,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L52"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansCreateMultipleAPsExtension.cls#L52"> doRedirect()

    diff --git a/docs/ActionPlansDeleteMultipleAPExtTest.html b/docs/ActionPlansDeleteMultipleAPExtTest.html index fd488cd8..da1946c5 100644 --- a/docs/ActionPlansDeleteMultipleAPExtTest.html +++ b/docs/ActionPlansDeleteMultipleAPExtTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansDeleteMultipleAPExtTest.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L21"> ActionPlansDeleteMultipleAPExtTest
  • @@ -346,7 +346,10 @@

    ActionPlansDeleteMultipleAPsExtension
    -
    David Schach +
    Author
    +

    ActionPlansDeleteMultipleAPExtTest Properties

    @@ -362,7 +365,7 @@

    ActionPlansDeleteMultipleAPExtTest Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansDeleteMultipleAPExtTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L22"> APS_TO_CREATE @@ -378,6 +381,8 @@

    ActionPlansDeleteMultipleAPExtTest Methods<
    • datasetup () + +
      Set up custom settings
    • givenNoRecordsToDeleteThenNotDeleted () @@ -396,10 +401,11 @@

      rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansDeleteMultipleAPExtTest.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L28"> datasetup()

      +
      Set up custom settings
      Signature
      @testSetup
      private static void datasetup()
      @@ -411,7 +417,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L76"> givenNoRecordsToDeleteThenNotDeleted()

      @@ -426,7 +432,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L62"> givenRecordsToDeleteThenDeleted()

      @@ -441,7 +447,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansDeleteMultipleAPExtTest.cls#L92"> noDeletePermission()

      diff --git a/docs/ActionPlansDeleteMultipleAPExtension.html b/docs/ActionPlansDeleteMultipleAPExtension.html index d5c6c9cb..110a0c1b 100644 --- a/docs/ActionPlansDeleteMultipleAPExtension.html +++ b/docs/ActionPlansDeleteMultipleAPExtension.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
    • -
    • + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L28"> ActionPlansDeleteMultipleAPExtension

    @@ -348,8 +348,15 @@

    {@link [Salesforce StackExchange](https://salesforce.stackexchange.com/a/4141/59)}, CanTheUser

    -
    Andrew Fawcett - David Schach
    2022 +
    Authors
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansDeleteMultipleAPExtension Properties

    @@ -367,7 +374,7 @@

    ActionPlansDeleteMultipleAPExtension Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L34"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L34"> actionPlansToShow @@ -384,7 +391,7 @@

    ActionPlansDeleteMultipleAPExtension Pro rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L29"> standardController @@ -415,7 +422,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L40"> ActionPlansDeleteMultipleAPExtension(stdSetController)

    @@ -451,7 +458,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansDeleteMultipleAPExtension.cls#L51"> deleteRecords()

    diff --git a/docs/ActionPlansObjectTriggersTest.html b/docs/ActionPlansObjectTriggersTest.html index 998f8929..e6bdf128 100644 --- a/docs/ActionPlansObjectTriggersTest.html +++ b/docs/ActionPlansObjectTriggersTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L22"> ActionPlansObjectTriggersTest
  • @@ -347,7 +347,10 @@

    -
    David Schach +
    Author
    +

    ActionPlansObjectTriggersTest Properties

    @@ -363,7 +366,7 @@

    ActionPlansObjectTriggersTest Properties rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L23"> aps @@ -406,6 +409,8 @@

    ActionPlansObjectTriggersTest Methods

  • makeData () + +
    Set up custom settings
  • opportunityTrigger () @@ -418,7 +423,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L38"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L40"> accountTrigger()

    @@ -433,7 +438,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L72"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L75"> campaignTrigger()

    @@ -448,7 +453,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L106"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L111"> caseTrigger()

    @@ -463,7 +468,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L140"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L147"> contactTrigger()

    @@ -478,7 +483,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L174"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L183"> contractTrigger()

    @@ -493,7 +498,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L330"> leadConversionAccount()

    @@ -508,7 +513,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L291"> leadConversionContact()

    @@ -523,7 +528,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L376"> leadConversionOpportunity()

    @@ -538,7 +543,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L208"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L219"> leadTrigger()

    @@ -553,10 +558,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L28"> makeData()

    +
    Set up custom settings
    Signature
    @TestSetup
    private static void makeData()
    @@ -568,7 +574,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansObjectTriggersTest.cls#L242"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansObjectTriggersTest.cls#L255"> opportunityTrigger()

    diff --git a/docs/ActionPlansPostInstallScript.html b/docs/ActionPlansPostInstallScript.html index 1fbe693c..731f5395 100644 --- a/docs/ActionPlansPostInstallScript.html +++ b/docs/ActionPlansPostInstallScript.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L19"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L19"> ActionPlansPostInstallScript
  • @@ -343,7 +343,14 @@

    Signature
    global class ActionPlansPostInstallScript implements InstallHandler
    -
    David Schach
    2022 +
    Since
    +
    +
  • 2022
  • +
    +
    Author
    +

    ActionPlansPostInstallScript Methods

    @@ -379,7 +386,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L41"> onFirstInstall()

    @@ -399,7 +406,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L25"> onInstall(context)

    @@ -423,7 +430,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L110"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L110"> onPush()

    @@ -441,7 +448,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L104"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansPostInstallScript.cls#L104"> onUpgrade()

    diff --git a/docs/ActionPlansPostInstallScriptTest.html b/docs/ActionPlansPostInstallScriptTest.html index 30eda90f..e137cdb3 100644 --- a/docs/ActionPlansPostInstallScriptTest.html +++ b/docs/ActionPlansPostInstallScriptTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansPostInstallScriptTest.cls#L19"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansPostInstallScriptTest.cls#L20"> ActionPlansPostInstallScriptTest
  • @@ -347,7 +347,15 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

    ActionPlansPostInstallScriptTest Methods

    @@ -364,7 +372,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansPostInstallScriptTest.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansPostInstallScriptTest.cls#L22"> installScript()

    diff --git a/docs/ActionPlansQueueableBuilder.html b/docs/ActionPlansQueueableBuilder.html index af49ef32..547155ff 100644 --- a/docs/ActionPlansQueueableBuilder.html +++ b/docs/ActionPlansQueueableBuilder.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L23"> ActionPlansQueueableBuilder
  • @@ -347,7 +347,14 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansQueueableBuilder Properties

    @@ -363,12 +370,12 @@

    ActionPlansQueueableBuilder Properties - builtUtil + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L24"> + buildUtil -
    private ActionPlansBuilderUtilities builtUtil
    +
    private ActionPlansBuilderUtilities buildUtil
    @@ -392,7 +399,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L34"> ActionPlansQueueableBuilder(baseObj, aPTList, refType, oIdsSet)

    @@ -415,6 +422,12 @@

    oIdsSet

    Type: Set<Id>
    IDs of related parents
    +
    See
    + @@ -425,7 +438,9 @@

    ActionPlansQueueableBuilder Methods

  • execute (qc) -
    Instead of a batch, we use queuable because it's more simple than Batch Apex
    +
    + Instead of a batch, we use queuable because it's more simple than Batch Apex
    TODO: Change email error notification to Lightning notification +
  • @@ -435,11 +450,13 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L42"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansQueueableBuilder.cls#L44"> execute(qc)

    -
    Instead of a batch, we use queuable because it's more simple than Batch Apex
    +
    + Instead of a batch, we use queuable because it's more simple than Batch Apex
    TODO: Change email error notification to Lightning notification +
    Signature
    public void execute(QueueableContext qc)
    diff --git a/docs/ActionPlansQueueableBuilderTest.html b/docs/ActionPlansQueueableBuilderTest.html index 3a065579..91696df7 100644 --- a/docs/ActionPlansQueueableBuilderTest.html +++ b/docs/ActionPlansQueueableBuilderTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansQueueableBuilderTest.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansQueueableBuilderTest.cls#L24"> ActionPlansQueueableBuilderTest @@ -347,7 +347,15 @@

    ActionPlansQueuableBuilder
    -
    David Schach +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

  • ActionPlansQueueableBuilderTest Methods

    @@ -370,7 +378,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansQueueableBuilderTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansQueueableBuilderTest.cls#L26"> makeData()

    @@ -385,7 +393,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansQueueableBuilderTest.cls#L35"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansQueueableBuilderTest.cls#L37"> runQueueContact()

    @@ -400,7 +408,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansQueueableBuilderTest.cls#L88"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansQueueableBuilderTest.cls#L90"> runQueueException()

    diff --git a/docs/ActionPlansRedirect.html b/docs/ActionPlansRedirect.html index 12a606b8..2249c68f 100644 --- a/docs/ActionPlansRedirect.html +++ b/docs/ActionPlansRedirect.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L18"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L18"> ActionPlansRedirect @@ -343,7 +343,14 @@

    Signature
    public with sharing class ActionPlansRedirect
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

  • ActionPlansRedirect Properties

    @@ -361,7 +368,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L21"> actionPlan @@ -378,7 +385,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L19"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L19"> actionPlanTask @@ -395,7 +402,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L22"> actionPlanTemplate @@ -412,7 +419,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L20"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L20"> actionPlanTemplateTask @@ -429,7 +436,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L28"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L28"> objName @@ -446,7 +453,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L23"> parentId @@ -463,7 +470,7 @@

    ActionPlansRedirect Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L24"> recordId @@ -492,7 +499,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L35"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L35"> ActionPlansRedirect(controller)

    @@ -534,7 +541,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L78"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L78"> cancel()

    @@ -552,7 +559,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L98"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L98"> redirect()

    @@ -570,7 +577,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L64"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansRedirect.cls#L64"> save()

    diff --git a/docs/ActionPlansRedirectTest.html b/docs/ActionPlansRedirectTest.html index 5cedde2b..98ef1318 100644 --- a/docs/ActionPlansRedirectTest.html +++ b/docs/ActionPlansRedirectTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansRedirectTest.cls#L19"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L20"> ActionPlansRedirectTest @@ -342,12 +342,20 @@

    Test for Redirect Visualforce Controller
    Signature
    @IsTest
    -
    public class ActionPlansRedirectTest
    +
    private class ActionPlansRedirectTest
    See
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

  • ActionPlansRedirectTest Methods

    @@ -367,6 +375,8 @@

    ActionPlansRedirectTest Methods

  • makeData () + +
    Set up custom settings
  • @@ -376,7 +386,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansRedirectTest.cls#L65"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L69"> actionPlanChangeOwner()

    @@ -391,7 +401,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L85"> actionPlanTemplateChangeOwner()

    @@ -406,7 +416,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansRedirectTest.cls#L31"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L35"> aPTaskRedirect()

    @@ -421,7 +431,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansRedirectTest.cls#L48"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L52"> aPTTaskRedirect()

    @@ -436,10 +446,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansRedirectTest.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansRedirectTest.cls#L25"> makeData()

    +
    Set up custom settings
    Signature
    @TestSetup
    private static void makeData()
    diff --git a/docs/ActionPlansSectionHeaderController.html b/docs/ActionPlansSectionHeaderController.html index f717ab6b..c6efa46e 100644 --- a/docs/ActionPlansSectionHeaderController.html +++ b/docs/ActionPlansSectionHeaderController.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L28"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L28"> ActionPlansSectionHeaderController @@ -352,11 +352,18 @@

    >https://salesforce.stackexchange.com/questions/116688/lightning-get-sobject-tab-icon

  • -
    David Schach - Cricketlang
    2022 +
    Since
    +
    +
  • 2022
  • +
    +
    Authors
    +
    Example
     <div class="slds-media__figure"> 
    -   <span class="slds-icon_container {!ObjectIconInfo['iconStyle']}" title="{!$ObjectType[sObjType].label}"> 
    +   <span class="slds-icon_container {!ObjectIconInfo['iconStyle']}" title="{!$ObjectType['sObjType'].label}"> 
          <apex:image url="{!ObjectIconInfo['iconURL']}" styleClass="slds-icon slds-page-header__icon" html-aria-hidden="true" /> 
          <span class="slds-assistive-text">{!$ObjectType[sObjType].label}</span> 
        </span> 
    @@ -378,7 +385,7 @@ 

    ActionPlansSectionHeaderController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L32"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L32"> objectName @@ -395,7 +402,7 @@

    ActionPlansSectionHeaderController Prope rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L51"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L51"> orgObject @@ -426,13 +433,23 @@

    ActionPlansSectionHeaderController Methods<
    Given an object name, return if it is a custom object
    +
  • + queryRecords (queryText) + +
    + Main code for lightning lookup. Included in this class because we use this as the controller for our lookups
    + the code is duplicated in AciontPlanCreationController because there is a lookup directly in that page (for now)
    This is a different approach than in + ActionPlanCreationController, as we pass in the full query here, but there it is done by passing only the search key. +
    +
  • retrieveIconForObject (sObjectName)
    - Explores the schema of the soject passed in and finds lightning icon style and image url for sObject If nothing is found, defaults to the custom icon Code - adapted from https://salesforce.stackexchange.com/questions/116688/lightning-get-sobject-tab-icon Thanks to - https://salesforce.stackexchange.com/users/12582/cricketlang + Explores the schema of the soject passed in and finds lightning icon style and image url for sObject
    If nothing is found, defaults to the custom icon +
    Code adapted from https://salesforce.stackexchange.com/questions/116688/lightning-get-sobject-tab-icon
    Thanks to + https://salesforce.stackexchange.com/users/12582/cricketlang
    Todo: Avoid describing all applications and tabs, and even use "break" to shorten + the runtime
  • @@ -443,7 +460,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L67"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L67"> getIsCustom()

    @@ -467,7 +484,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L58"> getObjectIconInfo()

    @@ -491,7 +508,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L76"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L76"> isCustom(sObjectName)

    @@ -506,6 +523,36 @@

    Returns
    Boolean Is this object a custom object?

    +
    +

    + + queryRecords(queryText) + +

    +
    + Main code for lightning lookup. Included in this class because we use this as the controller for our lookups
    + the code is duplicated in AciontPlanCreationController because there is a lookup directly in that page (for now)
    This is a different approach than in + ActionPlanCreationController, as we pass in the full query here, but there it is done by passing only the search key. +
    +
    Signature
    +
    @RemoteAction
    +
    public static List<SObject> queryRecords(String queryText)
    +
    Parameters
    +
    queryText
    +
    Type: String
    +
    SOQL query to return records for the lookup
    +
    Returns
    +
    List<SObject> Returned records
    +
    See
    + +

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansSectionHeaderController.cls#L92"> retrieveIconForObject(sObjectName)

    - Explores the schema of the soject passed in and finds lightning icon style and image url for sObject If nothing is found, defaults to the custom icon Code - adapted from https://salesforce.stackexchange.com/questions/116688/lightning-get-sobject-tab-icon Thanks to - https://salesforce.stackexchange.com/users/12582/cricketlang + Explores the schema of the soject passed in and finds lightning icon style and image url for sObject
    If nothing is found, defaults to the custom icon +
    Code adapted from https://salesforce.stackexchange.com/questions/116688/lightning-get-sobject-tab-icon
    Thanks to + https://salesforce.stackexchange.com/users/12582/cricketlang
    Todo: Avoid describing all applications and tabs, and even use "break" to shorten + the runtime
    Signature
    diff --git a/docs/ActionPlansSectionHeaderControllerTest.html b/docs/ActionPlansSectionHeaderControllerTest.html index 83425d5c..99cc9bd1 100644 --- a/docs/ActionPlansSectionHeaderControllerTest.html +++ b/docs/ActionPlansSectionHeaderControllerTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L19"> ActionPlansSectionHeaderControllerTest @@ -347,7 +347,14 @@

    ActionPlansSectionHeaderController

  • -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansSectionHeaderControllerTest Methods

    @@ -355,6 +362,8 @@

    ActionPlansSectionHeaderControllerTest Meth
    • makeData () + +
      Set up custom settings
    • nullObject () @@ -376,10 +385,11 @@

      rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansSectionHeaderControllerTest.cls#L21"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L24"> makeData()

      +
      Set up custom settings
      Signature
      @TestSetup
      private static void makeData()
      @@ -391,7 +401,7 @@

      rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansSectionHeaderControllerTest.cls#L76"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L79"> nullObject()

      @@ -406,7 +416,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L48"> objectTabDescribeNegative()

      @@ -421,7 +431,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L67"> objectTabDescribeNotInApplication()

      @@ -436,7 +446,7 @@

      + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansSectionHeaderControllerTest.cls#L31"> objectTabDescribePositive()

      diff --git a/docs/ActionPlansTaskTriggerUtilities.html b/docs/ActionPlansTaskTriggerUtilities.html index 3068c646..faf89297 100644 --- a/docs/ActionPlansTaskTriggerUtilities.html +++ b/docs/ActionPlansTaskTriggerUtilities.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
    • -
    • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L23"> ActionPlansTaskTriggerUtilities

    @@ -343,7 +343,14 @@

    Signature
    public without sharing class ActionPlansTaskTriggerUtilities
    -
    David Schach
    2022 +
    Since
    +
    +
  • 2022
  • +
    +
    Author
    +

    ActionPlansTaskTriggerUtilities Properties

    @@ -359,7 +366,7 @@

    ActionPlansTaskTriggerUtilities Properti rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L24"> dependentApts @@ -374,7 +381,7 @@

    ActionPlansTaskTriggerUtilities Properti rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L25"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L25"> tasksSendEmail @@ -389,7 +396,7 @@

    ActionPlansTaskTriggerUtilities Properti rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L26"> tasksSendNoEmail @@ -414,9 +421,9 @@

    ActionPlansTaskTriggerUtilities Methods

    Delete Action Plan Tasks
  • - deleteTasks (apttIds) + futureDeleteTasks (taskIDs) -
    Delete Action Plan Tasks related Tasks
    +
    Delete Action Plan Tasks' related Tasks
  • @@ -461,7 +468,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L375"> actionsOnTaskBeforeDelete(cTasks)

    @@ -487,7 +494,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L272"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L283"> deleteAPTasks(aPTasks)

    @@ -501,22 +508,22 @@

    Ids of APTasks to delete
    -

    +

    - deleteTasks(apttIds) + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L295"> + futureDeleteTasks(taskIDs)

    -
    Delete Action Plan Tasks related Tasks
    +
    Delete Action Plan Tasks' related Tasks
    Signature
    - -
    public static void deleteTasks(Set<Id> apttIds)
    +
    @future
    +
    public static void futureDeleteTasks(Set<Id> taskIDs)
    Parameters
    -
    apttIds
    +
    taskIDs
    Type: Set<Id>
    Task IDs to delete
    @@ -527,7 +534,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L305"> generateDependentTasksAndReset(apTasks, taskIndexToDelete)

    @@ -553,7 +560,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L32"> initDependentTaskWork(taskIdMap)

    @@ -573,7 +580,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L165"> populateUpdateApttsList(dependentAptList)

    @@ -595,7 +602,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L86"> queryDependentAPTaskTemplates(closedTasks)

    @@ -611,7 +618,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L266"> updateAPTasksStatus(apTasksMap)

    @@ -631,7 +638,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTaskTriggerUtilities.cls#L107"> upsertDependentAPTasks(dependentAptList)

    diff --git a/docs/ActionPlansTaskTriggerUtilitiesTest.html b/docs/ActionPlansTaskTriggerUtilitiesTest.html index b2d6fc19..d472190a 100644 --- a/docs/ActionPlansTaskTriggerUtilitiesTest.html +++ b/docs/ActionPlansTaskTriggerUtilitiesTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L23"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L23"> ActionPlansTaskTriggerUtilitiesTest @@ -347,7 +347,14 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansTaskTriggerUtilitiesTest Properties

    @@ -363,7 +370,7 @@

    ActionPlansTaskTriggerUtilitiesTest Prop rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L24"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L24"> testClosedStatus @@ -397,6 +404,11 @@

    ActionPlansTaskTriggerUtilitiesTest Methods
    test ActionPlansTaskTriggerUtilities when the user undeletes an ActionPlan Task Template

  • +
  • + coverFutureMethods () + +
    Coverage for future deletion methods because we may not use them
    +
  • makeData ()
  • @@ -431,7 +443,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L114"> actionPlanDelete()

    @@ -447,7 +459,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L229"> aPTaskUndelete()

    @@ -463,7 +475,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L151"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L168"> aPTaskUpdate()

    @@ -479,7 +491,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L298"> aPTTemplateUndeleteException()

    @@ -488,6 +500,22 @@

    @IsTest
    private static void aPTTemplateUndeleteException()
    +
    +

    + + coverFutureMethods() + +

    +
    Coverage for future deletion methods because we may not use them
    +
    Signature
    +
    @IsTest
    +
    private static void coverFutureMethods()
    +

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L27"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L27"> makeData()

    @@ -510,7 +538,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L55"> taskAfterUpdateToCompleted()

    @@ -526,7 +554,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L348"> taskAfterUpdateToOpen()

    @@ -542,7 +570,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L477"> taskAssignToQueue()

    @@ -561,7 +589,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansTaskTriggerUtilitiesTest.cls#L405"> taskBeforeDelete()

    diff --git a/docs/ActionPlansTestUtilities.html b/docs/ActionPlansTestUtilities.html index f459fb79..e09bc88c 100644 --- a/docs/ActionPlansTestUtilities.html +++ b/docs/ActionPlansTestUtilities.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L23"> ActionPlansTestUtilities
  • @@ -343,7 +343,15 @@

    Signature
    public inherited sharing class ActionPlansTestUtilities
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 Begin exposing methods to cover custom objects
  • +

    ActionPlansTestUtilities Properties

    @@ -361,7 +369,7 @@

    ActionPlansTestUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L26"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L27"> forceError @@ -379,7 +387,7 @@

    ActionPlansTestUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L31"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L32"> forceHasRecordType @@ -397,7 +405,7 @@

    ActionPlansTestUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L37"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L38"> standardObjects @@ -437,7 +445,7 @@

    ActionPlansTestUtilities Methods

    Creates a new Account SObject
    Inserts before returning
  • - createNewActionPlan (relatedObject, numTasks) + createNewActionPlan (relatedObject, numTasks, customObjectId)
    Create Action Plan and APTaskss
  • @@ -468,7 +476,7 @@

    ActionPlansTestUtilities Methods

  • createNewCampaign () -
    Creates a new Campaign SObject Inserts before returning
    +
    Creates a new Campaign SObject
    Inserts before returning
  • createNewCase (insertRecord) @@ -478,7 +486,7 @@

    ActionPlansTestUtilities Methods

  • createNewCase () -
    Creates a new Case Object Inserts before returning
    +
    Creates a new Case Object
    Inserts before returning
  • createNewContact (insertRecord) @@ -488,7 +496,7 @@

    ActionPlansTestUtilities Methods

  • createNewContact () -
    Creates a new Contact Object Inserts before returning
    +
    Creates a new Contact Object
    Inserts before returning
  • createNewContract (insertRecord) @@ -498,7 +506,7 @@

    ActionPlansTestUtilities Methods

  • createNewContract () -
    Creates a new Contract Object Inserts before returning
    +
    Creates a new Contract Object
    Inserts before returning
  • createNewLead (insertRecord) @@ -508,7 +516,7 @@

    ActionPlansTestUtilities Methods

  • createNewLead () -
    Creates a new Lead Object Inserts before returning
    +
    Creates a new Lead Object
    Inserts before returning
  • createNewOpportunity (insertRecord) @@ -518,7 +526,7 @@

    ActionPlansTestUtilities Methods

  • createNewOpportunity () -
    Creates a new Opportunity Object Inserts before returning
    +
    Creates a new Opportunity Object
    Inserts before returning
  • createRandomWord () @@ -566,7 +574,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L118"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L119"> assignAPPermissionSets(testUserId, allOrNone)

    @@ -597,7 +605,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L105"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L106"> createAdminUser()

    @@ -624,7 +632,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L136"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L137"> createNewAccount(insertRecord)

    @@ -646,7 +654,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L151"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L152"> createNewAccount()

    @@ -664,14 +672,14 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L318"> - createNewActionPlan(relatedObject, numTasks) + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L325"> + createNewActionPlan(relatedObject, numTasks, customObjectId)

    Create Action Plan and APTaskss
    Signature
    -
    public ActionPlan__c createNewActionPlan(String relatedObject, Integer numTasks)
    +
    public ActionPlan__c createNewActionPlan(String relatedObject, Integer numTasks, Id customObjectId)
    Parameters
    relatedObject
    Type: String
    @@ -679,6 +687,9 @@

    numTasks
    Type: Integer
    How many tasks to create for the ActionPlan
    +
    customObjectId
    +
    Type: Id
    +
    For a Custom Object, pass in the Id of the created record so we don't have to do that here
    Returns
    new ActionPlan__c
    See
    @@ -687,6 +698,11 @@

    >ActionPlansTestUtilities.createNewActionPlanTask

  • +
    Example
    +
     ActionPlansTestUtilities testUtil = new ActionPlansTestUtilities(); 
    + ActionPlan__c actionPlan = testUtil.createNewActionPlan('account', 3, null); 
    + or 
    + ActionPlan__c actionPlan = testUtil.createNewActionPlan('customObject__c', 3, '02a000000000000000');

    @@ -695,7 +711,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L379"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L389"> createNewActionPlanTask(actionPlan, days, userId, category, priority)

    @@ -733,7 +749,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L414"> createNewActionPlanTemplate(numTasks)

    @@ -765,7 +781,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L449"> createNewActionPlanTemplateTask(apTemplate, days, userId, category, priority)

    @@ -805,7 +821,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L161"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L162"> createNewCampaign(insertRecord)

    @@ -833,11 +849,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L177"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L178"> createNewCampaign()

    -
    Creates a new Campaign SObject Inserts before returning
    +
    Creates a new Campaign SObject
    Inserts before returning
    Signature
    public Campaign createNewCampaign()
    @@ -857,7 +873,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L186"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L187"> createNewCase(insertRecord)

    @@ -879,11 +895,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L202"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L203"> createNewCase()

    -
    Creates a new Case Object Inserts before returning
    +
    Creates a new Case Object
    Inserts before returning
    Signature
    public Case createNewCase()
    @@ -897,7 +913,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L211"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L212"> createNewContact(insertRecord)

    @@ -919,11 +935,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L226"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L227"> createNewContact()

    -
    Creates a new Contact Object Inserts before returning
    +
    Creates a new Contact Object
    Inserts before returning
    Signature
    public Contact createNewContact()
    @@ -937,7 +953,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L235"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L236"> createNewContract(insertRecord)

    @@ -959,11 +975,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L252"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L253"> createNewContract()

    -
    Creates a new Contract Object Inserts before returning
    +
    Creates a new Contract Object
    Inserts before returning
    Signature
    public Contract createNewContract()
    @@ -977,7 +993,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L261"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L262"> createNewLead(insertRecord)

    @@ -999,11 +1015,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L279"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L280"> createNewLead()

    -
    Creates a new Lead Object Inserts before returning
    +
    Creates a new Lead Object
    Inserts before returning
    Signature
    public Lead createNewLead()
    @@ -1017,7 +1033,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L289"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L290"> createNewOpportunity(insertRecord)

    @@ -1045,11 +1061,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L307"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L308"> createNewOpportunity()

    -
    Creates a new Opportunity Object Inserts before returning
    +
    Creates a new Opportunity Object
    Inserts before returning
    Signature
    public Opportunity createNewOpportunity()
    @@ -1069,7 +1085,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L44"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L45"> createRandomWord()

    @@ -1089,7 +1105,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L55"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L56"> createRandomWord(prefix)

    @@ -1116,7 +1132,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L67"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L68"> createTestUser()

    @@ -1138,7 +1154,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L81"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L82"> createTestUser(p)

    @@ -1160,7 +1176,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L486"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L496"> getCompleted(actionPlanId)

    @@ -1182,7 +1198,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTestUtilities.cls#L472"> getNonDefaultAvailableTaskRecordType()

    diff --git a/docs/ActionPlansTriggerHandlers.html b/docs/ActionPlansTriggerHandlers.html index de937335..af129c59 100644 --- a/docs/ActionPlansTriggerHandlers.html +++ b/docs/ActionPlansTriggerHandlers.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L22"> ActionPlansTriggerHandlers
  • @@ -346,7 +346,14 @@

    Signature
    global without sharing class ActionPlansTriggerHandlers
    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +

    ActionPlansTriggerHandlers Properties

    @@ -364,7 +371,7 @@

    ActionPlansTriggerHandlers Properties + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L29"> bypassTaskTrigger @@ -416,6 +423,11 @@

    ActionPlansTriggerHandlers Methods

    Related Record fields
    +
  • + forceSynchronous () + +
    Simple method to check if we are asynchronous already
    +
  • futureDeleteActionPlans (relActionPlansIds) @@ -486,7 +498,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L37"> actionPlansSObjectTriggerHandler(sObjectName)

    @@ -516,7 +528,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L53"> actionPlansSObjectTriggerHandler(newRecords, oldRecords, newRecordsMap, oldRecordsMap, triggerEvent, sObjectName)

    @@ -564,7 +576,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L822"> allowChangeParentStatus(apTaskTemplateIds)

    @@ -591,7 +603,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L821"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L837"> deleteActionPlans(relActionPlansIds)

    @@ -615,7 +627,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L226"> fillRelatedRecordFields(newRecords)

    @@ -635,6 +647,28 @@

    David Schach +
    +

    + + forceSynchronous() + +

    +
    Simple method to check if we are asynchronous already
    +
    Signature
    + +
    private static Boolean forceSynchronous()
    +
    Returns
    +
    Boolean Are we in an asynchronous state (so can't call future methods)?
    +
    Author
    + +

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L859"> futureDeleteActionPlans(relActionPlansIds)

    @@ -670,7 +704,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L781"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L797"> getRelationshipName(recordId)

    @@ -692,7 +726,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L131"> triggerhandlerActionPlan(newRecords, oldRecords, newRecordsMap, oldRecordsMap, triggerEvent)

    @@ -726,10 +760,7 @@

    ActionPlansTriggerHandlers.validateActionPlans, - ActionPlansTaskTriggerUtilities.deleteTasks + >, ActionPlansTaskTriggerUtilities.deleteTasks

    Author
    @@ -743,7 +774,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L694"> triggerhandlerActionPlanAccount(newRecords, oldRecords, newRecordsMap, oldRecordsMap, triggerEvent)

    @@ -782,7 +813,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L637"> triggerhandlerActionPlanLead(newRecords, oldRecords, newRecordsMap, oldRecordsMap, triggerEvent)

    @@ -819,7 +850,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L261"> triggerhandlerActionPlanTask(newRecords, oldRecords, newRecordsMap, oldRecordsMap, triggerEvent)

    @@ -858,7 +889,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L379"> triggerhandlerActionPlanTemplate(newRecords, oldRecords, oldRecordsMap, triggerEvent)

    @@ -894,7 +925,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L416"> triggerhandlerActionPlanTemplateTask(newRecords, oldRecords, oldRecordsMap, triggerEvent)

    @@ -930,7 +961,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L452"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L468"> triggerhandlerTask(newRecords, oldRecords, triggerEvent)

    @@ -966,7 +997,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L757"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansTriggerHandlers.cls#L773"> validateActionPlans(actionPlans)

    diff --git a/docs/ActionPlansUtilities.html b/docs/ActionPlansUtilities.html index 53f6ded7..080919ed 100644 --- a/docs/ActionPlansUtilities.html +++ b/docs/ActionPlansUtilities.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest

  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L18"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L18"> ActionPlansUtilities
  • @@ -343,7 +343,14 @@

    Signature
    public without sharing class ActionPlansUtilities
    -
    David Schach
    2022 +
    Since
    +
    +
  • 2022
  • +
    +
    Author
    +

    ActionPlansUtilities Properties

    @@ -361,7 +368,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L69"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L69"> apCustomRelationshipFields @@ -378,7 +385,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L567"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L581"> apSettings @@ -395,7 +402,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L529"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L537"> canDisplayReminder @@ -403,7 +410,7 @@

    ActionPlansUtilities Properties

    private static Boolean canDisplayReminder
    - + Private variable to store if the org can have reminders available @@ -412,7 +419,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L545"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L556"> checkReminderByDefault @@ -420,7 +427,7 @@

    ActionPlansUtilities Properties

    private static Boolean checkReminderByDefault
    - + Does the running user get task reminders by default? @@ -429,7 +436,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L363"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L368"> closedTaskStatuses @@ -446,7 +453,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L670"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L680"> dayOfWeekEnglish @@ -463,7 +470,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L562"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L576"> defaultMinutesForReminderTime @@ -471,7 +478,7 @@

    ActionPlansUtilities Properties

    private static String defaultMinutesForReminderTime
    - + What is the default time for the user's reminders @@ -480,7 +487,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L32"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L32"> MASTER_RECORD_TYPE_ID @@ -497,7 +504,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L22"> MAX_APTASKS @@ -514,7 +521,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L27"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L27"> MAX_APTODELETE @@ -531,7 +538,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L732"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L742"> namespacePrefix @@ -548,7 +555,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L358"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L349"> openTaskStatuses @@ -565,7 +572,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L118"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L119"> prefixToDescribe @@ -573,7 +580,7 @@

    ActionPlansUtilities Properties

    private static Map<String, Schema.DescribeSObjectResult> prefixToDescribe
    - Memoize objects as we describe them, to save on calls + Memoize objects as we describe them, to save on calls
    This map is keyprefix => DescribeSObjectResult @@ -582,7 +589,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L140"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L141"> recordIdToRecordName @@ -590,7 +597,7 @@

    ActionPlansUtilities Properties

    private static Map<Id, String> recordIdToRecordName
    - Memoize record IDs so we don't have to keep iterating over them if we already have them + Memoize record IDs to Names so we don't have to keep iterating over them if we already have them @@ -599,12 +606,12 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L275"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L279"> taskPriorityDefaultValue -
    private static String taskPriorityDefaultValue
    +
    private static final String taskPriorityDefaultValue
    Describe Task.Priority only once @@ -616,7 +623,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L279"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L283"> taskRecordTypePriorityDefaultValues @@ -633,7 +640,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L197"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L201"> taskRecordTypes @@ -650,7 +657,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L218"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L222"> taskRecordTypeStatusDefaultValues @@ -667,7 +674,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L249"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L253"> taskRecordTypeTypeDefaultValues @@ -684,7 +691,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L340"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L344"> taskRTs @@ -701,12 +708,12 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L214"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L218"> taskStatusDefaultValue -
    private static String taskStatusDefaultValue
    +
    private static final String taskStatusDefaultValue
    Describe Task.Status only once @@ -718,12 +725,12 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L245"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L249"> taskTypeDefaultValue -
    private static String taskTypeDefaultValue
    +
    private static final String taskTypeDefaultValue
    Describe Task.Type only once @@ -735,7 +742,7 @@

    ActionPlansUtilities Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L37"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L37"> taskUsesRecordTypes @@ -926,7 +933,10 @@

    ActionPlansUtilities Methods

  • queryRecordIDToRecordName (recordIDs) -
    Give a set of recordIDs and retrieve the related record names
    +
    + Give a set of recordIDs and retrieve the related record names
    This method has queries in a loop - need to investigate if it is even possible to call + this method with IDs from multiple objects +
  • @@ -936,7 +946,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L612"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L626"> actionPlanSubjectToName(subject)

    @@ -958,7 +968,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L622"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L636"> actionPlanSubjectToName(subject, maxChars)

    @@ -983,7 +993,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L697"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L707"> adjustTaskDueDate(actionPlanStartDate, taskDaysFromStart, apSkipDay)

    @@ -1011,7 +1021,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L639"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L651"> canSendEmails()

    @@ -1031,7 +1041,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L499"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L504"> canShareRecord(recordId, recordOwnerId)

    @@ -1062,7 +1072,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L592"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L606"> checkOrgDefaultCustomSetting(insertIfNull)

    @@ -1091,7 +1101,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L523"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L528"> getCanDisplayReminder()

    @@ -1112,7 +1122,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L486"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L491"> getCanTransfer(recordId)

    @@ -1138,7 +1148,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L535"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L543"> getCheckReminderByDefault()

    @@ -1158,7 +1168,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L369"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L374"> getClosedTaskStatuses()

    @@ -1180,7 +1190,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L75"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L75"> getCustomRelationshipFields()

    @@ -1202,7 +1212,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L572"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L586"> getCustomSetting()

    @@ -1220,7 +1230,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L661"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L671"> getDayOfWeek(theDate)

    @@ -1246,7 +1256,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L551"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L562"> getDefaultReminderMinutes()

    @@ -1264,7 +1274,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L308"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L312"> getDefaultTaskRecordTypeId()

    @@ -1282,7 +1292,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L472"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L477"> getEscapedPageParameter(paramKey)

    @@ -1313,7 +1323,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L387"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L392"> getFieldOptions(objectname, fieldname, requireValue)

    @@ -1345,7 +1355,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L411"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L416"> getHoursOption()

    @@ -1363,7 +1373,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L724"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L734"> getIsLex()

    @@ -1381,7 +1391,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L110"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L110"> getObjectKeyPrefix(objName)

    @@ -1406,7 +1416,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L346"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L355"> getOpenTaskStatuses()

    @@ -1424,7 +1434,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L125"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L126"> getRelatedSObjectDescribe(recordId)

    @@ -1452,7 +1462,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L288"> getTaskRecordTypePriorityDefaultValues()

    @@ -1473,7 +1483,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L203"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L207"> getTaskRecordTypes()

    @@ -1493,7 +1503,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L227"> getTaskRecordTypeStatusDefaultValues()

    @@ -1513,7 +1523,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L258"> getTaskRecordTypeTypeDefaultValues()

    @@ -1534,7 +1544,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L327"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L331"> getTaskRTPicklistValues()

    @@ -1552,7 +1562,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L686"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L696"> getWeekendDay(developerName)

    @@ -1578,7 +1588,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L750"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L760"> idStartsWith(idParam, compareString)

    @@ -1605,7 +1615,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L59"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L59"> onPageLoad()

    @@ -1630,11 +1640,14 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L148"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/ActionPlansUtilities.cls#L151"> queryRecordIDToRecordName(recordIDs)

    -
    Give a set of recordIDs and retrieve the related record names
    +
    + Give a set of recordIDs and retrieve the related record names
    This method has queries in a loop - need to investigate if it is even possible to call this + method with IDs from multiple objects +
    Signature
    public static Map<Id, String> queryRecordIDToRecordName(Set<Id> recordIDs)
    diff --git a/docs/ActionPlansUtilitiesTest.html b/docs/ActionPlansUtilitiesTest.html index 370517bb..0b5c9c97 100644 --- a/docs/ActionPlansUtilitiesTest.html +++ b/docs/ActionPlansUtilitiesTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L18"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L19"> ActionPlansUtilitiesTest
  • @@ -346,7 +346,15 @@

    -
    David Schach
    2022 +
    Author
    + +
    Since
    +
    +
  • 2022
  • +
  • 2023 System.assert to Assert class + error messages
  • +

    ActionPlansUtilitiesTest Methods

    @@ -375,6 +383,8 @@

    ActionPlansUtilitiesTest Methods

  • doChatterPost (objectNames) + +
    A method to enable testing creating a Chatter post for any of our usual standard objects
  • doChatterPostPart1 () @@ -394,6 +404,8 @@

    ActionPlansUtilitiesTest Methods

  • makeData () + +
    Set up custom settings
  • randomWord () @@ -407,10 +419,13 @@

    ActionPlansUtilitiesTest Methods

  • saveSingle ()
  • -
  • - testObject (objectName) +
  • + testObject (objectName, recordId) -
    Pass in any object and create an Action Plan for that object
    +
    + Pass in any object name (and its ID if a custom object) and create an Action Plan for that object
    Will be global in the next version so test code for + custom objects can access it +
  • utilitiesRecordTypes () @@ -423,7 +438,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L94"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L98"> account()

    @@ -438,7 +453,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L127"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L131"> campaign()

    @@ -453,7 +468,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L169"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L175"> cancel()

    @@ -468,7 +483,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L122"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L126"> case()

    @@ -483,7 +498,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L104"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L108"> contact()

    @@ -498,7 +513,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L132"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L136"> contract()

    @@ -513,7 +528,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L251"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L257"> deleteActionPlans()

    @@ -528,13 +543,18 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L279"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L290"> doChatterPost(objectNames)

    +
    A method to enable testing creating a Chatter post for any of our usual standard objects
    Signature
    private static void doChatterPost(List<String> objectNames)
    +
    Parameters
    +
    objectNames
    +
    Type: List<String>
    +
    The object we want to make a post for
  • @@ -543,7 +563,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L354"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L365"> doChatterPostPart1()

    @@ -558,7 +578,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L362"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L373"> doChatterPostPart2()

    @@ -573,7 +593,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L117"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L121"> lead()

    @@ -588,7 +608,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L397"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L408"> makeAppTask(ap)

    @@ -616,10 +636,11 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L20"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L24"> makeData()

    +
    Set up custom settings
    Signature
    @TestSetup
    private static void makeData()
    @@ -631,7 +652,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L369"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L380"> randomWord()

    @@ -646,7 +667,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L224"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L230"> relatedObjectId()

    @@ -661,7 +682,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L64"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L68"> saveMultiple()

    @@ -676,7 +697,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L32"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L36"> saveSingle()

    @@ -684,25 +705,31 @@

    @IsTest
    private static void saveSingle()

    -
    +

    - testObject(objectName) + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L148"> + testObject(objectName, recordId)

    -
    Pass in any object and create an Action Plan for that object
    +
    + Pass in any object name (and its ID if a custom object) and create an Action Plan for that object
    Will be global in the next version so test code for + custom objects can access it +
    Signature
    -
    private static Boolean testObject(String objectName)
    +
    public static Boolean testObject(String objectName, Id recordId)
    Parameters
    objectName
    Type: String
    The object name
    +
    recordId
    +
    Type: Id
    +
    Pass in the Id of a custom object record so we can make an Action Plan for it
    Returns
    Success at creating tasks for the Action Plan
    Author
    @@ -717,7 +744,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/ActionPlansUtilitiesTest.cls#L375"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/ActionPlansUtilitiesTest.cls#L386"> utilitiesRecordTypes()

    diff --git a/docs/CanTheUser.html b/docs/CanTheUser.html index 6fceaaa3..c348718b 100644 --- a/docs/CanTheUser.html +++ b/docs/CanTheUser.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L16"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L16"> CanTheUser
  • A reusable, intuitive library for determining wether or not the current use can create, read, edit, or delete objects as well as determining if the user has access - or update permissions on specific fields. This class name was chosen to facilitate easy-to-understand and read code. Whenever you need to check FLS or CRUD access - your code reads like this if(CanTheUser.read(new account())){} making the calling and use of this code easy and intuitive. Taken - from Codefriar code. + or update permissions on specific fields.
    This class name was chosen to facilitate easy-to-understand and read code. Whenever you need to check FLS or CRUD + access your code reads like this if(CanTheUser.read(new account())){} making the calling and use of this code easy and intuitive. + Taken from Codefriar code.
    Signature
    @@ -353,7 +353,14 @@

    https://github.com/codefriar/CanTheUser, https://github.com/trailheadapps/apex-recipes

    -
    Codefriar
    2021 +
    Author
    +
    + Codefriar +
    +
    Since
    +
    +
  • 2021
  • +

    CanTheUser Properties

    @@ -371,7 +378,7 @@

    CanTheUser Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L18"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L18"> accessibleFieldsByObject @@ -391,7 +398,7 @@

    CanTheUser Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L47"> memoizedFLSResults @@ -412,7 +419,7 @@

    CanTheUser Properties

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L20"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L20"> updatableFieldsByObject @@ -434,6 +441,7 @@

    Enums

    Name Signature Values + Description @@ -442,7 +450,7 @@

    Enums

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L22"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L25"> CrudType @@ -450,6 +458,8 @@

    Enums

    public enum CrudType
    CREATEABLE, READABLE, EDITABLE, DELETABLE, UPSERTABLE + + The major database actions are insert, read, update, delete, and upsert. Undelete is not considered here. @@ -458,7 +468,7 @@

    Enums

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L30"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L36"> FLSType @@ -466,6 +476,8 @@

    Enums

    public enum FLSType
    ACCESSIBLE, UPDATABLE + + If a field is not accessible (invisible) it cannot be updatable. If it is accessible, it may or may not be updatable.
    @@ -506,16 +518,17 @@

    CanTheUser Methods

  • crud (obj, permission) -
    - This class' name was chosen to facilitate easy-to-understand and read code. Whenever you need to check FLS or CRUD access your code reads like this - if(CanTheUser.read(new account())){} making the calling and use of this code easy and intuitive. -
    +
    Main crud method checks an object for a specific permission
  • crud (objs, permission) + +
    MaSecondaryin crud method checks a "list" of SObjects for a specific permission
  • crud (objectName, permission) + +
    MaSecondaryin crud method checks a "list" of SObjects for a specific permission
  • destroy (obj) @@ -600,7 +613,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L293"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L307"> bulkFLSAccessible(obj, fields)

    @@ -628,7 +641,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L324"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L338"> bulkFLSUpdatable(obj, fields)

    @@ -656,7 +669,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L353"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L367"> calculateFLS(objType)

    @@ -680,7 +693,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L104"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L118"> create(obj)

    @@ -706,7 +719,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L115"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L129"> create(objs)

    @@ -730,7 +743,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L127"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L141"> create(objName)

    @@ -755,17 +768,25 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L60"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L58"> crud(obj, permission)

    -
    - This class' name was chosen to facilitate easy-to-understand and read code. Whenever you need to check FLS or CRUD access your code reads like this - if(CanTheUser.read(new account())){} making the calling and use of this code easy and intuitive. -
    +
    Main crud method checks an object for a specific permission
    Signature
    -
    @testVisible
    +
    private static Boolean crud(SObject obj, CrudType permission)
    +
    Parameters
    +
    obj
    +
    Type: SObject
    +
    the object type to check
    +
    permission
    +
    Type: CrudType
    +
    create, read, update or delete
    +
    Returns
    +
    Boolean Is the action possible?
    +
    Example
    +
     System.debug(CanTheUser.crud(new Account(), CanTheUser.CrudType.READABLE));

    @@ -774,13 +795,25 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L85"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L91"> crud(objs, permission)

    +
    MaSecondaryin crud method checks a "list" of SObjects for a specific permission
    Signature
    -
    @testVisible
    +
    private static Boolean crud(List<SObject> objs, CrudType permission)
    +
    Parameters
    +
    objs
    +
    Type: List<SObject>
    +
    a list of SObjects, but we only check the first one
    +
    permission
    +
    Type: CrudType
    +
    create, read, update or delete
    +
    Returns
    +
    Boolean Is the action possible?
    +
    Example
    +
     System.debug(CanTheUser.crud(new Account(), CanTheUser.CrudType.READABLE));

    @@ -789,13 +822,25 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L90"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L104"> crud(objectName, permission)

    +
    MaSecondaryin crud method checks a "list" of SObjects for a specific permission
    Signature
    -
    @testVisible
    +
    private static Boolean crud(String objectName, CrudType permission)
    +
    Parameters
    +
    objectName
    +
    Type: String
    +
    the object name; we will find the type from this
    +
    permission
    +
    Type: CrudType
    +
    create, read, update or delete
    +
    Returns
    +
    Boolean Is the action possible?
    +
    Example
    +
     System.debug(CanTheUser.crud(new Account(), CanTheUser.CrudType.READABLE));

    @@ -804,7 +849,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L244"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L258"> destroy(obj)

    @@ -830,7 +875,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L254"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L268"> destroy(objs)

    @@ -853,7 +898,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L266"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L280"> destroy(objName)

    @@ -878,7 +923,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L175"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L189"> edit(obj)

    @@ -904,7 +949,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L185"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L199"> edit(objs)

    @@ -927,7 +972,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L197"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L211"> edit(objName)

    @@ -952,7 +997,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L280"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L294"> flsAccessible(obj, field)

    @@ -985,7 +1030,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L311"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L325"> flsUpdatable(obj, field)

    @@ -1018,7 +1063,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L340"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L354"> getFLSForFieldOnObject(obj, field, checkType)

    @@ -1048,7 +1093,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L139"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L153"> read(obj)

    @@ -1074,7 +1119,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L151"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L165"> read(objs)

    @@ -1099,7 +1144,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L163"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L177"> read(objName)

    @@ -1124,7 +1169,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L209"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L223"> ups(obj)

    @@ -1150,7 +1195,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L220"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L234"> ups(objs)

    @@ -1173,7 +1218,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L232"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/CanTheUser.cls#L246"> ups(objName)

    diff --git a/docs/CanTheUserTest.html b/docs/CanTheUserTest.html index f19e2698..874468d5 100644 --- a/docs/CanTheUserTest.html +++ b/docs/CanTheUserTest.html @@ -177,7 +177,7 @@ onclick="goToLocation('ActionPlansQueueableBuilderTest.html');"> ActionPlansQueueableBuilderTest
  • -
  • rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L16"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L16"> CanTheUserTest @@ -349,7 +349,14 @@

    https://github.com/trailheadapps/apex-recipes, CanTheUser -
    Codefriar
    2021 +
    Author
    +
    + Codefriar +
    +
    Since
    +
    +
  • 2021
  • +

    CanTheUserTest Methods

    @@ -384,6 +391,10 @@

    CanTheUserTest Methods

  • generateAccounts () + +
    + These tests rely on the assumption that standard FLS/CRUD have not been modified by the user, and use the Account Object for verification of the Can Logic. +
  • getBulkFLSAccessibleWithAccountPositive () @@ -415,7 +426,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L29"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L34"> canCrudAccountCreatePositive()

    @@ -430,7 +441,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L84"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L89"> canCrudAccountDeletePositive()

    @@ -445,7 +456,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L51"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L56"> canCrudAccountReadPositive()

    @@ -460,7 +471,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L64"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L69"> canCrudAccountUpdatePositive()

    @@ -475,7 +486,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L41"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L46"> canCrudCreateAccountPositive()

    @@ -490,7 +501,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L91"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L96"> canCrudDestroyAccountPositive()

    @@ -505,7 +516,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L70"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L75"> canCrudEditAccountPositive()

    @@ -520,7 +531,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L57"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L62"> canCrudReadAccountPositive()

    @@ -535,7 +546,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L77"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L82"> canCrudUpsertAccountPositive()

    @@ -550,13 +561,18 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L20"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L25"> generateAccounts()

    +
    + These tests rely on the assumption that standard FLS/CRUD have not been modified by the user, and use the Account Object for verification of the Can Logic. +
    Signature
    private static List<Account> generateAccounts()
    +
    Returns
    +
    List<Account> Sample created Accounts (currently hard-coded to 2)

    @@ -565,7 +581,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L113"> getBulkFLSAccessibleWithAccountPositive()

    @@ -580,7 +596,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L122"> getBulkFLSAccessibleWithAccountPositiveWithNegativeResults()

    @@ -595,7 +611,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L131"> getBulkFLSUpdatableWithAccountPositive()

    @@ -610,7 +626,7 @@

    + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L140"> getBulkFLSUpdatableWithAccountPositiveWithNegativeResults()

    @@ -625,7 +641,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L103"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L108"> getFLSofAccountIDNegative()

    @@ -640,7 +656,7 @@

    rel="noopener noreferrer" title="Go to source" class="source-link" - href="https://github.com/SalesforceLabs/ActionPlansV4/tree/main/sfdx-source/LabsActionPlans/main/default/tests/CanTheUserTest.cls#L98"> + href="https://github.com/SalesforceLabs/ActionPlansV4/blob/main/sfdx-source/LabsActionPlans/main/default/classes/tests/CanTheUserTest.cls#L103"> getFLSofAccountNamePositive()

    diff --git a/docs/assets/highlight.js b/docs/assets/highlight.js index 9491f128..c65744b2 100644 --- a/docs/assets/highlight.js +++ b/docs/assets/highlight.js @@ -1,5 +1,5 @@ /*! - Highlight.js v11.6.0 (git: bed790f3f3) + Highlight.js v11.7.0 (git: 82688fad18) (c) 2006-2022 undefined and other contributors License: BSD-3-Clause */ @@ -299,7 +299,7 @@ e["before:highlightBlock"](Object.assign({block:n.el},n)) }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)} }),n.debugMode=()=>{s=!1},n.safeMode=()=>{s=!0 -},n.versionString="11.6.0",n.regex={concat:m,lookahead:g,either:p,optional:b, +},n.versionString="11.7.0",n.regex={concat:m,lookahead:g,either:p,optional:b, anyNumberOfTimes:u};for(const n in T)"object"==typeof T[n]&&e.exports(T[n]) ;return Object.assign(n,T),n})({});const te=e=>({IMPORTANT:{scope:"meta", begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ @@ -326,8 +326,9 @@ end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ const t=e[0].length+e.index,a=e.input[t] ;if("<"===a||","===a)return void n.ignoreMatch();let i ;">"===a&&(((e,{after:n})=>{const t="",contains:[{ @@ -402,7 +403,7 @@ begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$\(\(/, +contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/, end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 }),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, @@ -602,7 +603,7 @@ contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+ue("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"], +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], literal:["false","true","null"], type:["char","boolean","long","float","int","byte","short","double"], built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ @@ -759,9 +760,9 @@ begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},i={ -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ -begin:/_(?!_)/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ @@ -957,19 +958,20 @@ match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ -"variable.constant":["__FILE__","__LINE__"], +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], "variable.language":["self","super"], -keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"], -built_in:["proc","lambda"],literal:["true","false","nil"]},s={ -className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">" -},l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{ -contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={ -className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string", -contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/, -end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{ -begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/, -end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ +begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] +}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, +end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ @@ -984,9 +986,11 @@ begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ -match:[/class\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"}, -keywords:r},{relevance:0,match:[i,/\.new[ (]/],scope:{1:"title.class"}},{ -relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ begin:e.IDENT_RE+"::"},{className:"symbol", begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", diff --git a/docs/assets/search-idx.js b/docs/assets/search-idx.js index b4c93989..6d54f3da 100644 --- a/docs/assets/search-idx.js +++ b/docs/assets/search-idx.js @@ -2,196 +2,206 @@ export default [ { "title": "Home", "fileName": "index.html", - "text": "Home Action Plans Changelog Action Plans Installation and Setup Please follow installation instructions, shown on the Installation page AppExchange AppExchange Listing Post-intall extras Scratch Org Developer Edition / Sandbox Apex Code Documentation About Action Plans Action Plans helps your organization encapsulate best practices into easily sharable, reusable task templates. You can create Action Plans for the following objects: Accounts Contacts Leads Opportunities Campaigns Contracts Cases Person Accounts Custom Objects Getting Help Action Plans is unsupported. For community assistance with Action Plans, please visit Salesforce Trailblazer Community . To submit ideas or issues, please visit Action Plans on Github . Community Action Plans is open source software. We welcome your issue reports, ideas, documentation, code tweaks and all other participation. Learn more . Features: Export and share your Action Plan Templates with other orgs. Import Action Plan Templates. Supports Task reminder times. Action Plans Settings controls behavior around Chatter Notifications, actions when a Lead is converted, and default Task assignment behavior Invocable Apex allows automatic Action Plan creation from a Template in Process Builder and Flow Post Install Configuration Getting started is easy. For each object, you need to add a button to the list view, add a button to the detail page. For Accounts, follow these steps:\" Update Action Plans Custom Settings Change these setting by editing Action Plan Settings, and updating values at either the organization level, profile levels, or user levels. Navigate to Setup > Develop > Custom Settings. Click on 'Manage' next to Action Plans Settings . Click the 'New' button near 'Default Organizational Level Value'. Check the values that you want to enable. Enable Chatter Post places a post in the related record's Chatter Feed(if Chatter is enabled for that object). If unchecked, Action Plans does not create a Feed Post. Unassigned Task Defaults to Record Owner ensures that Action Plan Template tasks with a blank 'Assigned To' field go to the related record's owner. If unchecked, tasks with a blank 'Assigned To' field are assigned to the running user. Tasks can be assigned to specific people on Action Plan Templates, which overrides this setting. Default Object on Lead Conversion specifies that if an Action Plan is related to a Lead, whether the Action Plan should be moved to the converted Account, Contact, or Opportunity when the Lead is converted. The default is Contact. Action Plans Business Hours ID and Use Business Hours are reserved for future functionality. Weekends: Custom Metadata Modify Custom Metadata Weekend Day to indicate which days of the week are the weekend and how many days to move a task forward or backwards to move it to the end of the previous week or the start of the next week. This allows you to work with a different weekend, or to avoid assigning any task to be due on any specific day of the week.All weekdays should have 0 in both numeric fields. Update Your Page & Search Layout Configurations Create Action Plans Buttons For each object, you need to add a button to the list view, For Accounts, follow these steps: Navigate to Setup > Object Manager > Account > Search Layouts for Salesforce Classic Click on \"Edit\" from the menu near \"List View.\" Move the \"Create Account Action Plans\" button from \"Available Buttons\" to \"Selected Buttons.\" Click \"Save.\" Navigate to Setup > Object Manager > Account > Page Layouts. Note: the package includes a default \"Action Plan Layout\" for your reference. You do not need to use it. Click on \"Edit\" near one of your standard Account Page Layouts. Add \"Action Plans\" related list to the page. Edit the properties of the related list by clicking the configuration button above it. Expand \"Buttons\" section, clear the \"New\" checkbox and move \"Create Account Action Plan\" to the Selected buttons. Update the fields in the related list to meet your needs. Recommended fields include Start Date, Action Plan Status, Action Plan Template, Plan Start Date. Click \"Save.\" Repeat these steps for the other standard objects Action Plans supports: Contacts, Leads, Opportunities, etc. Delete Action Plans Buttons Follow this steps for Action Plan Object: Navigate to Setup > Object Manager > Action Plan > Search Layouts. Click on \"Edit\" near \"List View.\" Move the \"Delete Action Plans\" button from \"Available Buttons\" to \"Selected Buttons.\" Click \"Save.\" Task Layout Optionally, add the \"Action Plan Task\" field to your Task page layout, but it should be Read-Only , as clearing this field will break the ability to track Action Plan progress. Security Update Your Org-Wide Default Sharing Settings Action Plans includes two shareable objects: Action Plan and Action Plan Template . You may configure your sharing settings in whatever way works for your organization. If you want anyone to be able to create and see plans and their templates, use Public Read/Write for Action Plan and Action Plan Template. If you want anyone to be able to see Action Plans and Templates without being able to change them, select \"Public Read Only.\" If your Org-Wide Default sharing settings are set to Private for Action Plan or Action Plan Template, you may need to implement custom automation to share Action Plan records with the appropriate people. You may do this via Apex sharing, or you may use other automation, to assign ownership of the Action Plan itself to the related record owner or any desired user. To use Action Plans, most users require access only to Tasks . They can be assigned Tasks without knowing that these Tasks are part of an Action Plan. Any changes they make to a Task's Status will be reflected in the related Action Plan Task Template record automatically. No Permission Set is required. Use Permission Sets For Security Assign the appropriate Permission Set(s) to each user who will need to use Action Plans: Action Plans Admin: Full permissions for Action Plans, Action Plan Templates, AP Tasks and APT Task Templates. Action Plans Template Creator: Full permissions for Action Plan Templates and AP Template Tasks. No Action Plan access. Action Plans Creator: Read, Create, Edit, Delete for Action Plans and AP Tasks. Read-only for Action Plan Templates and APT Task Templates. Action Plans Import/Export: Access to export and import Action Plan Template records. View the appropriate button for export and tab for import. Action Plans User: Read-only for Action Plans and AP Tasks. Uses for each Permission Set: Some users may require visibility into the Action Plans related to those Tasks. These users need the Action Plans User  Permission Set. It gives Read-only access to Action Plan. Some users may need to create Action Plans from Templates but not edit the templates themselves. The Action Plans Creator  Permission Set gives read-only access to Action Plan Templates, and Read, Create, Edit, and Delete access to Action Plans. Users who can create and edit Action Plan Templates require the Action Plans Template Creator  Permission Set. This includes permission to Read, Create, Edit, and Delete all Action Plan Templates only. It does not include any Action Plan or Task permissions. If these users require Action Plan access, other Permission Sets should be used as well. A custom permission allows exporting of Action Plan Templates. Intended as an add-on for Action Plans Template Creator , the Action Plans Import/Export permission set allows the viewing of the Export button on Template detail pages and to the Import tab. The custom permission Action Plan Template Export allows exporting of Action Plan Templates and associated tasks. Use this permission with care, as it is a potential security hole for your org's proprietary templates. This is a great way to move templates from a Sandbox to Production org. Action Plans Admin  includes Modify All permissions for all four Action Plan objects(Action Plan, Action Plan Task Template, Action Plan Template, and Action Plan Template Task Template). The custom permission allows exporting Action Plan Templates. Note: The Apex used in Flows or via triggers does not require special permissions to run. Using Action Plans with Custom Objects To Start Using an Object with Action Plans Create the object and be sure to check \"Track Activities\" for the object attrributes Create a lookup field from Action Plan to the object. Name the field the same as the object name. The field label can be anything. As an example, if you have a custom object named MyObject__c , you must name the field on Action Plan MyObject__c Add the field to the Related Objects fieldset on Action Plan. The related object will now be available for selection when creating a new Action Plan and relating it to an object. Add the following code to the object trigger in before delete and after undelete contexts(removing the LabsActionPlans namespace if you're not using the managed package:LabsActionPlans.ActionPlansTriggerHandlers.actionPlansSObjectTriggerHandler( 'Custom_Object__c' ); Adding a New Custom Object Action Plan button to the Action Plan object While Action Plans already overrides the New Action Plan action, the New button will show a new Action Plan screen, but will not allow adding an existing template.(Perhaps this will be in a future release... safe harbor.) Create a custom button with the following format on the Action Plan object and add it to the related list on the custom object page layout: Navigate to Setup > Object Manager > Action Plan > Buttons, Links, and Actions > New Button or Link Give it a label and name, such as \"New MyObject Action Plan\" Display Type is List Button. Uncheck the list checkbox. Use the following format for the button(removing the LabsActionPlans namespace if you're not using the managed package):{!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType=\"CustomObject__c\", refId=CustomObject__c.Id] )} Create Action Plans for multiple Custom Object records Just as there is a button for Account list views to create multiple Action Plans, you can do the same for your custom object. Create a Visualforce page with the following code: Then create a list view button for that object and add it to your list views. To Stop Using an Object with Action Plans If you want, for example, not to allow relating Action Plans to Contracts, remove the Contract field from the Action Plan Related Objects fieldset.There is no need to delete the field from the Action Plan object. Create a Template Now you're ready to create your first template. Navigate to the Action Plans Templates tab. Click on the \"New Action Plan Template\" button. The template screen looks like this: Name - Template Name. Description - An explanation of how the template should be used. Skip Weekends - Allows you to automatically reschedule a task that would fall on a weekend to either the day before or day after the weekend. When checked, a picklist appears, allowing you to select before or after the weekend. Action - Click \"X\" to eliminate a step in a template. Subject - What the task is to do. Task Dependency - The dependent task will only be created once the controlling task is completed. Days After- This value determines the due date of the task. For tasks with no dependency, the task's due date will be offset from the plan start date. For tasks with a dependency, the due date will be offset from the expected due date of the task on which it depends. Assigned To - Looks up to user. Leave blank if you want to assign the task dynamically.When assigning dynamically, the default behavior will be to assign the task to the running user. You can also have the system assign it to the record owner by changing your Action Plan Settings. See \"Post Install Configuration\" guide above. Category - What type of activity. Priority - Taken from Task priorities and Record Type(if applicable). Email - Send a standard New Task email when checked. For Tasks depending on others, the email will be sent when the task is created. Reminder - This check box will define the default behaviour for reminders when applying the template to create an Action plan . If it's left unchecked, in the Action Plan Creation page the reminders will be initially disabled If it's checked the reminders will be available. User Reminder settings: Go Personal Setup > My Personal Information > Reminders, if the option \"By default, set reminder on Tasks to:\" is checked then the selected time will be the default option for task template reminders. User setting for Activity Object : Go App Setup> Feature Settings > Sales > Activity Settings, If \"Enable Activity Reminders\" is not checked, then reminders column will not be displayed in the Action Plan creation page. Comments - Comments supporting a task. Add New Task - Adds an additional row to the tasks grid. Save - Saves the template. Task Record Types If your org uses Task Record Types, you must specify which Record Type to use for all Tasks from each Action Plan and Template record. This will affect the Status values available for each related Action Plan Task. This cannot be changed once an Action Plan or Template is created. Only one record type may be specified for all the Tasks on that Action Plan or Template. Create Action Plans for Several Accounts Navigate to an Accounts list view. Select the Accounts for which you want to create Action Plans. Click on the \"Create Account Action Plans\" button. Select the template you want to use by typing the name on the lookup and clicking on it. Enter the information specific to this plan. Note that the Accounts you selected earlier are visible. Save the Action Plan. Note: Action Plan creation is handled by a queueable(asynchronous) process. It can take a couple of minutes to be able to view all created records. Verify the Action Plan and the tasks. Complete the first task on the Action Plan. Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete. Task notifications for Flow-created Action Plans User Settings To receive Task notifications if Send Email is selected on an Action Plan Task, ensure that users have been allowed to control receipt of Task notification emails(this is active by default), and that they have allowed email notifications to be sent(this is also enabled by default). See Salesforce H&T for more information. Org Setting The Send Email field on Action Plan Task must be checked to send a email notifications, and the setting Allow Flow to send delegated task notifications on records created through Apex must also be enabled. Go to Settings > Feature Settings > Sales > Activity Settings to check that box and allow email notifications to be sent via Flow-created Action Plans. Action Plan Tasks If the user has enabled task notification, then those will be sent when an Action Plan Task is created. If the Action Plan Task is updated to a new owner, and if the Send Email box is NOT checked, the user may still receive a task notification if that is in their personal settings. If the box is checked, assuming that notifications are enabled for that user, the email will be sent. Queues Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the createdTasks(which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page. Automate Action Plan Creation Flow Action Plans includes an Invocable Apex class that can be included in a Flow. The Record ID of the triggering record is required, as is the Id OR the Name of the desired template.Days from trigger to start Action Plan is optional(and defaults to 0). The first task will be due the number of days(specified on the template) from the start date. This date may fall on a weekend, though task due dates can be moved to avoid weekends if set on the template. The Invocable Apex class returns the Salesforce IDs of all the created Action Plan Tasks, which can be used in the next Flow steps. (Optional) Sample Action Plan Template for Account onboarding Run the following: sfdx force:apex:execute -f ./data/sample-data.apex To use this Template with the included Flow, see the Create Action Plan From Template Apex Action in the New Customer Onboarding Activities Flow Create an Account and set Type to any value that starts with 'Customer' Process Builder It is recommended NOT to check the Recursion box when creating a Process Builder to work with Action Plans. It is also recommended NOT to use Process Builder at all! Apex To call the invocable Apex from a Trigger or Apex class, adapt the following sample code: UNMANAGED CODE String apTemplateName; ActionPlanTemplate__c apTemplate; List toInsert... // can use any object, such as Account, or the generic SObject class List requests = new List(); for(SObject a : toInsert){ ActionPlanCreateInvocable.CreateActionPlanRequest req = new ActionPlanCreateInvocable.CreateActionPlanRequest(); req.templateNameOrID = apTemplate.Id; req.relatedRecordID = a.Id; req.daysToActionPlanStart = 0; req.actionPlanName = a.Name + ' - Onboarding'; requests.add(req); } List resultIDs = ActionPlanCreateInvocable.makeActionPlanFromTemplate(requests); MANAGED PACKAGE String apTemplateName; LabsActionPlans__ActionPlanTemplate__c apTemplate; List toInsert... // can use any object, such as Account, or the generic SObject class List requests = new List(); for(SObject a : toInsert){ LabsActionPlans.ActionPlanCreateInvocable.CreateActionPlanRequest req = new LabsActionPlans.ActionPlanCreateInvocable.CreateActionPlanRequest(); req.templateNameOrID = apTemplateName; req.relatedRecordID = a.Id; req.daysToActionPlanStart = 1; req.actionPlanName = a.Name + ' - Onboarding'; requests.add(req); } List resultIDs = LabsActionPlans.ActionPlanCreateInvocable.makeActionPlanFromTemplate(requests); ActionPlanCreateInvocable.CreateActionPlanRequest class Variables: String templateNameOrID (required) Name is not unique, so ID is preferred Id relatedRecordID (required) Must have a relationship field named the related record object name from Action Plan object Integer daysToActionPlanStart (not required) Defaults to 0, the day the plan is created String actionPlanName (not required) Give the Action Plan a custom name. If not specified, defaults to {Template Name} - {Parent Record Name}. Share Your Templates and Discover Best Practices using Template Export and Template Import Action Plans supports the sharing and discovery of best practices using Template Export and Template Import. How to Share Your Template Export is simple. Navigate to the Template you wish to export. Click on the \"Export\" button. Export creates a simple XML file containing template header and task information. It also includes information about who created the template.Note: It does not include user information or sensitive data about what objects you might use this template with. If you are using Lightning Experience, the exported file is in your Files tab, in your private files library. If you are still using Salesforce Classic, it is in your Documents tab, in your private documents folder. Sharing the file is easy. Email the file to whomever you want to share it with. Do you want to share it with a broader audience? Email the file to Salesforce Labs at labs@salesforce.com . Best Practices: How to Import Import is also simple. Navigate to the \"Import Template\" tab. Select the file you want to import using \"Browse\" and once you've found it click on \"Import Template.\" (Optional) Sample Action Plan Template Import This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download New Customer Onboarding or Trade Show Follow Up from GitHub, or you can find it in this SFDX project in the data folder." + "text": "Home Action Plans Changelog Action Plans Installation and Setup Please follow installation instructions, shown on the Installation page AppExchange - Recommended AppExchange Listing Post-intall extras Scratch Org Developer Edition / Sandbox Apex Code Documentation About Action Plans Action Plans helps your organization encapsulate best practices into easily sharable, reusable task templates. You can create Action Plans for the following objects: Accounts Contacts Leads Opportunities Campaigns Contracts Cases Person Accounts Custom Objects Getting Help Action Plans is unsupported. For community assistance with Action Plans, please visit Salesforce Trailblazer Community . To submit ideas or issues, please visit Action Plans on Github . Community Action Plans is open source software. We welcome your issue reports, ideas, documentation, code tweaks and all other participation. Learn more . Features: Export and share your Action Plan Templates with other orgs. Import Action Plan Templates. Supports Task reminder times. Action Plans Settings controls behavior around Chatter Notifications, actions when a Lead is converted, and default Task assignment behavior Invocable Apex allows automatic Action Plan creation from a Template in Process Builder and Flow Post Install Configuration Getting started is easy. For each object, you need to add a button to the list view, add a button to the detail page. For Accounts, follow these steps:\" Update Action Plans Custom Settings Change these setting by editing Action Plan Settings, and updating values at either the organization level, profile levels, or user levels. Navigate to Setup > Develop > Custom Settings. Click on 'Manage' next to Action Plans Settings . Click the 'New' button near 'Default Organizational Level Value'. Check the values that you want to enable. Enable Chatter Post places a post in the related record's Chatter Feed(if Chatter is enabled for that object). If unchecked, Action Plans does not create a Feed Post. Unassigned Task Defaults to Record Owner ensures that Action Plan Template tasks with a blank 'Assigned To' field go to the related record's owner. If unchecked, tasks with a blank 'Assigned To' field are assigned to the running user. Tasks can be assigned to specific people on Action Plan Templates, which overrides this setting. Default Object on Lead Conversion specifies that if an Action Plan is related to a Lead, whether the Action Plan should be moved to the converted Account, Contact, or Opportunity when the Lead is converted. The default is Contact. Action Plans Business Hours ID and Use Business Hours are reserved for future functionality. Weekends: Custom Metadata Modify Custom Metadata Weekend Day to indicate which days of the week are the weekend and how many days to move a task forward or backwards to move it to the end of the previous week or the start of the next week. This allows you to work with a different weekend, or to avoid assigning any task to be due on any specific day of the week.All weekdays should have 0 in both numeric fields. Update Your Page & Search Layout Configurations Create Action Plans Buttons For each object, you need to add a button to the list view, For Accounts, follow these steps: Navigate to Setup > Object Manager > Account > Search Layouts for Salesforce Classic Click on \"Edit\" from the menu near \"List View.\" Move the \"Create Account Action Plans\" button from \"Available Buttons\" to \"Selected Buttons.\" Click \"Save.\" Navigate to Setup > Object Manager > Account > Page Layouts. Note: the package includes a default \"Action Plan Layout\" for your reference. You do not need to use it. Click on \"Edit\" near one of your standard Account Page Layouts. Add \"Action Plans\" related list to the page. Edit the properties of the related list by clicking the configuration button above it. Expand \"Buttons\" section, clear the \"New\" checkbox and move \"Create Account Action Plan\" to the Selected buttons. Update the fields in the related list to meet your needs. Recommended fields include Start Date, Action Plan Status, Action Plan Template, Plan Start Date. Click \"Save.\" Repeat these steps for the other standard objects Action Plans supports: Contacts, Leads, Opportunities, etc. Delete Action Plans Buttons Follow this steps for Action Plan Object: Navigate to Setup > Object Manager > Action Plan > Search Layouts. Click on \"Edit\" near \"List View.\" Move the \"Delete Action Plans\" button from \"Available Buttons\" to \"Selected Buttons.\" Click \"Save.\" Task Layout Optionally, add the \"Action Plan Task\" field to your Task page layout, but it should be Read-Only , as clearing this field will break the ability to track Action Plan progress. Security Update Your Org-Wide Default Sharing Settings Action Plans includes two shareable objects: Action Plan and Action Plan Template . You may configure your sharing settings in whatever way works for your organization. If you want anyone to be able to create and see plans and their templates, use Public Read/Write for Action Plan and Action Plan Template. If you want anyone to be able to see Action Plans and Templates without being able to change them, select \"Public Read Only.\" If your Org-Wide Default sharing settings are set to Private for Action Plan or Action Plan Template, you may need to implement custom automation to share Action Plan records with the appropriate people. You may do this via Apex sharing, or you may use other automation, to assign ownership of the Action Plan itself to the related record owner or any desired user. To use Action Plans, most users require access only to Tasks . They can be assigned Tasks without knowing that these Tasks are part of an Action Plan. Any changes they make to a Task's Status will be reflected in the related Action Plan Task Template record automatically. No Permission Set is required. Use Permission Sets For Security Assign the appropriate Permission Set(s) to each user who will need to use Action Plans: Action Plans Admin: Full permissions for Action Plans, Action Plan Templates, AP Tasks and APT Task Templates. Action Plans Template Creator: Full permissions for Action Plan Templates and AP Template Tasks. No Action Plan access. Action Plans Creator: Read, Create, Edit, Delete for Action Plans and AP Tasks. Read-only for Action Plan Templates and APT Task Templates. Action Plans Import/Export: Access to export and import Action Plan Template records. View the appropriate button for export and tab for import. Action Plans User: Read-only for Action Plans and AP Tasks. Edit permission for Tasks should be provided via the user's profile or other permission sets. Uses for each Permission Set: Some users may require visibility into the Action Plans related to those Tasks. These users need the Action Plans User  Permission Set. It gives Read-only access to Action Plan. Some users may need to create Action Plans from Templates but not edit the templates themselves. The Action Plans Creator  Permission Set gives read-only access to Action Plan Templates, and Read, Create, Edit, and Delete access to Action Plans. Users who can create and edit Action Plan Templates require the Action Plans Template Creator  Permission Set. This includes permission to Read, Create, Edit, and Delete all Action Plan Templates only. It does not include any Action Plan or Task permissions. If these users require Action Plan access, other Permission Sets should be used as well. A custom permission allows exporting of Action Plan Templates. Intended as an add-on for Action Plans Template Creator , the Action Plans Import/Export permission set allows the viewing of the Export button on Template detail pages and to the Import tab. The custom permission Action Plan Template Export allows exporting of Action Plan Templates and associated tasks. Use this permission with care, as it is a potential security hole for your org's proprietary templates. This is a great way to move templates from a Sandbox to Production org. Action Plans Admin  includes Modify All permissions for all four Action Plan objects(Action Plan, Action Plan Task Template, Action Plan Template, and Action Plan Template Task Template). The custom permission allows exporting Action Plan Templates. Note: The Apex used in Flows or via triggers does not require special permissions to run. Using Action Plans with Custom Objects Start Using an Object with Action Plans Create the object and be sure to check \"Track Activities\" for the object attrributes Create a lookup field from Action Plan to the object. Name the field the same as the object name. The field label can be anything. As an example, if you have a custom object named MyObject__c , you must name the field on Action Plan MyObject__c Add the field to the Related Objects fieldset on Action Plan. The related object will now be available for selection when creating a new Action Plan and relating it to an object. Add the following code to the object trigger in before delete and after undelete contexts(removing the LabsActionPlans namespace if you're not using the managed package):LabsActionPlans.ActionPlansTriggerHandlers.actionPlansSObjectTriggerHandler( 'CustomObject__c' ); Test Code for Additional Objects Don't forget to write a test class to cover the custom object trigger. If you're just going for coverage(not a best-practice!) just make a test method inserting and then deleting a record.Unfortunately, the code in this package does not lend itself to easy creation of an Action Plan for a custom object... yet. Adding a Create Custom Object Action Plan button to the Action Plan object While Action Plans already overrides the New Action Plan action, the New button will show a new Action Plan screen, but will not allow adding an existing template.(Perhaps this will be in a future release... safe harbor.) Create a custom button with the following format on the Action Plan object and add it to the related list on the custom object page layout: Navigate to Setup > Object Manager > Action Plan > Buttons, Links, and Actions > New Button or Link Give it a label and name, such as \"New MyObject Action Plan\" Display Type is List Button. Uncheck the list checkbox. Use the following format for the button(removing the LabsActionPlans__ namespace if you're not using the managed package):{!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType=\"CustomObject__c\", refId=CustomObject__c.Id] )} Be sure to remove the standard New button on the Action Plans related list and use this button instead. Create Action Plans for multiple Custom Object records Just as there is a button for Account list views to create multiple Action Plans, you can do the same for your custom object. Create a Visualforce page with the following code: Then create a list view button for that object and add it to your list views. To Stop Using an Object with Action Plans If you want, for example, not to allow relating Action Plans to Contracts, remove the Contract field from the Action Plan Related Objects fieldset.There is no need to delete the field from the Action Plan object. Create a Template Now you're ready to create your first template. Navigate to the Action Plans Templates tab. Click on the \"New Action Plan Template\" button. The template screen looks like this: Name - Template Name. Description - An explanation of how the template should be used. Skip Weekends - Allows you to automatically reschedule a task that would fall on a weekend to either the day before or day after the weekend. When checked, a picklist appears, allowing you to select before or after the weekend. Action - Click \"X\" to eliminate a step in a template. Subject - What the task is to do. Task Dependency - The dependent task will only be created once the controlling task is completed. Days After- This value determines the due date of the task. For tasks with no dependency, the task's due date will be offset from the plan start date. For tasks with a dependency, the due date will be offset from the expected due date of the task on which it depends. Assigned To - Looks up to user. Leave blank if you want to assign the task dynamically.When assigning dynamically, the default behavior will be to assign the task to the running user. You can also have the system assign it to the record owner by changing your Action Plan Settings. See \"Post Install Configuration\" guide above. Category - What type of activity. Priority - Taken from Task priorities and Record Type(if applicable). Email - Send a standard New Task email when checked. For Tasks depending on others, the email will be sent when the task is created. Reminder - This check box will define the default behaviour for reminders when applying the template to create an Action plan . If it's left unchecked, in the Action Plan Creation page the reminders will be initially disabled If it's checked the reminders will be available. User Reminder settings: Go Personal Setup > My Personal Information > Reminders, if the option \"By default, set reminder on Tasks to:\" is checked then the selected time will be the default option for task template reminders. User setting for Activity Object : Go App Setup> Feature Settings > Sales > Activity Settings, If \"Enable Activity Reminders\" is not checked, then reminders column will not be displayed in the Action Plan creation page. Comments - Comments supporting a task. Add New Task - Adds an additional row to the tasks grid. Save - Saves the template. Task Record Types If your org uses Task Record Types, you must specify which Record Type to use for all Tasks from each Action Plan and Template record. This will affect the Status values available for each related Action Plan Task. This cannot be changed once an Action Plan or Template is created. Only one record type may be specified for all the Tasks on that Action Plan or Template. Create Action Plans for Several Accounts Navigate to an Accounts list view. Select the Accounts for which you want to create Action Plans. Click on the \"Create Account Action Plans\" button. Select the template you want to use by typing the name on the lookup and clicking on it. Enter the information specific to this plan. Note that the Accounts you selected earlier are visible. Save the Action Plan. Note: Action Plan creation is handled by a queueable(asynchronous) process. It can take a couple of minutes to be able to view all created records. Verify the Action Plan and the tasks. Complete the first task on the Action Plan. Note that the Action Plan is now in the correct related list and that this Account has one open activity and one closed activity. The third activity in the template is dependent and will be created only when its controlling task is complete.(A Contact related list is shown here, but this applies equally to Accounts.) Task notifications for Flow-created Action Plans User Settings To receive Task notifications if Send Email is selected on an Action Plan Task, ensure that users have been allowed to control receipt of Task notification emails(this is active by default), and that they have allowed email notifications to be sent(this is also enabled by default). See Salesforce H&T for more information. Org Setting The Send Email field on Action Plan Task must be checked to send a email notifications, and the setting Allow Flow to send delegated task notifications on records created through Apex must also be enabled. Go to Settings > Feature Settings > Sales > Activity Settings to check that box and allow email notifications to be sent via Flow-created Action Plans. Action Plan Tasks If the user has enabled task notification, then those will be sent when an Action Plan Task is created. If the Action Plan Task is updated to a new owner, and if the Send Email box is NOT checked, the user may still receive a task notification if that is in their personal settings. If the box is checked, assuming that notifications are enabled for that user, the email will be sent. Queues Action Plan Tasks cannot be assigned to queues, so if the parent record is owned by a queue, each AP Task will be assigned to the running user. Tasks generated from that Action Plan can be assigned to the queue by using a Flow to reassign the Tasks. Because the Invocable Apex returns a list of Action Plan Task IDs, the created Tasks(which have a relationship to the Action Plan tasks) can be updated in that same flow, as they are created synchronously and can be queried immediately. Alternatively, reassign Tasks to Queues any other way you'd like; it will not break Action Plans, and the Queue name will show on the Action Plan detail page. Automate Action Plan Creation Flow Action Plans includes an Invocable Apex class that can be included in a Flow. The Record ID of the triggering record is required, as is the Id OR the Name of the desired template.Days from trigger to start Action Plan is optional(and defaults to 0). The first task will be due the number of days(specified on the template) from the start date. This date may fall on a weekend, though task due dates can be moved to avoid weekends if set on the template. The Invocable Apex class returns the Salesforce IDs of all the created Action Plan Tasks, which can be used in the next Flow steps. (Optional) Sample Action Plan Template for Account onboarding Run the following: sf apex run --file ./data/sample-data.apex To use this Template with the included Flow, see the Create Action Plan From Template Apex Action in the New Customer Onboarding Activities Flow Create an Account and set Type to any value that starts with 'Customer' Process Builder It is recommended NOT to check the Recursion box when creating a Process Builder to work with Action Plans. It is also recommended NOT to use Process Builder at all! Apex To call the invocable Apex from a Trigger or Apex class, adapt the following sample code: UNMANAGED CODE String apTemplateName; ActionPlanTemplate__c apTemplate; List toInsert... // can use any object, such as Account, or the generic SObject class List requests = new List(); for(SObject a : toInsert){ ActionPlanCreateInvocable.CreateActionPlanRequest req = new ActionPlanCreateInvocable.CreateActionPlanRequest(); req.templateNameOrID = apTemplate.Id; req.relatedRecordID = a.Id; req.daysToActionPlanStart = 0; req.actionPlanName = a.Name + ' - Onboarding'; requests.add(req); } List resultIDs = ActionPlanCreateInvocable.makeActionPlanFromTemplate(requests); MANAGED PACKAGE String apTemplateName; LabsActionPlans__ActionPlanTemplate__c apTemplate; List toInsert... // can use any object, such as Account, or the generic SObject class List requests = new List(); for(SObject a : toInsert){ LabsActionPlans.ActionPlanCreateInvocable.CreateActionPlanRequest req = new LabsActionPlans.ActionPlanCreateInvocable.CreateActionPlanRequest(); req.templateNameOrID = apTemplateName; req.relatedRecordID = a.Id; req.daysToActionPlanStart = 1; req.actionPlanName = a.Name + ' - Onboarding'; requests.add(req); } List resultIDs = LabsActionPlans.ActionPlanCreateInvocable.makeActionPlanFromTemplate(requests); ActionPlanCreateInvocable.CreateActionPlanRequest class Variables: String templateNameOrID (required) Name is not unique, so ID is preferred Id relatedRecordID (required) Must have a relationship field named the related record object name from Action Plan object Integer daysToActionPlanStart (not required) Defaults to 0, the day the plan is created String actionPlanName (not required) Give the Action Plan a custom name. If not specified, defaults to {Template Name} - {Parent Record Name}. Share Your Templates and Discover Best Practices using Template Export and Template Import Action Plans supports the sharing and discovery of best practices using Template Export and Template Import. How to Share Your Template Export is simple. Navigate to the Template you wish to export. Click on the \"Export\" button. Export creates a simple XML file containing template header and task information. It also includes information about who created the template.Note: It does not include user information or sensitive data about what objects you might use this template with. If you are using Lightning Experience, the exported file is in your Files tab, in your private files library. If you are still using Salesforce Classic, it is in your Documents tab, in your private documents folder. Sharing the file is easy. Email the file to whomever you want to share it with. Do you want to share it with a broader audience? Email the file to Salesforce Labs at labs@salesforce.com . Best Practices: How to Import Import is also simple. Navigate to the \"Import Template\" tab. Select the file you want to import using \"Browse\" and once you've found it click on \"Import Template.\" (Optional) Sample Action Plan Template Import This repository also includes sample Action Plan Template files, which you can import on the appropriate tab. You may download New Customer Onboarding or Trade Show Follow Up from GitHub, or you can find it in this SFDX project in the data folder." + }, + { + "title": "installation", + "fileName": "installation.html", + "text": "Action Plans Installation Follow these instructions to deploy Action Plans to your org. Deployment Methods AppExchange : The managed package is the best way to go - it will let you upgrade seamlessly as features are added. Installing the App Using a Scratch Org : Fast and easy way to work with this app in a scratch org Installing the app using a Developer Edition Org or a Sandbox : Useful when tackling Trailhead Badges or if you want the app deployed to a more permanent environment than a scratch org. Optional installation instructions : Installing sample Action Plan Template and other metadata AppExchange(Managed Package - RECOMMENDED) Action Plans : This is the best way to install the package, which you can easily upgrade as features are added. Installing the App using a Scratch Org 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 or hub org Install Salesforce CLI Install Visual Studio Code Install the Visual Studio Code Salesforce extensions If you haven't already done so, authorize your hub org and provide it with an alias(myhuborg in the command below): sf org login web --set-default --alias myhuborg Clone this repository: git clone https://github.com/SalesforceLabs/ActionPlansV4 cd ActionPlansV4 From the terminal window, run the installation script npm run scratchorg or . scripts/scratchorg.sh That's it! Installing the App using a Developer Edition Org or your own Sandbox Org Follow this set of instructions if you want to deploy the app to a more permanent environment than a Scratch org.This includes non source-tracked orgs such as a free Developer Edition Org or a Trailhead Playground , or your own Sandbox. Start from a brand-new environment to avoid conflicts with previous work you may have done. Authorize your org and provide it with an alias(myorg in the command below): sf org login web --set-default --alias myorg Clone this repository: git clone https://github.com/SalesforceLabs/ActionPlansV4 cd ActionPlansV4 If you are setting up a Developer Edition: go to Setup , and under My Domain , register a My Domain . Then ensure that enhanced domains are activated. You may need to enable Salesforce Edge network first. To run all the next steps at once, run this command in the terminal: . scripts/unmanaged.sh The org will open. That's it! Or run these steps one by one Run this command to deploy the app. sf deploy metadata --source-dir sfdx-source/LabsActionPlans Assign the Action_Plans_Admin permission set to the admin user. sf org assign permset --name Action_Plans_Admin (Optional) Load sample metadata (see below) sf deploy metadata --source-dir sfdx-source/unmanaged If your org isn't already open, open it now: sf org open --target-org myorg In App Launcher, select the Action Plans app. Optional Installation Instructions This repository contains several files that are relevant if you want to add sample data, or integrate modern web development tooling to your Salesforce development processes or to your continuous integration/continuous deployment processes. Data/Metadata Import(Optional - NOT available if using the AppExchange managed package) This repository creates sample data(Accounts, Contacts, Leads) if you choose to create a scratch org. To prevent this, go to the scratch org definition and change hasSampleData to false . \"hasSampleData\": false, To create a sample Action Plan Template for Account onboarding, run the following: sf apex run --file ./data/sample-data.apex To create a sample Flow that uses the sample template a sample Account layout a sample Task layout a sample report on open Action Plan-related Tasks sf deploy metadata --source-dir sfdx-source/unmanaged You can also create other sample Account and Contact records by running the following command: sf data import tree --plan ./data/action-plan-data-plan.json Data/Metadata Import(Optional - ONLY if using the AppExchange managed package) When FIRST installing the package, it will automatically create a sample Action Plan Template for Account onboarding. If you want to recreate it manually, run the following: sf apex run --file ./data/sample-data-managed.apex To create a sample Flow that uses the sample template a sample Account layout a sample Task layout a sample report on open Action Plan-related Tasks sf deploy metadata --source-dir sfdx-source/unmanagedExtension You can also create other sample Account and Contact records by running the following command: sf data import tree --plan ./data/action-plan-data-plan.json 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. Prettier Apex is an extension that handles Apex-specific formatting and allows the removal of the extra line via the Prettier config file. To use it with Visual Studio Code, follow these instructions from the Salesforce Extensions site. Pre-commit hook This repository also comes with a package.json file that makes it easy to set up a pre-commit hook that enforces code formatting by running Prettier every time you git commit changes. To set up the formatting pre-commit hook: Install Node.js if you haven't already done so Run npm install in your project's root folder to install the Husky and Prettier modules(Note: Mac users should verify that Xcode command line tools are installed before running this command.) Husky will now run Prettier automatically every time you commit changes, with some other updates if you installed the recommended extension ApexDox. You can also run the formatting from the command line using the following command(check out package.json for the full list): npm run prettier" + }, + { + "title": "changelog", + "fileName": "changelog.html", + "text": "Changelog All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning . Unreleased Merged build(deps-dev): bump eslint from 8.34.0 to 8.35.0 #4 feat(tests): update tests(assertions, messages) #3 feat: update API to 57.0 #1 Bump github/codeql-action from 1 to 2 #59 Fix assigned to field #60 Archived flag, dependent task fixes, SOQL optimization #58 Cosmetic rearrangements, apexdoc #55 4.3.0 Queues, Child Objects #53 Version 4.3.0 pt 2 #47 Version 4.3.0 #44 Codecov to v3 #41 4.2.1 - 2022-05-25 Merged Version 4.2.1 #37 Namespace to sample code #36 v4.2.0 #30 Fixed Version 4.2.1(#37) #35 #34 Namespace to sample code(#36) #35 4.2.0 - 2022-04-01 Merged Specify Action Plan Name in Invocable Apex #27 Prettier, JS fixing #26 Highlight.js to 11.5 #25 Add changelog #24 Bump minimist from 1.2.5 to 1.2.6 #23 Upgrading Instructions #22 Add Codecov #21 4.1.0 - 2022-03-17 Merged Release Ready #19 Pre-Release(beta15) #18 Pre-Commit ApexDox cleanup #16 Scripts, Cleanup, New Build #15 4.0.0-9 - 2022-02-23 Merged AP Task AssignedTo field cleanup #14 Managed vs Unmanaged Project Config #13 Permissions Updates #12 Remove tests from ApexDox #10 Security, code coverage, Print page, Spring 22! #7 Code and documentation cleanup #6 PMD-suggested cleanup #5 Rename Template Task #4 Version 4.0.0.7 #3 Code comment cleanup #2 ApexDocs, Project Files, PMD rules #1" }, { "title": "ActionPlanCreateInvocable", "fileName": "ActionPlanCreateInvocable.html", - "text": "ActionPlanCreateInvocable Signature global without sharing class ActionPlanCreateInvocable David Schach 2022 ActionPlanCreateInvocable Methods makeActionPlanFromTemplate(requests) Invocable Apex for creating Action Plans from a template, a parent ID, and days from now to start the task due dates makeActionPlanFromTemplate(requests) Invocable Apex for creating Action Plans from a template, a parent ID, and days from now to start the task due dates Signature @InvocableMethod(label='Create Action Plan From Template' description='Takes a Template Name/Id and Record Id and makes an Action Plan for that record.' category='ActionPlans') global static List makeActionPlanFromTemplate(List requests) Parameters requests Type: List Wrapper of CreateActionPlanRequest Returns List of the created Action Plans See ActionPlanCreateInvocable.CreateActionPlanRequest Example String apTemplateName; ActionPlanTemplate__c apTemplate; List toInsert... // can use any object, such as Account, or the generic SObject class List requests = new List(); for(SObject a : toInsert){ ActionPlanCreateInvocable.CreateActionPlanRequest req = new ActionPlanCreateInvocable.CreateActionPlanRequest(); req.templateNameOrID = apTemplate.Id; req.relatedRecordID = a.Id; req.daysToActionPlanStart = 0; req.actionPlanName = apTemplate.Name + ' - ' + a.Name; // optional requests.add(req); List resultIDs = ActionPlanCreateInvocable.makeActionPlanFromTemplate(requests); ActionPlanCreateInvocable.CreateActionPlanRequest Wrapper class for ActionPlan Request for invocable Apex. Signature global class CreateActionPlanRequest David Schach 2022 ActionPlanCreateInvocable.CreateActionPlanRequest Properties Name Signature Description actionPlanName global String actionPlanName The Action Plan Name. If not specified, the Action Plan will be called