}
parent.calculateScheduleDate();
- this.set("site", parent.get("site") || XT.defaultSite());
+ if (!this.get("site")) {
+ this.set("site", parent.get("site") || XT.defaultSite());
+ }
}
},
]}
]
});
+
+ XV.registerModelList("XM.UserAccountRelation", "XV.UserAccountList");
// ..........................................................
// STATES AND COUNTRIES
},
itemJoinMatches,
itemJoinTable,
+ joinTables = [],
keySearch = false,
extra = "",
qry,
idParams = [],
etags,
sqlCount,
- sql1 = 'select pt1.%3$I as id ' +
+ sql1 = 'select pt1.id ' +
'from ( ' +
- 'select t1.* as id ' +
+ 'select t1.%3$I as id {groupColumns} ' +
'from %1$I.%2$I t1 {joins} ' +
'where {conditions} {extra}',
sql2 = 'select * from %1$I.%2$I where id in ({ids}) {orderBy}';
keySearch = param.value;
sql1 += ' and t1.%4$I in (select item_id from item where item_number ~^ ${p1} or item_upccode ~^ ${p1}) ' +
'union ' +
- 'select t1.* ' +
+ 'select t1.%3$I as id {groupColumns} ' +
'from %1$I.%2$I t1 {joins} ' +
' join itemalias on t1.%4$I=itemalias_item_id ' +
' and itemalias_crmacct_id is null ' +
'where {conditions} {extra} ' +
' and (itemalias_number ~^ ${p1}) ' +
'union ' +
- 'select t1.* ' +
+ 'select t1.%3$I as id {groupColumns} ' +
'from %1$I.%2$I t1 {joins} ' +
' join itemalias on t1.%4$I=itemalias_item_id ' +
' and itemalias_crmacct_id={accountId} ' +
if (itemJoinMatches && itemJoinMatches.length) {
itemJoinTable = itemJoinMatches[0].match(/(jt\d+)/g);
}
+
+ /* Get all join table names. */
+ joinTables = clause.joins.match(/(jt\d+)/g).unique();
}
if (!itemJoinTable) {
}
sql1 = XT.format(
- sql1 += ') pt1 group by pt1.%3$I{groupBy} {orderBy} %5$s %6$s;',
+ sql1 += ') pt1 group by pt1.id {groupBy} {orderBy} %5$s %6$s;',
[tableNamespace, table, idColumn, backingTypeJoinColumn, limit, offset]
);
clause.orderByColumns = XT.format('order by t1.%1$I', [idColumn]);
}
+ /* Set columns to include in sub query unions before replacing table alias. */
+ clause.joinGroupColumns = clause.groupByColumns || '';
+
/* Change table reference in group by and order by to pt1. */
if (clause.groupByColumns && clause.groupByColumns.length) {
clause.groupByColumns = clause.groupByColumns.replace(/t1./g, 'pt1.');
if (clause.orderByColumns && clause.orderByColumns.length) {
clause.orderByColumns = clause.orderByColumns.replace(/t1./g, 'pt1.');
}
+ if (joinTables.length) {
+ for (var j=0; j < joinTables.length; j++) {
+ var regex = new RegExp(joinTables + '.', 'g');
+ clause.groupByColumns = clause.groupByColumns.replace(regex, 'pt1.');
+ clause.orderByColumns = clause.orderByColumns.replace(regex, 'pt1.');
+ }
+ }
/* Query the model */
sql1 = sql1.replace(/{conditions}/g, clause.conditions)
.replace(/{extra}/g, extra)
.replace(/{joins}/g, clause.joins)
.replace(/{groupBy}/g, clause.groupByColumns)
+ .replace(/{groupColumns}/g, clause.joinGroupColumns)
.replace('{orderBy}', clause.orderByColumns)
.replace('{accountId}', accountId)
.replace(/{p1}/g, clause.parameters.length + 1)
XT.debug(sql1.slice(1000, 1500));
XT.debug(sql1.slice(1500, 2000));
XT.debug(sql1.slice(2000, 2500));
+ XT.debug(sql1.slice(2500, 3000));
+ XT.debug(sql1.slice(3000, 3500));
+ XT.debug(sql1.slice(3500, 4000));
+ XT.debug(sql1.slice(4000, 4500));
XT.debug('ItemSiteListItem parameters = ', clause.parameters);
}
qry = plv8.execute(sql1, clause.parameters);
SELECT COALESCE(SUM(ROUND((coitem_qtyord * coitem_qty_invuomratio) *
(coitem_price / coitem_price_invuomratio), 2)), 0.0),
COALESCE(SUM(ROUND((coitem_qtyord * coitem_qty_invuomratio) *
- (coitem_unitcost / coitem_price_invuomratio), 2)), 0.0)
+ (CASE WHEN (coitem_subnumber > 0) THEN 0.0 ELSE coitem_unitcost END
+ / coitem_price_invuomratio), 2)), 0.0)
INTO _subtotal, _cost
FROM coitem
WHERE (coitem_cohead_id=pCoheadid)
FROM quhead JOIN custinfo ON (cust_id=quhead_cust_id)
WHERE (quhead_id=pQuheadid);
+ -- Move Documents
UPDATE url SET url_source_id = _soheadid,
url_source = 'S'
WHERE ((url_source='Q') AND (url_source_id = pQuheadid));
docass_source_type = 'S'
WHERE ((docass_source_type='Q') AND (docass_source_id = pQuheadid));
+ -- Move Email
+ IF (fetchMetricBool('EnableBatchManager')) THEN
+ UPDATE xtbatch.emlassc SET emlassc_type='S',
+ emlassc_assc_id=_soheadid
+ WHERE ((emlassc_type='Q') AND (emlassc_assc_id=pQuheadid));
+ END IF;
+
+ -- Copy Characteristics
+ INSERT INTO charass
+ (charass_target_type, charass_target_id, charass_char_id, charass_value, charass_default, charass_price)
+ SELECT 'SO', _soheadid, charass_char_id, charass_value, charass_default, charass_price
+ FROM charass
+ WHERE ((charass_target_type='QU')
+ AND (charass_target_id=pQuheadid));
+
-- Copy Comments
INSERT INTO comment
( comment_cmnttype_id, comment_source, comment_source_id, comment_date, comment_user, comment_text, comment_public )
WHERE (quhead_id=pQuheadid);
END IF;
+ -- Copy Characteristics
INSERT INTO charass
(charass_target_type, charass_target_id, charass_char_id, charass_value, charass_default, charass_price)
SELECT 'SI', _soitemid, charass_char_id, charass_value, charass_default, charass_price
-- Overload for future costing enhancements
--
DECLARE
+ _r RECORD;
_cost NUMERIC := 0.0;
BEGIN
- IF (fetchMetricBool('WholesalePriceCosting')) THEN
- SELECT item_listcost INTO _cost
- FROM item
- WHERE (item_id=pItemid);
+ -- cache item info
+ SELECT * INTO _r
+ FROM itemsite, item
+ WHERE (itemsite_item_id=pItemid)
+ AND (itemsite_warehous_id=pSiteid)
+ AND (item_id=pItemid);
+
+ IF (_r.item_type = 'K') THEN
+ SELECT SUM(roundQty(itemuomfractionalbyuom(bomitem_item_id, bomitem_uom_id),
+ (bomitem_qtyfxd + bomitem_qtyper) * (1 + bomitem_scrap))
+ * stdCost(bomitem_item_id)) INTO _cost
+ FROM bomitem
+ WHERE (bomitem_parent_item_id=_r.item_id)
+ AND (bomitem_rev_id=getActiveRevid('BOM', _r.item_id))
+ AND (pEffective BETWEEN bomitem_effective AND (bomitem_expires - 1));
+ ELSEIF (fetchMetricBool('WholesalePriceCosting')) THEN
+ _cost := _r.item_listcost;
ELSE
- SELECT itemcost(itemsite_id) INTO _cost
- FROM itemsite
- WHERE (itemsite_item_id=pItemid)
- AND (itemsite_warehous_id=pSiteid);
+ SELECT itemcost(_r.itemsite_id) INTO _cost;
END IF;
RETURN _cost;
itemsite_loccntrl, COALESCE(invcnt_location_id, -1) AS itemsite_location_id,
CASE WHEN (itemsite_costmethod = 'N') THEN 0
WHEN ( (itemsite_costmethod = 'A') AND
- (itemsite_qtyonhand = 0) AND
+ ((itemsite_qtyonhand + itemsite_nnqoh) = 0) AND
(_avgCostingMethod = 'ACT') ) THEN actcost(itemsite_item_id)
WHEN ( (itemsite_costmethod = 'A') AND
(_avgCostingMethod IN ('ACT', 'AVG')) ) THEN avgcost(itemsite_id)
SET itemsite_qtyonhand= itemsite_qtyonhand + (_p.invcnt_qoh_after - _origLocQty),
itemsite_datelastcount=_postDate
WHERE (itemsite_id=_p.itemsite_id);
+ UPDATE itemsite
+ SET itemsite_value = (itemsite_qtyonhand + itemsite_nnqoh) * _p.cost
+ WHERE (itemsite_id=_p.itemsite_id);
ELSE
UPDATE itemsite
- SET itemsite_nnqoh = itemsite_nnqoh - _origLocQty,
- itemsite_qtyonhand = itemsite_qtyonhand + _p.invcnt_qoh_after,
+ SET itemsite_nnqoh = itemsite_nnqoh + (_p.invcnt_qoh_after - _origLocQty),
itemsite_datelastcount=_postDate
WHERE (itemsite_id=_p.itemsite_id);
+ UPDATE itemsite
+ SET itemsite_value = (itemsite_qtyonhand + itemsite_nnqoh) * _p.cost
+ WHERE (itemsite_id=_p.itemsite_id);
END IF;
-- Post the detail, if any
END LOOP;
-- _qoh can be used for the netable qoh because of the negative NN transactions
+-- change to update qtyonhand with _netable_qoh
UPDATE itemsite
- SET itemsite_qtyonhand = _qoh,
+ SET itemsite_qtyonhand = _netable_qoh,
itemsite_nnqoh = _nonnetable_qoh,
itemsite_value = CASE WHEN ((itemsite_costmethod='A') AND (_value < 0.0)) THEN 0.0
ELSE _value END
ELSE ((1.0 - (quitem_price / quitem_custprice)) * 100.0)
END AS discountfromcust,
quitem_unitcost AS coitem_unitcost,
- ROUND((quitem_qtyord * quitem_qty_invuomratio) *
- ((quitem_price / quitem_price_invuomratio) - (quitem_unitcost / quitem_price_invuomratio)),2) AS margin,
- CASE WHEN (quitem_price = 0.0) THEN 100.0
+ CASE WHEN (quitem_price = 0.0) THEN 0.0
+ ELSE ROUND((quitem_qtyord * quitem_qty_invuomratio) *
+ ((quitem_price / quitem_price_invuomratio) - (quitem_unitcost / quitem_price_invuomratio)),2)
+ END AS margin,
+ CASE WHEN (quitem_price = 0.0) THEN 0.0
ELSE ((quitem_price - quitem_unitcost) / quitem_price)
END AS marginpercent,
CASE WHEN (quitem_custpn != '') THEN quitem_custpn
coitem_qtyord, qtyshipped, balance, qtyatshipping,
extprice, extprice_shipped,
CASE WHEN (discountfromcust=100.0) THEN 'N/A' END AS discountfromcust_qtdisplayrole,
+ CASE WHEN (margin=0.0) THEN 'N/A' END AS margin_qtdisplayrole,
+ CASE WHEN (marginpercent=0.0) THEN 'N/A' END AS marginpercent_qtdisplayrole,
'qty' AS coitem_qtyord_xtnumericrole,
'qty' AS qtyshipped_xtnumericrole,
'qty' AS balance_xtnumericrole,
ELSE ((1.0 - (coitem_price / coitem_custprice)) * 100.0)
END AS discountfromcust,
coitem_unitcost,
- ROUND((coitem_qtyord * coitem_qty_invuomratio) *
- ((coitem_price / coitem_price_invuomratio) - (coitem_unitcost / coitem_price_invuomratio)),2) AS margin,
- CASE WHEN (coitem_price = 0.0) THEN 100.0
+ CASE WHEN (coitem_price = 0.0) THEN 0.0
+ ELSE ROUND((coitem_qtyord * coitem_qty_invuomratio) *
+ ((coitem_price / coitem_price_invuomratio) - (coitem_unitcost / coitem_price_invuomratio)),2)
+ END AS margin,
+ CASE WHEN (coitem_price = 0.0) THEN 0.0
ELSE ((coitem_price - coitem_unitcost) / coitem_price)
END AS marginpercent,
noNeg(coitem_qtyshipped - coitem_qtyreturned) AS qtyshipped,
@picker-label: 100px;
@bottom-border: #444;
@icon-height: 32px;
+@title-height: 48px;
.dashboard {
background-color: @gray;
}
.chart-title-bar {
- height: @icon-height;
+ height: @title-height;
background-color: @lightest-gray;
+ text-transform: none;
.border-top-radius(10px);
.chart-title {
color: @black;
text-align: center;
/*font-size: 2em;*/
- font-weight: normal
+ font-weight: normal;
+ font-family: Helvetica;
+ }
+
+ .chart-sub-title {
+ /*padding-top: 8px;*/
+ color: @blue;
+ text-align: center;
+ font-size: small;
+ font-weight: normal;
+ font-family: Helvetica;
}
.remove-icon {
padding: 10px 10px;
}
}
+
+ .chart-filterDrawer {
+ top: 0px;
+ }
+
+ /* The chart-filters may not be need as we are using the class xv-pullout
+ for styles. Delete when finished hacking the filter styles.
.chart-filters {
background-color: @white;
border-bottom: 1px solid @smoke;
background: @lightest-gray;
color: @near-black;
-}
+ }
.chart-filters.xv-parameter-panel .enyo-fittable-columns-layout {
- padding: 6px 10px;
border-bottom: 1px solid @smoke;
background: @white;
color: @near-black;
-}
+ position: relative;
+ text-align: left;
+ white-space: nowrap;
+ }
+
+ .chart-filters.xv-parameter-panel .enyo-fittable-columns-layout > * {
+ vertical-align: middle;
+ }
+
+ .chart-filters.xv-parameter-panel .xv-label {
+ text-align: right;
+ }
+
+ */
}
}
.xv-grid-attr {
+ // This limits the text to three lines
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+
&.bold {
font-weight: bold;
}
display: none;
}
.xv-relationwidget-description {
- text-indent: 0;
- padding-bottom: 0;
- padding-top: 8px;
+ margin: 0;
+ margin-top: 5px;
}
.xv-private-item-site-widget {
border-bottom: 0;
}
.xv-relationwidget-description {
- white-space: nowrap;
overflow: hidden;
- text-overflow: ellipsis;
- text-indent: 140px;
- font-size: small;
- padding-bottom: 4px;
- max-width: 325px;
- color: black;
+ // This gives them 3 lines of description
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ max-width: 250px;
+ margin: 5px 5px 5px 80px;
&.disabled {
color: @dim-gray;
}
border: none;
}
/**
- Styles relating to Lists
-*/
-.xv-list-header {
- background-color: #d8d8d8;
- color: #fdfdfd;
- font-size: .6em;
- font-weight: bold;
- text-transform: uppercase;
- padding-top: 4px;
- padding-bottom: 4px;
- border-bottom: 1px solid #aaaaaa;
+ * Default ListItem styles when using a ModelDecorator.
+ */
+.xv-list .xv-model-decorator > .xv-list-item .xv-table {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
}
-.xv-list-header .xv-list-column.last {
- border-right: none;
+.xv-list .xv-model-decorator > .xv-list-item .xv-table .xv-cell {
+ display: table-cell;
}
-.xv-list-header .xv-list-column.name-column,
-.xv-list-header .xv-list-column.first,
-.xv-list-header .xv-list-column.second,
-.xv-list-header .xv-list-column.third,
-.xv-list-header .xv-list-column.short,
-.xv-list-header .xv-list-column.small,
-.xv-list-header .xv-list-column.medium,
-.xv-list-header .xv-list-column.descr {
- padding-left: 7px;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr {
+ /**
+ * Default styling for a model's id (as designated by 'idAttribute')
+ */
}
-/* List */
-.xv-list-column.line-number {
- width: 30px;
- text-align: right;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attribute-id {
+ color: blue;
+ font-weight: bold;
+ cursor: pointer;
}
-.xv-list-column.name-column {
- width: 200px;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attribute-name {
+ font-weight: bold;
}
-.xv-list-column.right-column {
- width: 100px;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-number {
text-align: right;
}
-.xv-list-column.short {
- width: 100px;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-money {
+ text-align: right;
}
-.xv-list-column.small {
- width: 125px;
+.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-date {
+ text-align: right;
}
-.xv-list-column.medium {
- width: 150px;
+.xv-list .xv-model-decorator > .xv-list-item.item-selected .xv-list-attr {
+ color: white;
}
-.xv-list-column.first {
- width: 300px;
+.xv-list .xv-model-decorator > .xv-list-item.item-selected .xv-list-attr.xm-attribute-id {
+ color: #ff6529;
}
-.xv-list-column.second {
- width: 200px;
+/**
+ Styles related to pickers, combo boxes, and relation widgets
+*/
+.onyx-picker-decorator .onyx-button {
+ padding: 12px 8px 12px 8px;
+ width: 150px;
}
-.xv-list-column.third {
- width: 100px;
+.onyx-picker .onyx-menu-item {
+ text-align: left;
+ text-overflow: ellipsis;
}
-.xv-list-column.money,
-.xv-list-column.quantity {
- width: 75px;
- text-align: right;
+.picker-icon {
+ position: absolute;
+ right: 0;
+ margin: 0 10px 0 2px;
+ color: #070707;
}
-.xv-list-column.descr {
- width: 200px;
+.xv-picker-button {
+ text-align: left;
}
-.xv-list-column.icon {
- width: 10px;
+.xv-picker-button .picker-content {
+ max-width: 100px;
+ overflow: hidden;
}
-.xv-list {
- background: #f8f8f8;
+.xv-picker-button.disabled {
+ color: #777777;
}
-.xv-list .xv-list-item > * {
- display: inline-block;
- vertical-align: middle;
+.xv-picker-label {
+ color: #070707;
+ padding: 20px 8px 8px 8px;
+ text-align: right;
+ width: 130px;
}
-.xv-list .xv-list-item {
- background-color: #fdfdfd;
- border-bottom: 1px solid #d7d7d7;
- min-height: 32px;
+.xv-picker-label.disabled {
+ color: #777777;
}
-.xv-list .xv-list-item.header {
- padding-top: 0;
+.xv-combobox .onyx-input-decorator input {
+ width: 145px;
}
-.xv-list .xv-list-item.inactive {
- background-color: #d8d8d8;
- color: #070707;
+.xv-combobox .icon-sort {
+ color: #357ec7;
+ vertical-align: middle;
}
-.xv-list .xv-list-item.inactive .xv-list-column .xv-list-attr {
- background: transparent;
+.xv-combobox-note {
+ padding: 14px 3px 8px 3px;
+ text-align: left;
}
-.xv-list .xv-list-item.inactive .xv-list-column .xv-list-attr.placeholder {
- color: #d8d8d8;
+/*
+ Styles relating to the grid box
+*/
+/* Entire box including the grid and the summary panel */
+.xv-grid-box {
+ /**
+ This is the most general grid row that
+ is not specific to read-only or selected
+ */
}
-.xv-list .xv-list-item .xv-list-column .list-icon {
- padding: 2px;
- color: #666666;
- vertical-align: sub;
- border: 1px solid #efefef;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
+.xv-grid-box.small-panel {
+ width: 600px;
}
-.xv-list .xv-list-item.item-selected {
- background: #226b9a;
- background-color: #1f608c;
- background-image: -moz-linear-gradient(top, #226b9a, #1a4f77);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#226b9a), to(#1a4f77));
- background-image: -webkit-linear-gradient(top, #226b9a, #1a4f77);
- background-image: -o-linear-gradient(top, #226b9a, #1a4f77);
- background-image: linear-gradient(to bottom, #226b9a, #1a4f77);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff226b9a', endColorstr='#ff1a4f77', GradientType=0);
+.xv-grid-box.medium-panel {
+ width: 700px;
}
-.xv-list .xv-list-item.item-selected .xv-list-attr {
- color: #fdfdfd;
+.xv-grid-box.large-panel {
+ width: 800px;
}
-.xv-list .xv-list-item.item-selected .xv-list-attr.placeholder {
- font-style: italic;
- color: #99ccff;
+.xv-grid-box .enyo-list-page > *:first-child .xv-grid-row {
+ border-top: 0;
}
-.xv-list .xv-list-item.item-selected .xv-list-attr.hyperlink {
- color: #ff6529;
+.xv-grid-box .xv-above-grid-list {
+ border: 0;
}
-.xv-list .xv-list-item.item-selected .xv-list-attr.header {
- background: #99ccff;
+.xv-grid-box .xv-scroller {
+ background: #f8f8f8;
}
-.xv-list .xv-list-item .xv-list-item-gear {
- position: absolute;
- right: 0px;
- z-index: 999;
+.xv-grid-box .xv-grid-attr {
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
}
-.xv-list.xv-grid-list {
- background: #f8f8f8;
+.xv-grid-box .xv-grid-attr.bold {
+ font-weight: bold;
}
-.xv-list.xv-grid-list .xv-list-item > * {
- vertical-align: top;
+.xv-grid-box .xv-grid-attr.error {
+ color: #ff0000;
}
-.xv-list.xv-grid-list .xv-list-item {
- padding-top: 7px !important;
- padding-bottom: 9px !important;
- border-bottom: 1px solid #aaaaaa !important;
- background: #f8f8f8;
+.xv-grid-box .xv-grid-attr.emphasis {
+ color: #009000;
}
-.xv-list.xv-grid-list .xv-list-item.item-selected {
- background: #226b9a;
- background-color: #1f608c;
- background-image: -moz-linear-gradient(top, #226b9a, #1a4f77);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#226b9a), to(#1a4f77));
- background-image: -webkit-linear-gradient(top, #226b9a, #1a4f77);
- background-image: -o-linear-gradient(top, #226b9a, #1a4f77);
- background-image: linear-gradient(to bottom, #226b9a, #1a4f77);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff226b9a', endColorstr='#ff1a4f77', GradientType=0);
+.xv-grid-box .xv-grid-attr.warn {
+ color: #ff9c00;
}
-.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr {
- color: #fdfdfd;
+.xv-grid-box .xv-grid-attr.italic {
+ font-style: italic;
}
-.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.placeholder {
+.xv-grid-box .xv-grid-attr.placeholder {
font-style: italic;
- color: #99ccff;
+ color: #93a1a1;
}
-.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.hyperlink {
- color: #ff6529;
+.xv-grid-box .xv-grid-attr.hyperlink {
+ color: blue;
}
-.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.header {
- background: #99ccff;
+.xv-grid-box .xv-gridbox-button {
+ color: #357ec7;
+ font-size: 18px;
+ border: none;
+ background: transparent;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column {
+.xv-grid-box .xv-grid-row {
+ font-size: 12px;
+ background-color: #d8d8d8;
+ border-bottom: 1px solid #aaaaaa;
vertical-align: top;
+ /**
+ This is the grid header row
+ */
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column .xv-list-attr {
- font-size: 12px;
+.xv-grid-box .xv-grid-row > * {
+ display: inline-block;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.last {
- border-right: none;
+.xv-grid-box .xv-grid-row .xv-grid-header {
+ background-color: #d7d7d7;
+ color: #0e0e0e;
+ font-size: .8em;
+ font-weight: bold;
+ text-transform: uppercase;
+ padding-top: 4px;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.name-column {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .xv-grid-header.last {
+ border-right: none;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.first {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row > * {
+ padding: 6px 4px;
+ border: none;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.second {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .line-number {
+ vertical-align: top;
+ width: 30px;
+ text-align: right;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.third {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .grid-actions {
+ display: block;
+ padding-left: 30px;
+ border-radius: 4px;
+ border-width: 0;
+ background: #f3f3f3;
+ margin: 6px;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.short {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .grid-actions > * {
+ display: inline-block;
+ width: 100%;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.small {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .grid-item {
+ vertical-align: top;
+ width: 175px;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.medium {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .quantity {
+ vertical-align: top;
+ text-align: right;
+ width: 100px;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column.descr {
- padding-left: 7px;
+.xv-grid-box .xv-grid-row .percent {
+ vertical-align: top;
+ text-align: right;
+ width: 90px;
}
-.xv-list.xv-grid-list .xv-list-item .xv-list-column .xv-list-attr {
- padding: 0px;
+.xv-grid-box .xv-grid-row .price {
+ vertical-align: top;
+ text-align: right;
+ width: 90px;
}
-.xv-list-attr {
- padding: 5px;
- font-size: .8em;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- color: #070707;
+.xv-grid-box .xv-grid-row .date {
+ vertical-align: top;
+ width: 105px;
}
-.xv-list-attr.header {
- padding: 4px;
- background: #d8d8d8;
- font-size: .7em;
- font-weight: bold;
- text-transform: uppercase;
- color: #fdfdfd;
+.xv-grid-box .xv-grid-row .user {
+ vertical-align: top;
+ width: 100px;
}
-.xv-list-attr.footer {
- padding: 4px;
- background: #d8d8d8;
- font-size: .7em;
- font-weight: bold;
- text-transform: uppercase;
- color: #070707;
+.xv-grid-box .xv-grid-row.readonly {
+ background: #f8f8f8;
+ min-height: 56px;
}
-.xv-list-attr.right {
- position: absolute;
- right: 10px;
+.xv-grid-box .xv-grid-row.selected {
+ background-color: #fdfdfd;
+ border: 1px solid #ff6529;
}
-.xv-list-attr.text-align-right {
- text-align: right;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-input-decorator {
+ padding: 0;
+ width: 100%;
+ margin: 0;
}
-.xv-list-attr.bold {
- font-weight: bold;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-input-decorator input {
+ width: 100%;
+ font-size: 13px;
}
-.xv-list-attr.error {
- color: #ff0000;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-picker-decorator {
+ padding-top: 6px;
+ width: 100%;
}
-.xv-list-attr.emphasis {
- color: #009000;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-picker-decorator .onyx-button {
+ height: 26px;
+ padding-top: 3px;
+ width: 100%;
+ font-size: 13px;
}
-.xv-list-attr.warn {
- color: #ff9c00;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-input {
+ border: none;
}
-.xv-list-attr.italic {
- font-style: italic;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-picker-label {
+ display: none;
}
-.xv-list-attr.placeholder {
- font-style: italic;
- color: #777777;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget {
+ margin-right: 10px;
+ padding-top: 0;
}
-.xv-list-attr.hyperlink {
- color: blue;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget .onyx-input-decorator {
+ padding: 0;
+ width: 100%;
}
-.xv-list-attr.disabled {
- color: #777777;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget .onyx-input-decorator input {
+ width: 85%;
+ font-size: 13px;
}
-/* Navigator */
-.xv-navigator-header {
- font-size: small;
- font-weight: bold;
- text-transform: uppercase;
- color: #ff6600;
- padding-left: 20px;
- border-bottom: 1px solid #0e0e0e;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget {
+ padding-top: 6px;
}
-.xv-workspace-header {
- color: #fdfdfd;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- padding: 8px 0 0 8px;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget .onyx-input-decorator {
+ padding: 0;
+ width: 100%;
+ margin: 0;
}
-/**
- * Default ListItem styles when using a ModelDecorator.
- */
-.xv-list .xv-model-decorator > .xv-list-item .xv-table {
- display: table;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget .onyx-input-decorator input {
width: 100%;
- table-layout: fixed;
+ font-size: 13px;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-table .xv-cell {
- display: table-cell;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-combobox {
+ padding-left: 0;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr {
- /**
- * Default styling for a model's id (as designated by 'idAttribute')
- */
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-combobox input {
+ padding-top: 3px;
+ width: 80px;
+ font-size: 13px;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attribute-id {
- color: blue;
- font-weight: bold;
- cursor: pointer;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget {
+ padding-bottom: 0;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attribute-name {
- font-weight: bold;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget .onyx-input-decorator {
+ padding: 0;
+ width: 100%;
+ margin: 0;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-number {
- text-align: right;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget .onyx-input-decorator input {
+ width: 100%;
+ font-size: 13px;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-money {
- text-align: right;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget .onyx-input-decorator {
+ width: 100%;
+ padding-top: 6px;
}
-.xv-list .xv-model-decorator > .xv-list-item .xv-list-column.xv-list-attr.xm-attributetype-date {
- text-align: right;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget .onyx-input {
+ width: 85%;
+ padding-right: 4px;
}
-.xv-list .xv-model-decorator > .xv-list-item.item-selected .xv-list-attr {
- color: white;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-useraccount-widget .xv-subinput {
+ width: 80px;
+ height: 16px;
}
-.xv-list .xv-model-decorator > .xv-list-item.item-selected .xv-list-attr.xm-attribute-id {
- color: #ff6529;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-subinput {
+ width: 100%;
}
-/**
- Styles related to pickers, combo boxes, and relation widgets
-*/
-.onyx-picker-decorator .onyx-button {
- padding: 12px 8px 12px 8px;
- width: 150px;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-input {
+ padding-top: 6px;
+ width: 100%;
+ border: none;
}
-.onyx-picker .onyx-menu-item {
- text-align: left;
- text-overflow: ellipsis;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-label,
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-flexible-label,
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget-secondarydescription {
+ display: none;
}
-.picker-icon {
- position: absolute;
- right: 0;
- margin: 0 10px 0 2px;
- color: #070707;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget-description {
+ margin: 0;
+ margin-top: 5px;
}
-.xv-picker-button {
- text-align: left;
+.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-private-item-site-widget {
+ border-bottom: 0;
}
-.xv-picker-button .picker-content {
- max-width: 100px;
- overflow: hidden;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel {
+ border: none;
+ margin-top: 0;
+ padding-left: 0;
+ padding-right: 0;
}
-.xv-picker-button.disabled {
- color: #777777;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group {
+ padding: 0;
+ border: none;
}
-.xv-picker-label {
- color: #070707;
- padding: 20px 8px 8px 8px;
- text-align: right;
- width: 130px;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-moneywidget {
+ padding-bottom: 0;
+ padding-top: 0;
}
-.xv-picker-label.disabled {
- color: #777777;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-moneywidget .xv-input-decorator {
+ padding-bottom: 0;
+ padding-top: 0;
}
-.xv-combobox .onyx-input-decorator input {
- width: 145px;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-numberwidget {
+ padding-bottom: 0;
+ padding-top: 0;
}
-.xv-combobox .icon-sort {
- color: #357ec7;
- vertical-align: middle;
+.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-numberwidget .xv-input-decorator {
+ width: 163px;
+ padding-bottom: 0;
+ padding-top: 0;
}
-.xv-combobox-note {
- padding: 14px 3px 8px 3px;
- text-align: left;
+.xv-grid-list .xv-list-column {
+ vertical-align: top !important;
}
/*
- Styles relating to the grid box
+ Styles relating to the dashboard
*/
-/* Entire box including the grid and the summary panel */
-.xv-grid-box {
- /**
- This is the most general grid row that
- is not specific to read-only or selected
+/*
+ Variables for widths/colors
+*/
+.dashboard {
+ background-color: #d8d8d8;
+ /*
+ These styles will only be used
+ if the chart is in a dashboard
*/
}
-.xv-grid-box.small-panel {
- width: 600px;
+.dashboard .charts-panels {
+ overflow-y: auto;
}
-.xv-grid-box.medium-panel {
- width: 700px;
+.dashboard .selectable-chart {
+ width: 500px;
+ height: 230px;
}
-.xv-grid-box.large-panel {
- width: 800px;
+.dashboard .selectable-chart .chart-title-bar {
+ width: 500px;
}
-.xv-grid-box .enyo-list-page > *:first-child .xv-grid-row {
- border-top: 0;
+.dashboard .nvtooltip {
+ color: black;
}
-.xv-grid-box .xv-above-grid-list {
- border: 0;
+.selectable-chart {
+ margin: 10px;
+ color: #357ec7;
+ overflow: hidden;
+ /* The chart-filters may not be need as we are using the class xv-pullout
+ for styles. Delete when finished hacking the filter styles.
+
+ .chart-filters {
+ background-color: @white;
+
+ -webkit-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
+ }
+
+ .chart-filters .xv-parameter-panel {
+ background-color: @ghost;
+ border: 1px solid @smoke;
+ margin: 0 4px 6px 0;
+ width: 100%;
+ }
+
+ .chart-filters.xv-parameter-panel .onyx-groupbox-header {
+ padding: 6px 10px;
+ border-bottom: 1px solid @smoke;
+ background: @lightest-gray;
+ color: @near-black;
+ }
+
+ .chart-filters.xv-parameter-panel .enyo-fittable-columns-layout {
+ border-bottom: 1px solid @smoke;
+ background: @white;
+ color: @near-black;
+ position: relative;
+ text-align: left;
+ white-space: nowrap;
+ }
+
+ .chart-filters.xv-parameter-panel .enyo-fittable-columns-layout > * {
+ vertical-align: middle;
+ }
+
+ .chart-filters.xv-parameter-panel .xv-label {
+ text-align: right;
+ }
+
+ */
}
-.xv-grid-box .xv-scroller {
- background: #f8f8f8;
+.selectable-chart .xv-list-item {
+ border-bottom: 1px solid grey;
+ box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);
}
-.xv-grid-box .xv-grid-attr.bold {
- font-weight: bold;
+.selectable-chart .xv-list-item .long {
+ padding-left: 7px;
+ width: 250px;
+}
+.selectable-chart .onyx-popup {
+ margin-top: 40px;
+ margin-left: 200px;
}
-.xv-grid-box .xv-grid-attr.error {
- color: #ff0000;
+.selectable-chart .chart-title-bar {
+ height: 48px;
+ background-color: #efefef;
+ text-transform: none;
+ -webkit-border-top-right-radius: 10px;
+ -moz-border-radius-topright: 10px;
+ border-top-right-radius: 10px;
+ -webkit-border-top-left-radius: 10px;
+ -moz-border-radius-topleft: 10px;
+ border-top-left-radius: 10px;
}
-.xv-grid-box .xv-grid-attr.emphasis {
- color: #009000;
+.selectable-chart .chart-title-bar .chart-title {
+ padding-top: 8px;
+ color: #070707;
+ text-align: center;
+ /*font-size: 2em;*/
+ font-weight: normal;
+ font-family: Helvetica;
}
-.xv-grid-box .xv-grid-attr.warn {
- color: #ff9c00;
+.selectable-chart .chart-title-bar .chart-sub-title {
+ /*padding-top: 8px;*/
+ color: #0000ff;
+ text-align: center;
+ font-size: small;
+ font-weight: normal;
+ font-family: Helvetica;
}
-.xv-grid-box .xv-grid-attr.italic {
- font-style: italic;
+.selectable-chart .chart-title-bar .remove-icon {
+ position: absolute;
+ top: 0;
+ right: 0;
}
-.xv-grid-box .xv-grid-attr.placeholder {
- font-style: italic;
- color: #93a1a1;
+.selectable-chart .chart-title-bar .icon-filter {
+ color: #070707;
+ position: absolute;
+ right: 35px;
}
-.xv-grid-box .xv-grid-attr.hyperlink {
- color: blue;
+.selectable-chart .chart-bottom {
+ background-color: #fdfdfd;
+ border: 1px solid #444444;
+ border-top: none;
+ -webkit-border-bottom-right-radius: 10px;
+ -moz-border-radius-bottomright: 10px;
+ border-bottom-right-radius: 10px;
+ -webkit-border-bottom-left-radius: 10px;
+ -moz-border-radius-bottomleft: 10px;
+ border-bottom-left-radius: 10px;
}
-.xv-grid-box .xv-gridbox-button {
- color: #357ec7;
- font-size: 18px;
- border: none;
- background: transparent;
+.selectable-chart .chart-bottom .xv-picker-label {
+ width: 100px;
+ color: #070707;
}
-.xv-grid-box .xv-grid-row {
- font-size: 12px;
- background-color: #d8d8d8;
- border-bottom: 1px solid #aaaaaa;
- vertical-align: top;
- /**
- This is the grid header row
- */
+.selectable-chart .chart-bottom .onyx-button {
+ width: 130px;
+ padding: 10px 10px;
}
-.xv-grid-box .xv-grid-row > * {
- display: inline-block;
+.selectable-chart .chart-filterDrawer {
+ top: 0px;
}
-.xv-grid-box .xv-grid-row .xv-grid-header {
- background-color: #d7d7d7;
- color: #0e0e0e;
- font-size: .8em;
+/**
+ Styles relating to Lists
+*/
+.xv-list-header {
+ background-color: #d8d8d8;
+ color: #fdfdfd;
+ font-size: .6em;
font-weight: bold;
text-transform: uppercase;
padding-top: 4px;
+ padding-bottom: 4px;
+ border-bottom: 1px solid #aaaaaa;
}
-.xv-grid-box .xv-grid-row .xv-grid-header.last {
+.xv-list-header .xv-list-column.last {
border-right: none;
}
-.xv-grid-box .xv-grid-row > * {
- padding: 6px 4px;
- border: none;
+.xv-list-header .xv-list-column.name-column,
+.xv-list-header .xv-list-column.first,
+.xv-list-header .xv-list-column.second,
+.xv-list-header .xv-list-column.third,
+.xv-list-header .xv-list-column.short,
+.xv-list-header .xv-list-column.small,
+.xv-list-header .xv-list-column.medium,
+.xv-list-header .xv-list-column.descr {
+ padding-left: 7px;
}
-.xv-grid-box .xv-grid-row .line-number {
- vertical-align: top;
+/* List */
+.xv-list-column.line-number {
width: 30px;
text-align: right;
}
-.xv-grid-box .xv-grid-row .grid-actions {
- display: block;
- padding-left: 30px;
- border-radius: 4px;
- border-width: 0;
- background: #f3f3f3;
- margin: 6px;
-}
-.xv-grid-box .xv-grid-row .grid-actions > * {
- display: inline-block;
- width: 100%;
-}
-.xv-grid-box .xv-grid-row .grid-item {
- vertical-align: top;
- width: 175px;
+.xv-list-column.name-column {
+ width: 200px;
}
-.xv-grid-box .xv-grid-row .quantity {
- vertical-align: top;
- text-align: right;
+.xv-list-column.right-column {
width: 100px;
-}
-.xv-grid-box .xv-grid-row .percent {
- vertical-align: top;
- text-align: right;
- width: 90px;
-}
-.xv-grid-box .xv-grid-row .price {
- vertical-align: top;
text-align: right;
- width: 90px;
-}
-.xv-grid-box .xv-grid-row .date {
- vertical-align: top;
- width: 105px;
}
-.xv-grid-box .xv-grid-row .user {
- vertical-align: top;
+.xv-list-column.short {
width: 100px;
}
-.xv-grid-box .xv-grid-row.readonly {
- background: #f8f8f8;
- min-height: 56px;
-}
-.xv-grid-box .xv-grid-row.selected {
- background-color: #fdfdfd;
- border: 1px solid #ff6529;
-}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-input-decorator {
- padding: 0;
- width: 100%;
- margin: 0;
+.xv-list-column.small {
+ width: 125px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-input-decorator input {
- width: 100%;
- font-size: 13px;
+.xv-list-column.medium {
+ width: 150px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-picker-decorator {
- padding-top: 6px;
- width: 100%;
+.xv-list-column.first {
+ width: 300px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .onyx-picker-decorator .onyx-button {
- height: 26px;
- padding-top: 3px;
- width: 100%;
- font-size: 13px;
+.xv-list-column.second {
+ width: 200px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-input {
- border: none;
+.xv-list-column.third {
+ width: 100px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-picker-label {
- display: none;
+.xv-list-column.money,
+.xv-list-column.quantity {
+ width: 75px;
+ text-align: right;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget {
- margin-right: 10px;
- padding-top: 0;
+.xv-list-column.descr {
+ width: 200px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget .onyx-input-decorator {
- padding: 0;
- width: 100%;
+.xv-list-column.icon {
+ width: 10px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-datewidget .onyx-input-decorator input {
- width: 85%;
- font-size: 13px;
+.xv-list {
+ background: #f8f8f8;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget {
- padding-top: 6px;
+.xv-list .xv-list-item > * {
+ display: inline-block;
+ vertical-align: middle;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget .onyx-input-decorator {
- padding: 0;
- width: 100%;
- margin: 0;
+.xv-list .xv-list-item {
+ background-color: #fdfdfd;
+ border-bottom: 1px solid #d7d7d7;
+ min-height: 32px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-numberwidget .onyx-input-decorator input {
- width: 100%;
- font-size: 13px;
+.xv-list .xv-list-item.header {
+ padding-top: 0;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-combobox {
- padding-left: 0;
+.xv-list .xv-list-item.inactive {
+ background-color: #d8d8d8;
+ color: #070707;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-combobox input {
- padding-top: 3px;
- width: 80px;
- font-size: 13px;
+.xv-list .xv-list-item.inactive .xv-list-column .xv-list-attr {
+ background: transparent;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget {
- padding-bottom: 0;
+.xv-list .xv-list-item.inactive .xv-list-column .xv-list-attr.placeholder {
+ color: #d8d8d8;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget .onyx-input-decorator {
- padding: 0;
- width: 100%;
- margin: 0;
+.xv-list .xv-list-item .xv-list-column .list-icon {
+ padding: 2px;
+ color: #666666;
+ vertical-align: sub;
+ border: 1px solid #efefef;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-moneywidget .onyx-input-decorator input {
- width: 100%;
- font-size: 13px;
+.xv-list .xv-list-item.item-selected {
+ background: #226b9a;
+ background-color: #1f608c;
+ background-image: -moz-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#226b9a), to(#1a4f77));
+ background-image: -webkit-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: -o-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: linear-gradient(to bottom, #226b9a, #1a4f77);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff226b9a', endColorstr='#ff1a4f77', GradientType=0);
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget .onyx-input-decorator {
- width: 100%;
- padding-top: 6px;
+.xv-list .xv-list-item.item-selected .xv-list-attr {
+ color: #fdfdfd;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget .onyx-input {
- width: 85%;
- padding-right: 4px;
+.xv-list .xv-list-item.item-selected .xv-list-attr.placeholder {
+ font-style: italic;
+ color: #99ccff;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-useraccount-widget .xv-subinput {
- width: 80px;
- height: 16px;
+.xv-list .xv-list-item.item-selected .xv-list-attr.hyperlink {
+ color: #ff6529;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-subinput {
- width: 100%;
+.xv-list .xv-list-item.item-selected .xv-list-attr.header {
+ background: #99ccff;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-input {
- padding-top: 6px;
- width: 100%;
- border: none;
+.xv-list .xv-list-item .xv-list-item-gear {
+ position: absolute;
+ right: 0px;
+ z-index: 999;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-label,
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-flexible-label,
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget-secondarydescription {
- display: none;
+.xv-list.xv-grid-list {
+ background: #f8f8f8;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-relationwidget-description {
- text-indent: 0;
- padding-bottom: 0;
- padding-top: 8px;
+.xv-list.xv-grid-list .xv-list-item > * {
+ vertical-align: top;
}
-.xv-grid-box .xv-grid-row.selected .xv-grid-column .xv-private-item-site-widget {
- border-bottom: 0;
+.xv-list.xv-grid-list .xv-list-item {
+ padding-top: 7px !important;
+ padding-bottom: 9px !important;
+ border-bottom: 1px solid #aaaaaa !important;
+ background: #f8f8f8;
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel {
- border: none;
- margin-top: 0;
- padding-left: 0;
- padding-right: 0;
+.xv-list.xv-grid-list .xv-list-item.item-selected {
+ background: #226b9a;
+ background-color: #1f608c;
+ background-image: -moz-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#226b9a), to(#1a4f77));
+ background-image: -webkit-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: -o-linear-gradient(top, #226b9a, #1a4f77);
+ background-image: linear-gradient(to bottom, #226b9a, #1a4f77);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff226b9a', endColorstr='#ff1a4f77', GradientType=0);
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group {
- padding: 0;
- border: none;
+.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr {
+ color: #fdfdfd;
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-moneywidget {
- padding-bottom: 0;
- padding-top: 0;
+.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.placeholder {
+ font-style: italic;
+ color: #99ccff;
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-moneywidget .xv-input-decorator {
- padding-bottom: 0;
- padding-top: 0;
+.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.hyperlink {
+ color: #ff6529;
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-numberwidget {
- padding-bottom: 0;
- padding-top: 0;
+.xv-list.xv-grid-list .xv-list-item.item-selected .xv-list-attr.header {
+ background: #99ccff;
}
-.xv-grid-box.xv-groupbox .xv-sales-summary-panel .xv-sales-summary-total-group .xv-numberwidget .xv-input-decorator {
- width: 163px;
- padding-bottom: 0;
- padding-top: 0;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column {
+ vertical-align: top;
}
-.xv-grid-list .xv-list-column {
- vertical-align: top !important;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column .xv-list-attr {
+ font-size: 12px;
}
-/*
- Styles relating to the dashboard
-*/
-/*
- Variables for widths/colors
-*/
-.dashboard {
- background-color: #d8d8d8;
- /*
- These styles will only be used
- if the chart is in a dashboard
- */
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.last {
+ border-right: none;
}
-.dashboard .charts-panels {
- overflow-y: auto;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.name-column {
+ padding-left: 7px;
}
-.dashboard .selectable-chart {
- width: 500px;
- height: 230px;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.first {
+ padding-left: 7px;
}
-.dashboard .selectable-chart .chart-title-bar {
- width: 500px;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.second {
+ padding-left: 7px;
}
-.dashboard .nvtooltip {
- color: black;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.third {
+ padding-left: 7px;
}
-.selectable-chart {
- margin: 10px;
- color: #357ec7;
- overflow: hidden;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.short {
+ padding-left: 7px;
}
-.selectable-chart .xv-list-item {
- border-bottom: 1px solid grey;
- box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.small {
+ padding-left: 7px;
}
-.selectable-chart .xv-list-item .long {
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.medium {
padding-left: 7px;
- width: 250px;
}
-.selectable-chart .onyx-popup {
- margin-top: 40px;
- margin-left: 200px;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column.descr {
+ padding-left: 7px;
}
-.selectable-chart .chart-title-bar {
- height: 32px;
- background-color: #efefef;
- -webkit-border-top-right-radius: 10px;
- -moz-border-radius-topright: 10px;
- border-top-right-radius: 10px;
- -webkit-border-top-left-radius: 10px;
- -moz-border-radius-topleft: 10px;
- border-top-left-radius: 10px;
+.xv-list.xv-grid-list .xv-list-item .xv-list-column .xv-list-attr {
+ padding: 0px;
}
-.selectable-chart .chart-title-bar .chart-title {
- padding-top: 8px;
+.xv-list-attr {
+ padding: 5px;
+ font-size: .8em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
color: #070707;
- text-align: center;
- /*font-size: 2em;*/
- font-weight: normal;
}
-.selectable-chart .chart-title-bar .remove-icon {
- position: absolute;
- top: 0;
- right: 0;
+.xv-list-attr.header {
+ padding: 4px;
+ background: #d8d8d8;
+ font-size: .7em;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: #fdfdfd;
}
-.selectable-chart .chart-title-bar .icon-filter {
+.xv-list-attr.footer {
+ padding: 4px;
+ background: #d8d8d8;
+ font-size: .7em;
+ font-weight: bold;
+ text-transform: uppercase;
color: #070707;
+}
+.xv-list-attr.right {
position: absolute;
- right: 35px;
+ right: 10px;
}
-.selectable-chart .chart-bottom {
- background-color: #fdfdfd;
- border: 1px solid #444444;
- border-top: none;
- -webkit-border-bottom-right-radius: 10px;
- -moz-border-radius-bottomright: 10px;
- border-bottom-right-radius: 10px;
- -webkit-border-bottom-left-radius: 10px;
- -moz-border-radius-bottomleft: 10px;
- border-bottom-left-radius: 10px;
+.xv-list-attr.text-align-right {
+ text-align: right;
}
-.selectable-chart .chart-bottom .xv-picker-label {
- width: 100px;
- color: #070707;
+.xv-list-attr.bold {
+ font-weight: bold;
}
-.selectable-chart .chart-bottom .onyx-button {
- width: 130px;
- padding: 10px 10px;
+.xv-list-attr.error {
+ color: #ff0000;
}
-.selectable-chart .chart-filters {
- background-color: #fdfdfd;
- -webkit-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
- box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
+.xv-list-attr.emphasis {
+ color: #009000;
}
-.selectable-chart .chart-filters .xv-parameter-panel {
- background-color: #f8f8f8;
- border: 1px solid #d7d7d7;
- margin: 0 4px 6px 0;
- width: 100%;
+.xv-list-attr.warn {
+ color: #ff9c00;
}
-.selectable-chart .chart-filters.xv-parameter-panel .onyx-groupbox-header {
- padding: 6px 10px;
- border-bottom: 1px solid #d7d7d7;
- background: #efefef;
- color: #0e0e0e;
+.xv-list-attr.italic {
+ font-style: italic;
}
-.selectable-chart .chart-filters.xv-parameter-panel .enyo-fittable-columns-layout {
- padding: 6px 10px;
- border-bottom: 1px solid #d7d7d7;
- background: #fdfdfd;
- color: #0e0e0e;
+.xv-list-attr.placeholder {
+ font-style: italic;
+ color: #777777;
+}
+.xv-list-attr.hyperlink {
+ color: blue;
+}
+.xv-list-attr.disabled {
+ color: #777777;
+}
+/* Navigator */
+.xv-navigator-header {
+ font-size: small;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: #ff6600;
+ padding-left: 20px;
+ border-bottom: 1px solid #0e0e0e;
+}
+.xv-workspace-header {
+ color: #fdfdfd;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding: 8px 0 0 8px;
}
/**
Styles relating to widgets in the pullout
position: relative;
}
.xv-relationwidget-description {
- white-space: nowrap;
overflow: hidden;
- text-overflow: ellipsis;
- text-indent: 140px;
- font-size: small;
- padding-bottom: 4px;
- max-width: 325px;
- color: black;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ max-width: 250px;
+ margin: 5px 5px 5px 80px;
}
.xv-relationwidget-description.disabled {
color: #777777;
attrs = value ? value.get(key) : "";
changed = inputValue !== attrs;
} else {
- // Must be array. Handle it.
+ // key must be array. Handle it.
_.each(key, function (str) {
- var attr = value ? value.get(key) : "";
+ var attr = value ? value.get(str) : "";
attrs.push(attr);
- changed = changed || inputValue !== attrs;
});
+ // if changed or inputValue doesn't match an attr
+ changed = changed || !(_.find(attrs, function (attr) {return inputValue === attr; }));
}
if (inputValue && changed) {
},
"main": "node-datasource/main.js",
"scripts": {
- "build-basic-postbooks-package-sql": "./scripts/explode_manifest.js -m foundation-database/manifest.js -n updates.sql",
+ "build-basic-postbooks-package-sql": "./scripts/explode_manifest.js -m foundation-database/manifest.js -n postbooks_upgrade.sql",
"build-basic-empty": "./scripts/build_app.js -d empty --databaseonly -e foundation-database -i -s foundation-database/empty_data.sql",
"build-basic-postbooks-demo": "./scripts/build_app.js -d postbooks_demo --databaseonly -e foundation-database -i -s foundation-database/postbooks_demo_data.sql",
"build-basic-quickstart": "./scripts/build_app.js -d quickstart --databaseonly -e foundation-database -i -s foundation-database/quickstart_data.sql",
isLibOrm ? path.join(extension, "source") :
path.join(extension, "database/source"),
manifestOptions = {
- useSafeFoundationToolkit: isFoundation && !isFoundationExtension && extensions.length === 1,
useFrozenScripts: spec.frozen,
useFoundationScripts: baseName.indexOf('inventory') >= 0 ||
baseName.indexOf('manufacturing') >= 0 ||
dataSource = require('../../node-datasource/lib/ext/datasource').dataSource,
winston = require('winston');
- var convertFromMetasql = function (content, filename) {
+
+
+
+ var convertFromMetasql = function (content, filename, defaultSchema) {
var lines = content.split("\n"),
- schema = filename.indexOf('manufacturing') >= 0 ?
- "'xtmfg'" :
- "NULL",
+ schema = defaultSchema ? "'" + defaultSchema + "'" : "NULL",
group,
i = 2,
name,
return insertSql;
};
- var convertFromReport = function (content, filename) {
+ var convertFromReport = function (content, filename, defaultSchema) {
var lines = content.split("\n"),
name,
- tableName = filename.indexOf('manufacturing') >= 0 ?
- "xtmfg.pkgreport" :
- "report",
+ grade = "0",
+ tableName = defaultSchema ? defaultSchema + ".pkgreport" : "report",
description,
disableSql,
deleteSql,
name = lines[3].substring(" <name>".length).trim();
name = name.substring(0, name.indexOf("<"));
description = lines[4].substring(" <description>".length).trim();
- description = description.substring(0, name.indexOf("<"));
+ description = description.substring(0, description.indexOf("<"));
+ if (lines[5].indexOf("grade") >= 0) {
+ grade = lines[5].substring(" <grade>".length).trim();
+ grade = grade.substring(0, grade.indexOf("<"));
+ }
disableSql = "ALTER TABLE " + tableName + " DISABLE TRIGGER ALL;";
deleteSql = "delete from " + tableName + " " +
"where report_name = '" + name +
- "' and report_grade = 0;";
+ "' and report_grade = " + grade + ";";
insertSql = "insert into " + tableName + " (report_name, report_descrip, " +
"report_source, report_loaddate, report_grade) VALUES (" +
"'" + name + "'," +
- "'" + description + "'," +
+ "$$" + description + "$$," +
"$$" + content + "$$," +
- "now(), 0);";
+ "now(), " + grade + ");";
enableSql = "ALTER TABLE " + tableName + " ENABLE TRIGGER ALL;";
return disableSql + deleteSql + insertSql + enableSql;
};
- var convertFromScript = function (content, filename) {
+ var convertFromScript = function (content, filename, defaultSchema) {
var name = path.basename(filename, '.js'),
- tableName = filename.indexOf('manufacturing') >= 0 ?
- "xtmfg.pkgscript" :
- "unknown",
- notes = "xtMfg package",
+ tableName = defaultSchema ? defaultSchema + ".pkgscript" : "unknown",
+ notes = "", //"xtMfg package",
disableSql,
deleteSql,
insertSql,
return disableSql + deleteSql + insertSql + enableSql;
};
- var convertFromUiform = function (content, filename) {
+ var convertFromUiform = function (content, filename, defaultSchema) {
var name = path.basename(filename, '.ui'),
- tableName = filename.indexOf('manufacturing') >= 0 ?
- "xtmfg.pkguiform" :
- "unknown",
- notes = "xtMfg package",
+ tableName = defaultSchema ? defaultSchema + ".pkguiform" : "unknown",
+ notes = "", //"xtMfg package",
disableSql,
deleteSql,
insertSql,
var manifest,
databaseScripts,
extraManifestPath,
+ defaultSchema,
extraManifest,
extraManifestScripts,
alterPaths = dbSourceRoot.indexOf("foundation-database") < 0,
extensionName = manifest.name;
extensionComment = manifest.comment;
databaseScripts = manifest.databaseScripts;
+ defaultSchema = manifest.defaultSchema;
loadOrder = manifest.loadOrder || 999;
} catch (error) {
// -e ../private-extensions/source/inventory/foundation-database
if (options.useFoundationScripts) {
- extraManifest = fs.readFileSync(path.join(dbSourceRoot, "../../foundation-database/manifest.js"));
- extraManifestScripts = JSON.parse(extraManifest).databaseScripts;
+ extraManifest = JSON.parse(fs.readFileSync(path.join(dbSourceRoot, "../../foundation-database/manifest.js")));
+ defaultSchema = defaultSchema || extraManifest.defaultSchema;
+ extraManifestScripts = extraManifest.databaseScripts;
extraManifestScripts = _.map(extraManifestScripts, function (path) {
return "../../foundation-database/" + path;
});
path.join(dbSourceRoot, "../../foundation-database/frozen_manifest.js") :
path.join(dbSourceRoot, "frozen_manifest.js");
- extraManifest = fs.readFileSync(extraManifestPath);
- extraManifestScripts = JSON.parse(extraManifest).databaseScripts;
+ extraManifest = JSON.parse(fs.readFileSync(extraManifestPath));
+ defaultSchema = defaultSchema || extraManifest.defaultSchema;
+ extraManifestScripts = extraManifest.databaseScripts;
if (alterPaths) {
extraManifestScripts = _.map(extraManifestScripts, function (path) {
return "../../foundation-database/" + path;
extname = path.extname(fullFilename).substring(1);
// convert special files: metasql, uiforms, reports, uijs
- scriptContents = conversionMap[extname](scriptContents, fullFilename);
+ scriptContents = conversionMap[extname](scriptContents, fullFilename, defaultSchema);
//
// Allow inclusion of js files in manifest. If it is a js file,
// use plv8 to execute it.
MIN=$2
PAT=$3
+# Usage: ./scripts/release_build.sh 4 5 0-beta
echo "BUILDING RELEASE "$MAJ"."$MIN"."$PAT""
git fetch XTUPLE
npm run-script build-basic-distribution-package-sql
npm run-script build-basic-distribution-empty
npm run-script build-basic-distribution-quickstart
-#postbooks package
+
+#postbooks upgrade
cd ../xtuple
-mkdir scripts/output/pb$MAJ$MIN$PAT
-cp scripts/xml/postbooks_package.xml scripts/output/pb$MAJ$MIN$PAT/package.xml
-cp scripts/output/toolkit.sql scripts/output/pb$MAJ$MIN$PAT
-cp scripts/output/updates.sql scripts/output/pb$MAJ$MIN$PAT
+mkdir scripts/output/postbooks-upgrade-$MAJ$MIN$PAT
+cp scripts/xml/postbooks_package.xml scripts/output/postbooks-upgrade-$MAJ$MIN$PAT/package.xml
+cp scripts/output/postbooks_upgrade.sql scripts/output/postbooks-upgrade-$MAJ$MIN$PAT
cd scripts/output
-tar -zcvf pb$MAJ$MIN$PAT.gz pb$MAJ$MIN$PAT/
-#distribution package
+tar -zcvf postbooks-upgrade-$MAJ$MIN$PAT.gz postbooks-upgrade-$MAJ$MIN$PAT/
+
+#distribution upgrade
cd ../../
-mkdir scripts/output/dist$MAJ$MIN$PAT
-cp scripts/xml/distribution_package.xml scripts/output/dist$MAJ$MIN$PAT/package.xml
-cp scripts/output/updates.sql scripts/output/dist$MAJ$MIN$PAT
-cp scripts/output/inventory_upgrade.sql scripts/output/dist$MAJ$MIN$PAT
+mkdir scripts/output/distribution-upgrade-$MAJ$MIN$PAT
+cp scripts/xml/distribution_package.xml scripts/output/distribution-upgrade-$MAJ$MIN$PAT/package.xml
+cp scripts/output/postbooks_upgrade.sql scripts/output/distribution-upgrade-$MAJ$MIN$PAT
+cp scripts/output/inventory_upgrade.sql scripts/output/distribution-upgrade-$MAJ$MIN$PAT
+cp scripts/output/distribution_upgrade.sql scripts/output/distribution-upgrade-$MAJ$MIN$PAT
cd scripts/output
-tar -zcvf dist$MAJ$MIN$PAT.gz dist$MAJ$MIN$PAT/
-#postbooks to distribution
+tar -zcvf distribution-upgrade-$MAJ$MIN$PAT.gz distribution-upgrade-$MAJ$MIN$PAT/
+
+#distribution install
cd ../../
-mkdir scripts/output/pbtodist$MAJ$MIN$PAT
-cp scripts/xml/distribution_install.xml scripts/output/pbtodist$MAJ$MIN$PAT/package.xml
-cp scripts/output/inventory_basic_install.sql scripts/output/pbtodist$MAJ$MIN$PAT
-cp scripts/output/inventory_upgrade.sql scripts/output/pbtodist$MAJ$MIN$PAT
+mkdir scripts/output/distribution-install-$MAJ$MIN$PAT
+cp scripts/xml/distribution_install.xml scripts/output/distribution-install-$MAJ$MIN$PAT/package.xml
+cp scripts/output/postbooks_upgrade.sql scripts/output/distribution-install-$MAJ$MIN$PAT
+cp scripts/output/inventory_basic_install.sql scripts/output/distribution-install-$MAJ$MIN$PAT
+cp scripts/output/inventory_upgrade.sql scripts/output/distribution-install-$MAJ$MIN$PAT
+cp scripts/output/distribution_basic_install.sql scripts/output/distribution-install-$MAJ$MIN$PAT
+cp scripts/output/distribution_upgrade.sql scripts/output/distribution-install-$MAJ$MIN$PAT
cd scripts/output
-tar -zcvf pbtodist$MAJ$MIN$PAT.gz pbtodist$MAJ$MIN$PAT/
-#xtmfg packages
+tar -zcvf distribution-install-$MAJ$MIN$PAT.gz distribution-install-$MAJ$MIN$PAT/
+
+#manufacturing upgrade
cd ../../
-mkdir scripts/output/xtmfg$MAJ$MIN$PAT
-cp scripts/xml/xtmfg_package.xml scripts/output/xtmfg$MAJ$MIN$PAT/package.xml
-cp scripts/output/updates.sql scripts/output/xtmfg$MAJ$MIN$PAT
-cp scripts/output/inventory_upgrade.sql scripts/output/xtmfg$MAJ$MIN$PAT
-cp scripts/output/manufacturing_upgrade.sql scripts/output/xtmfg$MAJ$MIN$PAT
+mkdir scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT
+cp scripts/xml/xtmfg_package.xml scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT/package.xml
+cp scripts/output/postbooks_upgrade.sql scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT
+cp scripts/output/inventory_upgrade.sql scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT
+cp scripts/output/manufacturing_upgrade.sql scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT
cd scripts/output
-tar -zcvf xtmfg_upgrade-$MAJ$MIN$PAT.gz xtmfg$MAJ$MIN$PAT/
+tar -zcvf manufacturing-upgrade-$MAJ$MIN$PAT.gz manufacturing-upgrade-$MAJ$MIN$PAT/
+#manufacturing install
cd ../../
-mkdir scripts/output/xtmfg_install$MAJ$MIN$PAT
-cp scripts/xml/xtmfg_install.xml scripts/output/xtmfg_install$MAJ$MIN$PAT/package.xml
-cp scripts/output/manufacturing_basic_install.sql scripts/output/xtmfg_install$MAJ$MIN$PAT
-cp scripts/output/manufacturing_upgrade.sql scripts/output/xtmfg_install$MAJ$MIN$PAT
+mkdir scripts/output/manufacturing-install-$MAJ$MIN$PAT
+cp scripts/xml/xtmfg_package.xml scripts/output/manufacturing-install-$MAJ$MIN$PAT/package.xml
+cp scripts/output/postbooks_upgrade.sql scripts/output/manufacturing-install-$MAJ$MIN$PAT
+cp scripts/output/inventory_basic_install.sql scripts/output/manufacturing-install-$MAJ$MIN$PAT
+cp scripts/output/inventory_upgrade.sql scripts/output/manufacturing-install-$MAJ$MIN$PAT
+cp scripts/output/manufacturing_basic_install.sql scripts/output/manufacturing-install-$MAJ$MIN$PAT
+cp scripts/output/manufacturing_upgrade.sql scripts/output/manufacturing-install-$MAJ$MIN$PAT
cd scripts/output
-tar -zcvf xtmfg_install-$MAJ$MIN$PAT.gz xtmfg_install$MAJ$MIN$PAT/
+tar -zcvf manufacturing-install-$MAJ$MIN$PAT.gz manufacturing-install-$MAJ$MIN$PAT/
ADMIN=admin
PORT=5432
#cleanup
cd ../..
-rm -rf scripts/output/pb$MAJ$MIN$PAT/
-rm -rf scripts/output/updates.sql
-rm -rf scripts/output/toolkit.sql
-rm -rf scripts/output/pbtodist$MAJ$MIN$PAT/
-rm -rf scripts/output/dist$MAJ$MIN$PAT/
+rm -rf scripts/output/postbooks-upgrade-$MAJ$MIN$PAT/
+rm -rf scripts/output/postbooks_upgrade.sql
+rm -rf scripts/output/distribution-install-$MAJ$MIN$PAT/
+rm -rf scripts/output/distribution-upgrade-$MAJ$MIN$PAT/
rm -rf scripts/output/distribution_upgrade.sql
rm -rf scripts/output/distribution_basic_install.sql
rm -rf scripts/output/inventory_basic_install.sql
rm -rf scripts/output/inventory_upgrade.sql
-rm -rf scripts/output/xtmfg$MAJ$MIN$PAT/
-rm -rf scripts/output/xtmfg_install$MAJ$MIN$PAT/
+rm -rf scripts/output/manufacturing-install-$MAJ$MIN$PAT/
+rm -rf scripts/output/manufacturing-upgrade-$MAJ$MIN$PAT/
rm -rf scripts/output/manufacturing_basic_install.sql
rm -rf scripts/output/manufacturing_upgrade.sql
-<package id = "pbtodist450Beta"
- version = "4.5.0Beta"
+<package id = "distribution-install-450"
+ version = "4.5.0"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking xTuple ERP database version" >
- <query>SELECT fetchMetricText('ServerVersion') ~ '^4.4.';</query>
- <message>This package must be applied to a 4.4+ Postbooks database.
+ <query>SELECT fetchMetricText('ServerVersion') > '4.4.';</query>
+ <message>This package must be applied to a 4.4+ Distribution database.
</message>
</prerequisite>
+ <prerequisite type = "query"
+ name = "Checking for bad xTuple ERP database version" >
+ <query>SELECT fetchMetricText('ServerVersion') < '4.5.0';</query>
+ <message>This package may not be applied to a 4.5+ Distribution database.
+ </message>
+ </prerequisite>
+
+ <script file="postbooks_upgrade.sql" />
<script file="inventory_basic_install.sql" />
<script file="inventory_upgrade.sql" />
+ <script file="distribution_basic_install.sql" />
+ <script file="distribution_upgrade.sql" />
</package>
-<package id = "dist450Beta"
- version = "4.5.0Beta"
+<package id = "distribution-upgrade-450"
+ version = "4.5.0"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking xTuple ERP database version" >
- <query>SELECT fetchMetricText('ServerVersion') ~ '^4.4.';</query>
+ <query>SELECT fetchMetricText('ServerVersion') > '4.4.';</query>
<message>This package must be applied to a 4.4+ Distribution database.
</message>
</prerequisite>
- <script file="updates.sql" />
+ <prerequisite type = "query"
+ name = "Checking for bad xTuple ERP database version" >
+ <query>SELECT fetchMetricText('ServerVersion') < '4.5.0';</query>
+ <message>This package may not be applied to a 4.5+ Distribution database.
+ </message>
+ </prerequisite>
+
+ <script file="postbooks_upgrade.sql" />
<script file="inventory_upgrade.sql" />
+ <script file="distribution_upgrade.sql" />
</package>
-<package id = "pb450Beta"
- version = "4.5.0Beta"
+<package id = "postbooks-upgrade-450"
+ version = "4.5.0"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking xTuple ERP database version" >
- <query>SELECT fetchMetricText('ServerVersion') ~ '^4.4.';</query>
+ <query>SELECT fetchMetricText('ServerVersion') > '4.4.';</query>
<message>This package must be applied to a 4.4+ PostBooks database.
</message>
</prerequisite>
- <script file="updates.sql" />
+ <prerequisite type = "query"
+ name = "Checking for bad xTuple ERP database version" >
+ <query>SELECT fetchMetricText('ServerVersion') < '4.5.0';</query>
+ <message>This package may not be applied to a 4.5+ Postbooks database.
+ </message>
+ </prerequisite>
+
+ <script file="postbooks_upgrade.sql" />
</package>
-<package id = "xtmfg_install450Beta"
- version = "4.5.0Beta"
+<package id = "manufacturing-install-450"
+ version = "4.5.0"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking xTuple ERP database version" >
- <query>SELECT fetchMetricText('ServerVersion') ~ '^4.4.';</query>
- <message>This package must be applied to a 4.4+ Manufacturing database.
+ <query>SELECT fetchMetricText('ServerVersion') > '4.4.';</query>
+ <message>This package must be applied to a 4.4+ Distribution database.
</message>
</prerequisite>
+ <prerequisite type = "query"
+ name = "Checking for bad xTuple ERP database version" >
+ <query>SELECT fetchMetricText('ServerVersion')='4.5.0Beta';</query>
+ <message>This package may not be applied to a 4.5.0Beta Distribution database.
+ </message>
+ </prerequisite>
+
+ <script file="postbooks_upgrade.sql" />
+ <script file="inventory_basic_install.sql" />
+ <script file="inventory_upgrade.sql" />
<script file="manufacturing_basic_install.sql" />
<script file="manufacturing_upgrade.sql" />
-<package id = "xtmfg450Beta"
- version = "4.5.0Beta"
+<package id = "manufacturing-upgrade-450"
+ version = "4.5.0"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking xTuple ERP database version" >
- <query>SELECT fetchMetricText('ServerVersion') ~ '^4.4.';</query>
+ <query>SELECT fetchMetricText('ServerVersion') > '4.4.';</query>
<message>This package must be applied to a 4.4+ Manufacturing database.
</message>
</prerequisite>
+ <prerequisite type = "query"
+ name = "Checking for bad xTuple ERP database version" >
+ <query>SELECT fetchMetricText('ServerVersion')='4.5.0Beta';</query>
+ <message>This package may not be applied to a 4.5.0Beta Manufacturing database.
+ </message>
+ </prerequisite>
+
+ <script file="postbooks_upgrade.sql" />
+ <script file="inventory_upgrade.sql" />
<script file="manufacturing_upgrade.sql" />
</package>
});
});
+ it('should execute a simple item-site fetch', function (done) {
+ var sql = 'select xt.js_init(true);select xt.post($${"nameSpace":"XM","type":"ItemSiteListItem","dispatch":{"functionName":"fetch","parameters":{"orderBy":[{"attribute":"item.number"}],"parameters":[{"attribute":"isActive","operator":"=","value":true}],"rowOffset":0,"rowLimit":50}},"username":"admin"}$$);';
+
+ datasource.query(sql, creds, function (err, res) {
+ var results;
+ assert.isNull(err);
+ assert.equal(1, res.rowCount, JSON.stringify(res.rows));
+ results = JSON.parse(res.rows[1].post);
+ assert.isNumber(results.length);
+ done();
+ });
+ });
+
it('should execute an item-site fetch', function (done) {
var sql = 'select xt.js_init(true);select xt.post($${"nameSpace":"XM","type":"ItemSiteRelation","dispatch":{"functionName":"fetch","parameters":{"parameters":[{"attribute":"item.number","value":"BTRUCK1"},{"attribute":"site.code","value":"WH1"}]}},"username":"admin","encryptionKey":"this is any content"}$$);';
});
});
+ it('should be able to do a complex item-site search with a keysearch and join table parameters', function (done) {
+ var sql = 'select xt.js_init(true);select xt.post($${"nameSpace":"XM","type":"ItemSiteRelation","dispatch":{"functionName":"fetch","parameters":{"parameters":[{"attribute":"item.isSold","value":true},{"attribute":"item.isActive","value":true},{"attribute":"isSold","value":true},{"attribute":"isActive","value":true},{"attribute":"site.code","value":"WH1"},{"attribute":"customer","value":"TTOYS"},{"attribute":["number","barcode"],"operator":"BEGINS_WITH","value":"btr","keySearch":true}],"orderBy":[{"attribute":"number"},{"attribute":"barcode"}],"rowLimit":10}},"username":"admin"}$$);';
+
+ datasource.query(sql, creds, function (err, res) {
+ var results;
+ assert.isNull(err);
+ assert.equal(1, res.rowCount, JSON.stringify(res.rows));
+ results = JSON.parse(res.rows[1].post);
+ assert.isNumber(results.length);
+ done();
+ });
+ });
it('should support a nested order-by', function (done) {
var sql = 'select xt.js_init(true);select xt.get($${"nameSpace":"XM","type":"ItemSource","query":{"orderBy":[{"attribute":"vendorItemNumber"},{"attribute":"vendor.name"}],"parameters":[{"attribute":"isActive","value":true},{"attribute":"effective","operator":"<=","value":"2014-03-20T04:00:00.000Z"},{"attribute":"expires","operator":">=","value":"2014-03-22T01:18:09.202Z"}],"rowOffset":0,"rowLimit":50},"username":"admin","encryptionKey":"this is any content"}$$);';
--- /dev/null
+/*jshint trailing:true, white:true, indent:2, strict:true, curly:true,
+ immed:true, eqeqeq:true, forin:true, latedef:true,
+ newcap:true, noarg:true, undef:true */
+/*global XT:true, describe:true, it:true, require:true, __dirname:true, before:true */
+
+var _ = require("underscore"),
+ assert = require('chai').assert,
+ path = require('path');
+
+(function () {
+ "use strict";
+ describe('The setMetric function', function () {
+
+ var loginData = require(path.join(__dirname, "../lib/login_data.js")).data,
+ datasource = require('../../../xtuple/node-datasource/lib/ext/datasource').dataSource,
+ config = require(path.join(__dirname, "../../node-datasource/config.js")),
+ creds = _.extend({}, config.databaseServer, {database: loginData.org});
+
+ it("should verify that there is no staged data", function (done) {
+ var sql = "select metric_value from public.metric where metric_name = 'Test999';";
+ datasource.query(sql, creds, function (err, res) {
+ assert.equal(res.rowCount, 0);
+ done();
+ });
+ });
+
+ it("should add a new metric", function (done) {
+ var sql = "select setmetric('Test999', 'Value999');";
+ datasource.query(sql, creds, done);
+ });
+
+ it("should verify that the metric was set", function (done) {
+ var sql = "select metric_value from public.metric where metric_name = 'Test999';";
+ datasource.query(sql, creds, function (err, res) {
+ assert.equal(res.rowCount, 1);
+ assert.equal(res.rows[0].metric_value, "Value999");
+ done();
+ });
+ });
+
+ it("should update the metric", function (done) {
+ var sql = "select setmetric('Test999', 'Value888');";
+ datasource.query(sql, creds, done);
+ });
+
+ it("should verify that the metric was set", function (done) {
+ var sql = "select metric_value from public.metric where metric_name = 'Test999';";
+ datasource.query(sql, creds, function (err, res) {
+ assert.equal(res.rowCount, 1);
+ assert.equal(res.rows[0].metric_value, "Value888");
+ done();
+ });
+ });
+
+ after(function (done) {
+ // cleanup
+ var sql = "delete from public.metric where metric_name = 'Test999';";
+ datasource.query(sql, creds, done);
+ });
+
+ });
+}());
+
+
+
submodels,
smoke = require("../../lib/smoke"),
assert = require("chai").assert,
+ gridRow,
+ gridBox,
+ workspace,
primeSubmodels = function (done) {
var submodels = {};
async.series([
describe('User selects to create a sales order', function () {
it('User navigates to Sales Order-New and selects to create a new Sales order', function (done) {
smoke.navigateToNewWorkspace(XT.app, "XV.SalesOrderList", function (workspaceContainer) {
- var workspace = workspaceContainer.$.workspace,
- gridRow, gridBox, collect;
+ workspace = workspaceContainer.$.workspace;
assert.equal(workspace.value.recordType, "XM.SalesOrder");
-
//
// Set the customer from the appropriate workspace widget
//
// know that the workspace is ready to save.
// It's good practice to set this trigger *before* we change the line
// item fields, so that we're 100% sure we're ready for the responses.
- workspace.value.on("change:total", function () {
+ workspace.value.once("change:total", function () {
+ done();
+ /* The following save was moved to the second test
smoke.saveWorkspace(workspace, function (err, model) {
assert.isNull(err);
// TODO: sloppy
setTimeout(function () {
smoke.deleteFromList(XT.app, model, done);
}, 2000);
- });
+ });*/
});
//
assert.equal(gridBox.liveModels().length, 1);
});
});
+ it('adding a second line item should not copy the item', function (done) {
+ workspace.value.once("change:total", function () {
+ smoke.saveWorkspace(workspace, function (err, model) {
+ assert.isNull(err);
+ // TODO: sloppy
+ setTimeout(function () {
+ smoke.deleteFromList(XT.app, model, done);
+ }, 4000);
+ }, true);
+ });
+
+ gridRow.$.itemSiteWidget.$.privateItemSiteWidget.$.input.focus();
+ // Add a new item, check that row exists, and make sure the itemSiteWidget doesn't copy irrelevantly
+ gridBox.newItem();
+ assert.equal(gridBox.liveModels().length, 2);
+ assert.notEqual(submodels.itemModel.id, gridRow.$.itemSiteWidget.$.privateItemSiteWidget.$.input.value);
+
+ // The intention was to delete the above line after verifying that the item doesn't copy but ran into
+ // many issues so just populating with same data and saving it with 2 line items.
+ gridRow.$.itemSiteWidget.doValueChange({value: {item: submodels.itemModel, site: submodels.siteModel}});
+ gridRow.$.quantityWidget.doValueChange({value: 5});
+ /* Delete the line item
+ workspace.value.get("lineItems").models[1].destroy({
+ success: function () {
+ console.log("success");
+ gridBox.setEditableIndex(null);
+ gridBox.$.editableGridRow.hide();
+ gridBox.valueChanged();
+ }
+ });
+ */
+ });
});
});
}());