refactor(desktop_icons): Remove references and repurpose bootinfo
- Also revert deleting desktop page doc
This commit is contained in:
parent
2f334baba5
commit
e93cea1336
10 changed files with 51 additions and 145 deletions
|
|
@ -96,8 +96,8 @@ def load_conf_settings(bootinfo):
|
|||
if key in conf: bootinfo[key] = conf.get(key)
|
||||
|
||||
def load_desktop_icons(bootinfo):
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import get_desktop_icons
|
||||
bootinfo.desktop_icons = get_desktop_icons()
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import get_modules_from_all_apps
|
||||
bootinfo.allowed_modules = get_modules_from_all_apps()
|
||||
|
||||
def get_allowed_pages():
|
||||
return get_user_pages_or_reports('Page')
|
||||
|
|
|
|||
0
frappe/core/page/desktop/__init__.py
Normal file
0
frappe/core/page/desktop/__init__.py
Normal file
7
frappe/core/page/desktop/desktop.js
Normal file
7
frappe/core/page/desktop/desktop.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
frappe.pages['desktop'].on_page_load = function(wrapper) {
|
||||
var page = frappe.ui.make_app_page({
|
||||
parent: wrapper,
|
||||
title: 'Desktop',
|
||||
single_column: true
|
||||
});
|
||||
}
|
||||
24
frappe/core/page/desktop/desktop.json
Normal file
24
frappe/core/page/desktop/desktop.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"content": null,
|
||||
"creation": "2019-01-29 13:11:48.872579",
|
||||
"docstatus": 0,
|
||||
"doctype": "Page",
|
||||
"icon": "icon-th",
|
||||
"idx": 0,
|
||||
"modified": "2019-01-29 13:11:48.872579",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "desktop",
|
||||
"owner": "Administrator",
|
||||
"page_name": "desktop",
|
||||
"roles": [
|
||||
{
|
||||
"role": "All"
|
||||
}
|
||||
],
|
||||
"script": null,
|
||||
"standard": "Yes",
|
||||
"style": null,
|
||||
"system_page": 0,
|
||||
"title": "Desktop"
|
||||
}
|
||||
|
|
@ -236,5 +236,4 @@ frappe.patches.v11_0.fix_order_by_in_reports_json
|
|||
execute:frappe.delete_doc('Page', 'applications', ignore_missing=True)
|
||||
frappe.patches.v11_0.set_missing_creation_and_modified_value_for_user_permissions
|
||||
frappe.patches.v12_0.set_primary_key_in_series
|
||||
execute:frappe.delete_doc("Page", "desktop", ignore_missing=True)
|
||||
execute:frappe.delete_doc("Page", "modules", ignore_missing=True)
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ frappe.Application = Class.extend({
|
|||
load_bootinfo: function() {
|
||||
if(frappe.boot) {
|
||||
frappe.modules = {};
|
||||
frappe.boot.desktop_icons.forEach(function(m) {
|
||||
frappe.boot.allowed_modules.forEach(function(m) {
|
||||
frappe.modules[m.module_name]=m;
|
||||
});
|
||||
frappe.model.sync(frappe.boot.docs);
|
||||
|
|
@ -591,86 +591,3 @@ frappe.get_module = function(m, default_module) {
|
|||
|
||||
return module;
|
||||
};
|
||||
|
||||
frappe.get_desktop_icons = function(show_hidden, show_global) {
|
||||
// filter valid icons
|
||||
|
||||
// hidden == hidden from desktop
|
||||
// blocked == no view from modules either
|
||||
|
||||
var out = [];
|
||||
|
||||
var add_to_out = function(module) {
|
||||
module = frappe.get_module(module.module_name, module);
|
||||
module.app_icon = frappe.ui.app_icon.get_html(module);
|
||||
out.push(module);
|
||||
};
|
||||
|
||||
var show_module = function(m) {
|
||||
var out = true;
|
||||
if(m.type==="page") {
|
||||
out = m.link in frappe.boot.page_info;
|
||||
} else if(m.force_show) {
|
||||
out = true;
|
||||
} else if(m._report) {
|
||||
out = m._report in frappe.boot.user.all_reports;
|
||||
} else if(m._doctype) {
|
||||
//out = frappe.model.can_read(m._doctype);
|
||||
out = frappe.boot.user.can_read.includes(m._doctype);
|
||||
} else {
|
||||
if(['Help', 'Settings'].includes(m.module_name)) {
|
||||
// no permissions necessary for learn
|
||||
out = true;
|
||||
} else if(m.module_name==='Setup' && frappe.user.has_role('System Manager')) {
|
||||
out = true;
|
||||
} else {
|
||||
out = frappe.boot.user.allow_modules.indexOf(m.module_name) !== -1;
|
||||
}
|
||||
}
|
||||
if(m.hidden && !show_hidden) {
|
||||
out = false;
|
||||
}
|
||||
if(m.blocked && !show_global) {
|
||||
out = false;
|
||||
}
|
||||
return out;
|
||||
};
|
||||
|
||||
let m;
|
||||
for (var i=0, l=frappe.boot.desktop_icons.length; i < l; i++) {
|
||||
m = frappe.boot.desktop_icons[i];
|
||||
if ((['Setup', 'Core'].indexOf(m.module_name) === -1) && show_module(m)) {
|
||||
add_to_out(m);
|
||||
}
|
||||
}
|
||||
|
||||
if(frappe.user_roles.includes('System Manager')) {
|
||||
m = frappe.get_module('Setup');
|
||||
if(show_module(m)) add_to_out(m);
|
||||
}
|
||||
|
||||
if(frappe.user_roles.includes('Administrator')) {
|
||||
m = frappe.get_module('Core');
|
||||
if(show_module(m)) add_to_out(m);
|
||||
}
|
||||
|
||||
return out;
|
||||
};
|
||||
|
||||
frappe.add_to_desktop = function(label, doctype, report) {
|
||||
frappe.call({
|
||||
method: 'frappe.desk.doctype.desktop_icon.desktop_icon.add_user_icon',
|
||||
args: {
|
||||
'link': frappe.get_route_str(),
|
||||
'label': label,
|
||||
'type': 'link',
|
||||
'_doctype': doctype,
|
||||
'_report': report
|
||||
},
|
||||
callback: function(r) {
|
||||
if(r.message) {
|
||||
frappe.show_alert(__("Added"));
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ $.extend(frappe.user, {
|
|||
},
|
||||
get_desktop_items: function() {
|
||||
// hide based on permission
|
||||
var modules_list = $.map(frappe.boot.desktop_icons, function(icon) {
|
||||
var modules_list = $.map(frappe.boot.allowed_modules, function(icon) {
|
||||
var m = icon.module_name;
|
||||
var type = frappe.modules[m] && frappe.modules[m].type;
|
||||
|
||||
|
|
@ -105,14 +105,6 @@ $.extend(frappe.user, {
|
|||
return modules_list;
|
||||
},
|
||||
|
||||
is_module: function(m) {
|
||||
var icons = frappe.get_desktop_icons();
|
||||
for(var i=0; i<icons.length; i++) {
|
||||
if(m===icons[i].module_name) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
is_report_manager: function() {
|
||||
return frappe.user.has_role(['Administrator', 'System Manager', 'Report Manager']);
|
||||
},
|
||||
|
|
@ -147,9 +139,9 @@ $.extend(frappe.user, {
|
|||
/* Normally frappe.user is an object
|
||||
* having properties and methods.
|
||||
* But in the following case
|
||||
*
|
||||
*
|
||||
* if (frappe.user === 'Administrator')
|
||||
*
|
||||
*
|
||||
* frappe.user will cast to a string
|
||||
* returning frappe.user.name
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ frappe.breadcrumbs = {
|
|||
var breadcrumbs = frappe.breadcrumbs.all[frappe.breadcrumbs.current_page()];
|
||||
|
||||
if(!frappe.visible_modules) {
|
||||
frappe.visible_modules = $.map(frappe.get_desktop_icons(true), (m) => { return m.module_name; });
|
||||
frappe.visible_modules = $.map(frappe.boot.allowed_modules, (m) => { return m.module_name; });
|
||||
}
|
||||
|
||||
var $breadcrumbs = $("#navbar-breadcrumbs").empty();
|
||||
|
|
@ -88,7 +88,6 @@ frappe.breadcrumbs = {
|
|||
}
|
||||
if(breadcrumbs.doctype && frappe.get_route()[0]==="Form") {
|
||||
if(breadcrumbs.doctype==="User"
|
||||
&& frappe.user.is_module("Setup")===-1
|
||||
|| frappe.get_doc('DocType', breadcrumbs.doctype).issingle) {
|
||||
// no user listview for non-system managers and single doctypes
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@
|
|||
<span><i class="icon text-extra-muted" :class="module.icon"></i></span>
|
||||
</div>
|
||||
<div class="module-box-content">
|
||||
<h4 class="h4">
|
||||
{{ module.label }}
|
||||
<h4 class="h4">
|
||||
{{ module.label }}
|
||||
<span v-if="module.count" class="open-notification global">{{ module.count }}</span>
|
||||
</h4>
|
||||
<p class="small text-muted"> {{ module.description }} </p>
|
||||
|
|
@ -37,38 +37,21 @@
|
|||
|
||||
export default {
|
||||
data() {
|
||||
let modules_list = frappe.boot.allowed_modules
|
||||
.filter(d => (d.type==='module' || d.category==='Places') && !d.blocked);
|
||||
|
||||
modules_list.forEach(module => {
|
||||
module.count = this.get_module_count(module.module_name);
|
||||
});
|
||||
|
||||
return {
|
||||
route_str: frappe.get_route()[1],
|
||||
module_label: '',
|
||||
module_categories: ["Modules", "Domains", "Places", "Administration"],
|
||||
modules: []
|
||||
modules: modules_list
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.get_modules();
|
||||
},
|
||||
methods: {
|
||||
get_modules() {
|
||||
let res = frappe.call({
|
||||
method: 'frappe.desk.doctype.desktop_icon.desktop_icon.get_modules_from_all_apps',
|
||||
});
|
||||
|
||||
res.then(r => {
|
||||
if (r.message) {
|
||||
let modules_list = r.message;
|
||||
|
||||
modules_list = modules_list
|
||||
.filter(d => (d.type==='module' || d.category==='Places') && !d.blocked);
|
||||
|
||||
modules_list.forEach(module => {
|
||||
module.count = this.get_module_count(module.module_name);
|
||||
});
|
||||
|
||||
this.modules = modules_list;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
get_module_count(module_name) {
|
||||
var module_doctypes = frappe.boot.notification_info.module_doctypes[module_name];
|
||||
var sum = 0;
|
||||
|
|
@ -112,7 +95,7 @@ export default {
|
|||
margin: 70px 0px;
|
||||
}
|
||||
|
||||
.module-category {
|
||||
.module-category {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 15px;
|
||||
border-bottom: 1px solid #d0d8dd;
|
||||
|
|
|
|||
|
|
@ -17,11 +17,11 @@ export default {
|
|||
current_module_label: '',
|
||||
current_module_sections: [],
|
||||
modules_data_cache: {},
|
||||
modules_list: [],
|
||||
modules_list: frappe.boot.allowed_modules
|
||||
.filter(d => (d.type==='module' || d.category==='Places') && !d.blocked),
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.get_modules_list();
|
||||
this.update_current_module();
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -52,21 +52,6 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
get_modules_list() {
|
||||
let res = frappe.call({
|
||||
method: 'frappe.desk.doctype.desktop_icon.desktop_icon.get_modules_from_all_apps',
|
||||
});
|
||||
|
||||
res.then(r => {
|
||||
if (r.message) {
|
||||
let modules_list = r.message;
|
||||
|
||||
this.modules_list = modules_list
|
||||
.filter(d => (d.type==='module' || d.category==='Places') && !d.blocked);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
get_module_sections(module_name) {
|
||||
let cache = this.modules_data_cache[module_name];
|
||||
if(cache) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue