@umbraco/playwright-testhelpers 17.1.0-beta.5 → 17.1.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/helpers/BaseApiHelper.d.ts +19 -0
- package/dist/lib/helpers/BaseApiHelper.js +87 -0
- package/dist/lib/helpers/BaseApiHelper.js.map +1 -0
- package/dist/lib/helpers/ConstantHelper.d.ts +0 -17
- package/dist/lib/helpers/ConstantHelper.js +0 -17
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/ContentRenderUiHelper.js +3 -3
- package/dist/lib/helpers/ContentRenderUiHelper.js.map +1 -1
- package/dist/lib/helpers/ContentUiHelper.js +487 -353
- package/dist/lib/helpers/ContentUiHelper.js.map +1 -1
- package/dist/lib/helpers/CurrentUserProfileUiHelper.js +10 -4
- package/dist/lib/helpers/CurrentUserProfileUiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +9 -21
- package/dist/lib/helpers/DataTypeApiHelper.js +32 -125
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.js +332 -193
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +8 -15
- package/dist/lib/helpers/DictionaryApiHelper.js +49 -77
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.js +23 -17
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintApiHelper.d.ts +7 -13
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js +44 -69
- package/dist/lib/helpers/DocumentBlueprintApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js +10 -8
- package/dist/lib/helpers/DocumentBlueprintUiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +4 -18
- package/dist/lib/helpers/DocumentTypeApiHelper.js +4 -134
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeUiHelper.js +34 -22
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/ExamineManagementUiHelper.js +6 -5
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -1
- package/dist/lib/helpers/FormsUiHelper.js +159 -119
- package/dist/lib/helpers/FormsUiHelper.js.map +1 -1
- package/dist/lib/helpers/HealthCheckUiHelper.js +7 -7
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageApiHelper.d.ts +10 -12
- package/dist/lib/helpers/LanguageApiHelper.js +34 -35
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.js +19 -16
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -1
- package/dist/lib/helpers/LogViewerUiHelper.js +31 -22
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -1
- package/dist/lib/helpers/LoginUiHelper.js +7 -4
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +4 -18
- package/dist/lib/helpers/MediaTypeApiHelper.js +4 -134
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaTypeUiHelper.js +17 -11
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/MediaUiHelper.js +45 -36
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberApiHelper.d.ts +4 -12
- package/dist/lib/helpers/MemberApiHelper.js +6 -54
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +6 -11
- package/dist/lib/helpers/MemberGroupApiHelper.js +20 -35
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberGroupUiHelper.js +16 -13
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +5 -12
- package/dist/lib/helpers/MemberTypeApiHelper.js +16 -49
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberTypeUiHelper.js +3 -2
- package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/MemberUiHelper.js +43 -25
- package/dist/lib/helpers/MemberUiHelper.js.map +1 -1
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +3 -2
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageApiHelper.d.ts +5 -4
- package/dist/lib/helpers/PackageApiHelper.js +47 -75
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.js +36 -30
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +5 -20
- package/dist/lib/helpers/PartialViewApiHelper.js +12 -146
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.js +17 -14
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -1
- package/dist/lib/helpers/PathBasedTreeApiHelper.d.ts +32 -0
- package/dist/lib/helpers/PathBasedTreeApiHelper.js +164 -0
- package/dist/lib/helpers/PathBasedTreeApiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +5 -3
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -1
- package/dist/lib/helpers/PublishedStatusUiHelper.js +8 -7
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -1
- package/dist/lib/helpers/RedirectManagementUiHelper.js +12 -7
- package/dist/lib/helpers/RedirectManagementUiHelper.js.map +1 -1
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +7 -12
- package/dist/lib/helpers/RelationTypeApiHelper.js +28 -49
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/RelationTypeUiHelper.js +16 -13
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptApiHelper.d.ts +6 -22
- package/dist/lib/helpers/ScriptApiHelper.js +12 -165
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.js +13 -9
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +5 -20
- package/dist/lib/helpers/StylesheetApiHelper.js +13 -154
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.js +14 -9
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -1
- package/dist/lib/helpers/TelemetryDataUiHelper.js +3 -2
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateApiHelper.d.ts +8 -15
- package/dist/lib/helpers/TemplateApiHelper.js +51 -83
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.js +25 -19
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -1
- package/dist/lib/helpers/TreeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/TreeApiHelper.js +116 -0
- package/dist/lib/helpers/TreeApiHelper.js.map +1 -0
- package/dist/lib/helpers/UiBaseLocators.d.ts +228 -230
- package/dist/lib/helpers/UiBaseLocators.js +871 -832
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +3 -13
- package/dist/lib/helpers/UserGroupApiHelper.js +3 -69
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.js +49 -32
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -1
- package/dist/lib/helpers/UserUiHelper.js +46 -43
- package/dist/lib/helpers/UserUiHelper.js.map +1 -1
- package/dist/lib/helpers/VariantBasedApiHelper.d.ts +23 -0
- package/dist/lib/helpers/VariantBasedApiHelper.js +81 -0
- package/dist/lib/helpers/VariantBasedApiHelper.js.map +1 -0
- package/dist/lib/helpers/WebhookApiHelper.d.ts +1 -0
- package/dist/lib/helpers/WebhookApiHelper.js +10 -11
- package/dist/lib/helpers/WebhookApiHelper.js.map +1 -1
- package/dist/lib/helpers/WebhookUiHelper.js +27 -11
- package/dist/lib/helpers/WebhookUiHelper.js.map +1 -1
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +1 -1
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -1
- package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js +9 -4
- package/dist/lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.js.map +1 -1
- package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js +10 -5
- package/dist/lib/helpers/differentAppSettingsHelpers/InstallUiHelper.js.map +1 -1
- package/dist/lib/helpers/index.d.ts +4 -1
- package/dist/lib/helpers/index.js +9 -3
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/lib/helpers/BasePage.d.ts +0 -449
- package/dist/lib/helpers/BasePage.js +0 -547
- package/dist/lib/helpers/BasePage.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CurrentUserProfileUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
4
5
|
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
5
6
|
class CurrentUserProfileUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
6
7
|
changePasswordBtn;
|
|
@@ -9,12 +10,17 @@ class CurrentUserProfileUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
|
9
10
|
this.changePasswordBtn = page.getByLabel('Change password');
|
|
10
11
|
}
|
|
11
12
|
async clickChangePasswordButton() {
|
|
12
|
-
await
|
|
13
|
+
await (0, test_1.expect)(this.changePasswordBtn).toBeVisible();
|
|
14
|
+
await this.changePasswordBtn.click();
|
|
13
15
|
}
|
|
14
16
|
async changePassword(currentPassword, newPassword) {
|
|
15
|
-
await
|
|
16
|
-
await this.
|
|
17
|
-
await this.
|
|
17
|
+
await (0, test_1.expect)(this.currentPasswordTxt).toBeVisible();
|
|
18
|
+
await this.currentPasswordTxt.clear();
|
|
19
|
+
await this.currentPasswordTxt.fill(currentPassword);
|
|
20
|
+
await this.newPasswordTxt.clear();
|
|
21
|
+
await this.newPasswordTxt.fill(newPassword);
|
|
22
|
+
await this.confirmPasswordTxt.clear();
|
|
23
|
+
await this.confirmPasswordTxt.fill(newPassword);
|
|
18
24
|
await this.clickConfirmButton();
|
|
19
25
|
}
|
|
20
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentUserProfileUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/CurrentUserProfileUiHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"CurrentUserProfileUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/CurrentUserProfileUiHelper.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAAgD;AAEhD,MAAa,0BAA2B,SAAQ,+BAAc;IAC3C,iBAAiB,CAAU;IAE5C,YAAY,IAAU;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,eAAuB,EAAE,WAAmB;QAC/D,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;CACF;AAvBD,gEAuBC","sourcesContent":["import {expect, Locator, Page} from \"@playwright/test\"\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class CurrentUserProfileUiHelper extends UiBaseLocators {\n private readonly changePasswordBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.changePasswordBtn = page.getByLabel('Change password');\n }\n\n async clickChangePasswordButton() {\n await expect(this.changePasswordBtn).toBeVisible();\n await this.changePasswordBtn.click();\n }\n\n async changePassword(currentPassword: string, newPassword: string) {\n await expect(this.currentPasswordTxt).toBeVisible();\n await this.currentPasswordTxt.clear();\n await this.currentPasswordTxt.fill(currentPassword);\n await this.newPasswordTxt.clear();\n await this.newPasswordTxt.fill(newPassword);\n await this.confirmPasswordTxt.clear();\n await this.confirmPasswordTxt.fill(newPassword);\n await this.clickConfirmButton();\n }\n}"]}
|
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class DataTypeApiHelper {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { TreeApiHelper } from "./TreeApiHelper";
|
|
2
|
+
export declare class DataTypeApiHelper extends TreeApiHelper {
|
|
3
|
+
protected resourcePath: string;
|
|
4
|
+
protected treePath: string;
|
|
5
|
+
getByName(name: string): Promise<any>;
|
|
6
|
+
createDataType(name: string, editorAlias: string, editorUiAlias: string, values: {
|
|
7
7
|
alias: string;
|
|
8
8
|
value: string;
|
|
9
9
|
}[], parentId?: string, id?: string): Promise<string | undefined>;
|
|
10
|
-
update(id: string, dataType: any): Promise<
|
|
11
|
-
delete(id: string): Promise<import("playwright-core").APIResponse>;
|
|
12
|
-
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
13
|
-
doesExist(id: string): Promise<boolean>;
|
|
10
|
+
update(id: string, dataType: any): Promise<any>;
|
|
14
11
|
getItems(ids: string[]): Promise<any>;
|
|
15
|
-
getByName(name: string): Promise<any>;
|
|
16
|
-
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
17
|
-
doesNameExist(name: string): Promise<any>;
|
|
18
12
|
moveToFolder(dataTypeId: string, folderId: string): Promise<import("playwright-core").APIResponse>;
|
|
19
13
|
copyToFolder(dataTypeId: string, folderId: string): Promise<string | undefined>;
|
|
20
|
-
|
|
21
|
-
createFolder(name: string, parentId?: string, id?: string): Promise<string | undefined>;
|
|
22
|
-
renameFolder(id: string, name: string): Promise<import("playwright-core").APIResponse>;
|
|
23
|
-
deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
|
|
14
|
+
createFolder(name: string, parentId?: string, id?: string): Promise<string>;
|
|
24
15
|
doesFolderExist(id: string): Promise<boolean>;
|
|
25
|
-
getChildren(id: string): Promise<any>;
|
|
26
|
-
private recurseDeleteChildren;
|
|
27
|
-
private recurseChildren;
|
|
28
16
|
save(dataType: any): Promise<string | undefined>;
|
|
29
17
|
createDefaultDateTimeDataType(name: string): Promise<string | undefined>;
|
|
30
18
|
createCheckboxListDataType(name: string, options?: string[]): Promise<string | undefined>;
|
|
@@ -116,7 +104,7 @@ export declare class DataTypeApiHelper {
|
|
|
116
104
|
createListViewContentDataType(name?: string): Promise<string | undefined>;
|
|
117
105
|
createListViewContentDataTypeWithLayoutAndPageSize(name?: string, layoutAlias?: string, layoutName?: string, pageSize?: number): Promise<string | undefined>;
|
|
118
106
|
createListViewContentDataTypeWithAllPermissions(name?: string): Promise<string | undefined>;
|
|
119
|
-
updateListViewMediaDataType(alias: string, newValue: any): Promise<
|
|
107
|
+
updateListViewMediaDataType(alias: string, newValue: any): Promise<any>;
|
|
120
108
|
createDefaultTiptapDataType(name: string): Promise<string | undefined>;
|
|
121
109
|
createTipTapDataTypeWithABlock(name: string, contentElementTypeKey: string): Promise<string | undefined>;
|
|
122
110
|
createApprovedColorDataTypeWithOneItem(name: string, itemLabel: string, itemValue: string): Promise<string | undefined>;
|
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DataTypeApiHelper = void 0;
|
|
4
|
+
const TreeApiHelper_1 = require("./TreeApiHelper");
|
|
4
5
|
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
5
|
-
class DataTypeApiHelper {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
6
|
+
class DataTypeApiHelper extends TreeApiHelper_1.TreeApiHelper {
|
|
7
|
+
resourcePath = 'data-type';
|
|
8
|
+
treePath = 'tree/data-type';
|
|
9
|
+
// Override to handle isContainer check specific to DataType
|
|
10
|
+
async getByName(name) {
|
|
11
|
+
const rootItems = await this.getAllAtRoot();
|
|
12
|
+
const jsonItems = await rootItems.json();
|
|
13
|
+
for (const item of jsonItems.items) {
|
|
14
|
+
if (item.name === name) {
|
|
15
|
+
return item.isFolder ? this.getFolder(item.id) : this.get(item.id);
|
|
16
|
+
}
|
|
17
|
+
else if (item.isContainer || item.hasChildren) {
|
|
18
|
+
const result = await this.recurseChildren(name, item.id, false);
|
|
19
|
+
if (result) {
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
13
25
|
}
|
|
14
|
-
|
|
26
|
+
// DataType-specific create method with different signature
|
|
27
|
+
async createDataType(name, editorAlias, editorUiAlias, values, parentId, id) {
|
|
15
28
|
const dataType = {
|
|
16
29
|
"name": name,
|
|
17
30
|
"editorAlias": editorAlias,
|
|
@@ -20,8 +33,7 @@ class DataTypeApiHelper {
|
|
|
20
33
|
"id": id,
|
|
21
34
|
"parent": parentId ? { "id": parentId } : null
|
|
22
35
|
};
|
|
23
|
-
const response = await this.api.post(this.
|
|
24
|
-
// Returns the id of the created dataType
|
|
36
|
+
const response = await this.api.post(this.buildUrl(), dataType);
|
|
25
37
|
return response.headers().location.split("v1/data-type/").pop();
|
|
26
38
|
}
|
|
27
39
|
async update(id, dataType) {
|
|
@@ -31,150 +43,45 @@ class DataTypeApiHelper {
|
|
|
31
43
|
"editorUiAlias": dataType.editorUiAlias,
|
|
32
44
|
"values": dataType.values,
|
|
33
45
|
};
|
|
34
|
-
return await this.api.put(this.
|
|
35
|
-
}
|
|
36
|
-
async delete(id) {
|
|
37
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
38
|
-
}
|
|
39
|
-
async getAllAtRoot() {
|
|
40
|
-
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
|
|
41
|
-
}
|
|
42
|
-
async doesExist(id) {
|
|
43
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
44
|
-
return response.status() === 200;
|
|
46
|
+
return await this.api.put(this.buildUrl('/' + id), updateDataType);
|
|
45
47
|
}
|
|
46
48
|
async getItems(ids) {
|
|
47
49
|
let idArray = 'id=' + ids[0];
|
|
48
|
-
let i;
|
|
49
|
-
for (i = 1; i < ids.length; ++i) {
|
|
50
|
+
for (let i = 1; i < ids.length; ++i) {
|
|
50
51
|
idArray += '&id=' + ids[i];
|
|
51
52
|
}
|
|
52
|
-
const response = await this.api.get(this.api.baseUrl
|
|
53
|
+
const response = await this.api.get(`${this.api.baseUrl}/umbraco/management/api/v1/${this.treePath}/item?${idArray}`);
|
|
53
54
|
return await response.json();
|
|
54
55
|
}
|
|
55
|
-
async getByName(name) {
|
|
56
|
-
const rootDataTypes = await this.getAllAtRoot();
|
|
57
|
-
const jsonDataTypes = await rootDataTypes.json();
|
|
58
|
-
for (const dataType of jsonDataTypes.items) {
|
|
59
|
-
if (dataType.name === name) {
|
|
60
|
-
return this.get(dataType.id);
|
|
61
|
-
}
|
|
62
|
-
else if (dataType.isContainer || dataType.hasChildren) {
|
|
63
|
-
const result = await this.recurseChildren(name, dataType.id, false);
|
|
64
|
-
if (result) {
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
async ensureNameNotExists(name) {
|
|
72
|
-
const rootDataTypes = await this.getAllAtRoot();
|
|
73
|
-
const jsonDataTypes = await rootDataTypes.json();
|
|
74
|
-
for (const dataType of jsonDataTypes.items) {
|
|
75
|
-
if (dataType.name === name) {
|
|
76
|
-
if (dataType.isFolder) {
|
|
77
|
-
return await this.recurseDeleteChildren(dataType);
|
|
78
|
-
}
|
|
79
|
-
return await this.delete(dataType.id);
|
|
80
|
-
}
|
|
81
|
-
else if (dataType.hasChildren) {
|
|
82
|
-
await this.recurseChildren(name, dataType.id, true);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
async doesNameExist(name) {
|
|
88
|
-
return await this.getByName(name);
|
|
89
|
-
}
|
|
90
56
|
async moveToFolder(dataTypeId, folderId) {
|
|
91
57
|
const folderIdBody = {
|
|
92
58
|
"target": { id: folderId }
|
|
93
59
|
};
|
|
94
|
-
return await this.api.put(this.
|
|
60
|
+
return await this.api.put(this.buildUrl('/' + dataTypeId + '/move'), folderIdBody);
|
|
95
61
|
}
|
|
96
62
|
async copyToFolder(dataTypeId, folderId) {
|
|
97
63
|
const folderIdBody = {
|
|
98
64
|
"target": { id: folderId }
|
|
99
65
|
};
|
|
100
|
-
const response = await this.api.post(this.
|
|
101
|
-
// Returns the id of the copied dataType
|
|
66
|
+
const response = await this.api.post(this.buildUrl('/' + dataTypeId + '/copy'), folderIdBody);
|
|
102
67
|
return response.headers().location.split("v1/data-type/").pop();
|
|
103
68
|
}
|
|
104
|
-
//
|
|
105
|
-
async getFolder(id) {
|
|
106
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
107
|
-
return await response.json();
|
|
108
|
-
}
|
|
69
|
+
// Override createFolder to support optional id parameter
|
|
109
70
|
async createFolder(name, parentId, id) {
|
|
110
71
|
const folderData = {
|
|
111
72
|
"name": name,
|
|
112
73
|
"id": id,
|
|
113
74
|
"parent": parentId ? { "id": parentId } : null
|
|
114
75
|
};
|
|
115
|
-
const response = await this.api.post(this.
|
|
116
|
-
// Returns the id of the created dataTypeFolder
|
|
76
|
+
const response = await this.api.post(this.buildUrl('/folder'), folderData);
|
|
117
77
|
return response.headers().location.split("v1/data-type/folder/").pop();
|
|
118
78
|
}
|
|
119
|
-
async renameFolder(id, name) {
|
|
120
|
-
const folderData = {
|
|
121
|
-
"name": name,
|
|
122
|
-
};
|
|
123
|
-
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);
|
|
124
|
-
}
|
|
125
|
-
async deleteFolder(id) {
|
|
126
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
127
|
-
}
|
|
128
79
|
async doesFolderExist(id) {
|
|
129
|
-
const response = await this.api.get(this.
|
|
80
|
+
const response = await this.api.get(this.buildUrl('/folder/' + id));
|
|
130
81
|
return response.status() === 200;
|
|
131
82
|
}
|
|
132
|
-
async getChildren(id) {
|
|
133
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');
|
|
134
|
-
const items = await response.json();
|
|
135
|
-
return items.items;
|
|
136
|
-
}
|
|
137
|
-
async recurseDeleteChildren(dataFolder) {
|
|
138
|
-
if (!dataFolder.hasChildren) {
|
|
139
|
-
return await this.deleteFolder(dataFolder.id);
|
|
140
|
-
}
|
|
141
|
-
const items = await this.getChildren(dataFolder.id);
|
|
142
|
-
for (const child of items) {
|
|
143
|
-
if (child.hasChildren) {
|
|
144
|
-
await this.recurseDeleteChildren(child);
|
|
145
|
-
}
|
|
146
|
-
else if (child.isFolder) {
|
|
147
|
-
await this.deleteFolder(child.id);
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
await this.delete(child.id);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return await this.deleteFolder(dataFolder.id);
|
|
154
|
-
}
|
|
155
|
-
async recurseChildren(name, id, toDelete) {
|
|
156
|
-
const items = await this.getChildren(id);
|
|
157
|
-
for (const child of items) {
|
|
158
|
-
if (child.name === name) {
|
|
159
|
-
if (!toDelete) {
|
|
160
|
-
if (child.isFolder) {
|
|
161
|
-
return await this.getFolder(child.id);
|
|
162
|
-
}
|
|
163
|
-
return await this.get(child.id);
|
|
164
|
-
}
|
|
165
|
-
if (child.isFolder) {
|
|
166
|
-
return await this.recurseDeleteChildren(child);
|
|
167
|
-
}
|
|
168
|
-
return await this.delete(child.id);
|
|
169
|
-
}
|
|
170
|
-
else if (child.hasChildren) {
|
|
171
|
-
return await this.recurseChildren(name, child.id, toDelete);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
83
|
async save(dataType) {
|
|
177
|
-
const response = await this.api.post(this.
|
|
84
|
+
const response = await this.api.post(this.buildUrl(), dataType);
|
|
178
85
|
return response.headers().location.split("v1/data-type/").pop();
|
|
179
86
|
}
|
|
180
87
|
async createDefaultDateTimeDataType(name) {
|