public async Task <IActionResult> Edit(int id, [Bind("Id,EntryId,ThemeId")] ThemeEntry themeEntry) { if (id != themeEntry.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(themeEntry); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ThemeEntryExists(themeEntry.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ThemeId"] = new SelectList(_context.Theme, "Id", "Id", themeEntry.ThemeId); return(View(themeEntry)); }
public async Task <IActionResult> Create([Bind("Id,UserId,Title,Description,Date")] Entry entry, CreateEntryViewModel model) { var user = await GetCurrentUserAsync(); if (ModelState.IsValid) { var selected = model.Themes.Where(x => x.IsChecked).Select(x => x.Id).ToList(); entry.ThemeEntries = new List <ThemeEntry>(); foreach (var s in selected) { ThemeEntry te = new ThemeEntry() { EntryId = entry.Id, ThemeId = s }; entry.ThemeEntries.Add(te); } entry.Date = DateTime.Today; entry.UserId = user.Id; _context.Add(entry); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(entry)); }
public ActionResult Index() { bool installThemes = _featureManager.GetEnabledFeatures().FirstOrDefault(f => f.Id == "PackagingServices") != null; var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate(); ThemeEntry currentTheme = null; ExtensionDescriptor currentThemeDescriptor = _siteThemeService.GetSiteTheme(); if (currentThemeDescriptor != null) { currentTheme = new ThemeEntry(currentThemeDescriptor); } IEnumerable <ThemeEntry> themes = _extensionManager.AvailableExtensions() .Where(extensionDescriptor => { bool hidden = false; string tags = extensionDescriptor.Tags; if (tags != null) { hidden = tags.Split(',').Any(t => t.Trim().Equals("hidden", StringComparison.OrdinalIgnoreCase)); } // is the theme allowed for this tenant ? bool allowed = _shellSettings.Themes.Length == 0 || _shellSettings.Themes.Contains(extensionDescriptor.Id); return(!hidden && allowed && DefaultExtensionTypes.IsTheme(extensionDescriptor.ExtensionType) && (currentTheme == null || !currentTheme.Descriptor.Id.Equals(extensionDescriptor.Id))); }) .Select(extensionDescriptor => { ThemeEntry themeEntry = new ThemeEntry(extensionDescriptor) { NeedsUpdate = featuresThatNeedUpdate.Contains(extensionDescriptor.Id), IsRecentlyInstalled = _themeService.IsRecentlyInstalled(extensionDescriptor), Enabled = _shellDescriptor.Features.Any(sf => sf.Name == extensionDescriptor.Id), CanUninstall = installThemes }; if (_extensionDisplayEventHandler != null) { foreach (string notification in _extensionDisplayEventHandler.Displaying(themeEntry.Descriptor, ControllerContext.RequestContext)) { themeEntry.Notifications.Add(notification); } } return(themeEntry); }) .ToArray(); return(View(new ThemesIndexViewModel { CurrentTheme = currentTheme, InstallThemes = installThemes, Themes = themes })); }
private void WriteThemeLines(ThemeEntry theme) { Context.Output.WriteLine(T(" Name: {0}", theme.Name)); Context.Output.WriteLine(T(" State: {0}", theme.Enabled ? T("Enabled") : T("Disabled"))); Context.Output.WriteLine(T(" NeedsUpdate: {0}", theme.NeedsUpdate ? T("Yes") : T("No"))); Context.Output.WriteLine(T(" Author: {0}", theme.Descriptor.Author)); Context.Output.WriteLine(T(" Version: {0}", theme.Descriptor.Version)); Context.Output.WriteLine(T(" Description: {0}", theme.Descriptor.Description)); Context.Output.WriteLine(T(" Website: {0}", theme.Descriptor.WebSite)); Context.Output.WriteLine(T(" Zones: {0}", string.Join(", ", theme.Descriptor.Zones))); Context.Output.WriteLine(); }
public async Task <IActionResult> Create([Bind("Id,EntryId,ThemeId")] ThemeEntry themeEntry) { if (ModelState.IsValid) { _context.Add(themeEntry); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ThemeId"] = new SelectList(_context.Theme, "Id", "Id", themeEntry.ThemeId); return(View(themeEntry)); }
public IList <string> GetDisplayPluginsFor(Enums.DisplayTemplate displayTemplate) { ThemeEntry currentTheme = null; ExtensionDescriptor currentThemeDescriptor = _siteThemeService.GetSiteTheme(); if (currentThemeDescriptor != null) { currentTheme = new ThemeEntry(currentThemeDescriptor); } System.Configuration.Configuration config; try { config = _localConfiguration.GetConfiguration(currentTheme.Descriptor.Path.StartsWith("~/Themes/") ? currentTheme.Descriptor.Path : "" + "~/Themes/" + currentTheme.Descriptor.Path); return(config.AppSettings.Settings["DisplayPluginsFor" + displayTemplate.ToString()].Value.Split(new string[] { ",", ";", "|" }, StringSplitOptions.RemoveEmptyEntries) .Select(s => displayTemplate + " - " + s.Trim()).ToList()); } catch { return(null); } finally { config = null; } }
public string GetDisplayPluginsPreviewImage() { ThemeEntry currentTheme = null; ExtensionDescriptor currentThemeDescriptor = _siteThemeService.GetSiteTheme(); if (currentThemeDescriptor != null) { currentTheme = new ThemeEntry(currentThemeDescriptor); } var previewPath = (currentTheme.Descriptor.Path.StartsWith("~/Themes/") ? currentTheme.Descriptor.Path : "" + "~/Themes/" + currentTheme.Descriptor.Path) + "/images/HighlightsDisplayPluginsPreview.jpg"; currentTheme = null; if (File.Exists(_orchardServices.WorkContext.HttpContext.Server.MapPath(previewPath))) { return(previewPath); } else { return(String.Empty); } }
public async Task <ActionResult> Index() { var installThemes = await _authorizationService.AuthorizeAsync(User, StandardPermissions.SiteOwner); // only site owners if (!installThemes) { return(Forbid()); } //&& _shellSettings.Name == ShellSettings.; // of the default tenant //&& _featureManager.GetEnabledFeatures().FirstOrDefault(f => f.Id == "PackagingServices") != null //var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate(); var currentSiteThemeExtensionInfo = await _siteThemeService.GetSiteThemeAsync(); var currentAdminThemeExtensionInfo = await _adminThemeService.GetAdminThemeAsync(); var currentAdminTheme = currentAdminThemeExtensionInfo != null ? new ThemeEntry(currentAdminThemeExtensionInfo) : default(ThemeEntry); var currentSiteTheme = currentSiteThemeExtensionInfo != null ? new ThemeEntry(currentSiteThemeExtensionInfo) : default(ThemeEntry); var enabledFeatures = await _shellFeaturesManager.GetEnabledFeaturesAsync(); var themes = _extensionManager.GetExtensions().OfType <IThemeExtensionInfo>().Where(extensionDescriptor => { var tags = extensionDescriptor.Manifest.Tags.ToArray(); var isHidden = tags.Any(x => string.Equals(x, "hidden", StringComparison.OrdinalIgnoreCase)); // Is the theme allowed for this tenant? // allowed = _shellSettings.Themes.Length == 0 || _shellSettings.Themes.Contains(extensionDescriptor.Id); return(!isHidden); }) .Select(extensionDescriptor => { var isAdmin = IsAdminTheme(extensionDescriptor.Manifest); var themeId = isAdmin ? currentAdminTheme?.Extension.Id : currentSiteTheme?.Extension.Id; var isCurrent = extensionDescriptor.Id == themeId; var isEnabled = enabledFeatures.Any(x => x.Extension.Id == extensionDescriptor.Id); var themeEntry = new ThemeEntry(extensionDescriptor) { //NeedsUpdate = featuresThatNeedUpdate.Contains(extensionDescriptor.Id), //IsRecentlyInstalled = _themeService.IsRecentlyInstalled(extensionDescriptor), Enabled = isEnabled, CanUninstall = installThemes, IsAdmin = isAdmin, IsCurrent = isCurrent }; //if (_extensionDisplayEventHandler != null) //{ // foreach (string notification in _extensionDisplayEventHandler.Displaying(themeEntry.Descriptor, ControllerContext.RequestContext)) // { // themeEntry.Notifications.Add(notification); // } //} return(themeEntry); }) .OrderByDescending(x => x.IsCurrent); var model = new SelectThemesViewModel { CurrentSiteTheme = currentSiteTheme, CurrentAdminTheme = currentAdminTheme, Themes = themes }; return(View(model)); }
public async Task <ActionResult> Index() { var installThemes = await _authorizationService.AuthorizeAsync(User, StandardPermissions.SiteOwner); // only site owners if (!installThemes) { return(Forbid()); } var currentSiteThemeExtensionInfo = await _siteThemeService.GetSiteThemeAsync(); var currentAdminThemeExtensionInfo = await _adminThemeService.GetAdminThemeAsync(); var currentAdminTheme = currentAdminThemeExtensionInfo != null ? new ThemeEntry(currentAdminThemeExtensionInfo) : default(ThemeEntry); var currentSiteTheme = currentSiteThemeExtensionInfo != null ? new ThemeEntry(currentSiteThemeExtensionInfo) : default(ThemeEntry); var enabledFeatures = await _shellFeaturesManager.GetEnabledFeaturesAsync(); var themes = (await _shellFeaturesManager.GetAvailableFeaturesAsync()) .Where(f => { if (!f.IsTheme()) { return(false); } var tags = f.Extension.Manifest.Tags.ToArray(); var isHidden = tags.Any(t => String.Equals(t, "hidden", StringComparison.OrdinalIgnoreCase)); if (isHidden) { return(false); } return(true); }) .Select(f => { var isAdmin = IsAdminTheme(f.Extension.Manifest); var themeId = isAdmin ? currentAdminTheme?.Extension.Id : currentSiteTheme?.Extension.Id; var isCurrent = f.Id == themeId; var isEnabled = enabledFeatures.Any(e => e.Id == f.Id); var themeEntry = new ThemeEntry(f.Extension) { Enabled = isEnabled, CanUninstall = installThemes, IsAdmin = isAdmin, IsCurrent = isCurrent }; return(themeEntry); }) .OrderByDescending(t => t.IsCurrent); var model = new SelectThemesViewModel { CurrentSiteTheme = currentSiteTheme, CurrentAdminTheme = currentAdminTheme, Themes = themes }; return(View(model)); }