[hub] form (info) view for items
This commit is contained in:
parent
9b64620bc0
commit
b8e9c9be08
@ -15,7 +15,7 @@ def enable_hub():
|
|||||||
return hub_settings
|
return hub_settings
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_items(start=0, limit=20, category=None, order_by=None, company=None, text=None):
|
def get_items(start=0, limit=20, fields=["*"], category=None, order_by=None, company=None, text=None):
|
||||||
connection = get_client_connection()
|
connection = get_client_connection()
|
||||||
|
|
||||||
filters = {}
|
filters = {}
|
||||||
@ -29,9 +29,23 @@ def get_items(start=0, limit=20, category=None, order_by=None, company=None, tex
|
|||||||
|
|
||||||
response = connection.get_list('Hub Item',
|
response = connection.get_list('Hub Item',
|
||||||
limit_start=start, limit_page_length=limit,
|
limit_start=start, limit_page_length=limit,
|
||||||
filters=filters)
|
filters=filters, fields=fields)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
#
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_hub_item_meta():
|
||||||
|
connection = get_client_connection()
|
||||||
|
meta = connection.get_doc('DocType', 'Hub Item')
|
||||||
|
return meta
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_hub_company_meta():
|
||||||
|
connection = get_client_connection()
|
||||||
|
meta = connection.get_doc('DocType', 'Hub Company')
|
||||||
|
return meta
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_categories():
|
def get_categories():
|
||||||
connection = get_client_connection()
|
connection = get_client_connection()
|
||||||
@ -43,7 +57,10 @@ def get_item_details(hub_sync_id=None):
|
|||||||
if not hub_sync_id:
|
if not hub_sync_id:
|
||||||
return
|
return
|
||||||
connection = get_client_connection()
|
connection = get_client_connection()
|
||||||
return connection.get_doc('Hub Item', hub_sync_id)
|
item_details = connection.get_doc('Hub Item', hub_sync_id)
|
||||||
|
print("============details=============")
|
||||||
|
print(item_details)
|
||||||
|
return item_details
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_company_details(hub_sync_id):
|
def get_company_details(hub_sync_id):
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
|
||||||
// For license information, please see license.txt
|
|
||||||
|
|
||||||
frappe.ui.form.on('Hub Category', {
|
|
||||||
refresh: function(frm) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
@ -1,275 +0,0 @@
|
|||||||
{
|
|
||||||
"allow_copy": 0,
|
|
||||||
"allow_guest_to_view": 0,
|
|
||||||
"allow_import": 0,
|
|
||||||
"allow_rename": 0,
|
|
||||||
"autoname": "field:hub_category_name",
|
|
||||||
"beta": 0,
|
|
||||||
"creation": "2017-08-22 11:31:10.410322",
|
|
||||||
"custom": 0,
|
|
||||||
"docstatus": 0,
|
|
||||||
"doctype": "DocType",
|
|
||||||
"document_type": "",
|
|
||||||
"editable_grid": 1,
|
|
||||||
"engine": "InnoDB",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "hub_category_name",
|
|
||||||
"fieldtype": "Data",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Category Name",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "parent_hub_category",
|
|
||||||
"fieldtype": "Link",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Parent Category",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"options": "Hub Category",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "is_group",
|
|
||||||
"fieldtype": "Check",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Is Group",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "description",
|
|
||||||
"fieldtype": "Text Editor",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Description",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "lft",
|
|
||||||
"fieldtype": "Int",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Left",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "rgt",
|
|
||||||
"fieldtype": "Int",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Right",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "old_parent",
|
|
||||||
"fieldtype": "Data",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Old Parent",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"has_web_view": 0,
|
|
||||||
"hide_heading": 0,
|
|
||||||
"hide_toolbar": 0,
|
|
||||||
"idx": 0,
|
|
||||||
"image_view": 0,
|
|
||||||
"in_create": 0,
|
|
||||||
"is_submittable": 0,
|
|
||||||
"issingle": 0,
|
|
||||||
"istable": 0,
|
|
||||||
"max_attachments": 0,
|
|
||||||
"modified": "2017-09-03 22:04:22.958831",
|
|
||||||
"modified_by": "Administrator",
|
|
||||||
"module": "Hub Node",
|
|
||||||
"name": "Hub Category",
|
|
||||||
"name_case": "",
|
|
||||||
"owner": "Administrator",
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"amend": 0,
|
|
||||||
"apply_user_permissions": 0,
|
|
||||||
"cancel": 0,
|
|
||||||
"create": 1,
|
|
||||||
"delete": 1,
|
|
||||||
"email": 1,
|
|
||||||
"export": 1,
|
|
||||||
"if_owner": 0,
|
|
||||||
"import": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"print": 1,
|
|
||||||
"read": 1,
|
|
||||||
"report": 1,
|
|
||||||
"role": "System Manager",
|
|
||||||
"set_user_permissions": 0,
|
|
||||||
"share": 1,
|
|
||||||
"submit": 0,
|
|
||||||
"write": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"quick_entry": 1,
|
|
||||||
"read_only": 0,
|
|
||||||
"read_only_onload": 0,
|
|
||||||
"show_name_in_global_search": 0,
|
|
||||||
"sort_field": "modified",
|
|
||||||
"sort_order": "DESC",
|
|
||||||
"title_field": "hub_category_name",
|
|
||||||
"track_changes": 1,
|
|
||||||
"track_seen": 0
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
|
||||||
# For license information, please see license.txt
|
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
|
||||||
from frappe.utils.nestedset import NestedSet
|
|
||||||
from frappe.model.document import Document
|
|
||||||
|
|
||||||
class HubCategory(NestedSet):
|
|
||||||
pass
|
|
@ -1,4 +0,0 @@
|
|||||||
frappe.treeview_settings["Hub Category"] = {
|
|
||||||
title: __("Hub Category"),
|
|
||||||
breadcrumb: "Hub"
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
/* eslint-disable */
|
|
||||||
// rename this file from _test_[name] to test_[name] to activate
|
|
||||||
// and remove above this line
|
|
||||||
|
|
||||||
QUnit.test("test: Hub Category", function (assert) {
|
|
||||||
let done = assert.async();
|
|
||||||
|
|
||||||
// number of asserts
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
frappe.run_serially([
|
|
||||||
// insert a new Hub Category
|
|
||||||
() => frappe.tests.make('Hub Category', [
|
|
||||||
// values to be set
|
|
||||||
{key: 'value'}
|
|
||||||
]),
|
|
||||||
() => {
|
|
||||||
assert.equal(cur_frm.doc.key, 'value');
|
|
||||||
},
|
|
||||||
() => done()
|
|
||||||
]);
|
|
||||||
|
|
||||||
});
|
|
@ -1,10 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
|
|
||||||
# See license.txt
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
class TestHubCategory(unittest.TestCase):
|
|
||||||
pass
|
|
@ -9,7 +9,7 @@ frappe.pages['hub'].on_page_load = function(wrapper) {
|
|||||||
single_col: false
|
single_col: false
|
||||||
});
|
});
|
||||||
|
|
||||||
wrapper.hub_page = new erpnext.hub.Hub({ page });
|
// wrapper.hub_page = new erpnext.hub.Hub({ page });
|
||||||
};
|
};
|
||||||
|
|
||||||
frappe.pages['hub'].on_page_show = function(wrapper) {
|
frappe.pages['hub'].on_page_show = function(wrapper) {
|
||||||
@ -776,7 +776,7 @@ erpnext.hub.HubList = class HubList {
|
|||||||
limit: this.page_length + 1
|
limit: this.page_length + 1
|
||||||
};
|
};
|
||||||
Object.assign(args, this.filters);
|
Object.assign(args, this.filters);
|
||||||
console.log("filters: ", args);
|
// console.log("filters: ", args);
|
||||||
args.order_by = this.order_by;
|
args.order_by = this.order_by;
|
||||||
args.by_item_codes = this.by_item_codes;
|
args.by_item_codes = this.by_item_codes;
|
||||||
|
|
||||||
@ -785,7 +785,7 @@ erpnext.hub.HubList = class HubList {
|
|||||||
args: args,
|
args: args,
|
||||||
callback: (r) => {
|
callback: (r) => {
|
||||||
let items = r.message;
|
let items = r.message;
|
||||||
console.log("items: ", items);
|
// console.log("items: ", items);
|
||||||
this.render_items(items);
|
this.render_items(items);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -796,7 +796,6 @@ erpnext.hub.HubList = class HubList {
|
|||||||
// clear any filler divs
|
// clear any filler divs
|
||||||
this.$list.find('.filler').remove();
|
this.$list.find('.filler').remove();
|
||||||
let done = 0;
|
let done = 0;
|
||||||
console.log("items length", items.length);
|
|
||||||
if(items.length && items.length > this.page_length) {
|
if(items.length && items.length > this.page_length) {
|
||||||
// remove the extra queried
|
// remove the extra queried
|
||||||
items.pop();
|
items.pop();
|
||||||
|
@ -1,3 +1,29 @@
|
|||||||
|
body[data-route^="Hub/"] .freeze .image-view-container .list-row-col {
|
||||||
|
background-color: #fafbfc;
|
||||||
|
color: #fafbfc;
|
||||||
|
}
|
||||||
|
body[data-route^="Hub/"] .freeze .image-view-container .placeholder-text {
|
||||||
|
color: #fafbfc;
|
||||||
|
}
|
||||||
|
body[data-route^="Hub/"] .freeze {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
body[data-route^="Hub/"] .image-view-container {
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.img-wrapper {
|
||||||
|
border: 1px solid #d1d8dd;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.img-wrapper .helper {
|
||||||
|
height: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
/* hub */
|
/* hub */
|
||||||
div[data-page-route="hub"] .page-head {
|
div[data-page-route="hub"] .page-head {
|
||||||
height: 80px;
|
height: 80px;
|
||||||
|
@ -169,8 +169,5 @@ input[type=number]::-webkit-outer-spin-button {
|
|||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
.grand-total .grand-total-value {
|
.grand-total .grand-total-value {
|
||||||
font-size: 18px;
|
font-size: 24px;
|
||||||
}
|
|
||||||
.rounded-total-value {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,22 @@ frappe.views.HubFactory = frappe.views.Factory.extend({
|
|||||||
const page_name = frappe.get_route_str();
|
const page_name = frappe.get_route_str();
|
||||||
const page = route[1];
|
const page = route[1];
|
||||||
|
|
||||||
|
const assets = {
|
||||||
|
'List': [
|
||||||
|
'/assets/erpnext/js/hub/hub_page.js',
|
||||||
|
'/assets/erpnext/css/hub.css',
|
||||||
|
],
|
||||||
|
'Form': [
|
||||||
|
'/assets/erpnext/js/hub/hub_form.js',
|
||||||
|
'/assets/erpnext/css/hub.css',
|
||||||
|
]
|
||||||
|
};
|
||||||
|
console.log("make factory?");
|
||||||
|
|
||||||
if (!erpnext.hub.pages[page_name]) {
|
if (!erpnext.hub.pages[page_name]) {
|
||||||
|
console.log("pages?");
|
||||||
if (page === 'Item' && !route[2]) {
|
if (page === 'Item' && !route[2]) {
|
||||||
frappe.require('/assets/erpnext/js/hub/hub_page.js', () => {
|
frappe.require(assets['List'], () => {
|
||||||
erpnext.hub.pages[page_name] = new erpnext.hub.HubPage({
|
erpnext.hub.pages[page_name] = new erpnext.hub.HubPage({
|
||||||
doctype: 'Hub Settings',
|
doctype: 'Hub Settings',
|
||||||
parent: this.make_page(true, page_name)
|
parent: this.make_page(true, page_name)
|
||||||
@ -15,7 +28,8 @@ frappe.views.HubFactory = frappe.views.Factory.extend({
|
|||||||
window.hub_page = erpnext.hub.pages[page_name];
|
window.hub_page = erpnext.hub.pages[page_name];
|
||||||
});
|
});
|
||||||
} else if(route[2]) {
|
} else if(route[2]) {
|
||||||
frappe.require('/assets/erpnext/js/hub/hub_form.js', () => {
|
console.log("form?");
|
||||||
|
frappe.require(assets['Form'], () => {
|
||||||
erpnext.hub.pages[page_name] = new erpnext.hub.HubForm({
|
erpnext.hub.pages[page_name] = new erpnext.hub.HubForm({
|
||||||
hub_item_code: route[2],
|
hub_item_code: route[2],
|
||||||
doctype: 'Hub Settings',
|
doctype: 'Hub Settings',
|
||||||
@ -25,6 +39,7 @@ frappe.views.HubFactory = frappe.views.Factory.extend({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
console.log("else?");
|
||||||
frappe.container.change_to(page_name);
|
frappe.container.change_to(page_name);
|
||||||
window.hub_page = erpnext.hub.pages[page_name];
|
window.hub_page = erpnext.hub.pages[page_name];
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ erpnext.hub.HubForm = class HubForm extends frappe.views.BaseList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_fields() {
|
setup_fields() {
|
||||||
|
this.fields = ['hub_item_code', 'item_name', 'item_code', 'description', 'seller', 'company_name', 'country'];
|
||||||
}
|
}
|
||||||
|
|
||||||
set_breadcrumbs() {
|
set_breadcrumbs() {
|
||||||
@ -40,9 +40,12 @@ erpnext.hub.HubForm = class HubForm extends frappe.views.BaseList {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prepare_data(r) {
|
||||||
|
this.data = r.message;
|
||||||
|
}
|
||||||
|
|
||||||
update_data(r) {
|
update_data(r) {
|
||||||
const data = r.message;
|
this.data = r.message;
|
||||||
this.data = data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@ -51,13 +54,14 @@ erpnext.hub.HubForm = class HubForm extends frappe.views.BaseList {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let fields = [];
|
let fields = [];
|
||||||
for (let fieldname in this.data) {
|
this.fields.map(fieldname => {
|
||||||
fields.push({
|
fields.push({
|
||||||
label: toTitle(fieldname),
|
label: toTitle(frappe.model.unscrub(fieldname)),
|
||||||
fieldname,
|
fieldname,
|
||||||
fieldtype: 'Data'
|
fieldtype: 'Data',
|
||||||
|
read_only: 1
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
|
||||||
this.form = new frappe.ui.FieldGroup({
|
this.form = new frappe.ui.FieldGroup({
|
||||||
parent: this.$result,
|
parent: this.$result,
|
||||||
|
@ -8,10 +8,22 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
|
|
||||||
const route = frappe.get_route();
|
const route = frappe.get_route();
|
||||||
this.page_name = route[1];
|
this.page_name = route[1];
|
||||||
|
|
||||||
|
return this.get_hub_item_meta()
|
||||||
|
.then(r => {
|
||||||
|
this.meta = r.message || this.meta;
|
||||||
|
this.doctype = 'Hub Item';
|
||||||
|
frappe.model.sync(this.meta);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
get_hub_item_meta() {
|
||||||
|
return new Promise(resolve =>
|
||||||
|
frappe.call('erpnext.hub_node.get_hub_item_meta', {}, resolve));
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_fields() {
|
setup_fields() {
|
||||||
|
this.fields = ['name', 'hub_item_code', 'image', 'item_name', 'item_code'];
|
||||||
}
|
}
|
||||||
|
|
||||||
set_breadcrumbs() {
|
set_breadcrumbs() {
|
||||||
@ -23,13 +35,32 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_filter_area() {
|
setup_filter_area() {
|
||||||
|
this.custom_filter_configs = [
|
||||||
|
{
|
||||||
|
fieldtype: 'Data',
|
||||||
|
label: 'Company',
|
||||||
|
condition: 'like',
|
||||||
|
fieldname: 'company_name',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: 'Link',
|
||||||
|
label: 'Country',
|
||||||
|
options: 'Country',
|
||||||
|
condition: 'like',
|
||||||
|
fieldname: 'country'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
this.filter_area = new FilterArea(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_sort_selector() {
|
setup_sort_selector() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_view() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
get_args() {
|
get_args() {
|
||||||
return {
|
return {
|
||||||
start: this.start,
|
start: this.start,
|
||||||
@ -37,18 +68,33 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
category: this.category || '',
|
category: this.category || '',
|
||||||
order_by: this.order_by,
|
order_by: this.order_by,
|
||||||
company: this.company || '',
|
company: this.company || '',
|
||||||
text: this.search_text || ''
|
text: this.search_text || '',
|
||||||
|
fields: this.fields
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
update_data(r) {
|
update_data(r) {
|
||||||
const data = r.message;
|
const data = r.message;
|
||||||
|
console.log('update data', data);
|
||||||
|
|
||||||
if (this.start === 0) {
|
if (this.start === 0) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
} else {
|
} else {
|
||||||
this.data = this.data.concat(data);
|
this.data = this.data.concat(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
freeze(toggle) {
|
||||||
|
this.$freeze.toggle(toggle);
|
||||||
|
if (this.$freeze.find('.image-view-container').length) return;
|
||||||
|
|
||||||
|
const html = Array.from(new Array(4)).map(d => this.card_html({
|
||||||
|
name: 'freeze',
|
||||||
|
item_name: 'freeze'
|
||||||
|
})).join('');
|
||||||
|
|
||||||
|
this.$freeze.html(`<div class="image-view-container border-top">${html}</div>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@ -56,13 +102,15 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render_image_view() {
|
render_image_view() {
|
||||||
var html = this.data.map(this.card_html.bind(this)).join("");
|
let data = this.data;
|
||||||
|
console.log('this.data render', this.data);
|
||||||
|
if (this.start === 0) {
|
||||||
|
this.$result.html('<div class="image-view-container small padding-top">');
|
||||||
|
data = this.data.slice(this.start);
|
||||||
|
}
|
||||||
|
|
||||||
this.$result.html(`
|
var html = data.map(this.card_html.bind(this)).join("");
|
||||||
<div class="image-view-container small">
|
this.$result.find('.image-view-container').append(html);
|
||||||
${html}
|
|
||||||
</div>
|
|
||||||
`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
card_html(item) {
|
card_html(item) {
|
||||||
@ -70,39 +118,28 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
const encoded_name = item._name;
|
const encoded_name = item._name;
|
||||||
const title = strip_html(item['item_name' || 'item_code']);
|
const title = strip_html(item['item_name' || 'item_code']);
|
||||||
|
|
||||||
const _class = !item.image ? 'no-image' : '';
|
const route = `#Hub/Item/${item.hub_item_code}`;
|
||||||
const _html = item.image ?
|
|
||||||
`<img data-name="${encoded_name}" src="${ item.image }" alt="${ title }">` :
|
const image_html = item.image ?
|
||||||
`<span class="placeholder-text">
|
`<img src="${item.image}">
|
||||||
${ frappe.get_abbr(title) }
|
<span class="helper"></span>` :
|
||||||
</span>`;
|
`<div class="standard-image">${frappe.get_abbr(title)}</div>`;
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<div class="image-view-item">
|
<div class="hub-item-wrapper margin-bottom" style="width: 200px;">
|
||||||
<div class="image-view-header">
|
<a href="${route}">
|
||||||
<div class="list-row-col list-subject ellipsis level">
|
<div class="hub-item-image">
|
||||||
<div class="list-row-col">
|
<div class="img-wrapper" style="height: 200px; width: 200px">
|
||||||
<span>${title}</span>
|
${image_html}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="hub-item-title">
|
||||||
<div class="image-view-body">
|
<h5 class="bold">
|
||||||
<a data-name="${encoded_name}"
|
${ title }
|
||||||
title="${encoded_name}"
|
</h5>
|
||||||
href="#Hub/Item/${item.hub_item_code}"
|
</div>
|
||||||
>
|
</a>
|
||||||
<div class="image-field ${_class}"
|
|
||||||
data-name="${encoded_name}"
|
|
||||||
>
|
|
||||||
${_html}
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
show_hub_form() {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
@ -1,5 +1,41 @@
|
|||||||
@import "../../../../frappe/frappe/public/less/variables.less";
|
@import "../../../../frappe/frappe/public/less/variables.less";
|
||||||
|
|
||||||
|
body[data-route^="Hub/"] {
|
||||||
|
.freeze .image-view-container {
|
||||||
|
.list-row-col {
|
||||||
|
background-color: @light-bg;
|
||||||
|
color: @light-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder-text {
|
||||||
|
color: @light-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.freeze {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-view-container {
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-wrapper {
|
||||||
|
border: 1px solid #d1d8dd;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
.helper {
|
||||||
|
height: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* hub */
|
/* hub */
|
||||||
div[data-page-route="hub"] {
|
div[data-page-route="hub"] {
|
||||||
.page-head {
|
.page-head {
|
||||||
|
@ -3384,7 +3384,7 @@
|
|||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"fieldname": "hub_category_to_publish",
|
"fieldname": "hub_category_to_publish",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Data",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"ignore_xss_filter": 0,
|
"ignore_xss_filter": 0,
|
||||||
@ -3395,12 +3395,12 @@
|
|||||||
"label": "Hub Category to Publish",
|
"label": "Hub Category to Publish",
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"options": "Hub Category",
|
"options": "",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 0,
|
"print_hide": 0,
|
||||||
"print_hide_if_no_value": 0,
|
"print_hide_if_no_value": 0,
|
||||||
"read_only": 0,
|
"read_only": 1,
|
||||||
"remember_last_selected_value": 0,
|
"remember_last_selected_value": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
@ -3484,7 +3484,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 1,
|
"max_attachments": 1,
|
||||||
"modified": "2018-01-23 12:21:16.641517",
|
"modified": "2018-01-24 20:42:23.303090",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Item",
|
"name": "Item",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user