[hub][init] add profile page
This commit is contained in:
parent
f26177bdbc
commit
d1224ca662
@ -34,9 +34,14 @@ def get_list(doctype, start=0, limit=20, fields=["*"], filters="{}", order_by=No
|
|||||||
#### LOCAL ITEMS
|
#### LOCAL ITEMS
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_valid_items(search_value=''):
|
def get_valid_items(search_value=''):
|
||||||
items = frappe.get_list('Item', fields=["*"], filters={
|
items = frappe.get_list(
|
||||||
'item_name': ['like', '%' + search_value + '%']
|
'Item', fields=["*"],
|
||||||
})
|
filters={
|
||||||
|
'item_name': ['like', '%' + search_value + '%'],
|
||||||
|
'publish_in_hub': 0
|
||||||
|
},
|
||||||
|
order_by="modified desc"
|
||||||
|
)
|
||||||
|
|
||||||
valid_items = filter(lambda x: x.image and x.description, items)
|
valid_items = filter(lambda x: x.image and x.description, items)
|
||||||
|
|
||||||
@ -52,9 +57,6 @@ def publish_selected_items(items_to_publish, items_to_unpublish):
|
|||||||
for item_code in json.loads(items_to_publish):
|
for item_code in json.loads(items_to_publish):
|
||||||
frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
|
frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
|
||||||
|
|
||||||
for item_code in json.loads(items_to_unpublish):
|
|
||||||
frappe.db.set_value('Item', item_code, 'publish_in_hub', 0)
|
|
||||||
|
|
||||||
hub_settings = frappe.get_doc('Hub Settings')
|
hub_settings = frappe.get_doc('Hub Settings')
|
||||||
hub_settings.sync()
|
hub_settings.sync()
|
||||||
|
|
||||||
|
|||||||
@ -137,11 +137,14 @@ erpnext.hub.Marketplace = class Marketplace {
|
|||||||
this.subpages.register = new erpnext.hub.Register(this.$body);
|
this.subpages.register = new erpnext.hub.Register(this.$body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (route[1] === 'profile' && !this.subpages.profile) {
|
||||||
|
this.subpages.profile = new erpnext.hub.Profile(this.$body, this.hub_settings);
|
||||||
|
}
|
||||||
|
|
||||||
if (route[1] === 'publish' && !this.subpages.publish) {
|
if (route[1] === 'publish' && !this.subpages.publish) {
|
||||||
this.subpages.publish = new erpnext.hub.Publish(this.$body);
|
this.subpages.publish = new erpnext.hub.Publish(this.$body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!Object.keys(this.subpages).includes(route[1])) {
|
if (!Object.keys(this.subpages).includes(route[1])) {
|
||||||
frappe.show_not_found();
|
frappe.show_not_found();
|
||||||
return;
|
return;
|
||||||
@ -572,6 +575,51 @@ erpnext.hub.Register = class Register extends SubPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
erpnext.hub.Profile = class Profile extends SubPage {
|
||||||
|
constructor(parent, profile_data) {
|
||||||
|
super(parent);
|
||||||
|
this.profile_data = profile_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
make_wrapper() {
|
||||||
|
super.make_wrapper();
|
||||||
|
const profile_html = `<div class="hub-item-container">
|
||||||
|
<div class="row visible-xs">
|
||||||
|
<div class="col-xs-12 margin-bottom">
|
||||||
|
<button class="btn btn-xs btn-default" data-route="marketplace/home">Back to home</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="hub-item-image">
|
||||||
|
<img src="${'gd'}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h2>${'title'}</h2>
|
||||||
|
<div class="text-muted">
|
||||||
|
<p>${'where'}${'dot_spacer'}${'when'}</p>
|
||||||
|
<p>${'rating_html'}${'rating_count'}</p>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="hub-item-description">
|
||||||
|
${'description' ?
|
||||||
|
`<b>${__('Description')}</b>
|
||||||
|
<p>${'description'}</p>
|
||||||
|
` : __('No description')
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>`;
|
||||||
|
|
||||||
|
this.$wrapper.html(profile_html);
|
||||||
|
}
|
||||||
|
|
||||||
|
refresh() {}
|
||||||
|
|
||||||
|
render() {}
|
||||||
|
}
|
||||||
erpnext.hub.Publish = class Publish extends SubPage {
|
erpnext.hub.Publish = class Publish extends SubPage {
|
||||||
make_wrapper() {
|
make_wrapper() {
|
||||||
super.make_wrapper();
|
super.make_wrapper();
|
||||||
@ -604,9 +652,6 @@ erpnext.hub.Publish = class Publish extends SubPage {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
${search_html}
|
${search_html}
|
||||||
|
|
||||||
${select_all_button}
|
|
||||||
${deselect_all_button}
|
|
||||||
`);
|
`);
|
||||||
|
|
||||||
this.$wrapper.append(subpage_header);
|
this.$wrapper.append(subpage_header);
|
||||||
@ -615,13 +660,13 @@ erpnext.hub.Publish = class Publish extends SubPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_events() {
|
setup_events() {
|
||||||
this.$wrapper.find('.select-all').on('click', () => {
|
// this.$wrapper.find('.select-all').on('click', () => {
|
||||||
this.$wrapper.find('.hub-card').addClass('active');
|
// this.$wrapper.find('.hub-card').addClass('active');
|
||||||
});
|
// });
|
||||||
|
|
||||||
this.$wrapper.find('.deselect-all').on('click', () => {
|
// this.$wrapper.find('.deselect-all').on('click', () => {
|
||||||
this.$wrapper.find('.hub-card').removeClass('active');
|
// this.$wrapper.find('.hub-card').removeClass('active');
|
||||||
});
|
// });
|
||||||
|
|
||||||
this.$wrapper.find('.publish-items').on('click', () => {
|
this.$wrapper.find('.publish-items').on('click', () => {
|
||||||
this.publish_selected_items()
|
this.publish_selected_items()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user