diff --git a/frappe/core/doctype/data_import/data_import.js b/frappe/core/doctype/data_import/data_import.js index c321f2ad26..079bdaa09c 100644 --- a/frappe/core/doctype/data_import/data_import.js +++ b/frappe/core/doctype/data_import/data_import.js @@ -203,7 +203,7 @@ frappe.ui.form.on('Data Import', { }, download_template(frm) { - frappe.require('/assets/frappe/dist/js/data_import_tools.bundle.js', () => { + frappe.require('data_import_tools.bundle.js', () => { frm.data_exporter = new frappe.data_import.DataExporter( frm.doc.reference_doctype, frm.doc.import_type @@ -287,7 +287,7 @@ frappe.ui.form.on('Data Import', { return; } - frappe.require('/assets/frappe/dist/js/data_import_tools.bundle.js', () => { + frappe.require('data_import_tools.bundle.js', () => { frm.import_preview = new frappe.data_import.ImportPreview({ wrapper: frm.get_field('import_preview').$wrapper, doctype: frm.doc.reference_doctype, diff --git a/frappe/core/page/recorder/recorder.js b/frappe/core/page/recorder/recorder.js index 9c12995405..3de0e50cb2 100644 --- a/frappe/core/page/recorder/recorder.js +++ b/frappe/core/page/recorder/recorder.js @@ -11,7 +11,7 @@ frappe.pages['recorder'].on_page_load = function(wrapper) { frappe.recorder.show(); }); - frappe.require('/assets/frappe/dist/js/recorder.bundle.js'); + frappe.require('recorder.bundle.js'); }; class Recorder { diff --git a/frappe/printing/page/print/print.js b/frappe/printing/page/print/print.js index 76c9ed9202..abf286d606 100644 --- a/frappe/printing/page/print/print.js +++ b/frappe/printing/page/print/print.js @@ -408,14 +408,17 @@ frappe.ui.form.PrintView = class { setup_print_format_dom(out, $print_format) { this.print_wrapper.find('.print-format-skeleton').remove(); + let base_url = frappe.urllib.get_base_url() + let print_css = frappe.assets.bundled_asset('print.bundle.css'); this.$print_format_body.find('head').html( ` - ` + ` ); if (frappe.utils.is_rtl(this.lang_code)) { + let rtl_css = frappe.assets.bundled_asset('frappe-rtl.bundle.css'); this.$print_format_body.find('head').append( - `` + `` ); } diff --git a/frappe/public/html/print_template.html b/frappe/public/html/print_template.html index cd0f797a3f..721bec7fa7 100644 --- a/frappe/public/html/print_template.html +++ b/frappe/public/html/print_template.html @@ -7,7 +7,7 @@ {{ title }} - + diff --git a/frappe/public/js/desk.bundle.js b/frappe/public/js/desk.bundle.js index 193c87c132..66eb72cda0 100644 --- a/frappe/public/js/desk.bundle.js +++ b/frappe/public/js/desk.bundle.js @@ -51,7 +51,6 @@ import "./frappe/utils/user.js"; import "./frappe/utils/common.js"; import "./frappe/utils/urllib.js"; import "./frappe/utils/pretty_date.js"; -import "./frappe/utils/test_utils.js"; import "./frappe/utils/tools.js"; import "./frappe/utils/datetime.js"; import "./frappe/utils/number_format.js"; diff --git a/frappe/public/js/frappe/assets.js b/frappe/public/js/frappe/assets.js index bc2f02bb0f..3fca8640f3 100644 --- a/frappe/public/js/frappe/assets.js +++ b/frappe/public/js/frappe/assets.js @@ -9,12 +9,7 @@ frappe.require = function(items, callback) { if(typeof items === "string") { items = [items]; } - items = items.map(item => { - if (!item.startsWith('/assets') && item.includes('.bundle.')) { - return frappe.boot.assets_json[item] || item; - } - return item; - }); + items = items.map(item => frappe.assets.bundled_asset(item)); return new Promise(resolve => { frappe.assets.execute(items, () => { @@ -172,4 +167,11 @@ frappe.assets = { frappe.dom.set_style(txt); } }, + + bundled_asset(path) { + if (!path.startsWith('/assets') && path.includes('.bundle.')) { + return frappe.boot.assets_json[path] || path; + } + return path; + } }; diff --git a/frappe/public/js/frappe/barcode_scanner/index.js b/frappe/public/js/frappe/barcode_scanner/index.js index 721353601a..fa3975b578 100644 --- a/frappe/public/js/frappe/barcode_scanner/index.js +++ b/frappe/public/js/frappe/barcode_scanner/index.js @@ -13,7 +13,7 @@ frappe.barcode.scan_barcode = function() { } }, reject); } else { - frappe.require('/assets/frappe/dist/js/barcode_scanner.bundle.js', () => { + frappe.require('barcode_scanner.bundle.js', () => { frappe.barcode.get_barcode().then(barcode => { resolve(barcode); }); diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index f2dcbc7099..950663b973 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -491,7 +491,7 @@ frappe.Application = class Application { var ls = document.createElement('link'); ls.rel="stylesheet"; ls.type = "text/css"; - ls.href= "/assets/frappe/dist/css/frappe-rtl.bundle.css"; + ls.href= frappe.assets.bundled_asset("frappe-rtl.bundle.css"); document.getElementsByTagName('head')[0].appendChild(ls); $('body').addClass('frappe-rtl'); } diff --git a/frappe/public/js/integrations/razorpay.js b/frappe/public/js/integrations/razorpay.js index 4714811259..eda4ac1894 100644 --- a/frappe/public/js/integrations/razorpay.js +++ b/frappe/public/js/integrations/razorpay.js @@ -3,7 +3,7 @@ Razorpay Payment 1. Include checkout script in your code - + {{ include_script('checkout.bundle.js) }} 2. Create the Order controller in your backend def get_razorpay_order(self): diff --git a/frappe/utils/jinja_globals.py b/frappe/utils/jinja_globals.py index dbd80f22bd..e0ed849ccf 100644 --- a/frappe/utils/jinja_globals.py +++ b/frappe/utils/jinja_globals.py @@ -71,19 +71,20 @@ def web_blocks(blocks): def include_script(path): - if not path.startswith("/assets") and ".bundle." in path: - path = bundled_asset_path(path) + path = bundled_asset(path) return f'' def include_style(path): - if not path.startswith("/assets") and ".bundle." in path: - path = bundled_asset_path(path) + path = bundled_asset(path) return f'' -def bundled_asset_path(path): +def bundled_asset(path): from frappe.utils import get_assets_json + if path.startswith("/assets") and ".bundle." not in path: + return path + bundled_assets = get_assets_json() return bundled_assets.get(path) diff --git a/frappe/utils/pdf.py b/frappe/utils/pdf.py index 94230a2970..70464aafc5 100644 --- a/frappe/utils/pdf.py +++ b/frappe/utils/pdf.py @@ -16,7 +16,7 @@ from PyPDF2 import PdfFileReader, PdfFileWriter import frappe from frappe import _ from frappe.utils import scrub_urls - +from frappe.utils.jinja_globals import bundled_asset PDF_CONTENT_ERRORS = ["ContentNotFoundError", "ContentOperationNotPermittedError", "UnknownContentError", "RemoteHostClosedError"] @@ -164,7 +164,8 @@ def prepare_header_footer(soup): head = soup.find("head").contents styles = soup.find_all("style") - css = frappe.read_file(os.path.join(frappe.local.sites_path, "assets/frappe/dist/css/print.bundle.css")) + print_css = bundled_asset('print.bundle.css').lstrip('/') + css = frappe.read_file(os.path.join(frappe.local.sites_path, print_css)) # extract header and footer for html_id in ("header-html", "footer-html"): diff --git a/frappe/website/doctype/web_form/templates/web_form.html b/frappe/website/doctype/web_form/templates/web_form.html index 5c13dd6bba..f511b3c27d 100644 --- a/frappe/website/doctype/web_form/templates/web_form.html +++ b/frappe/website/doctype/web_form/templates/web_form.html @@ -87,17 +87,17 @@ $(".file-size").each(function() { $(this).text(frappe.form.formatters.FileSize($(this).text())); }); - +{{ include_script("controls.bundle.js") }} {% if is_list %} {# web form list #} - - - +{{ include_script("dialog.bundle.js") }} +{{ include_script("web_form.bundle.js") }} +{{ include_script("bootstrap-4-web.bundle.js") }} {% else %} {# web form #} - +{{ include_script("dialog.bundle.js") }} @@ -105,8 +105,8 @@ $(".file-size").each(function() { Vue.prototype.__ = window.__; Vue.prototype.frappe = window.frappe; - - +{{ include_script("web_form.bundle.js") }} +{{ include_script("bootstrap-4-web.bundle.js") }}