public async Task <string> RenderViewAsync(EditModeModule module, EditModeModuleController.Model model) { // <div id='yEditControlDiv'> // action button (with id yEditControlButton) // </div> ModuleAction action = Manager.EditMode ? module.GetAction_SwitchToView() : module.GetAction_SwitchToEdit(); if (action != null) { YTagBuilder tag = new YTagBuilder("div"); tag.Attributes.Add("id", "yEditControlDiv"); if (Manager.SkinInfo.UsingBootstrap && Manager.SkinInfo.UsingBootstrapButtons) { action.CssClass = CssManager.CombineCss(action.CssClass, "btn btn-outline-primary"); } tag.InnerHtml = await action.RenderAsButtonIconAsync("yEditControlButton"); return(tag.ToString(YTagRenderMode.Normal)); } return(null); }
public async Task <string> RenderViewAsync(PageControlModule module, PageControlModuleController.PageControlModel model) { // <div id="yPageControlDiv"> // action button (with id tid_pagecontrolbutton) // module html... // </div> YTagBuilder tag = new YTagBuilder("div"); tag.Attributes.Add("id", "yPageControlDiv"); ModuleAction action = await module.GetAction_PageControlAsync(); tag.InnerHtml = await action.RenderAsButtonIconAsync("tid_pagecontrolbutton"); bool canEdit = model.EditAuthorized; bool canImportPage = false; bool canImportModule = false; bool canPageAdd = false; bool canModuleExistingAdd = false; bool canModuleNewAdd = false; bool canChangeSiteSkins = false; if (canEdit) { canImportPage = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_PageImport); canImportModule = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_ModuleImport); canPageAdd = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_PageAdd); canModuleExistingAdd = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_ModuleExistingAdd); canModuleNewAdd = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_ModuleNewAdd); canChangeSiteSkins = await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_SiteSkins); } bool canOtherUserLogin = !YetaWFManager.Deployed || await Resource.ResourceAccess.IsResourceAuthorizedAsync(CoreInfo.Resource_OtherUserLogin); string id = Info.PageControlMod; UI ui = new UI { TabsDef = new TabsDefinition() }; if (canEdit) { if (canPageAdd) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabNewPage", "New Page"), ToolTip = this.__ResStr("tabNewPageTT", "Add a new page to the site"), PaneCssClasses = "t_addNewPage", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_AddNewPage", module, model.AddNewPageModel)).ToString()); }, }); } } if (!Manager.CurrentPage.Temporary) { if (canEdit) { if (canModuleNewAdd) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabNew", "New Module"), ToolTip = this.__ResStr("tabNewTT", "Add a new module to this page (creates a new module)"), PaneCssClasses = "t_addNewMod", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_AddNewModule", module, model.AddNewModel)).ToString()); }, }); } if (canModuleExistingAdd) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabOld", "Existing Module"), ToolTip = this.__ResStr("tabOldTT", "Add an existing module to this page (this does not copy the module)"), PaneCssClasses = "t_addExistingMod", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_AddExistingModule", module, model.AddExistingModel)).ToString()); }, }); } if (canImportPage) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabImportPage", "Import Page"), ToolTip = this.__ResStr("tabImportPageTT", "Import a page (creates a new page)"), PaneCssClasses = "t_importPage", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_ImportPage", module, model.ImportPageModel)).ToString()); }, }); } if (canImportModule) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabImportModule", "Import Module"), ToolTip = this.__ResStr("tabImportModuleTT", "Import module data into this page (creates a new module)"), PaneCssClasses = "t_importMod", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_ImportModule", module, model.ImportModuleModel)).ToString()); }, }); } if (canChangeSiteSkins) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabSkins", "Skins"), ToolTip = this.__ResStr("tabSkinsTT", "Change default skins used site wide"), PaneCssClasses = "t_addSkins", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_SkinSelection", module, model.SkinSelectionModel)).ToString()); }, }); } } } if (canOtherUserLogin) { ui.TabsDef.Tabs.Add(new TabEntry { Caption = this.__ResStr("tabLogin", "Login"), ToolTip = this.__ResStr("tabLoginTT", "Change site or log in as another user"), PaneCssClasses = "t_login", RenderPaneAsync = async(int tabIndex) => { return((await HtmlHelper.ForViewAsync($"{Package.AreaName}_LoginSiteSelection", module, model.LoginSiteSelectionModel)).ToString()); }, }); } if (ui.TabsDef.Tabs.Count == 0) { return(" "); } HtmlBuilder hb = new HtmlBuilder(); hb.Append($@" {tag.ToString(YTagRenderMode.Normal)} <div id='{id}'> {await HtmlHelper.ForDisplayAsync(ui, nameof(ui.TabsDef), HtmlAttributes: new { __NoTemplate = true })} {await HtmlHelper.ForDisplayAsync(model, nameof(model.Actions))} </div>"); return(hb.ToString()); }