fix(minor): fix login style and routing for calendar, navbar
This commit is contained in:
parent
4b8d484215
commit
40025e2a70
15 changed files with 140 additions and 127 deletions
|
|
@ -692,7 +692,7 @@ class DatabaseQuery(object):
|
|||
if c:
|
||||
conditions.append(c)
|
||||
|
||||
permision_script_name = get_server_script_map().get("permission_query").get(self.doctype)
|
||||
permision_script_name = get_server_script_map().get("permission_query", {}).get(self.doctype)
|
||||
if permision_script_name:
|
||||
script = frappe.get_doc("Server Script", permision_script_name)
|
||||
condition = script.get_permission_query_conditions(self.user)
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ frappe.patches.v13_0.update_duration_options
|
|||
frappe.patches.v13_0.replace_old_data_import # 2020-06-24
|
||||
frappe.patches.v13_0.create_custom_dashboards_cards_and_charts
|
||||
frappe.patches.v13_0.rename_is_custom_field_in_dashboard_chart
|
||||
frappe.patches.v13_0.add_standard_navbar_items
|
||||
frappe.patches.v13_0.add_standard_navbar_items # 2020-12-15
|
||||
frappe.patches.v13_0.generate_theme_files_in_public_folder
|
||||
frappe.patches.v13_0.increase_password_length
|
||||
frappe.patches.v12_0.fix_email_id_formatting
|
||||
|
|
|
|||
|
|
@ -904,7 +904,6 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
|
|||
let escaped_subject = frappe.utils.escape_html(subject);
|
||||
|
||||
const seen = this.get_seen_class(doc);
|
||||
console.log(this.get_form_link(doc));
|
||||
|
||||
let subject_html = `
|
||||
<input class="level-item list-row-checkbox hidden-xs" type="checkbox"
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ frappe.router = {
|
|||
// /app/user/view/tree = ["Tree", "User"]
|
||||
// /app/user/user-001 = ["Form", "User", "user-001"]
|
||||
// /app/user/user-001 = ["Form", "User", "user-001"]
|
||||
// /app/event/view/calendar/default = ["List", "Event", "Calendar", "Default"]
|
||||
let standard_route = route;
|
||||
let doctype_route = this.routes[route[0]];
|
||||
|
||||
|
|
@ -128,6 +129,10 @@ frappe.router = {
|
|||
standard_route = ['Tree', doctype_route.doctype];
|
||||
} else {
|
||||
standard_route = ['List', doctype_route.doctype, frappe.utils.to_title_case(route[2])];
|
||||
if (route[3]) {
|
||||
// calendar / kanban / dashboard name
|
||||
standard_route.push(route[3]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
standard_route = ['Form', doctype_route.doctype, route[1]];
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ frappe.ui.setup_like_popover = ($parent, selector, check_not_liked=true) => {
|
|||
let liked_by_list = $(`<ul class="list-unstyled"></ul>`);
|
||||
|
||||
// to show social profile of the user
|
||||
let link_base = '#user-profile/';
|
||||
let link_base = '/app/user-profile';
|
||||
|
||||
liked_by.forEach(user => {
|
||||
// append user list item
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ frappe.provide("frappe.views.calendars");
|
|||
frappe.views.CalendarView = class CalendarView extends frappe.views.ListView {
|
||||
static load_last_view() {
|
||||
const route = frappe.get_route();
|
||||
console.log(route);
|
||||
if (route.length === 3) {
|
||||
const doctype = route[1];
|
||||
const user_settings = frappe.get_user_settings(doctype)['Calendar'] || {};
|
||||
|
|
|
|||
86
frappe/public/scss/common/buttons.scss
Normal file
86
frappe/public/scss/common/buttons.scss
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
.center-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border: none;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--btn-shadow);
|
||||
font-size: var(--text-md);
|
||||
&.icon-btn {
|
||||
height: var(--btn-height);
|
||||
padding: 0px;
|
||||
@extend .center-content;
|
||||
&.btn-default, &.btn-secondary {
|
||||
min-width: 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-secondary-dark {
|
||||
@include button-variant(
|
||||
$background: $gray-500,
|
||||
$border: $gray-500,
|
||||
$hover-background: lighten($gray-500, 1%),
|
||||
$hover-border: $gray-500,
|
||||
$active-background: lighten($gray-500, 1%),
|
||||
$active-border: darken($gray-500, 12.5%)
|
||||
);
|
||||
|
||||
color: $white;
|
||||
&:hover, &:active, &:focus {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-primary-light {
|
||||
@include button-variant(
|
||||
$background: $primary-light,
|
||||
$border: $primary-light,
|
||||
$hover-background: lighten($primary-light, 1%),
|
||||
$hover-border: $primary-light,
|
||||
$active-background: lighten($primary-light, 1%),
|
||||
$active-border: darken($primary-light, 12.5%)
|
||||
);
|
||||
|
||||
color: var(--blue-500);
|
||||
&:hover, &:active {
|
||||
color: var(--blue-500);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 0.2rem var(--blue-50)
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-secondary {
|
||||
background-color: var(--control-bg);
|
||||
color: var(--text-color);
|
||||
&:hover, &:active {
|
||||
background-color: var(--gray-300);
|
||||
color: var(--text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-default {
|
||||
background-color: var(--fg-color);
|
||||
color: var(--text-color);
|
||||
&:hover, &:active {
|
||||
background: var(--fg-hover-color);
|
||||
color: var(--text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-primary {
|
||||
background-color: var(--primary-color);
|
||||
white-space: nowrap;
|
||||
--icon-stroke: white;
|
||||
--icon-fill-bg: var(--primary-color);
|
||||
}
|
||||
|
||||
.btn.btn-danger {
|
||||
background-color: var(--red-400);
|
||||
color: $white;
|
||||
}
|
||||
|
|
@ -104,97 +104,10 @@ img {
|
|||
color: var(--gray-500) !important;
|
||||
}
|
||||
|
||||
.center-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.no-underline {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border: none;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--btn-shadow);
|
||||
font-size: var(--text-md);
|
||||
&.icon-btn {
|
||||
height: var(--btn-height);
|
||||
padding: 0px;
|
||||
@extend .center-content;
|
||||
&.btn-default, &.btn-secondary {
|
||||
min-width: 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-secondary-dark {
|
||||
@include button-variant(
|
||||
$background: $gray-500,
|
||||
$border: $gray-500,
|
||||
$hover-background: lighten($gray-500, 1%),
|
||||
$hover-border: $gray-500,
|
||||
$active-background: lighten($gray-500, 1%),
|
||||
$active-border: darken($gray-500, 12.5%)
|
||||
);
|
||||
|
||||
color: $white;
|
||||
&:hover, &:active, &:focus {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-primary-light {
|
||||
@include button-variant(
|
||||
$background: $primary-light,
|
||||
$border: $primary-light,
|
||||
$hover-background: lighten($primary-light, 1%),
|
||||
$hover-border: $primary-light,
|
||||
$active-background: lighten($primary-light, 1%),
|
||||
$active-border: darken($primary-light, 12.5%)
|
||||
);
|
||||
|
||||
color: var(--blue-500);
|
||||
&:hover, &:active {
|
||||
color: var(--blue-500);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 0.2rem var(--blue-50)
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-secondary {
|
||||
background-color: var(--control-bg);
|
||||
color: var(--text-color);
|
||||
&:hover, &:active {
|
||||
background-color: var(--gray-300);
|
||||
color: var(--text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-default {
|
||||
background-color: var(--fg-color);
|
||||
color: var(--text-color);
|
||||
&:hover, &:active {
|
||||
background: var(--fg-hover-color);
|
||||
color: var(--text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-primary {
|
||||
background-color: var(--primary-color);
|
||||
white-space: nowrap;
|
||||
--icon-stroke: white;
|
||||
--icon-fill-bg: var(--primary-color);
|
||||
}
|
||||
|
||||
.btn.btn-danger {
|
||||
background-color: var(--red-400);
|
||||
color: $white;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
color: var(--text-color);
|
||||
margin-bottom: var(--margin-md)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
@import "~bootstrap/scss/bootstrap";
|
||||
@import "global";
|
||||
@import "../common/buttons";
|
||||
@import "../common/flex";
|
||||
@import "form";
|
||||
@import "print_preview";
|
||||
|
|
|
|||
|
|
@ -18,19 +18,20 @@
|
|||
|
||||
@include media-breakpoint-up(sm) {
|
||||
.page-card {
|
||||
padding: 45px;
|
||||
padding-top: 45px;
|
||||
padding-bottom: 45px;
|
||||
background-color: #fff;
|
||||
box-shadow: var(--shadow-base);
|
||||
}
|
||||
}
|
||||
|
||||
.page-card {
|
||||
max-width: 470px;
|
||||
max-width: 400px;
|
||||
margin: 0 auto;
|
||||
border-radius: var(--border-radius-md);
|
||||
|
||||
form {
|
||||
max-width: 330px;
|
||||
max-width: 320px;
|
||||
margin: 0 auto;
|
||||
|
||||
.form-group {
|
||||
|
|
@ -57,7 +58,7 @@
|
|||
color: var(--text-color);
|
||||
font-size: var(--text-base);
|
||||
background-color: var(--control-bg);
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
&.invalid {
|
||||
|
|
@ -155,29 +156,28 @@
|
|||
margin: var(--margin-md) 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-card-head {
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
.page-card-head {
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
font-size: var(--text-xl);
|
||||
font-weight: 600;
|
||||
margin-bottom: 2.5rem;
|
||||
|
||||
img {
|
||||
max-height: 42px;
|
||||
margin-bottom: var(--margin-lg, 30px);
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: var(--text-xl);
|
||||
font-weight: 600;
|
||||
margin-bottom: var(--margin-lg);
|
||||
|
||||
img {
|
||||
max-height: 42px;
|
||||
margin-bottom: var(--margin-lg, 20px);
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: var(--text-xl);
|
||||
color: var(--text-color);
|
||||
}
|
||||
color: var(--text-color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.sign-up-message {
|
||||
margin-top: var(--margin-md);
|
||||
margin-top: 2rem;
|
||||
color: var(--text-light);
|
||||
font-size: var(--text-md);
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
@import './website/index';
|
||||
@import './website/index';
|
||||
|
|
@ -76,7 +76,13 @@
|
|||
}
|
||||
|
||||
.footer-info {
|
||||
margin-top: 1rem;
|
||||
border-top: 1px solid $border-color;
|
||||
color: $text-muted;
|
||||
font-size: $font-size-sm;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: none;
|
||||
font-size: var(--text-md);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
@import 'css_variables';
|
||||
@import '~bootstrap/scss/bootstrap';
|
||||
@import 'base';
|
||||
@import "../common/buttons";
|
||||
@import 'multilevel_dropdown';
|
||||
@import 'website_image';
|
||||
@import 'website_avatar';
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ def add_standard_navbar_items():
|
|||
{
|
||||
'item_label': 'My Profile',
|
||||
'item_type': 'Route',
|
||||
'route': '#user-profile',
|
||||
'route': '/app/user-profile',
|
||||
'is_standard': 1
|
||||
},
|
||||
{
|
||||
|
|
@ -212,7 +212,7 @@ def add_standard_navbar_items():
|
|||
{
|
||||
'item_label': 'Background Jobs',
|
||||
'item_type': 'Route',
|
||||
'route': '#background_jobs',
|
||||
'route': '/app/background_jobs',
|
||||
'is_standard': 1
|
||||
},
|
||||
{
|
||||
|
|
@ -242,6 +242,9 @@ def add_standard_navbar_items():
|
|||
}
|
||||
]
|
||||
|
||||
navbar_settings.settings_dropdown = []
|
||||
navbar_settings.help_dropdown = []
|
||||
|
||||
for item in standard_navbar_items:
|
||||
navbar_settings.append('settings_dropdown', item)
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,13 @@
|
|||
<link type="text/css" rel="stylesheet" href="/assets/css/login.css?ver={{ build_version }}">
|
||||
{% endblock %}
|
||||
|
||||
{% macro logo_section() %}
|
||||
<div class="page-card-head">
|
||||
<img class="app-logo" src="{{ logo }}">
|
||||
<h4>{{ _('Login to {0}').format(app_name or _("Frappe")) }}</h4>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% block page_content %}
|
||||
<!-- {{ for_test }} -->
|
||||
<div>
|
||||
|
|
@ -68,11 +75,8 @@
|
|||
</noscript>
|
||||
<section class='for-login'>
|
||||
<div class="login-content page-card">
|
||||
{{ logo_section() }}
|
||||
<form class="form-signin form-login" role="form">
|
||||
<div class="page-card-head">
|
||||
<img class="app-logo" src="{{ logo }}">
|
||||
<h4>{{ _('Login to {0}').format(app_name or _("Frappe")) }}</h4>
|
||||
</div>
|
||||
{%- if social_login -%}
|
||||
<div class="page-card-body">
|
||||
<div class="social-logins text-center">
|
||||
|
|
@ -107,11 +111,8 @@
|
|||
|
||||
<section class='for-email-login'>
|
||||
<div class="login-content page-card">
|
||||
{{ logo_section() }}
|
||||
<form class="form-signin form-login" role="form">
|
||||
<div class="page-card-head">
|
||||
<img class="app-logo" src="{{ logo }}">
|
||||
<h4>{{ _('Login to {0}').format(app_name or _("Frappe")) }}</h4>
|
||||
</div>
|
||||
{{ email_login_body() }}
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -124,12 +125,9 @@
|
|||
</section>
|
||||
<section class='for-signup {{ "signup-disabled" if disable_signup else "" }}'>
|
||||
<div class="login-content page-card">
|
||||
{{ logo_section() }}
|
||||
{%- if not disable_signup -%}
|
||||
<form class="form-signin form-signup hide" role="form">
|
||||
<div class="page-card-head">
|
||||
<img class="app-logo" src="{{ logo }}">
|
||||
<h4>{{ _('Sign Up') }}</h4>
|
||||
</div>
|
||||
<div class="page-card-body">
|
||||
<div class="form-group">
|
||||
<label class="form-label sr-only" for="signup_fullname">Full Name</label>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue