Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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();
 }
Esempio n. 5
0
        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));
        }
Esempio n. 9
0
        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));
        }