1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-06-29 00:52:03 +02:00

Merge branch 'issue16/web-app-signup' of gitlab.com:geeks-accelerator/oss/saas-starter-kit into issue16/web-app-signup

This commit is contained in:
Lee Brown
2019-08-05 19:53:32 -08:00
4 changed files with 44 additions and 32 deletions

View File

@ -102,7 +102,11 @@ func (h *Users) Index(ctx context.Context, w http.ResponseWriter, r *http.Reques
case "id": case "id":
v.Value = fmt.Sprintf("%d", q.ID) v.Value = fmt.Sprintf("%d", q.ID)
case "name": case "name":
v.Value = q.Name if strings.TrimSpace(q.Name) == "" {
v.Value = q.Email
} else {
v.Value = q.Name
}
v.Formatted = fmt.Sprintf("<a href='%s'>%s</a>", urlUsersView(q.ID), v.Value) v.Formatted = fmt.Sprintf("<a href='%s'>%s</a>", urlUsersView(q.ID), v.Value)
case "status": case "status":
v.Value = q.Status.String() v.Value = q.Status.String()
@ -112,13 +116,13 @@ func (h *Users) Index(ctx context.Context, w http.ResponseWriter, r *http.Reques
switch q.Status { switch q.Status {
case user_account.UserAccountStatus_Active: case user_account.UserAccountStatus_Active:
subStatusClass = "text-green" subStatusClass = "text-green"
subStatusIcon = "far fa-dot-circle" subStatusIcon = "fas fa-circle"
case user_account.UserAccountStatus_Invited: case user_account.UserAccountStatus_Invited:
subStatusClass = "text-blue" subStatusClass = "text-aqua"
subStatusIcon = "far fa-unicorn" subStatusIcon = "far fa-dot-circle"
case user_account.UserAccountStatus_Disabled: case user_account.UserAccountStatus_Disabled:
subStatusClass = "text-orange" subStatusClass = "text-orange"
subStatusIcon = "far fa-circle" subStatusIcon = "fas fa-circle-notch"
} }
v.Formatted = fmt.Sprintf("<span class='cell-font-status %s'><i class='%s mr-1'></i>%s</span>", subStatusClass, subStatusIcon, web.EnumValueTitle(v.Value)) v.Formatted = fmt.Sprintf("<span class='cell-font-status %s'><i class='%s mr-1'></i>%s</span>", subStatusClass, subStatusIcon, web.EnumValueTitle(v.Value))

View File

@ -15,22 +15,11 @@
<form method="POST"> <form method="POST">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col">
<div class="card">
<div class="card mb-4">
<div class="card-body"> <div class="card-body">
<div class="form-group">
<label for="selectRoles">Roles <small>- Select at least one role for invited user(s).</small></label>
<select class="form-control {{ ValidationFieldClass $.validationErrors "Roles" }}"
id="selectRoles" name="Roles" multiple="multiple">
{{ range $t := .roles }}
<option value="{{ $t.Value }}" {{ if $t.Selected }}selected="selected"{{ end }}>{{ $t.Title }}</option>
{{ end }}
</select>
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Roles" }}
</div>
<div id="email-form-groups"> <div id="email-form-groups">
<div class="form-group"> <div class="form-group">
<label for="inputEmail">Email for Invite 1</label> <label for="inputEmail">Email for Invite 1</label>
@ -41,23 +30,34 @@
<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>
</div> </div>
</div>
<div class="col-md-6">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="form-group"> <div class="form-group">
<label for="selectRoles">Roles</label> <label for="selectRoles">Roles <small>- Select at least one role for invited user(s).</small></label>
<select class="form-control {{ ValidationFieldClass $.validationErrors "Roles" }}"
id="selectRoles" name="Roles" multiple="multiple">
{{ range $t := .roles.Options }} {{ range $t := .roles.Options }}
<option value="{{ $t.Value }}" {{ if $t.Selected }}selected="selected"{{ end }}>{{ $t.Title }}</option> <div class="form-check">
{{ end }} <input class="form-check-input {{ ValidationFieldClass $.validationErrors "Roles" }}"
</select> type="checkbox" name="Roles"
value="{{ $t.Value }}" id="inputRole{{ $t.Value }}"
{{ if $t.Selected }}checked="checked"{{ end }}>
<label class="form-check-label" for="inputRole{{ $t.Value }}">
{{ $t.Title }}
</label>
</div>
{{ end }}
{{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Roles" }} {{template "invalid-feedback" dict "validationDefaults" $.validationDefaults "validationErrors" $.validationErrors "fieldName" "Roles" }}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -7,13 +7,16 @@
<nav aria-label="breadcrumb"> <nav aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/users">Users</a></li> <li class="breadcrumb-item"><a href="/users">Users</a></li>
<li class="breadcrumb-item"><a href="{{ .urlUsersView }}">{{ .user.Name }}</a></li> <li class="breadcrumb-item"><a href="{{ .urlUsersView }}">{{ if eq .userAccount.Status.Value "invited" }}{{ .user.Email }}{{else}}{{ .user.Name }}{{end}}</a></li>
<li class="breadcrumb-item active" aria-current="page">View</li> <li class="breadcrumb-item active" aria-current="page">View</li>
</ol> </ol>
</nav> </nav>
<div class="d-sm-flex align-items-center justify-content-between mb-4"> <div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">{{ .user.Name }}</h1>
<h1 class="h3 mb-0 text-gray-800">
{{ if eq .userAccount.Status.Value "invited" }}{{ .user.Email }}{{else}}{{ .user.Name }}{{end}}
</h1>
{{ if HasRole $._Ctx "admin" }} {{ if HasRole $._Ctx "admin" }}
<!-- 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 --> <!-- 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 -->
{{ end }} {{ end }}
@ -58,7 +61,11 @@
<div class="col-md-5"> <div class="col-md-5">
<p> <p>
<small>Name</small><br/> <small>Name</small><br/>
{{if .user.FirstName }}
<b>{{ .user.Name }}</b> <b>{{ .user.Name }}</b>
{{else}}
<em>Not Set</em>
{{end}}
</p> </p>
<p> <p>
<small>Email</small><br/> <small>Email</small><br/>

View File

@ -3,10 +3,11 @@ package user_account
import ( import (
"context" "context"
"database/sql/driver" "database/sql/driver"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web" "strings"
"time" "time"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/auth" "geeks-accelerator/oss/saas-starter-kit/internal/platform/auth"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
"github.com/lib/pq" "github.com/lib/pq"
"github.com/pkg/errors" "github.com/pkg/errors"
"gopkg.in/go-playground/validator.v9" "gopkg.in/go-playground/validator.v9"
@ -341,7 +342,7 @@ func (m *User) Response(ctx context.Context) *UserResponse {
r.Timezone = *m.Timezone r.Timezone = *m.Timezone
} }
if r.Name == "" { if strings.TrimSpace(r.Name) == "" {
r.Name = r.Email r.Name = r.Email
} }