浏览代码

feat: Copy DocType / Documents without boundaries

version-14
Suraj Shetty 4 年前
父节点
当前提交
f974294484
共有 2 个文件被更改,包括 37 次插入1 次删除
  1. +31
    -0
      frappe/public/js/frappe/desk.js
  2. +6
    -1
      frappe/public/js/frappe/form/toolbar.js

+ 31
- 0
frappe/public/js/frappe/desk.js 查看文件

@@ -51,6 +51,7 @@ frappe.Application = Class.extend({
this.set_fullwidth_if_enabled();
this.add_browser_class();
this.setup_energy_point_listeners();
this.copy_doc_listeners();

frappe.ui.keys.setup();

@@ -605,6 +606,36 @@ frappe.Application = Class.extend({
frappe.show_alert(message);
});
},

copy_doc_listeners() {
$('body').on('paste', (e) => {
try {
let clipboard_data = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData;
let pasted_data = clipboard_data.getData('Text');
let doc = JSON.parse(pasted_data);
if (doc.doctype) {
e.preventDefault();
let sleep = (time) => {
return new Promise((resolve) => setTimeout(resolve, time));
};
frappe.dom.freeze(__('Copying {0}', [doc.doctype]));

sleep(500).then(() => {
frappe.model.with_doctype(doc.doctype, () => {
let newdoc = frappe.model.copy_doc(doc);
newdoc.__newname = doc.name;
newdoc.idx = null;
newdoc.__run_link_triggers = false;
frappe.set_route('Form', newdoc.doctype, newdoc.name);
frappe.dom.unfreeze();
});
});
}
} catch (e) {
//
}
});
}
});

frappe.get_module = function(m, default_module) {


+ 6
- 1
frappe/public/js/frappe/form/toolbar.js 查看文件

@@ -278,13 +278,18 @@ frappe.ui.form.Toolbar = class Toolbar {
}, true)
}

// copy
// duplicate
if(in_list(frappe.boot.user.can_create, me.frm.doctype) && !me.frm.meta.allow_copy) {
this.page.add_menu_item(__("Duplicate"), function() {
me.frm.copy_doc();
}, true);
}

// copy doc to clipboard
this.page.add_menu_item(__("Copy {0}", [me.frm.doc.doctype]), function() {
frappe.utils.copy_to_clipboard(JSON.stringify(me.frm.doc));
}, true);

// rename
if(this.can_rename()) {
this.page.add_menu_item(__("Rename"), function() {


正在加载...
取消
保存