Hub (#10934)
* [WIP]Hub
* [listing] Show items, users and item_groups
* Show filters
* [start] cart, api for rfq and opp
* rfq working
* [wip] keys
* wip quotes
* [hub] register/unregister
* [hub] rename password to access_token, remove passed company field
* [hub] publishing cases, api call wrapper
* [hub] add and remove fields working
* [hub] fix flags, update on client save working
* [hub] new hub page, client item CUD at hub working
* listing, standard rate, local site hack
* item listing, item page, search, back to home
* [hub] implement hub company
* [hub] company filter
* [hub] basic rfq-ing, item page cleanup
* categories wip
* [hub] use get_doc_before_save()
* [hub] send opportunity message to hub, api to make locally
* [hub] enqueueing in hub api request wrapper
* cleanup
* [hub] refactor shopping cart's product.py to reuse
* sync dynamic item fields daily
* Scheduler heartbeat check
* [wip] hub categories
* [hub] wip enqueued callbacks
* [hub] outgoing messages, fixing callback loop
* [hub] bug: callback save after primary save
* [hub] pricing, stock, currency
* [hub] replace send_hub_request with make_and_enqueue
* add hub.less, refactor code
* Remove template html files, add styling for hub item cards
* fix paging
* add breadcrumb
* Add sidebar
* [hub] add company page, change country
* [hub] order_by filters
* [hub] make hub category a tree
* [hub] enqueue batched item enqueueing
* [hub] requested products page
* [minor]
* update hub url
* [fix] url
* [fix] more reform
* fix recursion
* [hub] data migration plans as jsons
* Hub register, create data connector, sync with run
* [add] user registration by session user
* Removed hub_message
* Remove sync code from hub_settings
* Remove hub methods from item.py
* Update Hub Sync plan
* Hub unregister
* Update Hub connector on reregister
* Dont delete Hub Connector on unregister
* Enable hub on success response
* Add new hub whitelisted methods
* [hub] list working
* Hub register from hub page
* [hub] Add hub logo in desk icon, link to page
* [hub] hide page head on empty state
* [hub] make rfq
* [hub] push opportunity doc, poll for opportunity docs
* add fields to item mapping
* update hub mappings
* Make RFQ
* [hub] item, home routing
* Make rfq and send opportunity refactor
* [hub][fix] remote lead data
* images passed as base64
* set default company on register
* Revert "images passed as base64"
This reverts commit 0b033a5fb7072b2d39a1b87a47dc41e7af707bb4.
* Add sync to hub page
* Prompt for publish items to hub
* add post process to hub document to lead
* Rename Hub document to Hub message, create opportunity in post process
2017-10-05 05:47:30 +00:00
|
|
|
@import "../../../../frappe/frappe/public/less/variables.less";
|
|
|
|
|
2018-07-23 13:14:46 +00:00
|
|
|
body[data-route^="marketplace/"] {
|
|
|
|
.layout-side-section {
|
|
|
|
padding-top: 25px;
|
|
|
|
padding-right: 25px;
|
2018-01-25 03:48:32 +00:00
|
|
|
}
|
|
|
|
|
2018-07-23 06:25:07 +00:00
|
|
|
.layout-main-section {
|
|
|
|
border: none;
|
|
|
|
font-size: @text-medium;
|
2018-07-23 13:14:46 +00:00
|
|
|
padding-top: 25px;
|
2018-07-23 06:25:07 +00:00
|
|
|
|
|
|
|
@media (max-width: @screen-xs) {
|
|
|
|
padding-left: 20px;
|
|
|
|
padding-right: 20px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-07-25 05:28:56 +00:00
|
|
|
input, textarea {
|
|
|
|
font-size: @text-medium;
|
|
|
|
}
|
|
|
|
|
2018-07-25 14:32:12 +00:00
|
|
|
.btn-primary {
|
|
|
|
background-color: #89da28;
|
|
|
|
border-color: #61ca23;
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-primary:hover {
|
|
|
|
background-color: #61ca23;
|
|
|
|
border-color: #59b81c;
|
|
|
|
}
|
|
|
|
|
2018-07-30 03:47:14 +00:00
|
|
|
.progress-bar {
|
|
|
|
background-color: #89da28;
|
|
|
|
}
|
|
|
|
|
2018-07-26 02:36:21 +00:00
|
|
|
.subpage-title.flex {
|
|
|
|
align-items: flex-start;
|
|
|
|
justify-content: space-between;
|
|
|
|
}
|
|
|
|
|
2018-07-30 03:47:14 +00:00
|
|
|
.subpage-message {
|
|
|
|
p {
|
|
|
|
padding: 10px 15px;
|
|
|
|
margin-top: 0px;
|
|
|
|
margin-bottom: 15px;
|
|
|
|
background-color: #f9fbf7;
|
|
|
|
justify-content: space-between;
|
|
|
|
}
|
|
|
|
|
|
|
|
.octicon-x {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-07-23 06:25:07 +00:00
|
|
|
.hub-card {
|
|
|
|
margin-bottom: 25px;
|
2018-07-30 03:47:14 +00:00
|
|
|
position: relative;
|
|
|
|
border: 1px solid @border-color;
|
2018-07-23 06:25:07 +00:00
|
|
|
border-radius: 4px;
|
|
|
|
overflow: hidden;
|
|
|
|
cursor: pointer;
|
2018-07-23 13:14:46 +00:00
|
|
|
|
2018-07-28 10:44:22 +00:00
|
|
|
&:hover .hub-card-overlay {
|
2018-07-23 13:14:46 +00:00
|
|
|
display: block;
|
|
|
|
}
|
2018-07-28 10:44:22 +00:00
|
|
|
}
|
2018-07-25 14:32:12 +00:00
|
|
|
|
2018-07-28 10:44:22 +00:00
|
|
|
.hub-card.is-local {
|
2018-07-25 14:32:12 +00:00
|
|
|
&.active {
|
|
|
|
.hub-card-header {
|
|
|
|
background-color: #f4ffe5;
|
|
|
|
}
|
|
|
|
|
|
|
|
.octicon-check {
|
|
|
|
display: inline;
|
|
|
|
}
|
|
|
|
}
|
2018-07-28 10:44:22 +00:00
|
|
|
|
|
|
|
.octicon-check {
|
|
|
|
display: none;
|
|
|
|
position: absolute;
|
|
|
|
font-size: 20px;
|
|
|
|
right: 15px;
|
|
|
|
top: 50%;
|
|
|
|
transform: translateY(-50%);
|
|
|
|
}
|
2018-07-23 06:25:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.hub-card-header {
|
2018-07-28 10:44:22 +00:00
|
|
|
position: relative;
|
2018-07-23 06:25:07 +00:00
|
|
|
padding: 12px 15px;
|
|
|
|
height: 60px;
|
2018-07-23 13:14:46 +00:00
|
|
|
border-bottom: 1px solid @border-color;
|
2018-07-23 06:25:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.hub-card-body {
|
2018-07-23 13:14:46 +00:00
|
|
|
position: relative;
|
2018-07-23 06:25:07 +00:00
|
|
|
height: 200px;
|
|
|
|
}
|
|
|
|
|
2018-07-28 10:44:22 +00:00
|
|
|
.hub-card-overlay {
|
2018-07-23 13:14:46 +00:00
|
|
|
display: none;
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2018-08-01 08:05:19 +00:00
|
|
|
background-color: rgba(0, 0, 0, 0.05);
|
2018-07-23 13:14:46 +00:00
|
|
|
}
|
|
|
|
|
2018-07-28 10:44:22 +00:00
|
|
|
.hub-card-overlay-body {
|
|
|
|
position: relative;
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-card-overlay-button {
|
|
|
|
position: absolute;
|
2018-07-25 14:32:12 +00:00
|
|
|
}
|
|
|
|
|
2018-07-23 06:25:07 +00:00
|
|
|
.hub-card-image {
|
|
|
|
min-width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-search-container {
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
|
|
|
input {
|
|
|
|
height: 32px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-sidebar {
|
|
|
|
padding-top: 25px;
|
|
|
|
padding-right: 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-sidebar-group {
|
|
|
|
margin-bottom: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-sidebar-item {
|
|
|
|
padding: 5px 8px;
|
|
|
|
margin-bottom: 3px;
|
|
|
|
border-radius: 4px;
|
|
|
|
border: 1px solid transparent;
|
|
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
&.active, &:hover:not(.is-title) {
|
|
|
|
border-color: @border-color;
|
|
|
|
}
|
2018-01-25 03:48:32 +00:00
|
|
|
}
|
|
|
|
|
2018-07-23 13:14:46 +00:00
|
|
|
.hub-item-image {
|
|
|
|
border: 1px solid @border-color;
|
|
|
|
border-radius: 4px;
|
|
|
|
overflow: hidden;
|
|
|
|
height: 200px;
|
|
|
|
width: 200px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
2018-07-28 06:55:14 +00:00
|
|
|
.hub-item-skeleton-image {
|
|
|
|
border-radius: 4px;
|
|
|
|
background-color: @light-bg;
|
|
|
|
overflow: hidden;
|
|
|
|
height: 200px;
|
|
|
|
width: 200px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-skeleton {
|
|
|
|
background-color: @light-bg;
|
|
|
|
color: @light-bg;
|
|
|
|
max-width: 500px;
|
|
|
|
}
|
|
|
|
|
2018-07-23 13:14:46 +00:00
|
|
|
.hub-item-seller img {
|
|
|
|
width: 50px;
|
|
|
|
height: 50px;
|
|
|
|
border-radius: 4px;
|
|
|
|
border: 1px solid @border-color;
|
|
|
|
}
|
2018-07-25 05:28:56 +00:00
|
|
|
|
|
|
|
.register-title {
|
|
|
|
font-size: @text-regular;
|
|
|
|
}
|
|
|
|
|
|
|
|
.register-form {
|
|
|
|
border: 1px solid @border-color;
|
|
|
|
border-radius: 4px;
|
|
|
|
padding: 15px 25px;
|
|
|
|
}
|
|
|
|
|
2018-07-26 11:54:33 +00:00
|
|
|
.empty-state {
|
2018-07-26 13:52:58 +00:00
|
|
|
height: 500px;
|
2018-07-26 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
2018-07-25 05:28:56 +00:00
|
|
|
.form-container {
|
|
|
|
.frappe-control {
|
|
|
|
max-width: 100% !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-message {
|
|
|
|
padding-top: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
border-bottom: none;
|
|
|
|
}
|
2018-07-28 08:27:16 +00:00
|
|
|
|
|
|
|
.hub-item-container {
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hub-item-review-container {
|
|
|
|
margin-top: calc(30vh);
|
|
|
|
}
|
2018-08-01 08:05:19 +00:00
|
|
|
|
|
|
|
.hub-item-dropdown {
|
|
|
|
margin-top: 20px;
|
|
|
|
}
|
2018-08-01 13:49:53 +00:00
|
|
|
|
|
|
|
/* messages page */
|
|
|
|
|
|
|
|
.message-list-item {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
padding: 8px 12px;
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
&:not(.active) {
|
|
|
|
filter: grayscale(1);
|
|
|
|
color: @text-muted;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background-color: @light-bg;
|
|
|
|
}
|
|
|
|
|
|
|
|
.list-item-left {
|
|
|
|
width: 30px;
|
|
|
|
border-radius: 4px;
|
|
|
|
overflow: hidden;
|
|
|
|
margin-right: 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.list-item-body {
|
|
|
|
font-weight: bold;
|
|
|
|
padding-bottom: 1px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.message-list {
|
|
|
|
overflow: scroll;
|
|
|
|
}
|
|
|
|
|
|
|
|
.message-area {
|
|
|
|
border-radius: 4px;
|
|
|
|
justify-content: space-between;
|
|
|
|
height: calc(100vh - 220px);
|
|
|
|
}
|
2018-07-23 13:14:46 +00:00
|
|
|
}
|