Commit ad895998 authored by wudizhanche1000's avatar wudizhanche1000

packages

parent b2261db8
import {Component, OnInit, ChangeDetectorRef} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import App from '../models/browserapp'; import App from '../models/browserapp';
import {AppService} from './app.service'; import {AppService} from './app.service';
import {ActivatedRoute, Params, Router} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import 'rxjs/Rx'; import 'rxjs/Rx';
import {MdIconRegistry, MdSnackBar} from '@angular/material'; import {MdSnackBar} from '@angular/material';
import {DomSanitizer} from '@angular/platform-browser';
@Component({ @Component({
moduleId: module.id, moduleId: module.id,
......
<md-tab-group *ngIf="app"> <md-tab-group *ngIf="app">
<md-tab *ngFor="let package of packages" [label]="package_description(package)"> <md-tab *ngFor="let package of packages" [label]="package_description(package)">
<form class="example-form" style="margin-top:16px;"> <form class="example-form" style="margin-top:16px;">
<md-input-container class="example-full-width"> <!--<md-input-container class="example-full-width">-->
<input md-input name="name" placeholder="应用名称" [(ngModel)]="app.name[locale]"> <!--<input md-input name="name" placeholder="应用名称" [(ngModel)]="app.name[locale]">-->
</md-input-container> <!--</md-input-container>-->
<md-input-container class="example-full-width"> <!--<md-input-container class="example-full-width">-->
<textarea md-input name="description" placeholder="应用介绍" <!--<textarea md-input name="description" placeholder="应用介绍"-->
[(ngModel)]="app.description[locale]"></textarea> <!--[(ngModel)]="app.description[locale]"></textarea>-->
<md-hint align="end">支持 Markdown 语法</md-hint> <!--<md-hint align="end">支持 Markdown 语法</md-hint>-->
</md-input-container> <!--</md-input-container>-->
<md-input-container class="example-full-width"> <!--<md-input-container class="example-full-width">-->
<textarea md-input name="news" placeholder="新闻" [(ngModel)]="news[locale]"></textarea> <!--<textarea md-input name="news" placeholder="新闻" [(ngModel)]="news[locale]"></textarea>-->
<md-hint align="end">JSON &#123;title: string, url: string, image: string&#125;[],不会写请联系 <!--<md-hint align="end">JSON &#123;title: string, url: string, image: string&#125;[],不会写请联系-->
zh99998@gmail.com <!--zh99998@gmail.com-->
</md-hint> <!--</md-hint>-->
</md-input-container> <!--</md-input-container>-->
<button md-raised-button color="primary">提交</button> <button md-raised-button color="primary">提交</button>
</form> </form>
......
...@@ -3,8 +3,7 @@ import App from '../models/browserapp'; ...@@ -3,8 +3,7 @@ import App from '../models/browserapp';
import {AppService} from './app.service'; import {AppService} from './app.service';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import 'rxjs/Rx'; import 'rxjs/Rx';
import {MdIconRegistry} from '@angular/material'; import {Package} from '../models/package';
import {DomSanitizer} from '@angular/platform-browser';
@Component({ @Component({
moduleId: module.id, moduleId: module.id,
...@@ -14,14 +13,17 @@ import {DomSanitizer} from '@angular/platform-browser'; ...@@ -14,14 +13,17 @@ import {DomSanitizer} from '@angular/platform-browser';
export class AppPackagesComponent implements OnInit { export class AppPackagesComponent implements OnInit {
app: App; app: App;
constructor(private appService: AppService, private route: ActivatedRoute, iconRegistry: MdIconRegistry, sanitizer: DomSanitizer) { packages: Package[];
constructor(private appService: AppService, private route: ActivatedRoute) {
} }
async ngOnInit() { async ngOnInit() {
this.route.parent.params this.route.parent.params
.switchMap((params: Params) => this.appService.find(params['id'])) .switchMap((params: Params) => this.appService.find(params['id']))
.subscribe(app => { .subscribe(async(app) => {
this.app = app; this.app = app;
this.packages = await this.appService.allPackages(app.id);
}); });
} }
......
...@@ -3,6 +3,7 @@ import App from '../models/browserapp'; ...@@ -3,6 +3,7 @@ import App from '../models/browserapp';
import {Http, RequestOptions, Headers, Response} from '@angular/http'; import {Http, RequestOptions, Headers, Response} from '@angular/http';
import 'rxjs/add/operator/toPromise'; import 'rxjs/add/operator/toPromise';
import {Observable} from 'rxjs/Rx'; import {Observable} from 'rxjs/Rx';
import {Package} from '../models/package';
/** /**
* Created by weijian on 2016/12/30. * Created by weijian on 2016/12/30.
*/ */
...@@ -23,6 +24,16 @@ export class AppService { ...@@ -23,6 +24,16 @@ export class AppService {
} }
async allPackages(appId: string): Promise<Package[]> {
return [new Package({
version: '1.06',
platforms: ['win32', 'darwin'],
locales: ['zh-CN', 'en-US'],
files: {'1.txt': 'hashA', '2.txt': 'hashB', '3.txt': 'hashC'},
})];
}
all(): Promise<App[]> { all(): Promise<App[]> {
return this.http.get('http://localhost:8000/apps') return this.http.get('http://localhost:8000/apps')
.map((response) => { .map((response) => {
......
...@@ -21,6 +21,8 @@ export class App extends Model { ...@@ -21,6 +21,8 @@ export class App extends Model {
@field @field
news: I18n<{title: string, url: string, image: string}[]>; news: I18n<{title: string, url: string, image: string}[]>;
@field @field
changelog: I18n<string>;
@field
conference?: string; conference?: string;
@field @field
data: any; data: any;
......
/**
* Created by weijian on 2017/1/6.
*/
const queue = [];
while(true){
}
...@@ -7,6 +7,9 @@ import {NotFound} from '../koa/errors'; ...@@ -7,6 +7,9 @@ import {NotFound} from '../koa/errors';
import {Package} from '../models/package'; import {Package} from '../models/package';
const router = new Router(); const router = new Router();
router.get('/packages/all/:appId', async(ctx, next) => {
});
router.get('/packages/:id', async(ctx, next) => { router.get('/packages/:id', async(ctx, next) => {
let p: Package|null = await Package.findOne({id: ctx.params.id}); let p: Package|null = await Package.findOne({id: ctx.params.id});
if (!p) { if (!p) {
......
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