Add fmPackageExists directive
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This commit is contained in:
parent
521b882798
commit
713af307cd
@ -12,6 +12,9 @@ export const INITUSERSUCCESS = '[AppCommon] InitUserSuccess';
|
||||
export const INITUSERPACKAGES = '[AppCommon] InitUserPackages';
|
||||
export const INITUSERPACKAGESSUCCESS = '[AppCommon] InitUserPackagesSuccess';
|
||||
|
||||
export const INITPACKAGES = '[AppCommon] InitPackages';
|
||||
export const INITPACKAGESSUCCESS = '[AppCommon] InitPackagesSuccess';
|
||||
|
||||
export const INITUSERSETTINGSROOT = '[AppCommon] InitUserSettingsRoot';
|
||||
export const INITUSERSETTINGSROOTSUCCESS = '[AppCommon] InitUserSettingsRootSuccess';
|
||||
|
||||
@ -102,6 +105,18 @@ export class InitUserPackagesSuccess implements Action {
|
||||
constructor(public items:IItem[] ) { }
|
||||
}
|
||||
|
||||
export class InitPackages implements Action {
|
||||
readonly type = INITPACKAGES;
|
||||
|
||||
constructor() {}
|
||||
}
|
||||
|
||||
export class InitPackagesSuccess implements Action {
|
||||
readonly type = INITPACKAGESSUCCESS;
|
||||
|
||||
constructor(public items:IItem[] ) { }
|
||||
}
|
||||
|
||||
export class InitUserSettingsRoot implements Action {
|
||||
readonly type = INITUSERSETTINGSROOT;
|
||||
|
||||
@ -381,6 +396,8 @@ export type Actions = OpenModal
|
||||
| SetMenuVisible
|
||||
| InitUserPackages
|
||||
| InitUserPackagesSuccess
|
||||
| InitPackages
|
||||
| InitPackagesSuccess
|
||||
| InitUserSettingsRoot
|
||||
| InitUserSettingsRootSuccess
|
||||
| ToggleAccountMenu
|
||||
|
@ -32,6 +32,7 @@ import { TimespanComponent } from './components/timespan/timespan.component';
|
||||
import { TagInputComponent } from './components/tag-input/tag-input.component';
|
||||
import { MenuBackgroundComponent } from './components/menu-background/menu-background.component';
|
||||
import { HasPackageDirective} from './components/has-package/has-package.directive';
|
||||
import { PackageExistsDirective} from './components/package-exists/package-exists.directive';
|
||||
import { HasClaimDirective} from './components/has-claim/has-claim.directive';
|
||||
import { UserMenuComponent} from './components/user-menu/user-menu.component';
|
||||
import { ThumbnailComponent } from './components/thumbnail/thumbnail.component';
|
||||
@ -82,6 +83,7 @@ export {
|
||||
UserMenuComponent,
|
||||
ThumbnailComponent,
|
||||
HasPackageDirective,
|
||||
PackageExistsDirective,
|
||||
HasClaimDirective,
|
||||
Alert,
|
||||
IEventMessage,
|
||||
@ -144,6 +146,7 @@ export {
|
||||
SessionClearedComponent,
|
||||
MenuBackgroundComponent,
|
||||
HasPackageDirective,
|
||||
PackageExistsDirective,
|
||||
HasClaimDirective,
|
||||
UserMenuComponent,
|
||||
GradientComponent,
|
||||
@ -174,6 +177,7 @@ export {
|
||||
SessionClearedComponent,
|
||||
MenuBackgroundComponent,
|
||||
HasPackageDirective,
|
||||
PackageExistsDirective,
|
||||
HasClaimDirective,
|
||||
UserMenuComponent,
|
||||
GradientComponent,
|
||||
|
@ -62,6 +62,15 @@ export class AppCommonEffects {
|
||||
)
|
||||
})
|
||||
));
|
||||
initPackages$ = createEffect(() => this.actions$.pipe(
|
||||
ofType(appCommonActions.INITPACKAGES),
|
||||
switchMap(() => {
|
||||
return this.itemService$.getItemList('vnd.farmmaps.itemtype.package.template').pipe(
|
||||
switchMap((items) => of(new appCommonActions.InitPackagesSuccess(items))),
|
||||
catchError(error => of(new appCommonActions.Fail(error)))
|
||||
)
|
||||
})
|
||||
));
|
||||
|
||||
userPackagesChanged$ = createEffect(() => this.actions$.pipe(
|
||||
ofType(appCommonActions.ITEMCHANGEDEVENT),
|
||||
@ -99,7 +108,7 @@ export class AppCommonEffects {
|
||||
initUserSuccess$ = createEffect(() => this.actions$.pipe(
|
||||
ofType(appCommonActions.INITUSERSUCCESS),
|
||||
switchMap(() => {
|
||||
return [new appCommonActions.InitRoot(),new appCommonActions.InitUserPackages(),new appCommonActions.InitUserSettingsRoot()];
|
||||
return [new appCommonActions.InitRoot(),new appCommonActions.InitUserPackages(),new appCommonActions.InitPackages(),new appCommonActions.InitUserSettingsRoot()];
|
||||
}
|
||||
)));
|
||||
|
||||
|
@ -9,3 +9,8 @@ export interface IPackage {
|
||||
export interface IPackages {
|
||||
[id: string]: IPackage[];
|
||||
}
|
||||
|
||||
export interface IPackageMap {
|
||||
[id: string]: IPackage;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ import { tassign } from 'tassign';
|
||||
import { IItemTypes} from '../models/item.types';
|
||||
import { IListItem } from '../models/list.item';
|
||||
import { IUser } from '../models/user';
|
||||
import { IPackage,IPackages} from '../models/package';
|
||||
import { IPackage,IPackageMap,IPackages} from '../models/package';
|
||||
import * as appCommonActions from '../actions/app-common.actions';
|
||||
import { createSelector, createFeatureSelector, ActionReducerMap } from '@ngrx/store';
|
||||
|
||||
@ -20,6 +20,7 @@ export interface State {
|
||||
routeLoading:boolean,
|
||||
menuVisible: boolean,
|
||||
userPackages: IPackages,
|
||||
packages: IPackageMap,
|
||||
userSettingsRoot: IItem,
|
||||
accountMenuVisible: boolean,
|
||||
appMenuVisible: boolean,
|
||||
@ -40,6 +41,7 @@ export const initialState: State = {
|
||||
routeLoading: false,
|
||||
menuVisible: false,
|
||||
userPackages: {},
|
||||
packages: {},
|
||||
userSettingsRoot: null,
|
||||
accountMenuVisible: false,
|
||||
appMenuVisible: false,
|
||||
@ -140,6 +142,15 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
|
||||
|
||||
return tassign(state,{userPackages:packages});
|
||||
}
|
||||
case appCommonActions.INITPACKAGESSUCCESS:{
|
||||
let a = action as appCommonActions.InitPackagesSuccess;
|
||||
let packages = {}
|
||||
a.items.forEach((item) => {
|
||||
packages[item.data.id] = item.data;
|
||||
});
|
||||
|
||||
return tassign(state,{packages:packages});
|
||||
}
|
||||
case appCommonActions.INITUSERSETTINGSROOTSUCCESS:{
|
||||
let a = action as appCommonActions.InitUserSettingsRootSuccess;
|
||||
return tassign(state, { userSettingsRoot : a.item });
|
||||
@ -187,6 +198,7 @@ export const getRouteLoading = (state: State) => state.routeLoading;
|
||||
export const getMenuVisible = (state: State) => state.menuVisible;
|
||||
export const getUser = (state: State) => state.user;
|
||||
export const getUserPackages = (state: State) => state.userPackages;
|
||||
export const getPackages = (state: State) => state.packages;
|
||||
export const getUserSettingsRoot = (state: State) => state.userSettingsRoot;
|
||||
export const getAccountMenuVisible = (state: State) => state.accountMenuVisible;
|
||||
export const getAppMenuVisible = (state: State) => state.appMenuVisible;
|
||||
@ -207,6 +219,7 @@ export const selectGetRouteLoading = createSelector(selectAppCommonState, getRou
|
||||
export const SelectGetMenuVisible = createSelector(selectAppCommonState,getMenuVisible);
|
||||
export const SelectGetUser = createSelector(selectAppCommonState,getUser);
|
||||
export const SelectGetUserPackages = createSelector(selectAppCommonState,getUserPackages);
|
||||
export const SelectGetPackages = createSelector(selectAppCommonState,getPackages);
|
||||
export const SelectGetValidUserPackages = createSelector(SelectGetUserPackages, (packageMap) => {
|
||||
return getValidPackages(packageMap);
|
||||
});
|
||||
|
@ -14,10 +14,14 @@ import {Observable} from 'rxjs';
|
||||
})
|
||||
|
||||
export class PackageService {
|
||||
private userPackages: { [key: string]: IPackage } = {};
|
||||
private packages: { [key: string]: IPackage } = {};
|
||||
|
||||
constructor(private store$: Store<appCommonReducer.State>, public httpClient: HttpClient, public appConfig: AppConfig) {
|
||||
store$.select(appCommonReducer.SelectGetValidUserPackages).subscribe((packages) => {
|
||||
this.userPackages = packages;
|
||||
});
|
||||
store$.select(appCommonReducer.SelectGetPackages).subscribe((packages) => {
|
||||
this.packages = packages;
|
||||
});
|
||||
}
|
||||
@ -27,6 +31,10 @@ export class PackageService {
|
||||
}
|
||||
|
||||
hasPackage(id: string): boolean {
|
||||
return id in this.userPackages;
|
||||
}
|
||||
|
||||
packageExists(id: string): boolean {
|
||||
return id in this.packages;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<fm-gradient-select [gradientItems]="gradientItems|async" [showLabel]="false" [showAdd]="true"></fm-gradient-select>
|
||||
</div>
|
||||
<div class="row mt-3">
|
||||
<div class="row mt-3" *fmPackageExists="'vnd.farmmaps.itemtype.package.dacom'">
|
||||
<button class="btn btn-primary" (click)="onTest($event)">Test</button>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user