public override JToken GetModelAsJson(bool onlyData = false, bool onlyMainData = false) { if (_portalSettings == null) { onlyData = true; } JObject model = new JObject(); var itemsModel = model; ExtendModel(model, onlyData, onlyMainData); ExtendSchemaOptions(itemsModel, onlyData || onlyMainData); ExtendItemsModel(itemsModel, onlyData || onlyMainData); if (!onlyData && !onlyMainData) { itemsModel["Context"]["RssUrl"] = _portalSettings.PortalAlias.HTTPAlias + "/DesktopModules/OpenContent/API/RssAPI/GetFeed?moduleId=" + _module.ViewModule.ModuleID + "&tabId=" + _detailTabId; } JArray items = new JArray();; itemsModel["Items"] = items; //string editRole = Manifest.GetEditRole(); if (_dataList != null && _dataList.Any()) { var mainUrl = Globals.NavigateURL(_detailTabId, false, _portalSettings, "", GetCurrentCultureCode(), ""); foreach (var item in _dataList) { JObject dyn = item.Data as JObject; JObject context = new JObject(); dyn["Context"] = context; context["Id"] = item.Id; if (LocaleController.Instance.GetLocales(_portalId).Count > 1) { JsonUtils.SimplifyJson(dyn, GetCurrentCultureCode()); } EnhanceSelect2(dyn); EnhanceUser(dyn, item.CreatedByUserId); EnhanceImages(dyn, itemsModel); if (onlyData) { RemoveNoData(itemsModel); } else { string url = ""; if (!string.IsNullOrEmpty(_manifest.DetailUrl)) { HandlebarsEngine hbEngine = new HandlebarsEngine(); var dynForHBS = JsonUtils.JsonToDictionary(dyn.ToString()); url = hbEngine.Execute(_manifest.DetailUrl, dynForHBS); url = HttpUtility.HtmlDecode(url); } var editStatus = !_manifest.DisableEdit && IsEditAllowed(item.CreatedByUserId); context["IsEditable"] = editStatus; if (HasEditPermissions(item.CreatedByUserId)) { context["EditUrl"] = DnnUrlUtils.EditUrl("id", item.Id, _module.ViewModule.ModuleID, _portalSettings); } context["DetailUrl"] = Globals.NavigateURL(_detailTabId, false, _portalSettings, "", GetCurrentCultureCode(), UrlHelpers.CleanupUrl(url), "id=" + item.Id); context["MainUrl"] = mainUrl; } items.Add(dyn); } } return(model); }
protected string GenerateDetailUrl(IDataItem item, JObject dyn, Manifest.Manifest manifest, int detailTabId) { string url = ""; if (!string.IsNullOrEmpty(manifest.DetailUrl)) { HandlebarsEngine hbEngine = new HandlebarsEngine(); var dynForHBS = JsonUtils.JsonToDictionary(dyn.ToString()); url = hbEngine.Execute(manifest.DetailUrl, dynForHBS); url = HttpUtility.HtmlDecode(url); } return(Globals.NavigateURL(detailTabId, false, _portalSettings, "", GetCurrentCultureCode(), UrlHelpers.CleanupUrl(url), "id=" + item.Id)); }