public ActionResult MobileReset() { var handler = new ThemeHandler(MASTERdomain, true); var source = handler.GetMobileThemeRepositorySourceDir(); handler.CopyThemeToUserThemeDirectory(source); return(Json("Mobile theme has been reset".ToJsonOKMessage())); }
public ActionResult InstallMobileTheme() { foreach (var sd in db.MASTERsubdomains) { var handler = new ThemeHandler(sd, true); var source = handler.GetMobileThemeRepositorySourceDir(); handler.CopyThemeToUserThemeDirectory(source); } return(Content("done")); }
public ActionResult Current(string name) { const string rootdir = GeneralConstants.APP_ROOT_DIR + Themepath; var dir = new DirectoryInfo(rootdir); DirectoryInfo selected = null; foreach (var themedir in dir.GetDirectories()) { if (themedir.Name == name) { selected = themedir; break; } } if (selected == null) { return(RedirectToAction("Index", "error", new { Area = "" })); } try { var handler = new ThemeHandler(MASTERdomain, false); handler.CopyThemeToUserThemeDirectory(selected); } catch (Exception ex) { Syslog.Write(ex); return(RedirectToAction("Index", "error", new { Area = "" })); } // save theme var theme = MASTERdomain.theme; if (theme == null) { theme = new theme(); MASTERdomain.theme = theme; } theme.title = name; theme.url = string.Format("{0}/{1}/thumb.jpg", Themepath, selected.Name); theme.created = DateTime.UtcNow; repository.Save(); // need to invalidate any cached liquid assets CacheHelper.Instance.invalidate_dependency(DependencyType.liquid_assets, MASTERdomain.uniqueid); return(RedirectToAction("Index")); }
public ActionResult Editor(bool ismobile) { // check that there are theme files, otherwise copy var handler = new ThemeHandler(MASTERdomain, ismobile); if (!handler.IsCustom && !handler.ThemeCopiedOK()) { DirectoryInfo sourceThemeDir = ismobile ? handler.GetMobileThemeRepositorySourceDir() : handler.GetThemeRepositorySourceDir(); if (sourceThemeDir == null) { throw new NotImplementedException(); } handler.CopyThemeToUserThemeDirectory(sourceThemeDir); } var viewmodel = new ThemeEditorViewModel() { themeType = ismobile ? ThemeType.MOBILE : ThemeType.MAIN }; var themedir = handler.GetThemeDirectory(); foreach (var dir in themedir.GetDirectories().OrderByDescending(x => x.Name)) { var folder = new ThemeDirectory() { foldername = dir.Name }; switch (dir.Name) { case "templates": viewmodel.templates_folder = folder; break; case "assets": viewmodel.asset_folder = folder; break; case "snippets": viewmodel.snippets_folder = folder; break; case "layout": viewmodel.layout_folder = folder; break; case "config": viewmodel.config_folder = folder; break; default: throw new ArgumentException("Unknown directory " + dir.Name); } foreach (var entry in dir.GetFiles()) { var ext = entry.Extension.ToLower(); var file = new ThemeFile(); file.classname = string.Format("ext_{0}", ext.Substring(1)); file.url = string.Format("/{0}/{1}", dir.Name, entry.Name); file.filename = entry.Name; folder.files.Add(file); } } return(View(viewmodel)); }