Merge pull request #21167 from shariquerik/private-custom-html-block

This commit is contained in:
Shariq Ansari 2023-05-30 13:05:57 +05:30 committed by GitHub
commit fb26b39dc2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 2 deletions

View file

@ -3,6 +3,18 @@
frappe.ui.form.on("Custom HTML Block", {
refresh(frm) {
if (
!has_common(frappe.user_roles, [
"Administrator",
"System Manager",
"Workspace Manager",
])
) {
frm.set_value("private", true);
} else {
frm.set_df_property("private", "read_only", false);
}
let wrapper = frm.fields_dict["preview"].wrapper;
wrapper.classList.add("mb-3");

View file

@ -6,6 +6,7 @@
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"private",
"preview_section",
"preview",
"html_section",
@ -80,11 +81,19 @@
"fieldtype": "Table",
"label": "Roles",
"options": "Has Role"
},
{
"default": "0",
"depends_on": "eval: doc.private || doc.__unsaved",
"fieldname": "private",
"fieldtype": "Check",
"label": "Private",
"read_only": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2023-05-29 18:28:28.326843",
"modified": "2023-05-30 14:33:31.994738",
"modified_by": "Administrator",
"module": "Desk",
"name": "Custom HTML Block",

View file

@ -1,9 +1,25 @@
# Copyright (c) 2023, Frappe Technologies and contributors
# For license information, please see license.txt
# import frappe
import frappe
from frappe.model.document import Document
from frappe.query_builder.utils import DocType
class CustomHTMLBlock(Document):
pass
@frappe.whitelist()
def get_custom_blocks_for_user(doctype, txt, searchfield, start, page_len, filters):
# return logged in users private blocks and all public blocks
customHTMLBlock = DocType("Custom HTML Block")
condition_query = frappe.qb.get_query(customHTMLBlock)
return (
condition_query.select(customHTMLBlock.name).where(
(customHTMLBlock.private == 0)
| ((customHTMLBlock.owner == frappe.session.user) & (customHTMLBlock.private == 1))
)
).run()

View file

@ -715,6 +715,11 @@ class CustomBlockDialog extends WidgetDialog {
label: "Custom Block Name",
options: "Custom HTML Block",
reqd: 1,
get_query: () => {
return {
query: "frappe.desk.doctype.custom_html_block.custom_html_block.get_custom_blocks_for_user",
};
},
},
];
}