public async Task <string> GetScriptAsync() { var allFeatures = _featureManager.GetAll().ToList(); var currentValues = new Dictionary <string, string>(); if (AbpSession.TenantId.HasValue) { var currentTenantId = AbpSession.GetTenantId(); foreach (var feature in allFeatures) { currentValues[feature.Name] = await _featureChecker.GetValueAsync(currentTenantId, feature.Name); } } else { foreach (var feature in allFeatures) { currentValues[feature.Name] = feature.DefaultValue; } } var script = new StringBuilder(); script.AppendLine("(function() {"); script.AppendLine(); script.AppendLine(" abp.features = abp.features || {};"); script.AppendLine(); script.AppendLine(" abp.features.allFeatures = {"); for (var i = 0; i < allFeatures.Count; i++) { var feature = allFeatures[i]; script.AppendLine(" '" + HttpEncode.JavaScriptStringEncode(feature.Name) + "': {"); script.AppendLine(" value: '" + HttpEncode.JavaScriptStringEncode(currentValues[feature.Name]) + "'"); script.Append(" }"); if (i < allFeatures.Count - 1) { script.AppendLine(","); } else { script.AppendLine(); } } script.AppendLine(" };"); script.AppendLine(); script.Append("})();"); return(script.ToString()); }
private static void AppendMenuItem(int indentLength, StringBuilder sb, UserMenuItem menuItem) { sb.AppendLine("{"); sb.AppendLine(new string(' ', indentLength + 4) + "name: '" + HttpEncode.JavaScriptStringEncode(menuItem.Name) + "',"); sb.AppendLine(new string(' ', indentLength + 4) + "order: " + menuItem.Order + ","); if (!string.IsNullOrEmpty(menuItem.Icon)) { sb.AppendLine(new string(' ', indentLength + 4) + "icon: '" + HttpEncode.JavaScriptStringEncode(menuItem.Icon) + "',"); } if (!string.IsNullOrEmpty(menuItem.Url)) { sb.AppendLine(new string(' ', indentLength + 4) + "url: '" + HttpEncode.JavaScriptStringEncode(menuItem.Url) + "',"); } if (menuItem.DisplayName != null) { sb.AppendLine(new string(' ', indentLength + 4) + "displayName: '" + HttpEncode.JavaScriptStringEncode(menuItem.DisplayName) + "',"); } if (menuItem.CustomData != null) { sb.AppendLine(new string(' ', indentLength + 4) + "customData: " + menuItem.CustomData.ToJsonString(true) + ","); } if (menuItem.Target != null) { sb.AppendLine(new string(' ', indentLength + 4) + "target: '" + HttpEncode.JavaScriptStringEncode(menuItem.Target) + "',"); } sb.AppendLine(new string(' ', indentLength + 4) + "isEnabled: " + menuItem.IsEnabled.ToString().ToLowerInvariant() + ","); sb.AppendLine(new string(' ', indentLength + 4) + "isVisible: " + menuItem.IsVisible.ToString().ToLowerInvariant() + ","); sb.Append(new string(' ', indentLength + 4) + "items: ["); for (int i = 0; i < menuItem.Items.Count; i++) { AppendMenuItem(24, sb, menuItem.Items[i]); if (menuItem.Items.Count - 1 > i) { sb.Append(" , "); } } sb.AppendLine("]"); sb.Append(new string(' ', indentLength) + "}"); }
public async Task <string> GetScriptAsync() { var script = new StringBuilder(); script.AppendLine("(function(){"); script.AppendLine(" CodeZero.setting = CodeZero.setting || {};"); script.AppendLine(" CodeZero.setting.values = {"); var settingDefinitions = _settingDefinitionManager .GetAllSettingDefinitions(); var added = 0; using (var scope = _iocResolver.CreateScope()) { foreach (var settingDefinition in settingDefinitions) { if (!await settingDefinition.ClientVisibilityProvider.CheckVisible(scope)) { continue; } if (added > 0) { script.AppendLine(","); } else { script.AppendLine(); } var settingValue = await _settingManager.GetSettingValueAsync(settingDefinition.Name); script.Append(" '" + settingDefinition.Name.Replace("'", @"\'") + "': " + (settingValue == null ? "null" : "'" + HttpEncode.JavaScriptStringEncode(settingValue) + "'")); ++added; } } script.AppendLine(); script.AppendLine(" };"); script.AppendLine(); script.Append("})();"); return(script.ToString()); }
private static void AppendPermissionList(StringBuilder script, string name, IReadOnlyList <string> permissions) { script.AppendLine(" abp.auth." + name + " = {"); for (var i = 0; i < permissions.Count; i++) { var permission = permissions[i]; if (i < permissions.Count - 1) { script.AppendLine(" '" + HttpEncode.JavaScriptStringEncode(permission) + "': true,"); } else { script.AppendLine(" '" + HttpEncode.JavaScriptStringEncode(permission) + "': true"); } } script.AppendLine(" };"); }
private static void AppendMenu(StringBuilder script, UserMenu menu) { script.AppendLine(" '" + HttpEncode.JavaScriptStringEncode(menu.Name) + "': {"); script.AppendLine(" name: '" + HttpEncode.JavaScriptStringEncode(menu.Name) + "',"); if (menu.DisplayName != null) { script.AppendLine(" displayName: '" + HttpEncode.JavaScriptStringEncode(menu.DisplayName) + "',"); } if (menu.CustomData != null) { script.AppendLine(" customData: " + menu.CustomData.ToJsonString(true) + ","); } script.Append(" items: "); if (menu.Items.Count <= 0) { script.AppendLine("[]"); } else { script.Append("["); for (int i = 0; i < menu.Items.Count; i++) { AppendMenuItem(16, script, menu.Items[i]); if (menu.Items.Count - 1 > i) { script.Append(" , "); } } script.AppendLine("]"); } script.AppendLine(" }"); }
private string BuildAll(CultureInfo cultureInfo) { var script = new StringBuilder(); script.AppendLine("(function(){"); script.AppendLine(); script.AppendLine(" abp.localization = abp.localization || {};"); script.AppendLine(); script.AppendLine(" abp.localization.currentCulture = {"); script.AppendLine(" name: '" + HttpEncode.JavaScriptStringEncode(cultureInfo.Name) + "',"); script.AppendLine(" displayName: '" + HttpEncode.JavaScriptStringEncode(cultureInfo.DisplayName) + "'"); script.AppendLine(" };"); script.AppendLine(); script.Append(" abp.localization.languages = ["); var languages = _languageManager.GetLanguages(); for (var i = 0; i < languages.Count; i++) { var language = languages[i]; script.AppendLine("{"); script.AppendLine(" name: '" + HttpEncode.JavaScriptStringEncode(language.Name) + "',"); script.AppendLine(" displayName: '" + HttpEncode.JavaScriptStringEncode(language.DisplayName) + "',"); script.AppendLine(" icon: '" + HttpEncode.JavaScriptStringEncode(language.Icon) + "',"); script.AppendLine(" isDisabled: " + language.IsDisabled.ToString().ToLowerInvariant() + ","); script.AppendLine(" isDefault: " + language.IsDefault.ToString().ToLowerInvariant()); script.Append(" }"); if (i < languages.Count - 1) { script.Append(" , "); } } script.AppendLine("];"); script.AppendLine(); if (languages.Count > 0) { var currentLanguage = _languageManager.CurrentLanguage; script.AppendLine(" abp.localization.currentLanguage = {"); script.AppendLine(" name: '" + HttpEncode.JavaScriptStringEncode(currentLanguage.Name) + "',"); script.AppendLine(" displayName: '" + HttpEncode.JavaScriptStringEncode(currentLanguage.DisplayName) + "',"); script.AppendLine(" icon: '" + HttpEncode.JavaScriptStringEncode(currentLanguage.Icon) + "',"); script.AppendLine(" isDisabled: " + currentLanguage.IsDisabled.ToString().ToLowerInvariant() + ","); script.AppendLine(" isDefault: " + currentLanguage.IsDefault.ToString().ToLowerInvariant()); script.AppendLine(" };"); } var sources = _localizationManager.GetAllSources().OrderBy(s => s.Name).ToArray(); script.AppendLine(); script.AppendLine(" abp.localization.sources = ["); for (int i = 0; i < sources.Length; i++) { var source = sources[i]; script.AppendLine(" {"); script.AppendLine(" name: '" + HttpEncode.JavaScriptStringEncode(source.Name) + "',"); script.AppendLine(" type: '" + source.GetType().Name + "'"); script.AppendLine(" }" + (i < (sources.Length - 1) ? "," : "")); } script.AppendLine(" ];"); script.AppendLine(); script.AppendLine(" abp.localization.values = abp.localization.values || {};"); script.AppendLine(); foreach (var source in sources) { script.Append(" abp.localization.values['" + HttpEncode.JavaScriptStringEncode(source.Name) + "'] = "); var stringValues = source.GetAllStrings(cultureInfo).OrderBy(s => s.Name).ToList(); var stringJson = stringValues .ToDictionary(_ => HttpEncode.JavaScriptStringEncode(_.Name), _ => HttpEncode.JavaScriptStringEncode(_.Value)) .ToJsonString(indented: true); script.Append(stringJson); script.AppendLine(";"); script.AppendLine(); } script.AppendLine(); script.Append("})();"); return(script.ToString()); }