miniShop2.panel.OrdersForm = function (config) {
config = config || {};
if (!config.id) {
config.id = 'minishop2-form-orders';
}
Ext.apply(config, {
layout: 'form',
cls: 'main-wrapper',
defaults: {msgTarget: 'under', border: false},
anchor: '100% 100%',
border: false,
items: this.getFields(config),
listeners: this.getListeners(config),
buttons: this.getButtons(config),
keys: this.getKeys(config),
});
miniShop2.panel.OrdersForm.superclass.constructor.call(this, config);
};
Ext.extend(miniShop2.panel.OrdersForm, MODx.FormPanel, {
grid: null,
getFields: function (config) {
return [{
layout: 'column',
items: [{
columnWidth: .308,
layout: 'form',
defaults: {anchor: '100%', hideLabel: true},
items: this.getLeftFields(config),
}, {
columnWidth: .37,
layout: 'form',
defaults: {anchor: '100%', hideLabel: true},
items: this.getCenterFields(config),
}, {
columnWidth: .322,
layout: 'form',
defaults: {anchor: '100%', hideLabel: true},
items: this.getRightFields(config),
}],
}];
},
getLeftFields: function (config) {
return [{
xtype: 'datefield',
id: config.id + '-begin',
emptyText: _('ms2_orders_form_begin'),
name: 'date_start',
format: MODx.config['manager_date_format'] || 'Y-m-d',
listeners: {
select: {
fn: function () {
this.fireEvent('change');
}, scope: this
},
},
}, {
xtype: 'datefield',
id: config.id + '-end',
emptyText: _('ms2_orders_form_end'),
name: 'date_end',
format: MODx.config['manager_date_format'] || 'Y-m-d',
listeners: {
select: {
fn: function () {
this.fireEvent('change');
}, scope: this
},
},
}, {
xtype: 'minishop2-combo-status',
id: config.id + '-status',
emptyText: _('ms2_orders_form_status'),
name: 'status',
addall: true,
listeners: {
select: {
fn: function () {
this.fireEvent('change')
}, scope: this
}
}
}];
},
getCenterFields: function () {
return [{
xtype: 'displayfield',
id: 'minishop2-orders-info',
html: String.format('\
<table>\
<tr class="top">\
<td><span id="minishop2-orders-info-num">0</span>
{0}</td>\
<td><span id="minishop2-orders-info-sum">0</span>
{1}</td>\
</tr>\
<tr class="bottom">\
<td><span id="minishop2-orders-info-month-num">0</span>
{2}</td>\
<td><span id="minishop2-orders-info-month-sum">0</span>
{3}</td>\
</tr>\
</table>',
_('ms2_orders_form_selected_num'), _('ms2_orders_form_selected_sum'),
_('ms2_orders_form_month_num'), _('ms2_orders_form_month_sum')
),
}];
},
getRightFields: function (config) {
return [{
xtype: 'textfield',
id: config.id + '-search',
emptyText: _('ms2_orders_form_search'),
name: 'query',
}, {
xtype: 'minishop2-combo-user',
id: config.id + '-user',
emptyText: _('ms2_orders_form_customer'),
name: 'customer',
allowBlank: true,
listeners: {
select: {
fn: function () {
this.fireEvent('change')
}, scope: this
}
}
},
// то что было добавлено по примерному пониманию
{
xtype: 'minishop2-combo-vendor',
id: config.id + '-user',
emptyText: _('ms2_orders_form_vendor'),
name: 'vendor',
allowBlank: true,
listeners: {
select: {
fn: function () {
this.fireEvent('change')
}, scope: this
}
}
},
//
{
xtype: 'minishop2-combo-context',
id: config.id + '-context',
emptyText: _('ms2_orders_form_context'),
name: 'context',
allowBlank: true,
listeners: {
select: {
fn: function () {
this.fireEvent('change')
}, scope: this
}
}
}];
},
getListeners: function () {
return {
beforerender: function () {
this.grid = Ext.getCmp('minishop2-grid-orders');
var store = this.grid.getStore();
var form = this;
store.on('load', function (res) {
form.updateInfo(res.reader['jsonData']);
});
},
afterrender: function() {
var form = this;
window.setTimeout(function() {
form.on('resize', function() {
form.updateInfo();
});
}, 100);
},
change: function () {
this.submit();
},
}
},
getButtons: function () {
return [{
text: '<i class="icon icon-times"></i> ' + _('ms2_orders_form_reset'),
handler: this.reset,
scope: this,
iconCls: 'x-btn-small',
}, {
text: '<i class="icon icon-check"></i> ' + _('ms2_orders_form_submit'),
handler: this.submit,
scope: this,
cls: 'primary-button',
iconCls: 'x-btn-small',
}];
},
getKeys: function () {
return [{
key: Ext.EventObject.ENTER,
fn: function () {
this.submit();
},
scope: this
}];
},
submit: function () {
var store = this.grid.getStore();
var form = this.getForm();
var values = form.getFieldValues();
for (var i in values) {
if (i != undefined && values.hasOwnProperty(i)) {
store.baseParams[i] = values[i];
}
}
this.refresh();
},
reset: function () {
var store = this.grid.getStore();
var form = this.getForm();
form.items.each(function(f) {
if (f.name == 'status') {
f.clearValue();
}
else {
f.reset();
}
});
var values = form.getValues();
for (var i in values) {
if (values.hasOwnProperty(i)) {
store.baseParams[i] = '';
}
}
this.refresh();
},
refresh: function () {
this.grid.getBottomToolbar().changePage(1);
},
updateInfo: function (data) {
var arr = {
'num': 'num',
'sum': 'sum',
'month-num': 'month_total',
'month-sum': 'month_sum',
};
for (var i in arr) {
if (!arr.hasOwnProperty(i)) {
continue;
}
var text_size = 30;
var elem = Ext.get('minishop2-orders-info-' + i);
if (elem) {
elem.setStyle('font-size', text_size + 'px');
var val = data != undefined
? data[arr[i]]
: elem.dom.innerText;
var elem_width = elem.parent().getWidth();
var text_width = val.length * text_size * .6;
if (text_width > elem_width) {
for (var m = text_size; m >= 10; m--) {
if ((val.length * m * .6) < elem_width) {
break;
}
}
elem.setStyle('font-size', m + 'px');
}
elem.update(val);
}
}
},
focusFirstField: function () {
},
});
Ext.reg('minishop2-form-orders', miniShop2.panel.OrdersForm);
при логине видит все заказы и даже можно листить по поставщику но неотображается вообще ничего
тоесть то что я примерно понял и помнял orders несильно помогло что то неучёл
поделитесь xtype описаниями minishop2 полей может из за этого нелиситься
как бы так сделать чтобы при логине только отображались заказы поставщика который указан в Vendor
Vendor в ms2 product там где цвет товара, вес товара, артикул
тоесть когда товар заказывается любой, в любом заказе товара данный Vendor учитывается
и кактобы так xtype правильно указать чтобы невыбиралось и по другим поставщикам нелистилось, фиксированный как бы select без возможности выбирать других поставщиков и смотреть их заказы
касаемо новых версий minishop2
было бы отлично если бы были такие нововведения:
Products
select all products
возможность применять ковсем товарам, также как и к одной позиции товара
если бы решение msAddField неотваливалось поработав некоторое время ещё на последних версиях revo и также стабильно на любом ms2 со стабильной 2.5.5 вообщеб сказка была
тот импорт товаров который по дэфолту с минишопом из первых версий шёл неразобрался (((
сколько непытался вообще ничего неимпортилось как только csv этот неделал в excel
подожду когда пофиксят и выложат новую версию modx revo
нашёл
Нет отображение производителей в MiniShop2
Думал вот как бы так сделать чтобы например при логине с настроенными определёнными ACL поставщик только свои заказы мог видеть
ради интереса разбирался
Пробывал поменять Orders
/assets/components/minishop2/js/mgr/orders/orders.form.js
при логине видит все заказы и даже можно листить по поставщику но неотображается вообще ничего
тоесть то что я примерно понял и помнял orders несильно помогло что то неучёл
поделитесь xtype описаниями minishop2 полей может из за этого нелиситься
как бы так сделать чтобы при логине только отображались заказы поставщика который указан в Vendor
Vendor в ms2 product там где цвет товара, вес товара, артикул
тоесть когда товар заказывается любой, в любом заказе товара данный Vendor учитывается
и кактобы так xtype правильно указать чтобы невыбиралось и по другим поставщикам нелистилось, фиксированный как бы select без возможности выбирать других поставщиков и смотреть их заказы
добавьте пожалуйста такую возможность
все вам будут очень признательны
— вдруг кто то… затёр случайно, чтобы удаляться сниппеты и чанки немогли ))
— обидился ушёл из тима и напрощанье и недопониманий всё затёр
причины могут быть разные
но то что это полезно, это бесспорно
Пример
Есть team 100 человек работают над одним проектом, и есть senior developer к примеру который нехочет чтобы juniors и нюбы ввиде меня нелезли в его сниппеты к примеру и ничего там случайно ненапортачили.
Пример абстрактный выдуманный, но есть ли целесообразность в таком случаи?
Ответ: ДА :)
Важно это очень или необходимо?: ответ сложный
Спасибо
Нефакт что осилю, но попробую разобраться вдруг получиться
подскажите пожалуйста как поправить данный баг
modx revo 2.8.1 minishop 2.8 msReferralProgramCoin 1.1.11-pl
захожу в категорию с товарами
неоткрываеться вкладка товар и вообще никакие вкладки, зависает на tv созданном для товаров отдельно привязанному к шаблону, комплектация с разными свойствами и тд (((
а так всё больше чем нормально
суперовое дополнение очень, но на modx revo 2.8.1 глючит и нетолько на данной версии
у меня проблема постоянная была что одно поле создаётся а потом всё падает, я и вручну с таблицы всё чистил вообще ничего непомогает.
Если данное дополнение ещё когда либо обновиться до стабильной версии было бы отлично.
Chunk: msProduct.content
Заполняем Product properties
tags
название товаров с разными цветами
в шаблоне для данного товара создаём отдельный шаблон
[[$msProduct.content]]
после добавления товара, фото товара в корзине дэфолтное
это сложные материи для меня )))))
ктонибудь на своих проектах так применял?
у меня просто даже после удаления потом товары из категории неотображаються вообще (ms2 2.6 modx revo 2.8.1) :(
спасибо заранее
а есть возможность если данная версия пакета была обновлена заново package сделать
Я пробывал на ms2 2.6 и revo 2.81 после создания одного поля работает, но при добавлении новых полей они неотображаються в самих свойствах товаров ms product
конечно понимаю что скажи и за это спасибо, но если бы это было возможно
то несомненно это было бы замечательно
спасибо ещё раз всем кто удилил время
выложите куданибудь и скиньте вличку ссылку на package
буду очень признателен
Product
Product properties
и также как Tags только например упаковка с выбором когда товары заполняешь (мягкая, пак, акционные)
из примера
кому нежалко и есть время
спасибо заранее