web2019/static/js/shop_data.js

676 lines
18 KiB
JavaScript
Raw Normal View History

feat(place-order): Adds order hardware system fix(place-order): Avoids colliding with page var feat(place-order): Adds drag(copy)/drop system Finally get this to work.. Still some minor issues while drag(copy)/drop This commit allows to drag(copy)/drop inside the crate. Allows to reorder the crate feat(place-order): Adds basic summary of shopping cart allows to delete item feat(place-order): Adds form also applies some cosmetcis css feat(place-order): Applies custom css to drag/drop process feat(place-order): Improves crate UI feat(place-order): Adds missing assets feat(place-order): Updates icon button add feat(place-order): Changes cart layout to increase space - moves up the control crate type (rack/desktop) - increase card size a bit - reduces some padding - adding some space above card title - re-organise react component to achieve this layout feat(place-order): Updates icon remove in summary price - uses icon instead of shitty html/css - re-organises react component fix(place-order): Reduces overlay gradient effect on the aside also increases padding-bottom to avoid overlay above content feat(place-order): Updates summary price layout feat(place-order): Updates CrateMode using data this avoid using hard text in component and also, adding crate mode in data.js will be helpful for other component too (e.g OrderSummary) feat(place-order): Adds crate mode in OrderSummary Allows to add fees to rack mode for exemple feat(place-order): Allows to delete all items in the crate at once feat(place-order): Updates typo uses currentMode instead of crateMode feat(place-order): Displays selection shadow on card when user hover delete button feat(place-order): Allows to add item to the crate feat(place-order): Corrects typo feat(place-order): Corrects layout for browser support feat(place-order): Adds first automatic rules this allows to test how things could be done feat(place-order): Allows to remove card when drop out of crate feat(place-order): Adds icon reminder to rules feat(place-order): Uses internal js production assets feat(place-order): Uses production file feat(place-order): Adds kali first as initialisation feat(place-order): Simulates slots in crate (desktop/rack) feat(place-order): Updates data that prepare for rules algo feat(place-order): Adds some rules feat(place-order): Removes rule 2kasli when no more kasli it's a fix feat(place-order): Corrects typo rules koster fix(place-order): Removes PWA prompt fix(place-order): Corrects size card inside crate refactor(place-order): Reduces padding between items in listing refactor(place-order): Uses USD currency feat(place-order): Upgrades algo for rules feat(place-order): Adds progress bar to kasli/kasli w/backplane feat(place-order): Refactores a bit rule handler feat(place-order): Adds all other rules fix(place-order): Corrects typo fix(place-order): Corrects count zotino/hd68 when IDC-BNC does not follow each others feat(place-order): Backups dev script call just in case For now, I can work with prod build even debugging production code feat(place-order): Adds super tooltip to progress bar feat(place-order): Adds tooltip for zotino/hd68 too refactor(place-order): Updates typo rule for Koster feat(place-order/WIP): Adds warning feat(place-order): Adds Mirny adds css changes from previous commit (i've forgotten) feat(place-order): Updates build feat(place-order): Set RJ45-DIO to occupy 2 EEMs feat(place-order): Make clocker progress bar visible It was hidden by horizontal scrollbar inside crate feat(place-order): Remove red warning for 2 kaslis following each other feat(place-order): Adds rule for cards that need a resource controller feat(place-order): Corrects typo, adds point to end of message feat(place-order): Changes idc-bnc info into a warning one feat(place-order): Moves down warning box feat(place-order): Updates some cosmetics css fix(place-order): Removes IDC-BNC from Kasli connectors count feat(place-order): Displays warning on hover warning icon feat(place-order): Updates design hover item in listing feat(place-order): Updates price estimate feat(place-order): Displays warning in summary feat(place-order): Allows to select item feat(place-order): Allows to send request quote through client email fix(place-order): Allows to click on remove inside summary list feat(place-order): Adds btn remove for each cards inside crate feat(place-order): Builds fix(place-order): Updates icon warning fix(place-order): Corrects recipient email address LOL, forgot to remove mine haha fix(place-order): Removes typo (kasli double) fix(place-order): Removes num from email title subject fix(place-order): Adds warning resources to mirny, zotino Also updates message text feat(place-order): Adds clocker counter feat(place-order): Uses warning for id68 instead of reminder feat(place-order): Adds crate type into the json feat(place-order): Adds btn order hardware in homepage refactor(place-order): Cleans a bit fix(place-order): Improves a bit ux remove item from crate fix(place-order): Improves a bit ux remove item from crate feat(place-order): Builds fix(place-order): Uses cursor pointer on remove button fix(place-order): Corrects card need a resources card chore(place-order): Removes call to ap.js fix(place-order): Tries with fixed height on warning icon fix(place-order): Adds fixed height to other element fix(place-order): Tries to remove up container height to let flex to its job fix(place-order): Removes .trim call which block multiline and augments row to 5 feat(place-order): Builds fix(place-order): Adds min-height for the crate
2019-10-02 12:16:07 +08:00
const shop_data = {
currentItemHovered: null,
currentMode: 'rack',
crateModeSlots: {
rack: 21,
desktop: 10,
},
crateRules: {
maxSlot: {
type: 'crate',
icon: '/shop/icon-reminder.svg',
name: 'Crate',
message: 'You have reach the maximum number of slots allowed for this crate. Consider removing cards.',
},
},
crateModeItems: [{
id: 'rack',
name: 'Rack mountable crate',
price: 1000,
currency: 'USD',
}, {
id: 'desktop',
name: 'Desktop crate',
price: 2000,
currency: 'USD',
}],
items: {
/* keys are also ids, avoid changing them */
'kasli': {
id: 'kasli',
name: 'Kasli',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_kasli.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'big',
type: 'kasli',
hp: 8,
nbrSlotMin: 0,
nbrSlotMax: 8,
nbrCurrentSlot: 0,
nbrClockMax: 4,
nbrCurrentClock: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
maxSlot: {
type: 'kasli-max-slot',
icon: '/shop/icon-reminder.svg',
name: 'Kasli',
message: 'Add a backplane adapter to extend EEM connectors to 12 at an extra charge.',
},
maxSlotWarning: {
type: 'kasli-max-slot-warning',
icon: '/shop/icon-warning.svg',
name: 'Kasli',
message: 'Insufficient EEM connectors.',
},
maxClock: {
type: 'kasli-max-clock',
icon: '/shop/icon-reminder.svg',
name: 'Kasli',
message: 'Insufficient clock connectors. Kasli has at most 4 clock connections.',
},
maxClockWarning: {
type: 'kasli-max-clock-warning',
icon: '/shop/icon-warning.svg',
name: 'Kasli',
message: 'Insufficient clock connectors.',
},
follow: {
type: 'kasli-follow',
icon: '/shop/icon-reminder.svg',
name: 'Kasli',
message: 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.',
},
},
},
'kasli-backplane': {
id: 'kasli-backplane',
name: 'Kasli',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_kasli-with-backplane.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'big',
type: 'kasli-backplane',
hp: 8,
nbrSlotMin: 0,
nbrSlotMax: 12,
nbrCurrentSlot: 0,
nbrClockMax: 4,
nbrCurrentClock: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
maxSlot: {
type: 'kasli-wb-max-slot',
icon: '/shop/icon-reminder.svg',
name: 'Kasli w/backplane',
message: 'Insufficient EEM connectors.',
},
maxSlotWarning: {
type: 'kasli-wb-max-slot-warning',
icon: '/shop/icon-warning.svg',
name: 'Kasli',
message: 'Insufficient EEM connectors',
},
maxClock: {
type: 'kasli-wb-max-clock',
icon: '/shop/icon-reminder.svg',
name: 'Kasli w/backplane',
message: 'Insufficient clock connectors. Kasli has at most 4 clock connections.',
},
maxClockWarning: {
type: 'kasli-wb-max-clock-warning',
icon: '/shop/icon-warning.svg',
name: 'Kasli',
message: 'Insufficient clock connectors.',
},
follow: {
type: 'kasli-wb-follow',
icon: '/shop/icon-reminder.svg',
name: 'Kasli w/backplane',
message: 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.',
},
},
},
'bnc-dio': {
id: 'bnc-dio',
name: 'BNC-DIO',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_BNC-DIO.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'big',
type: null,
hp: 8,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
resources: {
type: 'bnc-dio',
icon: '/shop/icon-warning.svg',
name: 'BNC-DIO',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
'eem-octal': {
id: 'eem-octal',
name: 'SMA-DIO',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_EEM-Octal.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: null,
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
resources: {
type: 'eem-octal',
icon: '/shop/icon-warning.svg',
name: 'SMA-DIO',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
'eem-16x': {
id: 'eem-16x',
name: 'RJ45-DIO',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_EEM-16x.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: null,
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 2,
clockOccupied: 0,
rules: {
resources: {
type: 'eem-16x',
icon: '/shop/icon-warning.svg',
name: 'RJ45-DIO',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
'urukul': {
id: 'urukul',
name: 'Urukul',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Urukul.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: 'urukul',
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 2,
clockOccupied: 1,
rules: {
connectors: {
type: 'urukul',
icon: '/shop/icon-reminder.svg',
name: 'Urukul',
message: 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.',
},
resources: {
type: 'urukul',
icon: '/shop/icon-warning.svg',
name: 'Urukul',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
'zotino': {
id: 'zotino',
name: 'Zotino',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_zotino.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
'4 EEM on backplane extension',
],
size: 'small',
type: 'zotino',
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 4,
nbrCurrentSlot: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
maxSlot: {
type: 'zotino',
icon: '/shop/icon-reminder.svg',
name: 'Zotino',
message: 'Zotino has at most 4 IDC-BNC adapters.',
},
maxSlotWarning: {
type: 'zotino-max-slot-warning',
icon: '/shop/icon-warning.svg',
name: 'Zotino',
message: 'Insufficient connectors.',
},
resources: {
type: 'zotino',
icon: '/shop/icon-warning.svg',
name: 'Zotino',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
'idc-bnc-adapter': {
id: 'idc-bnc-adapter',
name: 'IDC-BNC',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_IDC-BNC-adapter.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
],
size: 'big',
type: 'idc-bnc',
hp: 8,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
wrong: {
type: 'idc-bnc',
icon: '/shop/icon-warning.svg',
name: 'IDC-BNC',
message: 'Should be after a Zotino or a HD68-IDC or with another IDC-BNC.',
}
},
},
'hd68-idc-adapter': {
id:'hd68-idc-adapter',
name: 'HD68-IDC',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_HD68.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: 'hd68',
hp: 4,
nbrSlotMin: 1,
nbrSlotMax: 4,
nbrCurrentSlot: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
rules: {
minAdapter: {
type: 'hd68-min-adapter',
icon: '/shop/icon-warning.svg',
name: 'HD68-IDC',
message: 'Need at least one IDC-BNC Adapter at its right.',
},
maxSlot: {
type: 'hd68-max-slot',
icon: '/shop/icon-reminder.svg',
name: 'HD68-IDC',
message: 'HD68-IDC has at most 4 IDC-BNC adapters.',
},
maxSlotWarning: {
type: 'hd68-max-slot-warning',
icon: '/shop/icon-warning.svg',
name: 'HD68-IDC',
message: 'Insufficient connectors.',
},
},
},
'novo': {
id: 'novo',
name: 'Novo',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Novo.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'big',
type: 'novo',
hp: 8,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 2,
clockOccupied: 0,
rules: {
connectors: {
type: 'novo',
icon: '/shop/icon-reminder.svg',
name: 'Novo',
message: 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.',
},
resources: {
type: 'novo',
icon: '/shop/icon-warning.svg',
name: 'Novo',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
}
},
'koster': {
id: 'koster',
name: 'Koster',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Koster.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: 'koster',
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 3,
clockOccupied: 0,
rules: {
connectors: {
type: 'koster',
icon: '/shop/icon-reminder.svg',
name: 'Koster',
message: 'This configuration uses 3 EEM connectors. If you prefer to use 1 or 2 EEM connectors, please inform us by leaving an additional note.',
},
resources: {
type: 'koster',
icon: '/shop/icon-warning.svg',
name: 'Koster',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
}
},
'clocker': {
id: 'clocker',
name: 'Clocker',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Clocker.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: 'clocker',
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 6,
slotOccupied: 1,
clockOccupied: 1,
rules: {
maxClock: {
type: 'clocker-max-clock',
icon: '/shop/icon-reminder.svg',
name: 'Clocker',
message: 'Clocker has at most 6 clock connections.',
},
maxClockWarning: {
type: 'clocker-max-clock-warning',
icon: '/shop/icon-warning.svg',
name: 'Clocker',
message: 'Insufficient clock connectors.',
},
},
},
'stabiliser': {
id: 'stabiliser',
name: 'Stabilizer',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Stabiliser.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: null,
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 0,
},
'mirny': {
id: 'mirny',
name: 'Mirny',
price: 1000,
currency: 'USD',
image: '/shop/graphic-02_Mirny.svg',
specs: [
'Artix 7 100T FPGA',
'4GB DDR3 SDRAM',
'128MB SPI Flash',
'3 SFP 6GB/s slots',
'1 SATA 6GB/s connector',
'Clock recovery and distribution',
'4 MMCX clock outputs',
'4 channel USB connectivity',
'I2C tree to EEMs via USB and FPGA',
'8 EEM connectors on board',
'4 EEM on backplane extension',
],
size: 'small',
type: null,
hp: 4,
nbrSlotMin: 0,
nbrSlotMax: 0,
nbrClockMax: 0,
slotOccupied: 1,
clockOccupied: 1,
rules: {
resources: {
type: 'mirny',
icon: '/shop/icon-warning.svg',
name: 'Mirny',
message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
},
},
},
},
columns: {
/***
* backlog is the column containing all items on left aside,
* name should not change
*/
'backlog': {
id: 'backlog',
title: 'Backlog',
/* itemIds define items order - change order to suit your need */
itemIds: [
'kasli',
'kasli-backplane',
'bnc-dio',
'eem-octal',
'eem-16x',
'urukul',
'zotino',
'idc-bnc-adapter',
'hd68-idc-adapter',
'novo',
'koster',
'clocker',
'stabiliser',
'mirny'
],
},
'cart': {
id: 'cart',
title: 'Cart',
items: [],
itemsData: {},
},
},
rules: {},
};
window.shop_data = shop_data;