Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }