private void ApplyXmlConfig(WidgetDefinition widget, XElement xml) { var displayName = xml.ChildElementValue("display-name"); if (!String.IsNullOrEmpty(displayName)) { widget.DisplayName = new LocalizableText(displayName); } var category = xml.ChildElementValue("category"); if (!String.IsNullOrEmpty(category)) { widget.Category = new LocalizableText(category); widget.Category.ResourceDescriptor.PluginName = widget.Plugin.Name; widget.Category.ResourceDescriptor.WidgetName = widget.Name; } var iconUrl = xml.ChildElementValue("icon-url"); if (!String.IsNullOrEmpty(iconUrl)) { widget.IconUrl = iconUrl; } var widgetProcessEventListenerType = xml.ChildElementValue("process-event-listener"); if (!String.IsNullOrEmpty(widgetProcessEventListenerType)) { var processor = (IWidgetProcessEventListener)Activator.CreateInstance(Type.GetType(widgetProcessEventListenerType, true)); widget.WidgetProcessEventListener = processor; } var editorElement = xml.Element("editor"); if (editorElement != null) { widget.EditorSettings = WidgetEditorSettings.From(editorElement); } }
internal static WidgetDefinitionModel From(WidgetDefinition widgetDefinition) { return new WidgetDefinitionModel() { WidgetDefinitionId = widgetDefinition.Id, Name = widgetDefinition.Name }; }
public WidgetDefinition LoadWidget(PluginDefinition plugin, string widgetName) { var directory = HostingEnvironment.MapPath(WidgetPaths.WidgetDirectoryVirtualPath(plugin.Name, widgetName)); var widget = new WidgetDefinition(Path.GetFileName(directory), plugin); Configure(widget); LoadViews(widget); return widget; }
public WidgetDefinition Add( [NotNull] Type viewComponentType, [CanBeNull] ILocalizableString displayName = null) { var widget = new WidgetDefinition(viewComponentType, displayName); Add(widget); return(widget); }
public void Add(WidgetDefinition widget) { var existingWidget = _widgetsByName.GetOrDefault(widget.Name); if (existingWidget != null) { _widgetsByType[existingWidget.ViewComponentType] = widget; } _widgetsByName[widget.Name] = widget; _widgetsByType[widget.ViewComponentType] = widget; }
public IHttpActionResult Post(WidgetDefinitionInputModel model) { if (String.IsNullOrWhiteSpace(model.Name)) { return BadRequest("Invalid name for Widget Definition."); } WidgetDefinition widgetDefinition = new WidgetDefinition(model.Name); WidgetDefinitionRepository.Add(widgetDefinition); return Created(new Uri(Url.Link("GetWidgetDefinition", new { widgetDefinitionId = widgetDefinition.Id })), WidgetDefinitionModel.From(widgetDefinition)); }
private List <WidgetFilterOutput> GetNeededWidgetFiltersOutput(WidgetDefinition widget) { if (widget.UsedWidgetFilters == null || !widget.UsedWidgetFilters.Any()) { return(new List <WidgetFilterOutput>()); } var allNeededFilters = widget.UsedWidgetFilters.Distinct().ToList(); return(_dashboardConfiguration.WidgetFilterDefinitions .Where(definition => allNeededFilters.Contains(definition.Id)) .Select(x => new WidgetFilterOutput(x.Id, x.Name)) .ToList()); }
protected virtual async Task <IHtmlContent> InvokeWidgetAsync(object arguments, WidgetDefinition widget) { PageWidgetManager.TryAdd(widget); var wrapperAttributesBuilder = new StringBuilder($"class=\"abp-widget-wrapper\" data-widget-name=\"{widget.Name}\""); if (widget.RefreshUrl != null) { wrapperAttributesBuilder.Append($" data-refresh-url=\"{widget.RefreshUrl}\""); } if (widget.AutoInitialize) { wrapperAttributesBuilder.Append(" data-widget-auto-init=\"true\""); } return(new HtmlContentBuilder() .AppendHtml($"<div {wrapperAttributesBuilder}>") .AppendHtml(await DefaultViewComponentHelper.InvokeAsync(widget.ViewComponentType, arguments)) .AppendHtml("</div>")); }
private void Configure(WidgetDefinition widget) { var files = new DirectoryInfo(Server.MapPath(widget.VirtualPath)).GetFiles(); var iconFile = files.FirstOrDefault(f => f.Name.IgnoreCaseStartsWith("icon.")); if (iconFile != null) { widget.IconUrl = UrlUtil.Combine(widget.VirtualPath, iconFile.Name); } widget.Editable = files.Any(f => f.Name.IgnoreCaseEquals("Editor.aspx")); var configFile = files.FirstOrDefault(f => f.Name.IgnoreCaseEquals("config.config")); if (configFile != null) { ApplyXmlConfig(widget, XDocument.Load(configFile.FullName).Root); } if (widget.DisplayName == null) { widget.DisplayName = new LocalizableText(String.Format("{{ Plugin={0}, Key={1} }}", widget.Plugin.Name, widget.Name)); } }
private void CreateTextWidgetDefinition() { var widgetDefinition = WidgetDefinitionRepository.FindByName("Text"); ParameterDefinition textParameterDefinition = new ParameterDefinition("Text"); ParameterDefinition fontSizeParameterDefinition = new ParameterDefinition("FontSize"); ParameterDefinition textColourParameterDefinition = new ParameterDefinition("TextColour"); if (widgetDefinition == null) { widgetDefinition = new WidgetDefinition("Text"); widgetDefinition.AddParameterDefinition(textParameterDefinition); widgetDefinition.AddParameterDefinition(fontSizeParameterDefinition); widgetDefinition.AddParameterDefinition(textColourParameterDefinition); WidgetDefinitionRepository.Add(widgetDefinition); } else { if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "Text")) { widgetDefinition.AddParameterDefinition(textParameterDefinition); WidgetDefinitionRepository.Update(widgetDefinition); } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "FontSize")) { widgetDefinition.AddParameterDefinition(fontSizeParameterDefinition); WidgetDefinitionRepository.Update(widgetDefinition); } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "TextColour")) { widgetDefinition.AddParameterDefinition(textColourParameterDefinition); WidgetDefinitionRepository.Update(widgetDefinition); } } }
private async Task <bool> IsGrantedAsyncInternal(WidgetDefinition widget, string wantedWidgetName) { if (widget == null) { throw new ArgumentNullException(wantedWidgetName); } if (widget.RequiredPolicies.Any()) { foreach (var requiredPolicy in widget.RequiredPolicies) { if (!(await AuthorizationService.AuthorizeAsync(requiredPolicy)).Succeeded) { return(false); } } } else if (widget.RequiresAuthentication && !CurrentUser.IsAuthenticated) { return(false); } return(true); }
public static List <WidgetDefinition> GetDefinitions() { var userCountWidget = new WidgetDefinition( UserCountWidgetViewComponent.WidgetName, LocalizableString.Create <DashboardDemoResource>(UserCountWidgetViewComponent.DisplayName), typeof(UserCountWidgetViewComponent) ) .SetDefaultDimension(6, 3) .AddRequiredPermission(IdentityPermissions.Users.Default); var roleListWidget = new WidgetDefinition( RoleListWidgetViewComponent.WidgetName, LocalizableString.Create <DashboardDemoResource>(RoleListWidgetViewComponent.DisplayName), typeof(RoleListWidgetViewComponent) ) .SetDefaultDimension(6, 3) .AddRequiredPermission(IdentityPermissions.Roles.Default); return(new List <WidgetDefinition> { userCountWidget, roleListWidget }); }
private void LoadViews(WidgetDefinition widget) { var viewsDir = new DirectoryInfo(Server.MapPath(widget.ViewsFolderVirtualPath)); if (!viewsDir.Exists) { return; } foreach (var viewDir in viewsDir.GetDirectories()) { if (viewsDir.IsHidden()) continue; var viewFile = viewDir.GetFiles("Default.*", SearchOption.TopDirectoryOnly).FirstOrDefault(); var view = new WidgetViewDefinition(widget) { Name = viewDir.Name, Extension = viewFile.Extension }; widget.Views.Add(view); } }
public bool TryAdd(WidgetDefinition widget) { return(GetWidgetList() .AddIfNotContains(widget)); }
private void CreateTimetableWidgetDefinitionIfNotExists() { var widgetDefinition = WidgetDefinitionRepository.FindByName("Timetable"); ParameterDefinition pollingIntervalParameterDefinition = new ParameterDefinition("PollingIntervalInSeconds", "30"); ParameterDefinition stopIdentifierParameterDefinition = new ParameterDefinition("StopIdentifier"); ParameterDefinition operatorNameParameterDefinition = new ParameterDefinition("OperatorName"); ParameterDefinition numResultsParameterDefinition = new ParameterDefinition("NumResults", "6"); ParameterDefinition walkingDistanceToStopParameterDefinition = new ParameterDefinition("WalkingDistanceToStopInSeconds", "1"); ParameterDefinition operatorDisplayNameParameterfinition = new ParameterDefinition("OperatorDisplayName", ""); if (widgetDefinition == null) { widgetDefinition = new WidgetDefinition("Timetable"); widgetDefinition.AddParameterDefinition(pollingIntervalParameterDefinition); widgetDefinition.AddParameterDefinition(stopIdentifierParameterDefinition); widgetDefinition.AddParameterDefinition(operatorNameParameterDefinition); widgetDefinition.AddParameterDefinition(numResultsParameterDefinition); widgetDefinition.AddParameterDefinition(walkingDistanceToStopParameterDefinition); widgetDefinition.AddParameterDefinition(operatorDisplayNameParameterfinition); WidgetDefinitionRepository.Add(widgetDefinition); } else { bool updateNeeded = false; if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "PollingIntervalInSeconds")) { widgetDefinition.AddParameterDefinition(pollingIntervalParameterDefinition); updateNeeded = true; } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "StopIdentifier")) { widgetDefinition.AddParameterDefinition(stopIdentifierParameterDefinition); updateNeeded = true; } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "OperatorName")) { widgetDefinition.AddParameterDefinition(operatorNameParameterDefinition); updateNeeded = true; } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "NumResults")) { widgetDefinition.AddParameterDefinition(numResultsParameterDefinition); updateNeeded = true; } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "WalkingDistanceToStopInSeconds")) { widgetDefinition.AddParameterDefinition(walkingDistanceToStopParameterDefinition); updateNeeded = true; } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "OperatorDisplayName")) { widgetDefinition.AddParameterDefinition(operatorDisplayNameParameterfinition); updateNeeded = true; } if (updateNeeded) { WidgetDefinitionRepository.Update(widgetDefinition); } } }
private void CreateImageWidgetDefinitionIfNotExists() { var widgetDefinition = WidgetDefinitionRepository.FindByName("Image"); ParameterDefinition imageIdentifierParameterDefinition = new ParameterDefinition("ImageIdentifier"); ParameterDefinition iamgeFillParameterDefinition = new ParameterDefinition("ImageFill", "Scale"); if (widgetDefinition == null) { widgetDefinition = new WidgetDefinition("Image"); widgetDefinition.AddParameterDefinition(imageIdentifierParameterDefinition); WidgetDefinitionRepository.Add(widgetDefinition); } else { if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "ImageIdentifier")) { widgetDefinition.AddParameterDefinition(imageIdentifierParameterDefinition); WidgetDefinitionRepository.Update(widgetDefinition); } if (!widgetDefinition.ParameterDefinitions.Any(x => x.Name == "ImageFill")) { widgetDefinition.AddParameterDefinition(iamgeFillParameterDefinition); WidgetDefinitionRepository.Update(widgetDefinition); } } }
public async Task <bool> CheckPermissionsAsync(IAuthorizationService authorizationService, WidgetDefinition widget) { foreach (var permission in widget.RequiredPermissions) { if (!await authorizationService.IsGrantedAsync(permission)) { return(false); } } return(true); }