A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/signumsoftware/framework/commit/4a7cc1097f8e862b47d2dfd61216082b1c171be0 below:

Add Time Machine to Charting · signumsoftware/framework@4a7cc10 · GitHub

@@ -9,7 +9,7 @@ import { Constructor } from '@framework/Constructor'

9 9

import { Entity, getToString, is, Lite, liteKey, MList, SelectorMessage, toLite, translated } from '@framework/Signum.Entities'

10 10

import { getQueryKey, getEnumInfo, QueryTokenString, tryGetTypeInfos, timeToString, toFormatWithFixes } from '@framework/Reflection'

11 11

import {

12 -

FilterOption, OrderOption, QueryRequest, QueryToken, SubTokensOptions, ResultTable, OrderRequest, OrderType, FilterOptionParsed, hasAggregate, ColumnOption, withoutAggregate, FilterConditionOption, QueryDescription, FindOptions, withoutPinned

12 +

FilterOption, OrderOption, QueryRequest, QueryToken, SubTokensOptions, ResultTable, OrderRequest, OrderType, FilterOptionParsed, hasAggregate, ColumnOption, withoutAggregate, FilterConditionOption, QueryDescription, FindOptions, withoutPinned, SystemTime

13 13

} from '@framework/FindOptions'

14 14

import { AuthClient } from '../Signum.Authorization/AuthClient'

15 15

import ChartButton from './ChartButton'

@@ -27,7 +27,7 @@ import { Dic, softCast } from '@framework/Globals';

27 27

import { colorInterpolators, colorSchemes } from './ColorPalette/ColorUtils';

28 28

import { getColorInterpolation } from './D3Scripts/Components/ChartUtils';

29 29

import { UserQueryEntity } from '../Signum.UserQueries/Signum.UserQueries';

30 -

import { ChartColumnEmbedded, ChartColumnType, ChartParameterEmbedded, ChartParameterType, ChartPermission, ChartRequestModel, ChartScriptSymbol, D3ChartScript, GoogleMapsChartScript, HtmlChartScript, SpecialParameterType, SvgMapsChartScript } from './Signum.Chart';

30 +

import { ChartColumnEmbedded, ChartColumnType, ChartParameterEmbedded, ChartParameterType, ChartPermission, ChartRequestModel, ChartScriptSymbol, ChartTimeSeriesEmbedded, D3ChartScript, GoogleMapsChartScript, HtmlChartScript, SpecialParameterType, SvgMapsChartScript } from './Signum.Chart';

31 31

import { IChartBase, UserChartEntity } from './UserChart/Signum.Chart.UserChart';

32 32

import { UserChartPartHandler } from './Dashboard/View/UserChartPart';

33 33

import SelectorModal from '@framework/SelectorModal';

@@ -516,12 +516,23 @@ export namespace ChartClient {

516 516

return clone;

517 517

}

518 518 519 - 519 +

export function cloneChartTimeSeries(ts : ChartTimeSeriesEmbedded | null): ChartTimeSeriesEmbedded | null {

520 +

if(!ts)

521 +

return null;

522 +

return ChartTimeSeriesEmbedded.New({

523 +

timeSeriesStep: ts.timeSeriesStep,

524 +

timeSeriesUnit: ts.timeSeriesUnit,

525 +

startDate: ts.startDate,

526 +

endDate: ts.endDate,

527 +

timeSeriesMaxRowsPerStep: ts.timeSeriesMaxRowsPerStep});

528 +

}

529 + 520 530

export interface ChartOptions {

521 531

queryName: any,

522 532

chartScript?: string,

523 533

maxRows?: number | null,

524 534

groupResults?: boolean,

535 +

timeSeries?: ChartTimeSeriesEmbedded | null | undefined;

525 536

filterOptions?: (FilterOption | null | undefined)[];

526 537

orderOptions?: (OrderOption | null | undefined)[];

527 538

columnOptions?: (ChartColumnOption | null | undefined)[];

@@ -575,6 +586,7 @@ export namespace ChartClient {

575 586

queryName: cr.queryKey,

576 587

chartScript: cr.chartScript?.key.after(".") ?? undefined,

577 588

maxRows: cr.maxRows,

589 +

timeSeries: cloneChartTimeSeries(cr.chartTimeSeries),

578 590

filterOptions: Finder.toFilterOptions(cr.filterOptions),

579 591

columnOptions: cr.columns.map(co => ({

580 592

token: co.element.token && co.element.token.tokenString,

@@ -610,15 +622,17 @@ export namespace ChartClient {

610 622

maxRows:

611 623

co.maxRows === null ? "null" :

612 624

co.maxRows === undefined || co.maxRows == Decoder.DefaultMaxRows ? undefined : co.maxRows,

613 -

groupResults: co.groupResults,

625 +

groupResults: co.groupResults,

614 626

userChart: userChart && liteKey(userChart)

615 627

};

616 628 629 +

encodeTimeSeries(query, co.timeSeries);

617 630

Finder.Encoder.encodeFilters(query, co.filterOptions?.notNull());

618 631

Finder.Encoder.encodeOrders(query, co.orderOptions?.notNull());

619 632

encodeParameters(query, co.parameters?.notNull());

620 633 621 634

encodeColumn(query, co.columnOptions?.notNull());

635 + 622 636 623 637

return `/chart/${getQueryKey(co.queryName)}?` + QueryString.stringify(query);

624 638

@@ -639,6 +653,17 @@ export namespace ChartClient {

639 653

if (parameters)

640 654

parameters.map((p, i) => query["param" + i] = scapeTilde(p.name!) + "~" + scapeTilde(p.value!));

641 655

}

656 + 657 +

export function encodeTimeSeries(query: any, ts: ChartTimeSeriesEmbedded | null | undefined): void {

658 +

if (ts)

659 +

{

660 +

query['systemTimeStartDate'] = ts.startDate;

661 +

query['systemTimeEndDate'] = ts.endDate;

662 +

query['timeSeriesStep'] = ts.timeSeriesStep;

663 +

query['timeSeriesUnit'] = ts.timeSeriesUnit;

664 +

query['timeSeriesMaxRowsPerStep'] = ts.timeSeriesMaxRowsPerStep;

665 +

}

666 +

}

642 667

}

643 668 644 669

export module Decoder {

@@ -658,8 +683,10 @@ export namespace ChartClient {

658 683

const oos = Finder.Decoder.decodeOrders(query);

659 684

oos.forEach(oo => completer.request(oo.token.toString(), SubTokensOptions.CanElement | SubTokensOptions.CanAggregate));

660 685 686 +

const ts = Decoder.decodeTimeSeries(query);

687 + 661 688

const cols = Decoder.decodeColumns(query);

662 -

cols.map(a => a.element.token).filter(te => te != undefined).forEach(te => completer.request(te!.tokenString!, SubTokensOptions.CanAggregate | SubTokensOptions.CanElement));

689 +

cols.map(a => a.element.token).filter(te => te != undefined).forEach(te => completer.request(te!.tokenString!, SubTokensOptions.CanAggregate | SubTokensOptions.CanElement | (ts ? SubTokensOptions.CanTimeSeries : 0)));

663 690 664 691

return completer.finished().then(() => {

665 692

@@ -677,6 +704,7 @@ export namespace ChartClient {

677 704

filterOptions: fos.map(fo => completer.toFilterOptionParsed(fo)),

678 705

columns: cols,

679 706

parameters: Decoder.decodeParameters(query),

707 +

chartTimeSeries: ts,

680 708

});

681 709 682 710

synchronizeColumns(chartRequest, cr);

@@ -731,16 +759,40 @@ export namespace ChartClient {

731 759

})

732 760

}));

733 761

}

762 + 763 +

export function decodeTimeSeries(query: any): ChartTimeSeriesEmbedded | null {

764 +

if(!query.timeSeriesUnit)

765 +

return null;

766 +

return ChartTimeSeriesEmbedded.New({

767 +

startDate: query.systemTimeStartDate,

768 +

endDate: query.systemTimeEndDate,

769 +

timeSeriesUnit: query.timeSeriesUnit,

770 +

timeSeriesStep: query.timeSeriesStep && parseInt(query.timeSeriesStep),

771 +

timeSeriesMaxRowsPerStep: query.timeSeriesMaxRowsPerStep && parseInt(query.timeSeriesMaxRowsPerStep),

772 +

});

773 +

}

734 774

}

735 775 736 776 737 777

export module API {

738 778 739 779

export function getRequest(request: ChartRequestModel): QueryRequest {

780 +

var ts = request.chartTimeSeries;

781 +

var systemTime : SystemTime | undefined = ts == null ? undefined :

782 +

softCast<SystemTime>({

783 +

joinMode: 'AllCompatible',

784 +

mode : 'TimeSeries',

785 +

timeSeriesStep: ts.timeSeriesStep!,

786 +

timeSeriesUnit: ts.timeSeriesUnit!,

787 +

startDate: ts.startDate!,

788 +

endDate: ts.endDate!,

789 +

timeSeriesMaxRowsPerStep: ts.timeSeriesMaxRowsPerStep!,

790 +

});

740 791 741 792

return {

742 793

queryKey: request.queryKey,

743 794

groupResults: hasAggregates(request),

795 +

systemTime: systemTime,

744 796

filters: Finder.toFilterRequests(request.filterOptions),

745 797

columns: request.columns.map(mle => mle.element).filter(cce => cce.token != null).map(co => ({ token: co.token!.token!.fullKey }) as ColumnRequest),

746 798

orders: request.columns.filter(mle => mle.element.orderByType != null && mle.element.token != null).orderBy(mle => mle.element.orderByIndex).map(mle => ({ token: mle.element.token!.token!.fullKey, orderType: mle.element.orderByType! }) as OrderRequest),


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4