Esempio n. 1
0
        public static void Start()
        {
            if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod()))
            {
                CultureInfoClient.Start();

                Navigator.RegisterArea(typeof(WordClient));
                Navigator.AddSettings(new List <EntitySettings>
                {
                    new EntitySettings <WordTemplateEntity> {
                        PartialViewName = e => ViewPrefix.FormatWith("WordTemplate")
                    },
                    new EntitySettings <SystemWordTemplateEntity> {
                    },
                    new EntitySettings <WordTransformerSymbol> {
                    },
                    new EntitySettings <WordConverterSymbol> {
                    },
                });
                OperationClient.AddSetting(new EntityOperationSettings <WordTemplateEntity>(WordTemplateOperation.CreateWordReport)
                {
                    Group = EntityOperationGroup.None,
                    Click = ctx => Module["createWordReportFromTemplate"](ctx.Options(), JsFunction.Event,
                                                                          new FindOptions(ctx.Entity.Query.ToQueryName()).ToJS(ctx.Prefix, "New"),
                                                                          ctx.Url.Action((WordController mc) => mc.CreateWordReport()))
                });
            }
        }
Esempio n. 2
0
        public static void Start()
        {
            if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod()))
            {
                Navigator.AddSettings(new List <EntitySettings>
                {
                    new EntitySettings <SMSMessageEntity> {
                        View = e => new SMSMessage(), Icon = ExtensionsImageLoader.GetImageSortName("sms.png")
                    },
                    new EntitySettings <SMSTemplateEntity> {
                        View = e => new SMSTemplate(), Icon = ExtensionsImageLoader.GetImageSortName("smstemplate.png")
                    },
                    new EmbeddedEntitySettings <SMSTemplateMessageEmbedded>()
                    {
                        View = e => new Signum.Windows.SMS.SMSTemplateMessage()
                    },
                    new EntitySettings <SMSSendPackageEntity> {
                        View = e => new SMSSendPackage(), Icon = ExtensionsImageLoader.GetImageSortName("package.png")
                    },
                    new EntitySettings <SMSUpdatePackageEntity> {
                        View = e => new SMSUpdatePackage(), Icon = ExtensionsImageLoader.GetImageSortName("package.png")
                    },
                    new ModelEntitySettings <MultipleSMSModel> {
                        View = e => new MultipleSMS(), Icon = ExtensionsImageLoader.GetImageSortName("package.png")
                    },
                });

                OperationClient.AddSetting(new EntityOperationSettings <Entity>(SMSMessageOperation.CreateSMSWithTemplateFromEntity)
                {
                    Click = FindAssociatedTemplates
                });

                OperationClient.AddSetting(new ContextualOperationSettings <Entity>(SMSMessageOperation.SendSMSMessages)
                {
                    Click = coc =>
                    {
                        MultipleSMSModel model = Navigator.View(new MultipleSMSModel());

                        if (model == null)
                        {
                            return;
                        }

                        var result = new ConstructorContext(coc.SearchControl, coc.OperationInfo).SurroundConstruct(ctx =>
                                                                                                                    Server.Return((IOperationServer s) => s.ConstructFromMany(coc.Entities, coc.Type, coc.OperationInfo.OperationSymbol, ctx.Args)));

                        if (result != null)
                        {
                            Navigator.Navigate(result);
                        }
                    }
                });
            }
        }
Esempio n. 3
0
        public static void Start()
        {
            if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod()))
            {
                Navigator.AddSettings(new List <EntitySettings>()
                {
                    new EntitySettings <ScheduledTaskEntity> {
                        View = e => new ScheduledTask(), Icon = Image("clock.png")
                    },

                    new EntitySettings <SimpleTaskSymbol> {
                        View = e => new SimpleTask(), Icon = Image("simpleTask.png")
                    },
                    new EntitySettings <ScheduledTaskLogEntity> {
                        View = e => new ScheduledTaskLog(), Icon = Image("scheduledTaskLog.png")
                    },

                    new EntitySettings <ScheduleRuleMonthsEntity> {
                        View = e => new ScheduleRuleMonths()
                    },
                    new EntitySettings <ScheduleRuleWeekDaysEntity> {
                        View = e => new ScheduleRuleWeekDays()
                    },
                    new EntitySettings <ScheduleRuleMinutelyEntity> {
                        View = e => new ScheduleRuleMinutely()
                    },
                    new EntitySettings <HolidayCalendarEntity> {
                        View = e => new HolidayCalendar()
                    },
                });

                Server.SetSymbolIds <SimpleTaskSymbol>();

                var executeGroup = new EntityOperationGroup
                {
                    Background     = Brushes.Gold,
                    AutomationName = "execute",
                    Text           = () => ITaskMessage.Execute.NiceToString() + "...",
                };

                OperationClient.AddSetting(new EntityOperationSettings <ITaskEntity>(ITaskOperation.ExecuteSync)
                {
                    Icon = Image("execute.png"), Group = executeGroup
                });
                OperationClient.AddSetting(new EntityOperationSettings <ITaskEntity>(ITaskOperation.ExecuteAsync)
                {
                    Icon = Image("execute.png"), Group = executeGroup
                });
            }
        }
Esempio n. 4
0
        public static void Start()
        {
            if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod()))
            {
                QueryClient.Start();

                UserAssetsClient.Start();
                UserAssetsClient.RegisterExportAssertLink <UserChartEntity>();

                LinksClient.RegisterEntityLinks <UserChartEntity>((lite, ctx) => new[]
                {
                    new QuickLinkAction(ChartMessage.Preview, RouteHelper.New().Action <ChartController>(cc => cc.ViewUserChart(lite, null)))
                    {
                        IsVisible = ChartPermission.ViewCharting.IsAuthorized()
                    }
                });

                Func <SubTokensOptions, Mapping <QueryTokenEmbedded> > qtMapping = ops => ctx =>
                {
                    string tokenStr = UserAssetsHelper.GetTokenString(ctx);

                    string queryKey  = ctx.Parent.Parent.Parent.Inputs[TypeContextUtilities.Compose("Query", "Key")];
                    object queryName = QueryLogic.ToQueryName(queryKey);

                    var chart = ((UserChartEntity)ctx.Parent.Parent.Parent.UntypedValue);

                    QueryDescription qd = DynamicQueryManager.Current.QueryDescription(queryName);
                    return(new QueryTokenEmbedded(QueryUtils.Parse(tokenStr, qd, ops | (chart.GroupResults ? SubTokensOptions.CanAggregate : 0))));
                };

                Navigator.AddSettings(new List <EntitySettings>
                {
                    new EntitySettings <UserChartEntity> {
                        PartialViewName = _ => ChartClient.ViewPrefix.FormatWith("UserChart"), IsCreable = EntityWhen.Never
                    }
                });

                Navigator.EntitySettings <UserChartEntity>().MappingMain = Navigator.EntitySettings <UserChartEntity>().MappingLine =
                    new EntityMapping <UserChartEntity>(true)
                    .SetProperty(cb => cb.Columns, new ChartClient.MListCorrelatedOrDefaultMapping <ChartColumnEmbedded>(ChartClient.MappingChartColumn))
                    .SetProperty(cr => cr.Filters, new MListMapping <QueryFilterEmbedded>
                {
                    ElementMapping = new EntityMapping <QueryFilterEmbedded>(false)
                                     .CreateProperty(a => a.Operation)
                                     .CreateProperty(a => a.ValueString)
                                     .SetProperty(a => a.Token, qtMapping(SubTokensOptions.CanAnyAll | SubTokensOptions.CanElement))
                })
                    .SetProperty(cr => cr.Orders, new MListMapping <QueryOrderEmbedded>
                {
                    ElementMapping = new EntityMapping <QueryOrderEmbedded>(false)
                                     .CreateProperty(a => a.OrderType)
                                     .SetProperty(a => a.Token, qtMapping(SubTokensOptions.CanAnyAll | SubTokensOptions.CanElement))
                })
                    .SetProperty(cb => cb.Parameters, new MListDictionaryMapping <ChartParameterEmbedded, string>(p => p.Name)
                {
                    OnlyIfPossible = true
                });

                RouteTable.Routes.MapRoute(null, "UC/{webQueryName}/{lite}",
                                           new { controller = "Chart", action = "ViewUserChart" });

                UserChartEntity.SetConverters(query => QueryLogic.ToQueryName(query.Key), queryName =>
                                              QueryLogic.GetQueryEntity(queryName));

                OperationClient.AddSetting(new EntityOperationSettings <UserChartEntity>(UserChartOperation.Delete)
                {
                    Click = ctx => ChartClient.Module["deleteUserChart"](ctx.Options(), Finder.FindRoute(((UserChartEntity)ctx.Entity).Query.ToQueryName())),
                });

                LinksClient.RegisterEntityLinks <Entity>((entity, ctrl) =>
                {
                    if (!ChartPermission.ViewCharting.IsAuthorized())
                    {
                        return(null);
                    }

                    return(UserChartLogic.GetUserChartsEntity(entity.EntityType)
                           .Select(cp => new UserChartQuickLink(cp, entity)).ToArray());
                });
            }
        }