Commit 842b954e by Ali Arshad

Updated Angular to latest version.

parent 40bddcd6
node_modules/ node_modules/
.idea/
[submodule "client/imports/vqode"]
path = client/imports/vqode
url = ssh://git@gitlab.vqode.com:30022/usman-vqode/angular-vqode-module.git
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/VQode_Management.iml" filepath="$PROJECT_DIR$/.idea/VQode_Management.iml" />
</modules>
</component>
</project>
\ No newline at end of file
...@@ -6,16 +6,14 @@ ...@@ -6,16 +6,14 @@
meteor-base@1.4.0 # Packages every Meteor app needs to have meteor-base@1.4.0 # Packages every Meteor app needs to have
mobile-experience@1.0.5 # Packages for a great mobile UX mobile-experience@1.0.5 # Packages for a great mobile UX
mongo@1.5.0 # The database Meteor supports right now mongo@1.6.0 # The database Meteor supports right now
reactive-var@1.0.11 # Reactive variable for tracker reactive-var@1.0.11 # Reactive variable for tracker
tracker@1.2.0 # Meteor's client-side reactive programming library tracker@1.2.0 # Meteor's client-side reactive programming library
standard-minifier-css@1.4.1 # CSS minifier run for production mode standard-minifier-css@1.5.2 # CSS minifier run for production mode
standard-minifier-js@2.3.4 # JS minifier run for production mode standard-minifier-js@2.4.0 # JS minifier run for production mode
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
ecmascript@0.11.1 # Enable ECMAScript2015+ syntax in app code ecmascript@0.12.3 # Enable ECMAScript2015+ syntax in app code
shell-server@0.3.1 # Server-side component of the `meteor shell` command shell-server@0.4.0 # Server-side component of the `meteor shell` command
autopublish@1.0.7 # Publish all data to the clients (for prototyping)
insecure@1.0.7 # Allow all DB writes from clients (for prototyping)
angular-compilers angular-compilers
METEOR@1.7.0.4 METEOR@1.8.1
...@@ -3,62 +3,61 @@ angular-compilers@0.3.2 ...@@ -3,62 +3,61 @@ angular-compilers@0.3.2
angular-html-compiler@0.3.2 angular-html-compiler@0.3.2
angular-scss-compiler@0.3.2 angular-scss-compiler@0.3.2
angular-typescript-compiler@0.3.2 angular-typescript-compiler@0.3.2
autopublish@1.0.7 autoupdate@1.6.0
autoupdate@1.4.1 babel-compiler@7.3.4
babel-compiler@7.1.1 babel-runtime@1.3.0
babel-runtime@1.2.4
base64@1.0.11 base64@1.0.11
binary-heap@1.0.10 binary-heap@1.0.11
boilerplate-generator@1.5.0 boilerplate-generator@1.6.0
callback-hook@1.1.0 callback-hook@1.1.0
check@1.3.1 check@1.3.1
ddp@1.4.0 ddp@1.4.0
ddp-client@2.3.3 ddp-client@2.3.3
ddp-common@1.4.0 ddp-common@1.4.0
ddp-server@2.2.0 ddp-server@2.3.0
diff-sequence@1.1.0 diff-sequence@1.1.1
dynamic-import@0.4.1 dynamic-import@0.5.1
ecmascript@0.11.1 ecmascript@0.12.4
ecmascript-runtime@0.7.0 ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.2 ecmascript-runtime-client@0.8.0
ecmascript-runtime-server@0.7.1 ecmascript-runtime-server@0.7.1
ejson@1.1.0 ejson@1.1.0
es5-shim@4.8.0 es5-shim@4.8.0
fetch@0.1.1
geojson-utils@1.0.10 geojson-utils@1.0.10
hot-code-push@1.0.4 hot-code-push@1.0.4
http@1.4.1
id-map@1.1.0 id-map@1.1.0
insecure@1.0.7 inter-process-messaging@0.1.0
launch-screen@1.1.1 launch-screen@1.1.1
livedata@1.0.18 livedata@1.0.18
logging@1.1.20 logging@1.1.20
meteor@1.9.2 meteor@1.9.3
meteor-base@1.4.0 meteor-base@1.4.0
minifier-css@1.3.1 minifier-css@1.4.2
minifier-js@2.3.5 minifier-js@2.4.1
minimongo@1.4.4 minimongo@1.4.5
mobile-experience@1.0.5 mobile-experience@1.0.5
mobile-status-bar@1.0.14 mobile-status-bar@1.0.14
modern-browsers@0.1.2 modern-browsers@0.1.4
modules@0.12.2 modules@0.13.0
modules-runtime@0.10.2 modules-runtime@0.10.3
mongo@1.5.1 mongo@1.6.2
mongo-decimal@0.1.1
mongo-dev-server@1.1.0 mongo-dev-server@1.1.0
mongo-id@1.0.7 mongo-id@1.0.7
npm-mongo@3.0.11 npm-mongo@3.1.2
ordered-dict@1.1.0 ordered-dict@1.1.0
promise@0.11.1 promise@0.11.2
random@1.1.0 random@1.1.0
reactive-var@1.0.11 reactive-var@1.0.11
reload@1.2.0 reload@1.3.0
retry@1.1.0 retry@1.1.0
routepolicy@1.0.13 routepolicy@1.1.0
shell-server@0.3.1 shell-server@0.4.0
socket-stream-client@0.2.2 socket-stream-client@0.2.2
standard-minifier-css@1.4.1 standard-minifier-css@1.5.3
standard-minifier-js@2.3.4 standard-minifier-js@2.4.1
tracker@1.2.0 tracker@1.2.0
underscore@1.0.10 underscore@1.0.10
url@1.2.0 webapp@1.7.3
webapp@1.6.2
webapp-hashing@1.0.9 webapp-hashing@1.0.9
import {Component, OnInit, ViewEncapsulation} from '@angular/core'; import { Component, ViewEncapsulation } from '@angular/core';
@Component({ @Component({
selector: 'app', selector: 'app-main',
templateUrl: 'app.html', templateUrl: 'app.html',
styleUrls: ['./app.scss'], styleUrls: ['./app.scss'],
// tslint:disable-next-line:use-component-view-encapsulation
encapsulation: ViewEncapsulation.None encapsulation: ViewEncapsulation.None
}) })
export class AppComponent implements OnInit { export class AppComponent {
ngOnInit() {
}
} }
<mat-toolbar> <mat-toolbar>
<span>BoilerPlate</span> <span>BoilerPlate</span>
</mat-toolbar> </mat-toolbar>
......
import {NgModule} from '@angular/core'; import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {BrowserModule} from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import {AppComponent} from './app.component'; import { RoutesModule } from './routes/routes.module';
import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; import { SharedModule } from './shared/shared.module';
import {RoutesModule} from "./routes/routes.module";
import {SharedModule} from "./shared/shared.module";
@NgModule({ @NgModule({
imports: [ imports: [
BrowserModule, BrowserModule,
BrowserAnimationsModule, BrowserAnimationsModule,
RoutesModule, SharedModule,
SharedModule RoutesModule
], ],
declarations: [ declarations: [
AppComponent AppComponent
], ],
bootstrap: [ bootstrap: [
AppComponent AppComponent
], ]
providers: []
}) })
export class AppModule { export class AppModule {
} }
import {Injectable} from '@angular/core'; import { Injectable } from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable() @Injectable()
export class AlreadyLoginGuard implements CanActivate { export class AlreadyLoginGuard implements CanActivate {
constructor(private router: Router, constructor(private readonly router: Router) {
public activatedRoute: ActivatedRoute) {
} }
canActivate(next: ActivatedRouteSnapshot, canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) { state: RouterStateSnapshot): boolean {
if(Meteor.user()){ if (Meteor.user()) {
this.router.navigate(['/']); this.router.navigate(['/']);
} else {
return true; return false;
} }
return true;
} }
} }
import {Injectable} from '@angular/core'; import { Injectable } from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable() @Injectable()
export class AppGuard implements CanActivate { export class AppGuard implements CanActivate {
constructor(private router: Router, constructor(private readonly router: Router) {
public activatedRoute: ActivatedRoute) {
// nothing in constructor // nothing in constructor
} }
canActivate(next: ActivatedRouteSnapshot, canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) { state: RouterStateSnapshot): boolean {
if(Meteor.user()){ if (Meteor.user()) {
return true; return true;
} else {
this.router.navigate(['/auth/login']);
} }
this.router.navigate(['/auth/login']);
} }
} }
import {CanDeactivate} from '@angular/router'; import { CanDeactivate } from '@angular/router';
import {Observable} from 'rxjs/Observable'; import { Observable } from 'rxjs';
export interface ComponentCanDeactivate { export interface ComponentCanDeactivate {
canDeactivate: () => boolean | Observable<boolean>; canDeactivate(): boolean | Observable<boolean>;
} }
export class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate> { export class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate> {
...@@ -16,4 +16,3 @@ export class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate ...@@ -16,4 +16,3 @@ export class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate
confirm('WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.'); confirm('WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.');
} }
} }
import {Injectable} from '@angular/core'; import { Injectable } from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable() @Injectable()
export class RoleGuard implements CanActivate { export class RoleGuard implements CanActivate {
constructor(private router: Router, constructor(private readonly router: Router) {
public activatedRoute: ActivatedRoute) {
// nothing in constructor // nothing in constructor
} }
canActivate(next: ActivatedRouteSnapshot, canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) { state: RouterStateSnapshot): boolean {
if(Meteor.user()){ if (Meteor.user()) {
const roles = next.data["roles"]; const roles = next.data.roles;
if(roles.indexOf(Meteor.user().profile.role) > -1 ){ if (roles.indexOf(Meteor.user().profile.role) > -1) {
return true; return true;
} else {
this.router.navigate(['/scores']);
} }
this.router.navigate(['/auth/login']);
} else { } else {
this.router.navigate(['/auth/login']); this.router.navigate(['/auth/login']);
} }
......
import {NgModule} from '@angular/core'; import { NgModule } from '@angular/core';
import {PreloadAllModules, RouterModule, Routes} from '@angular/router'; import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import {AppGuard} from './app.guard'; import { AlreadyLoginGuard } from './already-login.guard';
import {PendingChangesGuard} from './pending.changes.guard'; import { AppGuard } from './app.guard';
import {AlreadyLoginGuard} from "./already-login.guard"; import { PendingChangesGuard } from './pending.changes.guard';
import {RoleGuard} from "./role.guard"; import { RoleGuard } from './role.guard';
declare global { declare global {
interface NodeModule { interface NodeModule {
...@@ -13,7 +13,6 @@ declare global { ...@@ -13,7 +13,6 @@ declare global {
export const routes: Routes = []; export const routes: Routes = [];
@NgModule({ @NgModule({
imports: [RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})], imports: [RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})],
exports: [RouterModule], exports: [RouterModule],
......
import {NgModule} from '@angular/core'; import { CommonModule } from '@angular/common';
import {CommonModule} from '@angular/common'; import { NgModule } from '@angular/core';
import {FormsModule} from '@angular/forms'; import { FormsModule } from '@angular/forms';
import {MatTabsModule, MatToolbarModule} from "@angular/material"; import { MatTabsModule, MatToolbarModule } from '@angular/material';
@NgModule({ @NgModule({
imports: [ imports: [
......
...@@ -7,4 +7,3 @@ import 'zone.js/dist/sync-test'; ...@@ -7,4 +7,3 @@ import 'zone.js/dist/sync-test';
import 'zone.js/dist/proxy'; import 'zone.js/dist/proxy';
import 'zone.js/dist/mocha-patch'; import 'zone.js/dist/mocha-patch';
import 'core-js/es7/reflect'; import 'core-js/es7/reflect';
import 'zone.js';
import 'core-js/es7/reflect'; import 'core-js/es7/reflect';
import 'zone.js';
Subproject commit 67096fbf4c3163f59a63e5eaa7bb4a5f1562f032
<head> <head>
<base href="/"> <base href="/">
<title>Todos</title> <title>BoilerPlate</title>
<link id="layout-css" rel="stylesheet" type="text/css" href="/layout-amber.css">
</head> </head>
<body> <body>
<app></app> <app-main></app-main>
</body> </body>
// tslint:disable-next-line:no-import-side-effect
import './imports/polyfills'; import './imports/polyfills';
import {Meteor} from 'meteor/meteor'; // tslint:disable-next-line:ordered-imports
import 'zone.js'; import { enableProdMode } from '@angular/core';
import 'reflect-metadata'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import {enableProdMode} from '@angular/core'; import { Meteor } from 'meteor/meteor';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; // tslint:disable-next-line:no-import-side-effect
import {AppModule} from './imports/app/app.module'; import '../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css';
import { AppModule } from './imports/app/app.module';
import "../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css";
Meteor.startup(() => { Meteor.startup(() => {
if (Meteor.isProduction) { if (Meteor.isProduction) {
enableProdMode(); enableProdMode();
} }
platformBrowserDynamic().bootstrapModule(AppModule); platformBrowserDynamic()
.bootstrapModule(AppModule);
}); });
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -5,31 +5,34 @@ ...@@ -5,31 +5,34 @@
"start": "meteor run", "start": "meteor run",
"test": "meteor test --once --driver-package meteortesting:mocha", "test": "meteor test --once --driver-package meteortesting:mocha",
"test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
"visualize": "meteor --production --extra-packages bundle-visualizer" "visualize": "meteor --production --extra-packages bundle-visualizer",
"lint": "tslint -c tslint.json --project tsconfig.json",
"lint:fix": "tslint -c tslint.json --project tsconfig.json --fix"
}, },
"dependencies": { "dependencies": {
"@angular/animations": "^6.0.5", "@angular/animations": "8.2.8",
"@angular/cdk": "^6.4.3", "@angular/cdk": "8.2.1",
"@angular/forms": "6.0.2", "@angular/common": "8.2.8",
"@angular/material": "^6.4.3", "@angular/compiler": "8.2.8",
"@angular/platform-browser": "6.0.2", "@angular/core": "8.2.8",
"@angular/platform-browser-dynamic": "6.0.2", "@angular/forms": "8.2.8",
"@angular/router": "6.0.2", "@angular/material": "8.2.1",
"@babel/runtime": "^7.0.0-beta.55", "@angular/platform-browser": "8.2.8",
"core-js": "2.5.6", "@angular/platform-browser-dynamic": "8.2.8",
"fibers": "^3.0.0", "@angular/router": "8.2.8",
"@babel/runtime": "7.6.2",
"angular-tslint-rules": "^1.20.1",
"codelyzer": "^5.1.2",
"core-js": "2.5.7",
"meteor-node-stubs": "0.4.1", "meteor-node-stubs": "0.4.1",
"meteor-rxjs": "0.4.11", "meteor-rxjs": "0.4.14",
"rxjs": "6.1.0", "rxjs": "6.4.0",
"rxjs-compat": "6.1.0", "tslib": "1.10.0",
"systemjs": "^0.21.4", "tslint": "^5.20.0",
"zone.js": "0.8.26" "zone.js": "0.9.1"
}, },
"devDependencies": { "devDependencies": {
"@angular/common": "^6.0.2", "@angular/compiler-cli": "8.2.8",
"@angular/compiler": "^6.0.2",
"@angular/compiler-cli": "^6.0.2",
"@angular/core": "^6.0.2",
"@types/chai": "4.1.2", "@types/chai": "4.1.2",
"@types/meteor": "1.4.13", "@types/meteor": "1.4.13",
"@types/mocha": "2.2.48", "@types/mocha": "2.2.48",
...@@ -37,13 +40,12 @@ ...@@ -37,13 +40,12 @@
"chai": "4.1.2", "chai": "4.1.2",
"phantomjs-prebuilt": "2.1.16", "phantomjs-prebuilt": "2.1.16",
"sinon": "4.4.6", "sinon": "4.4.6",
"typescript": "^3.0.1" "typescript": "3.4.5"
}, },
"meteor": { "meteor": {
"mainModule": { "mainModule": {
"client": "client/main.ts", "client": "client/main.ts",
"server": "server/main.ts" "server": "server/main.ts"
}, }
"testModule": "tests/main.js"
} }
} }
import {Meteor} from 'meteor/meteor'; /* tslint:disable-next-line */
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => { Meteor.startup(() => {
// code to run on server at startup // code to run on server at startup
......
import assert from "assert";
describe("VQode_Management", function () {
it("package.json has correct name", async function () {
const { name } = await import("../package.json");
assert.strictEqual(name, "VQode_Management");
});
if (Meteor.isClient) {
it("client is not server", function () {
assert.strictEqual(Meteor.isServer, false);
});
}
if (Meteor.isServer) {
it("server is not client", function () {
assert.strictEqual(Meteor.isClient, false);
});
}
});
{
"rulesDirectory": "node_modules/codelyzer",
"extends": "angular-tslint-rules",
"rules": {
"comment-format": [
true,
"check-space",
{
"ignore-words": [
"TODO"
]
}
],
"directive-selector": [
true,
"attribute",
[
"app",
"test"
],
"camelCase"
],
"component-selector": [
true,
"element",
[
"app",
"test"
],
"kebab-case"
],
"template-use-track-by-function": true,
"template-no-call-expression": true,
"no-implicit-dependencies": false,
"no-floating-promises": false,
"template-i18n": [
false
],
"comment-type": [
true,
"multiline",
"singleline",
"doc"
]
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment