瀏覽代碼

included frappe-gantt as external library (#2527)

version-14
Faris Ansari 8 年之前
committed by Rushabh Mehta
父節點
當前提交
fe2d27f40c
共有 6 個文件被更改,包括 18 次插入1346 次删除
  1. +1
    -2
      frappe/public/build.json
  2. +0
    -112
      frappe/public/css/gantt.css
  3. +15
    -20
      frappe/public/js/frappe/list/doclistview.js
  4. +0
    -1075
      frappe/public/js/frappe/views/gantt.js
  5. +2
    -0
      frappe/public/js/lib/frappe-gantt/frappe-gantt.min.js
  6. +0
    -137
      frappe/public/less/gantt.less

+ 1
- 2
frappe/public/build.json 查看文件

@@ -230,8 +230,7 @@
"public/js/frappe/list/image_view_item_main_head.html",
"public/js/frappe/list/header_select_all_like_filter.html",
"public/js/frappe/list/item_assigned_to_comment_count.html",
"public/js/frappe/views/treeview.js",
"public/js/frappe/views/gantt.js"
"public/js/frappe/views/treeview.js"
],
"css/report.min.css": [
"public/css/report.css",


+ 0
- 112
frappe/public/css/gantt.css 查看文件

@@ -1,112 +0,0 @@
.gantt #grid .grid-background {
fill: none;
}
.gantt #grid .grid-header {
fill: #ffffff;
stroke: #d1d8dd;
stroke-width: 1.4;
}
.gantt #grid .grid-row {
fill: #ffffff;
}
.gantt #grid .grid-row:nth-child(even) {
fill: #fafbfc;
}
.gantt #grid .row-line {
stroke: #EBEFF2;
}
.gantt #grid .tick {
stroke: #d1d8dd;
stroke-width: 0.2;
}
.gantt #grid .tick.thick {
stroke-width: 0.4;
}
.gantt #grid .today-highlight {
fill: #fffce7;
opacity: 0.5;
}
.gantt #arrow {
fill: none;
stroke: #8D99A6;
stroke-width: 1.4;
}
.gantt .bar {
fill: #cbd1d8;
stroke: #aeb0b1;
stroke-width: 0;
transition: stroke-width 0.3s ease;
}
.gantt .bar-progress {
fill: #a8a8ff;
}
.gantt .bar-invalid {
fill: transparent;
stroke: #aeb0b1;
stroke-width: 1;
stroke-dasharray: 5;
}
.gantt .bar-invalid ~ .bar-label {
fill: #6c7680;
}
.gantt .bar-label {
fill: #fff;
dominant-baseline: central;
text-anchor: middle;
font-size: 12px;
font-weight: lighter;
letter-spacing: 0.8px;
}
.gantt .bar-label.big {
fill: #6c7680;
text-anchor: start;
}
.gantt .handle {
fill: #F0F4F7;
cursor: ew-resize;
opacity: 0;
visibility: hidden;
transition: opacity .3s ease;
}
.gantt .bar-wrapper {
cursor: pointer;
}
.gantt .bar-wrapper:hover .bar {
stroke-width: 2;
}
.gantt .bar-wrapper:hover .handle {
visibility: visible;
opacity: 1;
}
.gantt .bar-wrapper.active .bar {
stroke-width: 2;
}
.gantt .primary-text,
.gantt .secondary-text {
font-size: 12px;
text-anchor: middle;
}
.gantt .primary-text {
fill: #6c7680;
}
.gantt .secondary-text {
fill: #36414C;
}
.gantt #details {
font-size: 14;
}
.gantt #details .details-container {
stroke: #d1d8dd;
stroke-width: 1.1;
fill: #fff;
}
.gantt #details .details-heading {
fill: #36414C;
font-weight: 500;
}
.gantt #details .details-body {
fill: #6c7680;
}
.gantt .hide {
display: none;
}

+ 15
- 20
frappe/public/js/frappe/list/doclistview.js 查看文件

@@ -446,7 +446,7 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
},

render_rows_Gantt: function(values) {
var gantt_area = $('<svg height="400" width="6000"></svg>')
var gantt_area = $('<svg width="20" height="20"></svg>')
.appendTo(this.wrapper.find('.result-list').css("overflow", "scroll"));
var id = frappe.dom.set_unique_id(gantt_area);

@@ -460,41 +460,36 @@ frappe.views.DocListView = frappe.ui.Listing.extend({
id: item[field_map.id],
doctype: me.doctype,
progress: item.progress,
dependent: item.depends_on_tasks || ""
dependencies: item.depends_on_tasks || ""
};
});
frappe.require(["assets/frappe/js/lib/snap.svg-min.js", "assets/frappe/css/gantt.css"], function() {
me.gantt = new Gantt({
parent_selector: '#' + id,
tasks: tasks,
date_format: "YYYY-MM-DD",
bar: {
height: 20
},
events: {
bar_on_click: function (task) {
frappe.require([
"assets/frappe/js/lib/snap.svg-min.js",
"assets/frappe/js/lib/frappe-gantt/frappe-gantt.min.js"
], function() {
me.gantt = new Gantt("#"+id, tasks, {
date_format: "YYYY-MM-DD",
on_click: function (task) {
frappe.set_route('Form', task.doctype, task.id);
},
bar_on_date_change: function(task, start, end) {
on_date_change: function(task, start, end) {
update_field(task.id, field_map.start, start.format("YYYY-MM-DD"), function() {
update_field(task.id, field_map.end, end.format("YYYY-MM-DD"), function() {
show_alert({message:__("Saved"), indicator:'green'}, 1);
});
});
},
bar_on_progress_change: function(task, progress) {
on_progress_change: function(task, progress) {
update_field(task.id, 'progress', progress, function() {
show_alert({message:__("Saved"), indicator:'green'}, 1);
});
},
on_viewmode_change: function(mode) {
on_view_change: function(mode) {
me.list_settings.view_mode = mode;
}
}
});
me.gantt.render();
});

var view_modes = me.gantt.get_view_modes() || [];
var view_modes = me.gantt.config.view_modes || [];
var dropdown = "<div class='dropdown pull-right'>" +
"<a class='text-muted dropdown-toggle' data-toggle='dropdown'>" +
"<span class='dropdown-text'>"+__('Day')+"</span><i class='caret'></i></a>" +
@@ -518,7 +513,7 @@ frappe.views.DocListView = frappe.ui.Listing.extend({

$dropdown.on("click", ".option", function() {
var mode = $(this).data('value');
me.gantt.set_view_mode(mode)
me.gantt.change_view_mode(mode)
$dropdown.find(".dropdown-text").text(mode);
})
});


+ 0
- 1075
frappe/public/js/frappe/views/gantt.js
文件差異過大導致無法顯示
查看文件


+ 2
- 0
frappe/public/js/lib/frappe-gantt/frappe-gantt.min.js
文件差異過大導致無法顯示
查看文件


+ 0
- 137
frappe/public/less/gantt.less 查看文件

@@ -1,137 +0,0 @@
@import "variables.less";

@bar-color: #cbd1d8;
@bar-stroke: #aeb0b1;

.gantt {
#grid {
.grid-background {
fill: none;
}
.grid-header {
fill: #ffffff;
stroke: @border-color;
stroke-width: 1.4;
}
.grid-row {
fill: #ffffff;
}
.grid-row:nth-child(even) {
fill: @light-bg;
}
.row-line {
stroke: @light-border-color;
}
.tick {
stroke: @border-color;
stroke-width: 0.2;
&.thick {
stroke-width: 0.4;
}
}
.today-highlight {
fill: @light-yellow;
opacity: 0.5;
}
}

#arrow {
fill: none;
stroke: @text-muted;
stroke-width: 1.4;
}

.bar {
fill: @bar-color;
stroke: @bar-stroke;
stroke-width: 0;
transition: stroke-width .3s ease;
}
.bar-progress {
fill: lighten(@erpnext-blue, 10%);
}
.bar-invalid {
fill: transparent;
stroke: @bar-stroke;
stroke-width: 1;
stroke-dasharray: 5;

&~.bar-label {
fill: @text-light;
}
}
.bar-label {
fill: #fff;
dominant-baseline: central;
text-anchor: middle;
font-size: 12px;
font-weight: lighter;
letter-spacing: 0.8px;

&.big {
fill: @text-light;
text-anchor: start;
}
}

.handle {
fill: @btn-bg;
cursor: ew-resize;
opacity: 0;
visibility: hidden;
transition: opacity .3s ease;
}

.bar-wrapper {
cursor: pointer;

&:hover {
.bar {
stroke-width: 2;
}

.handle {
visibility: visible;
opacity: 1;
}
}

&.active {
.bar {
stroke-width: 2;
}
}
}

.primary-text, .secondary-text {
font-size: 12px;
text-anchor: middle;
}
.primary-text {
fill: @text-light;
}
.secondary-text {
fill: @text-color;
}

#details {
font-size: 14;

.details-container {
stroke: @border-color;
stroke-width: 1.1;
fill: #fff;
}
.details-heading {
fill: @text-color;
font-weight: 500;
}
.details-body {
fill: @text-light;
}
}

.hide {
display: none;
}
}

Loading…
取消
儲存