diff --git a/public/manifest.json b/public/manifest.json index f9b2dbe..346467a 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -8,7 +8,8 @@ "minimum_chrome_version": "88", "manifest_version": 3, "permissions": [ - "cookies" + "cookies", + "storage" ], "host_permissions": [ "https://*.lightning.force.com/", diff --git a/src/App.vue b/src/App.vue index 3c596b9..f5f9607 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,6 @@ \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/src/components/ToolLauncher.vue b/src/components/ToolLauncher.vue index 2331335..3043676 100644 --- a/src/components/ToolLauncher.vue +++ b/src/components/ToolLauncher.vue @@ -74,7 +74,14 @@ onMounted(() => { \ No newline at end of file diff --git a/src/components/modals/quick-create-user-settings/QuickCreateUserSettingsModal.vue b/src/components/modals/quick-create-user-settings/QuickCreateUserSettingsModal.vue new file mode 100644 index 0000000..fc501bf --- /dev/null +++ b/src/components/modals/quick-create-user-settings/QuickCreateUserSettingsModal.vue @@ -0,0 +1,119 @@ + + + + + \ No newline at end of file diff --git a/src/components/modals/user-select/UserSelectModal.vue b/src/components/modals/user-select/UserSelectModal.vue index c67cdf2..3ac8d7b 100644 --- a/src/components/modals/user-select/UserSelectModal.vue +++ b/src/components/modals/user-select/UserSelectModal.vue @@ -4,7 +4,7 @@ import { ref } from 'vue'; import type User from '@/models/User'; import SearchLookup from '../../slds/SearchLookup.vue'; import SearchLookupItem from '@/components/slds/SearchLookupItem'; -import type Context from '@/models/context'; +import Context from '@/models/context'; import SalesforceRESTService from '@/services/salesforce-rest-service'; let restService: SalesforceRESTService; @@ -117,6 +117,8 @@ defineExpose<{ \ No newline at end of file diff --git a/src/components/slds/LightningToast.vue b/src/components/slds/LightningToast.vue new file mode 100644 index 0000000..7793097 --- /dev/null +++ b/src/components/slds/LightningToast.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/src/models/UserCreateForm.ts b/src/models/UserCreateForm.ts index f687716..381d5e5 100644 --- a/src/models/UserCreateForm.ts +++ b/src/models/UserCreateForm.ts @@ -2,7 +2,10 @@ export default class UserCreateForm { firstName = ''; lastName = ''; alias = ''; + email = ''; + emailValid = false; + username = ''; nickname = ''; federationIdentifier = ''; diff --git a/src/models/UserQuickCreateSettings.ts b/src/models/UserQuickCreateSettings.ts new file mode 100644 index 0000000..edc43a7 --- /dev/null +++ b/src/models/UserQuickCreateSettings.ts @@ -0,0 +1,4 @@ +export default class UserQuickCreateSettings { + usernameDomain = ''; + getFirstLastNameFromEmail = true; +} \ No newline at end of file diff --git a/src/services/salesforce-rest-service.ts b/src/services/salesforce-rest-service.ts index b08ce93..e1b5f37 100644 --- a/src/services/salesforce-rest-service.ts +++ b/src/services/salesforce-rest-service.ts @@ -22,7 +22,7 @@ export default class SalesforceRESTService { // } protected authFetch(requestUrl: URL, requestInfo: any = { method: 'GET' }): Promise { - const actualRequestUrl = requestUrl.toString().replace('+', '%20'); + const actualRequestUrl = requestUrl.toString().replace(/\+/g, '%20'); if (!requestInfo.headers) requestInfo.headers = {}; diff --git a/src/services/salesforce-tooling-service.ts b/src/services/salesforce-tooling-service.ts index 41fb323..8c57cbe 100644 --- a/src/services/salesforce-tooling-service.ts +++ b/src/services/salesforce-tooling-service.ts @@ -1,4 +1,4 @@ -import type ServiceResult from './result'; +import ServiceResult from './result'; export default class SalesforceToolingService { EXECUTE_ANONYMOUS_ENDPOINT = '/services/data/v58.0/tooling/executeAnonymous'; @@ -11,12 +11,11 @@ export default class SalesforceToolingService { this.sessionId = sessionId; } - protected authFetch(requestUrl: URL, requestInfo: any = { method: 'GET' }) { - const actualRequestUrl = requestUrl.toString().replace('+', '%20'); + protected authFetch(requestUrl: URL, requestInfo: any = { method: 'GET' }): Promise { + const actualRequestUrl = requestUrl.toString().replace(/\+/g, '%20'); - if (!requestInfo.headers) { + if (!requestInfo.headers) requestInfo.headers = {}; - } requestInfo.headers['Authorization'] = 'Bearer ' + this.sessionId return fetch(actualRequestUrl, requestInfo); diff --git a/src/services/salesforce-user-service.ts b/src/services/salesforce-user-service.ts index 66041c9..57169e1 100644 --- a/src/services/salesforce-user-service.ts +++ b/src/services/salesforce-user-service.ts @@ -14,17 +14,15 @@ export default class SalesforceUserService extends SalesforceRESTService { generateUsername(usernamePrefix?: string, domainPrefix?: string): string { let username = this.generateRandomString(5, false, true, true); if (usernamePrefix) { - username = `${usernamePrefix}-${username}`; + username = `${usernamePrefix}.${username}`; } let domain = this.generateRandomString(5, false, true, false); if (domainPrefix) { - domain = `${domainPrefix}-${domain}`; + domain = `${domainPrefix}.${domain}`; } - const tld = this.generateRandomString(3, false, true, false); - - return `${username}@${domain}.${tld}`; + return `${username}@${domain}`; } generateNickname(): string {