Bladeren bron

[wip] modules setup

version-14
Rushabh Mehta 9 jaren geleden
bovenliggende
commit
37c48ce030
4 gewijzigde bestanden met toevoegingen van 108 en 56 verwijderingen
  1. +5
    -2
      frappe/core/doctype/page/page.py
  2. +33
    -0
      frappe/core/page/modules_setup/modules_setup.html
  3. +63
    -54
      frappe/core/page/modules_setup/modules_setup.js
  4. +7
    -0
      frappe/core/page/modules_setup/modules_setup.py

+ 5
- 2
frappe/core/doctype/page/page.py Bestand weergeven

@@ -110,13 +110,16 @@ class Page(Document):
with open(os.path.join(path, fname), 'r') as f:
template = unicode(f.read(), "utf-8")
if "<!-- jinja -->" in template:
context = {}
context = frappe._dict({})
try:
context = frappe.get_attr("{app}.{module}.page.{page}.{page}.get_context".format(
out = frappe.get_attr("{app}.{module}.page.{page}.{page}.get_context".format(
app = frappe.local.module_app[scrub(self.module)],
module = scrub(self.module),
page = page_name
))(context)

if out:
context = out
except (AttributeError, ImportError):
pass



+ 33
- 0
frappe/core/page/modules_setup/modules_setup.html Bestand weergeven

@@ -0,0 +1,33 @@
<!-- jinja -->
<div class="padding modules-setup">
{% if users %}
<div class="row">
<div class="col-sm-3" name="set_for">
<select class="form-control">
<option value="everyone" selected>{{ _("For Everyone") }}</option>
<option value="user">{{ _("For User") }}</option>
</select>
</div>
<div class="col-sm-3" name="user">
<select class="form-control">
{% for user in users %}
<option value="{{ user.name }}">
{{ user.first_name or "" }} {{ user.last_name or "" }} ({{ user.name }})</option>
{% endfor %}
</select>
</div>
</div>
{% endif %}
{% for icon in icons %}
<div>
<div class="checkbox">
<label>
<input type="checkbox" data-module="{{ icon.module_name }}"
{% if not icon.hidden %}checked{% endif %}>
{{ _(icon.label or icon.module_name) }}
</label>
</div>

</div>
{% endfor %}
</div>

+ 63
- 54
frappe/core/page/modules_setup/modules_setup.js Bestand weergeven

@@ -1,61 +1,70 @@

frappe.pages['modules_setup'].on_page_load = function(wrapper) {
var page = frappe.ui.make_app_page({
parent: wrapper,
title: __('Show or Hide Modules'),
single_column: true
});

frappe.breadcrumbs.add("Setup");

wrapper.page.set_primary_action(__("Update"), function() {
frappe.modules_setup.update(this);
});

page.main.css({"padding":"15px"});

$('<p>'
+__("Select modules to be shown (based on permission). If hidden, they will be hidden for all users.")+'</p>').appendTo($(wrapper).find(".layout-main"));
$('<div id="modules-list">').appendTo(page.main);

frappe.modules_setup.refresh_page();
}

frappe.modules_setup = {
refresh_page: function() {
$('#modules-list').empty();

var wrapper = $('<div class="list-group"></div>').appendTo("#modules-list");

$.each(keys(frappe.modules).sort(), function(i, m) {
if(m!="Setup") {
var row = $('<div class="list-group-item">\
<span class="check-area" style="margin-right: 10px;"></span> '
+ " <span> " + __(m) +'</span></div>').appendTo("#modules-list");
var $chk = $("<input type='checkbox' data-module='"+m+"' style='margin-top: -2px'>")
.appendTo(row.find(".check-area"));
if(!frappe.boot.hidden_modules || frappe.boot.hidden_modules.indexOf(m)==-1) {
$chk.prop("checked", true);
}
}
});
},
update: function(btn) {
var ml = [];
$('#modules-list [data-module]:checkbox:not(:checked)').each(function() {
ml.push($(this).attr('data-module'));
});

return frappe.call({
method: 'frappe.core.page.modules_setup.modules_setup.update',
args: {
ml: ml
},
callback: function(r) {
if(r.exc) msgprint(__("There were errors"))
},
btn: btn
});
}

frappe.modules_setup = page;
page.body.html(frappe.templates.modules_setup);
}
// frappe.pages['modules_setup'].on_page_load = function(wrapper) {
// var page = frappe.ui.make_app_page({
// parent: wrapper,
// title: __('Show or Hide Modules'),
// single_column: true
// });
//
// frappe.breadcrumbs.add("Setup");
//
// wrapper.page.set_primary_action(__("Update"), function() {
// frappe.modules_setup.update(this);
// });
//
// page.main.css({"padding":"15px"});
//
// $('<p>'
// +__("Select modules to be shown (based on permission). If hidden, they will be hidden for all users.")+'</p>').appendTo($(wrapper).find(".layout-main"));
// $('<div id="modules-list">').appendTo(page.main);
//
// frappe.modules_setup.page = page;
// frappe.modules_setup.refresh_page();
// }
//
// frappe.modules_setup = {
// refresh_page: function() {
// $('#modules-list').empty();
//
// var wrapper = $('<div class="list-group"></div>').appendTo("#modules-list");
//
// $.each(keys(frappe.modules).sort(), function(i, m) {
// if(m!="Setup") {
// var row = $('<div class="list-group-item">\
// <span class="check-area" style="margin-right: 10px;"></span> '
// + " <span> " + __(m) +'</span></div>').appendTo("#modules-list");
// var $chk = $("<input type='checkbox' data-module='"+m+"' style='margin-top: -2px'>")
// .appendTo(row.find(".check-area"));
// if(!frappe.boot.hidden_modules || frappe.boot.hidden_modules.indexOf(m)==-1) {
// $chk.prop("checked", true);
// }
// }
// });
// },
// update: function(btn) {
// var ml = [];
// $('#modules-list [data-module]:checkbox:not(:checked)').each(function() {
// ml.push($(this).attr('data-module'));
// });
//
// return frappe.call({
// method: 'frappe.core.page.modules_setup.modules_setup.update',
// args: {
// ml: ml
// },
// callback: function(r) {
// if(r.exc) msgprint(__("There were errors"))
// },
// btn: btn
// });
// }
//
// }

+ 7
- 0
frappe/core/page/modules_setup/modules_setup.py Bestand weergeven

@@ -10,3 +10,10 @@ def update(ml):
frappe.db.set_global('hidden_modules', ml)
frappe.msgprint(frappe._('Updated'))
frappe.clear_cache()

def get_context(context):
context.icons = frappe.db.get_all('Desktop Icon',
fields='*', filters={'standard': 1}, order_by='idx')
context.users = frappe.db.get_all('User', filters={'user_type': 'System User', 'enabled': 1},
fields = ['name', 'first_name', 'last_name'])
print context.icons

Laden…
Annuleren
Opslaan