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") }}