web2019/static/js/shop_data.js
sovanna e025f66f3e 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-11-06 14:49:00 +08:00

676 lines
18 KiB
JavaScript

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;