1287 lines
90 KiB
Plaintext
1287 lines
90 KiB
Plaintext
@using SolarPower.Models.Role
|
|
@model RoleLayerEnum
|
|
<!DOCTYPE html>
|
|
<html lang="zh-Hant-TW">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="description" content="Page Title">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
|
|
<title>@ViewData["Title"] - 太陽能電站管理系統</title>
|
|
<!-- Call App Mode on ios devices -->
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<!-- Remove Tap Highlight on Windows Phone IE -->
|
|
<meta name="msapplication-tap-highlight" content="no">
|
|
|
|
<!-- base css -->
|
|
<link id="vendorsbundle" rel="stylesheet" media="screen, print" href="~/css/vendors.bundle.css" asp-append-version="true">
|
|
<link id="appbundle" rel="stylesheet" media="screen, print" href="~/css/app.bundle.css" asp-append-version="true">
|
|
<link id="mytheme" rel="stylesheet" media="screen, print" href="~/css/themes/cust-theme-15.css" asp-append-version="true">
|
|
<link id="myskin" rel="stylesheet" media="screen, print" href="~/css/skins/skin-master.css" asp-append-version="true">
|
|
|
|
<!-- Place favicon.ico in the root directory -->
|
|
<link rel="apple-touch-icon" sizes="180x180" href="~/img/favicon/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="~/img/favicon/favicon-32x32.png">
|
|
<link rel="mask-icon" href="~/img/favicon/safari-pinned-tab.svg" color="#5bbad5">
|
|
|
|
<!-- dataTables -->
|
|
<link rel="stylesheet" media="screen, print" href="~/css/datagrid/datatables/datatables.bundle.css">
|
|
<!-- SweetAlert -->
|
|
<link rel="stylesheet" media="screen, print" href="~/css/notifications/sweetalert2/sweetalert2.bundle.css">
|
|
<link rel="stylesheet" media="screen, print" href="~/css/notifications/toastr/toastr.css">
|
|
|
|
<link rel="stylesheet" media="screen, print" href="~/css/formplugins/dropzone/dropzone.css">
|
|
|
|
<!--Select2-->
|
|
<link rel="stylesheet" media="screen, print" href="~/css/formplugins/select2/select2.bundle.css" />
|
|
|
|
<!--Chart.js-->
|
|
<link rel="stylesheet" media="screen, print" href="~/css/statistics/chartjs/chartjs.css">
|
|
|
|
<!--Custome CSS-->
|
|
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
|
|
|
<link rel="stylesheet" type="text/css" media="all" href="~/css/daterangepicker.css">
|
|
|
|
</head>
|
|
<body class="mod-bg-1 mod-nav-link">
|
|
<script>
|
|
/**
|
|
* This script should be placed right after the body tag for fast execution
|
|
* Note: the script is written in pure javascript and does not depend on thirdparty library
|
|
**/
|
|
'use strict';
|
|
|
|
var classHolder = document.getElementsByTagName("BODY")[0],
|
|
/**
|
|
* Load from localstorage
|
|
**/
|
|
themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) :
|
|
{},
|
|
themeURL = themeSettings.themeURL || '',
|
|
themeOptions = themeSettings.themeOptions || '';
|
|
/**
|
|
* Load theme options
|
|
**/
|
|
if (themeSettings.themeOptions) {
|
|
classHolder.className = themeSettings.themeOptions;
|
|
console.log("%c✔ Theme settings loaded", "color: #148f32");
|
|
}
|
|
else {
|
|
console.log("%c✔ Heads up! Theme settings is empty or does not exist, loading default settings...", "color: #ed1c24");
|
|
}
|
|
if (themeSettings.themeURL && !document.getElementById('mytheme')) {
|
|
var cssfile = document.createElement('link');
|
|
cssfile.id = 'mytheme';
|
|
cssfile.rel = 'stylesheet';
|
|
cssfile.href = themeURL;
|
|
document.getElementsByTagName('head')[0].appendChild(cssfile);
|
|
|
|
}
|
|
else if (themeSettings.themeURL && document.getElementById('mytheme')) {
|
|
document.getElementById('mytheme').href = themeSettings.themeURL;
|
|
}
|
|
/**
|
|
* Save to localstorage
|
|
**/
|
|
var saveSettings = function () {
|
|
themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function (item) {
|
|
return /^(nav|header|footer|mod|display)-/i.test(item);
|
|
}).join(' ');
|
|
if (document.getElementById('mytheme')) {
|
|
themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
|
|
};
|
|
localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
|
|
}
|
|
/**
|
|
* Reset settings
|
|
**/
|
|
var resetSettings = function () {
|
|
localStorage.setItem("themeSettings", "");
|
|
}
|
|
|
|
</script>
|
|
|
|
<!-- BEGIN Page Wrapper -->
|
|
<div class="page-wrapper">
|
|
<div class="page-inner">
|
|
<!-- BEGIN Left Aside -->
|
|
<aside class="page-sidebar">
|
|
<div class="page-logo">
|
|
<a href="#" class="page-logo-link press-scale-down">
|
|
<img src="~/img/logo.png" alt="SmartAdmin WebApp" aria-roledescription="logo"> <span class="page-logo-text mr-1"></span> <span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
|
|
<!--<i class="fal fa-angle-down d-inline-block ml-1 fs-lg color-primary-300"></i>-->
|
|
</a>
|
|
</div>
|
|
<!-- BEGIN PRIMARY NAVIGATION -->
|
|
<nav id="js-primary-nav" class="primary-nav" role="navigation">
|
|
<div class="nav-filter">
|
|
<div class="position-relative">
|
|
<input type="text" id="nav_filter_input" placeholder="Filter menu" class="form-control" tabindex="0">
|
|
<a href="#" onclick="return false;" class="btn-primary btn-search-close js-waves-off" data-action="toggle" data-class="list-filter-active" data-target=".page-sidebar">
|
|
<i class="fal fa-chevron-up"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<!--<div class="info-card">
|
|
<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle" alt="Dr. Codex Lantern">
|
|
<div class="info-card-text">
|
|
<a href="#" class="d-flex align-items-center text-white">
|
|
<span class="text-truncate text-truncate-sm d-inline-block">
|
|
Dr. Codex Lantern
|
|
</span>
|
|
</a>
|
|
<span class="d-inline-block text-truncate text-truncate-sm">Toronto, Canada</span>
|
|
</div>
|
|
<img src="img/card-backgrounds/cover-2-lg.png" class="cover" alt="cover">
|
|
<a href="#" onclick="return false;" class="pull-trigger-btn" data-action="toggle" data-class="list-filter-active" data-target=".page-sidebar" data-focus="nav_filter_input">
|
|
<i class="fal fa-angle-down"></i>
|
|
</a>
|
|
</div>-->
|
|
<!--
|
|
TIP: The menu items are not auto translated. You must have a residing lang file associated with the menu saved inside dist/media/data with reference to each 'data-i18n' attribute.
|
|
-->
|
|
<ul id="js-nav-menu" class="nav-menu">
|
|
<!--<li class="active">
|
|
<a href="blank.html" title="Blank Project" data-filter-tags="blank page">
|
|
<i class="fal fa-globe"></i>
|
|
<span class="nav-link-text" data-i18n="nav.blankpage">Blank Project</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-title">Navigation Title</li>-->
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("MapOverview") || ViewBag.auths.Contains("StationOverview"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "1" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-ballot-check"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">總覽</span>
|
|
</a>
|
|
<ul>
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("MapOverview"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "1" && ViewData["SubNum"] == "1" ? "active" : "")">
|
|
<a asp-controller="MapOverview" asp-action="Index" title="地圖總覽" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">地圖總覽</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("StationOverview"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "1" && ViewData["SubNum"] == "2" ? "active" : "")">
|
|
<a asp-controller="StationOverview" asp-action="Index" title="電站總覽" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站總覽</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
<!-- Example of open and active states -->
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("PowerStationInfo"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "2" ? "active open" : "")">
|
|
<a href="javascript:void(0);" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-file"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">電站資訊</span>
|
|
</a>
|
|
<ul>
|
|
@foreach (var myPowerStationSummary in ViewBag.myPowerStationSummaries)
|
|
{
|
|
<li class="@(ViewData["MainNum"].ToString() == "2" &&
|
|
ViewData["SubNum"].ToString() == ViewBag.myPowerStationSummaries.IndexOf(myPowerStationSummary).ToString() ? "active open" : "")">
|
|
<a href="javascript:void(0);" title="Category" data-filter-tags="utilities menu child sublevel item">
|
|
<span class="nav-link-text" data-i18n="nav.category">@myPowerStationSummary.CityName</span>
|
|
<span class="dl-ref bg-primary-500 hidden-nav-function-minify hidden-nav-function-top">@myPowerStationSummary.Amount</span>
|
|
</a>
|
|
<ul>
|
|
|
|
@foreach (var myPowerStation in myPowerStationSummary.MyPowerStations)
|
|
{
|
|
<li class="@(ViewData["MainNum"].ToString() == "2" &&
|
|
ViewData["SubNum"].ToString() == ViewBag.myPowerStationSummaries.IndexOf(myPowerStationSummary).ToString() &&
|
|
ViewData["TagNum"].ToString() == myPowerStationSummary.MyPowerStations.IndexOf(myPowerStation).ToString() ? "active" : "")">
|
|
<a asp-controller="StationOverview" asp-action="Info" asp-route-stationId="@myPowerStation.PowerStationId" title="Sublevel Item" data-filter-tags="utilities menu child sublevel item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_menu_child_sublevel_item">@myPowerStation.PowerStationName</span>
|
|
</a>
|
|
</li>
|
|
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
|
|
@*<li class="@(ViewData["MainNum"] == "2" && ViewData["SubNum"].ToString() == ViewBag.myPowerStationSummaries.Count.ToString() ? "active" : "")">
|
|
<a asp-controller="PowerStation" asp-action="Index" title="電站管理" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站管理</span>
|
|
</a>
|
|
</li>*@
|
|
</ul>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("AnalysisStationCombine") || ViewBag.auths.Contains("AnalysisStationInfo") || ViewBag.auths.Contains("AnalysisInverter"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "3" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-crosshairs"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">交叉分析</span>
|
|
</a>
|
|
<ul>
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("AnalysisStationCombine"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "3" && ViewData["SubNum"] == "1" ? "active" : "")">
|
|
<a asp-controller="AnalysisStationCombine" asp-action="Index" title="合併電站" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">合併電站</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("AnalysisStationInfo"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "3" && ViewData["SubNum"] == "2" ? "active" : "")">
|
|
<a asp-controller="AnalysisStationInfo" asp-action="Index" title="電站交叉分析" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站交叉分析</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("AnalysisInverter"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "3" && ViewData["SubNum"] == "3" ? "active" : "")">
|
|
<a asp-controller="AnalysisInverter" asp-action="Index" title="逆變器交叉分析" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">逆變器交叉分析</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("PowerStation"))@*TODO:修改成報表的權限*@
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "4" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-file-chart-line"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">報表查詢</span>
|
|
</a>
|
|
<ul>
|
|
<li class="@(ViewData["MainNum"] == "4" && ViewData["SubNum"].ToString() == "1" ? "active" : "")">
|
|
<a asp-controller="StationReport" asp-action="Index" title="電站報表" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站報表</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="javascript:void(0);" title="電站發電收入" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站發電收入</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="javascript:void(0);" title="報告發送記錄" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">報告發送記錄</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
}
|
|
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("PowerStation"))@*TODO:修改成即時告警的權限*@
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "5" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-siren-on"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">即時告警</span>
|
|
</a>
|
|
<ul>
|
|
<li class="@(ViewData["MainNum"] == "5" && ViewData["SubNum"].ToString() == "1" ? "active" : "")">
|
|
<a asp-controller="ExceptionRecord" asp-action="Index" title="即時告警管理" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">即時告警管理</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
}
|
|
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("PowerStation") || ViewBag.auths.Contains("Operation") || ViewBag.auths.Contains("OperationRecord"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "6" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-rabbit-fast"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">運維管理</span>
|
|
</a>
|
|
<ul>
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("PowerStationManager"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "6" && ViewData["SubNum"].ToString() == "1" ? "active" : "")">
|
|
<a asp-controller="PowerStation" asp-action="Index" title="電站管理" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">電站管理</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("Operation"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "6" && ViewData["SubNum"] == "2" ? "active" : "")">
|
|
<a asp-controller="Operation" asp-action="Index" title="定期計畫建立" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">定期計畫建立</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("OperationRecord"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "6" && ViewData["SubNum"] == "3" ? "active" : "")">
|
|
<a asp-controller="Operation" asp-action="Record" title="運維作業記錄" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">運維作業記錄</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("Company") || ViewBag.auths.Contains("User") || ViewBag.auths.Contains("Role") || ViewBag.auths.Contains("User"))@*TODO修改定時任務權限*@
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "7" ? "active open" : "")">
|
|
<a href="#" title="Category" data-filter-tags="category">
|
|
<i class="fal fa-cog"></i>
|
|
<span class="nav-link-text" data-i18n="nav.category">系統管理</span>
|
|
</a>
|
|
<ul>
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("Company"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "7" && ViewData["SubNum"] == "1" ? "active" : "")">
|
|
<a asp-controller="Company" asp-action="Index" title="公司管理" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">公司管理</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.myUser.Role.Layer == (int)RoleLayerEnum.PlatformAdmin || ViewBag.auths.Contains("User"))
|
|
{
|
|
<li class="@(ViewData["MainNum"] == "7" && ViewData["SubNum"] == "2" ? "active" : "")">
|
|
<a asp-controller="User" asp-action="Index" title="帳號管理" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">帳號管理</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.auths.Contains("User"))
|
|
{
|
|
<li class="">
|
|
<a href="javascript:void(0);" title="功能清單" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">功能清單</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
@if (ViewBag.auths.Contains("User"))
|
|
{
|
|
<li class="">
|
|
<a href="javascript:void(0);" title="定時任務設定" data-filter-tags="utilities disabled item">
|
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">定時任務設定</span>
|
|
</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
|
|
</ul>
|
|
<div class="filter-message js-filter-message bg-success-600"></div>
|
|
</nav>
|
|
<!-- END PRIMARY NAVIGATION -->
|
|
<!-- NAV FOOTER -->
|
|
<!--<div class="nav-footer shadow-top">
|
|
<a href="#" onclick="return false;" data-action="toggle" data-class="nav-function-minify" class="hidden-md-down">
|
|
<i class="ni ni-chevron-right"></i>
|
|
<i class="ni ni-chevron-right"></i>
|
|
</a>
|
|
<ul class="list-table m-auto nav-footer-buttons">
|
|
<li>
|
|
<a href="javascript:void(0);" data-toggle="tooltip" data-placement="top" title="Chat logs">
|
|
<i class="fal fa-comments"></i>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="javascript:void(0);" data-toggle="tooltip" data-placement="top" title="Support Chat">
|
|
<i class="fal fa-life-ring"></i>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="javascript:void(0);" data-toggle="tooltip" data-placement="top" title="Make a call">
|
|
<i class="fal fa-phone"></i>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>-->
|
|
<!-- END NAV FOOTER -->
|
|
</aside>
|
|
<!-- END Left Aside -->
|
|
<div class="page-content-wrapper">
|
|
<!-- BEGIN Page Header -->
|
|
<header class="page-header" role="banner">
|
|
<!-- we need this logo when user switches to nav-function-top -->
|
|
<div class="page-logo">
|
|
<a href="#" class="page-logo-link press-scale-down d-flex align-items-center position-relative" data-toggle="modal" data-target="#modal-shortcut">
|
|
<img src="~/img/logo.png" alt="SmartAdmin WebApp" aria-roledescription="logo">
|
|
<span class="page-logo-text mr-1">SmartAdmin WebApp</span>
|
|
<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
|
|
<i class="fal fa-angle-down d-inline-block ml-1 fs-lg color-primary-300"></i>
|
|
</a>
|
|
</div>
|
|
<!-- DOC: nav menu layout change shortcut -->
|
|
<div class="hidden-md-down dropdown-icon-menu position-relative">
|
|
<a href="#" class="header-btn btn js-waves-off" data-action="toggle" data-class="nav-function-hidden" title="Hide Navigation">
|
|
<i class="ni ni-menu"></i>
|
|
</a>
|
|
<ul>
|
|
<li>
|
|
<a href="#" class="btn js-waves-off" data-action="toggle" data-class="nav-function-minify" title="Minify Navigation">
|
|
<i class="ni ni-minify-nav"></i>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="btn js-waves-off" data-action="toggle" data-class="nav-function-fixed" title="Lock Navigation">
|
|
<i class="ni ni-lock-nav"></i>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- DOC: mobile button appears during mobile width -->
|
|
<div class="hidden-lg-up">
|
|
<a href="#" class="header-btn btn press-scale-down" data-action="toggle" data-class="mobile-nav-on">
|
|
<i class="ni ni-menu"></i>
|
|
</a>
|
|
</div>
|
|
<!--<div class="search">
|
|
<form class="app-forms hidden-xs-down" role="search" action="page_search.html" autocomplete="off">
|
|
<input type="text" id="search-field" placeholder="Search for anything" class="form-control" tabindex="1">
|
|
<a href="#" onclick="return false;" class="btn-danger btn-search-close js-waves-off d-none" data-action="toggle" data-class="mobile-search-on">
|
|
<i class="fal fa-times"></i>
|
|
</a>
|
|
</form>
|
|
</div>-->
|
|
<h1 class="subheader-title">太陽能監控系統</h1>
|
|
|
|
<div class="ml-auto d-flex">
|
|
<!-- activate app search icon (mobile) -->
|
|
<div class="hidden-sm-up">
|
|
<a href="#" class="header-icon" data-action="toggle" data-class="mobile-search-on" data-focus="search-field" title="Search">
|
|
<i class="fal fa-search"></i>
|
|
</a>
|
|
</div>
|
|
<!-- app settings -->
|
|
<div class="hidden-md-down">
|
|
<a href="#" class="header-icon" data-toggle="modal" data-target=".js-modal-settings">
|
|
<i class="fal fa-cog"></i>
|
|
</a>
|
|
</div>
|
|
|
|
|
|
<!-- app message -->
|
|
<a href="#" class="header-icon" data-toggle="modal" data-target="">
|
|
<i class="fal fa-search"></i>
|
|
<span class="badge badge-icon">!</span>
|
|
</a>
|
|
<!-- app notification -->
|
|
<div>
|
|
<a href="#" class="header-icon" data-toggle="dropdown" title="You got 11 notifications">
|
|
<i class="fal fa-bell"></i>
|
|
<span class="badge badge-icon">11</span>
|
|
</a>
|
|
<div class="dropdown-menu dropdown-menu-animated dropdown-xl">
|
|
<div class="dropdown-header bg-trans-gradient d-flex justify-content-center align-items-center rounded-top mb-2">
|
|
<h4 class="m-0 text-center color-white">
|
|
11 New
|
|
<small class="mb-0 opacity-80">User Notifications</small>
|
|
</h4>
|
|
</div>
|
|
<ul class="nav nav-tabs nav-tabs-clean" role="tablist">
|
|
<li class="nav-item">
|
|
<a class="nav-link px-4 fs-md js-waves-on fw-500" data-toggle="tab" href="#tab-messages" data-i18n="drpdwn.messages">Messages</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link px-4 fs-md js-waves-on fw-500" data-toggle="tab" href="#tab-feeds" data-i18n="drpdwn.feeds">Feeds</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link px-4 fs-md js-waves-on fw-500" data-toggle="tab" href="#tab-events" data-i18n="drpdwn.events">Events</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content tab-notification">
|
|
<div class="tab-pane active p-3 text-center">
|
|
<h5 class="mt-4 pt-4 fw-500">
|
|
<span class="d-block fa-3x pb-4 text-muted">
|
|
<i class="ni ni-arrow-up text-gradient opacity-70"></i>
|
|
</span> Select a tab above to activate
|
|
<small class="mt-3 fs-b fw-400 text-muted">
|
|
This blank page message helps protect your privacy, or you can show the first message here automatically through
|
|
<a href="#">settings page</a>
|
|
</small>
|
|
</h5>
|
|
</div>
|
|
<div class="tab-pane" id="tab-messages" role="tabpanel">
|
|
<div class="custom-scroll h-100">
|
|
<ul class="notification">
|
|
<li class="unread">
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-c.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Melissa Ayre <span class="badge badge-primary fw-n position-absolute pos-top pos-right mt-1">INBOX</span></span>
|
|
<span class="msg-a fs-sm">Re: New security codes</span>
|
|
<span class="msg-b fs-xs">Hello again and thanks for being part...</span>
|
|
<span class="fs-nano text-muted mt-1">56 seconds ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="unread">
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-a.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Adison Lee</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">2 minutes ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status status-success mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-b.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Oliver Kopyuv</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">3 days ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status status-warning mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-e.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Dr. John Cook PhD</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">2 weeks ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status status-success mr-2">
|
|
<!-- <img src="img/demo/avatars/avatar-m.png" data-src="img/demo/avatars/avatar-h.png" class="profile-image rounded-circle" alt="Sarah McBrook" /> -->
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-h.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Sarah McBrook</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">3 weeks ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status status-success mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-m.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Anothony Bezyeth</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">one month ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="d-flex align-items-center">
|
|
<span class="status status-danger mr-2">
|
|
<span class="profile-image rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-j.png')"></span>
|
|
</span>
|
|
<span class="d-flex flex-column flex-1 ml-1">
|
|
<span class="name">Lisa Hatchensen</span>
|
|
<span class="msg-a fs-sm">Msed quia non numquam eius</span>
|
|
<span class="fs-nano text-muted mt-1">one year ago</span>
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane" id="tab-feeds" role="tabpanel">
|
|
<div class="custom-scroll h-100">
|
|
<ul class="notification">
|
|
<li class="unread">
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<span class="d-flex flex-column flex-1">
|
|
<span class="name d-flex align-items-center">Administrator <span class="badge badge-success fw-n ml-1">UPDATE</span></span>
|
|
<span class="msg-a fs-sm">
|
|
System updated to version <strong>4.5.1</strong> <a href="docs_buildnotes.html">(patch notes)</a>
|
|
</span>
|
|
<span class="fs-nano text-muted mt-1">5 mins ago</span>
|
|
</span>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<div class="d-flex flex-column flex-1">
|
|
<span class="name">
|
|
Adison Lee <span class="fw-300 d-inline">replied to your video <a href="#" class="fw-400"> Cancer Drug</a> </span>
|
|
</span>
|
|
<span class="msg-a fs-sm mt-2">Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day...</span>
|
|
<span class="fs-nano text-muted mt-1">10 minutes ago</span>
|
|
</div>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<!--<img src="img/demo/avatars/avatar-m.png" data-src="img/demo/avatars/avatar-k.png" class="profile-image rounded-circle" alt="k" />-->
|
|
<div class="d-flex flex-column flex-1">
|
|
<span class="name">
|
|
Troy Norman'<span class="fw-300">s new connections</span>
|
|
</span>
|
|
<div class="fs-sm d-flex align-items-center mt-2">
|
|
<span class="profile-image-md mr-1 rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-a.png'); background-size: cover;"></span>
|
|
<span class="profile-image-md mr-1 rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-b.png'); background-size: cover;"></span>
|
|
<span class="profile-image-md mr-1 rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-c.png'); background-size: cover;"></span>
|
|
<span class="profile-image-md mr-1 rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-e.png'); background-size: cover;"></span>
|
|
<div data-hasmore="+3" class="rounded-circle profile-image-md mr-1">
|
|
<span class="profile-image-md mr-1 rounded-circle d-inline-block" style="background-image:url('img/demo/avatars/avatar-h.png'); background-size: cover;"></span>
|
|
</div>
|
|
</div>
|
|
<span class="fs-nano text-muted mt-1">55 minutes ago</span>
|
|
</div>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<!--<img src="img/demo/avatars/avatar-m.png" data-src="img/demo/avatars/avatar-e.png" class="profile-image-sm rounded-circle align-self-start mt-1" alt="k" />-->
|
|
<div class="d-flex flex-column flex-1">
|
|
<span class="name">Dr John Cook <span class="fw-300">sent a <span class="text-danger">new signal</span></span></span>
|
|
<span class="msg-a fs-sm mt-2">Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.</span>
|
|
<span class="fs-nano text-muted mt-1">10 minutes ago</span>
|
|
</div>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<div class="d-flex flex-column flex-1">
|
|
<span class="name">Lab Images <span class="fw-300">were updated!</span></span>
|
|
<div class="fs-sm d-flex align-items-center mt-1">
|
|
<a href="#" class="mr-1 mt-1" title="Cell A-0012">
|
|
<span class="d-block img-share" style="background-image:url('img/thumbs/pic-7.png'); background-size: cover;"></span>
|
|
</a>
|
|
<a href="#" class="mr-1 mt-1" title="Patient A-473 saliva">
|
|
<span class="d-block img-share" style="background-image:url('img/thumbs/pic-8.png'); background-size: cover;"></span>
|
|
</a>
|
|
<a href="#" class="mr-1 mt-1" title="Patient A-473 blood cells">
|
|
<span class="d-block img-share" style="background-image:url('img/thumbs/pic-11.png'); background-size: cover;"></span>
|
|
</a>
|
|
<a href="#" class="mr-1 mt-1" title="Patient A-473 Membrane O.C">
|
|
<span class="d-block img-share" style="background-image:url('img/thumbs/pic-12.png'); background-size: cover;"></span>
|
|
</a>
|
|
</div>
|
|
<span class="fs-nano text-muted mt-1">55 minutes ago</span>
|
|
</div>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="d-flex align-items-center show-child-on-hover">
|
|
<!--<img src="img/demo/avatars/avatar-m.png" data-src="img/demo/avatars/avatar-h.png" class="profile-image rounded-circle align-self-start mt-1" alt="k" />-->
|
|
<div class="d-flex flex-column flex-1">
|
|
<div class="name mb-2">
|
|
Lisa Lamar<span class="fw-300"> updated project</span>
|
|
</div>
|
|
<div class="row fs-b fw-300">
|
|
<div class="col text-left">
|
|
Progress
|
|
</div>
|
|
<div class="col text-right fw-500">
|
|
45%
|
|
</div>
|
|
</div>
|
|
<div class="progress progress-sm d-flex mt-1">
|
|
<span class="progress-bar bg-primary-500 progress-bar-striped" role="progressbar" style="width: 45%" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100"></span>
|
|
</div>
|
|
<span class="fs-nano text-muted mt-1">2 hrs ago</span>
|
|
<div class="show-on-hover-parent position-absolute pos-right pos-bottom p-3">
|
|
<a href="#" class="text-muted" title="delete"><i class="fal fa-trash-alt"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane" id="tab-events" role="tabpanel">
|
|
<div class="d-flex flex-column h-100">
|
|
<div class="h-auto">
|
|
<table class="table table-bordered table-calendar m-0 w-100 h-100 border-0">
|
|
<tr>
|
|
<th colspan="7" class="pt-3 pb-2 pl-3 pr-3 text-center">
|
|
<div class="js-get-date h5 mb-2">[your date here]</div>
|
|
</th>
|
|
</tr>
|
|
<tr class="text-center">
|
|
<th>Sun</th>
|
|
<th>Mon</th>
|
|
<th>Tue</th>
|
|
<th>Wed</th>
|
|
<th>Thu</th>
|
|
<th>Fri</th>
|
|
<th>Sat</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-muted bg-faded">30</td>
|
|
<td>1</td>
|
|
<td>2</td>
|
|
<td>3</td>
|
|
<td>4</td>
|
|
<td>5</td>
|
|
<td><i class="fal fa-birthday-cake mt-1 ml-1 position-absolute pos-left pos-top text-primary"></i> 6</td>
|
|
</tr>
|
|
<tr>
|
|
<td>7</td>
|
|
<td>8</td>
|
|
<td>9</td>
|
|
<td class="bg-primary-300 pattern-0">10</td>
|
|
<td>11</td>
|
|
<td>12</td>
|
|
<td>13</td>
|
|
</tr>
|
|
<tr>
|
|
<td>14</td>
|
|
<td>15</td>
|
|
<td>16</td>
|
|
<td>17</td>
|
|
<td>18</td>
|
|
<td>19</td>
|
|
<td>20</td>
|
|
</tr>
|
|
<tr>
|
|
<td>21</td>
|
|
<td>22</td>
|
|
<td>23</td>
|
|
<td>24</td>
|
|
<td>25</td>
|
|
<td>26</td>
|
|
<td>27</td>
|
|
</tr>
|
|
<tr>
|
|
<td>28</td>
|
|
<td>29</td>
|
|
<td>30</td>
|
|
<td>31</td>
|
|
<td class="text-muted bg-faded">1</td>
|
|
<td class="text-muted bg-faded">2</td>
|
|
<td class="text-muted bg-faded">3</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="flex-1 custom-scroll">
|
|
<div class="p-2">
|
|
<div class="d-flex align-items-center text-left mb-3">
|
|
<div class="width-5 fw-300 text-primary l-h-n mr-1 align-self-start fs-xxl">
|
|
15
|
|
</div>
|
|
<div class="flex-1">
|
|
<div class="d-flex flex-column">
|
|
<span class="l-h-n fs-md fw-500 opacity-70">
|
|
October 2020
|
|
</span>
|
|
<span class="l-h-n fs-nano fw-400 text-secondary">
|
|
Friday
|
|
</span>
|
|
</div>
|
|
<div class="mt-3">
|
|
<p>
|
|
<strong>2:30PM</strong> - Doctor's appointment
|
|
</p>
|
|
<p>
|
|
<strong>3:30PM</strong> - Report overview
|
|
</p>
|
|
<p>
|
|
<strong>4:30PM</strong> - Meeting with Donnah V.
|
|
</p>
|
|
<p>
|
|
<strong>5:30PM</strong> - Late Lunch
|
|
</p>
|
|
<p>
|
|
<strong>6:30PM</strong> - Report Compression
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="py-2 px-3 bg-faded d-block rounded-bottom text-right border-faded border-bottom-0 border-right-0 border-left-0">
|
|
<a href="#" class="fs-xs fw-500 ml-auto">view all notifications</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- app user menu -->
|
|
<div>
|
|
<a href="#" data-toggle="dropdown" title="drlantern@gotbootstrap.com" class="header-icon d-flex align-items-center justify-content-center ml-2">
|
|
<img src="~/img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle" alt="Dr. Codex Lantern">
|
|
<!-- you can also add username next to the avatar with the codes below:
|
|
<span class="ml-1 mr-1 text-truncate text-truncate-header hidden-xs-down">Me</span>
|
|
<i class="ni ni-chevron-down hidden-xs-down"></i> -->
|
|
</a>
|
|
<div class="dropdown-menu dropdown-menu-animated dropdown-lg">
|
|
<div class="dropdown-header bg-trans-gradient d-flex flex-row py-4 rounded-top">
|
|
<div class="d-flex flex-row align-items-center mt-1 mb-1 color-white">
|
|
<span class="mr-2"> <img src="~/img/demo/avatars/avatar-admin.png" class="rounded-circle profile-image" alt="Dr. Codex Lantern"> </span>
|
|
<div class="info-card-text">
|
|
<div class="fs-lg text-truncate text-truncate-lg">@ViewBag.myUser.Name</div>
|
|
<span class="text-truncate text-truncate-md opacity-80">@ViewBag.myUser.Email</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="dropdown-divider m-0"></div>
|
|
<a href="javascript:void(0);" id="btn-personal-info" class="dropdown-item"> <span data-i18n="drpdwn.settings">個人資料</span> </a>
|
|
<a href="javascript:void(0);" id="btn-change-password" class="dropdown-item"> <span data-i18n="drpdwn.settings">密碼修改</span> </a>
|
|
<div class="dropdown-divider m-0"></div>
|
|
<a href="#" class="dropdown-item" data-action="app-fullscreen"> <span data-i18n="drpdwn.fullscreen">Fullscreen</span> <i class="float-right text-muted fw-n">F11</i> </a> <a href="#" class="dropdown-item" data-action="app-print"> <span data-i18n="drpdwn.print">Print</span> <i class="float-right text-muted fw-n">Ctrl + P</i> </a>
|
|
<div class="dropdown-divider m-0"></div>
|
|
<a class="dropdown-item fw-500 pt-3 pb-3" asp-controller="Login" asp-action="SignOut"> <span data-i18n="drpdwn.page-logout">登出</span> <span class="float-right fw-n">@fic</span> </a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<!-- END Page Header -->
|
|
<!-- BEGIN Page Content -->
|
|
<!-- the #js-page-content id is needed for some plugins to initialize -->
|
|
<main id="js-page-content" role="main" class="page-content">
|
|
@RenderBody()
|
|
</main>
|
|
<!-- this overlay is activated only when mobile menu is triggered -->
|
|
<div class="page-content-overlay" data-action="toggle" data-class="mobile-nav-on"></div> <!-- END Page Content -->
|
|
<!-- BEGIN Page Footer -->
|
|
<footer class="page-footer" role="contentinfo">
|
|
@*<div class="d-flex align-items-center flex-1 text-muted">
|
|
<span class="hidden-md-down fw-700">2020 © Rage by <a href='https://www.rage.com.tw' class='text-primary fw-500' title='rage.com.tw' target='_blank'>rage.com.tw</a></span>
|
|
</div>
|
|
<div>
|
|
<ul class="list-table m-0">
|
|
<li><a href="intel_introduction.html" class="text-secondary fw-700">About</a></li>
|
|
<li class="pl-3"><a href="info_app_licensing.html" class="text-secondary fw-700">License</a></li>
|
|
<li class="pl-3"><a href="info_app_docs.html" class="text-secondary fw-700">Documentation</a></li>
|
|
|
|
</ul>
|
|
</div>*@
|
|
</footer>
|
|
<!-- END Page Footer -->
|
|
<!-- BEGIN Shortcuts -->
|
|
<div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog" aria-labelledby="modal-shortcut" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-top modal-transparent" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-body">
|
|
<ul class="app-list w-auto h-auto p-0 text-left">
|
|
<li>
|
|
<a href="intel_introduction.html" class="app-list-item text-white border-0 m-0">
|
|
<div class="icon-stack">
|
|
<i class="base base-7 icon-stack-3x opacity-100 color-primary-500 "></i>
|
|
<i class="base base-7 icon-stack-2x opacity-100 color-primary-300 "></i>
|
|
<i class="fal fa-home icon-stack-1x opacity-100 color-white"></i>
|
|
</div>
|
|
<span class="app-list-name">
|
|
Home
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="page_inbox_general.html" class="app-list-item text-white border-0 m-0">
|
|
<div class="icon-stack">
|
|
<i class="base base-7 icon-stack-3x opacity-100 color-success-500 "></i>
|
|
<i class="base base-7 icon-stack-2x opacity-100 color-success-300 "></i>
|
|
<i class="ni ni-envelope icon-stack-1x text-white"></i>
|
|
</div>
|
|
<span class="app-list-name">
|
|
Inbox
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="intel_introduction.html" class="app-list-item text-white border-0 m-0">
|
|
<div class="icon-stack">
|
|
<i class="base base-7 icon-stack-2x opacity-100 color-primary-300 "></i>
|
|
<i class="fal fa-plus icon-stack-1x opacity-100 color-white"></i>
|
|
</div>
|
|
<span class="app-list-name">
|
|
Add More
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- END Shortcuts -->
|
|
<!-- BEGIN Color profile -->
|
|
<!-- this area is hidden and will not be seen on screens or screen readers -->
|
|
<!-- we use this only for CSS color refernce for JS stuff -->
|
|
<p id="js-color-profile" class="d-none">
|
|
<span class="color-primary-50"></span>
|
|
<span class="color-primary-100"></span>
|
|
<span class="color-primary-200"></span>
|
|
<span class="color-primary-300"></span>
|
|
<span class="color-primary-400"></span>
|
|
<span class="color-primary-500"></span>
|
|
<span class="color-primary-600"></span>
|
|
<span class="color-primary-700"></span>
|
|
<span class="color-primary-800"></span>
|
|
<span class="color-primary-900"></span>
|
|
<span class="color-info-50"></span>
|
|
<span class="color-info-100"></span>
|
|
<span class="color-info-200"></span>
|
|
<span class="color-info-300"></span>
|
|
<span class="color-info-400"></span>
|
|
<span class="color-info-500"></span>
|
|
<span class="color-info-600"></span>
|
|
<span class="color-info-700"></span>
|
|
<span class="color-info-800"></span>
|
|
<span class="color-info-900"></span>
|
|
<span class="color-danger-50"></span>
|
|
<span class="color-danger-100"></span>
|
|
<span class="color-danger-200"></span>
|
|
<span class="color-danger-300"></span>
|
|
<span class="color-danger-400"></span>
|
|
<span class="color-danger-500"></span>
|
|
<span class="color-danger-600"></span>
|
|
<span class="color-danger-700"></span>
|
|
<span class="color-danger-800"></span>
|
|
<span class="color-danger-900"></span>
|
|
<span class="color-warning-50"></span>
|
|
<span class="color-warning-100"></span>
|
|
<span class="color-warning-200"></span>
|
|
<span class="color-warning-300"></span>
|
|
<span class="color-warning-400"></span>
|
|
<span class="color-warning-500"></span>
|
|
<span class="color-warning-600"></span>
|
|
<span class="color-warning-700"></span>
|
|
<span class="color-warning-800"></span>
|
|
<span class="color-warning-900"></span>
|
|
<span class="color-success-50"></span>
|
|
<span class="color-success-100"></span>
|
|
<span class="color-success-200"></span>
|
|
<span class="color-success-300"></span>
|
|
<span class="color-success-400"></span>
|
|
<span class="color-success-500"></span>
|
|
<span class="color-success-600"></span>
|
|
<span class="color-success-700"></span>
|
|
<span class="color-success-800"></span>
|
|
<span class="color-success-900"></span>
|
|
<span class="color-fusion-50"></span>
|
|
<span class="color-fusion-100"></span>
|
|
<span class="color-fusion-200"></span>
|
|
<span class="color-fusion-300"></span>
|
|
<span class="color-fusion-400"></span>
|
|
<span class="color-fusion-500"></span>
|
|
<span class="color-fusion-600"></span>
|
|
<span class="color-fusion-700"></span>
|
|
<span class="color-fusion-800"></span>
|
|
<span class="color-fusion-900"></span>
|
|
</p>
|
|
<!-- END Color profile -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- END Page Wrapper -->
|
|
<!-- Site wrapper -->
|
|
@*
|
|
<div class="wrapper">
|
|
<!-- Navbar -->
|
|
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
|
|
<!-- Left navbar links -->
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- Right navbar links -->
|
|
<ul class="navbar-nav ml-auto">
|
|
<!-- Notifications Dropdown Menu -->
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link" data-toggle="dropdown" href="#">
|
|
<i class="fas fa-user"></i> @ViewBag.myUser.Name
|
|
</a>
|
|
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
|
|
<a class="dropdown-item" id="btn-personal-info" href="javascript: void(0)" role="button">
|
|
<i class="fas fa-address-card mr-2"></i> 個人資料
|
|
</a>
|
|
<a class="dropdown-item" id="btn-change-password" href="javascript: void(0)" role="button">
|
|
<i class="fas fa-lock mr-2"></i> 修改密碼
|
|
</a>
|
|
<a asp-controller="Login" asp-action="SignOut" class="dropdown-item">
|
|
<i class="fas fa-sign-out-alt mr-2"></i> 登出
|
|
</a>
|
|
</div>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-widget="fullscreen" href="#" role="button">
|
|
<i class="fas fa-expand-arrows-alt"></i>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<!-- /.navbar -->
|
|
<!-- Main Sidebar Container -->
|
|
<aside class="main-sidebar main-sidebar-custom sidebar-dark-primary elevation-4">
|
|
<!-- Brand Logo -->
|
|
<a asp-controller="Home" asp-action="Index" class="brand-link">
|
|
<span class="brand-text font-weight-light">Home</span><br />
|
|
</a>
|
|
|
|
<!-- Sidebar -->
|
|
<div class="sidebar">
|
|
<!-- Sidebar Menu -->
|
|
<nav class="mt-2">
|
|
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
|
|
<li class="nav-item @(ViewData["MainNum"] == "1" ? "menu-open" : "")">
|
|
<a href="#" class="nav-link @(ViewData["MainNum"] == "1" ? "active" : "")">
|
|
<i class="nav-icon fas fa-tree"></i>
|
|
<p>
|
|
UI Elements
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a asp-controller="UI" asp-action="Index" class="nav-link @(ViewData["MainNum"] == "1" && ViewData["SubNum"] == "1" ? "active" : "")">
|
|
<i class="far fa-circle nav-icon"></i>
|
|
<p>Modals & Alerts</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item @(ViewData["MainNum"] == "2" ? "menu-open" : "")">
|
|
<a href="#" class="nav-link @(ViewData["MainNum"] == "2" ? "active" : "")">
|
|
<i class="nav-icon fas fa-cog"></i>
|
|
<p>
|
|
系統管理
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a asp-controller="SystemAdmin" asp-action="Index" class="nav-link @(ViewData["MainNum"] == "2" && ViewData["SubNum"] == "1" ? "active" : "")">
|
|
<i class="fas fa-users nav-icon"></i>
|
|
<p>帳號管理</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<!-- /.sidebar-menu -->
|
|
</div>
|
|
<!-- /.sidebar -->
|
|
</aside>
|
|
|
|
<div class="content-wrapper">
|
|
<!-- Content Header (Page header) -->
|
|
<section class="content-header">
|
|
<div class="container-fluid">
|
|
<div class="row mb-2">
|
|
<div class="col-sm-6">
|
|
<h1>@ViewData["Title"]</h1>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<ol class="breadcrumb float-sm-right">
|
|
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
|
<li class="breadcrumb-item active">Modals & Alerts</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.container-fluid -->
|
|
</section>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<main role="main" class="pb-3">
|
|
@RenderBody()
|
|
</main>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<!-- /.content-wrapper -->
|
|
|
|
<footer class="main-footer">
|
|
<div class="float-right d-none d-sm-block">
|
|
<b>Version</b> 3.1.0-rc
|
|
</div>
|
|
<strong>Copyright © 2014-2020 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights reserved.
|
|
</footer>
|
|
|
|
<!-- Control Sidebar -->
|
|
<aside class="control-sidebar control-sidebar-dark">
|
|
<!-- Control sidebar content goes here -->
|
|
</aside>
|
|
<!-- /.control-sidebar -->
|
|
</div>
|
|
*@
|
|
<!-- /.wrapper -->
|
|
<!-- 個人資料 -->
|
|
<div class="modal" tabindex="-1" id="personal-info-modal" role="dialog" data-backdrop="static" data-keyboard="false">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">個人資料</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<form class="personal-info-form" id="personal-info-form">
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="name_modal">
|
|
<font class="text-danger">*</font>姓名:
|
|
</label>
|
|
<input type="text" class="form-control" id="name_modal" name="name_modal" autocomplete="off" />
|
|
</div>
|
|
</div>
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="account_modal">
|
|
帳號:
|
|
</label>
|
|
<input type="text" class="form-control" id="account_modal" name="account_modal" disabled>
|
|
</div>
|
|
</div>
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="email_modal">
|
|
電子信箱:
|
|
</label>
|
|
<input type="email" class="form-control" id="email_modal" name="email_modal" autocomplete="off">
|
|
</div>
|
|
</div>
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="phone_modal">
|
|
電話:
|
|
</label>
|
|
<input type="text" class="form-control" id="phone_modal" name="phone_modal" autocomplete="off">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
|
<button type="button" class="btn btn-primary btn-save" onclick="SavePersonalInfo()">儲存</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.個人資料 -->
|
|
<!-- 變更密碼 -->
|
|
<div class="modal" tabindex="-1" id="change-password-modal" role="dialog" data-backdrop="static" data-keyboard="false">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">變更密碼</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<form class="change-password-form" id="change-password-form">
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="old_password_modal">
|
|
<font class="text-danger">*</font>舊密碼:
|
|
</label>
|
|
<input type="password" class="form-control" id="old_password_id_modal" name="old_password_modal" autocomplete="off" />
|
|
</div>
|
|
</div>
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="new_password_modal">
|
|
<font class="text-danger">*</font>新密碼:
|
|
</label>
|
|
<input type="password" class="form-control" id="new_password_id_modal" name="new_password_modal" autocomplete="off">
|
|
</div>
|
|
</div>
|
|
<div class="form-row mb-3">
|
|
<div class="form-group col-md-12">
|
|
<label for="again_password_modal">
|
|
<font class="text-danger">*</font>確認新密碼:
|
|
</label>
|
|
<input type="password" class="form-control" id="again_password_id_modal" name="again_password_modal" autocomplete="off" minlength="6" maxlength="12" required>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
|
<button type="button" class="btn btn-primary btn-save" onclick="ChangePassword()">儲存</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.變更密碼 -->
|
|
<!-- Image Zoom Outer Div -->
|
|
<div id="img-zoom-outer-div" style="position:fixed;top:0;left:0;background:rgba(0,0,0,0.7);z-index:9999;width:100%;height:100%; overflow-y:scroll;display:none;">
|
|
<div id="innerdiv" style="position:absolute; top: 50%; left: 50%; transform:translate(-50%,-50%);width:1440px;">
|
|
<img id="bigimg" style="border:5px solid #fff;" width="100%" src="" />
|
|
</div>
|
|
</div>
|
|
|
|
<!--Base JS-->
|
|
<script src="~/js/vendors.bundle.js"></script>
|
|
<script src="~/js/app.bundle.js"></script>
|
|
<!-- JQuery Validate -->
|
|
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
|
|
<script src="~/lib/jquery-validation/dist/localization/messages_zh_TW.js"></script>
|
|
<!-- dataTables -->
|
|
<script src="~/js/datagrid/datatables/datatables.bundle.js"></script>
|
|
<!-- SweetAlert -->
|
|
<script src="~/js/notifications/sweetalert2/sweetalert2.bundle.js"></script>
|
|
<script src="~/js/notifications/toastr/toastr.js"></script>
|
|
<!--Toast-->
|
|
<script src="~/js/toast.js"></script>
|
|
<!-- Select2 JS -->
|
|
@*<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>*@
|
|
<script src="~/js/formplugins/select2/select2.bundle.js"></script>
|
|
<!-- 拖曳檔案上傳 -->
|
|
<script src="~/js/formplugins/dropzone/dropzone.js"></script>
|
|
<!-- table2excel -->
|
|
<script src="~/js/jquery.table2excel.min.js"></script>
|
|
<!--Chart.js-->
|
|
<script src="~/js/statistics/chartjs/chartjs.bundle.js"></script>
|
|
<!-- Custome JS -->
|
|
<script src="~/js/site.js" asp-append-version="true"></script>
|
|
<script src="~/js/image.zoom.js" asp-append-version="true"></script>
|
|
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
|
|
<!--<script src="~/js/daterangepicker.js"></script>-->
|
|
@*各頁面的JavaScript*@
|
|
@RenderSection("Scripts", required: false)
|
|
</body>
|
|
</html>
|