diff --git a/content/experiment-control/sinara-core.md b/content/experiment-control/sinara-core.md index 3cd6729..698bd5f 100644 --- a/content/experiment-control/sinara-core.md +++ b/content/experiment-control/sinara-core.md @@ -46,6 +46,10 @@ For simple TTL signals, we offer I/O cards in the EEM form factor with 8 channel More information: BNC card SMA card +

+ 2118/2128 BNC/SMA-TTL datasheet +

+ {% end %} {% layout_text_img(src="images/DIOMCX@2x.png", popup="images/origin/dio_mcx.jpg", alt="", textleft=true, shadow=false) %} @@ -56,6 +60,10 @@ When higher densities or faster speeds are required, the Sinara 2238 MCX card is More information +

+ 2238 MCX-TTL datasheet +

+ {% end %} @@ -70,6 +78,10 @@ Each RJ45 supplies 4 LVDS DIOs. The direction (input/output) is individually sel More information +

+ 2245 LVDS-TTL datasheet +

+ {% end %} @@ -123,6 +135,10 @@ In regular mode, various DDS features are supported, including frequency, phase More information +

+ 4410/4412 Urukul datasheet +

+ {% end %} @@ -163,6 +179,10 @@ It is also possible to connect the Zotino using a HD68 cable to an external crat More information +

+ 5432 Zotino datasheet +

+ {% end %} diff --git a/sass/css/_base.scss b/sass/css/_base.scss index b1ebf4a..d6cfe58 100644 --- a/sass/css/_base.scss +++ b/sass/css/_base.scss @@ -233,4 +233,13 @@ a[aria-expanded='true']:after { border: 1px solid $btn-primary-2 !important; background-color: transparent !important; color: $btn-primary-2 !important; +} + +.doc-icon { + background: url('../images/pdf-icon.png'); + height: 24px; + width: 24px; + margin-right: 12px; + display: block; + float: left; } \ No newline at end of file diff --git a/sass/css/_shop.scss b/sass/css/_shop.scss index b374be0..2382629 100644 --- a/sass/css/_shop.scss +++ b/sass/css/_shop.scss @@ -142,6 +142,21 @@ button { padding: .3rem 0; } } + + .ds { + a { + color: $link-primary-dark; + text-decoration: underline; + + &:hover { + color: $link-secondary-dark; + text-decoration: none; + } + } + font-size: .8rem; + margin: 0; + padding-left: 0px; + } } } diff --git a/sass/css/styles.scss b/sass/css/styles.scss index 425c42e..4f6ddc2 100644 --- a/sass/css/styles.scss +++ b/sass/css/styles.scss @@ -21,6 +21,9 @@ $color-secondary: #1a6d93 !default; $btn-primary-2: #715ec7 !default; $btn-secondary-2: #a88cfd !default; +$link-primary-dark: #c2affd !default; +$link-secondary-dark: #cec2ea !default; + $color-hover: #eae7f7 !default; // Import partials. diff --git a/static/docs/sinara-datasheets/2118-2128.pdf b/static/docs/sinara-datasheets/2118-2128.pdf new file mode 100644 index 0000000..2987fc5 Binary files /dev/null and b/static/docs/sinara-datasheets/2118-2128.pdf differ diff --git a/static/docs/sinara-datasheets/2238.pdf b/static/docs/sinara-datasheets/2238.pdf new file mode 100644 index 0000000..31a3845 Binary files /dev/null and b/static/docs/sinara-datasheets/2238.pdf differ diff --git a/static/docs/sinara-datasheets/2245.pdf b/static/docs/sinara-datasheets/2245.pdf new file mode 100644 index 0000000..27ba69f Binary files /dev/null and b/static/docs/sinara-datasheets/2245.pdf differ diff --git a/static/docs/sinara-datasheets/4410-4412.pdf b/static/docs/sinara-datasheets/4410-4412.pdf new file mode 100644 index 0000000..76c09b7 Binary files /dev/null and b/static/docs/sinara-datasheets/4410-4412.pdf differ diff --git a/static/docs/sinara-datasheets/5432.pdf b/static/docs/sinara-datasheets/5432.pdf new file mode 100644 index 0000000..0c42e63 Binary files /dev/null and b/static/docs/sinara-datasheets/5432.pdf differ diff --git a/static/images/pdf-icon.png b/static/images/pdf-icon.png new file mode 100644 index 0000000..3d90f2c Binary files /dev/null and b/static/images/pdf-icon.png differ diff --git a/static/js/shop.jsx b/static/js/shop.jsx index 2ec3914..ffc5000 100644 --- a/static/js/shop.jsx +++ b/static/js/shop.jsx @@ -415,6 +415,8 @@ class ProductItem extends React.PureComponent { currency: PropTypes.string.isRequired, image: PropTypes.string.isRequired, specs: PropTypes.array, + datasheet_file: PropTypes.string, + datasheet_name: PropTypes.string, onClickAddItem: PropTypes.func, }; } @@ -441,6 +443,8 @@ class ProductItem extends React.PureComponent { currency, image, specs, + datasheet_file, + datasheet_name, } = this.props; const render_specs = (specs && specs.length > 0 && ( @@ -451,6 +455,15 @@ class ProductItem extends React.PureComponent { )); + const render_datasheet_link = (datasheet_file && datasheet_name && ( +
+ + + {datasheet_name} + +
+ )); + return (
@@ -463,6 +476,8 @@ class ProductItem extends React.PureComponent {
{`${currency} ${formatMoney(price)}`}
{render_specs} + + {render_datasheet_link}
@@ -1513,6 +1528,8 @@ class Backlog extends React.PureComponent { currency={currency} image={`/images/${item.image}`} specs={item.specs} + datasheet_file={item.datasheet_file} + datasheet_name={item.datasheet_name} onClickAddItem={onClickAddItem} > ); diff --git a/static/js/shop.min.js b/static/js/shop.min.js index d4e6f9e..a1a4bb2 100644 --- a/static/js/shop.min.js +++ b/static/js/shop.min.js @@ -452,6 +452,8 @@ var ProductItem = /*#__PURE__*/function (_React$PureComponent2) { currency: PropTypes.string.isRequired, image: PropTypes.string.isRequired, specs: PropTypes.array, + datasheet_file: PropTypes.string, + datasheet_name: PropTypes.string, onClickAddItem: PropTypes.func }; } @@ -487,12 +489,23 @@ var ProductItem = /*#__PURE__*/function (_React$PureComponent2) { price = _this$props2.price, currency = _this$props2.currency, image = _this$props2.image, - specs = _this$props2.specs; + specs = _this$props2.specs, + datasheet_file = _this$props2.datasheet_file, + datasheet_name = _this$props2.datasheet_name; var render_specs = specs && specs.length > 0 && /*#__PURE__*/React.createElement("ul", null, specs.map(function (spec, index) { return /*#__PURE__*/React.createElement("li", { key: index }, spec); })); + var render_datasheet_link = datasheet_file && datasheet_name && /*#__PURE__*/React.createElement("div", { + className: "ds" + }, /*#__PURE__*/React.createElement("span", { + "class": "doc-icon" + }), /*#__PURE__*/React.createElement("a", { + href: datasheet_file, + target: "_blank", + rel: "noopener noreferrer" + }, datasheet_name)); return /*#__PURE__*/React.createElement("section", { className: "productItem" }, /*#__PURE__*/React.createElement("div", { @@ -503,7 +516,7 @@ var ProductItem = /*#__PURE__*/function (_React$PureComponent2) { } }, name), name_codename ? /*#__PURE__*/React.createElement("p", null, name_codename) : null, /*#__PURE__*/React.createElement("div", { className: "price" - }, "".concat(currency, " ").concat(formatMoney(price))), render_specs), /*#__PURE__*/React.createElement("div", { + }, "".concat(currency, " ").concat(formatMoney(price))), render_specs, render_datasheet_link), /*#__PURE__*/React.createElement("div", { className: "content" }, /*#__PURE__*/React.createElement("button", { onClick: this.handleOnClickAddItem.bind(this, index, true) @@ -1552,6 +1565,8 @@ var Backlog = /*#__PURE__*/function (_React$PureComponent11) { currency: currency, image: "/images/".concat(item.image), specs: item.specs, + datasheet_file: item.datasheet_file, + datasheet_name: item.datasheet_name, onClickAddItem: onClickAddItem }); }); diff --git a/static/js/shop_data.js b/static/js/shop_data.js index b212823..d8d93c4 100644 --- a/static/js/shop_data.js +++ b/static/js/shop_data.js @@ -230,6 +230,8 @@ const shop_data = { 'Minimum pulse width: 3ns.', 'Max 150 MHz toggle rate with 50% duty cycle.' ], + datasheet_file: '/docs/sinara-datasheets/2118-2128.pdf', + datasheet_name: '2118/2128 BNC/SMA-TTL datasheet', size: 'big', type: null, hp: 8, @@ -257,6 +259,8 @@ const shop_data = { specs: [ 'Same as above, but with SMA connectors.' ], + datasheet_file: '/docs/sinara-datasheets/2118-2128.pdf', + datasheet_name: '2118/2128 BNC/SMA-TTL datasheet', size: 'small', type: null, hp: 4, @@ -288,6 +292,8 @@ const shop_data = { 'No galvanic isolation.', 'Higher speed and lower jitter than the isolated SMA and BNC DIO cards.' ], + datasheet_file: '/docs/sinara-datasheets/2238.pdf', + datasheet_name: '2238 MCX-TTL datasheet', size: 'small', type: null, hp: 4, @@ -319,6 +325,8 @@ const shop_data = { 'No galvanic isolation.', 'Higher speed and lower jitter than the isolated SMA and BNC DIO cards.' ], + datasheet_file: '/docs/sinara-datasheets/2245.pdf', + datasheet_name: '2245 LVDS-TTL datasheet', size: 'small', type: null, hp: 4, @@ -354,6 +362,8 @@ const shop_data = { 'AD9910 and AD9912 cards can be used at the same time in the same crate.', 'External 5W power amplifier is available separately, leave us a note if interested.' ], + datasheet_file: '/docs/sinara-datasheets/4410-4412.pdf', + datasheet_name: '4410/4412 Urukul datasheet', size: 'small', type: 'urukul', hp: 4, @@ -432,6 +442,8 @@ const shop_data = { 'Channels can also be broken out to BNC or SMA using IDC-BNC, IDC-SMA or IDC-MCX cards.', 'DAC temperature can be stabilized using the Sinara 8451 Thermostat (sold separately).' ], + datasheet_file: '/docs/sinara-datasheets/5432.pdf', + datasheet_name: '5432 Zotino datasheet', size: 'small', type: 'zotino', hp: 4,