public void BuildEditItemUrl_EmptyElements_ThrowsException() { var elements = new ElementIdentifier[0]; var underTest = new EditLinkBuilder(DefaultOptions); Assert.Throws <ArgumentException>(() => underTest.BuildEditItemUrl(_language, elements)); }
public void BuildEditItemUrl_EmptyLanguageForElements_ThrowsException() { var underTest = new EditLinkBuilder(DefaultOptions); Assert.Throws <ArgumentException>(() => underTest.BuildEditItemUrl(string.Empty, new ElementIdentifier("76c06b74-bae9-4732-b629-1a59395e893d", "single-element-Codename"))); }
public override Uri BuildEditLink(ResourceContext instanceContext, ODataMetadataLevel metadataLevel, Uri idLink) { if (EditLinkBuilder != null) { return(EditLinkBuilder.Factory(instanceContext)); } return(null); }
public override Uri BuildEditLink(EntityInstanceContext instanceContext, ODataMetadataLevel metadataLevel, string idLink) { if (EditLinkBuilder != null) { return(EditLinkBuilder.Factory(instanceContext)); } return(null); }
public EditLinkHelper(string projectId) { var linkBuilderoptions = new ManagementHelpersOptions() { ProjectId = projectId }; Builder = new EditLinkBuilder(linkBuilderoptions); }
public void BuildEditItemUrl_ValidInput_ReturnsValidUrl() { var underTest = new EditLinkBuilder(DefaultOptions); var result = underTest.BuildEditItemUrl(_language, _itemId); var expected = "https://app.kontent.ai/goto/edit-item/project/14dc0cf8-6cc1-4f20-8e2e-0b5edea89e43/variant-codename/some-Language-Codename/item/1cdaa8ef-cb2b-4f82-82e9-45467b2e01b9"; Assert.Equal(expected, result); }
private EditLinkHelper() { var projectId = AppSettingProvider.ProjectId.ToString() ?? AppSettingProvider.DefaultProjectId.ToString(); var linkBuilderOptions = new ContentManagementHelpersOptions() { ProjectId = projectId }; Builder = new EditLinkBuilder(linkBuilderOptions); }
private EditLinkHelper(IConfiguration configuration) { this.configuration = configuration; var projectId = configuration.GetSection(nameof(DeliveryOptions))[nameof(DeliveryOptions.ProjectId)].ToString() ?? configuration.GetSection(nameof(AppConfiguration)).Get <AppConfiguration>().DefaultProjectId.ToString(); var linkBuilderOptions = new ManagementHelpersOptions() { ProjectId = projectId }; Builder = new EditLinkBuilder(linkBuilderOptions); }
public void BuildEditItemUrl_SingleElement_ReturnsValidUrl() { var elementIdentifier = new ElementIdentifier(_itemId, "single-element-Codename"); var underTest = new EditLinkBuilder(DefaultOptions); var result = underTest.BuildEditItemUrl(_language, elementIdentifier); var expected = "https://app.kenticocloud.com/goto/edit-item/project/14dc0cf8-6cc1-4f20-8e2e-0b5edea89e43/variant-codename/some-Language-Codename/item/1cdaa8ef-cb2b-4f82-82e9-45467b2e01b9/element/single-element-Codename"; Assert.Equal(expected, result); }
public void BuildEditItemUrl_AdminUrlOtherThanDefault_ReturnsCorrectUrl() { var options = new ManagementHelpersOptions { AdminUrl = "https://someOther.url/{0}", ProjectId = "34998683-4dd6-441c-b4cb-57493cafcaf0", }; var underTest = new EditLinkBuilder(options); var result = underTest.BuildEditItemUrl(_language, _itemId); var expected = "https://someOther.url/goto/edit-item/project/34998683-4dd6-441c-b4cb-57493cafcaf0/variant-codename/some-Language-Codename/item/1cdaa8ef-cb2b-4f82-82e9-45467b2e01b9"; Assert.Equal(expected, result); }
public override void Process(TagHelperContext context, TagHelperOutput output) { var itemUrl = EditLinkBuilder.BuildEditItemUrl(Language, ElementIdentifiers); var style = Inline ? "inline" : "block"; output.TagName = "a"; output.Attributes.SetAttribute("target", "_blank"); output.Attributes.SetAttribute("href", itemUrl); output.Attributes.Add("class", $"edit-link__overlay--{style}"); output.TagMode = TagMode.StartTagAndEndTag; var btn = $@"<i aria-hidden=""true"" class=""edit-link__button-icon edit-link__button-icon--{style}""></i>"; if (!Inline) { btn = $@"<span>{btn}</span>"; } output.Content.SetHtmlContent(btn); }
public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; output.Attributes.Add("class", "edit-mode-panel"); output.TagMode = TagMode.StartTagAndEndTag; if (DeliveryOptions.CurrentValue.UsePreviewApi) { var itemUrl = EditLinkBuilder.BuildEditItemUrl(Language, ContentItemId); string html = $@" <div> <div class=""edit-mode-panel__toggle""> <label class=""switch""> <input id=""edit-mode-switch"" type=""checkbox"" onchange=""toggleEditMode(this.checked)"" autocomplete=""off""> <span class=""slider round""></span> </label> </div> <div class=""edit-mode-panel__caption""> <span class=""edit-mode-panel__title"">Edit mode</span> </div> </div> <div class=""edit-mode-panel__navigate-link""> <a target=""_blank"" href=""{itemUrl}"">Open content item in Kontent</a> </div>"; output.Content.SetHtmlContent(html); string after = $@" <script type=""text/javascript""> function toggleEditMode(isChecked) {{ const body = document.getElementsByTagName('body')[0]; isChecked ? body.classList.add('edit-mode') : body.classList.remove('edit-mode'); }} </script>"; output.PostContent.SetHtmlContent(after); } else { output.SuppressOutput(); } }
public void BuildEditItemUrl_MultipleElements_ReturnsValidUrl() { var elements = new ElementIdentifier[] { new ElementIdentifier("76c06b74-bae9-4732-b629-1a59395e893d", "some-Element-Codename-1"), new ElementIdentifier("326c63aa-ae71-40b7-a6a8-56455b0b9751", "some-Element-Codename-2"), new ElementIdentifier("ffcd0436-8274-40ee-aaae-86fee1966fce", "some-Element-Codename-3"), new ElementIdentifier("d31d27cf-ddf6-4040-ab67-2f70edc0d46b", "some-Element-Codename-4"), }; var underTest = new EditLinkBuilder(DefaultOptions); var result = underTest.BuildEditItemUrl(_language, elements); var expected = "https://app.kontent.ai/goto/edit-item/" + "project/14dc0cf8-6cc1-4f20-8e2e-0b5edea89e43/variant-codename/some-Language-Codename/" + "item/76c06b74-bae9-4732-b629-1a59395e893d/element/some-Element-Codename-1/" + "item/326c63aa-ae71-40b7-a6a8-56455b0b9751/element/some-Element-Codename-2/" + "item/ffcd0436-8274-40ee-aaae-86fee1966fce/element/some-Element-Codename-3/" + "item/d31d27cf-ddf6-4040-ab67-2f70edc0d46b/element/some-Element-Codename-4"; Assert.Equal(expected, result); }
public void BuildEditItemUrl_EmptyItemId_ThrowsException() { var underTest = new EditLinkBuilder(DefaultOptions); Assert.Throws <ArgumentException>(() => underTest.BuildEditItemUrl(_language, string.Empty)); }
public void BuildEditItemUrl_NoElements_ThrowsException() { var underTest = new EditLinkBuilder(DefaultOptions); Assert.Throws <ArgumentException>(() => underTest.BuildEditItemUrl(_language)); }