Keine Beschreibung

dashboard.component.html 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. <div class="grid dashboard">
  2. <div class="col-12 md:col-6 lg:col-3">
  3. <div class="card overview-box flex flex-column pt-2">
  4. <div class="flex align-items-center muted-text">
  5. <i class="pi pi-shopping-cart"></i>
  6. <h6 class="m-0" [ngClass]="{'pl-2': !app.isRTL, 'pr-2': app.isRTL}">Orders</h6>
  7. <div [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">
  8. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu1.toggle($event)"></button>
  9. <p-menu #menu1 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  10. </div>
  11. </div>
  12. <div class="flex justify-content-between mt-3 flex-wrap">
  13. <div class="flex flex-column" style="width: 80px">
  14. <span class="mb-1 fs-xlarge">640</span>
  15. <span class="overview-status p-1 teal-bgcolor fs-small">1420 Completed</span>
  16. </div>
  17. <div class="flex align-items-end">
  18. <p-chart type="line" [data]="overviewChartData1" [options]="overviewChartOptions1" responsive="true" height="60px" width="160px"></p-chart>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. <div class="col-12 md:col-6 lg:col-3">
  24. <div class="card overview-box flex flex-column pt-2">
  25. <div class="flex align-items-center muted-text">
  26. <i class="pi pi-dollar"></i>
  27. <h6 class="m-0" [ngClass]="{'pl-2': !app.isRTL, 'pr-2': app.isRTL}">Revenue</h6>
  28. <div [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">
  29. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu2.toggle($event)"></button>
  30. <p-menu #menu2 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  31. </div>
  32. </div>
  33. <div class="flex justify-content-between mt-3 flex-wrap">
  34. <div class="flex flex-column" style="width: 80px">
  35. <span class="mb-1 fs-xlarge">$57K</span>
  36. <span class="overview-status p-1 teal-bgcolor fs-small">$9,640 Income</span>
  37. </div>
  38. <div class="flex align-items-end">
  39. <p-chart type="line" [data]="overviewChartData2" [options]="overviewChartOptions2" responsive="true" height="60px" width="160px"></p-chart>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="col-12 md:col-6 lg:col-3">
  45. <div class="card overview-box flex flex-column pt-2">
  46. <div class="flex align-items-center muted-text">
  47. <i class="pi pi-users"></i>
  48. <h6 class="m-0" [ngClass]="{'pl-2': !app.isRTL, 'pr-2': app.isRTL}">Customers</h6>
  49. <div [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">
  50. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu3.toggle($event)"></button>
  51. <p-menu #menu3 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  52. </div>
  53. </div>
  54. <div class="flex justify-content-between mt-3 flex-wrap">
  55. <div class="flex flex-column" style="width: 80px">
  56. <span class="mb-1 fs-xlarge">8572</span>
  57. <span class="overview-status p-1 pink-bgcolor fs-small">25402 Registered</span>
  58. </div>
  59. <div class="flex align-items-end">
  60. <p-chart type="line" [data]="overviewChartData3" [options]="overviewChartOptions3" responsive="true" height="60px" width="160px"></p-chart>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. <div class="col-12 md:col-6 lg:col-3">
  66. <div class="card overview-box flex flex-column pt-2">
  67. <div class="flex align-items-center muted-text">
  68. <i class="pi pi-comments"></i>
  69. <h6 class="m-0" [ngClass]="{'pl-2': !app.isRTL, 'pr-2': app.isRTL}">Comments</h6>
  70. <div [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">
  71. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu4.toggle($event)"></button>
  72. <p-menu #menu4 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  73. </div>
  74. </div>
  75. <div class="flex justify-content-between mt-3 flex-wrap">
  76. <div class="flex flex-column" style="width: 80px">
  77. <span class="mb-1 fs-xlarge">805</span>
  78. <span class="overview-status p-1 teal-bgcolor fs-small">85 Responded</span>
  79. </div>
  80. <div class="flex align-items-end">
  81. <p-chart type="line" [data]="overviewChartData4" [options]="overviewChartOptions4" responsive="true" height="60px" width="160px"></p-chart>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. <div class="col-12 lg:col-6">
  87. <div class="card height-100">
  88. <div class="card-header">
  89. <h5>Contact</h5>
  90. <div>
  91. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu5.toggle($event)"></button>
  92. <p-menu #menu5 [popup]="true" [model]="[{label: 'New', icon: 'pi pi-fw pi-plus'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'},{label: 'Delete', icon: 'pi pi-fw pi-trash'}]"></p-menu>
  93. </div>
  94. </div>
  95. <ul class="widget-list">
  96. <li class="flex align-items-center py-3">
  97. <div class="person-item flex align-items-center">
  98. <img src="assets/demo/images/avatar/xuxuefeng.png">
  99. <div [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">
  100. <div>Xuxue Feng</div>
  101. <small class="muted-text">feng@ultima.org</small>
  102. </div>
  103. </div>
  104. <span class="person-tag indigo-bgcolor p-1 fs-small" [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">Accounting</span>
  105. <span class="person-tag orange-bgcolor p-1 fs-small" [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">Sales</span>
  106. </li>
  107. <li class="flex align-items-center py-3">
  108. <div class="person-item flex align-items-center">
  109. <img src="assets/demo/images/avatar/elwinsharvill.png">
  110. <div [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">
  111. <div>Elwin Sharvill</div>
  112. <small class="muted-text">sharvill@ultima.org</small>
  113. </div>
  114. </div>
  115. <span class="person-tag teal-bgcolor p-1 fs-small" [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">Finance</span>
  116. <span class="person-tag orange-bgcolor p-1 fs-small" [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">Sales</span>
  117. </li>
  118. <li class="flex align-items-center py-3">
  119. <div class="person-item flex align-items-center">
  120. <img src="assets/demo/images/avatar/avatar-1.png">
  121. <div [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">
  122. <div>Anna Fali</div>
  123. <small class="muted-text">fali@ultima.org</small>
  124. </div>
  125. </div>
  126. <span class="person-tag pink-bgcolor p-1 fs-small" [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">Management</span>
  127. </li>
  128. <li class="flex align-items-center py-3">
  129. <div class="person-item flex align-items-center">
  130. <img src="assets/demo/images/avatar/avatar-2.png">
  131. <div [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">
  132. <div>Jon Stone</div>
  133. <small class="muted-text">stone@ultima.org</small>
  134. </div>
  135. </div>
  136. <span class="person-tag pink-bgcolor p-1 fs-small" [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">Management</span>
  137. <span class="person-tag teal-bgcolor p-1 fs-small" [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">Finance</span>
  138. </li>
  139. <li class="flex align-items-center py-3">
  140. <div class="person-item flex align-items-center">
  141. <img src="assets/demo/images/avatar/avatar-3.png">
  142. <div [ngClass]="{'ml-2': !app.isRTL, 'mr-2': app.isRTL}">
  143. <div>Stephen Shaw</div>
  144. <small class="muted-text">shaw@ultima.org</small>
  145. </div>
  146. </div>
  147. <span class="person-tag teal-bgcolor p-1 fs-small" [ngClass]="{'ml-auto': !app.isRTL, 'mr-auto': app.isRTL}">Finance</span>
  148. </li>
  149. </ul>
  150. </div>
  151. </div>
  152. <div class="col-12 lg:col-6">
  153. <div class="card height-100">
  154. <div class="card-header">
  155. <h5>Order Graph</h5>
  156. <div>
  157. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu6.toggle($event)"></button>
  158. <p-menu #menu6 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  159. </div>
  160. </div>
  161. <p-chart type="line" [data]="ordersChart" [options]="ordersOptions"></p-chart>
  162. </div>
  163. </div>
  164. <div class="col-12 lg:col-6">
  165. <div class="card height-100 widget-timeline">
  166. <div class="card-header">
  167. <h5>Timeline</h5>
  168. <div>
  169. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu7.toggle($event)"></button>
  170. <p-menu #menu7 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  171. </div>
  172. </div>
  173. <p-timeline [value]="timelineEvents" align="left" styleClass="customized-timeline">
  174. <ng-template pTemplate="marker" let-event>
  175. <span class="custom-marker shadow-2 p-2" [style.backgroundColor]="event.color">
  176. <i class="marker-icon" [ngClass]="event.icon"></i>
  177. </span>
  178. </ng-template>
  179. <ng-template pTemplate="content" let-event>
  180. <p-card styleClass="mb-3" [header]="event.status" [subheader]="event.date">
  181. <img *ngIf="event.image" [src]="'assets/showcase/images/demo/product/' + event.image" [alt]="event.name" width="200" class="shadow-2" />
  182. <p>{{event.description}}</p>
  183. </p-card>
  184. </ng-template>
  185. </p-timeline>
  186. </div>
  187. </div>
  188. <div class="col-12 md:col-12 lg:col-6">
  189. <div class="card height-100">
  190. <p-table [value]="products" [paginator]="true" [rows]="8" styleClass="p-datatable-products">
  191. <ng-template pTemplate="header">
  192. <tr>
  193. <th style="width:5rem">Image</th>
  194. <th pSortableColumn="name">Name
  195. <p-sortIcon field="name"></p-sortIcon>
  196. </th>
  197. <th pSortableColumn="category">Category
  198. <p-sortIcon field="category"></p-sortIcon>
  199. </th>
  200. <th pSortableColumn="price">Price
  201. <p-sortIcon field="price"></p-sortIcon>
  202. </th>
  203. <th style="width:4rem">View</th>
  204. </tr>
  205. </ng-template>
  206. <ng-template pTemplate="body" let-product>
  207. <tr>
  208. <td>
  209. <img [src]="'assets/demo/images/product/' + product.image" [alt]="product.image" width="50px" class="shadow-4" />
  210. </td>
  211. <td>
  212. <span class="p-column-title">Name</span>
  213. {{product.name}}
  214. </td>
  215. <td>
  216. <span class="p-column-title">Category</span>
  217. {{product.category}}
  218. </td>
  219. <td>
  220. <span class="p-column-title">Price</span>
  221. {{product.price | currency:'USD'}}
  222. </td>
  223. <td>
  224. <span class="p-column-title">View</span>
  225. <button pRipple pButton type="button" icon="pi pi-search" class="p-button-rounded p-button-text mb-1" [ngClass]="{'mr-2': !app.isRTL, 'ml-2': app.isRTL}"></button>
  226. </td>
  227. </tr>
  228. </ng-template>
  229. </p-table>
  230. </div>
  231. </div>
  232. <div class="col-12 lg:col-6">
  233. <div class="card height-100">
  234. <div class="card-header">
  235. <h5>Chat</h5>
  236. <div>
  237. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu8.toggle($event)"></button>
  238. <p-menu #menu8 [popup]="true" [model]="[{label: 'View Media', icon: 'pi pi-fw pi-images'},{label: 'Starred Messages', icon: 'pi pi-fw pi-star-o'},{label: 'Search', icon: 'pi pi-fw pi-search'}]"></p-menu>
  239. </div>
  240. </div>
  241. <div class="widget-chat">
  242. <ul #chatcontainer>
  243. <li *ngFor="let chartMessage of chatMessages; let last = last;" class="flex align-items-start" [ngClass]="{'from': !!chartMessage.from, 'own justify-content-end': !chartMessage.from, 'mb-3': !last, 'mb-1': last}">
  244. <img *ngIf="!!chartMessage.url" [src]="chartMessage.url" alt="avatar" [ngClass]="{'mr-2': !app.isRTL, 'ml-2': app.isRTL}">
  245. <div class="messages flex flex-column" [ngClass]="{'align-items-start': !!chartMessage.from, 'align-items-end': !chartMessage.from}">
  246. <span *ngFor="let message of chartMessage.messages; let first = first" class="message" [ngClass]="{'cyan-bgcolor': !!chartMessage.from, 'pink-bgcolor': !chartMessage.from, 'mt-1': !first}">
  247. {{message}}
  248. </span>
  249. </div>
  250. </li>
  251. </ul>
  252. <div class="p-inputgroup write-message mt-3">
  253. <span class="p-inputgroup-addon">
  254. <button pButton pRipple type="button" icon="pi pi-plus-circle" class="p-button-text p-button-plain"></button>
  255. </span>
  256. <input #chatInput type="text" pInputText placeholder="Write your message (Hint: 'PrimeNG')" (keydown)="onChatKeydown($event)">
  257. <span class="p-inputgroup-addon">
  258. <button pButton pRipple type="button" icon="pi pi-video" class="p-button-text p-button-plain"></button>
  259. </span>
  260. <span class="p-inputgroup-addon">
  261. <button pButton pRipple type="button" icon="pi pi-clock" (click)="op.toggle($event)" class="p-button-text p-button-plain"></button>
  262. <p-overlayPanel #op styleClass="emoji">
  263. <ng-template pTemplate>
  264. <button *ngFor="let emoji of chatEmojis;" pButton pRipple (click)="op.hide(); onEmojiClick(chatInput, emoji)" type="button" [label]="emoji" class="emoji-button p-2 p-button-text p-button-plain"></button>
  265. </ng-template>
  266. </p-overlayPanel>
  267. </span>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. <div class="col-12 lg:col-3">
  273. <div class="card height-100">
  274. <div class="card-header">
  275. <h5>Activity</h5>
  276. <div>
  277. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu9.toggle($event)"></button>
  278. <p-menu #menu9 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  279. </div>
  280. </div>
  281. <ul class="widget-activity">
  282. <li>
  283. <div class="activity-item flex flex-column">
  284. <div class="activity-title mb-1">Income</div>
  285. <div class="activity-subtext mb-2">30 November, 16.20</div>
  286. <p-progressBar [value]="50" [showValue]="false"></p-progressBar>
  287. </div>
  288. </li>
  289. <li>
  290. <div class="activity-item flex flex-column">
  291. <div class="activity-title mb-1">Tax</div>
  292. <div class="activity-subtext mb-2">1 December, 15.27</div>
  293. <p-progressBar [value]="15" [showValue]="false"></p-progressBar>
  294. </div>
  295. </li>
  296. <li>
  297. <div class="activity-item flex flex-column">
  298. <div class="activity-title mb-1">Invoices</div>
  299. <div class="activity-subtext mb-2">1 December, 15.28</div>
  300. <p-progressBar [value]="78" [showValue]="false"></p-progressBar>
  301. </div>
  302. </li>
  303. <li>
  304. <div class="activity-item flex flex-column">
  305. <div class="activity-title mb-1">Expanses</div>
  306. <div class="activity-subtext mb-2">3 December, 09.15</div>
  307. <p-progressBar [value]="66" [showValue]="false"></p-progressBar>
  308. </div>
  309. </li>
  310. <li>
  311. <div class="activity-item flex flex-column">
  312. <div class="activity-title mb-1">Bonus</div>
  313. <div class="activity-subtext mb-2">1 December, 23.55</div>
  314. <p-progressBar [value]="85" [showValue]="false"></p-progressBar>
  315. </div>
  316. </li>
  317. <li>
  318. <div class="activity-item flex flex-column">
  319. <div class="activity-title mb-1">Revenue</div>
  320. <div class="activity-subtext mb-2">30 November, 16.20</div>
  321. <p-progressBar [value]="54" [showValue]="false"></p-progressBar>
  322. </div>
  323. </li>
  324. </ul>
  325. </div>
  326. </div>
  327. <div class="col-12 lg:col-3">
  328. <div class="card height-100">
  329. <div class="card-header">
  330. <h5>Best Sellers</h5>
  331. <div>
  332. <button pButton pRipple type="button" icon="pi pi-ellipsis-h" class="p-button-rounded p-button-text p-button-plain" (click)="menu10.toggle($event)"></button>
  333. <p-menu #menu10 [popup]="true" [model]="[{label: 'Update', icon: 'pi pi-fw pi-refresh'},{label: 'Edit', icon: 'pi pi-fw pi-pencil'}]"></p-menu>
  334. </div>
  335. </div>
  336. <ul class="widget-bestsellers">
  337. <li>
  338. <div class="bestseller-item flex align-items-center p-3 mb-2">
  339. <img src="assets/demo/images/product/blue-band.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  340. <span>Blue Band</span>
  341. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  342. </div>
  343. <div class="bestseller-item flex align-items-center p-3 mb-2">
  344. <img src="assets/demo/images/product/bracelet.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  345. <span>Bracelet</span>
  346. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  347. </div>
  348. <div class="bestseller-item flex align-items-center p-3 mb-2">
  349. <img src="assets/demo/images/product/black-watch.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  350. <span>Black Watch</span>
  351. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  352. </div>
  353. <div class="bestseller-item flex align-items-center p-3 mb-2">
  354. <img src="assets/demo/images/product/bamboo-watch.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  355. <span>Bamboo Watch</span>
  356. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  357. </div>
  358. <div class="bestseller-item flex align-items-center p-3 mb-2">
  359. <img src="assets/demo/images/product/blue-t-shirt.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  360. <span>Blue T-Shirt</span>
  361. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  362. </div>
  363. <div class="bestseller-item flex align-items-center p-3 mb-2">
  364. <img src="assets/demo/images/product/game-controller.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  365. <span>Game Controller</span>
  366. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  367. </div>
  368. <div class="bestseller-item flex align-items-center p-3 mb-2">
  369. <img src="assets/demo/images/product/gold-phone-case.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  370. <span>Phone Case</span>
  371. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  372. </div>
  373. <div class="bestseller-item flex align-items-center p-3 mb-2">
  374. <img src="assets/demo/images/product/purple-t-shirt.jpg" alt="product" [ngClass]="{'mr-3': !app.isRTL, 'ml-3': app.isRTL}">
  375. <span>Purple T-Shirt</span>
  376. <span class="item-button"><a href="#"><i class="pi pi-chevron-right"></i></a></span>
  377. </div>
  378. </li>
  379. </ul>
  380. </div>
  381. </div>
  382. </div>

Powered by TurnKey Linux.