コード例 #1
0
 public List <TemplateDto> GetNewTemplates(bool web)
 {
     if (web)
     {
         var templates = GithubTemplateUtils.GetTemplateList(ActiveModule.PortalID).Where(t => t.Type == Components.Github.TypeEnum.Dir).OrderBy(t => t.Name);
         return(templates.Select(t => new TemplateDto()
         {
             Value = t.Path,
             Text = t.Name
         }).ToList());
     }
     else
     {
         var scriptFileSetting = ActiveModule.OpenContentSettings().Template;
         var templates         = OpenContentUtils.GetTemplates(PortalSettings, ActiveModule.ModuleID, scriptFileSetting, App.Config.Opencontent);
         return(templates.Select(t => new TemplateDto()
         {
             Value = t.Value,
             Text = t.Text
         }).ToList());
     }
 }
コード例 #2
0
        public ModuleStateDto SaveTemplate(SaveDto input)
        {
            ModuleController mc = new ModuleController();

            if (!input.otherModule) // this module
            {
                mc.DeleteModuleSetting(ActiveModule.ModuleID, "tabid");
                mc.DeleteModuleSetting(ActiveModule.ModuleID, "moduleid");
            }
            else // other module
            {
                var dsModule = (new ModuleController()).GetTabModule(input.tabModuleId);
                mc.UpdateModuleSetting(ActiveModule.ModuleID, "tabid", dsModule.TabID.ToString());
                mc.UpdateModuleSetting(ActiveModule.ModuleID, "moduleid", dsModule.ModuleID.ToString());
            }
            if (!input.newTemplate) // existing
            {
                mc.UpdateModuleSetting(ActiveModule.ModuleID, "template", input.template);
                ActiveModule.ModuleSettings["template"] = input.template;
            }
            else // new
            {
                try
                {
                    if (!input.fromWeb) // site
                    {
                        string oldFolder = HostingEnvironment.MapPath(input.template);
                        var    template  = OpenContentUtils.CopyTemplate(ActiveModule.PortalID, oldFolder, input.templateName);
                        mc.UpdateModuleSetting(ActiveModule.ModuleID, "template", template);
                        ActiveModule.ModuleSettings["template"] = template;
                    }
                    else  // web
                    {
                        //string fileName = ddlTemplate.SelectedValue;
                        //string template = OpenContentUtils.ImportFromWeb(ModuleContext.PortalId, fileName, tbTemplateName.Text);
                        //mc.UpdateModuleSetting(ModuleContext.ModuleId, "template", template);
                        //ModuleContext.Settings["template"] = template;
                        //string fileName = ddlTemplate.SelectedValue;

                        var template = GithubTemplateUtils.ImportFromGithub(ActiveModule.PortalID, input.template, input.template, input.templateName);

                        mc.UpdateModuleSetting(ActiveModule.ModuleID, "template", template);
                        ActiveModule.ModuleSettings["template"] = template;
                    }
                }
                catch (Exception ex)
                {
                    return(new ModuleStateDto()
                    {
                        Error = ex.Message
                    });
                }
            }
            //mc.UpdateModuleSetting(ActiveModule.ModuleID, "detailtabid", ddlDetailPage.SelectedValue);


            //don't reset settings. Sure they might be invalid, but maybe not. And you can't ever revert.
            //mc.DeleteModuleSetting(ModuleContext.ModuleId, "data");

            var settings         = ActiveModule.OpenContentSettings();
            var templateManifest = settings.Template;

            if (templateManifest.SettingsNeeded())
            {
                var settingsFilename = templateManifest.MainTemplateUri().PhysicalFullDirectory + "\\" + templateManifest.Key.ShortKey + "-data.json";
                if (File.Exists(settingsFilename))
                {
                    var settingContent = File.ReadAllText(settingsFilename);
                    mc.UpdateModuleSetting(ActiveModule.ModuleID, "data", settingContent);
                    ActiveModule.ModuleSettings["data"] = settingContent;
                    settings = ActiveModule.OpenContentSettings();
                }
            }
            bool defaultData = false;

            if (templateManifest.DataNeeded())
            {
                var dataFilename = templateManifest.MainTemplateUri().PhysicalFullDirectory + "\\data.json";
                if (File.Exists(dataFilename))
                {
                    var         module    = OpenContentModuleConfig.Create(ActiveModule, PortalSettings);
                    IDataSource ds        = DataSourceManager.GetDataSource(settings.Manifest.DataSource);
                    var         dsContext = OpenContentUtils.CreateDataContext(module, UserInfo.UserID);
                    ds.Add(dsContext, JObject.Parse(File.ReadAllText(dataFilename)));
                    defaultData = true;
                }
            }

            return(new ModuleStateDto()
            {
                SettingsNeeded = templateManifest.SettingsNeeded(),
                SettingsDefined = !string.IsNullOrEmpty(settings.Data),
                DataNeeded = settings.Template.DataNeeded() && !defaultData,
                Template = settings.TemplateKey.ToString(),
                Error = ""
            });
        }