private void cmdCustom_Click(object sender, EventArgs e)
        {
            var settings = ModuleContext.OpenContentSettings();
            TemplateManifest template       = settings.Template;
            string           templateFolder = template.ManifestFolderUri.UrlFolder;
            string           templateDir    = Server.MapPath(templateFolder);
            string           moduleDir      = Server.MapPath(ModuleTemplateDirectory);

            if (!Directory.Exists(moduleDir))
            {
                Directory.CreateDirectory(moduleDir);
            }
            foreach (var item in Directory.GetFiles(moduleDir))
            {
                File.Delete(item);
            }
            foreach (var item in Directory.GetFiles(templateDir))
            {
                File.Copy(item, moduleDir + Path.GetFileName(item));
            }
            ModuleController mc = new ModuleController();

            var newtemplate = new FileUri(ModuleTemplateDirectory, "schema.json");

            mc.UpdateModuleSetting(ModuleId, "template", newtemplate.FilePath);
            ModuleContext.Settings["template"] = newtemplate.FilePath;
            settings = ModuleContext.OpenContentSettings();
            InitEditor(settings.Template);
        }
Example #2
0
        private string GenerateOutputDetail(Page page, TemplateManifest templateManifest, TemplateFiles files, JToken dataJson, string settingsJson)
        {
            // detail template
            var templateVirtualFolder = templateManifest.ManifestFolderUri.UrlFolder;

            if (!string.IsNullOrEmpty(files.Template))
            {
                string  physicalTemplateFolder = HostingEnvironment.MapPath(templateVirtualFolder);
                FileUri templateUri            = CheckFiles(templateManifest, files);

                if (dataJson != null)
                {
                    var mf = new ModelFactorySingle(_renderinfo.Data, settingsJson, physicalTemplateFolder, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module, PortalSettings.Current);
                    mf.Detail = true;
                    object model;
                    if (templateUri.Extension != ".hbs") // razor
                    {
                        model = mf.GetModelAsDynamic();
                    }
                    else // handlebars
                    {
                        if (OpenContentControllerFactory.Instance.OpenContentGlobalSettingsController.GetFastHandlebars())
                        {
                            model = mf.GetModelAsDictionary();
                        }
                        else
                        {
                            model = mf.GetModelAsDynamic();
                        }
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaTitle))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //page.Title
                        MetaTitle = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaTitle, model);
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaDescription))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //PageUtils.SetPageDescription(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaDescription, model));
                        MetaDescription = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaDescription, model);
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMeta))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //PageUtils.SetPageMeta(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMeta, model));
                        MetaOther = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMeta, model);
                    }
                    return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
                }
                else
                {
                    return("");
                }
            }
            else
            {
                return("");
            }
        }
Example #3
0
        private string ExecuteTemplate(Page page, TemplateManifest templateManifest, TemplateFiles files, FileUri templateUri, object model)
        {
            var       templateVirtualFolder = templateManifest.ManifestFolderUri.UrlFolder;
            string    output;
            Stopwatch stopwatch = null;

            if (LogContext.IsLogActive)
            {
                var logKey = "Render template";
                LogContext.Log(_module.ViewModule.ModuleID, logKey, "template", templateUri.FilePath);
                LogContext.Log(_module.ViewModule.ModuleID, logKey, "model", model);
                stopwatch = new Stopwatch();
                stopwatch.Start();
            }
            if (templateUri.Extension != ".hbs")
            {
                output = ExecuteRazor(templateUri, model);
            }
            else
            {
                HandlebarsEngine hbEngine = new HandlebarsEngine();
                output = hbEngine.Execute(page, files, templateVirtualFolder, model);
            }
            if (stopwatch != null)
            {
                stopwatch.Stop();
                var logKey = "Render template";
                LogContext.Log(_module.ViewModule.ModuleID, logKey, "render time (ms)", stopwatch.ElapsedMilliseconds);
                stopwatch.Stop();
            }
            return(output);
        }
Example #4
0
 private string GenerateListOutput(Page page, TemplateManifest templateManifest, TemplateFiles files, IEnumerable <IDataItem> dataList, string settingsJson)
 {
     if (!string.IsNullOrEmpty(files.Template))
     {
         FileUri templateUri = CheckFiles(templateManifest, files);
         if (dataList != null)
         {
             ModelFactoryMultiple mf = new ModelFactoryMultiple(dataList, settingsJson, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module);
             object model;
             if (templateUri.Extension != ".hbs") // razor
             {
                 model = mf.GetModelAsDynamic();
             }
             else // handlebars
             {
                 if (!App.Services.CreateGlobalSettingsRepository(_module.PortalId).GetLegacyHandlebars())
                 {
                     model = mf.GetModelAsDictionary();
                 }
                 else
                 {
                     model = mf.GetModelAsDynamic();
                 }
             }
             return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
         }
     }
     return("");
 }
Example #5
0
        private string GenerateListOutput(Page page, TemplateManifest templateManifest, TemplateFiles files, IEnumerable <IDataItem> dataList, string settingsJson)
        {
            var templateVirtualFolder = templateManifest.ManifestFolderUri.UrlFolder;

            if (!string.IsNullOrEmpty(files.Template))
            {
                string  physicalTemplateFolder = HostingEnvironment.MapPath(templateVirtualFolder);
                FileUri templateUri            = CheckFiles(templateManifest, files);
                if (dataList != null)
                {
                    ModelFactoryMultiple mf = new ModelFactoryMultiple(dataList, settingsJson, physicalTemplateFolder, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module, PortalSettings.Current);
                    object model;
                    if (templateUri.Extension != ".hbs") // razor
                    {
                        model = mf.GetModelAsDynamic();
                    }
                    else // handlebars
                    {
                        if (OpenContentControllerFactory.Instance.OpenContentGlobalSettingsController.GetFastHandlebars())
                        {
                            model = mf.GetModelAsDictionary();
                        }
                        else
                        {
                            model = mf.GetModelAsDynamic();
                        }
                    }
                    return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
                }
            }
            return("");
        }
Example #6
0
        private FileUri CheckFiles(TemplateManifest templateManifest, TemplateFiles files)
        {
            if (files == null)
            {
                throw new Exception("Manifest.json missing or incomplete");
            }
            var templateUri = new FileUri(templateManifest.ManifestFolderUri, files.Template);

            if (!templateUri.FileExists)
            {
                throw new Exception("Template " + templateUri.UrlFilePath + " don't exist");
            }
            if (files.PartialTemplates != null)
            {
                foreach (var partial in files.PartialTemplates)
                {
                    var partialTemplateUri = new FileUri(templateManifest.ManifestFolderUri, partial.Value.Template);
                    if (!partialTemplateUri.FileExists)
                    {
                        throw new Exception("PartialTemplate " + partialTemplateUri.UrlFilePath + " don't exist");
                    }
                }
            }
            return(templateUri);
        }
Example #7
0
        public static void Take(TemplateManifest manifestObject)
        {
            _driver = new CoreDriver(Config.ChromeBrowserUserProfilePath);

            var chromeInstance = _driver.Driver;

            InitializeBrowser(chromeInstance);

            var elementQueries = new List <BlockElement>();

            foreach (var block in manifestObject.blocks)
            {
                foreach (var item in block.items)
                {
                    var blockItem = new BlockElement {
                        Element  = chromeInstance.FindElement(By.CssSelector(item.query)),
                        FileName = item.thumbnail
                    };

                    elementQueries.Add(blockItem);
                }
            }

            TakeScreenShots(chromeInstance, elementQueries);

            CloseBrowser();
        }
        private void InitEditor(TemplateManifest template)
        {
            LoadFiles(template);
            var scriptFile = new FileUri(template.ManifestFolderUri.UrlFolder, scriptList.SelectedValue);

            DisplayFile(scriptFile);
        }
Example #9
0
        public HttpResponseMessage Post(string entity, [FromBody] JObject value)
        {
            // Add
            try
            {
                bool index = false;
                OpenContentSettings settings = ActiveModule.OpenContentSettings();
                ModuleInfo          module   = ActiveModule;
                if (settings.ModuleId > 0)
                {
                    ModuleController mc = new ModuleController();
                    module = mc.GetModule(settings.ModuleId, settings.TabId, false);
                }
                var manifest = settings.Template.Manifest;
                TemplateManifest templateManifest = settings.Template;
                index = settings.Template.Manifest.Index;
                string editRole = manifest.GetEditRole();

                bool listMode        = templateManifest != null && templateManifest.IsListTemplate;
                int  createdByUserid = -1;
                var  ds        = DataSourceManager.GetDataSource(manifest.DataSource);
                var  dsContext = new DataSourceContext()
                {
                    ModuleId       = module.ModuleID,
                    TemplateFolder = settings.TemplateDir.FolderPath,
                    Index          = index,
                    UserId         = UserInfo.UserID,
                    PortalId       = module.PortalID,
                    Config         = manifest.DataSourceConfig
                };

                if (!OpenContentUtils.HasEditPermissions(PortalSettings, ActiveModule, editRole, createdByUserid))
                {
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                }
                //var indexConfig = OpenContentUtils.GetIndexConfig(settings.Template.Key.TemplateDir);
                ds.Add(dsContext, value.Properties().First().Value as JObject);
                //if (json["form"]["ModuleTitle"] != null && json["form"]["ModuleTitle"].Type == JTokenType.String)
                //{
                //    string moduleTitle = json["form"]["ModuleTitle"].ToString();
                //    OpenContentUtils.UpdateModuleTitle(ActiveModule, moduleTitle);
                //}
                //else if (json["form"]["ModuleTitle"] != null && json["form"]["ModuleTitle"].Type == JTokenType.Object)
                //{
                //    if (json["form"]["ModuleTitle"][DnnUtils.GetCurrentCultureCode()] != null)
                //    {
                //        string moduleTitle = json["form"]["ModuleTitle"][DnnUtils.GetCurrentCultureCode()].ToString();
                //        OpenContentUtils.UpdateModuleTitle(ActiveModule, moduleTitle);
                //    }
                //}
                return(Request.CreateResponse(HttpStatusCode.OK, ""));
            }
            catch (Exception exc)
            {
                Log.Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
Example #10
0
        private string GenerateOutputDetail(Page page, TemplateManifest templateManifest, TemplateFiles files, JToken dataJson, string settingsJson)
        {
            // detail template
            if (!string.IsNullOrEmpty(files.Template))
            {
                FileUri templateUri = CheckFiles(templateManifest, files);

                if (dataJson != null)
                {
                    var mf = new ModelFactorySingle(_renderinfo.Data, settingsJson, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module);
                    mf.Detail = true;
                    object model;
                    if (templateUri.Extension != ".hbs") // razor
                    {
                        model = mf.GetModelAsDynamic();
                    }
                    else // handlebars
                    {
                        if (!App.Services.CreateGlobalSettingsRepository(PortalSettings.Current.PortalId).GetLegacyHandlebars())
                        {
                            model = mf.GetModelAsDictionary();
                        }
                        else
                        {
                            model = mf.GetModelAsDynamic();
                        }
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaTitle))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //page.Title
                        MetaTitle = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaTitle, model);
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaDescription))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //PageUtils.SetPageDescription(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaDescription, model));
                        MetaDescription = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaDescription, model);
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMeta))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        //PageUtils.SetPageMeta(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMeta, model));
                        MetaOther = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMeta, model);
                    }
                    return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
                }
                else
                {
                    return("");
                }
            }
            else
            {
                return("");
            }
        }
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     if (!Page.IsPostBack)
     {
         TemplateManifest template = ModuleContext.OpenContentSettings().Template;
         InitEditor(template);
     }
 }
Example #12
0
        public HttpResponseMessage Get(string entity)
        {
            try
            {
                OpenContentSettings settings = ActiveModule.OpenContentSettings();
                ModuleInfo          module   = ActiveModule;
                if (settings.ModuleId > 0)
                {
                    ModuleController mc = new ModuleController();
                    module = mc.GetModule(settings.ModuleId, settings.TabId, false);
                }
                var manifest = settings.Manifest;
                TemplateManifest templateManifest = settings.Template;
                if (manifest.AdditionalDataExists(entity))
                {
                    var dataManifest = manifest.AdditionalData[entity];
                    //string scope = AdditionalDataUtils.GetScope(dataManifest, PortalSettings.PortalId, ActiveModule.TabID, module.ModuleID, ActiveModule.TabModuleID);

                    //var templateFolder = string.IsNullOrEmpty(dataManifest.TemplateFolder) ? settings.TemplateDir : settings.TemplateDir.ParentFolder.Append(dataManifest.TemplateFolder);
                    //var fb = new FormBuilder(templateFolder);
                    //JObject json = fb.BuildForm(entity);
                    var res = new JObject();

                    int createdByUserid = -1;
                    var ds        = DataSourceManager.GetDataSource(manifest.DataSource);
                    var dsContext = new DataSourceContext()
                    {
                        PortalId       = PortalSettings.PortalId,
                        TabId          = ActiveModule.TabID,
                        ModuleId       = module.ModuleID,
                        TabModuleId    = ActiveModule.TabModuleID,
                        UserId         = UserInfo.UserID,
                        TemplateFolder = settings.TemplateDir.FolderPath,
                        Config         = manifest.DataSourceConfig,
                        //Options = reqOptions
                    };
                    var dsItem = ds.GetData(dsContext, dataManifest.ScopeType, dataManifest.StorageKey ?? entity);
                    if (dsItem != null)
                    {
                        var json = dsItem.Data;
                        createdByUserid = dsItem.CreatedByUserId;
                        JsonUtils.IdJson(json);
                        res[entity] = json;
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, res));
                }
                else
                {
                    return(Get(entity, 0, 100, null, null));
                }
            }
            catch (Exception exc)
            {
                Log.Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     if (!Page.IsPostBack)
     {
         TemplateManifest template = ModuleContext.OpenContentSettings().Template;
         InitEditor(template);
     }
     JavaScript.RequestRegistration(CommonJs.DnnPlugins);
 }
        protected void cmdSaveDefault_Click(object sender, EventArgs e)
        {
            if (sourceList.SelectedValue == DATATYPE_DATA)
            {
                var module = OpenContentModuleConfig.Create(this.ModuleConfiguration, PortalSettings);
                TemplateManifest template = module.Settings.Template;

                if (template != null)
                {
                    var dataFilename = template.MainTemplateUri().PhysicalFullDirectory + "\\data.json";
                    if (template.IsListTemplate)
                    {
                        string itemId = Request.QueryString["id"];
                        if (!string.IsNullOrEmpty(itemId))
                        {
                            File.WriteAllText(dataFilename, txtSource.Text);
                        }
                        else
                        {
                            JArray lst = null;
                            if (!string.IsNullOrEmpty(txtSource.Text))
                            {
                                lst = JArray.Parse(txtSource.Text);
                                if (lst.Count > 0)
                                {
                                    File.WriteAllText(dataFilename, lst[0].ToString());
                                }
                            }
                        }
                    }
                    else
                    {
                        File.WriteAllText(dataFilename, txtSource.Text);
                    }
                }
            }
            else if (sourceList.SelectedValue == DATATYPE_SETTINGS)
            {
                var module = OpenContentModuleConfig.Create(this.ModuleConfiguration, PortalSettings);
                TemplateManifest template = module.Settings.Template;
                var settingsFilename      = template.MainTemplateUri().PhysicalFullDirectory + "\\" + template.Key.ShortKey + "-data.json";
                File.WriteAllText(settingsFilename, txtSource.Text);
            }
            else if (sourceList.SelectedValue == DATATYPE_FILTER)
            {
                var module = OpenContentModuleConfig.Create(this.ModuleConfiguration, PortalSettings);
                TemplateManifest template = module.Settings.Template;
                var settingsFilename      = template.MainTemplateUri().PhysicalFullDirectory + "\\" + "filter-data.json";
                File.WriteAllText(settingsFilename, txtSource.Text);
            }
            else
            {
                //SaveAdditionalData(sourceList.SelectedValue);
            }
        }
Example #15
0
        public HttpResponseMessage Add(UpdateRequest req)
        {
            try
            {
                ModuleController mc          = new ModuleController();
                var  requestModule           = mc.GetModule(req.ModuleId, req.TabId, false);
                bool index                   = false;
                OpenContentSettings settings = requestModule.OpenContentSettings();
                ModuleInfo          module   = requestModule;
                if (settings.ModuleId > 0)
                {
                    module = mc.GetModule(settings.ModuleId, settings.TabId, false);
                }
                var manifest = settings.Template.Manifest;
                TemplateManifest templateManifest = settings.Template;
                index = settings.Template.Manifest.Index;
                string editRole = manifest.GetEditRole();

                bool listMode              = templateManifest != null && templateManifest.IsListTemplate;
                int  createdByUserid       = -1;
                OpenContentController ctrl = new OpenContentController();

                if (listMode)
                {
                    if (!OpenContentUtils.HasEditPermissions(PortalSettings, module, editRole, createdByUserid))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                    }
                    var             indexConfig = OpenContentUtils.GetIndexConfig(settings.Template.Key.TemplateDir);
                    OpenContentInfo content     = new OpenContentInfo()
                    {
                        ModuleId             = module.ModuleID,
                        Title                = ActiveModule.ModuleTitle,
                        Json                 = req.json.ToString(),
                        JsonAsJToken         = req.json,
                        CreatedByUserId      = UserInfo.UserID,
                        CreatedOnDate        = DateTime.Now,
                        LastModifiedByUserId = UserInfo.UserID,
                        LastModifiedOnDate   = DateTime.Now,
                        Html                 = "",
                    };
                    ctrl.AddContent(content, index, indexConfig);
                    return(Request.CreateResponse(HttpStatusCode.OK, ""));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "It's not a list mode module"));
                }
            }
            catch (Exception exc)
            {
                Log.Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
        private static ListItem NewListItem(string text, string value, string group, TemplateManifest template)
        {
            var li = new ListItem(text, value);

            li.Attributes["DataGroupField"] = group;
            var scriptFile = new FileUri(template.ManifestFolderUri.UrlFolder, value);

            if (!scriptFile.FileExists)
            {
                li.Attributes["CssClass"] = "fileNotExist";
            }
            return(li);
        }
Example #17
0
 protected ModelFactoryBase(string settingsJson, Manifest.Manifest manifest, TemplateManifest templateManifest, TemplateFiles templateFiles, OpenContentModuleConfig module, int portalId, string cultureCode)
 {
     this._settingsJson     = settingsJson;
     this._manifest         = manifest;
     this._templateFiles    = templateFiles;
     this._module           = module;
     this._cultureCode      = cultureCode;
     this._portalId         = portalId;
     this._templateManifest = templateManifest;
     this._collection       = templateManifest.Collection;
     this._detailTabId      = DnnUtils.GetTabByCurrentCulture(this._portalId, module.GetDetailTabId(), GetCurrentCultureCode());
     _ds        = DataSourceManager.GetDataSource(_manifest.DataSource);
     _dsContext = OpenContentUtils.CreateDataContext(_module);
 }
        private void InitEditor(TemplateManifest template)
        {
            LoadFiles(template);
            var scriptFile = new FileUri(template.ManifestFolderUri.UrlFolder, scriptList.SelectedValue);

            DisplayFile(scriptFile);

            /*
             * if (template.MainTemplateUri().FilePath.StartsWith(ModuleTemplateDirectory))
             * {
             *  cmdCustom.Visible = false;
             * }
             */
        }
Example #19
0
        protected ModelFactoryBase(OpenContentModuleConfig module, string collection)
        {
            OpenContentSettings settings = module.Settings;

            this._settingsJson     = settings.Data;
            this._manifest         = settings.Template.Manifest;
            this._templateFiles    = settings.Template?.Main;
            this._module           = module;
            this._portalId         = module.PortalId;
            this._templateManifest = settings.Template;
            this._collection       = collection;
            this._detailTabId      = DnnUtils.GetTabByCurrentCulture(this._portalId, module.GetDetailTabId(), GetCurrentCultureCode());
            _ds        = DataSourceManager.GetDataSource(_manifest.DataSource);
            _dsContext = OpenContentUtils.CreateDataContext(_module);
        }
Example #20
0
 private void BindTemplates(TemplateManifest template, FileUri otherModuleTemplate)
 {
     ddlTemplate.Items.Clear();
     ddlTemplate.Items.AddRange(OpenContentUtils.ListOfTemplatesFiles(ModuleContext.PortalSettings, ModuleContext.ModuleId, template, App.Config.Opencontent, otherModuleTemplate).ToArray());
     if (ddlTemplate.Items.Count == 0)
     {
         rblUseTemplate.Items[0].Enabled = false;
         rblUseTemplate.SelectedIndex    = 1;
         rblUseTemplate_SelectedIndexChanged(null, null);
         rblFrom.Items[0].Enabled = false;
         rblFrom.SelectedIndex    = 1;
         rblFrom_SelectedIndexChanged(null, null);
     }
     ActivateDetailPage();
 }
Example #21
0
        }                                    // alpaca options.json format

        public ModelFactory(JToken dataJson, string settingsJson, string physicalTemplateFolder, Manifest.Manifest manifest, TemplateManifest templateManifest, TemplateFiles templateFiles, ModuleInfo module, PortalSettings portalSettings, int mainTabId, int mainModuleId)
        {
            this.dataJson               = dataJson;
            this.settingsJson           = settingsJson;
            this.PhysicalTemplateFolder = physicalTemplateFolder;
            this.Manifest               = manifest;
            this.TemplateFiles          = templateFiles;
            this.Module           = module;
            this.PortalSettings   = portalSettings;
            this.PortalId         = portalSettings.PortalId;
            this.TemplateManifest = templateManifest;
            this.MainTabId        = mainTabId > 0 ? mainTabId : module.TabID;
            this.MainTabId        = DnnUtils.GetTabByCurrentCulture(this.PortalId, this.MainTabId, GetCurrentCultureCode());
            this.MainModuleId     = mainModuleId > 0 ? mainModuleId : module.ModuleID;
        }
Example #22
0
 public ModelFactory(IEnumerable <IDataItem> dataList, string settingsJson, string physicalTemplateFolder, Manifest.Manifest manifest, TemplateManifest templateManifest, TemplateFiles templateFiles, ModuleInfo module, int portalId, string cultureCode, int mainTabId, int mainModuleId)
 {
     this.DataList               = dataList;
     this.settingsJson           = settingsJson;
     this.PhysicalTemplateFolder = physicalTemplateFolder;
     this.Manifest               = manifest;
     this.TemplateFiles          = templateFiles;
     this.Module           = module;
     this.PortalId         = portalId;
     this.CultureCode      = cultureCode;
     this.TemplateManifest = templateManifest;
     this.MainTabId        = mainTabId > 0 ? mainTabId : module.TabID;
     this.MainTabId        = DnnUtils.GetTabByCurrentCulture(this.PortalId, this.MainTabId, GetCurrentCultureCode());
     this.MainModuleId     = mainModuleId > 0 ? mainModuleId : module.ModuleID;
 }
Example #23
0
 public HttpResponseMessage EditData(string key)
 {
     try
     {
         OpenContentSettings settings = ActiveModule.OpenContentSettings();
         ModuleInfo          module   = ActiveModule;
         if (settings.ModuleId > 0)
         {
             ModuleController mc = new ModuleController();
             module = mc.GetModule(settings.ModuleId, settings.TabId, false);
         }
         var manifest = settings.Manifest;
         TemplateManifest templateManifest = settings.Template;
         var dataManifest    = manifest.GetAdditionalData(key);
         var templateFolder  = string.IsNullOrEmpty(dataManifest.TemplateFolder) ? settings.TemplateDir : settings.TemplateDir.ParentFolder.Append(dataManifest.TemplateFolder);
         int createdByUserid = -1;
         var ds        = DataSourceManager.GetDataSource(manifest.DataSource);
         var dsContext = new DataSourceContext()
         {
             PortalId       = PortalSettings.PortalId,
             TabId          = ActiveModule.TabID,
             ModuleId       = module.ModuleID,
             TabModuleId    = ActiveModule.TabModuleID,
             UserId         = UserInfo.UserID,
             TemplateFolder = settings.TemplateDir.FolderPath,
             Config         = manifest.DataSourceConfig,
             //Options = reqOptions
         };
         var dsItem = ds.GetData(dsContext, dataManifest.ScopeType, dataManifest.StorageKey ?? key);
         var json   = ds.GetDataAlpaca(dsContext, true, true, true, key);
         if (dsItem != null)
         {
             json["data"] = dsItem.Data;
             var versions = ds.GetDataVersions(dsContext, dsItem);
             if (versions != null)
             {
                 json["versions"] = versions;
             }
             createdByUserid = dsItem.CreatedByUserId;
         }
         return(Request.CreateResponse(HttpStatusCode.OK, json));
     }
     catch (Exception exc)
     {
         Log.Logger.Error(exc);
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
     }
 }
Example #24
0
        public ModelFactory(IEnumerable <IDataItem> dataList, ModuleInfo module, PortalSettings portalSettings, int mainTabId)
        {
            OpenContentSettings settings = module.OpenContentSettings();

            this.DataList               = dataList;
            this.settingsJson           = settings.Data;
            this.PhysicalTemplateFolder = settings.Template.ManifestFolderUri.PhysicalFullDirectory + "\\";
            this.Manifest               = settings.Template.Manifest;
            this.TemplateFiles          = settings.Template != null ? settings.Template.Main : null;
            this.Module           = module;
            this.PortalSettings   = portalSettings;
            this.PortalId         = portalSettings.PortalId;
            this.TemplateManifest = settings.Template;
            this.MainTabId        = mainTabId > 0 ? mainTabId : module.TabID;
            this.MainTabId        = DnnUtils.GetTabByCurrentCulture(this.PortalId, this.MainTabId, GetCurrentCultureCode());
            this.MainModuleId     = settings.ModuleId > 0 ? settings.ModuleId : module.ModuleID;
        }
Example #25
0
        private void LoadFiles()
        {
            TemplateManifest template = ModuleContext.OpenContentSettings().Template;

            sourceList.Items.Clear();
            sourceList.Items.Add(new ListItem(DATATYPE_DATA, DATATYPE_DATA));
            sourceList.Items.Add(new ListItem(DATATYPE_SETTINGS, DATATYPE_SETTINGS));
            sourceList.Items.Add(new ListItem(DATATYPE_FILTER, DATATYPE_FILTER));
            if (template?.Manifest != null && template.Manifest.AdditionalDataDefined())
            {
                foreach (var addData in template.Manifest.AdditionalDataDefinition)
                {
                    string title = string.IsNullOrEmpty(addData.Value.Title) ? addData.Key : addData.Value.Title;
                    sourceList.Items.Add(new ListItem(title, addData.Key));
                }
            }
        }
        public ModelFactoryBase(OpenContentModuleInfo module, PortalSettings portalSettings, string collection)
        {
            OpenContentSettings settings = module.Settings;

            this._settingsJson           = settings.Data;
            this._physicalTemplateFolder = settings.Template.ManifestFolderUri.PhysicalFullDirectory + "\\";
            this._manifest         = settings.Template.Manifest;
            this._templateFiles    = settings.Template?.Main;
            this._module           = module;
            this._portalSettings   = portalSettings;
            this._portalId         = portalSettings.PortalId;
            this._templateManifest = settings.Template;
            this._collection       = collection;
            this._detailTabId      = DnnUtils.GetTabByCurrentCulture(this._portalId, module.GetDetailTabId(), GetCurrentCultureCode());
            _ds        = DataSourceManager.GetDataSource(_manifest.DataSource);
            _dsContext = OpenContentUtils.CreateDataContext(_module);
        }
        public ModelFactoryBase(string settingsJson, string physicalTemplateFolder, Manifest.Manifest manifest, TemplateManifest templateManifest, TemplateFiles templateFiles, OpenContentModuleInfo module, PortalSettings portalSettings)

        {
            this._settingsJson           = settingsJson;
            this._physicalTemplateFolder = physicalTemplateFolder;
            this._manifest         = manifest;
            this._templateFiles    = templateFiles;
            this._module           = module;
            this._portalSettings   = portalSettings;
            this._portalId         = portalSettings.PortalId;
            this._templateManifest = templateManifest;
            this._collection       = templateManifest == null ? AppConfig.DEFAULT_COLLECTION : templateManifest.Collection;
            this._detailTabId      = DnnUtils.GetTabByCurrentCulture(this._portalId, module.GetDetailTabId(), GetCurrentCultureCode());

            _ds        = DataSourceManager.GetDataSource(_manifest.DataSource);
            _dsContext = OpenContentUtils.CreateDataContext(_module);
        }
Example #28
0
        private string GenerateOutput(Page page, TemplateManifest templateManifest, TemplateFiles files, JToken dataJson, string settingsJson)
        {
            // detail template
            if (dataJson != null)
            {
                //todo check view permissions
            }
            var templateVirtualFolder = templateManifest.ManifestFolderUri.UrlFolder;

            if (!string.IsNullOrEmpty(files.Template))
            {
                string  physicalTemplateFolder = HostingEnvironment.MapPath(templateVirtualFolder);
                FileUri templateUri            = CheckFiles(templateManifest, files);

                if (dataJson != null)
                {
                    int          mainTabId = _settings.DetailTabId > 0 ? _settings.DetailTabId : _settings.TabId;
                    ModelFactory mf        = new ModelFactory(_renderinfo.Data, settingsJson, physicalTemplateFolder, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module, PortalSettings.Current, mainTabId, _settings.ModuleId);
                    dynamic      model     = mf.GetModelAsDynamic();
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaTitle))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        page.Title = hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaTitle, model);
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMetaDescription))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        PageUtils.SetPageDescription(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMetaDescription, model));
                    }
                    if (!string.IsNullOrEmpty(_renderinfo.Template.Manifest.DetailMeta))
                    {
                        HandlebarsEngine hbEngine = new HandlebarsEngine();
                        PageUtils.SetPageMeta(page, hbEngine.Execute(_renderinfo.Template.Manifest.DetailMeta, model));
                    }
                    return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
                }
                else
                {
                    return("");
                }
            }
            else
            {
                return("");
            }
        }
Example #29
0
        private void LoadFiles()
        {
            TemplateManifest template = ModuleContext.OpenContentSettings().Template;

            sourceList.Items.Clear();
            sourceList.Items.Add(new ListItem(cData, cData));
            sourceList.Items.Add(new ListItem(cSettings, cSettings));
            sourceList.Items.Add(new ListItem(cFilter, cFilter));
            if (template != null && template.Manifest != null && template.Manifest.AdditionalDataDefined())
            {
                foreach (var addData in template.Manifest.AdditionalDataDefinition)
                {
                    string title = string.IsNullOrEmpty(addData.Value.Title) ? addData.Key : addData.Value.Title;
                    sourceList.Items.Add(new ListItem(title, addData.Key));
                }
            }
        }
Example #30
0
        private string GenerateListOutput(Page page, TemplateManifest templateManifest, TemplateFiles files, IEnumerable <IDataItem> dataList, string settingsJson)
        {
            var templateVirtualFolder = templateManifest.ManifestFolderUri.UrlFolder;

            if (!string.IsNullOrEmpty(files.Template))
            {
                string  physicalTemplateFolder = HostingEnvironment.MapPath(templateVirtualFolder);
                FileUri templateUri            = CheckFiles(templateManifest, files);
                if (dataList != null)
                {
                    int          mainTabId = _settings.DetailTabId > 0 ? _settings.DetailTabId : _settings.TabId;
                    ModelFactory mf        = new ModelFactory(dataList, settingsJson, physicalTemplateFolder, _renderinfo.Template.Manifest, _renderinfo.Template, files, _module, PortalSettings.Current, mainTabId, _settings.ModuleId);
                    dynamic      model     = mf.GetModelAsDynamic();
                    return(ExecuteTemplate(page, templateManifest, files, templateUri, model));
                }
            }
            return("");
        }