421 lines
21 KiB
Plaintext
421 lines
21 KiB
Plaintext
@using EnVisage.Code.HtmlHelpers
|
|
@using Microsoft.AspNet.Identity
|
|
@using EnVisage.Models
|
|
@using EnVisage.Code
|
|
<!DOCTYPE html>
|
|
<!--[if IE 8]> <html class="ie8"> <![endif]-->
|
|
<!--[if IE 9]> <html class="ie9 gt-ie8"> <![endif]-->
|
|
<!--[if gt IE 9]><!-->
|
|
<html class="gt-ie8 gt-ie9 not-ie">
|
|
<!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>@ViewBag.Title - PlanIT</title>
|
|
<!-- Open Sans font from Google CDN -->
|
|
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,600,700,300&subset=latin" rel="stylesheet" type="text/css">
|
|
|
|
<!-- Pixel Admin's stylesheets -->
|
|
<link href="~/Content/stylesheets/bootstrap.min.css" rel="stylesheet" type="text/css">
|
|
<link href="~/Content/stylesheets/pixel-admin.css" rel="stylesheet" type="text/css">
|
|
<link href="~/Content/stylesheets/widgets.min.css" rel="stylesheet" type="text/css">
|
|
<link href="~/Content/stylesheets/themes.css" rel="stylesheet" type="text/css">
|
|
<link href="~/Content/stylesheets/Site.css" rel="stylesheet" type="text/css">
|
|
@RenderSection("stylesheets", required: false)
|
|
<!--[if lt IE 9]>
|
|
<script src="~/Scripts/ie.min.js"></script>
|
|
<![endif]-->
|
|
<script type="text/javascript">
|
|
@Html.Raw(ViewBag.GlobalVariables)
|
|
</script>
|
|
<script src="~/Scripts/ContentLocker.js"></script>
|
|
<style type="text/css">
|
|
.datepicker-dropdown {
|
|
z-index:1060!important;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body class="theme-adminflare main-menu-animated">
|
|
|
|
<script>var init = [];</script>
|
|
|
|
<div id="main-wrapper">
|
|
<div id="main-navbar" class="navbar navbar-inverse" role="navigation">
|
|
<button type="button" id="main-menu-toggle"><i class="navbar-icon fa fa-bars icon"></i><span class="hide-menu-text">HIDE MENU</span></button>
|
|
|
|
<div class="navbar-inner">
|
|
<div class="navbar-header">
|
|
<a href="@Url.Action("Index","Home")" class="navbar-brand" style="text-transform:none;font-size:12px;"><div><img alt="PlanIT" src="~/Content/images/planit-sm.png"></div></a>
|
|
<span class="navbarHeading-sm visible-xs-inline hidden-sm hidden-md hidden-lg"> @ViewBag.Title</span>
|
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-navbar-collapse"><i class="navbar-icon fa fa-bars"></i></button>
|
|
</div>
|
|
<div class="pull-left">
|
|
<h1 class="navbarHeading hidden-xs">@ViewBag.Title</h1>
|
|
</div>
|
|
<div id="main-navbar-collapse" class="collapse navbar-collapse main-navbar-collapse">
|
|
<div>
|
|
<div class="right clearfix">
|
|
@Html.Partial("_LoginPartial")
|
|
@RenderSection("pagemenu", required: false)
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="main-menu" role="navigation">
|
|
<div id="main-menu-inner">
|
|
<ul class="navigation">
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Dashboard, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Home")"><i class="menu-icon fa fa-dashboard"></i><span class="mm-text">Dashboard</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ViewDashboard, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Board", "View")"><i class="menu-icon fa fa-dashboard"></i><span class="mm-text">My Views</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Views, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Board", "Team")"><i class="menu-icon fa fa-dashboard"></i><span class="mm-text">My Team(s)</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Portfolio, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Portfolio")"><i class="menu-icon fa fa-book"></i><span class="mm-text">Portfolio</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ScheduleBoard, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "ScheduleBoard")"><i class="menu-icon fa fa-table"></i><span class="mm-text">Schedule Board</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Scenarios, AccessLevel.Read))
|
|
{
|
|
<!--<li>
|
|
<a href=@Url.Action("Index", "Scenarios")><i class="menu-icon fa fa-files-o"></i><span class="mm-text">Scenarios</span></a>
|
|
</li>-->
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Projects, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Project")"><i class="menu-icon fa fa-briefcase"></i><span class="mm-text">My Projects</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Reports, AccessLevel.Read))
|
|
{
|
|
<li class="mm-dropdown mm-dropdown-root">
|
|
<a href="#"><i class="menu-icon fa fa-bar-chart-o"></i><span class="mm-text">Reports</span></a>
|
|
<ul>
|
|
<li class="mm-dropdown mm-dropdown-root">
|
|
<a href="#"><span class="mm-text">Resource reports</span></a>
|
|
<ul>
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Reports, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "WhatIfCalendar")"><span class="mm-text">What-If Calendar (Graph)</span></a>
|
|
</li>
|
|
}
|
|
|
|
<li >
|
|
<a href="@Url.Action("Index", "SingleResQtiesOrCostByTime")"><span class="mm-text">Single Resource Quantities or Cost by Time</span></a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class ="mm-dropdown mm-dropdown-root">
|
|
<a href="#"><span class="mm-text">Project reports</span></a>
|
|
<ul>
|
|
@*<li>
|
|
<a href="#"><span class="mm-text">Show Roll-Up</span></a>
|
|
</li>*@
|
|
|
|
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Reports, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "ShowRollUp")"><span class="mm-text">Project Roll-Up</span></a>
|
|
</li>
|
|
}
|
|
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<a href="#"><span class="mm-text">Graph viewer</span></a>
|
|
</li>
|
|
<li>
|
|
<a href="@Url.Action("Index", "CapacityManagement")"><span class="mm-text">Capacity Management</span></a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
}
|
|
@if (Html.CheckAnySecurityObjectPermission(new List<Areas>() { Areas.Users, Areas.Roles, Areas.Company, Areas.Clients, Areas.CreditDepartments, Areas.GLAccounts, Areas.Expenditures,
|
|
Areas.ExpenditureCategories, Areas.UnitsOfMeasure, Areas.ProjectClassifications, Areas.ProjectStatuses, Areas.FiscalCalendar, Areas.ScenarioTemplates,
|
|
Areas.ImportActuals}, AccessLevel.Read))
|
|
{
|
|
<li class="mm-dropdown mm-dropdown-root">
|
|
<a href="#"><i class="menu-icon fa fa-desktop"></i><span class="mm-text">Administration</span></a>
|
|
<ul>
|
|
@if (Html.CheckAnySecurityObjectPermission(new List<Areas>() {Areas.Users, Areas.Roles}, AccessLevel.Read))
|
|
{
|
|
<li class="mm-dropdown">
|
|
<a href="#"><span class="mm-text">Security</span></a>
|
|
<ul>
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Roles, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("index", "Role")"><span class="mm-text">Roles</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Users, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("index", "User")"><span class="mm-text">Users</span></a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Company, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Company")"><span class="mm-text">Company</span></a>
|
|
</li>
|
|
<li>
|
|
<a href="@Url.Action("Index", "Contact")"><span class="mm-text">Internal Contacts</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Clients, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Clients")"><span class="mm-text">Clients</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.CreditDepartments, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "CreditDepartment")"><span class="mm-text">Cost Centers</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.GLAccounts, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "GLAccount")"><span class="mm-text">GL Accounts</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Expenditures, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Expenditure")"><span class="mm-text">Expenditures</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ExpenditureCategories, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "ExpenditureCategory")"><span class="mm-text">Expenditure Categories</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.UnitsOfMeasure, AccessLevel.Read))
|
|
{
|
|
<li >
|
|
<a href="@Url.Action("Index", "UnitOfMeasure")"><span class="mm-text">Units of Measure</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Views, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "View")"><span class="mm-text">Views</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ProjectClassifications, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Type")"><span class="mm-text">Project Classifications</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ProjectStatuses, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Status")"><span class="mm-text">Project Statuses</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.FiscalCalendar, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "Calendar")"><span class="mm-text">Fiscal Calendar</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ScenarioTemplates, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Templates", "Scenarios")"><span class="mm-text">Scenario Templates</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.ImportActuals, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("ImportActuals", "Project")"><span class="mm-text">Import actuals</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Scenarios, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "ScenarioGroup")"><span class="mm-text">Scenario Groups</span></a>
|
|
</li>
|
|
}
|
|
@if (Html.CheckSecurityObjectPermission(Areas.Trainings, AccessLevel.Read))
|
|
{
|
|
<li>
|
|
<a href="@Url.Action("Index", "TrainingType")"><span class="mm-text">Training Types</span></a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</li>
|
|
}
|
|
</ul> <!-- / .navigation -->
|
|
</div> <!-- / #main-menu-inner -->
|
|
</div> <!-- / #main-menu -->
|
|
<!-- /4. $MAIN_MENU -->
|
|
<!-- Error modal alert -->
|
|
<div id="modal-error" class="modal modal-alert modal-danger fade">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<i class="fa fa-times-circle"></i>
|
|
</div>
|
|
<div class="modal-title"></div>
|
|
<div class="modal-body"></div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-danger" data-dismiss="modal">OK</button>
|
|
</div>
|
|
</div> <!-- / .modal-content -->
|
|
</div> <!-- / .modal-dialog -->
|
|
</div> <!-- / .modal -->
|
|
<!-- / Error modal alert -->
|
|
<div id="content-wrapper">
|
|
<!--<ul class="breadcrumb breadcrumb-page">
|
|
<div class="breadcrumb-label text-light-gray">You are here: </div>
|
|
<li><a href="#"> @ViewContext.RouteData.Values["controller"].ToString()</a></li>
|
|
<li class="active"><a href="#">@ViewContext.RouteData.Values["action"].ToString()</a></li>
|
|
</ul>-->
|
|
@RenderBody()
|
|
</div> <!-- / #content-wrapper -->
|
|
<div id="main-menu-bg"></div>
|
|
</div> <!-- / #main-wrapper -->
|
|
<!-- Get jQuery from Google CDN -->
|
|
<!--[if !IE]> -->
|
|
<script type="text/javascript"> window.jQuery || document.write('<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.js">' + "<" + "/script>"); </script>
|
|
<!--[endif]-->
|
|
<!--[if lte IE 9]>
|
|
<script type="text/javascript"> window.jQuery || document.write('<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">'+"<"+"/script>"); </script>
|
|
<![endif]-->
|
|
<!-- Pixel Admin's javascripts -->
|
|
|
|
<script src="~/Scripts/bootstrap.js"></script>
|
|
<script src="~/Scripts/pixel-admin.js"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.blockUI.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/main.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.dataTables.columnFilter.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/dataTables.colReorder.js")"></script>
|
|
|
|
<script type="text/javascript">
|
|
var emulateNavUrl = "";
|
|
</script>
|
|
|
|
@RenderSection("scripts", required: false)
|
|
|
|
<script type="text/javascript">
|
|
|
|
jQuery.validator.setDefaults({
|
|
highlight: function (element, errorClass, validClass) {
|
|
if (element.type === 'radio') {
|
|
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
|
|
} else {
|
|
$(element).addClass(errorClass).removeClass(validClass);
|
|
//$(element).closest('.form-group').addClass('has-error');
|
|
}
|
|
},
|
|
unhighlight: function (element, errorClass, validClass) {
|
|
if (element.type === 'radio') {
|
|
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
|
|
} else {
|
|
$(element).removeClass(errorClass).addClass(validClass);
|
|
//$(element).closest('.control-group').removeClass('has-error');
|
|
}
|
|
}
|
|
});
|
|
var chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase());
|
|
function _printDoc() {
|
|
beforePrint();
|
|
window.print();
|
|
}
|
|
var beforePrint = function () {
|
|
main_wrapper_paddingLeft = $("#main-wrapper").css("padding-left");
|
|
if (chrome == true) {
|
|
$("#main-wrapper").addClass('important-padding-left-0');
|
|
}
|
|
};
|
|
|
|
var afterPrint = function () {
|
|
//all browsers except Chrome hide left nav menu with correct print styleshet. Chrome does not, so we apply a workaround here
|
|
if (chrome == true) {
|
|
$("#main-wrapper").removeClass('important-padding-left-0');
|
|
}
|
|
};
|
|
|
|
init.push(function () {
|
|
$("span.field-validation-valid, span.field-validation-error").addClass('help-block');
|
|
//$("div.form-group").has("span.field-validation-error").addClass('has-error');
|
|
$("div.validation-summary-errors").has("li:visible").addClass("alert alert-block alert-danger");
|
|
$(".panel-body").on("mousemove", function (e) {
|
|
if (ResetInactivePeriod)
|
|
ResetInactivePeriod();
|
|
});
|
|
|
|
if (window.matchMedia) {
|
|
var mediaQueryList = window.matchMedia('print');
|
|
mediaQueryList.addListener(function (mql) {
|
|
if (mql.matches) {
|
|
beforePrint();
|
|
} else {
|
|
afterPrint();
|
|
}
|
|
});
|
|
}
|
|
|
|
window.onbeforeprint = beforePrint;
|
|
window.onafterprint = afterPrint;
|
|
|
|
$(window).keydown(function (event) {
|
|
if ((event.ctrlKey || event.metaKey) && event.keyCode == 80) {
|
|
//ctrl+P, ctrl+shift+P, cmd+P
|
|
beforePrint();
|
|
}
|
|
});
|
|
|
|
@Html.Raw(ViewBag.StartUpJS)
|
|
});
|
|
window.PixelAdmin.start(init,
|
|
{
|
|
main_menu: {
|
|
store_state: false,
|
|
detect_active: true,
|
|
detect_active_predicate: function (href, url) {
|
|
//console.log("href:" + href + "; url:" + url + "; em:" + emulateNavUrl + "; rplcd h:" + "/" + href.replace(/^(?:\/\/|[^\/]+)*\//, ""));
|
|
return url === href || emulateNavUrl === "/" + href.replace(/^(?:\/\/|[^\/]+)*\//, "");
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.flot.time.js")"></script>
|
|
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.flot.stack.js")"></script>
|
|
</body>
|
|
</html>
|