diff --git a/babel_extractors.csv b/babel_extractors.csv index ff8faafaff..7f2103c4d4 100644 --- a/babel_extractors.csv +++ b/babel_extractors.csv @@ -7,5 +7,6 @@ hooks.py,frappe.gettext.extractors.navbar.extract **.py,frappe.gettext.extractors.python.extract **.js,frappe.gettext.extractors.javascript.extract **.html,frappe.gettext.extractors.html_template.extract +**.vue,frappe.gettext.extractors.html_template.extract **/custom/*.json,frappe.gettext.extractors.customization.extract **/fixtures/custom_field.json,frappe.gettext.extractors.custom_field.extract \ No newline at end of file diff --git a/frappe/core/doctype/docfield/docfield.json b/frappe/core/doctype/docfield/docfield.json index 4943f7a94c..f2d0eee7a1 100644 --- a/frappe/core/doctype/docfield/docfield.json +++ b/frappe/core/doctype/docfield/docfield.json @@ -32,6 +32,7 @@ "fetch_if_empty", "visibility_section", "hidden", + "show_on_timeline", "bold", "allow_in_quick_entry", "translatable", @@ -578,13 +579,20 @@ "fieldname": "not_nullable", "fieldtype": "Check", "label": "Not Nullable" + }, + { + "default": "0", + "depends_on": "eval: doc.hidden", + "fieldname": "show_on_timeline", + "fieldtype": "Check", + "label": "Show on Timeline" } ], "idx": 1, "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2024-04-12 16:27:34.546314", + "modified": "2024-07-30 13:15:32.037892", "modified_by": "Administrator", "module": "Core", "name": "DocField", @@ -594,4 +602,4 @@ "sort_field": "creation", "sort_order": "ASC", "states": [] -} +} \ No newline at end of file diff --git a/frappe/core/doctype/docfield/docfield.py b/frappe/core/doctype/docfield/docfield.py index ed663c3bba..4dc397d5b5 100644 --- a/frappe/core/doctype/docfield/docfield.py +++ b/frappe/core/doctype/docfield/docfield.py @@ -112,6 +112,7 @@ class DocField(Document): search_index: DF.Check set_only_once: DF.Check show_dashboard: DF.Check + show_on_timeline: DF.Check sort_options: DF.Check translatable: DF.Check unique: DF.Check diff --git a/frappe/core/doctype/user/user.json b/frappe/core/doctype/user/user.json index 1cdf6c2397..4e326bbc25 100644 --- a/frappe/core/doctype/user/user.json +++ b/frappe/core/doctype/user/user.json @@ -237,7 +237,8 @@ "options": "Has Role", "permlevel": 1, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "show_on_timeline": 1 }, { "collapsible": 1, @@ -428,7 +429,8 @@ "hidden": 1, "label": "Block Modules", "options": "Block Module", - "permlevel": 1 + "permlevel": 1, + "show_on_timeline": 1 }, { "fieldname": "home_settings", @@ -796,7 +798,7 @@ "link_fieldname": "user" } ], - "modified": "2024-04-12 23:25:04.628007", + "modified": "2024-07-15 18:40:18.842915", "modified_by": "Administrator", "module": "Core", "name": "User", diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index bc339432ec..225175e417 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -362,7 +362,11 @@ class User(Document): user=self.name, pwd=new_password, logout_all_sessions=self.logout_all_sessions ) - if not self.flags.no_welcome_mail and cint(self.send_welcome_email): + if ( + not self.flags.no_welcome_mail + and cint(self.send_welcome_email) + and not self.flags.email_sent + ): self.send_welcome_mail_to_user() self.flags.email_sent = 1 if frappe.session.user != "Guest": diff --git a/frappe/desk/doctype/notification_log/notification_log.json b/frappe/desk/doctype/notification_log/notification_log.json index 49b16266b4..c3b3c09d92 100644 --- a/frappe/desk/doctype/notification_log/notification_log.json +++ b/frappe/desk/doctype/notification_log/notification_log.json @@ -40,7 +40,7 @@ "in_list_view": 1, "in_standard_filter": 1, "label": "Type", - "options": "Mention\nEnergy Point\nAssignment\nShare\nAlert" + "options": "\nMention\nEnergy Point\nAssignment\nShare\nAlert" }, { "fieldname": "email_content", @@ -103,7 +103,7 @@ "hide_toolbar": 1, "in_create": 1, "links": [], - "modified": "2024-03-23 16:03:31.715461", + "modified": "2024-08-03 09:38:10.497711", "modified_by": "Administrator", "module": "Desk", "name": "Notification Log", diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index 8793559611..499e4e27cd 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -28,7 +28,7 @@ class NotificationLog(Document): link: DF.Data | None read: DF.Check subject: DF.Text | None - type: DF.Literal["Mention", "Energy Point", "Assignment", "Share", "Alert"] + type: DF.Literal["", "Mention", "Energy Point", "Assignment", "Share", "Alert"] # end: auto-generated types def after_insert(self): diff --git a/frappe/desk/doctype/notification_settings/notification_settings.py b/frappe/desk/doctype/notification_settings/notification_settings.py index 41a6991d6f..691c03588d 100644 --- a/frappe/desk/doctype/notification_settings/notification_settings.py +++ b/frappe/desk/doctype/notification_settings/notification_settings.py @@ -59,9 +59,10 @@ def is_email_notifications_enabled_for_type(user, notification_type): return False fieldname = "enable_email_" + frappe.scrub(notification_type) - enabled = frappe.db.get_value("Notification Settings", user, fieldname) + enabled = frappe.db.get_value("Notification Settings", user, fieldname, ignore=True) if enabled is None: return True + return enabled diff --git a/frappe/email/doctype/email_queue/email_queue.py b/frappe/email/doctype/email_queue/email_queue.py index dbf4ba68ad..8f02a6e5f2 100644 --- a/frappe/email/doctype/email_queue/email_queue.py +++ b/frappe/email/doctype/email_queue/email_queue.py @@ -171,11 +171,18 @@ class EmailQueue(Document): method(self, self.sender, recipient.recipient, message) elif not frappe.flags.in_test or frappe.flags.testing_email: if ctx.email_account_doc.service == "Frappe Mail": - ctx.frappe_mail_client.send_raw( - sender=self.sender, - recipients=recipient.recipient, - message=message.decode("utf-8"), - ) + if self.reference_doctype == "Newsletter": + ctx.frappe_mail_client.send_newsletter( + sender=self.sender, + recipients=recipient.recipient, + message=message.decode("utf-8"), + ) + else: + ctx.frappe_mail_client.send_raw( + sender=self.sender, + recipients=recipient.recipient, + message=message.decode("utf-8"), + ) else: ctx.smtp_server.session.sendmail( from_addr=self.sender, @@ -780,7 +787,8 @@ class QueueBuilder: with suppress(Exception): q.send(smtp_server_instance=smtp_server_instance, frappe_mail_client=frappe_mail_client) - smtp_server_instance.quit() + if smtp_server_instance: + smtp_server_instance.quit() def as_dict(self, include_recipients=True): email_account = self.get_outgoing_email_account() diff --git a/frappe/email/frappemail.py b/frappe/email/frappemail.py index e9d792aae6..a4bcf9b5c2 100644 --- a/frappe/email/frappemail.py +++ b/frappe/email/frappemail.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import TYPE_CHECKING +from typing import Any from urllib.parse import urljoin import pytz @@ -9,9 +9,6 @@ from frappe import _ from frappe.frappeclient import FrappeClient, FrappeOAuth2Client from frappe.utils import convert_utc_to_system_timezone, get_datetime, get_datetime_str, get_system_timezone -if TYPE_CHECKING: - from requests import Response - class FrappeMail: """Class to interact with the Frappe Mail API.""" @@ -29,6 +26,9 @@ class FrappeMail: self.api_key = api_key self.api_secret = api_secret self.access_token = access_token + self.client = self.get_client( + self.site, self.mailbox, self.api_key, self.api_secret, self.access_token + ) @staticmethod def get_client( @@ -65,64 +65,51 @@ class FrappeMail: headers: dict[str, str] | None = None, timeout: int | tuple[int, int] = (60, 120), raise_exception: bool = True, - ) -> "Response": - """Makes a HTTP request to the Frappe Mail API.""" + ) -> Any | None: + """Makes a request to the Frappe Mail API.""" - url = urljoin(self.site, endpoint) - client = self.get_client(self.site, self.mailbox, self.api_key, self.api_secret, self.access_token) + url = urljoin(self.client.url, endpoint) headers = headers or {} - headers.update(client.headers) + headers.update(self.client.headers) - response = client.session.request( + response = self.client.session.request( method=method, url=url, params=params, data=data, json=json, headers=headers, timeout=timeout ) - if not response.ok and raise_exception: - error_msg = response.text - if response.status_code == 401: - if self.access_token: - error_msg = _("Authentication Error: Reauthorize OAuth for Email Account {0}.").format( - frappe.bold(self.mailbox) - ) - else: - error_msg = _("Authentication Error: Invalid API Key or Secret") - - frappe.throw(title=_("Frappe Mail"), msg=error_msg) - - return response + return self.client.post_process(response) def validate(self, for_outbound: bool = False, for_inbound: bool = False) -> None: """Validates the mailbox for inbound and outbound emails.""" - endpoint = "auth/validate" + endpoint = "/api/method/mail.api.auth.validate" data = {"mailbox": self.mailbox, "for_outbound": for_outbound, "for_inbound": for_inbound} - response = self.request("POST", endpoint=endpoint, data=data, raise_exception=False) + self.request("POST", endpoint=endpoint, data=data) - if not response.ok: - if error_msg := response.json().get("exception"): - if error_msg == "frappe.exceptions.AuthenticationError": - error_msg += ": Invalid API Key or Secret" - - frappe.throw(title="Frappe Mail", msg=error_msg) - - def send_raw(self, sender: str, recipients: str, message: str) -> None: + def send_raw(self, sender: str, recipients: str | list, message: str) -> None: """Sends an email using the Frappe Mail API.""" - endpoint = "outbound/send-raw" - json_data = {"from": sender, "to": recipients, "raw_message": message} - self.request("POST", endpoint=endpoint, json=json_data) + endpoint = "/api/method/mail.api.outbound.send_raw" + data = {"from_": sender, "to": recipients, "raw_message": message} + self.request("POST", endpoint=endpoint, data=data) + + def send_newsletter(self, sender: str, recipients: str | list, message: str) -> None: + """Sends an newsletter using the Frappe Mail API.""" + + endpoint = "/api/method/mail.api.outbound.send_newsletter" + data = {"from_": sender, "to": recipients, "raw_message": message} + self.request("POST", endpoint=endpoint, json=data) def pull_raw(self, limit: int = 50, last_synced_at: str | None = None) -> dict[str, list[str] | str]: """Pulls emails from the mailbox using the Frappe Mail API.""" - endpoint = "inbound/pull-raw" + endpoint = "/api/method/mail.api.inbound.pull_raw" if last_synced_at: last_synced_at = convert_to_utc(last_synced_at) data = {"mailbox": self.mailbox, "limit": limit, "last_synced_at": last_synced_at} headers = {"X-Site": frappe.utils.get_url()} - response = self.request("GET", endpoint=endpoint, data=data, headers=headers).json()["message"] + response = self.request("GET", endpoint=endpoint, data=data, headers=headers) last_synced_at = convert_utc_to_system_timezone(get_datetime(response["last_synced_at"])) return {"latest_messages": response["mails"], "last_synced_at": last_synced_at} diff --git a/frappe/gettext/extractors/workspace.py b/frappe/gettext/extractors/workspace.py index 76ca108df4..4c58c373be 100644 --- a/frappe/gettext/extractors/workspace.py +++ b/frappe/gettext/extractors/workspace.py @@ -29,8 +29,8 @@ def extract(fileobj, *args, **kwargs): yield from ( ( None, - "pgettext", - (link.get("link_to") if link.get("link_type") == "DocType" else None, link.get("label")), + "_", + link.get("label"), [f"Label of a {link.get('type')} in the {workspace_name} Workspace"], ) for link in data.get("links", []) @@ -38,8 +38,8 @@ def extract(fileobj, *args, **kwargs): yield from ( ( None, - "pgettext", - (link.get("link_to") if link.get("link_type") == "DocType" else None, link.get("description")), + "_", + link.get("description"), [f"Description of a {link.get('type')} in the {workspace_name} Workspace"], ) for link in data.get("links", []) @@ -47,8 +47,8 @@ def extract(fileobj, *args, **kwargs): yield from ( ( None, - "pgettext", - (shortcut.get("link_to") if shortcut.get("type") == "DocType" else None, shortcut.get("label")), + "_", + shortcut.get("label"), [f"Label of a shortcut in the {workspace_name} Workspace"], ) for shortcut in data.get("shortcuts", []) @@ -56,8 +56,8 @@ def extract(fileobj, *args, **kwargs): yield from ( ( None, - "pgettext", - (shortcut.get("link_to") if shortcut.get("type") == "DocType" else None, shortcut.get("format")), + "_", + shortcut.get("format"), [f"Count format of shortcut in the {workspace_name} Workspace"], ) for shortcut in data.get("shortcuts", []) diff --git a/frappe/gettext/translate.py b/frappe/gettext/translate.py index bf5b60f0b8..3e43e55f7a 100644 --- a/frappe/gettext/translate.py +++ b/frappe/gettext/translate.py @@ -218,7 +218,7 @@ def update_po(target_app: str | None = None, locale: str | None = None): pot_catalog = get_catalog(app) for locale in locales: po_catalog = get_catalog(app, locale) - po_catalog.update(pot_catalog) + po_catalog.update(pot_catalog, no_fuzzy_matching=True) po_path = write_catalog(app, po_catalog, locale) print(f"PO file modified at {po_path}") diff --git a/frappe/locale/main.pot b/frappe/locale/main.pot index 1ba70391ab..4836eaadcd 100644 --- a/frappe/locale/main.pot +++ b/frappe/locale/main.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Frappe Framework VERSION\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2024-07-21 09:33+0000\n" -"PO-Revision-Date: 2024-07-21 09:33+0000\n" +"POT-Creation-Date: 2024-08-04 09:33+0000\n" +"PO-Revision-Date: 2024-08-04 09:33+0000\n" "Last-Translator: developers@frappe.io\n" "Language-Team: developers@frappe.io\n" "MIME-Version: 1.0\n" @@ -167,6 +167,10 @@ msgstr "" msgid "1 month ago" msgstr "" +#: public/js/print_format_builder/PrintFormat.vue:3 +msgid "1 of 2" +msgstr "" + #: public/js/frappe/data_import/data_exporter.js:227 msgid "1 record will be exported" msgstr "" @@ -745,13 +749,9 @@ msgid "About Us" msgstr "" #. Name of a DocType -#: website/doctype/about_us_settings/about_us_settings.json -msgid "About Us Settings" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/about_us_settings/about_us_settings.json #: website/workspace/website/website.json -msgctxt "About Us Settings" msgid "About Us Settings" msgstr "" @@ -784,13 +784,8 @@ msgid "Access Key Secret" msgstr "" #. Name of a DocType -#: core/doctype/access_log/access_log.json -msgid "Access Log" -msgstr "" - #. Label of a Link in the Users Workspace -#: core/workspace/users/users.json -msgctxt "Access Log" +#: core/doctype/access_log/access_log.json core/workspace/users/users.json msgid "Access Log" msgstr "" @@ -963,14 +958,10 @@ msgid "Activity" msgstr "" #. Name of a DocType -#: core/doctype/activity_log/activity_log.json -msgid "Activity Log" -msgstr "" - #. Label of a Link in the Build Workspace #. Label of a Link in the Users Workspace -#: core/workspace/build/build.json core/workspace/users/users.json -msgctxt "Activity Log" +#: core/doctype/activity_log/activity_log.json core/workspace/build/build.json +#: core/workspace/users/users.json msgid "Activity Log" msgstr "" @@ -979,7 +970,7 @@ msgstr "" #: public/js/frappe/form/grid_row.js:471 #: public/js/frappe/form/sidebar/assign_to.js:100 #: public/js/frappe/form/templates/set_sharing.html:68 -#: public/js/frappe/list/bulk_operations.js:407 +#: public/js/frappe/list/bulk_operations.js:437 #: public/js/frappe/views/dashboard/dashboard_view.js:440 #: public/js/frappe/views/reports/query_report.js:266 #: public/js/frappe/views/reports/query_report.js:294 @@ -1041,6 +1032,7 @@ msgstr "" #: public/js/frappe/views/reports/query_report.js:1684 #: public/js/frappe/views/reports/report_view.js:324 #: public/js/frappe/views/reports/report_view.js:349 +#: public/js/print_format_builder/Field.vue:112 msgid "Add Column" msgstr "" @@ -1102,7 +1094,7 @@ msgstr "" msgid "Add Review" msgstr "" -#: core/doctype/user/user.py:772 +#: core/doctype/user/user.py:776 msgid "Add Roles" msgstr "" @@ -1131,7 +1123,7 @@ msgstr "" msgid "Add Subscribers" msgstr "" -#: public/js/frappe/list/bulk_operations.js:395 +#: public/js/frappe/list/bulk_operations.js:425 msgid "Add Tags" msgstr "" @@ -1181,6 +1173,7 @@ msgid "Add a comment" msgstr "" #: printing/page/print_format_builder/print_format_builder_layout.html:28 +#: public/js/form_builder/components/Tabs.vue:192 msgid "Add a new section" msgstr "" @@ -1204,10 +1197,42 @@ msgstr "" msgid "Add a {0} Chart" msgstr "" +#: public/js/form_builder/components/Section.vue:271 +#: public/js/print_format_builder/PrintFormatSection.vue:115 +msgid "Add column" +msgstr "" + +#: public/js/form_builder/components/AddFieldButton.vue:9 +#: public/js/form_builder/components/AddFieldButton.vue:48 +msgid "Add field" +msgstr "" + +#: public/js/form_builder/components/Sidebar.vue:49 +#: public/js/form_builder/components/Tabs.vue:153 +msgid "Add new tab" +msgstr "" + +#: public/js/print_format_builder/PrintFormatSection.vue:125 +msgid "Add page break" +msgstr "" + #: custom/doctype/client_script/client_script.js:16 msgid "Add script for Child Table" msgstr "" +#: public/js/print_format_builder/PrintFormatSection.vue:111 +msgid "Add section above" +msgstr "" + +#: public/js/form_builder/components/Section.vue:265 +msgid "Add section below" +msgstr "" + +#: public/js/form_builder/components/Sidebar.vue:52 +#: public/js/form_builder/components/Tabs.vue:157 +msgid "Add tab" +msgstr "" + #: public/js/frappe/utils/dashboard_utils.js:263 #: public/js/frappe/views/reports/query_report.js:252 msgid "Add to Dashboard" @@ -1356,11 +1381,11 @@ msgstr "" msgid "Administrator" msgstr "" -#: core/doctype/user/user.py:1176 +#: core/doctype/user/user.py:1180 msgid "Administrator Logged In" msgstr "" -#: core/doctype/user/user.py:1170 +#: core/doctype/user/user.py:1174 msgid "Administrator accessed {0} on {1} via IP Address {2}." msgstr "" @@ -1445,7 +1470,7 @@ msgstr "" msgid "Aggregate Function Based On" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:399 +#: desk/doctype/dashboard_chart/dashboard_chart.py:409 msgid "Aggregate Function field is required to create a dashboard chart" msgstr "" @@ -1838,7 +1863,7 @@ msgstr "" msgid "Allowing DocType, DocType. Be careful!" msgstr "" -#: core/doctype/user/user.py:979 +#: core/doctype/user/user.py:983 msgid "Already Registered" msgstr "" @@ -2074,7 +2099,7 @@ msgstr "" msgid "Append To" msgstr "" -#: email/doctype/email_account/email_account.py:195 +#: email/doctype/email_account/email_account.py:196 msgid "Append To can be one of {0}" msgstr "" @@ -2115,6 +2140,10 @@ msgstr "" msgid "Applied On" msgstr "" +#: public/js/form_builder/components/Field.vue:103 +msgid "Apply" +msgstr "" + #: public/js/frappe/list/list_view.js:1942 msgctxt "Button in list view actions menu" msgid "Apply Assignment Rule" @@ -2217,7 +2246,7 @@ msgstr "" msgid "Are you sure you want to delete all rows?" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:899 +#: public/js/frappe/views/workspace/workspace.js:926 msgid "Are you sure you want to delete page {0}?" msgstr "" @@ -2225,6 +2254,21 @@ msgstr "" msgid "Are you sure you want to delete the attachment?" msgstr "" +#: public/js/form_builder/components/Section.vue:197 +msgctxt "Confirmation dialog message" +msgid "Are you sure you want to delete the column? All the fields in the column will be moved to the previous column." +msgstr "" + +#: public/js/form_builder/components/Section.vue:126 +msgctxt "Confirmation dialog message" +msgid "Are you sure you want to delete the section? All the columns along with fields in the section will be moved to the previous section." +msgstr "" + +#: public/js/form_builder/components/Tabs.vue:65 +msgctxt "Confirmation dialog message" +msgid "Are you sure you want to delete the tab? All the sections along with fields in the tab will be moved to the previous tab." +msgstr "" + #: public/js/frappe/web_form/web_form.js:185 msgid "Are you sure you want to discard the changes?" msgstr "" @@ -2391,16 +2435,11 @@ msgid "Assignment Days" msgstr "" #. Name of a DocType -#. Label of the assignment_rule (Link) field in DocType 'ToDo' -#: automation/doctype/assignment_rule/assignment_rule.json -#: desk/doctype/todo/todo.json -msgid "Assignment Rule" -msgstr "" - #. Label of a Link in the Tools Workspace #. Label of a shortcut in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Assignment Rule" +#. Label of the assignment_rule (Link) field in DocType 'ToDo' +#: automation/doctype/assignment_rule/assignment_rule.json +#: automation/workspace/tools/tools.json desk/doctype/todo/todo.json msgid "Assignment Rule" msgstr "" @@ -2462,6 +2501,7 @@ msgstr "" #: core/doctype/docfield/docfield.json #: custom/doctype/custom_field/custom_field.json #: custom/doctype/customize_form_field/customize_form_field.json +#: public/js/form_builder/components/controls/AttachControl.vue:15 #: public/js/frappe/form/controls/attach.js:5 #: website/doctype/web_form_field/web_form_field.json msgid "Attach" @@ -2494,6 +2534,10 @@ msgstr "" msgid "Attach Print" msgstr "" +#: public/js/frappe/file_uploader/WebLink.vue:10 +msgid "Attach a web link" +msgstr "" + #: website/doctype/website_slideshow/website_slideshow.js:8 msgid "Attach files / urls and add in table." msgstr "" @@ -2597,6 +2641,11 @@ msgstr "" msgid "Auth URL Data" msgstr "" +#. Label of the backend_app_flow (Check) field in DocType 'Email Account' +#: email/doctype/email_account/email_account.json +msgid "Authenticate as Service Principal" +msgstr "" + #. Label of the authentication_column (Section Break) field in DocType 'Email #. Account' #. Label of the authentication_credential_section (Section Break) field in @@ -2612,15 +2661,7 @@ msgstr "" msgid "Authentication Apps you can use are: " msgstr "" -#: email/frappemail.py:89 -msgid "Authentication Error: Invalid API Key or Secret" -msgstr "" - -#: email/frappemail.py:85 -msgid "Authentication Error: Reauthorize OAuth for Email Account {0}." -msgstr "" - -#: email/doctype/email_account/email_account.py:328 +#: email/doctype/email_account/email_account.py:329 msgid "Authentication failed while receiving emails from Email Account: {0}." msgstr "" @@ -2709,14 +2750,10 @@ msgstr "" msgid "Auto" msgstr "" -#. Name of a DocType -#: email/doctype/auto_email_report/auto_email_report.json -msgid "Auto Email Report" -msgstr "" - #. Label of a Link in the Tools Workspace +#. Name of a DocType #: automation/workspace/tools/tools.json -msgctxt "Auto Email Report" +#: email/doctype/auto_email_report/auto_email_report.json msgid "Auto Email Report" msgstr "" @@ -2728,14 +2765,9 @@ msgid "Auto Name" msgstr "" #. Name of a DocType -#: automation/doctype/auto_repeat/auto_repeat.json -#: public/js/frappe/utils/common.js:442 -msgid "Auto Repeat" -msgstr "" - #. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Auto Repeat" +#: automation/doctype/auto_repeat/auto_repeat.json +#: automation/workspace/tools/tools.json public/js/frappe/utils/common.js:442 msgid "Auto Repeat" msgstr "" @@ -2834,11 +2866,11 @@ msgstr "" msgid "Automatic" msgstr "" -#: email/doctype/email_account/email_account.py:766 +#: email/doctype/email_account/email_account.py:767 msgid "Automatic Linking can be activated only for one Email Account." msgstr "" -#: email/doctype/email_account/email_account.py:760 +#: email/doctype/email_account/email_account.py:761 msgid "Automatic Linking can be activated only if Incoming is enabled." msgstr "" @@ -2978,6 +3010,7 @@ msgstr "" msgid "BCC" msgstr "" +#: public/js/frappe/file_uploader/ImageCropper.vue:31 #: public/js/frappe/widgets/onboarding_widget.js:181 msgid "Back" msgstr "" @@ -3008,19 +3041,15 @@ msgstr "" msgid "Background Image" msgstr "" +#. Label of a Link in the Build Workspace #. Label of the background_jobs_section (Section Break) field in DocType #. 'System Health Report' +#: core/workspace/build/build.json #: desk/doctype/system_health_report/system_health_report.json #: public/js/frappe/ui/toolbar/toolbar.js:178 msgid "Background Jobs" msgstr "" -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "RQ Job" -msgid "Background Jobs" -msgstr "" - #. Label of the background_jobs_check (Data) field in DocType 'System Health #. Report' #: desk/doctype/system_health_report/system_health_report.json @@ -3032,6 +3061,10 @@ msgstr "" msgid "Background Jobs Queue" msgstr "" +#: public/js/frappe/list/bulk_operations.js:87 +msgid "Background Print (required for >25 documents)" +msgstr "" + #. Label of the background_workers (Section Break) field in DocType 'System #. Settings' #. Label of the background_workers (Table) field in DocType 'System Health @@ -3325,14 +3358,10 @@ msgstr "" #. Name of a DocType #. Label of the blog_category (Link) field in DocType 'Blog Post' +#. Label of a Link in the Website Workspace #: website/doctype/blog_category/blog_category.json #: website/doctype/blog_post/blog_post.json -msgid "Blog Category" -msgstr "" - -#. Label of a Link in the Website Workspace #: website/workspace/website/website.json -msgctxt "Blog Category" msgid "Blog Category" msgstr "" @@ -3347,14 +3376,10 @@ msgid "Blog Introduction" msgstr "" #. Name of a DocType -#: website/doctype/blog_post/blog_post.json -msgid "Blog Post" -msgstr "" - #. Label of a Link in the Website Workspace #. Label of a shortcut in the Website Workspace +#: website/doctype/blog_post/blog_post.json #: website/workspace/website/website.json -msgctxt "Blog Post" msgid "Blog Post" msgstr "" @@ -3371,17 +3396,12 @@ msgstr "" #. Name of a role #. Label of the blogger (Link) field in DocType 'Blog Post' #. Name of a DocType +#. Label of a Link in the Website Workspace +#. Label of a shortcut in the Website Workspace #: website/doctype/blog_category/blog_category.json #: website/doctype/blog_post/blog_post.json #: website/doctype/blog_settings/blog_settings.json -#: website/doctype/blogger/blogger.json -msgid "Blogger" -msgstr "" - -#. Label of a Link in the Website Workspace -#. Label of a shortcut in the Website Workspace -#: website/workspace/website/website.json -msgctxt "Blogger" +#: website/doctype/blogger/blogger.json website/workspace/website/website.json msgid "Blogger" msgstr "" @@ -3421,6 +3441,7 @@ msgstr "" #. Option for the 'Position' (Select) field in DocType 'Form Tour Step' #: desk/doctype/form_tour_step/form_tour_step.json +#: public/js/print_format_builder/PrintFormatControls.vue:154 msgid "Bottom" msgstr "" @@ -3428,11 +3449,13 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: desk/doctype/form_tour_step/form_tour_step.json #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:248 msgid "Bottom Center" msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:247 msgid "Bottom Left" msgstr "" @@ -3440,6 +3463,7 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: desk/doctype/form_tour_step/form_tour_step.json #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:249 msgid "Bottom Right" msgstr "" @@ -3551,7 +3575,7 @@ msgstr "" msgid "Bulk Delete" msgstr "" -#: public/js/frappe/list/bulk_operations.js:291 +#: public/js/frappe/list/bulk_operations.js:321 msgid "Bulk Edit" msgstr "" @@ -3567,18 +3591,14 @@ msgstr "" msgid "Bulk Operation Successful" msgstr "" -#: public/js/frappe/list/bulk_operations.js:122 +#: public/js/frappe/list/bulk_operations.js:131 msgid "Bulk PDF Export" msgstr "" -#. Name of a DocType -#: desk/doctype/bulk_update/bulk_update.json -msgid "Bulk Update" -msgstr "" - #. Label of a Link in the Tools Workspace +#. Name of a DocType #: automation/workspace/tools/tools.json -msgctxt "Bulk Update" +#: desk/doctype/bulk_update/bulk_update.json msgid "Bulk Update" msgstr "" @@ -3750,19 +3770,14 @@ msgstr "" msgid "Calculate" msgstr "" +#. Label of a Link in the Tools Workspace #. Option for the 'Select List View' (Select) field in DocType 'Form Tour' #. Option for the 'DocType View' (Select) field in DocType 'Workspace Shortcut' -#: desk/doctype/form_tour/form_tour.json +#: automation/workspace/tools/tools.json desk/doctype/form_tour/form_tour.json #: desk/doctype/workspace_shortcut/workspace_shortcut.json msgid "Calendar" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Event" -msgid "Calendar" -msgstr "" - #. Label of the calendar_name (Data) field in DocType 'Google Calendar' #: integrations/doctype/google_calendar/google_calendar.json msgid "Calendar Name" @@ -3805,6 +3820,7 @@ msgstr "" msgid "Callback Title" msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:150 #: public/js/frappe/ui/capture.js:334 msgid "Camera" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" #. Label of the campaign (Link) field in DocType 'Newsletter' #. Label of the campaign (Data) field in DocType 'Web Page View' #: email/doctype/newsletter/newsletter.json -#: public/js/frappe/utils/utils.js:1723 +#: public/js/frappe/utils/utils.js:1724 #: website/doctype/web_page_view/web_page_view.json #: website/report/website_analytics/website_analytics.js:39 msgid "Campaign" @@ -3963,7 +3979,7 @@ msgstr "" msgid "Cannot cancel before submitting. See Transition {0}" msgstr "" -#: public/js/frappe/list/bulk_operations.js:264 +#: public/js/frappe/list/bulk_operations.js:294 msgid "Cannot cancel {0}." msgstr "" @@ -3991,7 +4007,7 @@ msgstr "" msgid "Cannot create a {0} against a child document: {1}" msgstr "" -#: desk/doctype/workspace/workspace.py:250 +#: desk/doctype/workspace/workspace.py:254 msgid "Cannot create private workspace of other users" msgstr "" @@ -4003,11 +4019,11 @@ msgstr "" msgid "Cannot delete or cancel because {0} {1} is linked with {2} {3} {4}" msgstr "" -#: desk/doctype/workspace/workspace.py:415 +#: desk/doctype/workspace/workspace.py:419 msgid "Cannot delete private workspace of other users" msgstr "" -#: desk/doctype/workspace/workspace.py:408 +#: desk/doctype/workspace/workspace.py:412 msgid "Cannot delete public workspace without Workspace Manager role" msgstr "" @@ -4023,6 +4039,13 @@ msgstr "" msgid "Cannot delete standard field {0}. You can hide it instead." msgstr "" +#: public/js/form_builder/components/Field.vue:38 +#: public/js/form_builder/components/Section.vue:117 +#: public/js/form_builder/components/Section.vue:190 +#: public/js/form_builder/components/Tabs.vue:56 +msgid "Cannot delete standard field. You can hide it if you want" +msgstr "" + #: custom/doctype/customize_form/customize_form.js:347 msgid "Cannot delete standard link. You can hide it if you want" msgstr "" @@ -4031,7 +4054,7 @@ msgstr "" msgid "Cannot delete system generated field {0}. You can hide it instead." msgstr "" -#: public/js/frappe/list/bulk_operations.js:185 +#: public/js/frappe/list/bulk_operations.js:215 msgid "Cannot delete {0}" msgstr "" @@ -4043,11 +4066,11 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: email/doctype/notification/notification.py:122 +#: email/doctype/notification/notification.py:183 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:377 +#: desk/doctype/dashboard_chart/dashboard_chart.py:387 msgid "Cannot edit Standard charts" msgstr "" @@ -4112,7 +4135,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: email/doctype/notification/notification.py:139 +#: email/doctype/notification/notification.py:200 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4120,16 +4143,16 @@ msgstr "" msgid "Cannot share {0} with submit permission as the doctype {1} is not submittable" msgstr "" -#: public/js/frappe/list/bulk_operations.js:261 +#: public/js/frappe/list/bulk_operations.js:291 msgid "Cannot submit {0}." msgstr "" -#: desk/doctype/workspace/workspace.py:349 +#: desk/doctype/workspace/workspace.py:353 msgid "Cannot update private workspace of other users" msgstr "" #: desk/doctype/bulk_update/bulk_update.js:26 -#: public/js/frappe/list/bulk_operations.js:336 +#: public/js/frappe/list/bulk_operations.js:366 msgid "Cannot update {0}" msgstr "" @@ -4141,7 +4164,7 @@ msgstr "" msgid "Cannot use {0} in order/group by" msgstr "" -#: public/js/frappe/list/bulk_operations.js:267 +#: public/js/frappe/list/bulk_operations.js:297 msgid "Cannot {0} {1}." msgstr "" @@ -4228,11 +4251,20 @@ msgctxt "Coins" msgid "Change" msgstr "" +#: public/js/print_format_builder/LetterHeadEditor.vue:38 +msgid "Change Image" +msgstr "" + #. Label of the label (Data) field in DocType 'Customize Form' #: custom/doctype/customize_form/customize_form.json msgid "Change Label (via Custom Translation)" msgstr "" +#: public/js/print_format_builder/LetterHeadEditor.vue:45 +#: public/js/print_format_builder/LetterHeadEditor.vue:141 +msgid "Change Letter Head" +msgstr "" + #. Label of the change_password (Section Break) field in DocType 'User' #: core/doctype/user/user.json msgid "Change Password" @@ -4421,14 +4453,16 @@ msgstr "" msgid "Choose Existing Card or create New Card" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1399 +#: public/js/frappe/views/workspace/workspace.js:1426 msgid "Choose a block or continue typing" msgstr "" +#: public/js/form_builder/components/controls/DataControl.vue:18 #: public/js/frappe/form/controls/color.js:5 msgid "Choose a color" msgstr "" +#: public/js/form_builder/components/controls/DataControl.vue:21 #: public/js/frappe/form/controls/icon.js:5 msgid "Choose an icon" msgstr "" @@ -4516,6 +4550,10 @@ msgstr "" msgid "Click on Authorize Google Drive Access to authorize Google Drive Access." msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:499 +msgid "Click on a file to select it." +msgstr "" + #: templates/emails/login_with_email_link.html:19 msgid "Click on the button to log in to {0}" msgstr "" @@ -4536,6 +4574,10 @@ msgstr "" msgid "Click on the link below to verify your request" msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:200 +msgid "Click on the lock icon to toggle public/private" +msgstr "" + #: integrations/doctype/google_calendar/google_calendar.py:102 #: integrations/doctype/google_contacts/google_contacts.py:41 #: integrations/doctype/google_drive/google_drive.py:53 @@ -4609,9 +4651,12 @@ msgstr "" msgid "Client Information" msgstr "" +#. Label of a Link in the Build Workspace +#. Label of a shortcut in the Build Workspace #. Name of a DocType #. Label of the client_script (Code) field in DocType 'DocType Layout' #. Label of the client_script (Code) field in DocType 'Web Form' +#: core/workspace/build/build.json #: custom/doctype/client_script/client_script.json #: custom/doctype/doctype_layout/doctype_layout.json #: website/doctype/web_form/web_form.json @@ -4619,13 +4664,6 @@ msgstr "" msgid "Client Script" msgstr "" -#. Label of a Link in the Build Workspace -#. Label of a shortcut in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Client Script" -msgid "Client Script" -msgstr "" - #. Label of the client_secret (Password) field in DocType 'Connected App' #. Label of the client_secret (Password) field in DocType 'Google Settings' #. Label of the client_secret (Password) field in DocType 'Social Login Key' @@ -4651,6 +4689,10 @@ msgstr "" msgid "Close Condition" msgstr "" +#: public/js/form_builder/components/FieldProperties.vue:79 +msgid "Close properties" +msgstr "" + #. Option for the 'Status' (Select) field in DocType 'Activity Log' #. Option for the 'Status' (Select) field in DocType 'Communication' #. Option for the 'Status' (Select) field in DocType 'Event' @@ -4771,6 +4813,8 @@ msgstr "" #. Label of the column (Data) field in DocType 'Recorder Suggested Index' #: core/doctype/recorder_suggested_index/recorder_suggested_index.json #: printing/page/print_format_builder/print_format_builder_column_selector.html:7 +#: public/js/form_builder/components/Section.vue:270 +#: public/js/print_format_builder/ConfigureColumns.vue:8 msgid "Column" msgstr "" @@ -4946,7 +4990,6 @@ msgstr "" #. Label of a Link in the Build Workspace #: core/workspace/build/build.json -msgctxt "Communication" msgid "Communication Logs" msgstr "" @@ -4999,7 +5042,7 @@ msgstr "" msgid "Complete By" msgstr "" -#: core/doctype/user/user.py:432 templates/emails/new_user.html:10 +#: core/doctype/user/user.py:436 templates/emails/new_user.html:10 msgid "Complete Registration" msgstr "" @@ -5100,6 +5143,10 @@ msgstr "" msgid "Configure Recorder" msgstr "" +#: public/js/print_format_builder/Field.vue:103 +msgid "Configure columns for {0}" +msgstr "" + #. Description of the 'Amended Documents' (Section Break) field in DocType #. 'Document Naming Settings' #: core/doctype/document_naming_settings/document_naming_settings.json @@ -5260,13 +5307,9 @@ msgid "Contact Us" msgstr "" #. Name of a DocType -#: website/doctype/contact_us_settings/contact_us_settings.json -msgid "Contact Us Settings" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/contact_us_settings/contact_us_settings.json #: website/workspace/website/website.json -msgctxt "Contact Us Settings" msgid "Contact Us Settings" msgstr "" @@ -5297,7 +5340,7 @@ msgstr "" #: core/doctype/comment/comment.json desk/doctype/note/note.json #: desk/doctype/workspace/workspace.json #: email/doctype/newsletter/newsletter.json -#: public/js/frappe/utils/utils.js:1738 +#: public/js/frappe/utils/utils.js:1739 #: website/doctype/blog_post/blog_post.json #: website/doctype/help_article/help_article.json #: website/doctype/web_page/web_page.json @@ -5510,7 +5553,7 @@ msgstr "" #: public/js/frappe/views/file/file_view.js:112 #: public/js/frappe/views/interaction.js:18 #: public/js/frappe/views/reports/query_report.js:1188 -#: public/js/frappe/views/workspace/workspace.js:1231 +#: public/js/frappe/views/workspace/workspace.js:1258 #: workflow/page/workflow_builder/workflow_builder.js:46 msgid "Create" msgstr "" @@ -5534,6 +5577,10 @@ msgstr "" msgid "Create Chart" msgstr "" +#: public/js/form_builder/components/controls/TableControl.vue:62 +msgid "Create Child Doctype" +msgstr "" + #. Label of the create_contact (Check) field in DocType 'Email Account' #: email/doctype/email_account/email_account.json msgid "Create Contacts from Incoming Emails" @@ -5544,7 +5591,7 @@ msgstr "" msgid "Create Custom Fields" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:939 +#: public/js/frappe/views/workspace/workspace.js:966 msgid "Create Duplicate" msgstr "" @@ -5553,6 +5600,11 @@ msgstr "" msgid "Create Entry" msgstr "" +#: public/js/print_format_builder/LetterHeadEditor.vue:59 +#: public/js/print_format_builder/LetterHeadEditor.vue:195 +msgid "Create Letter Head" +msgstr "" + #. Label of the create_log (Check) field in DocType 'Scheduled Job Type' #: core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Create Log" @@ -5581,10 +5633,6 @@ msgstr "" msgid "Create User Email" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:479 -msgid "Create Workspace" -msgstr "" - #: printing/page/print_format_builder/print_format_builder_start.html:16 msgid "Create a New Format" msgstr "" @@ -5703,6 +5751,10 @@ msgstr "" msgid "Cron format is required for job types with Cron frequency." msgstr "" +#: public/js/frappe/file_uploader/ImageCropper.vue:34 +msgid "Crop" +msgstr "" + #: public/js/frappe/form/grid_row_form.js:42 msgid "Ctrl + Down" msgstr "" @@ -5864,14 +5916,10 @@ msgstr "" msgid "Custom Documents" msgstr "" -#. Name of a DocType -#: custom/doctype/custom_field/custom_field.json -msgid "Custom Field" -msgstr "" - #. Label of a Link in the Build Workspace +#. Name of a DocType #: core/workspace/build/build.json -msgctxt "Custom Field" +#: custom/doctype/custom_field/custom_field.json msgid "Custom Field" msgstr "" @@ -5915,6 +5963,7 @@ msgstr "" #: printing/page/print_format_builder/print_format_builder.js:190 #: printing/page/print_format_builder/print_format_builder.js:720 +#: public/js/print_format_builder/PrintFormatControls.vue:192 msgid "Custom HTML" msgstr "" @@ -5981,7 +6030,6 @@ msgstr "" #. Label of a Link in the Build Workspace #: core/workspace/build/build.json -msgctxt "Translation" msgid "Custom Translation" msgstr "" @@ -6013,7 +6061,7 @@ msgstr "" msgid "Customization onboarding is all done!" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:525 +#: public/js/frappe/views/workspace/workspace.js:552 msgid "Customizations Discarded" msgstr "" @@ -6045,18 +6093,13 @@ msgstr "" msgid "Customize Dashboard" msgstr "" -#. Name of a DocType -#: automation/doctype/auto_repeat/auto_repeat.js:33 -#: core/doctype/doctype/doctype.js:65 -#: custom/doctype/customize_form/customize_form.json -#: public/js/frappe/views/kanban/kanban_view.js:343 -msgid "Customize Form" -msgstr "" - #. Label of a Link in the Build Workspace #. Label of a shortcut in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Customize Form" +#. Name of a DocType +#: automation/doctype/auto_repeat/auto_repeat.js:33 +#: core/doctype/doctype/doctype.js:65 core/workspace/build/build.json +#: custom/doctype/customize_form/customize_form.json +#: public/js/frappe/views/kanban/kanban_view.js:343 msgid "Customize Form" msgstr "" @@ -6179,35 +6222,27 @@ msgid "Dark Theme" msgstr "" #. Label of the dashboard (Check) field in DocType 'Role' +#. Label of a Link in the Build Workspace #. Name of a DocType #. Option for the 'Select List View' (Select) field in DocType 'Form Tour' #. Option for the 'Type' (Select) field in DocType 'Workspace Shortcut' #. Option for the 'DocType View' (Select) field in DocType 'Workspace Shortcut' #: core/doctype/role/role.json core/page/dashboard_view/dashboard_view.js:10 -#: desk/doctype/dashboard/dashboard.json desk/doctype/form_tour/form_tour.json +#: core/workspace/build/build.json desk/doctype/dashboard/dashboard.json +#: desk/doctype/form_tour/form_tour.json #: desk/doctype/workspace_shortcut/workspace_shortcut.json #: public/js/frappe/ui/toolbar/search_utils.js:562 msgid "Dashboard" msgstr "" #. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Dashboard" -msgid "Dashboard" -msgstr "" - #. Name of a DocType +#: core/workspace/build/build.json #: desk/doctype/dashboard_chart/dashboard_chart.json #: desk/doctype/dashboard_chart_source/dashboard_chart_source.js:8 msgid "Dashboard Chart" msgstr "" -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Dashboard Chart" -msgid "Dashboard Chart" -msgstr "" - #. Name of a DocType #: desk/doctype/dashboard_chart_field/dashboard_chart_field.json msgid "Dashboard Chart Field" @@ -6517,7 +6552,7 @@ msgstr "" #. Label of the default_incoming (Check) field in DocType 'Email Account' #: email/doctype/email_account/email_account.json -#: email/doctype/email_account/email_account.py:217 +#: email/doctype/email_account/email_account.py:218 msgid "Default Incoming" msgstr "" @@ -6537,7 +6572,7 @@ msgstr "" #. Label of the default_outgoing (Check) field in DocType 'Email Account' #: email/doctype/email_account/email_account.json -#: email/doctype/email_account/email_account.py:225 +#: email/doctype/email_account/email_account.py:226 msgid "Default Outgoing" msgstr "" @@ -6652,7 +6687,7 @@ msgstr "" msgid "Defaults" msgstr "" -#: email/doctype/email_account/email_account.py:236 +#: email/doctype/email_account/email_account.py:237 msgid "Defaults Updated" msgstr "" @@ -6682,7 +6717,7 @@ msgstr "" #: public/js/frappe/form/grid.js:63 public/js/frappe/form/toolbar.js:434 #: public/js/frappe/views/reports/report_view.js:1654 #: public/js/frappe/views/treeview.js:308 -#: public/js/frappe/views/workspace/workspace.js:837 +#: public/js/frappe/views/workspace/workspace.js:864 #: templates/discussions/reply_card.html:35 #: templates/discussions/reply_section.html:29 msgid "Delete" @@ -6701,6 +6736,11 @@ msgstr "" msgid "Delete All" msgstr "" +#: public/js/form_builder/components/Section.vue:196 +msgctxt "Title of confirmation dialog" +msgid "Delete Column" +msgstr "" + #: website/doctype/personal_data_deletion_request/personal_data_deletion_request.js:10 msgid "Delete Data" msgstr "" @@ -6709,7 +6749,17 @@ msgstr "" msgid "Delete Kanban Board" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:838 +#: public/js/form_builder/components/Section.vue:125 +msgctxt "Title of confirmation dialog" +msgid "Delete Section" +msgstr "" + +#: public/js/form_builder/components/Tabs.vue:64 +msgctxt "Title of confirmation dialog" +msgid "Delete Tab" +msgstr "" + +#: public/js/frappe/views/workspace/workspace.js:865 msgid "Delete Workspace" msgstr "" @@ -6717,10 +6767,40 @@ msgstr "" msgid "Delete and Generate New" msgstr "" +#: public/js/form_builder/components/Section.vue:203 +msgctxt "Button text" +msgid "Delete column" +msgstr "" + #: public/js/frappe/form/footer/form_timeline.js:721 msgid "Delete comment?" msgstr "" +#: public/js/form_builder/components/Section.vue:205 +msgctxt "Button text" +msgid "Delete entire column with fields" +msgstr "" + +#: public/js/form_builder/components/Section.vue:134 +msgctxt "Button text" +msgid "Delete entire section with fields" +msgstr "" + +#: public/js/form_builder/components/Tabs.vue:73 +msgctxt "Button text" +msgid "Delete entire tab with fields" +msgstr "" + +#: public/js/form_builder/components/Section.vue:132 +msgctxt "Button text" +msgid "Delete section" +msgstr "" + +#: public/js/form_builder/components/Tabs.vue:71 +msgctxt "Button text" +msgid "Delete tab" +msgstr "" + #: email/doctype/email_unsubscribe/email_unsubscribe.py:29 msgid "Delete this record to allow sending to this email address" msgstr "" @@ -6760,7 +6840,6 @@ msgstr "" #. Label of a Link in the Tools Workspace #: automation/workspace/tools/tools.json -msgctxt "Deleted Document" msgid "Deleted Documents" msgstr "" @@ -6777,7 +6856,7 @@ msgstr "" msgid "Deleting {0}" msgstr "" -#: public/js/frappe/list/bulk_operations.js:172 +#: public/js/frappe/list/bulk_operations.js:202 msgid "Deleting {0} records..." msgstr "" @@ -6968,6 +7047,7 @@ msgstr "" #: custom/doctype/customize_form/customize_form.json #: desk/doctype/event/event.json #: desk/page/user_profile/user_profile_sidebar.html:45 +#: public/js/form_builder/components/Tabs.vue:92 #: public/js/form_builder/store.js:259 public/js/form_builder/utils.js:38 #: public/js/frappe/form/layout.js:137 public/js/frappe/views/treeview.js:271 msgid "Details" @@ -7117,14 +7197,14 @@ msgstr "" msgid "Disabled" msgstr "" -#: email/doctype/email_account/email_account.js:261 +#: email/doctype/email_account/email_account.js:265 msgid "Disabled Auto Reply" msgstr "" #: public/js/frappe/form/toolbar.js:316 #: public/js/frappe/views/communication.js:30 #: public/js/frappe/views/dashboard/dashboard_view.js:70 -#: public/js/frappe/views/workspace/workspace.js:516 +#: public/js/frappe/views/workspace/workspace.js:543 #: public/js/frappe/web_form/web_form.js:187 msgid "Discard" msgstr "" @@ -7189,6 +7269,10 @@ msgstr "" msgid "Display Depends On (JS)" msgstr "" +#: public/js/print_format_builder/PrintFormatControls.vue:210 +msgid "Divider" +msgstr "" + #. Label of the do_not_create_new_user (Check) field in DocType 'LDAP Settings' #: integrations/doctype/ldap_settings/ldap_settings.json msgid "Do Not Create New User " @@ -7263,6 +7347,8 @@ msgstr "" #. Group in Module Def's connections #. Label of the ref_doctype (Link) field in DocType 'Permission Inspector' #. Label of the ref_doctype (Link) field in DocType 'Version' +#. Label of a Link in the Build Workspace +#. Label of a shortcut in the Build Workspace #. Label of the dt (Link) field in DocType 'Client Script' #. Label of the dt (Link) field in DocType 'Custom Field' #. Option for the 'Applied On' (Select) field in DocType 'Property Setter' @@ -7279,6 +7365,7 @@ msgstr "" #: core/doctype/permission_inspector/permission_inspector.json #: core/doctype/version/version.json #: core/report/permitted_documents_for_user/permitted_documents_for_user.js:15 +#: core/workspace/build/build.json #: custom/doctype/client_script/client_script.json #: custom/doctype/custom_field/custom_field.json #: custom/doctype/property_setter/property_setter.json @@ -7292,13 +7379,6 @@ msgstr "" msgid "DocType" msgstr "" -#. Label of a Link in the Build Workspace -#. Label of a shortcut in the Build Workspace -#: core/workspace/build/build.json -msgctxt "DocType" -msgid "DocType" -msgstr "" - #: core/doctype/doctype/doctype.py:1546 msgid "DocType {0} provided for the field {1} must have atleast one Link field" msgstr "" @@ -7418,7 +7498,7 @@ msgstr "" msgid "Doctype required" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1317 +#: public/js/frappe/views/workspace/workspace.js:1344 msgid "Doctype with same route already exist. Please choose different title." msgstr "" @@ -7432,6 +7512,7 @@ msgstr "" #: core/doctype/audit_trail/audit_trail.json core/doctype/doctype/doctype.json #: core/doctype/permission_inspector/permission_inspector.json #: desk/doctype/notification_subscribed_document/notification_subscribed_document.json +#: public/js/frappe/views/render_preview.js:42 msgid "Document" msgstr "" @@ -7710,7 +7791,7 @@ msgstr "" msgid "Document renaming from {0} to {1} has been queued" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:386 +#: desk/doctype/dashboard_chart/dashboard_chart.py:396 msgid "Document type is required to create a dashboard chart" msgstr "" @@ -7815,6 +7896,8 @@ msgstr "" #: public/js/frappe/form/form_tour.js:16 public/js/frappe/ui/messages.js:231 #: public/js/onboarding_tours/onboarding_tours.js:17 +#: public/js/print_format_builder/HTMLEditor.vue:5 +#: public/js/print_format_builder/LetterHeadEditor.vue:52 msgid "Done" msgstr "" @@ -7823,6 +7906,10 @@ msgstr "" msgid "Donut" msgstr "" +#: public/js/form_builder/components/EditableInput.vue:43 +msgid "Double click to edit label" +msgstr "" + #: core/doctype/file/file.js:5 #: email/doctype/auto_email_report/auto_email_report.js:8 #: public/js/frappe/form/grid.js:63 @@ -7851,7 +7938,7 @@ msgstr "" msgid "Download Link" msgstr "" -#: public/js/frappe/list/bulk_operations.js:125 +#: public/js/frappe/list/bulk_operations.js:134 msgid "Download PDF" msgstr "" @@ -7886,15 +7973,35 @@ msgstr "" #: public/js/frappe/views/workspace/blocks/header.js:46 #: public/js/frappe/views/workspace/blocks/paragraph.js:136 #: public/js/frappe/views/workspace/blocks/spacer.js:44 -#: public/js/frappe/views/workspace/workspace.js:579 +#: public/js/frappe/views/workspace/workspace.js:606 #: public/js/frappe/widgets/base_widget.js:33 msgid "Drag" msgstr "" +#: public/js/form_builder/components/Tabs.vue:189 +msgid "Drag & Drop a section here from another tab" +msgstr "" + +#: public/js/frappe/file_uploader/FileUploader.vue:14 +msgid "Drag and drop files here or upload from" +msgstr "" + +#: public/js/print_format_builder/ConfigureColumns.vue:76 +msgid "Drag columns to set order. Column width is set in percentage. The total width should not be more than 100. Columns marked in red will be removed." +msgstr "" + #: printing/page/print_format_builder/print_format_builder_layout.html:3 msgid "Drag elements from the sidebar to add. Drag them back to trash." msgstr "" +#: public/js/workflow_builder/WorkflowBuilder.vue:296 +msgid "Drag to add state" +msgstr "" + +#: public/js/frappe/file_uploader/FileUploader.vue:172 +msgid "Drop files here" +msgstr "" + #. Label of the dropbox_access_token (Password) field in DocType 'Dropbox #. Settings' #: integrations/doctype/dropbox_settings/dropbox_settings.json @@ -7908,13 +8015,9 @@ msgid "Dropbox Refresh Token" msgstr "" #. Name of a DocType -#: integrations/doctype/dropbox_settings/dropbox_settings.json -msgid "Dropbox Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/dropbox_settings/dropbox_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "Dropbox Settings" msgid "Dropbox Settings" msgstr "" @@ -7940,8 +8043,8 @@ msgstr "" #: public/js/frappe/form/grid_row_form.js:42 #: public/js/frappe/form/toolbar.js:388 -#: public/js/frappe/views/workspace/workspace.js:822 -#: public/js/frappe/views/workspace/workspace.js:989 +#: public/js/frappe/views/workspace/workspace.js:849 +#: public/js/frappe/views/workspace/workspace.js:1016 msgid "Duplicate" msgstr "" @@ -7957,8 +8060,8 @@ msgstr "" msgid "Duplicate Name" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:561 -#: public/js/frappe/views/workspace/workspace.js:823 +#: public/js/frappe/views/workspace/workspace.js:588 +#: public/js/frappe/views/workspace/workspace.js:850 msgid "Duplicate Workspace" msgstr "" @@ -7966,7 +8069,11 @@ msgstr "" msgid "Duplicate current row" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1004 +#: public/js/form_builder/components/Field.vue:245 +msgid "Duplicate field" +msgstr "" + +#: public/js/frappe/views/workspace/workspace.js:1031 msgid "Duplicate of {0} named as {1} is created successfully" msgstr "" @@ -8059,8 +8166,8 @@ msgstr "" #: public/js/frappe/form/toolbar.js:681 #: public/js/frappe/views/reports/query_report.js:815 #: public/js/frappe/views/reports/query_report.js:1634 -#: public/js/frappe/views/workspace/workspace.js:460 -#: public/js/frappe/views/workspace/workspace.js:816 +#: public/js/frappe/views/workspace/workspace.js:95 +#: public/js/frappe/views/workspace/workspace.js:843 #: public/js/frappe/widgets/base_widget.js:64 #: public/js/frappe/widgets/chart_widget.js:299 #: public/js/frappe/widgets/number_card_widget.js:331 @@ -8115,6 +8222,10 @@ msgstr "" msgid "Edit Filters" msgstr "" +#: public/js/print_format_builder/PrintFormat.vue:29 +msgid "Edit Footer" +msgstr "" + #: printing/doctype/print_format/print_format.js:28 msgid "Edit Format" msgstr "" @@ -8124,14 +8235,27 @@ msgid "Edit Full Form" msgstr "" #: printing/page/print_format_builder/print_format_builder_field.html:26 +#: public/js/print_format_builder/Field.vue:83 msgid "Edit HTML" msgstr "" +#: public/js/print_format_builder/PrintFormat.vue:9 +msgid "Edit Header" +msgstr "" + #: printing/page/print_format_builder/print_format_builder.js:602 #: printing/page/print_format_builder/print_format_builder_layout.html:8 msgid "Edit Heading" msgstr "" +#: public/js/print_format_builder/LetterHeadEditor.vue:52 +msgid "Edit Letter Head" +msgstr "" + +#: public/js/print_format_builder/PrintFormat.vue:35 +msgid "Edit Letter Head Footer" +msgstr "" + #: public/js/frappe/widgets/widget_dialog.js:42 msgid "Edit Links" msgstr "" @@ -8181,7 +8305,7 @@ msgstr "" msgid "Edit Values" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:817 +#: public/js/frappe/views/workspace/workspace.js:844 msgid "Edit Workspace" msgstr "" @@ -8189,6 +8313,10 @@ msgstr "" msgid "Edit mode" msgstr "" +#: public/js/form_builder/components/Field.vue:254 +msgid "Edit the {0} Doctype" +msgstr "" + #: printing/page/print_format_builder/print_format_builder.js:713 msgid "Edit to add content" msgstr "" @@ -8274,12 +8402,14 @@ msgstr "" msgid "Email" msgstr "" +#. Label of a Link in the Tools Workspace #. Label of the email_account (Link) field in DocType 'Communication' #. Label of the email_account (Link) field in DocType 'User Email' #. Name of a DocType #. Label of the email_account (Data) field in DocType 'Email Flag Queue' #. Label of the email_account (Link) field in DocType 'Email Queue' #. Label of the email_account (Link) field in DocType 'Unhandled Email' +#: automation/workspace/tools/tools.json #: core/doctype/communication/communication.js:199 #: core/doctype/communication/communication.json #: core/doctype/user_email/user_email.json @@ -8290,13 +8420,7 @@ msgstr "" msgid "Email Account" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Email Account" -msgid "Email Account" -msgstr "" - -#: email/doctype/email_account/email_account.py:332 +#: email/doctype/email_account/email_account.py:333 msgid "Email Account Disabled." msgstr "" @@ -8305,7 +8429,7 @@ msgstr "" msgid "Email Account Name" msgstr "" -#: core/doctype/user/user.py:705 +#: core/doctype/user/user.py:709 msgid "Email Account added multiple times" msgstr "" @@ -8334,14 +8458,10 @@ msgstr "" msgid "Email Addresses" msgstr "" -#. Name of a DocType -#: email/doctype/email_domain/email_domain.json -msgid "Email Domain" -msgstr "" - #. Label of a Link in the Tools Workspace +#. Name of a DocType #: automation/workspace/tools/tools.json -msgctxt "Email Domain" +#: email/doctype/email_domain/email_domain.json msgid "Email Domain" msgstr "" @@ -8356,21 +8476,17 @@ msgstr "" msgid "Email Footer Address" msgstr "" +#. Label of a Link in the Tools Workspace #. Name of a DocType #. Label of the email_group (Link) field in DocType 'Email Group Member' #. Label of the email_group (Link) field in DocType 'Newsletter Email Group' +#: automation/workspace/tools/tools.json #: email/doctype/email_group/email_group.json #: email/doctype/email_group_member/email_group_member.json #: email/doctype/newsletter_email_group/newsletter_email_group.json msgid "Email Group" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Email Group" -msgid "Email Group" -msgstr "" - #. Name of a DocType #: email/doctype/email_group_member/email_group_member.json msgid "Email Group Member" @@ -8475,20 +8591,16 @@ msgstr "" msgid "Email Sync Option" msgstr "" +#. Label of a Link in the Tools Workspace #. Label of the email_template (Link) field in DocType 'Communication' #. Name of a DocType +#: automation/workspace/tools/tools.json #: core/doctype/communication/communication.json #: email/doctype/email_template/email_template.json #: public/js/frappe/views/communication.js:95 msgid "Email Template" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Email Template" -msgid "Email Template" -msgstr "" - #. Label of the enable_email_threads_on_assigned_document (Check) field in #. DocType 'Notification Settings' #: desk/doctype/notification_settings/notification_settings.json @@ -8540,6 +8652,10 @@ msgstr "" msgid "Embed code copied" msgstr "" +#: public/js/form_builder/components/Section.vue:285 +msgid "Empty column" +msgstr "" + #. Label of the enable (Check) field in DocType 'Google Calendar' #. Label of the enable (Check) field in DocType 'Google Contacts' #. Label of the enable (Check) field in DocType 'Google Drive' @@ -8601,7 +8717,7 @@ msgstr "" #. Label of the enable_incoming (Check) field in DocType 'Email Account' #: email/doctype/email_account/email_account.json -#: email/doctype/email_account/email_account.py:218 +#: email/doctype/email_account/email_account.py:219 msgid "Enable Incoming" msgstr "" @@ -8614,7 +8730,7 @@ msgstr "" #. Label of the enable_outgoing (Check) field in DocType 'Email Account' #: core/doctype/user_email/user_email.json #: email/doctype/email_account/email_account.json -#: email/doctype/email_account/email_account.py:226 +#: email/doctype/email_account/email_account.py:227 msgid "Enable Outgoing" msgstr "" @@ -8755,7 +8871,7 @@ msgstr "" msgid "Enabled Scheduler" msgstr "" -#: email/doctype/email_account/email_account.py:987 +#: email/doctype/email_account/email_account.py:995 msgid "Enabled email inbox for user {0}" msgstr "" @@ -8768,7 +8884,7 @@ msgstr "" msgid "Enables Calendar and Gantt views." msgstr "" -#: email/doctype/email_account/email_account.js:256 +#: email/doctype/email_account/email_account.js:260 msgid "Enabling auto reply on an incoming email account will send automated replies to all the synchronized emails. Do you wish to continue?" msgstr "" @@ -9003,7 +9119,6 @@ msgstr "" #. Label of a Link in the Build Workspace #: core/workspace/build/build.json -msgctxt "Error Log" msgid "Error Logs" msgstr "" @@ -9040,9 +9155,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: email/doctype/notification/notification.py:443 -#: email/doctype/notification/notification.py:559 -#: email/doctype/notification/notification.py:565 +#: email/doctype/notification/notification.py:504 +#: email/doctype/notification/notification.py:620 +#: email/doctype/notification/notification.py:626 msgid "Error in Notification" msgstr "" @@ -9050,11 +9165,11 @@ msgstr "" msgid "Error in print format on line {0}: {1}" msgstr "" -#: email/doctype/email_account/email_account.py:664 +#: email/doctype/email_account/email_account.py:665 msgid "Error while connecting to email account {0}" msgstr "" -#: email/doctype/notification/notification.py:556 +#: email/doctype/notification/notification.py:617 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9309,13 +9424,9 @@ msgstr "" msgid "Export Customizations" msgstr "" -#: public/js/frappe/data_import/data_exporter.js:14 -msgid "Export Data" -msgstr "" - #. Label of a Link in the Tools Workspace #: automation/workspace/tools/tools.json -msgctxt "Data Export" +#: public/js/frappe/data_import/data_exporter.js:14 msgid "Export Data" msgstr "" @@ -9491,6 +9602,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" +#: email/doctype/notification/notification.py:103 #: integrations/doctype/webhook/webhook.py:139 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9523,7 +9635,15 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: email/doctype/email_queue/email_queue.py:294 +#: email/doctype/notification/notification.py:120 +msgid "Failed to render message: {}" +msgstr "" + +#: email/doctype/notification/notification.py:138 +msgid "Failed to render subject: {}" +msgstr "" + +#: email/doctype/email_queue/email_queue.py:301 msgid "Failed to send email with subject:" msgstr "" @@ -9587,6 +9707,8 @@ msgstr "" #: core/doctype/docfield/docfield.json #: custom/doctype/custom_field/custom_field.json #: custom/doctype/customize_form_field/customize_form_field.json +#: public/js/form_builder/components/controls/FetchFromControl.vue:29 +#: public/js/form_builder/components/controls/FetchFromControl.vue:34 msgid "Fetch From" msgstr "" @@ -9625,7 +9747,7 @@ msgstr "" #: desk/doctype/number_card/number_card.json #: desk/doctype/onboarding_step/onboarding_step.json #: desk/page/leaderboard/leaderboard.js:131 -#: public/js/frappe/list/bulk_operations.js:297 +#: public/js/frappe/list/bulk_operations.js:327 #: public/js/frappe/list/list_view_permission_restrictions.html:3 #: public/js/frappe/views/reports/query_report.js:236 #: public/js/frappe/views/reports/query_report.js:1723 @@ -9662,6 +9784,15 @@ msgstr "" msgid "Field Name" msgstr "" +#: public/js/print_format_builder/PrintFormatSection.vue:141 +msgid "Field Orientation (Left-Right)" +msgstr "" + +#: public/js/print_format_builder/PrintFormatSection.vue:148 +msgid "Field Orientation (Top-Down)" +msgstr "" + +#: public/js/print_format_builder/PrintFormatControls.vue:233 #: public/js/print_format_builder/utils.js:69 msgid "Field Template" msgstr "" @@ -9707,7 +9838,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: email/doctype/notification/notification.py:348 +#: email/doctype/notification/notification.py:409 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -9785,6 +9916,7 @@ msgstr "" #: desk/doctype/list_view_settings/list_view_settings.json #: public/js/frappe/list/list_settings.js:132 #: public/js/frappe/views/kanban/kanban_settings.js:111 +#: public/js/print_format_builder/PrintFormatControls.vue:83 #: website/doctype/personal_data_deletion_step/personal_data_deletion_step.json #: website/doctype/web_template/web_template.json msgid "Fields" @@ -9831,16 +9963,16 @@ msgstr "" msgid "Fieldtype cannot be changed from {0} to {1} in row {2}" msgstr "" +#. Label of a shortcut in the Tools Workspace #. Name of a DocType #. Option for the 'Select List View' (Select) field in DocType 'Form Tour' -#: core/doctype/file/file.json desk/doctype/form_tour/form_tour.json +#: automation/workspace/tools/tools.json core/doctype/file/file.json +#: desk/doctype/form_tour/form_tour.json msgid "File" msgstr "" -#. Label of a shortcut in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "File" -msgid "File" +#: public/js/frappe/file_uploader/FileUploader.vue:459 +msgid "File \"{0}\" was skipped because of invalid file type" msgstr "" #: core/doctype/file/utils.py:128 @@ -9923,14 +10055,10 @@ msgstr "" msgid "File {0} does not exist" msgstr "" -#. Label of the files_tab (Tab Break) field in DocType 'System Settings' -#: core/doctype/system_settings/system_settings.json -msgid "Files" -msgstr "" - #. Label of a Link in the Tools Workspace +#. Label of the files_tab (Tab Break) field in DocType 'System Settings' #: automation/workspace/tools/tools.json -msgctxt "File" +#: core/doctype/system_settings/system_settings.json msgid "Files" msgstr "" @@ -9940,7 +10068,7 @@ msgstr "" #: desk/doctype/number_card/number_card.js:205 #: desk/doctype/number_card/number_card.js:336 #: email/doctype/auto_email_report/auto_email_report.js:90 -#: public/js/frappe/list/base_list.js:890 +#: public/js/frappe/list/base_list.js:887 #: public/js/frappe/ui/filters/filter_list.js:134 #: website/doctype/web_form/web_form.js:197 msgid "Filter" @@ -10120,6 +10248,10 @@ msgstr "" msgid "First set the name and save the record." msgstr "" +#: public/js/workflow_builder/WorkflowBuilder.vue:304 +msgid "Fit" +msgstr "" + #. Label of the flag (Data) field in DocType 'Language' #: core/doctype/language/language.json msgid "Flag" @@ -10237,6 +10369,7 @@ msgstr "" #. Label of the font_size (Data) field in DocType 'Website Theme' #: printing/doctype/print_format/print_format.json #: printing/doctype/print_settings/print_settings.json +#: public/js/print_format_builder/PrintFormatControls.vue:45 #: website/doctype/website_theme/website_theme.json msgid "Font Size" msgstr "" @@ -10570,11 +10703,11 @@ msgid "Frappe Light" msgstr "" #. Option for the 'Service' (Select) field in DocType 'Email Account' -#: email/doctype/email_account/email_account.json email/frappemail.py:91 +#: email/doctype/email_account/email_account.json msgid "Frappe Mail" msgstr "" -#: email/doctype/email_account/email_account.py:538 +#: email/doctype/email_account/email_account.py:539 msgid "Frappe Mail OAuth Error" msgstr "" @@ -10593,6 +10726,11 @@ msgstr "" msgid "Frappe page builder using components" msgstr "" +#: public/js/frappe/file_uploader/ImageCropper.vue:112 +msgctxt "Image Cropper" +msgid "Free" +msgstr "" + #. Label of the frequency (Select) field in DocType 'Auto Repeat' #. Label of the frequency (Select) field in DocType 'Scheduled Job Type' #. Label of the document_follow_frequency (Select) field in DocType 'User' @@ -10769,12 +10907,12 @@ msgstr "" msgid "Generate New Report" msgstr "" -#: public/js/frappe/ui/toolbar/awesome_bar.js:368 +#: public/js/frappe/ui/toolbar/awesome_bar.js:391 msgid "Generate Random Password" msgstr "" #: public/js/frappe/ui/toolbar/toolbar.js:172 -#: public/js/frappe/utils/utils.js:1772 +#: public/js/frappe/utils/utils.js:1773 msgid "Generate Tracking URL" msgstr "" @@ -10787,7 +10925,7 @@ msgstr "" msgid "Geolocation" msgstr "" -#: email/doctype/notification/notification.js:193 +#: email/doctype/notification/notification.js:205 msgid "Get Alerts for Today" msgstr "" @@ -10970,14 +11108,10 @@ msgstr "" #. Label of the google_calendar (Link) field in DocType 'Event' #. Name of a DocType #. Label of the sb_00 (Section Break) field in DocType 'Google Calendar' +#. Label of a Link in the Integrations Workspace #: desk/doctype/event/event.json #: integrations/doctype/google_calendar/google_calendar.json -msgid "Google Calendar" -msgstr "" - -#. Label of a Link in the Integrations Workspace #: integrations/workspace/integrations/integrations.json -msgctxt "Google Calendar" msgid "Google Calendar" msgstr "" @@ -11029,14 +11163,10 @@ msgstr "" #. Label of the google_contacts (Link) field in DocType 'Contact' #. Name of a DocType #. Label of the sb_00 (Section Break) field in DocType 'Google Contacts' +#. Label of a Link in the Integrations Workspace #: contacts/doctype/contact/contact.json #: integrations/doctype/google_contacts/google_contacts.json -msgid "Google Contacts" -msgstr "" - -#. Label of a Link in the Integrations Workspace #: integrations/workspace/integrations/integrations.json -msgctxt "Google Contacts" msgid "Google Contacts" msgstr "" @@ -11056,13 +11186,10 @@ msgstr "" #. Name of a DocType #. Label of the google_drive_section (Section Break) field in DocType 'Google #. Drive' -#: integrations/doctype/google_drive/google_drive.json -msgid "Google Drive" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/google_drive/google_drive.json #: integrations/workspace/integrations/integrations.json -msgctxt "Google Drive" +#: public/js/frappe/file_uploader/FileUploader.vue:164 msgid "Google Drive" msgstr "" @@ -11097,6 +11224,7 @@ msgstr "" #. Label of the font (Data) field in DocType 'Print Format' #. Label of the google_font (Data) field in DocType 'Website Theme' #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:28 #: website/doctype/website_theme/website_theme.json msgid "Google Font" msgstr "" @@ -11112,13 +11240,9 @@ msgid "Google Services" msgstr "" #. Name of a DocType -#: integrations/doctype/google_settings/google_settings.json -msgid "Google Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/google_settings/google_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "Google Settings" msgid "Google Settings" msgstr "" @@ -11159,6 +11283,10 @@ msgstr "" msgid "Green" msgstr "" +#: public/js/form_builder/components/controls/TableControl.vue:53 +msgid "Grid Empty State" +msgstr "" + #: public/js/frappe/ui/keyboard.js:126 msgid "Grid Shortcuts" msgstr "" @@ -11188,7 +11316,7 @@ msgstr "" msgid "Group By Type" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:397 +#: desk/doctype/dashboard_chart/dashboard_chart.py:407 msgid "Group By field is required to create a dashboard chart" msgstr "" @@ -11250,6 +11378,7 @@ msgstr "" #: printing/doctype/letter_head/letter_head.json #: printing/doctype/print_format/print_format.json #: printing/doctype/print_format/print_format.py:91 +#: public/js/print_format_builder/Field.vue:86 #: website/doctype/blog_post/blog_post.json #: website/doctype/web_form_field/web_form_field.json #: website/doctype/web_page/web_page.js:92 @@ -11413,13 +11542,9 @@ msgid "Help" msgstr "" #. Name of a DocType -#: website/doctype/help_article/help_article.json -msgid "Help Article" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/help_article/help_article.json #: website/workspace/website/website.json -msgctxt "Help Article" msgid "Help Article" msgstr "" @@ -11429,13 +11554,9 @@ msgid "Help Articles" msgstr "" #. Name of a DocType -#: website/doctype/help_category/help_category.json -msgid "Help Category" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/help_category/help_category.json #: website/workspace/website/website.json -msgctxt "Help Category" msgid "Help Category" msgstr "" @@ -11474,7 +11595,7 @@ msgstr "" msgid "Helvetica Neue" msgstr "" -#: public/js/frappe/utils/utils.js:1769 +#: public/js/frappe/utils/utils.js:1770 msgid "Here's your tracking URL" msgstr "" @@ -11512,9 +11633,10 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: printing/doctype/print_format/print_format.json -#: public/js/frappe/views/workspace/workspace.js:828 +#: public/js/frappe/views/workspace/workspace.js:855 #: public/js/frappe/widgets/base_widget.js:46 #: public/js/frappe/widgets/base_widget.js:178 +#: public/js/print_format_builder/PrintFormatControls.vue:243 #: templates/includes/login/login.js:82 msgid "Hide" msgstr "" @@ -11620,7 +11742,7 @@ msgstr "" msgid "Hide Weekends" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:829 +#: public/js/frappe/views/workspace/workspace.js:856 msgid "Hide Workspace" msgstr "" @@ -11665,6 +11787,7 @@ msgid "Hint: Include symbols, numbers and capital letters in the password" msgstr "" #. Label of the home_tab (Tab Break) field in DocType 'Website Settings' +#: public/js/frappe/file_uploader/FileBrowser.vue:38 #: public/js/frappe/views/file/file_view.js:67 #: public/js/frappe/views/file/file_view.js:88 #: public/js/frappe/views/pageview.js:153 templates/doc.html:19 @@ -11747,6 +11870,10 @@ msgctxt "Label of name column in report" msgid "ID" msgstr "" +#: public/js/print_format_builder/PrintFormatControls.vue:199 +msgid "ID (name)" +msgstr "" + #. Description of the 'Field Name' (Data) field in DocType 'Property Setter' #: custom/doctype/property_setter/property_setter.json msgid "ID (name) of the entity whose property is to be set" @@ -11797,9 +11924,9 @@ msgstr "" #: desk/doctype/workspace_link/workspace_link.json #: desk/doctype/workspace_shortcut/workspace_shortcut.json #: integrations/doctype/social_login_key/social_login_key.json -#: public/js/frappe/views/workspace/workspace.js:646 -#: public/js/frappe/views/workspace/workspace.js:974 -#: public/js/frappe/views/workspace/workspace.js:1219 +#: public/js/frappe/views/workspace/workspace.js:673 +#: public/js/frappe/views/workspace/workspace.js:1001 +#: public/js/frappe/views/workspace/workspace.js:1246 #: workflow/doctype/workflow_state/workflow_state.json msgid "Icon" msgstr "" @@ -12156,7 +12283,7 @@ msgstr "" msgid "Impersonate as {0}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:233 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:246 msgid "Impersonated by {0}" msgstr "" @@ -12189,7 +12316,6 @@ msgstr "" #. Label of a Link in the Tools Workspace #. Label of a shortcut in the Tools Workspace #: automation/workspace/tools/tools.json -msgctxt "Data Import" msgid "Import Data" msgstr "" @@ -12536,9 +12662,9 @@ msgstr "" msgid "Indicator Color" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:653 -#: public/js/frappe/views/workspace/workspace.js:981 -#: public/js/frappe/views/workspace/workspace.js:1225 +#: public/js/frappe/views/workspace/workspace.js:680 +#: public/js/frappe/views/workspace/workspace.js:1008 +#: public/js/frappe/views/workspace/workspace.js:1252 msgid "Indicator color" msgstr "" @@ -12870,11 +12996,11 @@ msgstr "" msgid "Invalid Override" msgstr "" -#: integrations/doctype/connected_app/connected_app.py:167 +#: integrations/doctype/connected_app/connected_app.py:191 msgid "Invalid Parameters." msgstr "" -#: core/doctype/user/user.py:1191 www/update-password.html:121 +#: core/doctype/user/user.py:1195 www/update-password.html:121 #: www/update-password.html:142 www/update-password.html:144 #: www/update-password.html:245 msgid "Invalid Password" @@ -12900,8 +13026,10 @@ msgstr "" msgid "Invalid Transition" msgstr "" -#: core/doctype/file/file.py:218 public/js/frappe/widgets/widget_dialog.js:604 -#: utils/csvutils.py:223 utils/csvutils.py:244 +#: core/doctype/file/file.py:218 +#: public/js/frappe/file_uploader/FileUploader.vue:511 +#: public/js/frappe/widgets/widget_dialog.js:604 utils/csvutils.py:223 +#: utils/csvutils.py:244 msgid "Invalid URL" msgstr "" @@ -12950,7 +13078,7 @@ msgid "Invalid filter: {0}" msgstr "" #: desk/doctype/dashboard/dashboard.py:67 -#: desk/doctype/dashboard_chart/dashboard_chart.py:413 +#: desk/doctype/dashboard_chart/dashboard_chart.py:423 msgid "Invalid json added in the custom options: {0}" msgstr "" @@ -12974,7 +13102,7 @@ msgstr "" msgid "Invalid request arguments" msgstr "" -#: integrations/doctype/connected_app/connected_app.py:173 +#: integrations/doctype/connected_app/connected_app.py:197 msgid "Invalid state." msgstr "" @@ -13572,13 +13700,9 @@ msgid "LDAP Server Url" msgstr "" #. Name of a DocType -#: integrations/doctype/ldap_settings/ldap_settings.json -msgid "LDAP Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/ldap_settings/ldap_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "LDAP Settings" msgid "LDAP Settings" msgstr "" @@ -13651,12 +13775,14 @@ msgstr "" #: desk/doctype/workspace_quick_list/workspace_quick_list.json #: desk/doctype/workspace_shortcut/workspace_shortcut.json #: printing/page/print_format_builder/print_format_builder.js:474 +#: public/js/form_builder/components/Field.vue:208 #: public/js/frappe/widgets/widget_dialog.js:187 #: public/js/frappe/widgets/widget_dialog.js:255 #: public/js/frappe/widgets/widget_dialog.js:304 #: public/js/frappe/widgets/widget_dialog.js:421 #: public/js/frappe/widgets/widget_dialog.js:645 #: public/js/frappe/widgets/widget_dialog.js:678 +#: public/js/print_format_builder/Field.vue:18 #: templates/form_grid/fields.html:37 #: website/doctype/top_bar_item/top_bar_item.json #: website/doctype/web_template_field/web_template_field.json @@ -13885,7 +14011,7 @@ msgid "Leave blank to repeat always" msgstr "" #: core/doctype/communication/mixins.py:207 -#: email/doctype/email_account/email_account.py:714 +#: email/doctype/email_account/email_account.py:715 msgid "Leave this conversation" msgstr "" @@ -13904,6 +14030,7 @@ msgid "Left" msgstr "" #: printing/page/print_format_builder/print_format_builder.js:483 +#: public/js/print_format_builder/PrintFormatControls.vue:155 msgctxt "alignment" msgid "Left" msgstr "" @@ -13988,7 +14115,8 @@ msgstr "" #: printing/doctype/letter_head/letter_head.json #: printing/page/print/print.js:127 public/js/frappe/form/print_utils.js:18 #: public/js/frappe/form/templates/print_layout.html:16 -#: public/js/frappe/list/bulk_operations.js:51 +#: public/js/frappe/list/bulk_operations.js:52 +#: public/js/print_format_builder/LetterHeadEditor.vue:144 msgid "Letter Head" msgstr "" @@ -14005,6 +14133,7 @@ msgstr "" #. Label of the letter_head_name (Data) field in DocType 'Letter Head' #: printing/doctype/letter_head/letter_head.json +#: public/js/print_format_builder/LetterHeadEditor.vue:198 msgid "Letter Head Name" msgstr "" @@ -14043,6 +14172,10 @@ msgstr "" msgid "Level Name" msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:94 +msgid "Library" +msgstr "" + #. Label of the license (Markdown Editor) field in DocType 'Package' #: core/doctype/package/package.json www/attribution.html:36 msgid "License" @@ -14145,6 +14278,7 @@ msgstr "" #: desk/doctype/desktop_icon/desktop_icon.json #: desk/doctype/notification_log/notification_log.json #: desk/doctype/workspace_link/workspace_link.json +#: public/js/frappe/file_uploader/FileUploader.vue:128 #: website/doctype/web_form_field/web_form_field.json #: website/doctype/web_template_field/web_template_field.json msgid "Link" @@ -14386,10 +14520,14 @@ msgctxt "Form timeline" msgid "Load More Communications" msgstr "" +#: public/js/frappe/file_uploader/TreeNode.vue:45 +msgid "Load more" +msgstr "" + #: core/page/permission_manager/permission_manager.js:165 #: public/js/frappe/form/controls/multicheck.js:13 #: public/js/frappe/form/linked_with.js:13 -#: public/js/frappe/list/base_list.js:498 +#: public/js/frappe/list/base_list.js:495 #: public/js/frappe/list/list_view.js:332 public/js/frappe/ui/listing.html:16 #: public/js/frappe/views/reports/query_report.js:1017 msgid "Loading" @@ -14411,6 +14549,7 @@ msgstr "" msgid "Loading versions..." msgstr "" +#: public/js/frappe/file_uploader/TreeNode.vue:45 #: public/js/frappe/form/sidebar/share.js:51 #: public/js/frappe/list/list_sidebar.js:218 #: public/js/frappe/list/list_sidebar_group_by.js:125 @@ -14501,7 +14640,7 @@ msgstr "" msgid "Login Failed please try again" msgstr "" -#: email/doctype/email_account/email_account.py:140 +#: email/doctype/email_account/email_account.py:141 msgid "Login Id is required" msgstr "" @@ -14989,7 +15128,7 @@ msgstr "" #. Option for the 'Priority' (Select) field in DocType 'ToDo' #. Label of the medium (Data) field in DocType 'Web Page View' #: desk/doctype/todo/todo.json public/js/frappe/form/sidebar/assign_to.js:220 -#: public/js/frappe/utils/utils.js:1731 +#: public/js/frappe/utils/utils.js:1732 #: website/doctype/web_page_view/web_page_view.json #: website/report/website_analytics/website_analytics.js:40 msgid "Medium" @@ -15002,6 +15141,7 @@ msgid "Meeting" msgstr "" #. Label of the meets_condition (Data) field in DocType 'Webhook' +#: email/doctype/notification/notification.py:79 #: integrations/doctype/webhook/webhook.json msgid "Meets Condition?" msgstr "" @@ -15065,6 +15205,7 @@ msgstr "" #: email/doctype/email_queue/email_queue.json #: email/doctype/newsletter/newsletter.json #: email/doctype/notification/notification.json +#: email/doctype/notification/notification.py:81 #: public/js/frappe/ui/messages.js:175 #: public/js/frappe/views/communication.js:114 #: workflow/doctype/workflow_document_state/workflow_document_state.json @@ -15113,7 +15254,7 @@ msgstr "" msgid "Message clipped" msgstr "" -#: email/doctype/email_account/email_account.py:333 +#: email/doctype/email_account/email_account.py:334 msgid "Message from server: {0}" msgstr "" @@ -15212,13 +15353,9 @@ msgid "Middle Name" msgstr "" #. Name of a DocType -#: automation/doctype/milestone/milestone.json -msgid "Milestone" -msgstr "" - #. Label of a Link in the Tools Workspace +#: automation/doctype/milestone/milestone.json #: automation/workspace/tools/tools.json -msgctxt "Milestone" msgid "Milestone" msgstr "" @@ -15363,13 +15500,8 @@ msgid "Module (for export)" msgstr "" #. Name of a DocType -#: core/doctype/module_def/module_def.json -msgid "Module Def" -msgstr "" - #. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Module Def" +#: core/doctype/module_def/module_def.json core/workspace/build/build.json msgid "Module Def" msgstr "" @@ -15385,26 +15517,18 @@ msgstr "" msgid "Module Name" msgstr "" -#. Name of a DocType -#: desk/doctype/module_onboarding/module_onboarding.json -msgid "Module Onboarding" -msgstr "" - #. Label of a Link in the Build Workspace +#. Name of a DocType #: core/workspace/build/build.json -msgctxt "Module Onboarding" +#: desk/doctype/module_onboarding/module_onboarding.json msgid "Module Onboarding" msgstr "" #. Name of a DocType #. Label of the module_profile (Link) field in DocType 'User' -#: core/doctype/module_profile/module_profile.json core/doctype/user/user.json -msgid "Module Profile" -msgstr "" - #. Label of a Link in the Users Workspace +#: core/doctype/module_profile/module_profile.json core/doctype/user/user.json #: core/workspace/users/users.json -msgctxt "Module Profile" msgid "Module Profile" msgstr "" @@ -15556,6 +15680,10 @@ msgstr "" msgid "Move To Trash" msgstr "" +#: public/js/form_builder/components/Section.vue:295 +msgid "Move current and all subsequent sections to a new tab" +msgstr "" + #: public/js/frappe/form/form.js:176 msgid "Move cursor to above row" msgstr "" @@ -15572,6 +15700,14 @@ msgstr "" msgid "Move cursor to previous column" msgstr "" +#: public/js/form_builder/components/Section.vue:294 +msgid "Move sections to new tab" +msgstr "" + +#: public/js/form_builder/components/Field.vue:237 +msgid "Move the current field and the following fields to a new column" +msgstr "" + #: public/js/frappe/form/grid_row.js:165 msgid "Move to Row Number" msgstr "" @@ -15635,6 +15771,10 @@ msgstr "" msgid "My Account" msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:57 +msgid "My Device" +msgstr "" + #. Label of a standard navbar item #. Type: Route #: hooks.py @@ -15764,13 +15904,9 @@ msgid "Navbar Item" msgstr "" #. Name of a DocType -#: core/doctype/navbar_settings/navbar_settings.json -msgid "Navbar Settings" -msgstr "" - #. Label of a Link in the Build Workspace +#: core/doctype/navbar_settings/navbar_settings.json #: core/workspace/build/build.json -msgctxt "Navbar Settings" msgid "Navbar Settings" msgstr "" @@ -15811,11 +15947,11 @@ msgstr "" msgid "Navigation Settings" msgstr "" -#: desk/doctype/workspace/workspace.py:301 +#: desk/doctype/workspace/workspace.py:305 msgid "Need Workspace Manager role to edit private workspace of other users" msgstr "" -#: desk/doctype/workspace/workspace.py:345 +#: desk/doctype/workspace/workspace.py:349 msgid "Need Workspace Manager role to hide/unhide public workspaces" msgstr "" @@ -15842,6 +15978,7 @@ msgstr "" #: email/doctype/notification/notification.json #: public/js/frappe/form/success_action.js:77 #: public/js/frappe/views/treeview.js:450 +#: public/js/frappe/views/workspace/workspace.js:95 #: social/doctype/energy_point_rule/energy_point_rule.json #: website/doctype/web_form/templates/web_list.html:15 www/list.html:19 msgid "New" @@ -15975,7 +16112,7 @@ msgstr "" msgid "New Workflow Name" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1186 +#: public/js/frappe/views/workspace/workspace.js:1213 msgid "New Workspace" msgstr "" @@ -16033,23 +16170,18 @@ msgstr "" msgid "New {} releases for the following apps are available" msgstr "" -#: core/doctype/user/user.py:768 +#: core/doctype/user/user.py:772 msgid "Newly created user {0} has no roles enabled." msgstr "" #. Label of a Card Break in the Tools Workspace +#. Label of a Link in the Tools Workspace #. Name of a DocType #: automation/workspace/tools/tools.json #: email/doctype/newsletter/newsletter.json msgid "Newsletter" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Newsletter" -msgid "Newsletter" -msgstr "" - #. Name of a DocType #: email/doctype/newsletter_attachment/newsletter_attachment.json msgid "Newsletter Attachment" @@ -16164,6 +16296,7 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: core/doctype/page/page.json core/doctype/report/report.json +#: email/doctype/notification/notification.py:100 #: integrations/doctype/ldap_settings/ldap_settings.json #: integrations/doctype/webhook/webhook.py:140 #: printing/doctype/print_format/print_format.json @@ -16200,6 +16333,7 @@ msgstr "" #: core/doctype/data_export/exporter.py:162 #: email/doctype/auto_email_report/auto_email_report.py:288 +#: public/js/form_builder/components/controls/TableControl.vue:64 #: public/js/frappe/data_import/import_preview.js:142 #: public/js/frappe/form/grid.js:63 #: public/js/frappe/form/multi_select_dialog.js:225 @@ -16254,13 +16388,20 @@ msgstr "" msgid "No LDAP User found for email: {0}" msgstr "" +#: public/js/form_builder/components/EditableInput.vue:11 +#: public/js/form_builder/components/EditableInput.vue:14 +#: public/js/form_builder/components/Field.vue:209 +#: public/js/form_builder/components/controls/FetchFromControl.vue:55 +#: public/js/print_format_builder/Field.vue:24 +#: public/js/workflow_builder/components/ActionNode.vue:53 +#: public/js/workflow_builder/components/StateNode.vue:47 #: public/js/workflow_builder/store.js:51 msgid "No Label" msgstr "" #: printing/page/print/print.js:700 printing/page/print/print.js:782 -#: public/js/frappe/list/bulk_operations.js:90 -#: public/js/frappe/list/bulk_operations.js:140 utils/weasyprint.py:52 +#: public/js/frappe/list/bulk_operations.js:98 +#: public/js/frappe/list/bulk_operations.js:170 utils/weasyprint.py:52 msgid "No Letterhead" msgstr "" @@ -16312,7 +16453,7 @@ msgstr "" msgid "No Results found" msgstr "" -#: core/doctype/user/user.py:769 +#: core/doctype/user/user.py:773 msgid "No Roles Specified" msgstr "" @@ -16340,7 +16481,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: email/doctype/notification/notification.js:203 +#: email/doctype/notification/notification.js:215 msgid "No alerts for today" msgstr "" @@ -16360,7 +16501,7 @@ msgstr "" msgid "No changes made because old and new name are the same." msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1491 +#: public/js/frappe/views/workspace/workspace.js:1518 msgid "No changes made on the page" msgstr "" @@ -16500,6 +16641,10 @@ msgstr "" msgid "No records will be exported" msgstr "" +#: email/doctype/notification/notification.py:133 +msgid "No subject" +msgstr "" + #: www/printview.py:442 msgid "No template found at path: {0}" msgstr "" @@ -16562,7 +16707,7 @@ msgstr "" msgid "Normalized Query" msgstr "" -#: core/doctype/user/user.py:974 templates/includes/login/login.js:257 +#: core/doctype/user/user.py:978 templates/includes/login/login.js:257 #: utils/oauth.py:265 msgid "Not Allowed" msgstr "" @@ -16681,7 +16826,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: email/doctype/notification/notification.py:440 +#: email/doctype/notification/notification.py:501 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -16726,15 +16871,10 @@ msgstr "" msgid "Not permitted to view {0}" msgstr "" +#. Label of a Link in the Tools Workspace #. Name of a DocType #: automation/doctype/auto_repeat/auto_repeat.py:396 -#: desk/doctype/note/note.json -msgid "Note" -msgstr "" - -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Note" +#: automation/workspace/tools/tools.json desk/doctype/note/note.json msgid "Note" msgstr "" @@ -16813,12 +16953,14 @@ msgid "Nothing to update" msgstr "" #. Label of the notification (Section Break) field in DocType 'Auto Repeat' +#. Label of a Link in the Tools Workspace #. Option for the 'Communication Type' (Select) field in DocType #. 'Communication' #. Name of a DocType #. Label of the notification_section (Section Break) field in DocType 'S3 #. Backup Settings' #: automation/doctype/auto_repeat/auto_repeat.json +#: automation/workspace/tools/tools.json #: core/doctype/communication/communication.json #: core/doctype/communication/mixins.py:142 #: email/doctype/notification/notification.json @@ -16826,12 +16968,6 @@ msgstr "" msgid "Notification" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Notification" -msgid "Notification" -msgstr "" - #. Name of a DocType #: desk/doctype/notification_log/notification_log.json msgid "Notification Log" @@ -16842,18 +16978,14 @@ msgstr "" msgid "Notification Recipient" msgstr "" +#. Label of a Link in the Tools Workspace #. Name of a DocType +#: automation/workspace/tools/tools.json #: desk/doctype/notification_settings/notification_settings.json #: public/js/frappe/ui/notifications/notifications.js:37 msgid "Notification Settings" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Notification Settings" -msgid "Notification Settings" -msgstr "" - #. Name of a DocType #: desk/doctype/notification_subscribed_document/notification_subscribed_document.json msgid "Notification Subscribed Document" @@ -16863,15 +16995,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: email/doctype/notification/notification.py:345 +#: email/doctype/notification/notification.py:406 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: email/doctype/notification/notification.py:331 +#: email/doctype/notification/notification.py:392 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: email/doctype/notification/notification.py:340 +#: email/doctype/notification/notification.py:401 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17039,13 +17171,9 @@ msgid "OAuth Bearer Token" msgstr "" #. Name of a DocType -#: integrations/doctype/oauth_client/oauth_client.json -msgid "OAuth Client" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/oauth_client/oauth_client.json #: integrations/workspace/integrations/integrations.json -msgctxt "OAuth Client" msgid "OAuth Client" msgstr "" @@ -17064,13 +17192,9 @@ msgid "OAuth Error" msgstr "" #. Name of a DocType -#: integrations/doctype/oauth_provider_settings/oauth_provider_settings.json -msgid "OAuth Provider Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/oauth_provider_settings/oauth_provider_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "OAuth Provider Settings" msgid "OAuth Provider Settings" msgstr "" @@ -17079,7 +17203,7 @@ msgstr "" msgid "OAuth Scope" msgstr "" -#: email/doctype/email_account/email_account.js:211 +#: email/doctype/email_account/email_account.js:215 msgid "OAuth has been enabled but not authorised. Please use \"Authorise API Access\" button to do the same." msgstr "" @@ -17092,6 +17216,10 @@ msgstr "" msgid "OPTIONS" msgstr "" +#: public/js/form_builder/components/Tabs.vue:190 +msgid "OR" +msgstr "" + #. Option for the 'Two Factor Authentication method' (Select) field in DocType #. 'System Settings' #: core/doctype/system_settings/system_settings.json @@ -17271,7 +17399,7 @@ msgstr "" msgid "One of" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1326 +#: public/js/frappe/views/workspace/workspace.js:1353 msgid "One of the child page with name {0} already exist in {1} Section. Please update the name of the child page first before moving" msgstr "" @@ -17313,7 +17441,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:550 +#: public/js/frappe/views/workspace/workspace.js:577 msgid "Only Workspace Manager can sort or edit this page" msgstr "" @@ -17443,6 +17571,10 @@ msgstr "" msgid "Open a module or tool" msgstr "" +#: public/js/print_format_builder/Preview.vue:17 +msgid "Open in a new tab" +msgstr "" + #: public/js/frappe/list/list_view.js:1251 msgctxt "Description of a list view shortcut" msgid "Open list item" @@ -17495,6 +17627,7 @@ msgstr "" #: core/doctype/file/file.js:24 #: core/report/database_storage_usage_by_tables/database_storage_usage_by_tables.js:8 +#: public/js/frappe/file_uploader/FilePreview.vue:27 msgid "Optimize" msgstr "" @@ -17749,25 +17882,17 @@ msgstr "" #. Label of the package (Link) field in DocType 'Module Def' #. Name of a DocType #. Label of the package (Link) field in DocType 'Package Release' -#: core/doctype/module_def/module_def.json core/doctype/package/package.json -#: core/doctype/package_release/package_release.json www/attribution.html:34 -msgid "Package" -msgstr "" - #. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Package" +#: core/doctype/module_def/module_def.json core/doctype/package/package.json +#: core/doctype/package_release/package_release.json +#: core/workspace/build/build.json www/attribution.html:34 msgid "Package" msgstr "" #. Name of a DocType -#: core/doctype/package_import/package_import.json -msgid "Package Import" -msgstr "" - #. Label of a Link in the Build Workspace +#: core/doctype/package_import/package_import.json #: core/workspace/build/build.json -msgctxt "Package Import" msgid "Package Import" msgstr "" @@ -17809,6 +17934,7 @@ msgid "Page" msgstr "" #. Option for the 'Fieldtype' (Select) field in DocType 'Web Form Field' +#: public/js/print_format_builder/PrintFormatSection.vue:63 #: website/doctype/web_form_field/web_form_field.json msgid "Page Break" msgstr "" @@ -17829,10 +17955,14 @@ msgstr "" msgid "Page HTML" msgstr "" -#: public/js/frappe/list/bulk_operations.js:72 +#: public/js/frappe/list/bulk_operations.js:73 msgid "Page Height (in mm)" msgstr "" +#: public/js/print_format_builder/PrintFormatControls.vue:5 +msgid "Page Margins" +msgstr "" + #. Label of the page_name (Data) field in DocType 'Page' #: core/doctype/page/page.json msgid "Page Name" @@ -17840,6 +17970,7 @@ msgstr "" #. Label of the page_number (Select) field in DocType 'Print Format' #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:63 msgid "Page Number" msgstr "" @@ -17848,7 +17979,7 @@ msgstr "" msgid "Page Route" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1513 +#: public/js/frappe/views/workspace/workspace.js:1540 msgid "Page Saved Successfully" msgstr "" @@ -17862,7 +17993,7 @@ msgstr "" msgid "Page Shortcuts" msgstr "" -#: public/js/frappe/list/bulk_operations.js:65 +#: public/js/frappe/list/bulk_operations.js:66 msgid "Page Size" msgstr "" @@ -17871,7 +18002,7 @@ msgstr "" msgid "Page Title" msgstr "" -#: public/js/frappe/list/bulk_operations.js:79 +#: public/js/frappe/list/bulk_operations.js:80 msgid "Page Width (in mm)" msgstr "" @@ -17880,7 +18011,7 @@ msgid "Page has expired!" msgstr "" #: printing/doctype/print_settings/print_settings.py:70 -#: public/js/frappe/list/bulk_operations.js:98 +#: public/js/frappe/list/bulk_operations.js:106 msgid "Page height and width cannot be zero" msgstr "" @@ -17893,7 +18024,7 @@ msgstr "" msgid "Page to show on the website\n" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1313 +#: public/js/frappe/views/workspace/workspace.js:1340 msgid "Page with title {0} already exist." msgstr "" @@ -17910,9 +18041,9 @@ msgid "Parameter" msgstr "" #: public/js/frappe/model/model.js:142 -#: public/js/frappe/views/workspace/workspace.js:620 -#: public/js/frappe/views/workspace/workspace.js:948 -#: public/js/frappe/views/workspace/workspace.js:1195 +#: public/js/frappe/views/workspace/workspace.js:647 +#: public/js/frappe/views/workspace/workspace.js:975 +#: public/js/frappe/views/workspace/workspace.js:1222 msgid "Parent" msgstr "" @@ -17970,7 +18101,7 @@ msgstr "" msgid "Parent Table" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:393 +#: desk/doctype/dashboard_chart/dashboard_chart.py:403 msgid "Parent document type is required to create a dashboard chart" msgstr "" @@ -18036,11 +18167,11 @@ msgstr "" msgid "Password" msgstr "" -#: core/doctype/user/user.py:1037 +#: core/doctype/user/user.py:1041 msgid "Password Email Sent" msgstr "" -#: core/doctype/user/user.py:412 +#: core/doctype/user/user.py:416 msgid "Password Reset" msgstr "" @@ -18062,7 +18193,7 @@ msgstr "" msgid "Password for Base DN" msgstr "" -#: email/doctype/email_account/email_account.py:182 +#: email/doctype/email_account/email_account.py:183 msgid "Password is required or select Awaiting Password" msgstr "" @@ -18074,7 +18205,7 @@ msgstr "" msgid "Password not found for {0} {1} {2}" msgstr "" -#: core/doctype/user/user.py:1036 +#: core/doctype/user/user.py:1040 msgid "Password reset instructions have been sent to {}'s email" msgstr "" @@ -18086,7 +18217,7 @@ msgstr "" msgid "Password size exceeded the maximum allowed size" msgstr "" -#: core/doctype/user/user.py:832 +#: core/doctype/user/user.py:836 msgid "Password size exceeded the maximum allowed size." msgstr "" @@ -18419,7 +18550,7 @@ msgstr "" msgid "Plant" msgstr "" -#: email/doctype/email_account/email_account.py:535 +#: email/doctype/email_account/email_account.py:536 msgid "Please Authorize OAuth for Email Account {0}" msgstr "" @@ -18451,7 +18582,7 @@ msgstr "" msgid "Please add a valid comment." msgstr "" -#: core/doctype/user/user.py:1019 +#: core/doctype/user/user.py:1023 msgid "Please ask your administrator to verify your sign-up" msgstr "" @@ -18483,7 +18614,7 @@ msgstr "" msgid "Please check the value of \"Fetch From\" set for field {0}" msgstr "" -#: core/doctype/user/user.py:1017 +#: core/doctype/user/user.py:1021 msgid "Please check your email for verification" msgstr "" @@ -18546,7 +18677,8 @@ msgstr "" #: desk/doctype/notification_log/notification_log.js:45 #: email/doctype/auto_email_report/auto_email_report.js:17 #: printing/page/print/print.js:635 printing/page/print/print.js:665 -#: public/js/frappe/utils/utils.js:1426 +#: public/js/frappe/list/bulk_operations.js:161 +#: public/js/frappe/utils/utils.js:1427 msgid "Please enable pop-ups" msgstr "" @@ -18687,6 +18819,10 @@ msgstr "" msgid "Please select a country code for field {1}." msgstr "" +#: public/js/frappe/file_uploader/FileUploader.vue:487 +msgid "Please select a file first." +msgstr "" + #: utils/file_manager.py:50 msgid "Please select a file or url" msgstr "" @@ -18765,11 +18901,11 @@ msgstr "" msgid "Please setup a message first" msgstr "" -#: email/doctype/email_account/email_account.py:423 +#: email/doctype/email_account/email_account.py:424 msgid "Please setup default Email Account from Settings > Email Account" msgstr "" -#: core/doctype/user/user.py:377 +#: core/doctype/user/user.py:381 msgid "Please setup default outgoing Email Account from Settings > Email Account" msgstr "" @@ -18781,11 +18917,11 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: email/doctype/notification/notification.py:88 +#: email/doctype/notification/notification.py:149 msgid "Please specify which date field must be checked" msgstr "" -#: email/doctype/notification/notification.py:91 +#: email/doctype/notification/notification.py:152 msgid "Please specify which value field must be checked" msgstr "" @@ -18872,13 +19008,9 @@ msgid "Portal Menu Item" msgstr "" #. Name of a DocType -#: website/doctype/portal_settings/portal_settings.json -msgid "Portal Settings" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/portal_settings/portal_settings.json #: website/workspace/website/website.json -msgctxt "Portal Settings" msgid "Portal Settings" msgstr "" @@ -19011,6 +19143,7 @@ msgstr "" #: desk/doctype/custom_html_block/custom_html_block.json #: email/doctype/newsletter/newsletter.js:14 #: email/doctype/newsletter/newsletter.js:42 +#: email/doctype/notification/notification.js:184 #: integrations/doctype/webhook/webhook.json #: printing/doctype/print_style/print_style.json #: public/js/frappe/form/controls/markdown_editor.js:17 @@ -19046,6 +19179,14 @@ msgstr "" msgid "Preview of generated names" msgstr "" +#: public/js/frappe/views/render_preview.js:19 +msgid "Preview on" +msgstr "" + +#: public/js/print_format_builder/Preview.vue:103 +msgid "Preview type" +msgstr "" + #: email/doctype/email_group/email_group.js:90 msgid "Preview:" msgstr "" @@ -19120,7 +19261,7 @@ msgstr "" #: printing/page/print/print.js:65 public/js/frappe/form/success_action.js:81 #: public/js/frappe/form/templates/print_layout.html:46 #: public/js/frappe/form/toolbar.js:332 public/js/frappe/form/toolbar.js:344 -#: public/js/frappe/list/bulk_operations.js:87 +#: public/js/frappe/list/bulk_operations.js:95 #: public/js/frappe/views/reports/query_report.js:1640 #: public/js/frappe/views/reports/report_view.js:1460 #: public/js/frappe/views/treeview.js:469 www/printview.html:18 @@ -19132,29 +19273,24 @@ msgctxt "Button in list view actions menu" msgid "Print" msgstr "" -#: public/js/frappe/list/bulk_operations.js:47 +#: public/js/frappe/list/bulk_operations.js:48 msgid "Print Documents" msgstr "" #. Label of the print_format (Link) field in DocType 'Auto Repeat' +#. Label of a Link in the Build Workspace #. Label of the print_format (Link) field in DocType 'Notification' #. Name of a DocType #. Label of the print_format (Link) field in DocType 'Web Form' #: automation/doctype/auto_repeat/auto_repeat.json -#: email/doctype/notification/notification.json +#: core/workspace/build/build.json email/doctype/notification/notification.json #: printing/doctype/print_format/print_format.json #: printing/page/print/print.js:94 printing/page/print/print.js:819 -#: public/js/frappe/list/bulk_operations.js:58 +#: public/js/frappe/list/bulk_operations.js:59 #: website/doctype/web_form/web_form.json msgid "Print Format" msgstr "" -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Print Format" -msgid "Print Format" -msgstr "" - #. Label of a Link in the Tools Workspace #. Label of a shortcut in the Build Workspace #. Label of the print_format_builder (Check) field in DocType 'Print Format' @@ -19205,15 +19341,11 @@ msgstr "" msgid "Print Formats allow you can define looks for documents when printed or converted to PDF. You can also create a custom Print Format using drag-and-drop tools." msgstr "" +#. Label of a Link in the Tools Workspace #. Name of a DocType #. Label of the print_heading (Data) field in DocType 'Print Heading' -#: printing/doctype/print_heading/print_heading.json -msgid "Print Heading" -msgstr "" - -#. Label of a Link in the Tools Workspace #: automation/workspace/tools/tools.json -msgctxt "Print Heading" +#: printing/doctype/print_heading/print_heading.json msgid "Print Heading" msgstr "" @@ -19250,8 +19382,10 @@ msgstr "" msgid "Print Server" msgstr "" +#. Label of a Link in the Tools Workspace #. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType +#: automation/workspace/tools/tools.json #: email/doctype/notification/notification.json #: printing/doctype/print_settings/print_settings.json #: printing/doctype/print_style/print_style.js:6 @@ -19260,12 +19394,6 @@ msgstr "" msgid "Print Settings" msgstr "" -#. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "Print Settings" -msgid "Print Settings" -msgstr "" - #. Label of the print_style_section (Section Break) field in DocType 'Print #. Settings' #. Label of the print_style (Link) field in DocType 'Print Settings' @@ -19360,6 +19488,7 @@ msgstr "" #: desk/doctype/custom_html_block/custom_html_block.json #: desk/doctype/event/event.json desk/doctype/kanban_board/kanban_board.json #: desk/doctype/note/note_list.js:8 +#: public/js/frappe/file_uploader/FilePreview.vue:34 msgid "Private" msgstr "" @@ -19387,7 +19516,7 @@ msgstr "" msgid "Processing" msgstr "" -#: email/doctype/email_queue/email_queue.py:447 +#: email/doctype/email_queue/email_queue.py:454 msgid "Processing..." msgstr "" @@ -19462,9 +19591,9 @@ msgstr "" #: desk/doctype/event/event.json desk/doctype/note/note.json #: desk/doctype/note/note_list.js:6 desk/doctype/workspace/workspace.json #: public/js/frappe/views/interaction.js:78 -#: public/js/frappe/views/workspace/workspace.js:627 -#: public/js/frappe/views/workspace/workspace.js:955 -#: public/js/frappe/views/workspace/workspace.js:1201 +#: public/js/frappe/views/workspace/workspace.js:654 +#: public/js/frappe/views/workspace/workspace.js:982 +#: public/js/frappe/views/workspace/workspace.js:1228 msgid "Public" msgstr "" @@ -19573,13 +19702,9 @@ msgid "Purple" msgstr "" #. Name of a DocType -#: integrations/doctype/push_notification_settings/push_notification_settings.json -msgid "Push Notification Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/push_notification_settings/push_notification_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "Push Notification Settings" msgid "Push Notification Settings" msgstr "" @@ -19870,7 +19995,7 @@ msgstr "" msgid "Re-Run in Console" msgstr "" -#: email/doctype/email_account/email_account.py:720 +#: email/doctype/email_account/email_account.py:721 msgid "Re:" msgstr "" @@ -20191,6 +20316,7 @@ msgstr "" #. Label of the reference_doctype (Link) field in DocType 'Discussion Topic' #: core/doctype/communication/communication.js:143 #: core/report/transaction_log_report/transaction_log_report.py:88 +#: public/js/frappe/views/render_preview.js:34 #: website/doctype/discussion_topic/discussion_topic.json msgid "Reference Doctype" msgstr "" @@ -20345,6 +20471,7 @@ msgstr "" #: public/js/frappe/views/treeview.js:475 #: public/js/frappe/widgets/chart_widget.js:291 #: public/js/frappe/widgets/number_card_widget.js:324 +#: public/js/print_format_builder/Preview.vue:24 msgid "Refresh" msgstr "" @@ -20380,7 +20507,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: core/doctype/user/user.py:981 +#: core/doctype/user/user.py:985 msgid "Registered but disabled" msgstr "" @@ -20505,10 +20632,37 @@ msgstr "" msgid "Remove all customizations?" msgstr "" +#: public/js/form_builder/components/Section.vue:286 +msgid "Remove all fields in the column" +msgstr "" + +#: public/js/form_builder/components/Section.vue:278 #: public/js/frappe/utils/datatable.js:9 +#: public/js/print_format_builder/PrintFormatSection.vue:120 msgid "Remove column" msgstr "" +#: public/js/form_builder/components/Field.vue:260 +msgid "Remove field" +msgstr "" + +#: public/js/form_builder/components/Section.vue:279 +msgid "Remove last column" +msgstr "" + +#: public/js/print_format_builder/PrintFormatSection.vue:130 +msgid "Remove page break" +msgstr "" + +#: public/js/form_builder/components/Section.vue:266 +#: public/js/print_format_builder/PrintFormatSection.vue:135 +msgid "Remove section" +msgstr "" + +#: public/js/form_builder/components/Tabs.vue:140 +msgid "Remove tab" +msgstr "" + #: core/doctype/file/file.py:156 msgid "Removed {0}" msgstr "" @@ -20533,6 +20687,10 @@ msgstr "" msgid "Renamed files and replaced code in controllers, please check!" msgstr "" +#: public/js/print_format_builder/PrintFormatSection.vue:17 +msgid "Render labels to the left and values to the right in this section" +msgstr "" + #: core/doctype/communication/communication.js:43 desk/doctype/todo/todo.js:36 msgid "Reopen" msgstr "" @@ -20614,6 +20772,8 @@ msgstr "" #. Page and Report' #. Label of the report (Link) field in DocType 'Role Permission for Page and #. Report' +#. Label of a Link in the Build Workspace +#. Label of a shortcut in the Build Workspace #. Option for the 'Chart Type' (Select) field in DocType 'Dashboard Chart' #. Option for the 'Select List View' (Select) field in DocType 'Form Tour' #. Option for the 'Type' (Select) field in DocType 'Number Card' @@ -20626,6 +20786,7 @@ msgstr "" #: core/doctype/custom_role/custom_role.json core/doctype/docperm/docperm.json #: core/doctype/report/report.json #: core/doctype/role_permission_for_page_and_report/role_permission_for_page_and_report.json +#: core/workspace/build/build.json #: desk/doctype/dashboard_chart/dashboard_chart.json #: desk/doctype/form_tour/form_tour.json #: desk/doctype/number_card/number_card.json @@ -20637,13 +20798,6 @@ msgstr "" msgid "Report" msgstr "" -#. Label of a Link in the Build Workspace -#. Label of a shortcut in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Report" -msgid "Report" -msgstr "" - #. Option for the 'Report Type' (Select) field in DocType 'Report' #. Option for the 'DocType View' (Select) field in DocType 'Workspace Shortcut' #: core/doctype/report/report.json @@ -20716,6 +20870,11 @@ msgstr "" msgid "Report Name, Report Field and Fucntion are required to create a number card" msgstr "" +#. Label of the report_ref_doctype (Link) field in DocType 'Workspace Link' +#: desk/doctype/workspace_link/workspace_link.json +msgid "Report Ref DocType" +msgstr "" + #. Label of the report_reference_doctype (Data) field in DocType 'Onboarding #. Step' #: desk/doctype/onboarding_step/onboarding_step.json @@ -20973,6 +21132,10 @@ msgstr "" msgid "Reset Permissions for {0}?" msgstr "" +#: public/js/form_builder/components/Field.vue:114 +msgid "Reset To Default" +msgstr "" + #: public/js/frappe/utils/datatable.js:8 msgid "Reset sorting" msgstr "" @@ -21070,8 +21233,8 @@ msgctxt "Title of message showing restrictions in list view" msgid "Restrictions" msgstr "" -#: public/js/frappe/ui/toolbar/awesome_bar.js:356 -#: public/js/frappe/ui/toolbar/awesome_bar.js:371 +#: public/js/frappe/ui/toolbar/awesome_bar.js:379 +#: public/js/frappe/ui/toolbar/awesome_bar.js:394 msgid "Result" msgstr "" @@ -21179,6 +21342,7 @@ msgid "Right" msgstr "" #: printing/page/print_format_builder/print_format_builder.js:484 +#: public/js/print_format_builder/PrintFormatControls.vue:156 msgctxt "alignment" msgid "Right" msgstr "" @@ -21204,6 +21368,8 @@ msgstr "" #. Label of the role (Link) field in DocType 'Has Role' #. Name of a DocType #. Label of the role (Link) field in DocType 'User Type' +#. Label of a Link in the Users Workspace +#. Label of a shortcut in the Users Workspace #. Label of the role (Link) field in DocType 'Onboarding Permission' #. Label of the role (Link) field in DocType 'ToDo' #. Label of the role (Link) field in DocType 'OAuth Client Role' @@ -21217,6 +21383,7 @@ msgstr "" #: core/doctype/user_type/user_type.py:109 #: core/page/permission_manager/permission_manager.js:212 #: core/page/permission_manager/permission_manager.js:450 +#: core/workspace/users/users.json #: desk/doctype/onboarding_permission/onboarding_permission.json #: desk/doctype/todo/todo.json #: integrations/doctype/oauth_client_role/oauth_client_role.json @@ -21226,13 +21393,6 @@ msgstr "" msgid "Role" msgstr "" -#. Label of a Link in the Users Workspace -#. Label of a shortcut in the Users Workspace -#: core/workspace/users/users.json -msgctxt "Role" -msgid "Role" -msgstr "" - #: core/doctype/role/role.js:8 msgid "Role 'All' will be given to all system + website users." msgstr "" @@ -21248,13 +21408,9 @@ msgid "Role Name" msgstr "" #. Name of a DocType -#: core/doctype/role_permission_for_page_and_report/role_permission_for_page_and_report.json -msgid "Role Permission for Page and Report" -msgstr "" - #. Label of a Link in the Users Workspace +#: core/doctype/role_permission_for_page_and_report/role_permission_for_page_and_report.json #: core/workspace/users/users.json -msgctxt "Role Permission for Page and Report" msgid "Role Permission for Page and Report" msgstr "" @@ -21279,14 +21435,10 @@ msgstr "" #. Name of a DocType #. Label of the role_profile_name (Link) field in DocType 'User' #. Label of the role_profile (Link) field in DocType 'User Role Profile' +#. Label of a Link in the Users Workspace #: core/doctype/role_profile/role_profile.json core/doctype/user/user.json #: core/doctype/user_role_profile/user_role_profile.json -msgid "Role Profile" -msgstr "" - -#. Label of a Link in the Users Workspace #: core/workspace/users/users.json -msgctxt "Role Profile" msgid "Role Profile" msgstr "" @@ -21540,13 +21692,9 @@ msgid "Run scheduled jobs only if checked" msgstr "" #. Name of a DocType -#: integrations/doctype/s3_backup_settings/s3_backup_settings.json -msgid "S3 Backup Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/s3_backup_settings/s3_backup_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "S3 Backup Settings" msgid "S3 Backup Settings" msgstr "" @@ -21586,13 +21734,9 @@ msgid "SMS Parameter" msgstr "" #. Name of a DocType -#: core/doctype/sms_settings/sms_settings.json -msgid "SMS Settings" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: core/doctype/sms_settings/sms_settings.json #: integrations/workspace/integrations/integrations.json -msgctxt "SMS Settings" msgid "SMS Settings" msgstr "" @@ -21604,7 +21748,7 @@ msgstr "" msgid "SMS was not sent. Please contact Administrator." msgstr "" -#: email/doctype/email_account/email_account.py:205 +#: email/doctype/email_account/email_account.py:206 msgid "SMTP Server is required" msgstr "" @@ -21714,7 +21858,7 @@ msgstr "" #: public/js/frappe/views/kanban/kanban_view.js:343 #: public/js/frappe/views/reports/query_report.js:1802 #: public/js/frappe/views/reports/report_view.js:1640 -#: public/js/frappe/views/workspace/workspace.js:501 +#: public/js/frappe/views/workspace/workspace.js:528 #: public/js/frappe/widgets/base_widget.js:142 #: public/js/frappe/widgets/quick_list_widget.js:119 #: public/js/print_format_builder/print_format_builder.bundle.js:15 @@ -21769,7 +21913,7 @@ msgstr "" #: public/js/frappe/list/list_settings.js:40 #: public/js/frappe/views/kanban/kanban_settings.js:47 -#: public/js/frappe/views/workspace/workspace.js:513 +#: public/js/frappe/views/workspace/workspace.js:540 msgid "Saving" msgstr "" @@ -21840,22 +21984,17 @@ msgid "Scheduled Job Log" msgstr "" #. Name of a DocType +#. Label of a Link in the Build Workspace #. Label of the scheduled_job_type (Link) field in DocType 'System Health #. Report Failing Jobs' #: core/doctype/scheduled_job_type/scheduled_job_type.json +#: core/workspace/build/build.json #: desk/doctype/system_health_report_failing_jobs/system_health_report_failing_jobs.json msgid "Scheduled Job Type" msgstr "" #. Label of a Link in the Build Workspace #: core/workspace/build/build.json -msgctxt "Scheduled Job Type" -msgid "Scheduled Job Type" -msgstr "" - -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Scheduled Job Log" msgid "Scheduled Jobs Logs" msgstr "" @@ -22019,14 +22158,30 @@ msgstr "" msgid "Search Priorities" msgstr "" +#: public/js/frappe/file_uploader/FileBrowser.vue:132 +msgid "Search Results" +msgstr "" + #: www/search.py:14 msgid "Search Results for" msgstr "" +#: public/js/frappe/file_uploader/FileBrowser.vue:13 +msgid "Search by filename or extension" +msgstr "" + #: core/doctype/doctype/doctype.py:1436 msgid "Search field {0} is not valid" msgstr "" +#: public/js/print_format_builder/PrintFormatControls.vue:87 +msgid "Search fields" +msgstr "" + +#: public/js/form_builder/components/AddFieldButton.vue:19 +msgid "Search fieldtypes..." +msgstr "" + #: public/js/frappe/ui/toolbar/search.js:50 #: public/js/frappe/ui/toolbar/search.js:69 msgid "Search for anything" @@ -22045,6 +22200,10 @@ msgstr "" msgid "Search or type a command ({0})" msgstr "" +#: public/js/form_builder/components/SearchBox.vue:8 +msgid "Search properties..." +msgstr "" + #: templates/includes/search_box.html:8 msgid "Search results for" msgstr "" @@ -22060,6 +22219,7 @@ msgid "Searching ..." msgstr "" #. Option for the 'Type' (Select) field in DocType 'Web Template' +#: public/js/form_builder/components/Section.vue:263 #: website/doctype/web_template/web_template.json msgid "Section" msgstr "" @@ -22086,6 +22246,16 @@ msgstr "" msgid "Section ID" msgstr "" +#: public/js/form_builder/components/Section.vue:28 +#: public/js/print_format_builder/PrintFormatSection.vue:8 +msgid "Section Title" +msgstr "" + +#: public/js/form_builder/components/Section.vue:217 +#: public/js/form_builder/components/Section.vue:240 +msgid "Section must have at least one column" +msgstr "" + #. Label of the sb3 (Section Break) field in DocType 'User' #: core/doctype/user/user.json msgid "Security Settings" @@ -22204,6 +22374,7 @@ msgid "Select Date Range" msgstr "" #. Label of the doc_type (Link) field in DocType 'Web Form' +#: public/js/form_builder/components/controls/FetchFromControl.vue:28 #: public/js/frappe/doctype/index.js:171 website/doctype/web_form/web_form.json msgid "Select DocType" msgstr "" @@ -22231,6 +22402,7 @@ msgstr "" msgid "Select Document Types to set which User Permissions are used to limit access." msgstr "" +#: public/js/form_builder/components/controls/FetchFromControl.vue:33 #: public/js/frappe/doctype/index.js:200 public/js/frappe/form/toolbar.js:771 msgid "Select Field" msgstr "" @@ -22353,6 +22525,10 @@ msgstr "" msgid "Select a document to preview request data" msgstr "" +#: public/js/form_builder/components/Sidebar.vue:56 +msgid "Select a field to edit its properties." +msgstr "" + #: public/js/frappe/views/treeview.js:337 msgid "Select a group node first." msgstr "" @@ -22379,7 +22555,7 @@ msgstr "" msgid "Select an image of approx width 150px with a transparent background for best results." msgstr "" -#: public/js/frappe/list/bulk_operations.js:35 +#: public/js/frappe/list/bulk_operations.js:36 msgid "Select atleast 1 record for printing" msgstr "" @@ -22402,11 +22578,11 @@ msgstr "" msgid "Select or drag across time slots to create a new event." msgstr "" -#: public/js/frappe/list/bulk_operations.js:209 +#: public/js/frappe/list/bulk_operations.js:239 msgid "Select records for assignment" msgstr "" -#: public/js/frappe/list/bulk_operations.js:230 +#: public/js/frappe/list/bulk_operations.js:260 msgid "Select records for removing assignment" msgstr "" @@ -22423,6 +22599,7 @@ msgstr "" #: public/js/frappe/form/multi_select_dialog.js:81 #: public/js/frappe/form/multi_select_dialog.js:281 #: public/js/frappe/list/list_view_select.js:153 +#: public/js/print_format_builder/Preview.vue:90 msgid "Select {0}" msgstr "" @@ -22767,15 +22944,11 @@ msgstr "" #. Label of the server_script (Link) field in DocType 'Scheduled Job Type' #. Name of a DocType -#: core/doctype/scheduled_job_type/scheduled_job_type.json -#: core/doctype/server_script/server_script.json -msgid "Server Script" -msgstr "" - #. Label of a Link in the Build Workspace #. Label of a shortcut in the Build Workspace +#: core/doctype/scheduled_job_type/scheduled_job_type.json +#: core/doctype/server_script/server_script.json #: core/workspace/build/build.json -msgctxt "Server Script" msgid "Server Script" msgstr "" @@ -22870,6 +23043,7 @@ msgstr "" #: desk/doctype/dashboard_chart/dashboard_chart.js:381 #: desk/doctype/number_card/number_card.js:280 +#: public/js/form_builder/components/Field.vue:80 #: website/doctype/web_form/web_form.js:269 msgid "Set Filters" msgstr "" @@ -23044,7 +23218,7 @@ msgstr "" #: integrations/workspace/integrations/integrations.json #: public/js/frappe/form/templates/print_layout.html:25 #: public/js/frappe/ui/toolbar/toolbar.js:289 -#: public/js/frappe/views/workspace/workspace.js:529 +#: public/js/frappe/views/workspace/workspace.js:556 #: website/doctype/web_form/web_form.json #: website/doctype/web_page/web_page.json msgid "Settings" @@ -23450,6 +23624,11 @@ msgstr "" msgid "Show more details" msgstr "" +#. Label of the show_on_timeline (Check) field in DocType 'DocField' +#: core/doctype/docfield/docfield.json +msgid "Show on Timeline" +msgstr "" + #. Description of the 'Stats Time Interval' (Select) field in DocType 'Number #. Card' #: desk/doctype/number_card/number_card.json @@ -23500,7 +23679,7 @@ msgstr "" msgid "Sign Up and Confirmation" msgstr "" -#: core/doctype/user/user.py:974 +#: core/doctype/user/user.py:978 msgid "Sign Up is disabled" msgstr "" @@ -23644,13 +23823,9 @@ msgid "Slack Webhook Error" msgstr "" #. Name of a DocType -#: integrations/doctype/slack_webhook_url/slack_webhook_url.json -msgid "Slack Webhook URL" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/slack_webhook_url/slack_webhook_url.json #: integrations/workspace/integrations/integrations.json -msgctxt "Slack Webhook URL" msgid "Slack Webhook URL" msgstr "" @@ -23716,13 +23891,9 @@ msgid "Social Link Type" msgstr "" #. Name of a DocType -#: integrations/doctype/social_login_key/social_login_key.json -msgid "Social Login Key" -msgstr "" - #. Label of a Link in the Integrations Workspace +#: integrations/doctype/social_login_key/social_login_key.json #: integrations/workspace/integrations/integrations.json -msgctxt "Social Login Key" msgid "Social Login Key" msgstr "" @@ -23815,7 +23986,7 @@ msgstr "" #. Label of the source (Data) field in DocType 'Web Page View' #. Label of the source (Small Text) field in DocType 'Website Route Redirect' -#: public/js/frappe/ui/toolbar/about.js:8 public/js/frappe/utils/utils.js:1715 +#: public/js/frappe/ui/toolbar/about.js:8 public/js/frappe/utils/utils.js:1716 #: website/doctype/web_page_view/web_page_view.json #: website/doctype/website_route_redirect/website_route_redirect.json #: website/report/website_analytics/website_analytics.js:38 @@ -23834,6 +24005,7 @@ msgid "Source Text" msgstr "" #: public/js/frappe/views/workspace/blocks/spacer.js:23 +#: public/js/print_format_builder/PrintFormatControls.vue:204 msgid "Spacer" msgstr "" @@ -23865,6 +24037,11 @@ msgstr "" msgid "Sr" msgstr "" +#: public/js/print_format_builder/Field.vue:143 +#: public/js/print_format_builder/Field.vue:164 +msgid "Sr No." +msgstr "" + #. Label of the stack_html (HTML) field in DocType 'Recorder Query' #: core/doctype/recorder/recorder.js:82 #: core/doctype/recorder_query/recorder_query.json @@ -24034,6 +24211,10 @@ msgstr "" msgid "State" msgstr "" +#: public/js/workflow_builder/components/Properties.vue:24 +msgid "State Properties" +msgstr "" + #. Label of the state (Data) field in DocType 'Address' #: contacts/doctype/address/address.json msgid "State/Province" @@ -24260,6 +24441,7 @@ msgstr "" #: email/doctype/email_template/email_template.json #: email/doctype/newsletter/newsletter.json #: email/doctype/notification/notification.json +#: email/doctype/notification/notification.py:80 #: public/js/frappe/views/communication.js:107 #: public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" @@ -24511,7 +24693,7 @@ msgstr "" msgid "Suggested Indexes" msgstr "" -#: core/doctype/user/user.py:689 +#: core/doctype/user/user.py:693 msgid "Suggested Username: {0}" msgstr "" @@ -24836,13 +25018,9 @@ msgid "System Page" msgstr "" #. Name of a DocType -#: core/doctype/system_settings/system_settings.json -msgid "System Settings" -msgstr "" - #. Label of a shortcut in the Build Workspace +#: core/doctype/system_settings/system_settings.json #: core/workspace/build/build.json -msgctxt "System Settings" msgid "System Settings" msgstr "" @@ -24866,6 +25044,10 @@ msgstr "" msgid "Tab Break" msgstr "" +#: public/js/form_builder/components/Tabs.vue:135 +msgid "Tab Label" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Label of the table (Data) field in DocType 'Recorder Suggested Index' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' @@ -24942,7 +25124,7 @@ msgid "Tag Link" msgstr "" #: model/meta.py:52 public/js/frappe/form/templates/form_sidebar.html:100 -#: public/js/frappe/list/bulk_operations.js:400 +#: public/js/frappe/list/bulk_operations.js:430 #: public/js/frappe/list/list_sidebar.html:50 #: public/js/frappe/list/list_sidebar.js:228 public/js/frappe/model/meta.js:204 #: public/js/frappe/model/model.js:133 @@ -25034,7 +25216,7 @@ msgstr "" msgid "Templates" msgstr "" -#: core/doctype/user/user.py:985 +#: core/doctype/user/user.py:989 msgid "Temporarily Disabled" msgstr "" @@ -25140,7 +25322,7 @@ msgid "" "" msgstr "" -#: email/doctype/notification/notification.py:131 +#: email/doctype/notification/notification.py:192 msgid "The Condition '{0}' is invalid" msgstr "" @@ -25294,11 +25476,11 @@ msgid "" "" msgstr "" -#: core/doctype/user/user.py:945 +#: core/doctype/user/user.py:949 msgid "The reset password link has been expired" msgstr "" -#: core/doctype/user/user.py:947 +#: core/doctype/user/user.py:951 msgid "The reset password link has either been used before or is invalid" msgstr "" @@ -25730,7 +25912,7 @@ msgstr "" msgid "This will terminate the job immediately and might be dangerous, are you sure? " msgstr "" -#: core/doctype/user/user.py:1205 +#: core/doctype/user/user.py:1209 msgid "Throttled" msgstr "" @@ -25830,7 +26012,7 @@ msgstr "" msgid "Time in seconds to retain QR code image on server. Min:240" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:402 +#: desk/doctype/dashboard_chart/dashboard_chart.py:412 msgid "Time series based on is required to create a dashboard chart" msgstr "" @@ -25944,9 +26126,9 @@ msgstr "" #: desk/doctype/system_health_report_errors/system_health_report_errors.json #: desk/doctype/workspace/workspace.json #: email/doctype/email_group/email_group.json -#: public/js/frappe/views/workspace/workspace.js:613 -#: public/js/frappe/views/workspace/workspace.js:942 -#: public/js/frappe/views/workspace/workspace.js:1189 +#: public/js/frappe/views/workspace/workspace.js:640 +#: public/js/frappe/views/workspace/workspace.js:969 +#: public/js/frappe/views/workspace/workspace.js:1216 #: website/doctype/blog_category/blog_category.json #: website/doctype/blog_post/blog_post.json #: website/doctype/blog_settings/blog_settings.json @@ -26000,13 +26182,8 @@ msgstr "" msgid "To Date Field" msgstr "" -#: desk/doctype/todo/todo_list.js:6 -msgid "To Do" -msgstr "" - #. Label of a Link in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "ToDo" +#: automation/workspace/tools/tools.json desk/doctype/todo/todo_list.js:6 msgid "To Do" msgstr "" @@ -26117,15 +26294,11 @@ msgstr "" msgid "To version" msgstr "" +#. Label of a shortcut in the Tools Workspace #. Name of a DocType #. Name of a report -#: desk/doctype/todo/todo.json desk/report/todo/todo.json -msgid "ToDo" -msgstr "" - -#. Label of a shortcut in the Tools Workspace -#: automation/workspace/tools/tools.json -msgctxt "ToDo" +#: automation/workspace/tools/tools.json desk/doctype/todo/todo.json +#: desk/report/todo/todo.json msgid "ToDo" msgstr "" @@ -26200,7 +26373,7 @@ msgstr "" msgid "Too many changes to database in single action." msgstr "" -#: core/doctype/user/user.py:986 +#: core/doctype/user/user.py:990 msgid "Too many users signed up recently, so the registration is disabled. Please try back in an hour" msgstr "" @@ -26212,6 +26385,7 @@ msgstr "" #. Option for the 'Position' (Select) field in DocType 'Form Tour Step' #: desk/doctype/form_tour_step/form_tour_step.json +#: public/js/print_format_builder/PrintFormatControls.vue:153 msgid "Top" msgstr "" @@ -26229,6 +26403,7 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: desk/doctype/form_tour_step/form_tour_step.json #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:245 msgid "Top Center" msgstr "" @@ -26239,6 +26414,7 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:244 msgid "Top Left" msgstr "" @@ -26254,6 +26430,7 @@ msgstr "" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: desk/doctype/form_tour_step/form_tour_step.json #: printing/doctype/print_format/print_format.json +#: public/js/print_format_builder/PrintFormatControls.vue:246 msgid "Top Right" msgstr "" @@ -26326,6 +26503,10 @@ msgstr "" msgid "Total number of emails to sync in initial sync process " msgstr "" +#: public/js/print_format_builder/ConfigureColumns.vue:12 +msgid "Total:" +msgstr "" + #: public/js/frappe/views/reports/report_view.js:1178 msgid "Totals" msgstr "" @@ -26392,7 +26573,7 @@ msgstr "" msgid "Track milestones for any document" msgstr "" -#: public/js/frappe/utils/utils.js:1766 +#: public/js/frappe/utils/utils.js:1767 msgid "Tracking URL generated and copied to clipboard" msgstr "" @@ -26412,6 +26593,10 @@ msgstr "" msgid "Transaction Log Report" msgstr "" +#: public/js/workflow_builder/components/Properties.vue:19 +msgid "Transition Properties" +msgstr "" + #. Label of the transition_rules (Section Break) field in DocType 'Workflow' #: workflow/doctype/workflow/workflow.json msgid "Transition Rules" @@ -26757,7 +26942,7 @@ msgstr "" msgid "Unhandled Emails" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:570 +#: public/js/frappe/views/workspace/workspace.js:597 msgid "Unhide Workspace" msgstr "" @@ -26879,7 +27064,7 @@ msgstr "" #: printing/page/print_format_builder/print_format_builder.js:670 #: printing/page/print_format_builder/print_format_builder.js:757 #: public/js/frappe/form/grid_row.js:404 -#: public/js/frappe/views/workspace/workspace.js:661 +#: public/js/frappe/views/workspace/workspace.js:688 msgid "Update" msgstr "" @@ -26889,7 +27074,7 @@ msgstr "" msgid "Update Amendment Naming" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:610 +#: public/js/frappe/views/workspace/workspace.js:637 msgid "Update Details" msgstr "" @@ -26945,7 +27130,7 @@ msgstr "" msgid "Update from Frappe Cloud" msgstr "" -#: public/js/frappe/list/bulk_operations.js:345 +#: public/js/frappe/list/bulk_operations.js:375 msgid "Update {0} records" msgstr "" @@ -26966,7 +27151,7 @@ msgstr "" msgid "Updated To A New Version 🎉" msgstr "" -#: public/js/frappe/list/bulk_operations.js:342 +#: public/js/frappe/list/bulk_operations.js:372 msgid "Updated successfully" msgstr "" @@ -26984,7 +27169,7 @@ msgctxt "Freeze message while updating a document" msgid "Updating" msgstr "" -#: email/doctype/email_queue/email_queue.py:446 +#: email/doctype/email_queue/email_queue.py:453 msgid "Updating Email Queue Statuses. The emails will be picked up in the next scheduled run." msgstr "" @@ -27019,6 +27204,18 @@ msgstr "" msgid "Upload" msgstr "" +#: public/js/print_format_builder/LetterHeadEditor.vue:93 +msgid "Upload Image" +msgstr "" + +#: public/js/frappe/file_uploader/FileUploader.vue:193 +msgid "Upload file" +msgstr "" + +#: public/js/frappe/file_uploader/FileUploader.vue:196 +msgid "Upload {0} files" +msgstr "" + #. Label of the uploaded_to_dropbox (Check) field in DocType 'File' #: core/doctype/file/file.json msgid "Uploaded To Dropbox" @@ -27145,6 +27342,8 @@ msgstr "" #. Name of a DocType #. Label of the user (Link) field in DocType 'User Group Member' #. Label of the user (Link) field in DocType 'User Permission' +#. Label of a Link in the Users Workspace +#. Label of a shortcut in the Users Workspace #. Label of the user (Link) field in DocType 'Dashboard Settings' #. Label of the user (Link) field in DocType 'Note Seen By' #. Label of the user (Link) field in DocType 'Notification Settings' @@ -27171,6 +27370,7 @@ msgstr "" #: core/doctype/user_group_member/user_group_member.json #: core/doctype/user_permission/user_permission.json #: core/report/permitted_documents_for_user/permitted_documents_for_user.js:8 +#: core/workspace/users/users.json #: desk/doctype/dashboard_settings/dashboard_settings.json #: desk/doctype/note_seen_by/note_seen_by.json #: desk/doctype/notification_settings/notification_settings.json @@ -27192,13 +27392,6 @@ msgstr "" msgid "User" msgstr "" -#. Label of a Link in the Users Workspace -#. Label of a shortcut in the Users Workspace -#: core/workspace/users/users.json -msgctxt "User" -msgid "User" -msgstr "" - #. Label of the user (Link) field in DocType 'Access Log' #: core/doctype/access_log/access_log.json msgid "User " @@ -27336,7 +27529,9 @@ msgstr "" msgid "User Permission" msgstr "" +#. Label of a Link in the Users Workspace #: core/page/permission_manager/permission_manager_help.html:30 +#: core/workspace/users/users.json #: public/js/frappe/views/reports/query_report.js:1789 #: public/js/frappe/views/reports/report_view.js:1666 msgid "User Permissions" @@ -27347,12 +27542,6 @@ msgctxt "Button in list view menu" msgid "User Permissions" msgstr "" -#. Label of a Link in the Users Workspace -#: core/workspace/users/users.json -msgctxt "User Permission" -msgid "User Permissions" -msgstr "" - #: core/page/permission_manager/permission_manager_help.html:32 msgid "User Permissions are used to limit users to specific records." msgstr "" @@ -27397,14 +27586,9 @@ msgstr "" #. Label of the user_type (Link) field in DocType 'User' #. Name of a DocType -#: core/doctype/user/user.json core/doctype/user_type/user_type.json -#: core/doctype/user_type/user_type.py:82 -msgid "User Type" -msgstr "" - #. Label of a shortcut in the Users Workspace -#: core/workspace/users/users.json -msgctxt "User Type" +#: core/doctype/user/user.json core/doctype/user_type/user_type.json +#: core/doctype/user_type/user_type.py:82 core/workspace/users/users.json msgid "User Type" msgstr "" @@ -27465,7 +27649,7 @@ msgstr "" msgid "User with email: {0} does not exist in the system. Please ask 'System Administrator' to create the user for you." msgstr "" -#: core/doctype/user/user.py:491 +#: core/doctype/user/user.py:495 msgid "User {0} cannot be deleted" msgstr "" @@ -27473,7 +27657,7 @@ msgstr "" msgid "User {0} cannot be disabled" msgstr "" -#: core/doctype/user/user.py:571 +#: core/doctype/user/user.py:575 msgid "User {0} cannot be renamed" msgstr "" @@ -27485,7 +27669,7 @@ msgstr "" msgid "User {0} does not have doctype access via role permission for document {1}" msgstr "" -#: desk/doctype/workspace/workspace.py:253 +#: desk/doctype/workspace/workspace.py:257 msgid "User {0} does not have the permission to create a Workspace." msgstr "" @@ -27494,7 +27678,7 @@ msgstr "" msgid "User {0} has requested for data deletion" msgstr "" -#: core/doctype/user/user.py:1334 +#: core/doctype/user/user.py:1338 msgid "User {0} impersonated as {1}" msgstr "" @@ -27522,7 +27706,7 @@ msgstr "" msgid "Username" msgstr "" -#: core/doctype/user/user.py:656 +#: core/doctype/user/user.py:660 msgid "Username {0} already exists" msgstr "" @@ -27630,8 +27814,8 @@ msgstr "" #: email/doctype/auto_email_report/auto_email_report.js:92 #: integrations/doctype/query_parameters/query_parameters.json #: integrations/doctype/webhook_header/webhook_header.json -#: public/js/frappe/list/bulk_operations.js:306 -#: public/js/frappe/list/bulk_operations.js:368 +#: public/js/frappe/list/bulk_operations.js:336 +#: public/js/frappe/list/bulk_operations.js:398 #: public/js/frappe/list/list_view_permission_restrictions.html:4 #: website/doctype/web_form/web_form.js:197 #: website/doctype/website_meta_tag/website_meta_tag.json @@ -27730,7 +27914,7 @@ msgid "Verdana" msgstr "" #: twofactor.py:352 -msgid "Verfication Code" +msgid "Verification Code" msgstr "" #: templates/emails/delete_data_confirmation.html:10 @@ -27981,14 +28165,10 @@ msgid "Weak" msgstr "" #. Name of a DocType -#: website/doctype/web_form/web_form.json -msgid "Web Form" -msgstr "" - #. Label of a Link in the Website Workspace #. Label of a shortcut in the Website Workspace +#: website/doctype/web_form/web_form.json #: website/workspace/website/website.json -msgctxt "Web Form" msgid "Web Form" msgstr "" @@ -28008,14 +28188,10 @@ msgid "Web Form List Column" msgstr "" #. Name of a DocType -#: website/doctype/web_page/web_page.json -msgid "Web Page" -msgstr "" - #. Label of a Link in the Website Workspace #. Label of a shortcut in the Website Workspace +#: website/doctype/web_page/web_page.json #: website/workspace/website/website.json -msgctxt "Web Page" msgid "Web Page" msgstr "" @@ -28024,7 +28200,7 @@ msgstr "" msgid "Web Page Block" msgstr "" -#: public/js/frappe/utils/utils.js:1707 +#: public/js/frappe/utils/utils.js:1708 msgid "Web Page URL" msgstr "" @@ -28066,14 +28242,10 @@ msgstr "" #. Name of a DocType #. Label of the webhook (Link) field in DocType 'Webhook Request Log' +#. Label of a Link in the Integrations Workspace #: integrations/doctype/webhook/webhook.json #: integrations/doctype/webhook_request_log/webhook_request_log.json -msgid "Webhook" -msgstr "" - -#. Label of a Link in the Integrations Workspace #: integrations/workspace/integrations/integrations.json -msgctxt "Webhook" msgid "Webhook" msgstr "" @@ -28164,13 +28336,9 @@ msgid "Website Meta Tag" msgstr "" #. Name of a DocType -#: website/doctype/website_route_meta/website_route_meta.json -msgid "Website Route Meta" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/website_route_meta/website_route_meta.json #: website/workspace/website/website.json -msgctxt "Website Route Meta" msgid "Website Route Meta" msgstr "" @@ -28180,13 +28348,9 @@ msgid "Website Route Redirect" msgstr "" #. Name of a DocType -#: website/doctype/website_script/website_script.json -msgid "Website Script" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/website_script/website_script.json #: website/workspace/website/website.json -msgctxt "Website Script" msgid "Website Script" msgstr "" @@ -28200,29 +28364,21 @@ msgid "Website Search Field must be a valid fieldname" msgstr "" #. Name of a DocType -#: website/doctype/website_settings/website_settings.json -msgid "Website Settings" -msgstr "" - #. Label of a Link in the Website Workspace #. Label of a shortcut in the Website Workspace +#: website/doctype/website_settings/website_settings.json #: website/workspace/website/website.json -msgctxt "Website Settings" msgid "Website Settings" msgstr "" #. Label of the website_sidebar (Link) field in DocType 'Web Form' #. Label of the website_sidebar (Link) field in DocType 'Web Page' #. Name of a DocType +#. Label of a Link in the Website Workspace #: website/doctype/web_form/web_form.json #: website/doctype/web_page/web_page.json #: website/doctype/website_sidebar/website_sidebar.json -msgid "Website Sidebar" -msgstr "" - -#. Label of a Link in the Website Workspace #: website/workspace/website/website.json -msgctxt "Website Sidebar" msgid "Website Sidebar" msgstr "" @@ -28232,13 +28388,9 @@ msgid "Website Sidebar Item" msgstr "" #. Name of a DocType -#: website/doctype/website_slideshow/website_slideshow.json -msgid "Website Slideshow" -msgstr "" - #. Label of a Link in the Website Workspace +#: website/doctype/website_slideshow/website_slideshow.json #: website/workspace/website/website.json -msgctxt "Website Slideshow" msgid "Website Slideshow" msgstr "" @@ -28249,14 +28401,10 @@ msgstr "" #. Label of the website_theme (Link) field in DocType 'Website Settings' #. Name of a DocType +#. Label of a Link in the Website Workspace #: website/doctype/website_settings/website_settings.json #: website/doctype/website_theme/website_theme.json -msgid "Website Theme" -msgstr "" - -#. Label of a Link in the Website Workspace #: website/workspace/website/website.json -msgctxt "Website Theme" msgid "Website Theme" msgstr "" @@ -28365,11 +28513,11 @@ msgstr "" msgid "Welcome Workspace" msgstr "" -#: core/doctype/user/user.py:369 +#: core/doctype/user/user.py:373 msgid "Welcome email sent" msgstr "" -#: core/doctype/user/user.py:430 +#: core/doctype/user/user.py:434 msgid "Welcome to {0}" msgstr "" @@ -28417,6 +28565,7 @@ msgstr "" #: custom/doctype/customize_form_field/customize_form_field.json #: desk/doctype/dashboard_chart_link/dashboard_chart_link.json #: printing/page/print_format_builder/print_format_builder_column_selector.html:8 +#: public/js/print_format_builder/ConfigureColumns.vue:11 msgid "Width" msgstr "" @@ -28476,20 +28625,16 @@ msgstr "" #. Option for the 'Comment Type' (Select) field in DocType 'Comment' #. Option for the 'Comment Type' (Select) field in DocType 'Communication' #. Group in DocType's connections +#. Label of a Link in the Build Workspace #. Name of a DocType #: core/doctype/comment/comment.json #: core/doctype/communication/communication.json -#: core/doctype/doctype/doctype.json public/js/workflow_builder/store.js:129 +#: core/doctype/doctype/doctype.json core/workspace/build/build.json +#: public/js/workflow_builder/store.js:129 #: workflow/doctype/workflow/workflow.json msgid "Workflow" msgstr "" -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Workflow" -msgid "Workflow" -msgstr "" - #. Name of a DocType #: workflow/doctype/workflow_action/workflow_action.json #: workflow/doctype/workflow_action/workflow_action.py:438 @@ -28543,6 +28688,10 @@ msgstr "" msgid "Workflow Data" msgstr "" +#: public/js/workflow_builder/components/Properties.vue:42 +msgid "Workflow Details" +msgstr "" + #. Name of a DocType #: workflow/doctype/workflow_document_state/workflow_document_state.json msgid "Workflow Document State" @@ -28597,19 +28746,15 @@ msgid "Workflows allow you to define custom rules for the approval process of a msgstr "" #. Label of the workspace_section (Section Break) field in DocType 'User' +#. Label of a Link in the Build Workspace #. Name of a DocType -#: core/doctype/user/user.json desk/doctype/workspace/workspace.json +#: core/doctype/user/user.json core/workspace/build/build.json +#: desk/doctype/workspace/workspace.json #: public/js/frappe/ui/toolbar/search_utils.js:557 #: public/js/frappe/views/workspace/workspace.js:10 msgid "Workspace" msgstr "" -#. Label of a Link in the Build Workspace -#: core/workspace/build/build.json -msgctxt "Workspace" -msgid "Workspace" -msgstr "" - #: public/js/frappe/router.js:179 msgid "Workspace {0} does not exist" msgstr "" @@ -28650,19 +28795,19 @@ msgstr "" msgid "Workspace Shortcut" msgstr "" -#: desk/doctype/workspace/workspace.py:285 +#: desk/doctype/workspace/workspace.py:289 msgid "Workspace not found" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:1279 +#: public/js/frappe/views/workspace/workspace.js:1306 msgid "Workspace {0} Created Successfully" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:908 +#: public/js/frappe/views/workspace/workspace.js:935 msgid "Workspace {0} Deleted Successfully" msgstr "" -#: public/js/frappe/views/workspace/workspace.js:686 +#: public/js/frappe/views/workspace/workspace.js:713 msgid "Workspace {0} Edited Successfully" msgstr "" @@ -28765,6 +28910,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: core/doctype/page/page.json core/doctype/report/report.json +#: email/doctype/notification/notification.py:94 +#: email/doctype/notification/notification.py:100 #: integrations/doctype/ldap_settings/ldap_settings.json #: integrations/doctype/webhook/webhook.py:130 #: integrations/doctype/webhook/webhook.py:140 @@ -28868,7 +29015,7 @@ msgstr "" msgid "You are only allowed to update order, do not remove or add apps." msgstr "" -#: email/doctype/email_account/email_account.js:245 +#: email/doctype/email_account/email_account.js:249 msgid "You are selecting Sync Option as ALL, It will resync all read as well as unread message from server. This may also cause the duplication of Communication (emails)." msgstr "" @@ -28925,7 +29072,7 @@ msgstr "" msgid "You can only insert images in Markdown fields" msgstr "" -#: public/js/frappe/list/bulk_operations.js:41 +#: public/js/frappe/list/bulk_operations.js:42 msgid "You can only print upto {0} documents at a time" msgstr "" @@ -28975,7 +29122,7 @@ msgctxt "Form timeline" msgid "You cancelled this document {1}" msgstr "" -#: desk/doctype/dashboard_chart/dashboard_chart.py:406 +#: desk/doctype/dashboard_chart/dashboard_chart.py:416 msgid "You cannot create a dashboard chart from single DocTypes" msgstr "" @@ -28987,19 +29134,19 @@ msgstr "" msgid "You cannot unset 'Read Only' for field {0}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:121 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:125 msgid "You changed the value of {0}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:110 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:114 msgid "You changed the value of {0} {1}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:183 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:191 msgid "You changed the values for {0}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:172 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:180 msgid "You changed the values for {0} {1}" msgstr "" @@ -29082,7 +29229,7 @@ msgstr "" msgid "You have hit the row size limit on database table: {0}" msgstr "" -#: public/js/frappe/list/bulk_operations.js:382 +#: public/js/frappe/list/bulk_operations.js:412 msgid "You have not entered a value. The field will be set to empty." msgstr "" @@ -29179,7 +29326,7 @@ msgstr "" msgid "You need to select indexes you want to add first." msgstr "" -#: email/doctype/email_account/email_account.py:153 +#: email/doctype/email_account/email_account.py:154 msgid "You need to set one IMAP folder for {0}" msgstr "" @@ -29200,7 +29347,7 @@ msgstr "" msgid "You seem good to go!" msgstr "" -#: public/js/frappe/list/bulk_operations.js:30 +#: public/js/frappe/list/bulk_operations.js:31 msgid "You selected Draft or Cancelled documents" msgstr "" @@ -29238,7 +29385,7 @@ msgstr "" msgid "Your Name" msgstr "" -#: public/js/frappe/list/bulk_operations.js:123 +#: public/js/frappe/list/bulk_operations.js:132 msgid "Your PDF is ready for download" msgstr "" @@ -29346,7 +29493,7 @@ msgstr "" msgid "`job_id` paramater is required for deduplication." msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:219 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:232 msgid "added rows for {0}" msgstr "" @@ -29826,7 +29973,7 @@ msgstr "" msgid "red" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:221 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:234 msgid "removed rows for {0}" msgstr "" @@ -29985,7 +30132,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: email/doctype/notification/notification.py:220 +#: email/doctype/notification/notification.py:281 msgid "via Notification" msgstr "" @@ -30066,8 +30213,8 @@ msgstr "" msgid "{0} ({1}) - {2}%" msgstr "" -#: public/js/frappe/ui/toolbar/awesome_bar.js:348 -#: public/js/frappe/ui/toolbar/awesome_bar.js:351 +#: public/js/frappe/ui/toolbar/awesome_bar.js:371 +#: public/js/frappe/ui/toolbar/awesome_bar.js:374 msgid "{0} = {1}" msgstr "" @@ -30248,19 +30395,19 @@ msgstr "" msgid "{0} cannot be hidden and mandatory without any default value" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:124 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:128 msgid "{0} changed the value of {1}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:115 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:119 msgid "{0} changed the value of {1} {2}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:186 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:194 msgid "{0} changed the values for {1}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:177 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:185 msgid "{0} changed the values for {1} {2}" msgstr "" @@ -30333,11 +30480,11 @@ msgstr "" msgid "{0} format could not be determined from the values in this column. Defaulting to {1}." msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:97 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:101 msgid "{0} from {1} to {2}" msgstr "" -#: public/js/frappe/form/footer/version_timeline_content_builder.js:157 +#: public/js/frappe/form/footer/version_timeline_content_builder.js:165 msgid "{0} from {1} to {2} in row #{3}" msgstr "" @@ -30439,7 +30586,7 @@ msgstr "" msgid "{0} is like {1}" msgstr "" -#: email/doctype/email_account/email_account.py:186 +#: email/doctype/email_account/email_account.py:187 msgid "{0} is mandatory" msgstr "" @@ -30519,7 +30666,7 @@ msgstr "" msgid "{0} is one of {1}" msgstr "" -#: email/doctype/email_account/email_account.py:293 model/naming.py:217 +#: email/doctype/email_account/email_account.py:294 model/naming.py:217 #: printing/doctype/print_format/print_format.py:91 utils/csvutils.py:153 msgid "{0} is required" msgstr "" @@ -30536,7 +30683,7 @@ msgstr "" msgid "{0} items selected" msgstr "" -#: core/doctype/user/user.py:1343 +#: core/doctype/user/user.py:1347 msgid "{0} just impersonated as you. They gave this reason: {1}" msgstr "" @@ -30890,7 +31037,7 @@ msgstr "" #: contacts/doctype/address/address.js:35 #: contacts/doctype/contact/contact.js:88 -#: public/js/frappe/views/workspace/workspace.js:170 +#: public/js/frappe/views/workspace/workspace.js:209 msgid "{0}: {1}" msgstr "" @@ -30928,7 +31075,6 @@ msgstr "" #. Count format of shortcut in the Website Workspace #: website/workspace/website/website.json -msgctxt "Blogger" msgid "{} Active" msgstr "" @@ -30946,13 +31092,6 @@ msgstr "" #. Count format of shortcut in the Website Workspace #: website/workspace/website/website.json -msgctxt "Blog Post" -msgid "{} Published" -msgstr "" - -#. Count format of shortcut in the Website Workspace -#: website/workspace/website/website.json -msgctxt "Web Page" msgid "{} Published" msgstr "" @@ -30964,8 +31103,8 @@ msgstr "" msgid "{} field cannot be empty." msgstr "" -#: email/doctype/email_account/email_account.py:216 -#: email/doctype/email_account/email_account.py:224 +#: email/doctype/email_account/email_account.py:217 +#: email/doctype/email_account/email_account.py:225 msgid "{} has been disabled. It can only be enabled if {} is checked." msgstr "" @@ -30985,3 +31124,8 @@ msgstr "" msgid "{} not found in PATH! This is required to take a backup." msgstr "" +#: public/js/frappe/file_uploader/FileBrowser.vue:5 +#: public/js/frappe/file_uploader/WebLink.vue:4 +msgid "← Back to upload files" +msgstr "" + diff --git a/frappe/public/js/frappe/form/controls/link.js b/frappe/public/js/frappe/form/controls/link.js index 62e5e4de67..e391706161 100644 --- a/frappe/public/js/frappe/form/controls/link.js +++ b/frappe/public/js/frappe/form/controls/link.js @@ -638,13 +638,18 @@ frappe.ui.form.ControlLink = class ControlLink extends frappe.ui.form.ControlDat if (value) { field_value = response[source_field]; } - frappe.model.set_value( - this.df.parent, - this.docname, - target_field, - field_value, - this.df.fieldtype - ); + + if (this.layout?.set_value) { + this.layout.set_value(target_field, field_value); + } else if (this.frm) { + frappe.model.set_value( + this.df.parent, + this.docname, + target_field, + field_value, + this.df.fieldtype + ); + } } }; @@ -669,8 +674,73 @@ frappe.ui.form.ControlLink = class ControlLink extends frappe.ui.form.ControlDat } } + fetch_map_for_quick_entry() { + let me = this; + let fetch_map = {}; + function add_fetch(link_field, source_field, target_field, target_doctype) { + if (!target_doctype) target_doctype = "*"; + + if (!me.layout.fetch_dict) { + me.layout.fetch_dict = {}; + } + + // Target field kept as key because source field could be non-unique + me.layout.fetch_dict.setDefault(target_doctype, {}).setDefault(link_field, {})[ + target_field + ] = source_field; + } + + function setup_add_fetch(df) { + let is_read_only_field = + [ + "Data", + "Read Only", + "Text", + "Small Text", + "Currency", + "Check", + "Text Editor", + "Attach Image", + "Code", + "Link", + "Float", + "Int", + "Date", + "Select", + "Duration", + "Time", + ].includes(df.fieldtype) || + df.read_only == 1 || + df.is_virtual == 1; + + if (is_read_only_field && df.fetch_from && df.fetch_from.indexOf(".") != -1) { + var parts = df.fetch_from.split("."); + add_fetch(parts[0], parts[1], df.fieldname, df.parent); + } + } + + $.each(this.layout.fields, (i, field) => setup_add_fetch(field)); + + for (const key of ["*", this.df.parent]) { + if (!this.layout.fetch_dict) { + this.layout.fetch_dict = {}; + } + if (this.layout.fetch_dict[key] && this.layout.fetch_dict[key][this.df.fieldname]) { + Object.assign(fetch_map, this.layout.fetch_dict[key][this.df.fieldname]); + } + } + + return fetch_map; + } + get fetch_map() { const fetch_map = {}; + + // Create fetch_map from quick entry fields + if (!this.frm && this.layout && this.layout.fields) { + return this.fetch_map_for_quick_entry(); + } + if (!this.frm) return fetch_map; for (const key of ["*", this.df.parent]) { diff --git a/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js b/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js index 03936d9a1f..43d55fe5da 100644 --- a/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js +++ b/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js @@ -83,13 +83,17 @@ function get_version_timeline_content(version_doc, frm) { } } else { const df = frappe.meta.get_docfield(frm.doctype, p[0], frm.docname); - if (df && !df.hidden) { + if (df && (!df.hidden || df.show_on_timeline)) { const field_display_status = frappe.perm.get_field_display_status( df, null, frm.perm ); - if (field_display_status === "Read" || field_display_status === "Write") { + if ( + field_display_status === "Read" || + field_display_status === "Write" || + (df.hidden && df.show_on_timeline) + ) { parts.push( __("{0} from {1} to {2}", [ __(df.label, null, df.parent), @@ -142,14 +146,18 @@ function get_version_timeline_content(version_doc, frm) { frm.docname ); - if (df && !df.hidden) { + if (df && (!df.hidden || df.show_on_timeline)) { var field_display_status = frappe.perm.get_field_display_status( df, null, frm.perm ); - if (field_display_status === "Read" || field_display_status === "Write") { + if ( + field_display_status === "Read" || + field_display_status === "Write" || + (df.hidden && df.show_on_timeline) + ) { parts.push( __("{0} from {1} to {2} in row #{3}", [ frappe.meta.get_label(frm.fields_dict[row[0]].grid.doctype, p[0]), @@ -197,14 +205,19 @@ function get_version_timeline_content(version_doc, frm) { if (data[key] && data[key].length) { let parts = (data[key] || []).map(function (p) { var df = frappe.meta.get_docfield(frm.doctype, p[0], frm.docname); - if (df && !df.hidden) { + + if (df && (!df.hidden || df.show_on_timeline)) { var field_display_status = frappe.perm.get_field_display_status( df, null, frm.perm ); - if (field_display_status === "Read" || field_display_status === "Write") { + if ( + field_display_status === "Read" || + field_display_status === "Write" || + (df.hidden && df.show_on_timeline) + ) { return __(frappe.meta.get_label(frm.doctype, p[0])); } } diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index bd74ee5bd1..458851e698 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -515,7 +515,7 @@ frappe.ui.form.Form = class FrappeForm { // feedback frappe.msgprint({ - message: __("{} Complete", [action.label]), + message: __("{} Complete", [__(action.label)]), alert: true, }); }); diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js index 5c0a5cbe22..a12aab162b 100644 --- a/frappe/public/js/frappe/form/grid_row.js +++ b/frappe/public/js/frappe/form/grid_row.js @@ -840,10 +840,12 @@ export default class GridRow { delete this.grid.filter[df.fieldname]; } - this.grid.grid_sortable.option( - "disabled", - Object.keys(this.grid.filter).length !== 0 - ); + if (this.grid.grid_sortable) { + this.grid.grid_sortable.option( + "disabled", + Object.keys(this.grid.filter).length !== 0 + ); + } this.grid.prevent_build = true; this.grid.grid_pagination.go_to_page(1); diff --git a/frappe/public/js/frappe/form/script_helpers.js b/frappe/public/js/frappe/form/script_helpers.js index 4f29a0a487..f47ce99ce6 100644 --- a/frappe/public/js/frappe/form/script_helpers.js +++ b/frappe/public/js/frappe/form/script_helpers.js @@ -33,7 +33,7 @@ window.refresh_field = function (n, docname, table_field) { }; window.set_field_options = function (n, txt) { - cur_frm.set_df_property(n, "options", txt); + cur_frm?.set_df_property(n, "options", txt); }; window.toggle_field = function (n, hidden) { diff --git a/frappe/public/js/frappe/utils/utils.js b/frappe/public/js/frappe/utils/utils.js index 7b6987aa05..c3df8e1987 100644 --- a/frappe/public/js/frappe/utils/utils.js +++ b/frappe/public/js/frappe/utils/utils.js @@ -918,18 +918,18 @@ Object.assign(frappe.utils, { let route = route_str.split("/"); if (route[2] === "Report" || route[0] === "query-report") { - return __("{0} Report", [route[3] || route[1]]); + return __("{0} Report", [__(route[3]) || __(route[1])]); } if (route[0] === "List") { - return __("{0} List", [route[1]]); + return __("{0} List", [__(route[1])]); } if (route[0] === "modules") { - return __("{0} Modules", [route[1]]); + return __("{0} Modules", [__(route[1])]); } if (route[0] === "dashboard") { - return __("{0} Dashboard", [route[1]]); + return __("{0} Dashboard", [__(route[1])]); } - return __(frappe.utils.to_title_case(route[0], true)); + return __(frappe.utils.to_title_case(__(route[0]), true)); }, report_column_total: function (values, column, type) { if (column.column.disable_total) { @@ -1213,9 +1213,7 @@ Object.assign(frappe.utils, { }, flag(country_code) { - return ``; + return ``; }, make_chart(wrapper, custom_options = {}) { diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 0284639e6a..1332a186aa 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -462,7 +462,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { setup_progress_bar() { let seconds_elapsed = 0; - const execution_time = this.report_settings.execution_time || 0; + const execution_time = this.report_settings?.execution_time || 0; if (execution_time < 5) return; diff --git a/frappe/public/js/frappe/views/workspace/blocks/header.js b/frappe/public/js/frappe/views/workspace/blocks/header.js index b5b42796d4..072b054bad 100644 --- a/frappe/public/js/frappe/views/workspace/blocks/header.js +++ b/frappe/public/js/frappe/views/workspace/blocks/header.js @@ -104,8 +104,16 @@ export default class Header extends Block { this._data = this.normalizeData(data); if (data.text !== undefined) { - let text = this._data.text || ""; + let text = __(this._data.text) || ""; const contains_html_tag = /<[a-z][\s\S]*>/i.test(text); + + // apply translation to header text + let div = document.createElement("div"); + div.innerHTML = text; + let only_text = div.innerText; + only_text = frappe.utils.escape_html(only_text); + text = text.replace(only_text, __(only_text)); + this._element.innerHTML = contains_html_tag ? text : `${text}`; diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index ec1f179cbc..7953e69e0d 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -99,15 +99,13 @@ frappe.views.Workspace = class Workspace { - + `).appendTo(this.body); diff --git a/frappe/public/scss/desk/print_preview.scss b/frappe/public/scss/desk/print_preview.scss index 5d7f88585b..d345a8819a 100644 --- a/frappe/public/scss/desk/print_preview.scss +++ b/frappe/public/scss/desk/print_preview.scss @@ -45,8 +45,16 @@ .layout-side-section.print-preview-sidebar { padding-right: var(--padding-md); + .checkbox label { + align-items: unset; + } + + .input-area { + margin-top: 0.2rem; + } + .label-area { - white-space: nowrap; + white-space: unset; } } diff --git a/frappe/utils/xlsxutils.py b/frappe/utils/xlsxutils.py index 9442a4c367..53b44bd5ca 100644 --- a/frappe/utils/xlsxutils.py +++ b/frappe/utils/xlsxutils.py @@ -8,6 +8,7 @@ import xlrd from openpyxl import load_workbook from openpyxl.styles import Font from openpyxl.utils import get_column_letter +from openpyxl.workbook.child import INVALID_TITLE_REGEX import frappe from frappe.utils.html_utils import unescape_html @@ -21,7 +22,8 @@ def make_xlsx(data, sheet_name, wb=None, column_widths=None): if wb is None: wb = openpyxl.Workbook(write_only=True) - ws = wb.create_sheet(sheet_name, 0) + sheet_name_sanitized = INVALID_TITLE_REGEX.sub(" ", sheet_name) + ws = wb.create_sheet(sheet_name_sanitized, 0) for i, column_width in enumerate(column_widths): if column_width: