diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index 17f97b3e1a..9126a0c340 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -6,6 +6,7 @@ "engine": "InnoDB", "field_order": [ "localization", + "app_name", "country", "language", "column_break_3", @@ -460,12 +461,25 @@ "fieldname": "prepared_report_section", "fieldtype": "Section Break", "label": "Prepared Report" + }, + { + "default": "Frappe", + "fieldname": "app_name", + "fieldtype": "Data", + "label": "App Name" + }, + { + "default": "3", + "description": "Hourly rate limit for generating password reset links", + "fieldname": "password_reset_limit", + "fieldtype": "Int", + "label": "Password Reset Link Generation Limit" } ], "icon": "fa fa-cog", "issingle": 1, "links": [], - "modified": "2020-08-12 14:35:45.214327", + "modified": "2020-09-30 14:38:58.886100", "modified_by": "Administrator", "module": "Core", "name": "System Settings", diff --git a/frappe/core/page/background_jobs/background_jobs.js b/frappe/core/page/background_jobs/background_jobs.js index bbc8bf049b..789784d5aa 100644 --- a/frappe/core/page/background_jobs/background_jobs.js +++ b/frappe/core/page/background_jobs/background_jobs.js @@ -1,45 +1,63 @@ -frappe.pages['background_jobs'].on_page_load = function(wrapper) { - var page = frappe.ui.make_app_page({ - parent: wrapper, - title: __('Background Jobs'), - single_column: true +frappe.pages["background_jobs"].on_page_load = (wrapper) => { + background_job = new BackgroundJobs(wrapper); + + $(wrapper).bind('show', () => { + background_job.show(); }); - $(frappe.render_template('background_jobs_outer')).appendTo(page.body); - page.content = $(page.body).find('.table-area'); + window.background_jobs = background_job; +}; - frappe.pages.background_jobs.page = page; -} +class BackgroundJobs { + constructor(wrapper) { + this.page = frappe.ui.make_app_page({ + parent: wrapper, + title: __('Background Jobs'), + single_column: true + }); -frappe.pages['background_jobs'].on_page_show = function(wrapper) { - frappe.pages.background_jobs.refresh_jobs(); - frappe.call({ - method: 'frappe.core.page.background_jobs.background_jobs.get_scheduler_status', - callback: function(r) { - frappe.pages.background_jobs.page.set_indicator(...r.message); - } - }); -} + this.called = false; + this.show_failed = false; -frappe.pages.background_jobs.refresh_jobs = function() { - var page = frappe.pages.background_jobs.page; + this.show_failed_button = this.page.add_inner_button(__("Show Failed Jobs"), () => { + this.show_failed = !this.show_failed + this.show_failed_button && this.show_failed_button.text( + this.show_failed ? __("Hide Failed Jobs") : __("Show Failed Jobs") + ) + }); - // don't call if already waiting for a response - if(page.called) return; - page.called = true; - frappe.call({ - method: 'frappe.core.page.background_jobs.background_jobs.get_info', - args: { - show_failed: page.body.find('.show-failed').prop('checked') ? 1 : 0 - }, - callback: function(r) { - page.called = false; - page.body.find('.list-jobs').remove(); - $(frappe.render_template('background_jobs', {jobs:r.message || []})).appendTo(page.content); + $(frappe.render_template('background_jobs_outer')).appendTo(this.page.body); + this.content = $(this.page.body).find('.table-area'); + } - if(frappe.get_route()[0]==='background_jobs') { - frappe.background_jobs_timeout = setTimeout(frappe.pages.background_jobs.refresh_jobs, 2000); + show() { + this.refresh_jobs(); + frappe.call({ + method: 'frappe.core.page.background_jobs.background_jobs.get_scheduler_status', + callback: res => { + this.page.set_indicator(...res.message); } - } - }); -} + }); + } + + refresh_jobs() { + if (this.called) return; + this.called = true; + + frappe.call({ + method: 'frappe.core.page.background_jobs.background_jobs.get_info', + args: { + show_failed: this.show_failed + }, + callback: (res) => { + this.called = false; + this.page.body.find('.list-jobs').remove(); + $(frappe.render_template('background_jobs', { jobs: res.message || [] })).appendTo(this.content); + + if (frappe.get_route()[0] === 'background_jobs') { + setTimeout(() => this.refresh_jobs(), 2000); + } + } + }); + } +} \ No newline at end of file diff --git a/frappe/core/page/background_jobs/background_jobs_outer.html b/frappe/core/page/background_jobs/background_jobs_outer.html index 4da4498304..4ca3a32906 100644 --- a/frappe/core/page/background_jobs/background_jobs_outer.html +++ b/frappe/core/page/background_jobs/background_jobs_outer.html @@ -1,11 +1,4 @@ -
-

-

- -
-

+
diff --git a/frappe/desk/page/backups/backups.css b/frappe/desk/page/backups/backups.css new file mode 100644 index 0000000000..044b0b53d0 --- /dev/null +++ b/frappe/desk/page/backups/backups.css @@ -0,0 +1,9 @@ +.download-backup-card { + display: block; + text-decoration: none; +} + +.download-backup-card:hover { + box-shadow: var(--shadow-md); + text-decoration: none; +} diff --git a/frappe/desk/page/backups/backups.html b/frappe/desk/page/backups/backups.html index 0056b6814b..2563e8b62c 100644 --- a/frappe/desk/page/backups/backups.html +++ b/frappe/desk/page/backups/backups.html @@ -1,32 +1,20 @@ - - - - - - - - - - - {% for f in files %} - - - - - - {% endfor %} - -
- {{ _("Date") }} - - {{ _("File") }} - - {{ _("Size") }} -
- {{ f[1] }} - - {{ f[0] }} - - {{ f[2] }} -
+
+ {% for f in files %} + + {% endfor %} +
\ No newline at end of file diff --git a/frappe/desk/page/backups/backups.py b/frappe/desk/page/backups/backups.py index 386af70a4e..eaa0c65143 100644 --- a/frappe/desk/page/backups/backups.py +++ b/frappe/desk/page/backups/backups.py @@ -9,7 +9,7 @@ import datetime def get_context(context): def get_time(path): dt = os.path.getmtime(path) - return convert_utc_to_user_timezone(datetime.datetime.utcfromtimestamp(dt)).strftime('%Y-%m-%d %H:%M') + return convert_utc_to_user_timezone(datetime.datetime.utcfromtimestamp(dt)).strftime('%a %b %d %H:%M %Y') def get_size(path): size = os.path.getsize(path) diff --git a/frappe/integrations/doctype/social_login_key/social_login_key.json b/frappe/integrations/doctype/social_login_key/social_login_key.json index 33c8ca873d..bb97d8f625 100644 --- a/frappe/integrations/doctype/social_login_key/social_login_key.json +++ b/frappe/integrations/doctype/social_login_key/social_login_key.json @@ -83,7 +83,7 @@ "label": "Identity Details" }, { - "depends_on": "eval:!['Facebook', 'Frappe', 'Github', 'Google', 'Office 365'].includes(doc.social_login_provider)", + "depends_on": "eval:doc.social_login_provider==\"Custom\"", "fieldname": "icon", "fieldtype": "Data", "label": "Icon" @@ -161,7 +161,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2020-09-30 13:40:57.597276", + "modified": "2020-09-30 14:37:13.616002", "modified_by": "Administrator", "module": "Integrations", "name": "Social Login Key", diff --git a/frappe/integrations/doctype/social_login_key/social_login_key.py b/frappe/integrations/doctype/social_login_key/social_login_key.py index 92d245bffb..1092c3240e 100644 --- a/frappe/integrations/doctype/social_login_key/social_login_key.py +++ b/frappe/integrations/doctype/social_login_key/social_login_key.py @@ -40,7 +40,9 @@ class SocialLoginKey(Document): "Frappe": "frappe.svg", "Facebook": "facebook.svg", "Office 365": "office_365.svg", - "GitHub": "github.svg" + "GitHub": "github.svg", + "Salesforce": "salesforce.svg", + "fairlogin": "fair.svg" } if self.provider_name in icon_map: diff --git a/frappe/public/icons/social/fair.svg b/frappe/public/icons/social/fair.svg new file mode 100644 index 0000000000..a56fa68cc8 --- /dev/null +++ b/frappe/public/icons/social/fair.svg @@ -0,0 +1,11 @@ + + + + Artboard + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/frappe/public/icons/social/frappe.svg b/frappe/public/icons/social/frappe.svg index 533f3ba759..9fcb3c8242 100644 --- a/frappe/public/icons/social/frappe.svg +++ b/frappe/public/icons/social/frappe.svg @@ -1,4 +1,12 @@ - - - - + + + + Artboard + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/frappe/public/icons/social/office365.svg b/frappe/public/icons/social/office365.svg deleted file mode 100644 index aecaa0f618..0000000000 --- a/frappe/public/icons/social/office365.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - office365 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/frappe/public/icons/social/office_365.svg b/frappe/public/icons/social/office_365.svg new file mode 100644 index 0000000000..d93167741d --- /dev/null +++ b/frappe/public/icons/social/office_365.svg @@ -0,0 +1,53 @@ + + + + Artboard + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frappe/public/icons/social/salesforce.svg b/frappe/public/icons/social/salesforce.svg new file mode 100644 index 0000000000..5ebec613aa --- /dev/null +++ b/frappe/public/icons/social/salesforce.svg @@ -0,0 +1,11 @@ + + + + Artboard + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/frappe/public/scss/website/login.scss b/frappe/public/scss/website/login.scss index 75b7d75371..dc2b6ac642 100644 --- a/frappe/public/scss/website/login.scss +++ b/frappe/public/scss/website/login.scss @@ -34,15 +34,35 @@ font-size: var(--text-md); .social-login-buttons { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-left: -4px; + margin-right: -4px; margin-top: var(--margin-md); - display: grid; - grid-template-columns: 1fr 1fr 1fr; - grid-gap: var(--padding-sm); - } - .btn-social { - box-shadow: none; - .provider-icon { - margin-right: var(--padding-xs); + + .login-button-wrapper { + @include media-breakpoint-up(md) { + min-width: 33.33%; + } + min-width: 50%; + padding: 0 4px; + margin-top: var(--margin-sm); + } + + .btn-social { + font-size: var(--text-sm); + box-shadow: none; + + &.btn-salesforce { + i { + color: var(--blue-400); + } + } + + .provider-icon { + margin-right: var(--padding-xs); + } } } } diff --git a/frappe/www/login.html b/frappe/www/login.html index 47219b6dc3..096db51b99 100644 --- a/frappe/www/login.html +++ b/frappe/www/login.html @@ -15,7 +15,7 @@