private void InstallJavaScriptFiles(string assemblyName, IEnumerable <string> resourceNames) { var jsFiles = GetJavaScriptFiles(assemblyName, resourceNames); foreach (var theme in Themes.List(ThemeTypes.Site)) { var supportedTheme = SupportedThemes.Get(theme.Id); if (supportedTheme == null) { continue; } var themeName = supportedTheme.Name; foreach (var jsFile in jsFiles.ToList()) { using (var stream = EmbeddedResources.GetStream(jsFile.Path)) { if (theme.IsConfigurationBased) { ThemeFiles.AddUpdateFactoryDefault(theme, ThemeProperties.JavascriptFiles, jsFile.Name, stream, (int)stream.Length); stream.Seek(0, SeekOrigin.Begin); } ThemeFiles.AddUpdate(theme, ThemeTypes.Site, ThemeProperties.JavascriptFiles, jsFile.Name, stream, (int)stream.Length); } } } }
public void Ctor_ScriptsIsNull_ScriptsPropertyIsEmpty() { // arrange, act var sut = new ThemeFiles(Enumerable.Empty <ThemeInclude>(), null); // assert Assert.That(sut.Scripts, Is.Empty); }
public void Ctor_StylesheetsIsNull_StylesheetsPropertyIsEmpty() { // arrange, act var sut = new ThemeFiles(null, Enumerable.Empty <ThemeScriptInclude>()); // assert Assert.That(sut.Stylesheets, Is.Empty); }
public override void Initialize(Rendering rendering) { base.Initialize(rendering); #pragma warning disable CS0618 // Type or member is obsolete ThemeItem = CurrentBlog.Theme.Item; #pragma warning restore CS0618 // Type or member is obsolete ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item); }
internal void ResetCache() { Services.Get <IFactoryDefaultScriptedContentFragmentService>().ExpireCache(); Services.Get <IScriptedContentFragmentService>().ExpireCache(); Services.Get <IContentFragmentPageService>().RemoveAllFromCache(); Services.Get <IContentFragmentService>().RefreshContentFragments(); ThemeFiles.RequestHostVersionedThemeFileRegeneration(); SystemFileStore.RequestHostVersionedThemeFileRegeneration(); }
private static string GetHostVersionPath(Guid themeTypeId, Guid themeContextId, string themeName, string propertyName) { return(CentralizedFileStorage.MakePath(new[] { "h", GetCurrentHostVersionKey(), ThemeFiles.MakePath(themeTypeId, themeContextId, themeName, propertyName) })); }
public void Install(Version lastInstalledVersion) { if (lastInstalledVersion == _emptyVersion) { var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Zimbra.Community.Extensions.TableOfContents.Resources.styles.css"); foreach (var theme in Themes.List(ThemeTypes.Site)) { ThemeFiles.AddUpdateFactoryDefault(theme, "cssFiles", "TableofContents.css", stream, (int)stream.Length); } } }
public void Ctor_WhenCalled_SetsScriptsProperty() { // arrange var script1 = new ThemeScriptInclude("url1.js", "fb1.js", "ob1"); var script2 = new ThemeScriptInclude("url2.js", "fb2.js", "ob2"); // act var sut = new ThemeFiles(Enumerable.Empty <ThemeInclude>(), new[] { script1, script2 }); // assert var scripts = sut.Scripts; Assert.That(scripts, Contains.Item(script1)); Assert.That(scripts, Contains.Item(script2)); }
public void Ctor_WhenCalled_SetsStylesheetsProperty() { // arrange var stylesheet1 = new ThemeInclude("file1.css"); var stylesheet2 = new ThemeInclude("file2.css"); // act var sut = new ThemeFiles(new[] { stylesheet1, stylesheet2 }, Enumerable.Empty <ThemeScriptInclude>()); // assert var stylesheets = sut.Stylesheets; Assert.That(stylesheets, Contains.Item(stylesheet1)); Assert.That(stylesheets, Contains.Item(stylesheet2)); }
internal void RevertFiles() { List <ThemeFileInfo> themeFileInfoList = ThemeFileInfos.ToList(); ThemeConfigurationData configuration = ThemeConfigurationDatas.GetFactoryDefaultThemeConfigurationData(_siteThemeTypeId, _siteThemeName); themeFileInfoList.ForEach(info => { if (info.HasConfiguredVersion) { ThemeFiles.DeleteFile(info.ThemeFile.ThemeTypeID, info.ThemeFile.ThemeContextID, info.ThemeFile.ThemeName, info.ThemeFile.PropertyName, info.ThemeFile.FileName); return; } if (info.HasDeletedConfiguredVersion) { IEnumerable <ThemeFile> themeFiles = ThemeFiles.DeserializeThemeFiles(configuration, info.ThemeFile.PropertyName, configuration.GetCustomValue(info.ThemeFile.PropertyName, String.Empty)); ThemeFile themeFile = themeFiles.FirstOrDefault( t => String.Compare(t.FileName, info.ThemeFile.FileName, StringComparison.OrdinalIgnoreCase) == 0); if (themeFile != null) { IList <ThemeFile> list = ThemeFiles.DeserializeThemeFiles(_siteThemeTypeId, _themeContextId, _siteThemeName, info.ThemeFile.PropertyName, _themeConfigurationData.GetCustomValue( info.ThemeFile.PropertyName, String.Empty)); list.Add(themeFile); string value = ThemeFiles.SerializeThemeFiles(list); _themeConfigurationData.SetCustomValue( info.ThemeFile.PropertyName, value); ThemeConfigurationDatas.Update(_themeConfigurationData); } } }); }
private void RemoveJavaScriptFiles(string assemblyName, IEnumerable <string> resourceNames) { List <string> jsFiles = GetJavaScriptFiles(assemblyName, resourceNames) .GroupBy(res => res.Name) .Select(res => res.Key).ToList(); foreach (var theme in Themes.List(ThemeTypes.Site)) { foreach (var jsFileName in jsFiles) { ThemeFiles.Remove(theme, ThemeTypes.Site, ThemeProperties.JavascriptFiles, jsFileName); if (theme.IsConfigurationBased) { ThemeFiles.RemoveFactoryDefault(theme, ThemeProperties.JavascriptFiles, jsFileName); } } } }
public override void Initialize(Rendering rendering) { base.Initialize(rendering); ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item); }
protected void Page_Load(object sender, EventArgs e) { ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item); }