From 3130389507696dcdbe88126af8033ef1dc1748d8 Mon Sep 17 00:00:00 2001 From: negilbabu Date: Mon, 16 Jan 2023 15:25:13 +0530 Subject: [PATCH] latest --- .../Library/controller/BooksController.java | 5 +- .../Library/service/BooksService.java | 2 +- .../service/impl/BooksServiceImpl.java | 26 +- .../src/app/addbooks/addbooks.component.css | 130 ++++++- .../src/app/addbooks/addbooks.component.html | 122 +++++- .../src/app/addbooks/addbooks.component.ts | 28 +- .../admin-navbar/admin-navbar.component.css | 238 ++++++++++++ .../admin-navbar/admin-navbar.component.html | 17 + .../admin-navbar.component.spec.ts | 23 ++ .../admin-navbar/admin-navbar.component.ts | 34 ++ .../Library/src/app/app-routing.module.ts | 5 +- FrontEnd/Library/src/app/app.module.ts | 2 + .../Library/src/app/body/body.component.html | 12 +- FrontEnd/Library/src/app/books.service.ts | 4 +- .../Library/src/app/demo/demo.component.css | 13 +- .../Library/src/app/demo/demo.component.html | 49 ++- .../Library/src/app/fine/fine.component.css | 126 ++++++- .../Library/src/app/fine/fine.component.html | 77 +++- .../src/app/sidenav/sidenav.component.css | 349 ++++++------------ .../src/app/sidenav/sidenav.component.html | 141 ++++--- .../src/assets/BooksImage/item_pics/aadu.jpeg | Bin 0 -> 12796 bytes 21 files changed, 1047 insertions(+), 356 deletions(-) create mode 100644 FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.css create mode 100644 FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.html create mode 100644 FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.spec.ts create mode 100644 FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.ts create mode 100644 FrontEnd/iprjt/src/assets/BooksImage/item_pics/aadu.jpeg diff --git a/BackEnd/Library/src/main/java/com/innovature/Library/controller/BooksController.java b/BackEnd/Library/src/main/java/com/innovature/Library/controller/BooksController.java index 261de461..1b1772d6 100644 --- a/BackEnd/Library/src/main/java/com/innovature/Library/controller/BooksController.java +++ b/BackEnd/Library/src/main/java/com/innovature/Library/controller/BooksController.java @@ -163,9 +163,10 @@ public ResponseEntity> getAllBookStockSearch( @RequestParam(defaultValue = "") String keyword, @RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "10") Integer pageSize, - @RequestParam(defaultValue = "id") String sortBy) { + @RequestParam(defaultValue = "books_id") String sortBy, + @RequestParam(defaultValue = "-1") Integer direction) { System.out.println("paage size" + pageSize); - Page list = service.getAllBookStocks(keyword, pageNo - 1, pageSize, sortBy); + Page list = service.getAllBookStocks(keyword, pageNo - 1, pageSize, sortBy,direction); return new ResponseEntity>(list, new HttpHeaders(), HttpStatus.OK); diff --git a/BackEnd/Library/src/main/java/com/innovature/Library/service/BooksService.java b/BackEnd/Library/src/main/java/com/innovature/Library/service/BooksService.java index 7f4373b6..efba1b80 100644 --- a/BackEnd/Library/src/main/java/com/innovature/Library/service/BooksService.java +++ b/BackEnd/Library/src/main/java/com/innovature/Library/service/BooksService.java @@ -38,7 +38,7 @@ public interface BooksService { List getBookCountByCategory(); - PagegetAllBookStocks(String keyword, Integer pageNo,Integer pageSize,String sortBy); + PagegetAllBookStocks(String keyword, Integer pageNo,Integer pageSize,String sortBy,Integer direction); } diff --git a/BackEnd/Library/src/main/java/com/innovature/Library/service/impl/BooksServiceImpl.java b/BackEnd/Library/src/main/java/com/innovature/Library/service/impl/BooksServiceImpl.java index 50a8d175..e04cf32f 100644 --- a/BackEnd/Library/src/main/java/com/innovature/Library/service/impl/BooksServiceImpl.java +++ b/BackEnd/Library/src/main/java/com/innovature/Library/service/impl/BooksServiceImpl.java @@ -147,14 +147,34 @@ public List getBookCountByCategory() { //book search @Override - public Page getAllBookStocks(String keyword, Integer pageNo, Integer pageSize, String sortBy) { - Pageable paging = PageRequest.of(pageNo, pageSize, Sort.by(sortBy)); - System.out.println(keyword); + public Page getAllBookStocks(String keyword, Integer pageNo, Integer pageSize, String sortBy,Integer direction) { + + var sortByDescending=Sort.by(sortBy).descending(); + var sortByAscending=Sort.by(sortBy).ascending(); + + if(direction==1){ + + Pageable paging = PageRequest.of(pageNo, pageSize, sortByDescending); + System.out.println(keyword); String k = keyword; String k1 = keyword; String k2 = keyword; Page pagedResult = booksRepository.findByKeywords(keyword, k, k1, k2, paging); return pagedResult; + } + + else + { + Pageable paging = PageRequest.of(pageNo, pageSize, sortByAscending); + System.out.println(keyword); + String k = keyword; + String k1 = keyword; + String k2 = keyword; + Page pagedResult = booksRepository.findByKeywords(keyword, k, k1, k2, paging); + return pagedResult; + } + + } diff --git a/FrontEnd/Library/src/app/addbooks/addbooks.component.css b/FrontEnd/Library/src/app/addbooks/addbooks.component.css index 65635de2..7b9d767e 100644 --- a/FrontEnd/Library/src/app/addbooks/addbooks.component.css +++ b/FrontEnd/Library/src/app/addbooks/addbooks.component.css @@ -8,6 +8,7 @@ width: 80%; border: none; text-align: center; + height: 100px; } th { @@ -22,4 +23,131 @@ } .form-control{ width: fit-content; - } \ No newline at end of file + } + + + + + +@import url(//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css); +@import url(https://fonts.googleapis.com/css?family=Titillium+Web:300); +.fa-2x { + font-size: 2em; + } + .fa { + position: relative; + display: table-cell; + width: 60px; + height: 36px; + text-align: center; + vertical-align: middle; + font-size:20px; + } + + .main-menu { + background:#446cb3; + margin: 0%; + + border-right:0px solid #030303; + position:absolute; + top:0; + bottom:0; + height: 770px; + overflow: hidden; + + left:0; + width:220px; + overflow:-moz-hidden-unscrollable; + -webkit-transition:width .05s linear; + transition:width .05s linear; + -webkit-transform:translateZ(0) scale(1,1); + z-index:1000; + } + + .main-menu>ul { + margin:7px 0; + } + body{height: 0vh; + background-color: #030303; + } + .main-menu li { + position:relative; + display:block; + width:250px; + } + + .main-menu li>a { + position:relative; + display:table; + border-collapse:collapse; + border-spacing:0; + color:rgb(237, 248, 244); + font-family: arial; + font-size: 14px; + text-decoration:none; + -webkit-transform:translateZ(0) scale(1,1); + -webkit-transition:all .1s linear; + transition:all .1s linear; + } + + .main-menu .nav-icon { + position:relative; + display:table-cell; + width:60px; + height:36px; + text-align:center; + vertical-align:middle; + font-size:18px; + } + + .main-menu .nav-text { + position:relative; + display:table-cell; + vertical-align:middle; + width:190px; + font-family: 'Titillium Web', sans-serif; + } + + .main-menu>ul.logout { + position:absolute; + left:0; + bottom:0; + } + + .no-touch .scrollable.hover { + overflow-y:hidden; + } + + .no-touch .scrollable.hover:hover { + overflow-y:auto; + overflow:visible; + } + + a:hover,a:focus { + text-decoration:none; + } + + nav { + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + -o-user-select:none; + user-select:none; + } + + nav ul,nav li { + outline:0; + margin:0; + padding:0; + } + .main-menu li:hover>a,nav.main-menu li.active>a,.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus,.no-touch .dashboard-page nav.dashboard-menu ul li:hover a,.dashboard-page nav.dashboard-menu ul li.active a { + color:rgb(243, 234, 234); + background-color:#565985; + } + @font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 300; + src: local('Titillium WebLight'), local('TitilliumWeb-Light'), url(http://themes.googleusercontent.com/static/fonts/titilliumweb/v2/anMUvcNT0H1YN4FII8wpr24bNCNEoFTpS2BTjF6FB5E.woff) format('woff'); + } + \ No newline at end of file diff --git a/FrontEnd/Library/src/app/addbooks/addbooks.component.html b/FrontEnd/Library/src/app/addbooks/addbooks.component.html index d4dc59bd..5a1a3787 100644 --- a/FrontEnd/Library/src/app/addbooks/addbooks.component.html +++ b/FrontEnd/Library/src/app/addbooks/addbooks.component.html @@ -1,31 +1,100 @@ - - -

-
+ + + + + +
+ + +

+


- - +
-
- - +
+ +
- +
+ - + + + + + + + + + + + + + @@ -87,4 +183,6 @@
-
\ No newline at end of file + + + \ No newline at end of file diff --git a/FrontEnd/Library/src/app/addbooks/addbooks.component.ts b/FrontEnd/Library/src/app/addbooks/addbooks.component.ts index fb741cfc..2b0b2549 100644 --- a/FrontEnd/Library/src/app/addbooks/addbooks.component.ts +++ b/FrontEnd/Library/src/app/addbooks/addbooks.component.ts @@ -32,7 +32,7 @@ export class AddbooksComponent implements OnInit { data: any; page:number=1; count: any; -tableSize: number = 5; +tableSize: number = 3; ProdData: any; sortedData: any; a:any; @@ -68,7 +68,7 @@ currentFile?: File; search1(key:any){ console.log("before api=",key); - this.booksService.search(key,this.page,this.tableSize,this.sort).subscribe(response=>{ + this.booksService.search(key,this.page,this.tableSize,this.sort,this.direction).subscribe(response=>{ this.result=response.content; console.log("searchRslt=",this.result); this.data=this.result; @@ -94,9 +94,10 @@ Load() { sortfn(a:any){ this.sort=a; - this.page=this.page; - this.tableSize; + // this.page=this.page; + // this.tableSize; + if(this.pkey==null){ if(this.direction==1){ this.direction=-1; console.log("from desc to :",this.direction) @@ -108,11 +109,26 @@ sortfn(a:any){ console.log("from asc to desc",this.direction) this.ngOnInit(); } +} +else{ + if(this.direction==1){ + this.direction=-1; + console.log("from desc to :",this.direction) + this.search1(this.search.controls['inp'].value); + } + + else{ + this.direction=1; + console.log("from asc to desc",this.direction) + this.search1(this.search.controls['inp'].value); + } + +} } onTableDataChange(event:any) { - this.pkey==this.search.controls['inp'].value; + // this.pkey==this.search.controls['inp'].value; console.log("p-",this.pkey) if(this.pkey==null){ console.log("page=",event) @@ -128,7 +144,7 @@ onTableDataChange(event:any) { // this.pkey==this.search.controls['inp'].value; console.log("page=",event) console.log("pkey in page=",this.pkey) - this.booksService.search(this.pkey,this.page,this.tableSize,this.sort).subscribe(result=>{ + this.booksService.search(this.pkey,this.page,this.tableSize,this.sort,this.direction).subscribe(result=>{ this.result=result.content; this.count=result.totalElements console.log("loaded books=",this.result); diff --git a/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.css b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.css new file mode 100644 index 00000000..3c43e176 --- /dev/null +++ b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.css @@ -0,0 +1,238 @@ + + body, html { + /* fixed */ + position: relative; + margin: 0; + /* font-family: arial; */ + height: 0vh; + background: #ccc; + } + *, *:before, *:after { + box-sizing: border-box; + } + .nav-mobile { + /* position: fixed; */ + background: #446cb3; + /* background: #9f3800; */ + color: #fff; + padding: 0; + margin: 0; + cursor: auto; + font-size: 18px; + list-style-type: none; + box-shadow: 0 5px 5px -5px #333; + } + .nav-mobile:after { + content: ""; + display: table; + clear: both; + } + + + .nav-mobile li { + width: 100%; + height: 45px; + line-height: 46px; + text-align: center; + float: left; + } + .nav-mobile li a { + display: block; + color: #333; + width: 100%; + height: 100%; + text-decoration: none; + } + /* .nav-mobile .menu-button { */ + + /* absolute */ + /* position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + cursor: pointer; + display: block; + } + .nav-mobile .menu-button:after { + opacity: 0; + top: 45px; + content: ""; + width: 100vw; + display: block; */ + /* fixed + position: relative; + height: 100vh; + background: rgba(0, 0, 0, 0.5); + content: ""; + pointer-events: none; + transition: opacity 0.2s cubic-bezier(0, 0, 0.3, 1); + transition-delay: 0.1s; + } + .nav-mobile #menu-toggle { + display: none; + } + .nav-mobile #menu-toggle.active ~ .menu-button .icon-close, .nav-mobile #menu-toggle:checked ~ .menu-button .icon-close { + display: block; + } + .nav-mobile #menu-toggle.active ~ .menu-button .icon-open, .nav-mobile #menu-toggle:checked ~ .menu-button .icon-open { + display: none; + } + .nav-mobile #menu-toggle.active ~ .menu-button:after, .nav-mobile #menu-toggle:checked ~ .menu-button:after { + opacity: 1; + pointer-events: auto; + transition: opacity 0.3s cubic-bezier(0, 0, 0.3, 1); + } + .nav-mobile #menu-toggle.active ~ .menu-sidebar, .nav-mobile #menu-toggle:checked ~ .menu-sidebar { + transform: translateX(0); + transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1); + } + .nav-mobile .menu-container { + width: 65px; + float: left; + cursor: pointer; */ + /* absolute */ + /* position: absolute; + + } + .nav-mobile .menu-container .menu-sidebar { + box-shadow: 5px 0 5px -5px #333; + display: block; + width: 65vw; + bottom: 0; + background: white; + color: #333; + */ + /* fixed */ + /* position: fixed; + transform: translateX(-405px); + transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1); + top: 45px; + z-index: 2; + list-style-type: none; + padding: 0; + max-width: 250px; + } + .nav-mobile .menu-container .menu-sidebar .arrow { */ + /* absolute */ + /* position: absolute; + line-height: 50px; + font-size: 32px; + color: #555; + top: 0; + z-index: 0; + } + .nav-mobile .menu-container .menu-sidebar .arrow.left { + left: 25px; + } + .nav-mobile .menu-container .menu-sidebar .arrow.right { + right: 25px; + } + .nav-mobile .menu-container .menu-sidebar li { + height: 55px; + line-height: 55px; + font-size: 16px; + text-align: left; + position: relative; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding-left: 20px; + } + .nav-mobile .menu-container .menu-sidebar li:hover { + background: rgb(244, 244, 247); + } + .nav-mobile .menu-container .menu-sidebar li .menu-sub { */ + /* fixed */ + /* position: relative; + top: 0; + right: 0; + bottom: 0; + width: 0; + overflow: hidden; + background: rgb(248, 248, 250); + visibility: hidden; + transition: all 0.3s cubic-bezier(0, 0, 0.3, 1); + border-left: 1px solid #ccc; + list-style-type: none; + padding: 0; + margin: 0; + z-index: 2; + max-width: 250px; */ + /* width side */ + /* } + .nav-mobile .menu-container .menu-sidebar li .menu-sub li { + overflow: hidden; + } + .nav-mobile .menu-container .menu-sidebar li .menu-sub .menu-sub-title { + padding-left: 50px; + } + .nav-mobile .menu-container .menu-sidebar li .submenu-label { + cursor: pointer; + width: 100%; + height: 100%; + display: block; + } + .nav-mobile .menu-container .menu-sidebar li .submenu-toggle { + display: none; + } + .nav-mobile .menu-container .menu-sidebar li .submenu-toggle.active ~ .menu-sub, .nav-mobile .menu-container .menu-sidebar li .submenu-toggle:checked ~ .menu-sub { + width: 65vw; + visibility: visible; + z-index: 1; + transition: width 0.35s cubic-bezier(0, 0, 0.3, 1); + } + + .alert { + padding: 20px; + background-color: #3b9438; + color: white; + } + + .closebtn { + margin-left: 15px; + color: white; + font-weight: bold; + float: right; + font-size: 22px; + line-height: 20px; + cursor: pointer; + transition: 0.3s; + } + + .closebtn:hover { + color: black; + } + .btnItem1{ + border: none; + padding: 0; + background: none; + font-size: 18px; + font-style: normal ; + color: rgba(238, 248, 248, 0.73); + } + + + + nav.menu-sidebar{ + z-index: 9; + } + .menu-sidebar{ + z-index: 9; + } + + .nav-mobile{ + display: block; + } + */ + + + + /* edited */ +/* + .menu-sidebar{ + + display: block !important; + + } */ +/* + */ diff --git a/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.html b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.html new file mode 100644 index 00000000..b2cf9aad --- /dev/null +++ b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.html @@ -0,0 +1,17 @@ + + \ No newline at end of file diff --git a/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.spec.ts b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.spec.ts new file mode 100644 index 00000000..af16d689 --- /dev/null +++ b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminNavbarComponent } from './admin-navbar.component'; + +describe('AdminNavbarComponent', () => { + let component: AdminNavbarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AdminNavbarComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AdminNavbarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.ts b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.ts new file mode 100644 index 00000000..a9e9ee0d --- /dev/null +++ b/FrontEnd/Library/src/app/admin-navbar/admin-navbar.component.ts @@ -0,0 +1,34 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'app-admin-navbar', + templateUrl: './admin-navbar.component.html', + styleUrls: ['./admin-navbar.component.css'] +}) +export class AdminNavbarComponent implements OnInit { + + + constructor(private router:Router) { } + + ngOnInit(): void { + this.dash(); + } + + profile() { + throw new Error('Method not implemented.'); + } + logout() { + if (confirm('Are you sure want to Logout?')) { + localStorage. clear() + this.router.navigate(['/login']) + } else { + + this.router.navigate(['/sidenav']) + } + } + dash() { + throw new Error('Method not implemented.'); + } + +} diff --git a/FrontEnd/Library/src/app/app-routing.module.ts b/FrontEnd/Library/src/app/app-routing.module.ts index e527bd9d..eb61dfab 100644 --- a/FrontEnd/Library/src/app/app-routing.module.ts +++ b/FrontEnd/Library/src/app/app-routing.module.ts @@ -30,6 +30,7 @@ import { BorrowDetailViewComponent } from './borrow-detail-view/borrow-detail-vi import { ForgotpasswordComponent } from './forgotpassword/forgotpassword.component'; import { Sidenav2Component } from './sidenav2/sidenav2.component'; import { Navbar2Component } from './navbar2/navbar2.component'; +import { AdminNavbarComponent } from './admin-navbar/admin-navbar.component'; const routes: Routes = [ {path: '',redirectTo:'login',pathMatch:'full'}, @@ -60,7 +61,9 @@ const routes: Routes = [ {path:'borrow-detail-view',component:BorrowDetailViewComponent}, {path:'forgotpassword',component:ForgotpasswordComponent}, {path:'sidenav2',component:Sidenav2Component,canActivate: [HomeguardGuard]}, - {path:'navbar2',component:Navbar2Component,canActivate: [HomeguardGuard]} + {path:'navbar2',component:Navbar2Component,canActivate: [HomeguardGuard]}, + {path:'sidenav2',component:Sidenav2Component,canActivate: [HomeguardGuard]}, + {path:'admin-navbar',component:AdminNavbarComponent,canActivate: [HomeguardGuard]} ]; @NgModule({ diff --git a/FrontEnd/Library/src/app/app.module.ts b/FrontEnd/Library/src/app/app.module.ts index 4cc3db4f..30604399 100644 --- a/FrontEnd/Library/src/app/app.module.ts +++ b/FrontEnd/Library/src/app/app.module.ts @@ -56,6 +56,7 @@ import { ForgotpasswordComponent } from './forgotpassword/forgotpassword.compone import {Chart} from 'chart.js'; import { Sidenav2Component } from './sidenav2/sidenav2.component'; import { Navbar2Component } from './navbar2/navbar2.component'; +import { AdminNavbarComponent } from './admin-navbar/admin-navbar.component'; // import {MatIconModule} from '@angular/material/icon'; // import { MatToolbarModule } from '@angular/material'; @@ -95,6 +96,7 @@ import { Navbar2Component } from './navbar2/navbar2.component'; ForgotpasswordComponent, Sidenav2Component, Navbar2Component, + AdminNavbarComponent, // Chart // ModalComponent diff --git a/FrontEnd/Library/src/app/body/body.component.html b/FrontEnd/Library/src/app/body/body.component.html index c36633f7..74756449 100644 --- a/FrontEnd/Library/src/app/body/body.component.html +++ b/FrontEnd/Library/src/app/body/body.component.html @@ -1,19 +1,23 @@ + + -
-
-

BOOKS BY CATEGORY

+
+
+

BOOKS BY CATEGORY

{{mychart}}
-
+ +

ISSUE AND RETURNED CHART

{{bar}}
+
\ No newline at end of file diff --git a/FrontEnd/Library/src/app/books.service.ts b/FrontEnd/Library/src/app/books.service.ts index c64c04e2..66bff396 100644 --- a/FrontEnd/Library/src/app/books.service.ts +++ b/FrontEnd/Library/src/app/books.service.ts @@ -26,9 +26,9 @@ handleError(err: HttpErrorResponse): any { ////////////////////////////////////////////// - search(key: any, pageno: any, pagesize: any, sortby: any): Observable { + search(key: any, pageno: any, pagesize: any, sortby: any,direction:any): Observable { console.log('+++++++++++', key) - return this.http.get('http://localhost:8080/books/admin/searchBooks/?keyword=' + key + '&pageNo=' + pageno + '&pageSize=' + pagesize + '&sortBy=' + sortby) + return this.http.get('http://localhost:8080/books/admin/searchBooks/?keyword=' + key + '&pageNo=' + pageno + '&pageSize=' + pagesize + '&sortBy=' + sortby+"&direction="+direction) } diff --git a/FrontEnd/Library/src/app/demo/demo.component.css b/FrontEnd/Library/src/app/demo/demo.component.css index da1b43dc..c2552ce8 100644 --- a/FrontEnd/Library/src/app/demo/demo.component.css +++ b/FrontEnd/Library/src/app/demo/demo.component.css @@ -54,4 +54,15 @@ /* list-style-type: none; */ box-shadow: 0 5px 5px -5px #333; position:fixed; -} \ No newline at end of file +} + +@import url(//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css); +body, html { + height: 100%; +} + +@media (min-width: 768px) { + aside { + height: 100%; + } +} diff --git a/FrontEnd/Library/src/app/demo/demo.component.html b/FrontEnd/Library/src/app/demo/demo.component.html index f157ebcf..d581869b 100644 --- a/FrontEnd/Library/src/app/demo/demo.component.html +++ b/FrontEnd/Library/src/app/demo/demo.component.html @@ -1,16 +1,57 @@ - --> + + +
+
+ + +
\ No newline at end of file diff --git a/FrontEnd/Library/src/app/fine/fine.component.css b/FrontEnd/Library/src/app/fine/fine.component.css index 1342bfca..d1d6ed8d 100644 --- a/FrontEnd/Library/src/app/fine/fine.component.css +++ b/FrontEnd/Library/src/app/fine/fine.component.css @@ -29,4 +29,128 @@ table{ /* edited */ .text-center{ display: block; - } \ No newline at end of file + } + + + + + + +@import url(//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css); +@import url(https://fonts.googleapis.com/css?family=Titillium+Web:300); +.fa-2x { + font-size: 2em; + } + .fa { + position: relative; + display: table-cell; + width: 60px; + height: 36px; + text-align: center; + vertical-align: middle; + font-size:20px; + } + + .main-menu { + background:#446cb3; + border-right:0px solid #030303; + position:absolute; + top:0; + bottom:0; + height:100%; + left:0; + width:220px; + overflow:auto; + -webkit-transition:width .05s linear; + transition:width .05s linear; + -webkit-transform:translateZ(0) scale(1,1); + z-index:1000; + } + + .main-menu>ul { + margin:7px 0; + } + body{height: 0vh; + background-color: #030303; + } + .main-menu li { + position:relative; + display:block; + width:250px; + } + + .main-menu li>a { + position:relative; + display:table; + border-collapse:collapse; + border-spacing:0; + color:rgb(237, 248, 244); + font-family: arial; + font-size: 14px; + text-decoration:none; + -webkit-transform:translateZ(0) scale(1,1); + -webkit-transition:all .1s linear; + transition:all .1s linear; + } + + .main-menu .nav-icon { + position:relative; + display:table-cell; + width:60px; + height:36px; + text-align:center; + vertical-align:middle; + font-size:18px; + } + + .main-menu .nav-text { + position:relative; + display:table-cell; + vertical-align:middle; + width:190px; + font-family: 'Titillium Web', sans-serif; + } + + .main-menu>ul.logout { + position:absolute; + left:0; + bottom:0; + } + + .no-touch .scrollable.hover { + overflow-y:hidden; + } + + .no-touch .scrollable.hover:hover { + overflow-y:auto; + overflow:visible; + } + + a:hover,a:focus { + text-decoration:none; + } + + nav { + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + -o-user-select:none; + user-select:none; + } + + nav ul,nav li { + outline:0; + margin:0; + padding:0; + } + .main-menu li:hover>a,nav.main-menu li.active>a,.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus,.no-touch .dashboard-page nav.dashboard-menu ul li:hover a,.dashboard-page nav.dashboard-menu ul li.active a { + color:rgb(243, 234, 234); + background-color:#565985; + } + @font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 300; + src: local('Titillium WebLight'), local('TitilliumWeb-Light'), url(http://themes.googleusercontent.com/static/fonts/titilliumweb/v2/anMUvcNT0H1YN4FII8wpr24bNCNEoFTpS2BTjF6FB5E.woff) format('woff'); + } + \ No newline at end of file diff --git a/FrontEnd/Library/src/app/fine/fine.component.html b/FrontEnd/Library/src/app/fine/fine.component.html index 58a9417f..629c3ec8 100644 --- a/FrontEnd/Library/src/app/fine/fine.component.html +++ b/FrontEnd/Library/src/app/fine/fine.component.html @@ -1,6 +1,79 @@ - + + + + + +
+ + + - +
diff --git a/FrontEnd/Library/src/app/sidenav/sidenav.component.css b/FrontEnd/Library/src/app/sidenav/sidenav.component.css index 799ba7cb..016f153d 100644 --- a/FrontEnd/Library/src/app/sidenav/sidenav.component.css +++ b/FrontEnd/Library/src/app/sidenav/sidenav.component.css @@ -1,245 +1,120 @@ -body, html { -/* fixed */ - position: relative; - margin: 0; - font-family: arial; - height: 0vh; - background: #ccc; - } - *, *:before, *:after { - box-sizing: border-box; - } - .nav-mobile { - /* position: fixed; */ - background: #446cb3; - /* background: #9f3800; */ - color: #fff; - padding: 0; - margin: 0; - cursor: auto; - font-size: 18px; - list-style-type: none; - box-shadow: 0 5px 5px -5px #333; - } - .nav-mobile:after { - content: ""; - display: table; - clear: both; - } - .nav-mobile svg { - height: 45px; - width: 65px; - padding: 9px; - } - .nav-mobile svg path { - fill: #fff; - } - .nav-mobile svg.icon-close { - display: none; - padding: 15px; - } - .nav-mobile li { - width: 100%; - height: 45px; - line-height: 46px; - text-align: center; - float: left; - } - .nav-mobile li a { - display: block; - color: #333; - width: 100%; - height: 100%; - text-decoration: none; - } - .nav-mobile .menu-button { - /* absolute */ - position: relative; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - cursor: pointer; - display: block; - } - .nav-mobile .menu-button:after { - opacity: 0; - top: 45px; - content: ""; - width: 100vw; - display: block; - /* fixed */ - position: relative; - height: 100vh; - background: rgba(0, 0, 0, 0.5); - content: ""; - pointer-events: none; - transition: opacity 0.2s cubic-bezier(0, 0, 0.3, 1); - transition-delay: 0.1s; - } - .nav-mobile #menu-toggle { - display: none; - } - .nav-mobile #menu-toggle.active ~ .menu-button .icon-close, .nav-mobile #menu-toggle:checked ~ .menu-button .icon-close { - display: block; - } - .nav-mobile #menu-toggle.active ~ .menu-button .icon-open, .nav-mobile #menu-toggle:checked ~ .menu-button .icon-open { - display: none; - } - .nav-mobile #menu-toggle.active ~ .menu-button:after, .nav-mobile #menu-toggle:checked ~ .menu-button:after { - opacity: 1; - pointer-events: auto; - transition: opacity 0.3s cubic-bezier(0, 0, 0.3, 1); - } - .nav-mobile #menu-toggle.active ~ .menu-sidebar, .nav-mobile #menu-toggle:checked ~ .menu-sidebar { - transform: translateX(0); - transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1); - } - .nav-mobile .menu-container { - width: 65px; - float: left; - cursor: pointer; - /* absolute */ - position: absolute; - - } - .nav-mobile .menu-container .menu-sidebar { - box-shadow: 5px 0 5px -5px #333; - display: block; - width: 65vw; - bottom: 0; - background: white; - color: #333; - /* fixed */ - position: fixed; - transform: translateX(-405px); - transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1); - top: 45px; - z-index: 2; - list-style-type: none; - padding: 0; - max-width: 250px; - } - .nav-mobile .menu-container .menu-sidebar .arrow { - /* absolute */ - position: absolute; - line-height: 50px; - font-size: 32px; - color: #555; - top: 0; - z-index: 0; - } - .nav-mobile .menu-container .menu-sidebar .arrow.left { - left: 25px; - } - .nav-mobile .menu-container .menu-sidebar .arrow.right { - right: 25px; - } - .nav-mobile .menu-container .menu-sidebar li { - height: 55px; - line-height: 55px; - font-size: 16px; - text-align: left; - position: relative; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - padding-left: 20px; - } - .nav-mobile .menu-container .menu-sidebar li:hover { - background: rgb(244, 244, 247); - } - .nav-mobile .menu-container .menu-sidebar li .menu-sub { - /* fixed */ - position: relative; - top: 0; - right: 0; - bottom: 0; - width: 0; - overflow: hidden; - background: rgb(248, 248, 250); - visibility: hidden; - transition: all 0.3s cubic-bezier(0, 0, 0.3, 1); - border-left: 1px solid #ccc; - list-style-type: none; - padding: 0; - margin: 0; - z-index: 2; - max-width: 250px; - /* width side */ - } - .nav-mobile .menu-container .menu-sidebar li .menu-sub li { - overflow: hidden; - } - .nav-mobile .menu-container .menu-sidebar li .menu-sub .menu-sub-title { - padding-left: 50px; - } - .nav-mobile .menu-container .menu-sidebar li .submenu-label { - cursor: pointer; - width: 100%; - height: 100%; - display: block; - } - .nav-mobile .menu-container .menu-sidebar li .submenu-toggle { - display: none; - } - .nav-mobile .menu-container .menu-sidebar li .submenu-toggle.active ~ .menu-sub, .nav-mobile .menu-container .menu-sidebar li .submenu-toggle:checked ~ .menu-sub { - width: 65vw; - visibility: visible; - z-index: 1; - transition: width 0.35s cubic-bezier(0, 0, 0.3, 1); +@import url(//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css); +@import url(https://fonts.googleapis.com/css?family=Titillium+Web:300); +.fa-2x { + font-size: 2em; + } + .fa { + position: relative; + display: table-cell; + width: 60px; + height: 36px; + text-align: center; + vertical-align: middle; + font-size:20px; } - .alert { - padding: 20px; - background-color: #3b9438; - color: white; + .main-menu { + background:#446cb3; + border-right:0px solid #030303; + position:fixed; + top:0; + bottom:0; + height:100%; + left:0; + width:220px; + overflow:auto; + -webkit-transition:width .05s linear; + transition:width .05s linear; + -webkit-transform:translateZ(0) scale(1,1); + z-index:1000; } - .closebtn { - margin-left: 15px; - color: white; - font-weight: bold; - float: right; - font-size: 22px; - line-height: 20px; - cursor: pointer; - transition: 0.3s; + .main-menu>ul { + margin:7px 0; + } + body{height: 0vh; + background-color: #030303; + } + .main-menu li { + position:relative; + display:block; + width:250px; } - .closebtn:hover { - color: black; - } - .btnItem1{ - border: none; - padding: 0; - background: none; - font-size: 18px; - font-style: normal ; - color: rgba(238, 248, 248, 0.73); -} - - - -nav.menu-sidebar{ - z-index: 9; -} -.menu-sidebar{ - z-index: 9; -} - -.nav-mobile{ -display: block; -} - - - - -/* edited */ - -.menu-sidebar{ - - display: block !important; - -} \ No newline at end of file + .main-menu li>a { + position:relative; + display:table; + border-collapse:collapse; + border-spacing:0; + color:rgb(237, 248, 244); + font-family: arial; + font-size: 14px; + text-decoration:none; + -webkit-transform:translateZ(0) scale(1,1); + -webkit-transition:all .1s linear; + transition:all .1s linear; + } + + .main-menu .nav-icon { + position:relative; + display:table-cell; + width:60px; + height:36px; + text-align:center; + vertical-align:middle; + font-size:18px; + } + + .main-menu .nav-text { + position:relative; + display:table-cell; + vertical-align:middle; + width:190px; + font-family: 'Titillium Web', sans-serif; + } + + .main-menu>ul.logout { + position:absolute; + left:0; + bottom:0; + } + + .no-touch .scrollable.hover { + overflow-y:hidden; + } + + .no-touch .scrollable.hover:hover { + overflow-y:auto; + overflow:visible; + } + + a:hover,a:focus { + text-decoration:none; + } + + nav { + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + -o-user-select:none; + user-select:none; + } + + nav ul,nav li { + outline:0; + margin:0; + padding:0; + } + .main-menu li:hover>a,nav.main-menu li.active>a,.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus,.no-touch .dashboard-page nav.dashboard-menu ul li:hover a,.dashboard-page nav.dashboard-menu ul li.active a { + color:rgb(243, 234, 234); + background-color:#565985; + } + @font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 300; + src: local('Titillium WebLight'), local('TitilliumWeb-Light'), url(http://themes.googleusercontent.com/static/fonts/titilliumweb/v2/anMUvcNT0H1YN4FII8wpr24bNCNEoFTpS2BTjF6FB5E.woff) format('woff'); + } + \ No newline at end of file diff --git a/FrontEnd/Library/src/app/sidenav/sidenav.component.html b/FrontEnd/Library/src/app/sidenav/sidenav.component.html index 4bb4ec81..027744c0 100644 --- a/FrontEnd/Library/src/app/sidenav/sidenav.component.html +++ b/FrontEnd/Library/src/app/sidenav/sidenav.component.html @@ -1,84 +1,67 @@ + + - - - - - - + \ No newline at end of file diff --git a/FrontEnd/iprjt/src/assets/BooksImage/item_pics/aadu.jpeg b/FrontEnd/iprjt/src/assets/BooksImage/item_pics/aadu.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3b1fa90b8a43d734b54f27cb29861e33d2e9f589 GIT binary patch literal 12796 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
Book Results
Category-Name @@ -51,6 +120,33 @@ Book Cover
Category-Name + + + Publication + + + Book Name + + + Auther + + + Book Copies + + + Book Cover