mirror of https://github.com/apache/archiva.git
Login form
This commit is contained in:
parent
c033b29ad6
commit
12d234b4c6
|
@ -16,8 +16,7 @@
|
||||||
~ specific language governing permissions and limitations
|
~ specific language governing permissions and limitations
|
||||||
~ under the License.
|
~ under the License.
|
||||||
-->
|
-->
|
||||||
<div class="app">
|
<div class="app d-flex flex-column" >
|
||||||
|
|
||||||
<header>
|
<header>
|
||||||
<nav class="navbar navbar-expand-md fixed-top navbar-light " style="background-color: #c6cbd2;">
|
<nav class="navbar navbar-expand-md fixed-top navbar-light " style="background-color: #c6cbd2;">
|
||||||
<a class="navbar-brand" routerLink="/">
|
<a class="navbar-brand" routerLink="/">
|
||||||
|
@ -59,14 +58,14 @@
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main>
|
<main class="container-fluid flex-fill">
|
||||||
<div class="container-fluid">
|
<div >
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<hr>
|
<hr />
|
||||||
<div class="footer">
|
<footer class="container-fluid">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
@ -74,6 +73,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
|
@ -27,6 +27,7 @@ import { AboutComponent } from './modules/general/about/about.component';
|
||||||
import { LoginComponent } from './modules/general/login/login.component';
|
import { LoginComponent } from './modules/general/login/login.component';
|
||||||
import { NotFoundComponent } from './modules/general/not-found/not-found.component';
|
import { NotFoundComponent } from './modules/general/not-found/not-found.component';
|
||||||
import { SidemenuComponent } from './modules/general/sidemenu/sidemenu.component';
|
import { SidemenuComponent } from './modules/general/sidemenu/sidemenu.component';
|
||||||
|
import {FormsModule} from "@angular/forms";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
@ -41,6 +42,7 @@ import { SidemenuComponent } from './modules/general/sidemenu/sidemenu.component
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
AppRoutingModule,
|
AppRoutingModule,
|
||||||
|
FormsModule,
|
||||||
],
|
],
|
||||||
providers: [],
|
providers: [],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class Logindata {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public username: string,
|
||||||
|
public password: string
|
||||||
|
) { }
|
||||||
|
|
||||||
|
}
|
|
@ -16,4 +16,36 @@
|
||||||
~ specific language governing permissions and limitations
|
~ specific language governing permissions and limitations
|
||||||
~ under the License.
|
~ under the License.
|
||||||
-->
|
-->
|
||||||
<p>Login</p>
|
<div class="container-md" >
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<form (ngSubmit)="onSubmit()" #loginForm="ngForm">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="username" i18n="loginform|">Username</label>
|
||||||
|
<input type="text" class="form-control" id="username" aria-describedby="usernameHelp"
|
||||||
|
required name="username"
|
||||||
|
[(ngModel)]="model.username" #username="ngModel"
|
||||||
|
>
|
||||||
|
<small id="usernameHelp" class="form-text text-muted" i18n="inputhelp|">Enter your username.</small>
|
||||||
|
|
||||||
|
<div [hidden]="username.valid || username.pristine"
|
||||||
|
class="alert alert-danger" i18n>
|
||||||
|
Username is required
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="password" i18n="loginform|">Password</label>
|
||||||
|
<input type="password" class="form-control" id="password" name="password"
|
||||||
|
required="required" [(ngModel)]="model.password" #password="ngModel"
|
||||||
|
>
|
||||||
|
<small id="passwordHelp" class="form-text text-muted" i18n="inputhelp|">Enter your password.</small>
|
||||||
|
<div [hidden]="password.valid || password.pristine"
|
||||||
|
class="alert alert-danger" i18n>
|
||||||
|
Password is required
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -17,6 +17,9 @@
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
// noinspection ES6UnusedImports
|
||||||
|
import { FormsModule } from "@angular/forms";
|
||||||
|
import { Logindata } from "../../../logindata";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-login',
|
selector: 'app-login',
|
||||||
|
@ -25,6 +28,14 @@ import { Component, OnInit } from '@angular/core';
|
||||||
})
|
})
|
||||||
export class LoginComponent implements OnInit {
|
export class LoginComponent implements OnInit {
|
||||||
|
|
||||||
|
model = new Logindata('', '');
|
||||||
|
|
||||||
|
submitted = false;
|
||||||
|
|
||||||
|
onSubmit() { this.submitted = true; }
|
||||||
|
|
||||||
|
get diagnostic() { return JSON.stringify(this.submitted); }
|
||||||
|
|
||||||
constructor() { }
|
constructor() { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
|
|
@ -21,10 +21,25 @@
|
||||||
$archiva-orange: #f46e1b;
|
$archiva-orange: #f46e1b;
|
||||||
$primary: $archiva-orange;
|
$primary: $archiva-orange;
|
||||||
|
|
||||||
|
|
||||||
|
html {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.app {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
color: black;
|
color: black;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
padding-top: 5rem;
|
padding-top: 5rem;
|
||||||
|
min-height:100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-fill {
|
||||||
|
flex:1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@import "~bootstrap/scss/bootstrap";
|
@import "~bootstrap/scss/bootstrap";
|
||||||
|
|
Loading…
Reference in New Issue