浏览代码

[fix] dashboard cleanup

version-14
Rushabh Mehta 9 年前
父节点
当前提交
adb2e86a3d
共有 12 个文件被更改,包括 112 次插入46 次删除
  1. +4
    -0
      frappe/desk/notifications.py
  2. +18
    -9
      frappe/public/css/form.css
  3. +16
    -6
      frappe/public/css/list.css
  4. +31
    -7
      frappe/public/js/frappe/form/dashboard.js
  5. +3
    -3
      frappe/public/js/frappe/form/layout.js
  6. +1
    -1
      frappe/public/js/frappe/form/templates/form_dashboard.html
  7. +1
    -1
      frappe/public/js/frappe/form/templates/form_links.html
  8. +1
    -1
      frappe/public/js/frappe/list/list_sidebar.html
  9. +2
    -2
      frappe/public/js/frappe/list/list_sidebar.js
  10. +1
    -0
      frappe/public/js/frappe/ui/listing.js
  11. +15
    -10
      frappe/public/less/form.less
  12. +19
    -6
      frappe/public/less/list.less

+ 4
- 0
frappe/desk/notifications.py 查看文件

@@ -189,6 +189,10 @@ def get_open_count(doctype, name):

out = []
for d in items:
if d in links.get('internal_links', {}):
# internal link
continue

filters = get_filters_for(d)
fieldname = links.get('non_standard_fieldnames', {}).get(d, links.fieldname)
data = {'name': d}


+ 18
- 9
frappe/public/css/form.css 查看文件

@@ -71,11 +71,21 @@
display: none;
}
}
.form-dashboard {
background-color: #fafbfc;
border-bottom: 1px solid #d1d8dd;
}
.form-documents h6 {
margin-top: 15px;
}
.form-dashboard-section {
padding: 15px 30px;
margin: 0px;
border-bottom: 1px solid #EBEFF2;
}
.form-dashboard-section:last-child {
border-bottom: none;
}
.form-heatmap {
padding-top: 30px;
}
@@ -137,24 +147,23 @@
margin-left: 5px;
margin-right: 5px;
}
h6.uppercase,
.h6.uppercase {
font-size: 11px;
font-weight: normal;
letter-spacing: 0.4px;
text-transform: uppercase;
color: #8D99A6;
}
.form-section {
margin: 0px;
padding: 15px;
}
.form-section h6,
.form-section .h6 {
font-size: 11px;
letter-spacing: 0.4px;
}
.form-section .form-section-heading {
margin: 10px 0px;
text-transform: uppercase;
color: #8D99A6;
}
.form-section .section-head {
margin: 0px 0px 15px 15px;
text-transform: uppercase;
color: #8D99A6;
cursor: pointer;
}
.form-section .section-head .collapse-indicator {


+ 16
- 6
frappe/public/css/list.css 查看文件

@@ -83,7 +83,10 @@
}
.list-row:hover,
.grid-row:hover {
background: #F7FAFC;
background-color: #F7FAFC;
}
.no-hover:hover {
background-color: transparent !important;
}
.list-row:last-child {
border-bottom: 0px;
@@ -205,14 +208,21 @@
padding-bottom: 5px;
padding-top: 5px;
}
.image-view-col a {
text-decoration: none !important;
}
table.field-info {
opacity: 0;
bottom: -20px;
font-size: 8pt;
color: white;
background-color: #000000;
background-color: #36414C;
position: absolute;
padding-bottom: 0px !important;
border: 0px;
}
table.field-info tr td {
border: none !important;
}
.zoom-view {
top: 10px !important;
@@ -221,18 +231,18 @@ table.field-info {
height: 36px;
opacity: 0;
font-size: 16px;
color: black;
color: #36414C;
position: absolute;
padding: 0px !important;
border-radius: 20px;
border-radius: 5px;
border: 0px;
}
.image-field {
position: relative;
}
.image-field:hover .field-info {
opacity: 0.9;
opacity: 0.7;
}
.image-field:hover .zoom-view {
opacity: 1;
opacity: 0.6;
}

+ 31
- 7
frappe/public/js/frappe/form/dashboard.js 查看文件

@@ -179,21 +179,28 @@ frappe.ui.form.Dashboard = Class.extend({

// bind links
this.transactions_area.find(".badge-link").on('click', function() {
me.open_document_list($(this).parent().attr('data-doctype'));
me.open_document_list($(this).parent());
});

// bind open notifications
this.transactions_area.find('.open-notification').on('click', function() {
me.open_document_list($(this).parent().attr('data-doctype'), true);
me.open_document_list($(this).parent(), true);
});

this.data_rendered = true;
},
open_document_list: function(doctype, show_open) {
open_document_list: function($link, show_open) {
// show document list with filters
frappe.route_options = this.get_document_filter(doctype);
if(show_open) {
$.extend(frappe.route_options, frappe.ui.notifications.get_filters(doctype));
var doctype = $link.attr('data-doctype'),
names = $link.attr('data-names')

if(names) {
frappe.route_options = {'name': ['in', names]};
} else {
frappe.route_options = this.get_document_filter(doctype);
if(show_open) {
$.extend(frappe.route_options, frappe.ui.notifications.get_filters(doctype));
}
}

frappe.set_route("List", doctype);
@@ -234,16 +241,32 @@ frappe.ui.form.Dashboard = Class.extend({
if(r.message.timeline_data) {
me.update_heatmap(r.message.timeline_data);
}

// update badges
$.each(r.message.count, function(i, d) {
me.frm.dashboard.set_badge_count(d.name, cint(d.open_count), cint(d.count));
});

// update from internal links
$.each(me.data.internal_links || {}, function(doctype, link) {
var table_fieldname = link[0], link_fieldname = link[1];
var names = [];
(me.frm.doc[table_fieldname] || []).forEach(function(d) {
var value = d[link_fieldname];
if(names.indexOf(value)===-1) {
names.push(value);
}
});
me.frm.dashboard.set_badge_count(doctype, 0, names.length, names);
});

me.frm.dashboard_data = r.message;
me.frm.trigger('dashboard_update');
}
});

},
set_badge_count: function(doctype, open_count, count) {
set_badge_count: function(doctype, open_count, count, names) {
var $link = $(this.transactions_area)
.find('.document-link[data-doctype="'+doctype+'"]');

@@ -259,6 +282,7 @@ frappe.ui.form.Dashboard = Class.extend({
.html((count > 9) ? '9+' : count);
}

$link.attr('data-names', names ? names.join(',') : '');
},

update_heatmap: function(data) {


+ 3
- 3
frappe/public/js/frappe/form/layout.js 查看文件

@@ -400,7 +400,7 @@ frappe.ui.form.Layout = Class.extend({
if (!doc && this.get_values) {
var doc = this.get_values(true);
}
if (!doc) {
return;
}
@@ -471,11 +471,11 @@ frappe.ui.form.Section = Class.extend({
make_head: function() {
var me = this;
if(!this.df.collapsible) {
$('<div class="col-sm-12"><h6 class="form-section-heading">'
$('<div class="col-sm-12"><h6 class="form-section-heading uppercase">'
+ __(this.df.label) + '</h6></div>')
.appendTo(this.wrapper);
} else {
this.head = $('<div class="section-head"><a class="h6">'
this.head = $('<div class="section-head"><a class="h6 uppercase">'
+__(this.df.label)+'</a><span class="octicon octicon-chevron-down collapse-indicator"></span></div>').appendTo(this.wrapper);

// show / hide based on status


+ 1
- 1
frappe/public/js/frappe/form/templates/form_dashboard.html 查看文件

@@ -1,4 +1,4 @@
<div class="form-dashboard shaded-section hidden">
<div class="form-dashboard hidden">
<h4 class="form-headline hidden form-dashboard-section">
</h4>
<div class="progress-area hidden form-dashboard-section">


+ 1
- 1
frappe/public/js/frappe/form/templates/form_links.html 查看文件

@@ -2,7 +2,7 @@
{% for (var i=0; i < transactions.length; i++) { %}
{% if((i % 2)===0) { %}<div class="row">{% } %}
<div class="col-xs-6">
<h5 style="margin-top: 15px;">{{ transactions[i].label }}</h5>
<h6 class="uppercase">{{ transactions[i].label }}</h5>
{% for (var j=0; j < transactions[i].items.length; j++) {
var doctype = transactions[i].items[j]; %}
<div class="document-link"


+ 1
- 1
frappe/public/js/frappe/list/list_sidebar.html 查看文件

@@ -20,7 +20,7 @@
<a>{%= __("Assigned To Me") %}</a>
</li>
<li class="hide switch-list-view">
<a>{%= __("Image View") %}</a>
<a>{%= __("Show Images") %}</a>
</li>
{% if(frappe.help.has_help(doctype)) { %}
<li><a class="help-link" data-doctype="{{ doctype }}">{{ __("Help") }}</a></li>


+ 2
- 2
frappe/public/js/frappe/list/list_sidebar.js 查看文件

@@ -83,12 +83,12 @@ frappe.views.ListSidebar = Class.extend({
if(this.doclistview.meta.image_field) {
this.page.sidebar.find(".switch-list-view").removeClass("hide");

var label = this.doclistview.meta.image_view ? "List View": "Image View";
var label = this.doclistview.meta.image_view ? __("Show List"): __("Show Images");
this.page.sidebar.find(".switch-list-view a").html(label)

var switch_list_view = function(view) {
var image_view = 0
if(view == "Image View")
if(view == __("Show Images"))
image_view = 1

me.doclistview.meta.image_view = image_view;


+ 1
- 0
frappe/public/js/frappe/ui/listing.js 查看文件

@@ -320,6 +320,7 @@ frappe.ui.Listing = Class.extend({
while (cols.length) {
row = this.add_row(cols[0]);
$("<div class='row image-view-marker'></div>").appendTo(row);
$(row).addClass('no-hover');
this.render_image_view_row(row, cols.splice(0, 4), this, i);
}



+ 15
- 10
frappe/public/less/form.less 查看文件

@@ -101,7 +101,12 @@
}

.form-dashboard {
//border-bottom: 1px solid @light-border-color;
background-color: @light-bg;
border-bottom: 1px solid @border-color;
}

.form-documents h6 {
margin-top: 15px;
}

.form-dashboard-section {
@@ -111,7 +116,7 @@
}

.form-dashboard-section:last-child {
// border-bottom: none;
border-bottom: none;
}

.form-heatmap {
@@ -189,25 +194,25 @@
}
}

h6.uppercase, .h6.uppercase {
font-size: 11px;
font-weight: normal;
letter-spacing: 0.4px;
text-transform: uppercase;
color: @text-muted;
}

.form-section {
margin: 0px;
padding: 15px;

h6, .h6 {
font-size: 11px;
letter-spacing: 0.4px;
}

.form-section-heading {
margin: 10px 0px;
text-transform: uppercase;
color: @text-muted;
}

.section-head {
margin: 0px 0px 15px 15px;
text-transform: uppercase;
color: @text-muted;
cursor: pointer;

.collapse-indicator {


+ 19
- 6
frappe/public/less/list.less 查看文件

@@ -106,7 +106,11 @@
}

.list-row:hover, .grid-row:hover {
background: @panel-bg;
background-color: @panel-bg;
}

.no-hover:hover {
background-color: transparent !important;
}

.list-row:last-child {
@@ -261,6 +265,10 @@
.image-view-col {
padding-bottom: 5px;
padding-top: 5px;

a {
text-decoration: none !important;
}
}

table.field-info {
@@ -268,9 +276,14 @@ table.field-info {
bottom: -20px;
font-size: 8pt;
color: white;
background-color: #000000;
background-color: @text-color;
position: absolute;
padding-bottom: 0px !important;
border: 0px;
}

table.field-info tr td {
border: none !important;
}

.zoom-view {
@@ -280,10 +293,10 @@ table.field-info {
height: 36px;
opacity: 0;
font-size: 16px;
color: black;
color: @text-color;
position: absolute;
padding: 0px !important;
border-radius: 20px;
border-radius: 5px;
border: 0px;
}

@@ -292,9 +305,9 @@ table.field-info {
}

.image-field:hover .field-info {
opacity: 0.9;
opacity: 0.7;
}

.image-field:hover .zoom-view {
opacity: 1;
opacity: 0.6;
}

正在加载...
取消
保存