mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-08 23:56:37 +02:00
web-app content formatting
This commit is contained in:
parent
098544f83b
commit
a327dc0197
@ -4,8 +4,6 @@
|
||||
{{end}}
|
||||
{{ define "partials/app-wrapper" }}
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Error Text -->
|
||||
<div class="text-center mt-5">
|
||||
<div class="error mx-auto" data-text="{{ .StatusCode }}">{{ .StatusCode }}</div>
|
||||
<p class="lead text-gray-800 mb-5">{{ .Error }}</p>
|
||||
@ -13,6 +11,5 @@
|
||||
<p class="text-gray-500 mb-0">{{ .Details }}</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{ end }}
|
@ -3,9 +3,6 @@
|
||||
|
||||
{{end}}
|
||||
{{define "content"}}
|
||||
|
||||
|
||||
|
||||
<h3 class="mt-5">Inline Validation Example</h3>
|
||||
<p>Any field error that is not displayed inline will still be displayed as apart of the the validation at the top of the page.</p>
|
||||
<form class="user" method="post" novalidate>
|
||||
@ -19,8 +16,6 @@
|
||||
</button>
|
||||
<hr>
|
||||
</form>
|
||||
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
|
||||
|
@ -82,8 +82,6 @@
|
||||
<p class="mb-0">Result:</p><pre><img src="{{ S3Url "/images/example-image-resize-galaxy-3000x1000.png" }}" ></pre>
|
||||
<img src="{{ S3Url "/images/example-image-resize-galaxy-3000x1000.png" }}" style="width: 100%;" /><br/>
|
||||
|
||||
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{end}}
|
||||
|
@ -6,7 +6,6 @@
|
||||
{{ define "content" }}
|
||||
<div class="container" id="page-content">
|
||||
|
||||
|
||||
<h3 class="h3 mt-5 mb-2" >Our Butt-Covering Legal Disclaimer</h3>
|
||||
<p>Information contained on or made available through the site or in any forms is not intended to
|
||||
and does not constitute legal advice, recommendations or counseling. Your use of this document
|
||||
@ -141,17 +140,9 @@
|
||||
1000 Coolr Way<br/>
|
||||
Valdez, AK, 99686</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
{{ define "content" }}
|
||||
<div class="container" id="page-content">
|
||||
|
||||
|
||||
<h3 class="h3 mt-5 mb-2" >Our Butt-Covering Legal Disclaimer</h3>
|
||||
<p>Information contained on or made available through the site or in any forms is not intended to
|
||||
and does not constitute legal advice, recommendations or counseling. Your use of this document
|
||||
@ -28,21 +27,17 @@
|
||||
documents necessary for your particular transactions, as the documents are only samples and
|
||||
may not be applicable to a particular situation.</p>
|
||||
|
||||
|
||||
<h1 class="h1 mt-5 mb-3 text-dark">Terms of Service</h1>
|
||||
|
||||
<p>SaaS Company ("we", "us", "our", "Your SaaS Company, Inc.") provides a software-as-a-service solution available anytime, anywhere, on any device. Please read this Terms of Service agreement carefully before accessing or using SaaS Company. Because it is such an important contract between us and our users, we have tried to make it as clear as possible. For your convenience, we have presented these terms in a short non-binding summary followed by the full legal terms.</p>
|
||||
|
||||
<p class="mb-3"><b>Effective July 01, 2050</b></p>
|
||||
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Definitions</h2>
|
||||
<p><b>Short version</b>: <i>We use these basic terms throughout the agreement, and they have specific meanings. You should know what we mean when we use each of the terms. There's not going to be a test on it, but it's still useful information.</i><p>
|
||||
|
||||
<p>The "Agreement" refers, collectively, to all the terms, conditions, notices contained or referenced in this document (the "Terms of Service" or the "Terms") and all other operating rules and policies including the SaaS Company <a href="/legal/privacy">Privacy Policy</a> that we may publish from time to time on the Website.</p>
|
||||
|
||||
|
||||
<p>The "Service" refers to the applications, software, products, and services provided by SaaS Company.</p>
|
||||
|
||||
<p>The "Website" refers to SaaS Company's website located at ExampleDomain.com, and all content, services, and products provided by SaaS Company at or through the Website. It also refers to SaaS Company owned subdomains of ExampleDomain.com, such as app.ExampleDomain.com. These Terms also govern SaaS Company's conference websites. Occasionally, websites owned by SaaS Company may provide different or additional terms of service. If those additional terms conflict with this Agreement, the more specific terms apply to the relevant page or service.</p>
|
||||
@ -55,7 +50,6 @@
|
||||
|
||||
<p>An "Account" represents your legal relationship with SaaS Company. A "User Account" represents an individual User's authorization to log in to and use the Service and serves as a User's identity on SaaS Company. "Organizations" are shared workspaces that may be associated with a single entity or with one or more Users where multiple Users can collaborate across many projects at once. A User Account can be a member of any number of Organizations.</p>
|
||||
|
||||
|
||||
<h3 class="h4 mt-3">Account Terms</h3>
|
||||
|
||||
<p><b>Short version</b>: <i>User Accounts and Organizations have different administrative controls; a human must create your Account; you must be 18 or over; you must provide a valid email address; and you may not have more than one free Account. You alone are responsible for your Account and anything that happens while you are signed in to or using your Account. You are responsible for keeping your Account secure.</i></p>
|
||||
@ -91,9 +85,6 @@
|
||||
<h3 class="h4 mt-3">Additional Terms</h3>
|
||||
<p>In some situations, third parties' terms may apply to your use of SaaS Company. For example, you may be a member of an organization on SaaS Company with its own terms or license agreements; you may download an application that integrates with SaaS Company; or you may use SaaS Company to authenticate to another service. Please be aware that while these Terms are our full agreement with you, other parties' terms govern their relationships with you.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Acceptable Use</h2>
|
||||
<p><b>Short version</b>: <i>SaaS Company hosts a wide variety of collaborative projects privately for your teams, and that collaboration only works when our users are able to work together in good faith. While using the service, you are restricted on content that can be included in your private projects, conduct on the service, and other limitations.</i></p>
|
||||
|
||||
@ -164,7 +155,6 @@
|
||||
<h3 class="h4 mt-3">Exclusions</h3>
|
||||
<p>If we have reason to believe the contents of a private procedure are in violation of the law or of these Terms, we have the right to access, review, and remove them. Additionally, we may be compelled by law to disclose the contents of your private projects.</p>
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Service Subscriptions</h2>
|
||||
<p><b>Short version</b>: <i>We offer paid subscriptions in order to provide your team with more robust solution. It is optional for you to subscribe to a paid plan.</i></p>
|
||||
|
||||
@ -178,7 +168,6 @@
|
||||
<h3 class="h4 mt-3">Usage Fees</h3>
|
||||
<p>The Premium Service includes a fee for number of users (seats) with status of active in a given month.</p>
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Payment</h2>
|
||||
<p><b>Short version</b>: <i>You are responsible for any fees associated with your use of SaaS Company. We are responsible for communicating those fees to you clearly and accurately, and letting you know well in advance if those prices change.</i></p>
|
||||
|
||||
@ -236,15 +225,12 @@
|
||||
|
||||
<p>SaaS Company may offer subscription-based access to our API for those Users who require high-throughput access or access that would result in resale of SaaS Company's Service.</p>
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Intellectual Property Notice</h2>
|
||||
<p><b>Short version</b>: <i>We own the service and all of our content. In order for you to use our content, we give you certain rights to it, but you may only use our content in the way we have allowed.</i></p>
|
||||
|
||||
<h3 class="h4 mt-3">SaaS Company's Rights to Content</h3>
|
||||
<p>SaaS Company and our licensors, vendors, agents, and/or our content providers retain ownership of all intellectual property rights of any kind related to the Website and Service. We reserve all rights that are not expressly granted to you under this Agreement or by law. The look and feel of the Website and Service is copyright © SaaS Company, Inc. All rights reserved. You may not duplicate, copy, or reuse any portion of the HTML/CSS, Javascript, or visual design elements or concepts without express written permission from SaaS Company.</p>
|
||||
|
||||
|
||||
|
||||
<h2 class="text-dark mt-5">Communications with SaaS Company</h2>
|
||||
<p><b>Short version</b>: <i>We use email and other electronic means to stay in touch with our users.</i></p>
|
||||
|
||||
@ -311,15 +297,9 @@
|
||||
<h2 class="text-dark mt-5">Questions</h2>
|
||||
<p>Questions about the Terms of Service? Contact <a href="/support">Support</a>.</p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
|
@ -24,9 +24,10 @@
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputName">Project Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "Name" }}"
|
||||
placeholder="Enter name for your project" name="Name" id="inputName" value="{{ .form.Name }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Name" }}
|
||||
<input type="text" id="inputName"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Name" }}"
|
||||
placeholder="Enter name for your project" name="Name"value="{{ .form.Name }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Name" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -12,7 +12,8 @@
|
||||
|
||||
<h1 class="h3 mb-0 text-gray-800">Projects</h1>
|
||||
{{ if HasRole $._Ctx "admin" }}
|
||||
<a href="{{ .urlProjectsCreate }}" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-folder-plus fa-sm text-white-50 mr-1"></i>Create Project</a>
|
||||
<a href="{{ .urlProjectsCreate }}" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm">
|
||||
<i class="fas fa-folder-plus fa-sm text-white-50 mr-1"></i>Create Project</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
@ -34,10 +35,10 @@
|
||||
{{define "js"}}
|
||||
{{ template "partials/datatable/js" . }}
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
//$("#dataTable_filter").hide();
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
//$("#dataTable_filter").hide();
|
||||
});
|
||||
</script>
|
||||
|
||||
{{end}}
|
||||
|
@ -12,16 +12,13 @@
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||
<h1 class="h3 mb-0 text-gray-800">Update Project</h1>
|
||||
</div>
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-12">
|
||||
|
||||
@ -29,27 +26,27 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputName">Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "Name" }}"
|
||||
placeholder="enter name" name="Name" id="inputName" value="{{ .form.Name }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "Name" }}
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputName">Name</label>
|
||||
<input type="text" id="inputName"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Name" }}"
|
||||
placeholder="enter name" name="Name" value="{{ .form.Name }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Name" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="selectStatus">Status</label>
|
||||
<select class="form-control {{ ValidationFieldClass $.validationErrors "Status" }}"
|
||||
id="selectStatus" name="Status">
|
||||
{{ range $t := .project.Status.Options }}
|
||||
<option value="{{ $t.Value }}" {{ if $t.Selected }}selected="selected"{{ end }}>{{ $t.Title }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "fieldName" "Status" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="selectStatus">Status</label>
|
||||
<select class="form-control {{ ValidationFieldClass $.validationErrors "Status" }}"
|
||||
id="selectStatus" name="Status">
|
||||
{{ range $t := .project.Status.Options }}
|
||||
<option value="{{ $t.Value }}" {{ if $t.Selected }}selected="selected"{{ end }}>{{ $t.Title }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Status" }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -34,7 +34,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<p>
|
||||
@ -55,14 +54,12 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
<p>
|
||||
<small>ID</small><br/>
|
||||
<b>{{ .project.ID }}</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -4,12 +4,10 @@
|
||||
{{end}}
|
||||
{{define "content"}}
|
||||
|
||||
|
||||
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||
<h1 class="h3 mb-0 text-gray-800">Dashboard</h1>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-4">
|
||||
<div class="col">
|
||||
|
||||
@ -34,289 +32,280 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
|
||||
|
||||
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-primary shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-primary text-uppercase mb-1">Earnings (Monthly)</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$40,000</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-calendar fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-primary shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-primary text-uppercase mb-1">Earnings (Monthly)</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$40,000</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-calendar fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-success shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Earnings (Annual)</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$215,000</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-dollar-sign fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-success shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Earnings (Annual)</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">$215,000</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-dollar-sign fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-info shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">Tasks</div>
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col-auto">
|
||||
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800">50%</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="progress progress-sm mr-2">
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- Earnings (Monthly) Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-info shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">Tasks</div>
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col-auto">
|
||||
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800">50%</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="progress progress-sm mr-2">
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-clipboard-list fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pending Requests Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-warning shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1">Pending Requests</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">18</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-comments fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-clipboard-list fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Content Row -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- Area Chart -->
|
||||
<div class="col-xl-8 col-lg-7">
|
||||
<div class="card shadow mb-4">
|
||||
<!-- Card Header - Dropdown -->
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Earnings Overview</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
||||
<div class="dropdown-header">Dropdown Header:</div>
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
<!-- Pending Requests Card Example -->
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card border-left-warning shadow h-100 py-2">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-warning text-uppercase mb-1">Pending Requests</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">18</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="chart-area"><div class="chartjs-size-monitor"><div class="chartjs-size-monitor-expand"><div class=""></div></div><div class="chartjs-size-monitor-shrink"><div class=""></div></div></div>
|
||||
<canvas id="myAreaChart" width="640" height="320" class="chartjs-render-monitor" style="display: block; width: 640px; height: 320px;"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pie Chart -->
|
||||
<div class="col-xl-4 col-lg-5">
|
||||
<div class="card shadow mb-4">
|
||||
<!-- Card Header - Dropdown -->
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Revenue Sources</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
||||
<div class="dropdown-header">Dropdown Header:</div>
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="chart-pie pt-4 pb-2"><div class="chartjs-size-monitor"><div class="chartjs-size-monitor-expand"><div class=""></div></div><div class="chartjs-size-monitor-shrink"><div class=""></div></div></div>
|
||||
<canvas id="myPieChart" width="287" height="245" class="chartjs-render-monitor" style="display: block; width: 287px; height: 245px;"></canvas>
|
||||
</div>
|
||||
<div class="mt-4 text-center small">
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-primary"></i> Direct
|
||||
</span>
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-success"></i> Social
|
||||
</span>
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-info"></i> Referral
|
||||
</span>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-comments fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
|
||||
<!-- Content Column -->
|
||||
<div class="col-lg-6 mb-4">
|
||||
|
||||
<!-- Project Card Example -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Projects</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4 class="small font-weight-bold">Server Migration <span class="float-right">20%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-danger" role="progressbar" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Sales Tracking <span class="float-right">40%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-warning" role="progressbar" style="width: 40%" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Customer Database <span class="float-right">60%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar" role="progressbar" style="width: 60%" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Payout Details <span class="float-right">80%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 80%" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Account Setup <span class="float-right">Complete!</span></h4>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-success" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
<!-- Area Chart -->
|
||||
<div class="col-xl-8 col-lg-7">
|
||||
<div class="card shadow mb-4">
|
||||
<!-- Card Header - Dropdown -->
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Earnings Overview</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
||||
<div class="dropdown-header">Dropdown Header:</div>
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Color System -->
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-primary text-white shadow">
|
||||
<div class="card-body">
|
||||
Primary
|
||||
<div class="text-white-50 small">#4e73df</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-success text-white shadow">
|
||||
<div class="card-body">
|
||||
Success
|
||||
<div class="text-white-50 small">#1cc88a</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-info text-white shadow">
|
||||
<div class="card-body">
|
||||
Info
|
||||
<div class="text-white-50 small">#36b9cc</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-warning text-white shadow">
|
||||
<div class="card-body">
|
||||
Warning
|
||||
<div class="text-white-50 small">#f6c23e</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-danger text-white shadow">
|
||||
<div class="card-body">
|
||||
Danger
|
||||
<div class="text-white-50 small">#e74a3b</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-secondary text-white shadow">
|
||||
<div class="card-body">
|
||||
Secondary
|
||||
<div class="text-white-50 small">#858796</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="chart-area"><div class="chartjs-size-monitor"><div class="chartjs-size-monitor-expand"><div class=""></div></div><div class="chartjs-size-monitor-shrink"><div class=""></div></div></div>
|
||||
<canvas id="myAreaChart" width="640" height="320" class="chartjs-render-monitor" style="display: block; width: 640px; height: 320px;"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-4">
|
||||
|
||||
<!-- Illustrations -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Illustrations</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="text-center">
|
||||
<img class="img-fluid px-3 px-sm-4 mt-3 mb-4" style="width: 25rem;" src="img/undraw_posting_photo.svg" alt="">
|
||||
</div>
|
||||
<p>Add some quality, svg illustrations to your project courtesy of <a target="_blank" rel="nofollow" href="https://undraw.co/">unDraw</a>, a constantly updated collection of beautiful svg images that you can use completely free and without attribution!</p>
|
||||
<a target="_blank" rel="nofollow" href="https://undraw.co/">Browse Illustrations on unDraw →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Approach -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Development Approach</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce CSS bloat and poor page performance. Custom CSS classes are used to create custom components and custom utility classes.</p>
|
||||
<p class="mb-0">Before working with this theme, you should become familiar with the Bootstrap framework, especially the utility classes.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pie Chart -->
|
||||
<div class="col-xl-4 col-lg-5">
|
||||
<div class="card shadow mb-4">
|
||||
<!-- Card Header - Dropdown -->
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Revenue Sources</h6>
|
||||
<div class="dropdown no-arrow">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
||||
<div class="dropdown-header">Dropdown Header:</div>
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="chart-pie pt-4 pb-2"><div class="chartjs-size-monitor"><div class="chartjs-size-monitor-expand"><div class=""></div></div><div class="chartjs-size-monitor-shrink"><div class=""></div></div></div>
|
||||
<canvas id="myPieChart" width="287" height="245" class="chartjs-render-monitor" style="display: block; width: 287px; height: 245px;"></canvas>
|
||||
</div>
|
||||
<div class="mt-4 text-center small">
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-primary"></i> Direct
|
||||
</span>
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-success"></i> Social
|
||||
</span>
|
||||
<span class="mr-2">
|
||||
<i class="fas fa-circle text-info"></i> Referral
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Content Row -->
|
||||
<div class="row">
|
||||
|
||||
<!-- Content Column -->
|
||||
<div class="col-lg-6 mb-4">
|
||||
|
||||
<!-- Project Card Example -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Projects</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4 class="small font-weight-bold">Server Migration <span class="float-right">20%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-danger" role="progressbar" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Sales Tracking <span class="float-right">40%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-warning" role="progressbar" style="width: 40%" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Customer Database <span class="float-right">60%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar" role="progressbar" style="width: 60%" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Payout Details <span class="float-right">80%</span></h4>
|
||||
<div class="progress mb-4">
|
||||
<div class="progress-bar bg-info" role="progressbar" style="width: 80%" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<h4 class="small font-weight-bold">Account Setup <span class="float-right">Complete!</span></h4>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-success" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Color System -->
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-primary text-white shadow">
|
||||
<div class="card-body">
|
||||
Primary
|
||||
<div class="text-white-50 small">#4e73df</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-success text-white shadow">
|
||||
<div class="card-body">
|
||||
Success
|
||||
<div class="text-white-50 small">#1cc88a</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-info text-white shadow">
|
||||
<div class="card-body">
|
||||
Info
|
||||
<div class="text-white-50 small">#36b9cc</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-warning text-white shadow">
|
||||
<div class="card-body">
|
||||
Warning
|
||||
<div class="text-white-50 small">#f6c23e</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-danger text-white shadow">
|
||||
<div class="card-body">
|
||||
Danger
|
||||
<div class="text-white-50 small">#e74a3b</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card bg-secondary text-white shadow">
|
||||
<div class="card-body">
|
||||
Secondary
|
||||
<div class="text-white-50 small">#858796</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 mb-4">
|
||||
|
||||
<!-- Illustrations -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Illustrations</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="text-center">
|
||||
<img class="img-fluid px-3 px-sm-4 mt-3 mb-4" style="width: 25rem;" src="img/undraw_posting_photo.svg" alt="">
|
||||
</div>
|
||||
<p>Add some quality, svg illustrations to your project courtesy of <a target="_blank" rel="nofollow" href="https://undraw.co/">unDraw</a>, a constantly updated collection of beautiful svg images that you can use completely free and without attribution!</p>
|
||||
<a target="_blank" rel="nofollow" href="https://undraw.co/">Browse Illustrations on unDraw →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Approach -->
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Development Approach</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce CSS bloat and poor page performance. Custom CSS classes are used to create custom components and custom utility classes.</p>
|
||||
<p class="mb-0">Before working with this theme, you should become familiar with the Bootstrap framework, especially the utility classes.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
|
||||
|
||||
<!-- Page level plugins -->
|
||||
<script src="{{ SiteAssetUrl "/assets/vendor/chart.js/Chart.min.js" }}"></script>
|
||||
|
||||
|
@ -30,24 +30,31 @@
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Name" }}" name="Account.Name" value="{{ $.form.Account.Name }}" placeholder="Company Name" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Name" }}
|
||||
<input type="text"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Name" }}"
|
||||
name="Account.Name" value="{{ $.form.Account.Name }}" placeholder="Company Name" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Name" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Address1" }}" name="Account.Address1" value="{{ $.form.Account.Address1 }}" placeholder="Address Line 1" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Address1" }}
|
||||
<input type="text"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Address1" }}"
|
||||
name="Account.Address1" value="{{ $.form.Account.Address1 }}" placeholder="Address Line 1" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Address1" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Address2" }}" name="Account.Address2" value="{{ $.form.Account.Address2 }}" placeholder="Address Line 2">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Address2" }}
|
||||
<input type="text"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.Address2" }}"
|
||||
name="Account.Address2" value="{{ $.form.Account.Address2 }}" placeholder="Address Line 2">
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Address2" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<div class="form-control-select-wrapper">
|
||||
<select class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "Account.Country" }}" id="selectAccountCountry" name="Account.Country" placeholder="Country" required>
|
||||
<select id="selectAccountCountry" name="Account.Country" placeholder="Country" required
|
||||
class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "Account.Country" }}">
|
||||
{{ range $i := $.countries }}
|
||||
{{ $hasGeonames := false }}
|
||||
{{ range $c := $.geonameCountries }}
|
||||
@ -56,28 +63,30 @@
|
||||
<option value="{{ $i.Code }}" data-geonames="{{ if $hasGeonames }}1{{ else }}0{{ end }}" {{ if eq $.form.Account.Country $i.Code }}selected="selected"{{ end }}>{{ $i.Name }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Country" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Country" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<div id="divAccountZipcode"></div>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Zipcode" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Zipcode" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<div id="divAccountRegion"></div>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Region" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Region" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row mb-4">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.City" }}" id="inputAccountCity" name="Account.City" value="{{ $.form.Account.City }}" placeholder="City" required>
|
||||
<input type="text" id="inputAccountCity"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Account.City" }}"
|
||||
name="Account.City" value="{{ $.form.Account.City }}" placeholder="City" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.City" }}
|
||||
</div>
|
||||
<!-- div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<select class="form-control {{ ValidationFieldClass $.validationErrors "Account.Timezone" }}" id="selectAccountTimezone" name="Account.Timezone" placeholder="Timezone"></select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Account.Timezone" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Account.Timezone" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div -->
|
||||
</div>
|
||||
|
||||
@ -89,26 +98,36 @@
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.FirstName" }}" name="User.FirstName" value="{{ $.form.User.FirstName }}" placeholder="First Name" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "User.FirstName" }}
|
||||
<input type="text"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.FirstName" }}"
|
||||
name="User.FirstName" value="{{ $.form.User.FirstName }}" placeholder="First Name" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "User.FirstName" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.LastName" }}" name="User.LastName" value="{{ $.form.User.LastName }}" placeholder="Last Name" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "User.LastName" }}
|
||||
<input type="text"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.LastName" }}"
|
||||
name="User.LastName" value="{{ $.form.User.LastName }}" placeholder="Last Name" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "User.LastName" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.Email" }}" name="User.Email" value="{{ $.form.User.Email }}" placeholder="Email Address" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "User.Email" }}
|
||||
<input type="email"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.Email" }}"
|
||||
name="User.Email" value="{{ $.form.User.Email }}" placeholder="Email Address" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "User.Email" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-6 mb-3 mb-sm-0">
|
||||
<input type="password" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.Password" }}" name="User.Password" value="{{ $.form.User.Password }}" placeholder="Password" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "User.Password" }}
|
||||
<input type="password"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.Password" }}"
|
||||
name="User.Password" value="{{ $.form.User.Password }}" placeholder="Password" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "User.Password" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input type="password" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.PasswordConfirm" }}" name="User.PasswordConfirm" value="{{ $.form.User.PasswordConfirm }}" placeholder="Repeat Password" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "User.PasswordConfirm" }}
|
||||
<input type="password"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "User.PasswordConfirm" }}"
|
||||
name="User.PasswordConfirm" value="{{ $.form.User.PasswordConfirm }}" placeholder="Repeat Password" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "User.PasswordConfirm" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -70,10 +70,6 @@
|
||||
</div>
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
|
@ -5,8 +5,6 @@
|
||||
{{end}}
|
||||
{{ define "content" }}
|
||||
|
||||
|
||||
|
||||
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
@ -54,8 +52,6 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="container" id="page-content" >
|
||||
|
||||
<div class="row mt-5">
|
||||
@ -79,11 +75,6 @@
|
||||
</div>
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
{{end}}
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
{{ define "content" }}
|
||||
<div class="container" id="page-content">
|
||||
|
||||
|
||||
<h1 class="h1 mt-5 mb-3 text-dark">Pricing</h1>
|
||||
|
||||
<p class="lead mb-5">Start your Free 30 Day Trial. Solution to increase the performance and efficiency of your businesses processes that scales with you, your team and your company. No credit card needed.</p>
|
||||
@ -104,29 +103,21 @@
|
||||
</div>
|
||||
|
||||
<!-- Start the Signup Container -->
|
||||
|
||||
<div class="container ">
|
||||
<div class="row pt-5">
|
||||
<div class="col-sm-8">
|
||||
<h3 class="h2 text-success">Interested in our Service?</h3>
|
||||
<p>Simplify your business processes with our innovative solution. Signup for your free trial now!</p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<a class="btn btn-info" href="/signup">Try it Now</a>
|
||||
</div>
|
||||
<div class="container ">
|
||||
<div class="row pt-5">
|
||||
<div class="col-sm-8">
|
||||
<h3 class="h2 text-success">Interested in our Service?</h3>
|
||||
<p>Simplify your business processes with our innovative solution. Signup for your free trial now!</p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<a class="btn btn-info" href="/signup">Try it Now</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /End the Featurettes -->
|
||||
|
||||
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
|
@ -6,13 +6,8 @@
|
||||
{{ define "content" }}
|
||||
<div class="container" id="page-content">
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="h1 mt-5 mb-3 text-dark">Support</h1>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
@ -23,13 +18,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mt-5 mb-5">
|
||||
<div class="col text-center">
|
||||
<h2 class="h2 text-purple">Search our Knowledge Base</h2>
|
||||
|
||||
<form action="https://keeni.zendesk.com/hc/en-us/search" method="GET">
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control font-24" name="query" placeholder="What can we help with?">
|
||||
|
||||
@ -43,7 +36,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mt-5 mb-5">
|
||||
<div class="col text-center">
|
||||
<h2 class="h2 text-purple">Contact us 24/7 for support via email, phone and chat!</h2>
|
||||
@ -52,32 +44,21 @@
|
||||
|
||||
<div class="row mb-5">
|
||||
|
||||
<div class="col-sm-6 text-center">
|
||||
<h3 class="h2"><i class="far fa-envelope"></i>Email Us</h3>
|
||||
<a href="mailto:support@ExampleDomain.com">support@ExampleDomain.com</a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 text-center">
|
||||
<h3 class="h2"><i class="fas fa-phone"></i>Call Us</h3>
|
||||
|
||||
<a href="tel:1-907-100-2000">+1 (907) 100-2000</a>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-sm-6 text-center">
|
||||
<h3 class="h2"><i class="far fa-envelope"></i>Email Us</h3>
|
||||
<a href="mailto:support@ExampleDomain.com">support@ExampleDomain.com</a>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 text-center">
|
||||
<h3 class="h2"><i class="fas fa-phone"></i>Call Us</h3>
|
||||
<a href="tel:1-907-100-2000">+1 (907) 100-2000</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr class="featurette-divider mt-5 mb-5">
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Start the Signup Container -->
|
||||
<div class="container ">
|
||||
<div class="row pt-5">
|
||||
@ -92,14 +73,8 @@
|
||||
</div>
|
||||
<!-- /End the Signup Container -->
|
||||
|
||||
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
|
@ -28,16 +28,21 @@
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "AuthenticateRequest.Email" }}" name="Email" value="{{ $.form.Email }}" placeholder="Enter Email Address...">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "AuthenticateRequest.Email" }}
|
||||
<input type="email"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "AuthenticateRequest.Email" }}"
|
||||
name="Email" value="{{ $.form.Email }}" placeholder="Enter Email Address...">
|
||||
{{template "invalid-feedback" dict "fieldName" "AuthenticateRequest.Email" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "AuthenticateRequest.Password" }}" name="Password" value="{{ $.form.Password }}" placeholder="Password">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "AuthenticateRequest.Password" }}
|
||||
<input type="password"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "AuthenticateRequest.Password" }}"
|
||||
name="Password" value="{{ $.form.Password }}" placeholder="Password">
|
||||
{{template "invalid-feedback" dict "fieldName" "AuthenticateRequest.Password" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox small">
|
||||
<input type="checkbox" class="custom-control-input" id="inputRemberMe" name="RememberMe" value="1" {{ if $.form.RememberMe }}checked="checked"{{end}}>
|
||||
<input type="checkbox" class="custom-control-input"
|
||||
id="inputRemberMe" name="RememberMe" value="1" {{ if $.form.RememberMe }}checked="checked"{{end}}>
|
||||
<label class="custom-control-label" for="inputRemberMe">Remember Me</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -29,8 +29,10 @@
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Email" }}" name="Email" value="{{ $.form.Email }}" placeholder="Enter Email Address...">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Email" }}
|
||||
<input type="email"
|
||||
class="form-control form-control-user {{ ValidationFieldClass $.validationErrors "Email" }}"
|
||||
name="Email" value="{{ $.form.Email }}" placeholder="Enter Email Address..." required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Email" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<button class="btn btn-primary btn-user btn-block">
|
||||
Reset Password
|
||||
|
@ -27,12 +27,13 @@
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
<div class="form-group">
|
||||
<select class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "AccountID" }}" name="AccountID" placeholder="AccountID" required>
|
||||
<select name="AccountID" placeholder="AccountID" required
|
||||
class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "AccountID" }}">
|
||||
{{ range $i := $.accounts }}
|
||||
<option value="{{ $i.ID }}" {{ if eq $.form.AccountID $i.ID }}selected="selected"{{ end }}>{{ $i.Name }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "AccountID" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "AccountID" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<button class="btn btn-primary btn-user btn-block">
|
||||
Login
|
||||
|
@ -20,33 +20,39 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputFirstName">First Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "FirstName" }}" placeholder="enter first name" name="FirstName" value="{{ .form.FirstName }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "FirstName" }}
|
||||
<input type="text"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "FirstName" }}"
|
||||
placeholder="enter first name" name="FirstName" value="{{ .form.FirstName }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "FirstName" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputLastName">Last Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "LastName" }}" placeholder="enter last name" name="LastName" value="{{ .form.LastName }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "LastName" }}
|
||||
<input type="text"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "LastName" }}"
|
||||
placeholder="enter last name" name="LastName" value="{{ .form.LastName }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "LastName" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputEmail">Email</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "Email" }}" placeholder="enter email" name="Email" value="{{ .form.Email }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "Email" }}
|
||||
<input type="text"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Email" }}"
|
||||
placeholder="enter email" name="Email" value="{{ .form.Email }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Email" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputTimezone">Timezone</label>
|
||||
<select class="form-control {{ ValidationFieldClass $.validationErrors "Timezone" }}" name="Timezone">
|
||||
<label for="selectTimezone">Timezone</label>
|
||||
<select id="selectTimezone" name="Timezone"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Timezone" }}">
|
||||
<option value="">Not set</option>
|
||||
{{ range $idx, $t := .timezones }}
|
||||
<option value="{{ $t }}" {{ if CmpString $t $.form.Timezone }}selected="selected"{{ end }}>{{ $t }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "Timezone" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Timezone" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -56,8 +62,6 @@
|
||||
<a href="/user" class="ml-2 btn btn-secondary" >Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -65,50 +69,39 @@
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
|
||||
|
||||
<div class="card mt-4">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-12">
|
||||
|
||||
<h4 class="card-title">Change Password</h4>
|
||||
<p><small><b>Optional</b>. You can change your password by specifying a new one below. Otherwise leave the fields empty.</small></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-2">
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputPassword">Password</label>
|
||||
<input type="password" class="form-control" id="inputPassword" placeholder="" name="Password" value="">
|
||||
<span class="help-block "><small><a a href="javascript:void(0)" id="btnGeneratePassword"><i class="fas fa-random mr-1"></i>Generate random password </a></small></span>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.passwordValidationDefaults "validationErrors" $.validationErrors "fieldName" "Password" }}
|
||||
<div class="card mt-4">
|
||||
<div class="card-body">
|
||||
<div class="row mb-2">
|
||||
<div class="col-12">
|
||||
<h4 class="card-title">Change Password</h4>
|
||||
<p><small><b>Optional</b>. You can change your password by specifying a new one below. Otherwise leave the fields empty.</small></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputPasswordConfirm">Confirm Password</label>
|
||||
<input type="password" class="form-control" id="inputPasswordConfirm" placeholder="" name="PasswordConfirm" value="">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.passwordValidationDefaults "validationErrors" $.validationErrors "fieldName" "PasswordConfirm" }}
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputPassword">Password</label>
|
||||
<input type="password" class="form-control" id="inputPassword" placeholder="" name="Password" value="">
|
||||
<span class="help-block "><small><a a href="javascript:void(0)" id="btnGeneratePassword"><i class="fas fa-random mr-1"></i>Generate random password </a></small></span>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.passwordValidationDefaults "validationErrors" $.validationErrors "fieldName" "Password" }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputPasswordConfirm">Confirm Password</label>
|
||||
<input type="password" class="form-control" id="inputPasswordConfirm" placeholder="" name="PasswordConfirm" value="">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.passwordValidationDefaults "validationErrors" $.validationErrors "fieldName" "PasswordConfirm" }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<input type="submit" name="action" value="Change Password" class="btn btn-primary btn-sm"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<input id="btnSubmit2" type="submit" name="action" value="Change Password" class="btn btn-primary btn-sm"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
<script>
|
||||
|
@ -9,86 +9,82 @@
|
||||
<!-- a href="/user/update" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="far fa-edit fa-sm text-white-50 mr-1"></i>Edit Details</a -->
|
||||
</div>
|
||||
|
||||
<div class="card shadow">
|
||||
|
||||
<div class="card shadow">
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-dark">User Details</h6>
|
||||
<div class="dropdown no-arrow show">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink" x-placement="bottom-end" style="position: absolute; transform: translate3d(-156px, 19px, 0px); top: 0px; left: 0px; will-change: transform;">
|
||||
<div class="dropdown-header">Actions</div>
|
||||
<a class="dropdown-item" href="/account/update">Update Details</a>
|
||||
<a class="dropdown-item" href="https://gravatar.com" target="_blank">Update Avatar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
||||
<h6 class="m-0 font-weight-bold text-dark">User Details</h6>
|
||||
<div class="dropdown no-arrow show">
|
||||
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink" x-placement="bottom-end" style="position: absolute; transform: translate3d(-156px, 19px, 0px); top: 0px; left: 0px; will-change: transform;">
|
||||
<div class="dropdown-header">Actions</div>
|
||||
<a class="dropdown-item" href="/account/update">Update Details</a>
|
||||
<a class="dropdown-item" href="https://gravatar.com" target="_blank">Update Avatar</a>
|
||||
<div class="card-body">
|
||||
<div class="row mt-2">
|
||||
<div class="col-lg-2 mb-2">
|
||||
<img src="{{ .user.Gravatar.Medium }}" alt="gravatar image" class="rounded">
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<p>
|
||||
<small>Name</small><br/>
|
||||
<b>{{ .user.Name }}</b>
|
||||
</p>
|
||||
<p>
|
||||
<small>Email</small><br/>
|
||||
<b>{{ .user.Email }}</b>
|
||||
</p>
|
||||
{{if .user.Timezone }}
|
||||
<p>
|
||||
<small>Timezone</small><br/>
|
||||
<b>{{.user.Timezone }}</b>
|
||||
</p>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<p>
|
||||
<small>Roles</small><br/>
|
||||
{{ if .userAccount }}
|
||||
<b>
|
||||
{{ range $r := .userAccount.Roles.Options }}{{ if $r.Selected }}
|
||||
{{ if eq $r.Value "admin" }}
|
||||
<span class="text-pink"><i class="far fa-kiss-wink-heart mr-1"></i>{{ $r.Title }}</span>
|
||||
{{else}}
|
||||
<span class="text-purple"><i class="far fa-user-circle mr-1"></i>{{ $r.Title }}</span>
|
||||
{{end}}
|
||||
{{ end }}{{ end }}
|
||||
</b>
|
||||
{{ end }}
|
||||
</p>
|
||||
<p>
|
||||
<small>Status</small><br/>
|
||||
{{ if .userAccount }}
|
||||
<b>
|
||||
{{ if eq .userAccount.Status.Value "active" }}
|
||||
<span class="text-green"><i class="fas fa-circle mr-1"></i>{{ .userAccount.Status.Title }}</span>
|
||||
{{ else if eq .userAccount.Status.Value "invited" }}
|
||||
<span class="text-aqua"><i class="far fa-dot-circle mr-1"></i>{{ .userAccount.Status.Title }}</span>
|
||||
{{else}}
|
||||
<span class="text-orange"><i class="fas fa-circle-notch mr-1"></i>{{.userAccount.Status.Title }}</span>
|
||||
{{end}}
|
||||
</b>
|
||||
{{ end }}
|
||||
</p>
|
||||
<p>
|
||||
<small>ID</small><br/>
|
||||
<b>{{ .user.ID }}</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="row mt-2">
|
||||
<div class="col-lg-2 mb-2">
|
||||
<img src="{{ .user.Gravatar.Medium }}" alt="gravatar image" class="rounded">
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<p>
|
||||
<small>Name</small><br/>
|
||||
<b>{{ .user.Name }}</b>
|
||||
</p>
|
||||
<p>
|
||||
<small>Email</small><br/>
|
||||
<b>{{ .user.Email }}</b>
|
||||
</p>
|
||||
{{if .user.Timezone }}
|
||||
<p>
|
||||
<small>Timezone</small><br/>
|
||||
<b>{{.user.Timezone }}</b>
|
||||
</p>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<p>
|
||||
<small>Roles</small><br/>
|
||||
{{ if .userAccount }}
|
||||
<b>
|
||||
{{ range $r := .userAccount.Roles.Options }}{{ if $r.Selected }}
|
||||
{{ if eq $r.Value "admin" }}
|
||||
<span class="text-pink"><i class="far fa-kiss-wink-heart mr-1"></i>{{ $r.Title }}</span>
|
||||
{{else}}
|
||||
<span class="text-purple"><i class="far fa-user-circle mr-1"></i>{{ $r.Title }}</span>
|
||||
{{end}}
|
||||
{{ end }}{{ end }}
|
||||
</b>
|
||||
{{ end }}
|
||||
</p>
|
||||
<p>
|
||||
<small>Status</small><br/>
|
||||
{{ if .userAccount }}
|
||||
<b>
|
||||
{{ if eq .userAccount.Status.Value "active" }}
|
||||
<span class="text-green"><i class="fas fa-circle mr-1"></i>{{ .userAccount.Status.Title }}</span>
|
||||
{{ else if eq .userAccount.Status.Value "invited" }}
|
||||
<span class="text-aqua"><i class="far fa-dot-circle mr-1"></i>{{ .userAccount.Status.Title }}</span>
|
||||
{{else}}
|
||||
<span class="text-orange"><i class="fas fa-circle-notch mr-1"></i>{{.userAccount.Status.Title }}</span>
|
||||
{{end}}
|
||||
</b>
|
||||
{{ end }}
|
||||
</p>
|
||||
<p>
|
||||
<small>ID</small><br/>
|
||||
<b>{{ .user.ID }}</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{end}}
|
||||
{{define "js"}}
|
||||
|
||||
|
@ -27,12 +27,13 @@
|
||||
|
||||
<form class="user" method="post" novalidate>
|
||||
<div class="form-group">
|
||||
<select class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "User" }}" name="UserID" placeholder="UserID" required>
|
||||
<select name="UserID" placeholder="UserID" required
|
||||
class="form-control form-control-select-box {{ ValidationFieldClass $.validationErrors "User" }}">
|
||||
{{ range $i := $.users }}
|
||||
<option value="{{ $i.ID }}" {{ if eq $.form.UserID $i.ID }}selected="selected"{{ end }}>{{ $i.Name }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "UserID" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "UserID" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<button class="btn btn-primary btn-user btn-block">
|
||||
Login
|
||||
|
@ -36,41 +36,50 @@
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="inputFirstName">First Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "FirstName" }}" placeholder="enter first name" name="FirstName" value="{{ .form.FirstName }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "FirstName" }}
|
||||
<input type="text" id="inputFirstName"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "FirstName" }}"
|
||||
placeholder="enter first name" name="FirstName" value="{{ .form.FirstName }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "FirstName" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputLastName">Last Name</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "LastName" }}" placeholder="enter last name" name="LastName" value="{{ .form.LastName }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "LastName" }}
|
||||
<input type="text" id="inputLastName"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "LastName" }}"
|
||||
placeholder="enter last name" name="LastName" value="{{ .form.LastName }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "LastName" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputEmail">Email</label>
|
||||
<input type="text" class="form-control {{ ValidationFieldClass $.validationErrors "Email" }}" placeholder="enter email" name="Email" value="{{ .form.Email }}" required>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors "fieldName" "Email" }}
|
||||
<input type="text" id="inputEmail"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Email" }}"
|
||||
placeholder="enter email" name="Email" value="{{ .form.Email }}" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "Email" "validationDefaults" $.userValidationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputTimezone">Timezone</label>
|
||||
<select class="form-control {{ ValidationFieldClass $.validationErrors "Timezone" }}" name="Timezone">
|
||||
<label for="selectTimezone">Timezone</label>
|
||||
<select id="selectTimezone" name="Timezone"
|
||||
class="form-control {{ ValidationFieldClass $.validationErrors "Timezone" }}">
|
||||
<option value="">Not set</option>
|
||||
{{ range $idx, $t := .timezones }}
|
||||
<option value="{{ $t }}" {{ if CmpString $t $.form.Timezone }}selected="selected"{{ end }}>{{ $t }}</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Timezone" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Timezone" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputPassword">Password</label>
|
||||
<input type="password" class="form-control" id="inputPassword" placeholder="" name="Password" value="">
|
||||
<input type="password" class="form-control"
|
||||
id="inputPassword" placeholder="" name="Password" value="" required>
|
||||
<span class="help-block "><small><a a href="javascript:void(0)" id="btnGeneratePassword"><i class="fas fa-random mr-1"></i>Generate random password </a></small></span>
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Password" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Password" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputPasswordConfirm">Confirm Password</label>
|
||||
<input type="password" class="form-control" id="inputPasswordConfirm" placeholder="" name="PasswordConfirm" value="">
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "PasswordConfirm" }}
|
||||
<input type="password" class="form-control"
|
||||
id="inputPasswordConfirm" placeholder="" name="PasswordConfirm" value="" required>
|
||||
{{template "invalid-feedback" dict "fieldName" "PasswordConfirm" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -83,7 +92,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -27,7 +27,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="mt-2 mb-0"><a href="javascript:void(0)" class="btn btn-outline-primary btn-sm" id="inviteUser1"><i class="fas fa-user-plus mr-1"></i>Add another invitation</a></p>
|
||||
<p class="mt-2 mb-0">
|
||||
<a href="javascript:void(0)" class="btn btn-outline-primary btn-sm" id="inviteUser1">
|
||||
<i class="fas fa-user-plus mr-1"></i>Add another invitation</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -37,7 +39,6 @@
|
||||
<div class="form-group">
|
||||
<label for="selectRoles">Roles <small>- Select at least one role for invited user(s).</small></label>
|
||||
|
||||
|
||||
{{ range $t := .roles.Options }}
|
||||
<div class="form-check">
|
||||
<input class="form-check-input {{ ValidationFieldClass $.validationErrors "Roles" }}"
|
||||
@ -50,17 +51,15 @@
|
||||
|
||||
</div>
|
||||
{{ end }}
|
||||
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Roles" }}
|
||||
{{template "invalid-feedback" dict "fieldName" "Roles" "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mt-4">
|
||||
<div class="col">
|
||||
<input id="btnSubmit" type="submit" value="Invite Users" class="btn btn-primary"/>
|
||||
@ -89,8 +88,6 @@
|
||||
newHtml = newHtml + '<input type="text" class="form-control invite-user-email" placeholder="enter email" name="Emails" value="">';
|
||||
newHtml = newHtml + '</div>';
|
||||
$('#email-form-groups').append(newHtml);
|
||||
|
||||
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
Loading…
x
Reference in New Issue
Block a user