From 7b25645e0a0dfad08c9471f749b1e63e9717572d Mon Sep 17 00:00:00 2001 From: gitea Date: Tue, 1 Apr 2025 17:51:55 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20aus=20dem=20alten=20vvow=5Fpos=20hinz?= =?UTF-8?q?ugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __manifest__.py | 1 + static/src/css/pos.css | 2533 ++++++++++++++++++ static/src/js/debug.js | 4 +- static/src/xml/ows_briefing_details.xml | 362 +++ static/src/xml/ows_briefing_details_edit.xml | 224 ++ static/src/xml/ows_pos_order_selector.xml | 70 + views/assets.xml | 3 + 7 files changed, 3195 insertions(+), 2 deletions(-) create mode 100644 static/src/css/pos.css create mode 100644 static/src/xml/ows_briefing_details.xml create mode 100644 static/src/xml/ows_briefing_details_edit.xml create mode 100644 static/src/xml/ows_pos_order_selector.xml diff --git a/__manifest__.py b/__manifest__.py index a149498..e3eb95b 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -17,6 +17,7 @@ ], 'qweb': [ 'static/src/xml/partner_access_popup.xml', + 'static/src/xml/ows_pos_order_selector.xml', ], 'installable': True, 'assets': { diff --git a/static/src/css/pos.css b/static/src/css/pos.css new file mode 100644 index 0000000..f5a32f2 --- /dev/null +++ b/static/src/css/pos.css @@ -0,0 +1,2533 @@ +/* --- Fonts --- */ + +@font-face{ + font-family: 'Inconsolata'; + src: url(../fonts/Inconsolata.otf); +} + +/* --- Styling of OpenERP Elements --- */ +.ui-dialog, .modal-dialog { + background: white; + padding: 10px; + border-radius: 3px; + font-family: sans-serif; + box-shadow: 0px 10px 40px rgba(0,0,0,0.4); + position: absolute; + top: 30px; + height: 400px; + overflow: scroll; +} +.ui-dialog button, .modal-dialog button { + padding: 8px; + min-width: 48px; +} +.ui-dialog .ui-icon-closethick{ + float: right; +} +div.modal.in { + position: absolute; + background: white; + padding: 20px; + box-shadow: 0px 10px 20px black; + border-radius: 3px; + max-width: 600px; + max-height: 400px; + margin-top: -200px; + margin-left: -300px; + top: 50%; + left: 50%; +} + +/* --- Generic Restyling and Resets --- */ + +html { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + font-family: sans-serif; +} + +table { + border-spacing: 0px; + border-collapse: collapse; +} +td { + padding: 0px; +} + +.oe_hidden{ + display: none !important; +} +.oe_invisible{ + visibility: hidden !important; +} +.clearfix:after { + content:" "; + display: block; + visibility: hidden; + line-height: 0; + height: 0; + clear: both; +} + + +.pos input::-webkit-outer-spin-button, +.pos input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.pos button{ + box-shadow: none; + outline: none; + border: none; + font-family: 'Lato'; +} +.pos button:hover{ + background: default; +} +.pos textarea { + font-family: "Lato"; + font-size: 20px; + color: #444; + padding: 10px; + border-radius: 3px; + border: none; + box-shadow: 0px 0px 0px 1px rgb(220,220,220) inset; +} +.pos textarea:focus { + outline: none; + box-shadow: 0px 0px 0px 3px #6EC89B; +} + + +.pos .oe_hidden{ + display: none !important; +} + +.pos ul, .pos li { + margin: 0; + padding: 0; + list-style-type: none; +} + +.pos { + direction: ltr; + padding: 0; + margin: 0; + background-color: #f0eeee; + font-family: "Lato","Lucida Grande", Helvetica, Verdana, Arial; + color: #555555; + font-size: 12px; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + text-shadow: none; + overflow: hidden; +} + +/* ********* The black loading screen ********* */ + +.pos .loader{ + background-color: #222; + position:absolute; + left:0px; + top:0px; + width:100%; + height:100%; + z-index: 999; + text-align: center; + font-family: Lato; + color: #555555; +} + +.pos .loader-feedback{ + width: 400px; + height: 160px; + margin: -60px -200px; + position: absolute; + left: 50%; top: 50%; + text-align: center; +} +.pos .loader-feedback h1{ + font-weight: 300; +} +.pos .loader-feedback .progressbar{ + background: rgb(73,73,73); + height: 1px; +} +.pos .loader-feedback .progressbar > .progress{ + height: 100%; + background: white; + width: 0%; + box-shadow: 0px 0px 5px rgba(255,255,255,0.35); +} +.pos .loader-feedback .button{ + display: inline-block; + margin: 25px auto; + line-height: 42px; + padding: 0px 16px; + font-size: 20px; + font-weight: 300; + border: solid 1px; + border-radius: 5px; + cursor: pointer; +} +.pos .loader-feedback .button:active{ + color: #222; + background: #555555; +} +/* ********* Generic Layout Constructs ********* */ + +.pos .window{ + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + display: table; + border: none; + overflow: hidden; +} +.pos .window .subwindow{ + display: table-row; + width: 100%; + height: 100%; +} +.pos .window .subwindow.collapsed{ + height: 0px; +} +.pos .window .subwindow-container .collapsed{ + height: 0px; +} +.pos .subwindow .subwindow-container{ + display: table-cell; + position: relative; +} +/* firefox seems to ignore the relative positionning of the subwindow-container + * putting this inside subwindow-container fixes it. + */ +.pos .subwindow .subwindow-container-fix{ + height: 100%; + position: relative; +} + +.pos .clientlist-screen .window, +.pos .clientlist-screen .full-content .subwindow{ + display: block; +} +.pos .clientlist-screen .full-content .subwindow-container{ + display: block; + height: 100%; +} +.pos .clientlist-screen .full-content .subwindow.collapsed, +.pos .clientlist-screen .full-content .subwindow-container.collapsed{ + height: auto; +} + +/* ---- Scrollers ----- */ + +.pos .scroller-container{ + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; +} +.pos .scroller{ + width: 100%; + height: 100%; + overflow: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +.pos .scroller.horizontal{ + overflow-y: hidden; + overflow-x: auto; +} +.pos .scroller-content{ + -webkit-transform: translate3d(0,0,0); +} +.pos .scroller-container ::-webkit-scrollbar{ + width: 10px; + height: 10px; +} +.pos .scroller-container ::-webkit-scrollbar-track{ + background: rgb(224,224,224); + border-left: solid 1px rgb(200,200,200); + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pos .scroller-container ::-webkit-scrollbar-thumb{ + background: rgb(168,168,168); + min-height: 30px; +} + +/* ********* Generic element styling ********* */ + +.pos a { + text-decoration: none; + color: #555555; +} +.pos button, .pos a.button { + display: inline-block; + cursor: pointer; + padding: 4px 10px; + font-size: 11px; + border: 1px solid #cacaca; + background: #e2e2e2; + border-radius: 3px; +} +.pos ul, .pos ol { + padding: 0; + margin: 0; +} +.pos li { + list-style-type: none; +} +.pos .pos-right-align { + text-align: right; +} +.pos .pos-center-align { + text-align: center; +} +.pos .pos-disc-font { + font-size: 12px; + font-style:italic; + color: #808080; +} + +/* ********* The black header bar ********* */ + + +.pos .pos-topheader { + position:absolute; + left:0; + top:0; + width: 100%; + height: 48px; + margin:0; + padding:0; + color: gray; + background: #393939; +} + +/* a) The left part of the top-bar */ + +.pos .pos-branding{ + position: absolute; + display: table-cell; + left:0; + top:0; + width:439px; + height:100%; + margin:0; + padding:0; + border-right: 1px solid #373737; + text-align:left; + line-height:100%; + vertical-align: middle; +} +.pos .pos-logo { + height: 35px; + margin-left: 10px; + margin-top: 5px; + vertical-align:middle; +} +.pos .pos-branding .username{ + float:right; + color:#DDD; + font-size:16px; + margin-right:32px; + line-height: 48px; + font-style:italic; + cursor: pointer; +} + +/* b) The right part of the top-bar */ + +.pos .pos-rightheader { + position: absolute; + right:0; + top:0; + height:100%; + display: -webkit-flex; + display: flex; + overflow : hidden; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} +.pos .pos-rightheader > * { + border-right: 1px solid #292929; +} + +.pos .new-order-button{ + text-align: center; + width : 60%; +/* overflow: auto; */ +} + +.pos .order-button{ + color: #f0f0f0; + display: inline-block; + box-sizing: border-box; + -moz-box-sizing: border-box; + height: 30px; + padding-left: 6px; + margin: 2px; + background: #8b8b8b; + border-radius: 3px; + vertical-align: top; + line-height: 30px; + text-align: left; + box-shadow: 0px -5px 10px -6px rgb(82,82,82) inset; + cursor: pointer; + width : 100%; + min-width: 45px; +/* overflow: auto; */ +} + +.pos .order-button:first-child { + margin-left: 0px; +} + +.pos .order-button.selected{ + font-weight: 900; + background: #EEEEEE; + color: rgb(75,75,75); + height: 35px; + line-height: 35px; + border-bottom: solid 1px rgb(196, 196, 196); + box-shadow: none; + -webkit-flex-shrink: 0; + flex-shrink: 0; +} + +.pos .order-button .order-sequence{ + font-size: 16px; + font-weight: 800; + vertical-align: middle; +} +.pos .order-button.selected .order-sequence{ + color: white; + background: black; + display: inline-block; + line-height: 24px; + min-width: 24px; + border-radius: 12px; + margin-right: 4px; + margin-left: -4px; +} + +.pos .order-button.square{ + margin-left:1px; + background: #5c5c5c; + color: rgb(160,160,160); + font-size: 18px; + text-align: center; + line-height: 36px; + width: 43%; +} +.pos .order-button:not(.square) > .fa { + font-size: 16px; + vertical-align: middle; + margin-right: 4px; +} +.pos .order-button .order-sequence{ + font-size: 16px; + font-weight: 800; +} + +.pos .order-selector { + width: 220px; + position: absolute; + height: 100%; + top: 48px; + + display: -webkit-flex; + display: flex; + -webkit-flex: 1; + flex: 1; +} + +.pos .orders { + position: absolute; + vertical-align: top; + margin-left: 0px; + top: 48px; + /* make it wrap to multiple lines and get a scrollbar */ + overflow: auto; + scrollbar-color: gray gray; + box-sizing: border-box; + height: calc(100% - 2 * 48px); /* The pixels is the value of top */ +} + +/* c) The session buttons */ + +.pos .pos-rightheader .header-button{ + float: right; + height: 48px; + padding-left: 16px; + padding-right: 16px; + border-right: 1px solid #292929; + border-left: 1px solid #292929; + color: #DDD; + line-height: 48px; + text-align: center; + cursor: pointer; + + -webkit-transition-property: background; + -webkit-transition-duration: 0.2s; + -webkit-transition-timing-function: ease-out; +} +.pos .pos-rightheader .header-button:last-child{ + border-left: 1px solid #3a3a3a; +} +.pos .pos-rightheader .header-button:active{ + background: rgba(0,0,0,0.2); + color:#EEE; +} +.pos .pos-rightheader .header-button.confirm { + background: #359766; + color: white; + font-weight: bold; +} + +/* c) The notifications indicator */ + +.pos .oe_status{ + float:right; + color: white; + padding: 14px; + line-height: 20px; + font-size: 30px; + vertical-align:middle; + font-style: italic; + font-weight: bold; + cursor:pointer; +} + +.pos .oe_status .username{ + margin-right: 200px; +} + +.pos .oe_status.oe_inactive{ + cursor: default; +} +.pos .oe_status .oe_icon{ + display:inline-block; + cursor:pointer; + width:20px; height:16px; + color: white; +} +.pos .oe_status .oe_red, +.pos .oe_icon.oe_red { + color: rgb(197, 52, 0); +} +.pos .oe_status .oe_green, +.pos .oe_icon.oe_green { + color: rgb(94, 185, 55); +} +.pos .oe_status .oe_orange, +.pos .oe_icon.oe_orange { + color: rgb(239, 153, 65); +} +.pos .oe_link_icon{ + cursor:pointer; +} +/* ********* Contains everything below the bar ********* */ +.pos .pos-content { + width: calc(100% - 220px); /* 200px is the value of the left property */ + left: 220px; + + position: absolute; + top: 48px; + bottom: 0; + background: #F0EEEE; +} + +/* ********* The leftpane contains the order, numpad and paypad ********* */ + +.pos .leftpane { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + position:absolute; + left:0; + width:440px; + top:0px; + bottom:0; + border-right: solid 1px #CECBCB; + border-right: solid 3px #787878; + background: #e2e2e2; +} + +.pos .leftpane .pads { + border-top: solid 3px rgb(110, 200, 155); +} + +/* ********* The control buttons ********* */ + +.pos .control-buttons { + display: -webkit-flex; + display: flex; + -webkit-flex-flow: row wrap; + flex-flow: row wrap; + padding: 8px 16px 0px 11px; + margin-bottom: -6px; +} +.pos .control-button { + -webkit-flex-grow: 1; + flex-grow: 1; + background: #e2e2e2; + border: solid 1px #bfbfbf; + display: inline-block; + line-height: 38px; + min-width: 80px; + text-align: center; + border-radius: 3px; + padding: 0px 10px; + font-size: 18px; + margin-left: 6px; + margin-bottom: 6px; + cursor: pointer; + overflow: hidden; + transition: all linear 150ms; +} +.pos .control-button:hover { + background: #efefef; +} +.pos .control-button:active { + background: black; + color: white; + border-color: black; +} +.pos .control-button .fa{ + margin-right: 4px; +} +.pos .control-button .control-button-number { + color: rgb(226, 226, 226); + background: rgb(85, 85, 85); + display: inline-block; + height: 28px; + vertical-align: middle; + font-weight: bold; + line-height: 28px; + width: 28px; + border-radius: 50%; + text-align: center; + margin-left: -16px; + margin-right: 4px; +} + +.pos .control-button.highlight, +.pos .button.highlight { + background: #6EC89B !important; + border: solid 1px #64AF8A !important; + color: white !important; +} +.pos .control-button.altlight, +.pos .button.altlight { + background: #7F82AC !important; + border: solid 1px #756A99 !important; + color: white !important; +} +.pos .control-button.disabled, +.pos .control-button.disabled:active{ + background: #e2e2e2; + border: solid 1px #BEBEBE; + opacity: 0.5; + cursor: default; + color: inherit; +} + +/* ********* The actionpad (payment, set customer) ********* */ + +.pos .actionpad { + display: inline-block; + float: left; + padding: 0; + margin: 16px; + margin-top: 8px; + margin-right: 0; + text-align: center; + vertical-align: top; + width: 186px; + border: none; + border-radius: 0; + border-top: 1px solid; + border-left: 1px solid; + border-color: #bfbfbf; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pos .actionpad .button { + position: relative; + display: block; + height: 54px; + width: 100%; + font-weight: bold; + vertical-align: middle; + color: #555555; + font-size: 14px; + border-radius: 0; + border: none; + border-right: 1px solid; + border-bottom: 1px solid; + border-color: #bfbfbf; + transition: all 150ms linear; +} +.pos .actionpad .button:hover { + background: #efefef; +} +.pos .actionpad .button:active { + background: black; + border-color: black; + color: white; +} +.pos .actionpad .button:first-child { + border-top-left-radius: 4px; +} +.pos .actionpad .button:last-child { + border-bottom-left-radius: 4px; +} +.pos .actionpad .button.pay { + height: 162px; +} +.pos .actionpad .button.pay .pay-circle { + display: block; + font-size: 32px; + line-height: 54px; + padding-top: 6px; + background: rgb(86, 86, 86); + color: white; + width: 60px; + margin: auto; + border-radius: 30px; + margin-bottom: 10px; +} +.pos .actionpad .button.pay .pay-circle .fa { + position: relative; + top: -1px; + left: 3px; +} + +.pos .actionpad .button.set-customer{ + padding-left: 40px; + padding-right: 40px; +} +.pos .actionpad .button.set-customer.decentered { + padding-left: 40px; + padding-right: 5px; +} +.pos .actionpad .button .fa-user { + position: absolute; + left: 13px; + top: 13px; + margin-right: 8px; + font-size: 18px; + background: rgba(255, 255, 255, 0.5); + line-height: 30px; + width: 30px; + border-radius: 100%; +} + +/* ********* The Numpad ********* */ + +.pos .numpad { + display: inline-block; + float: right; + text-align: center; + width: 216px; + margin: 16px; + margin-top: 8px; + margin-left: 0px; + border: none; + border-radius: 0; + border-top: 1px solid; + border-color: #bfbfbf; + border-top-right-radius: 4px; +} +.pos .numpad button { + float: left/*rtl:ignore*/; /* rtlcss forced to keep ltr */ + height: 54px; + width: 54px; + font-weight: bold; + vertical-align: middle; + color: #555555; + border-radius: 0; + border: none; + border-right: 1px solid; + border-bottom: 1px solid; + border-color: #bfbfbf; + transition: all 150ms linear; +} +.pos .numpad button:hover { + background: #efefef; +} +.pos .numpad button:active { + background: black; + color: white; + border-color: transparent; +} +.pos .numpad button:nth-child(4) { + border-top-right-radius: 4px; +} +.pos .numpad button:last-child { + border-bottom-right-radius: 4px; +} +.pos .input-button { + font-size: 24px; +} +.pos .mode-button { + font-size: 14px; +} +.pos .mode-button.selected-mode { + color: white; + background: #6EC89B; + border-color: transparent; +} +.pos .mode-button.selected-mode:hover { + background: #6EC89B; + color: white; + border-color: transparent; +} +.pos .numpad .disabled-mode, .pos .numpad .disabled-mode:hover { + background: #c7c7c7; + color: #a5a1a1; + cursor: not-allowed; +} + +/* ********* The right pane contains the screens and headers ********* */ + +.pos .rightpane { + position: absolute; + top: 0; + bottom:0; + left: 440px; + right: 0; + vertical-align: top; + -webkit-transform: translate3d(0,0,0); +} + +.pos .rightpane-header { + padding: 0; + height: 48px; + border-bottom: 1px solid #c7c7c7; + background: #d3d3d3; + text-align: center; +} + +/* ********* The product list ********* */ + +.pos .product-list { + padding: 10px; + text-align: left; + -webkit-transform: translate3d(0,0,0); +} + +.pos .product-list-scroller{ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width:100%; + height:100%; + overflow: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + -webkit-transform: translate3d(0,0,0); + +} +.pos .product-list-container { + position:absolute; + top:0px; + bottom:0px; + left:0px; + right:0px; +} + +/* a) the product list navigation bar */ + +.pos .breadcrumbs{ + display: inline-block; + text-align: left; + float:left; +} +.pos .breadcrumb{ + float: left; + display: inline-block; + line-height: 48px; + height: 48px; + min-width: 48px; +} +.pos .breadcrumb:last-child { + padding-right: 3px; + border-right: 1px solid #c5c5c5; +} +.pos .breadcrumb-button { + display: inline-block; + padding: 0 9px; + vertical-align: top; + color: #808080; + font-size: 14px; + cursor: pointer; +} +.pos .breadcrumb-button.breadcrumb-home { + line-height: 50px; + padding: 0; + width: 50px; + font-size: 25px; + text-align: center; +} + +.pos .breadcrumb-arrow{ + width: 28px; +} +.pos .breadcrumb-homeimg { + width: 27px; + margin: 12px 6px; +} + +/* b) the search box */ + +.pos .searchbox { + position: absolute; + right: 2px; +} +.pos .searchbox input { + width: 100px; + border: 1px solid #cecbcb; + padding: 10px 20px; + padding-left: 38px; + padding-right: 33px; + margin: 6px; + background-color: white; + border-radius: 20px; + font-family: "Lato","Lucida Grande", Helvetica, Verdana, Arial; + font-size: 13px; +} +.pos .searchbox input:focus { + outline: none; + box-shadow: 0px 0px 0px 2px rgb(153, 153, 255) inset; + color: rgb(153, 153, 255); +} + +.pos .search-clear { + position: absolute; + top: 9px; + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; +} + +.search-clear.left { + left: 11px; + color: #808080; +} + +.search-clear.right { + left: 145px; + color: #808080; + cursor: pointer; +} + +/* c) the categories list */ + +.pos .categories { + position: relative; + border-bottom: solid 3px rgb(110, 200, 155); +} +.pos .categories h4 { + display: inline-block; + margin: 9px 5px; +} +.pos .category-list-scroller{ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width:100%; + height:100%; + max-height:60vh; + overflow: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + -webkit-transform: translate3d(0,0,0); + +} +.pos .category-list { + text-align: left; + padding: 10px; + background: rgb(229, 229, 229); + border-bottom: 1px solid #cecece; +} +.pos .category-list.simple { + padding: 0px; + background: #cecece; + display: -webkit-flex; + display: flex; + -webkit-flex-flow: row wrap; + flex-flow: row wrap; + border-bottom: none; +} + + +/* d) the category button */ + +.pos .category-button { + position: relative; + vertical-align: top; + display: inline-block; + font-size: 11px; + margin: 8px !important; + width: 120px; + height:120px; + background:#fff; + border: 1px solid #d7d7d7; + border-radius: 3px; + border-bottom-width: 3px; + cursor: pointer; +} + +.pos .category-simple-button{ + position: relative; + display: inline-block; + font-size: 14px; + margin-right: 1px; + margin-bottom: 1px; + padding: 5px 12px; + line-height: 32px; + flex-grow: 1; + -webkit-flex-grow: 1; + cursor: pointer; + background: #e2e2e2; +} +.pos .category-simple-button:active{ + color: white; + background: black; + + -webkit-transition-property: background, border; + -webkit-transition-duration: 0.2s; + -webkit-transition-timing-function: ease-out; +} + + + +.pos .category-button .category-img { + position: relative; + width: 120px; + height: 100px; + text-align: center; + cursor: pointer; +} + +.pos .category-button .category-img img { + max-height: 100px; + max-width: 120px; + vertical-align: middle; +} + +.pos .category-button .category-name { + position: absolute; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + bottom: 0; + top: auto; + line-height: 14px; + width: 100%; + /* for some reason the -90deg orientation doesn't match the -webkit-linear-gradient. It should be 180deg here. + * webkit also insists on rendering *both* gradients instead of only the native one. So it doesn't looks right. ugh. + background: linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); */ + /*background:#FFF;*/ + padding: 3px; + padding-top: 15px; + color: #7C7BAD; +} + +/* e) the product */ + +.pos .product { + position:relative; + vertical-align: top; + display: inline-block; + line-height: 100px; + font-size: 11px; + margin: 8px !important; + width: 122px; + height:115px; + background:#fff; + border: 1px solid #e2e2e2; + border-radius: 3px; + border-bottom-width: 3px; + overflow: hidden; + cursor: pointer; +} + +.pos .product .product-img { + position: relative; + width: 120px; + height: 100px; + background: white; + text-align: center; +} + +.pos .product .product-img img { + max-height: 100px; + max-width: 120px; + vertical-align: middle; +} + +.pos .product .price-tag { + position: absolute; + top: 2px; + right: 2px; + vertical-align: top; + color: white; + line-height: 13px; + background: #7f82ac; + padding: 2px 5px; + border-radius: 2px; +} + +.pos .product .product-name { + position: absolute; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + bottom:0; + top:auto; + line-height: 14px; + width:100%; + overflow: hidden; + text-overflow: ellipsis; + background: -webkit-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); + background: -moz-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); + background: -ms-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); + /* troublesome in latest webkit + background: linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); + */ + /*background:#FFF;*/ + padding: 3px; + padding-top:15px; +} + + +/* ********* The Screens ********* */ + +.pos .screen { + position:absolute; + text-align: center; + top:0px; + bottom:0px; + width:100%; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.pos .screen header h2 { + margin-top: 0px; + padding-top: 7px; +} +.pos .screen p{ + font-size: 18px; +} +.pos .dialog{ + width: 500px; + margin-left: auto; + margin-right: auto; + margin-top: 50px; + text-align: center; +} +.pos .dialog p{ + font-size: 25px; + margin-top: 10px; + color: #5a5a5a; +} + +/* a) Generic Screen Layout Constructs */ + +.screen .screen-content{ + margin: 0px auto; + max-width: 1024px; + text-align: left; + height: 100%; + overflow: hidden; + position: relative; +} + +@media screen and (min-width: 1024px) { + .screen .screen-content{ + border-left: dashed 1px rgb(215,215,215); + border-right: dashed 1px rgb(215,215,215); + } +} + +.screen .top-content{ + position: absolute; + left: 0px; top: 0px; right: 0px; + height: 64px; + border-bottom: dashed 1px rgb(215,215,215); + text-align: center; +} +.screen .top-content .button { + position: absolute; + top: 0px; + line-height: 32px; + padding: 3px 13px; + font-size: 20px; + background: rgb(230, 230, 230); + margin: 12px; + border-radius: 3px; + border: solid 1px rgb(209, 209, 209); + cursor: pointer; + transition: all 150ms linear; +} +.screen .top-content .button:hover { + background: #efefef; +} +.screen .top-content .button:active { + background: black; + border-color: black; + color: white; +} +.screen .top-content .button.highlight { + background: rgb(110,200,155); + color: white; + border: solid 1px rgb(110,200,155); +} +.screen .top-content .button.highlight:hover { + background: rgb(120,210,165); +} +.screen .top-content .button.back { + left: 0px; + margin-left: 16px; +} +.screen .top-content .button.next{ + right: 0px; + margin-right: 16px; +} +.screen .left-content{ + position: absolute; + left:0px; top: 64px; bottom: 0px; + right:50%; + overflow-x: hidden; + overflow-y: auto; + border-right: dashed 1px rgb(215,215,215); +} +.screen .left-content.pc40{ + right: 66%; +} +.screen .right-content{ + position: absolute; + right:0px; top: 64px; bottom: 0px; + left:50%; + overflow-x: hidden; + overflow-y: auto; +} +.screen .right-content.pc60{ + left:34%; +} +.screen .centered-content{ + position: absolute; + right:25%; top: 64px; bottom: 0px; + left:25%; + border-right: dashed 1px rgb(215,215,215); + border-left: dashed 1px rgb(215,215,215); + overflow-x: hidden; + overflow-y: auto; +} +.screen .full-content{ + position: absolute; + right: 0%; top: 65px; bottom: 0px; + left: 0%; +} + +/* a) Layout for the Product Screen */ + +.pos .screen .layout-table { + border:none; + width:100%; + height:100%; +} + +.pos .screen .header-row { + border:none; + width:100%; + height:0px; +} + +.pos .screen .header-cell{ + border:none; + width:100%; + height:0px; +} +.pos .screen .content-row { + width:100%; + height:100%; +} +.pos .screen .content-cell{ + width:100%; +} +.pos .screen .content-cell .content-container{ + height:100%; + position:relative; +} + + +/* b) The payment screen */ + +.pos .payment-numpad { + display: inline-block; + width: 50%; + box-sizing: border-box; + padding: 16px; + text-align: center; + float: left; +} +.pos .payment-numpad .numpad { + float: none; + border-radius: 4px; + border-top: 1px solid; + border-left: 1px solid; + border-color: #cacaca; + width: 296px; + overflow: hidden; + margin: 0; +} +.pos .payment-numpad .numpad button { + width: 74px; + height: 74px; +} +.pos .payment-numpad .numpad button:first-child { + border-top-left-radius: 4px; +} +.pos .payment-numpad .numpad button:nth-child(16) { + border-bottom-left-radius: 4px; +} + +.pos .paymentlines-container { + padding: 16px; + padding-top: 0; + border-bottom: dashed 1px gainsboro; + min-height: 154px; +} + +.pos .paymentlines { + width: 100%; + border-spacing: 0px 10px; + border-collapse: inherit; +} +.pos .paymentlines .controls { + width: 40px; +} +.pos .paymentlines .label > * { + font-size: 16px; + padding: 8px; +} +.pos .paymentlines tbody{ + background: white; + border-radius: 3px; +} +.pos .paymentline{ + font-size: 22px; +} +.pos .paymentline.selected { + font-size: 22px; + background: #6EC89B; + color: white; +} +.pos .paymentline.selected .edit { + background: white; + color: #6EC89B; + outline: 3px blue; + box-shadow: 0px 0px 0px 3px #6EC89B; + position: relative; + border-radius: 3px; +} +.pos .paymentline > *{ + padding: 8px 12px; +} +.pos .paymentline .col-due, +.pos .paymentline .col-tendered, +.pos .paymentline .col-change { + min-width: 90px; +} +.pos .paymentline.extra .col-due { + border-radius: 0 0 6px 6px; + border-top: solid 1px rgb(230, 230, 230); + font-weight: bold; +} +.pos .paymentline .col-change.highlight { + background: rgb(184, 152, 204); +} +.pos .paymentline .col-name { + font-size: 16px; +} +.pos .paymentline .delete-button{ + cursor: pointer; + text-align: center; +} +.pos .payment-buttons { + display: inline-block; + width: 50%; + box-sizing: border-box; + padding: 16px; + padding-left: 0; + float: right; +} +.payment-screen .payment-buttons .button { + background: #e2e2e2; + line-height: 73px; + font-size: 16px; + padding: 0px 8px; + border: solid 1px rgb(200,200,200); + border-top-width: 0; + cursor: pointer; + text-align: center; + position: relative; + transition: background-color, border-color, color 150ms linear; +} +.payment-screen .payment-buttons .button:hover { + background-color: #efefef; +} +.payment-screen .payment-buttons .button:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-top-width: 1px; +} +.payment-screen .payment-buttons .button:last-child { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.payment-screen .payment-buttons .button.highlight:not(:first-child) { + margin-top: -1px; + border-top: solid 1px; +} +.payment-screen .payment-buttons .button:active { + background: black; + border-color: black; + color: white; +} +.payment-screen .payment-buttons .button.highlight .fa { + border-color: rgba(0, 0, 0, 0.109804); + background: rgba(0, 0, 0, 0.0980392); +} +.payment-screen .payment-buttons .button .fa { + position: absolute; + left: 11px; + top: 50%; + width: 48px; + height: 48px; + line-height: 48px; + margin-top: -25px; + vertical-align: middle; + border-radius: 26px; + border: 1px solid rgba(0,0,0,0.2); + border-image-source: initial; + border-image-slice: initial; + border-image-width: initial; + border-image-outset: initial; + border-image-repeat: initial; + background: rgba(255,255,255,0.4); + font-size: 20px; + transition: all 150ms linear; +} +.payment-screen .paymentlines-empty .total { + text-align: center; + padding: 24px 0px 18px; + font-size: 64px; + color: #43996E; + text-shadow: 0px 2px white, 0px 2px 2px rgba(0, 0, 0, 0.27); +} +.payment-screen .paymentlines-empty .message { + text-align: center; +} + +.paymentlines .button { + cursor: pointer; + border: 1px solid #cacaca; +} +.paymentlines .electronic_payment { + background: #e2e2e2; + border-collapse: unset; + text-align: center; + font-size: 16px; +} + +/* c) The receipt screen */ + +.pos .receipt-screen .centered-content .button { + line-height: 40px; + padding: 3px 13px; + font-size: 20px; + text-align: center; + background: rgb(230, 230, 230); + margin: 16px; + margin-bottom: 0px; + border-radius: 3px; + border: solid 1px rgb(209, 209, 209); + cursor: pointer; +} + +.pos .pos-receipt-container { + font-size: 0.75em; + text-align: center; + direction: ltr; +} + +.pos .pos-receipt-container > div { + text-align: left; + width: 300px; + background-color: white; + margin: 20px; + padding: 15px; + font-size: 16px; + padding-bottom:30px; + display: inline-block; + border: solid 1px rgb(220,220,220); + border-radius: 3px; + overflow: hidden; +} + +@page { + margin: 0; +} + +@media print { + * { + color: black !important; + } + body { + margin: 0; + color: white !important; + /* avoid black background if backgrounds are printed */ + background: initial; + } + .o_notification_manager, + .oe_leftbar, + .oe_loading, + .pos .pos-topheader, + .pos .pos-leftpane, + .pos .keyboard_frame, + .pos .receipt-screen header, + .pos .receipt-screen .top-content, + .pos .receipt-screen .centered-content .button, + .pos .receipt-screen .centered-content .print_invoice { + display: none !important; + } + + .o_action_manager, + .pos, + .pos .pos-content, + .pos .rightpane, + .pos .screen, + .pos .window, + .pos .window .subwindow, + .pos .subwindow .subwindow-container{ + display: block; + position: static; + height: auto; + } + .pos{ + background: white !important; + } + .pos .rightpane { + left: 0px !important; + background-color: white; + } + .pos .receipt-screen { + text-align: left; + } + .pos .receipt-screen .centered-content{ + position: static; + border: none; + } + .pos .pos-receipt-container { + text-align: left; + } + .pos-actionbar { + display: none !important; + } + .debug-widget{ + display: none !important; + } + .pos *{ + text-shadow: none !important; + box-shadow: none !important; + background: transparent !important; + } + .pos .pos-receipt{ + margin: 0; + margin-left: auto !important; + margin-right: auto !important; + border: none !important; + font-size: 13px !important; + width: 266px !important; + } + .o_debug_manager { + display: none !important; + } + .o_chat_window { + display: none !important; + } + .order-selector { + display: none !important; + } + .blockUI { + display: none !important; + } +} + +/* d) The Scale screen */ + +.pos .scale-screen .product-price{ + font-size: 25px; + margin: 16px; + text-align: center; + display: inline-block; + width: 40%; +} +.pos .scale-screen .computed-price{ + font-size: 25px; + display: inline-block; + text-align: right; + margin: 16px; + margin-top: 0px; + padding: 16px; + background: white; + width: 40%; + border-radius: 3px; + font-family: Inconsolata; + font-weight: bold; + text-shadow: 0px 2px 0px rgb(210,210,210); + box-shadow: 0px 2px 0px rgb(225,225,225) inset; + float: right; +} +.pos .scale-screen .buy-product{ + text-align: center; + font-size: 32px; + background: rgb(110,200,155); + color: white; + border-radius: 3px; + padding: 16px; + margin: 16px; + cursor: pointer; +} + +.pos .scale-screen .weight{ + text-align: right; + margin: 16px; + background: white; + padding: 20px; + padding-right: 30px; + font-size: 56px; + border-radius: 3px; + font-family: Inconsolata; + text-shadow: 0px 2px 0px rgb(210, 210, 210); + box-shadow: 0px 2px 0px rgb(225,225,225) inset; +} + + +/* e) The Client List Screen */ + +.pos .clientlist-screen .client-list{ + font-size: 16px; + width: 100%; + line-height: 40px; +} +.pos .clientlist-screen .client-list th { + background: #f7f7f7; /* Hintergrundfarbe des Headers */ + position: sticky; + top: 0; + z-index: 10; /* Damit der Header über dem Inhalt bleibt */ +} +.pos .clientlist-screen .client-list th, +.pos .clientlist-screen .client-list td { + padding: 0px 8px; +} +.pos .clientlist-screen .client-list tr{ + transition: all 150ms linear; + background: rgb(230,230,230); +} +.pos .clientlist-screen .client-list thead > tr, +.pos .clientlist-screen .client-list tr:nth-child(even) { + background: rgb(247,247,247); +} +.pos .clientlist-screen .client-list tr.highlight{ + transition: all 150ms linear; + background: rgb(110,200,155) !important; + color: white; +} +.pos .clientlist-screen .client-list tr.lowlight{ + transition: all 150ms linear; + background: rgb(216, 238, 227); +} +.pos .clientlist-screen .client-list tr.lowlight:nth-child(even){ + transition: all 150ms linear; + background: rgb(227, 246, 237); +} +.pos .clientlist-screen .client-details{ + padding: 16px; + border-bottom: solid 5px rgb(110,200,155); +} +.pos .clientlist-screen .client-details-error{ + padding: 16px; + border-bottom: solid 5px rgb(110,200,155); + background: rgb(178, 34, 34); +} +/* .pos .clientlist-screen .client-details-vvow_briefing{ + color: rgb(128, 255, 0); +} */ +.pos .clientlist-screen .client-details-vvow_briefing_error{ + color: rgb(255, 0, 0); +} +.pos .clientlist-screen .client-details-vvow_sec_briefing_error{ + color: rgb(255, 0, 0); + font-size: xx-large; +} +.pos .clientlist-screen .client-picture{ + height: 64px; + width: 64px; + border-radius: 32px; + overflow: hidden; + text-align: center; + float: left; + margin-right: 16px; + background: white; + position: relative; +} +.pos .clientlist-screen .client-picture > img { + position: absolute; + top: -9999px; + bottom: -9999px; + right: -9999px; + left: -9999px; + max-height: 64px; + margin: auto; +} +.pos .clientlist-screen .client-picture > .fa { + line-height: 64px; + font-size: 32px; +} +.pos .clientlist-screen .client-picture .image-uploader { + position: absolute; + z-index: 1000; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0; + cursor: pointer; +} +.pos .clientlist-screen .client-name { + font-size: 32px; + line-height: 64px; + margin-bottom:16px; +} +.pos .clientlist-screen .edit-buttons { + position: absolute; + right: 16px; + top: 10px; +} +.pos .clientlist-screen .edit-buttons .button{ + display: inline-block; + margin-left: 16px; + color: rgb(128,128,128); + cursor: pointer; + font-size: 36px; +} +.pos .clientlist-screen .client-details-box{ + position: relative; + font-size: 16px; +} +.pos .clientlist-screen .client-details-left{ + width: 50%; + float: left; +} +.pos .clientlist-screen .client-details-right{ + width: 50%; + float: right; +} +.pos .clientlist-screen .client-details-briefing_fablab{ + border: solid 3px green; + margin: 5px; +} +.pos .clientlist-screen .client-details-briefing_wood{ + border: solid 3px red; + margin: 5px; +} +.pos .clientlist-screen .client-details-briefing_metal{ + border: solid 3px blue; + margin: 5px; +} +.pos .clientlist-screen .client-detail{ + line-height: 24px; +} +.pos .clientlist-screen .client-detail > .label{ + font-weight: bold; + display: inline-block; + width: 150px; + text-align: right; + margin-right: 8px; +} +.pos .clientlist-screen .client-detail > .briefinglabel{ + font-weight: bold; + display: inline-block; + width: 250px; + text-align: right; + margin-right: 8px; +} +.pos .clientlist-screen .client-details input, +.pos .clientlist-screen .client-details select +{ + padding: 4px; + border-radius: 3px; + border: solid 1px #cecbcb; + margin-bottom: 4px; + background: white; + font-family: "Lato","Lucida Grande", Helvetica, Verdana, Arial; + color: #555555; + width: 150px; + font-size: 14px; + box-sizing: border-box; +} +.pos .clientlist-screen .client-details input.client-name { + font-size: 24px; + line-height: 24px; + margin: 18px 6px; + width: 340px; +} +.pos .clientlist-screen .client-detail > .empty{ + opacity: 0.3; +} +.pos .clientlist-screen .searchbox{ + right: auto; + margin-left: -90px; + margin-top:8px; + left: 50%; +} +.pos .clientlist-screen .searchbox input{ + width: 120px; +} +.pos .clientlist-screen .button.new-customer { + left: 50%; + margin-left: 120px; +} + +.pos .clientlist-screen .button.new-registration { + right: 0%; + /*margin-left: 120px;*/ +} + + + +/* ********* The OrderWidget ********* */ + +.pos .order-container{ + position: absolute; + top: 0px; + width:100%; + height: 100%; + background: white; +} + +.pos .order-scroller{ + width:100%; + height:100%; + overflow: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} + +.pos .scrollable-y{ + overflow: hidden !important; + overflow-y: auto !important; + -webkit-overflow-scrolling: touch !important; +} + +.pos .order{ + background: white; + padding-bottom: 8px; + padding-top: 8px; + font-size: 16px; + text-align: left; + max-width: 500px; + -webkit-transform: translate3d(0,0,0); +} + +.pos .order .order-empty { + text-align: center; + margin: 48px; + color: #DDD; +} +.pos .order .order-empty .fa { + font-size: 64px; +} +.pos .order .order-empty h1 { + font-size: 20px; +} + +.pos .order .summary{ + width:100%; + text-align:right; + font-weight: bold; + margin-top:20px; + margin-bottom:10px; +} +.pos .order .summary .line{ + float: right; + margin-right:15px; + margin-left: 15px; + padding-top:5px; + border-top: solid 2px; + border-color:#777; +} +.pos .order .summary .total { + font-size: 22px; +} +.pos .order .summary .line .subentry{ + font-size: 16px; + font-weight: normal; + text-align: center; +} +.pos .order .summary .line.empty{ + text-align: right; + border-color:#BBB; + color:#999; +} + +.pos .order .summary .fidpoints{ + position: absolute; + left: 20px; + padding: 10px; + color: #6EC89B; + background: rgba(110, 200, 155, 0.17); + border-radius: 3px; +} + +.submit-kitchen-button { + float: left; + background: rgb(61, 235, 82); + color: white; + padding: 12px 20px; + margin: 0px 15px; + border-radius: 3px; + cursor: pointer; +} + +/* ********* The OrderLineWidget ********* */ + +.pos .order .orderline{ + width:100%; + margin:0px; + padding-top:3px; + padding-bottom:10px; + padding-left:15px; + padding-right:15px; + cursor: pointer; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: background 250ms ease-in-out; + -moz-transition: background 250ms ease-in-out; + transition: background 250ms ease-in-out; +} +.pos .order .orderline:active{ + background: rgba(140,143,183,0.05); + -webkit-transition: background 50ms ease-in-out; + -moz-transition: background 50ms ease-in-out; + transition: background 50ms ease-in-out; +} +.pos .order .orderline.empty:active{ + background: transparent; + cursor: default; +} + +.pos .order .orderline.selected{ + background: rgba(140,143,183,0.2); + -webkit-transition: background 250ms ease-in-out; + -moz-transition: background 250ms ease-in-out; + transition: background 250ms ease-in-out; + cursor: default; +} +.pos .order .orderline .product-name{ + padding:0; + display:inline-block; + font-weight: bold; + width:80%; + overflow:hidden; + text-overflow: ellipsis; +} +.pos .order .orderline .price{ + padding:0; + font-weight: bold; + float:right; +} +.pos .order .orderline .info-list{ + color: #888; + margin-left:10px; +} +.pos .order .orderline .info-list em{ + color: #777; + font-weight: bold; + font-style:normal; +} + +/* ********* SplitBill ********* */ + +.splitbill-screen .order-info { + text-align: center; + margin-bottom:20px; + padding: 20px 0px; + font-size: 64px; + color: #43996E; + text-shadow: 0px 2px white, 0px 2px 2px rgba(0, 0, 0, 0.27); + border-bottom: dashed 1px rgb(215,215,215); +} +.pos .splitbill-screen .order { + background: white; + padding-bottom:15px; + padding-top:15px; + margin-left:16px; + margin-right:16px; + margin-top:16px; + margin-bottom:16px; + font-size:16px; + border-radius: 3px; + border: solid 1px rgb(220,220,220); + text-align: left; + max-width: 500px; + -webkit-transform: translate3d(0,0,0); +} +.splitbill-screen .order .orderline.selected{ + background: rgb(110,200,155); + color: white; + -webkit-transition: background 250ms ease-in-out; + -moz-transition: background 250ms ease-in-out; + transition: background 250ms ease-in-out; + cursor: default; +} +.splitbill-screen .order .orderline.partially.selected{ + background: rgb(136, 214, 176); +} +.splitbill-screen .order .orderline.selected .info-list { + color: white; +} +.splitbill-screen .order .orderline.selected .info-list em{ + color: white; + font-size: 24px; + vertical-align: top; +} +.paymentmethods { + margin: 16px; +} +.paymentmethods .button { + background: #e2e2e2; + line-height: 74px; + font-size: 16px; + border: solid 1px rgb(202, 202, 202); + border-top-width: 0px; + cursor: pointer; + text-align: center; +} +.paymentmethods .button:first-child { + border-top-width: 1px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.paymentmethods .button:last-child { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.paymentmethods .button:active { + background: black; + border-color: black; + color: white; +} +.paymentmethod .button.active { + background: #6EC89B; + color: white; + border-color: #6EC89B; +} + + + +/* ********* The ActionBarWidget ********* */ + +.pos .pos-actionbar{ + height: 105px; + background: #f5f5f5; /*#ebebeb;*/ + border-top: solid 1px #cecece; + z-index:900; +} + +.pos .pos-actionbar ul{ + list-style: none; +} + +.pos .pos-actionbar-button-list{ + height: 100%; + margin: 0px; + padding-left:3px; + padding-right:3px; + overflow:hidden; +} + +.pos .pos-actionbar .button{ + width: 90px; + height: 90px; + text-align:center; + margin:3px; + margin-top:6px; + float:left; + + font-size: 14px; + font-weight: bold; + + cursor: pointer; + + border: 1px solid #cacaca; + border-radius: 3px; + + background: #e2e2e2; +} +.pos .pos-actionbar .button .label{ + margin-top: 37px; +} +.pos .pos-actionbar .button .icon{ + margin-top: 10px; +} +.pos .pos-actionbar .button:active{ + color: white; + background: #7f82ac; + border: 1px solid #7f82ac; + + -webkit-transition-property: background, border; + -webkit-transition-duration: 0.2s; + -webkit-transition-timing-function: ease-out; +} + +.pos .pos-actionbar .button.disabled{ + opacity: 0.5; +} +.pos .pos-actionbar .button.disabled:active{ + border: 1px solid #cacaca; + color: #555; + cursor: default; + + background: #e2e2e2; +} + +.pos .pos-actionbar .button.rightalign{ + float:right; +} +/* ********* The Debug Widget ********* */ + +.pos .debug-widget{ + z-index:100000; + position: absolute; + right: 10px; + top: 10px; + width: 200px; + font-size: 10px; + + background: rgba(0,0,0,0.82); + color: white; + padding-bottom: 10px; + cursor: move; + -webkit-transform: translate3d(0,0,0); +} +.pos .debug-widget .toggle{ + position: absolute; + font-size: 16px; + cursor:pointer; + top:0px; + right:0px; + padding:10px; + padding-right:15px; +} +.pos .debug-widget .content{ + overflow: hidden; +} +.pos .debug-widget h1{ + background:black; + padding-top: 10px; + padding-left: 10px; + margin-top:0; + margin-bottom:0; +} +.pos .debug-widget .category{ + background: black; + padding-left: 10px; + margin: 0px; + font-weight: bold; + padding-top:3px; + padding-bottom:3px; +} +.pos .debug-widget .button{ + padding: 5px; + padding-left: 15px; + display: block; + cursor:pointer; +} +.pos .debug-widget .button:active{ + background: rgba(96,21,177,0.45); +} +.pos .debug-widget input{ + margin-left:10px; + margin-top:7px; + padding: 4px; + width: 180px; + border: none; + box-sizing: border-box; + -moz-box-sizing: border-box; + border-radius: 3px; +} +.pos .debug-widget .status{ + padding: 5px; + padding-left: 15px; + display: block; + cursor:default; +} +.pos .debug-widget .status.on{ + background-color: #6cd11d; +} +.pos .debug-widget .event{ + padding: 5px; + padding-left: 15px; + display: block; + cursor:default; + background-color: #1E1E1E; +} + +/* ********* The PopupWidgets ********* */ + +.pos .modal-dialog{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height:100%; + background-color: rgba(0,0,0,0.5); + z-index:1000; +} +.pos .modal-dialog .popup{ + position: absolute; + top: 0; left: 0; right: 0; bottom: 0; + margin: auto; + width:500px; + height:400px; + text-align:center; + font-size:20px; + font-weight:bold; + background-color: #F0EEEE; + border-radius: 3px; + box-shadow: 0px 10px 20px rgba(0,0,0,0.4); + z-index:1200; + font-family: 'Lato'; + font-family: Lato; +} +.pos .modal-dialog .popup-confirm{ + height: 250px; +} +.pos .popup-confirm .body { + overflow: auto; + height: 120px; +} +.pos .popup .title { + background: rgba(255,255,255,0.5); + margin: 0; + padding: 20px; + border-radius: 3px 3px 0px 0px; + border-bottom: solid 1px rgba(60,60,60,0.1); +} +.pos .popup .body { + font-weight: normal; + font-size: 18px; + margin: 16px; + margin-top: 20px; +} +.pos .popup .body.traceback { + height: 238px; + overflow: auto; + font-size: 14px; + white-space: pre-wrap; + text-align: left; + font-family: 'Inconsolata'; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; +} +.pos .popup .footer{ + position:absolute; + bottom:0; + left:0; + width:100%; + height:60px; + border-top: solid 1px rgba(60,60,60,0.1); +} +.pos .popup .button{ + float:right; + width: 110px; + height: 40px; + line-height:40px; + text-align:center; + border-radius: 2px; + margin-top:10px; + margin-right:10px; + + font-size: 14px; + font-weight: bold; + + cursor: pointer; + + border: solid 1px rgba(60,60,60,0.1); + + background: rgba(0,0,0,0.05); +} +.pos .popup .button.icon { + width: 40px; + font-size: 20px; +} +.pos .popup .button:active{ + color: white; + background: black; + border: 1px solid black; + + -webkit-transition-property: background, border; + -webkit-transition-duration: 0.2s; + -webkit-transition-timing-function: ease-out; +} + + +.pos .popup .button.big-left{ + position:absolute; + top: 120px; + left:40px; + width: 180px; + height: 180px; + line-height:180px; +} + +.pos .popup .button.big-right{ + position:absolute; + top: 120px; + right:40px; + width: 180px; + height: 180px; + line-height:180px; +} +.pos .popup input, +.pos .popup-input { + text-align: left; + display: inline-block; + overflow: hidden; + background: white; + min-height: 44px; + font-family: "Lato"; + font-size: 20px; + color: #444; + padding: 10px; + border-radius: 3px; + border: none; + box-shadow: 0px 0px 0px 1px rgb(220,220,220) inset; + box-sizing: border-box; + width: 80%; +} +.pos .popup .packlot-lines{ + overflow: auto; + height: 250px; + margin: 10px; +} +.pos .popup .packlot-line-input { + margin: 3px; +} + +.pos .popup-number .popup-input { + text-align: center; +} +.pos .popup input:focus, +.pos .popup-input.active { + outline: none; + box-shadow: 0px 0px 0px 3px #6EC89B; +} +.pos .popup.popup-error { + background-color: #F3BBBB; + color: rgb(168, 89, 89); + box-shadow: 0px 10px 20px rgba(92,51,51,0.4); +} +.pos .popup.popup-error .title { + color: white; + background: rgba(255, 76, 76, 0.5); +} +.pos .popup.popup-selection .selection { + overflow-y: auto; + max-height: 273px; + font-size: 16px; + width: auto; + line-height: 50px; + margin-top: -1px; + border-top: solid 3px rgba(60,60,60,0.1); + +} +.pos .popup.popup-selection .selection-item { + width: auto; + background: rgb(230,230,230); + cursor: pointer; + text-align: left; + padding: 0px 16px; +} +.pos .popup.popup-selection .selection-item:nth-child(odd) { + background: rgb(247,247,247); +} +.pos .popup.popup-selection .selection-item.selected { + background: #6EC89B; +} +.pos .popup.popup-number { + width: 300px; + height: 450px; +} +.pos .footer.centered { + text-align: center; +} +.pos .footer.centered .button { + float: none; + display: inline-block; + margin-left: 3px; + margin-right: 3px; +} +.pos .popup-numpad { + direction: ltr/*rtl:ignore*/; /* rtlcss forced to keep ltr */ + margin: 12px auto; + text-align: center; + width: 254px; +} +.pos .popup-number .title, +.pos .popup-textinput .title +{ + margin-bottom: 20px; +} +.pos .popup-numpad .input-button, +.pos .popup-numpad .mode-button { + background: none; + height: 50px; + width: 50px; + padding: 0; + border-radius: 25px; + margin: 4px; + vertical-align: top; + color: #444; +} +.pos .popup-numpad .input-button:active, +.pos .popup-numpad .mode-button:active { + background: #444; + color: white; + border-color: #444; +} + +.pos .popup.popup-password { + width: 254px; +} +.pos .popup-password .mode-button.add, +.pos .popup-password .input-button.dot { + display: none; +} +.pos .popup-password .popup-numpad { + width: 190px; + text-align: left; +} +.pos .popup-password .popup-input { + width: 70%; + } + +.pos .popup .body ul, +.pos .popup ul.body { + text-align: left; + margin-left: 1em; +} +.pos .popup .body li { + text-indent: 1em; +} +.pos .popup .body li:before { + content: '—'; + position: relative; + font-size: 0.6em; + left: -1em; + bottom: 0.2em; +} + + +/* ********* The Webkit Scrollbar ********* */ + +.pos *::-webkit-scrollbar{ + width: 4px; + height: 4px; +} +.pos *::-webkit-scrollbar-track{ + background: rgb(224,224,224); + border-left: solid 1px rgb(200,200,200); +} +.pos *::-webkit-scrollbar-thumb{ + background: rgb(168,168,168); + background: #393939; + min-height: 30px; +} + +.pos.big-scrollbars *::-webkit-scrollbar{ + width: 40px; + height: 40px; +} +.pos.big-scrollbars *::-webkit-scrollbar-track{ + background: rgb(224,224,224); + border-left: none; +} +.pos.big-scrollbars *::-webkit-scrollbar-thumb{ + background: rgb(168,168,168); + min-height: 40px; + border-radius: 3px; +} +.pos.big-scrollbars *::-webkit-scrollbar-button{ + width: 40px; + height: 40px; + border-radius: 3px; + background: rgb(210,210,210); + background-size: cover; +} +.pos.big-scrollbars *::-webkit-scrollbar-button:decrement{ + background-image: url('../img/scroll-up.png'); +} +.pos.big-scrollbars *::-webkit-scrollbar-button:increment{ + background-image: url('../img/scroll-down.png'); +} + + +/* ********* Unsupported Browser Page ********* */ + +.pos .not-supported-browser{ + position: absolute; + z-index: 100000; + top: 0; bottom: 0; left: 0; right: 0; + background: #2C2C2C; +} +.pos .not-supported-browser .message{ + width:600px; + margin-top: 100px; + margin-left: auto; + margin-right: auto; + text-align: center; + color: #d3d3d3; + font-size: 14px; +} +.pos .not-supported-browser img{ + border-collapse: separate; +} diff --git a/static/src/js/debug.js b/static/src/js/debug.js index 63133b5..1eec09f 100644 --- a/static/src/js/debug.js +++ b/static/src/js/debug.js @@ -19,7 +19,7 @@ odoo.define('open_workshop.debug', function (require) { }, }); - // Erweiterung von ClientDetailsWidget, um die Kundendetails anzuzeigen + /* Erweiterung von ClientDetailsWidget, um die Kundendetails anzuzeigen screens.ClientDetailsWidget.include({ show: function() { this._super(); @@ -28,5 +28,5 @@ odoo.define('open_workshop.debug', function (require) { console.log('vvow_document_id:', this.partner.vvow_document_id); } } - }); + });*/ }); diff --git a/static/src/xml/ows_briefing_details.xml b/static/src/xml/ows_briefing_details.xml new file mode 100644 index 0000000..128d21d --- /dev/null +++ b/static/src/xml/ows_briefing_details.xml @@ -0,0 +1,362 @@ + + + + + +
+
+ Address + + + + + + + N/A + +
+
+ Email + + + + + + + N/A + +
+ +
+ Geburtstag + + + + + + + N/A + +
+
+ Phone + + + + + + + N/A + +
+
+ Pricelist + + + + + + + N/A + +
+
+ Haftungs. + + + Ja + + + + + Nein, bitte überprüfen! + + + Id: + + + + + + + + Kein ID vorhanden + + +
+
+ Erstellt am: + + + + + + + N/A + +
+
+ +
+ +
+ +
+
+ Sab. Laser + + + Ja + + + + + Nein + + +
+
+ Prusa + + + Ja + + + + + Nein + + +
+
+ Prusa MMU + + + Ja + + + + + Nein + + +
+
+ 3D Delta + + + Ja + + + + + Nein + + +
+
+ CNC Beami + + + Ja + + + + + Nein + + +
+
+ +
+
+ Felder Kreissäge + + + Ja + + + + + Nein + + +
+
+ Felder Bandsäge + + + Ja + + + + + Nein + + +
+
+ Abricht-/Dickenhobel + + + Ja + + + + + Nein + + +
+
+ Drechselbank + + + Ja + + + + + Nein + + +
+
+ Festool Domino Fräse + + + Ja + + + + + Nein + + +
+
+ Maffel Duo Dübler + + + Ja + + + + + Nein + + +
+
+ Lamello Zeta P2 + + + Ja + + + + + Nein + + +
+
+ +
+
+ Säge Metall + + + Ja + + + + + Nein + + +
+
+ MIG/MAG Schweißgerät + + + Ja + + + + + Nein + + +
+
+ WIG Schweißgerät + + + Ja + + + + + Nein + + +
+
+ Schweißen divers (alt Schweißen) + + + Ja + + + + + Nein + + +
+
+ Drehbank + + + Ja + + + + + Nein + + +
+
+ Fräse Deckel FP2 + + + Ja + + + + + Nein + + +
+
+ Abkantbank + + + Ja + + + + + Nein + + +
+
+
+
+
+
diff --git a/static/src/xml/ows_briefing_details_edit.xml b/static/src/xml/ows_briefing_details_edit.xml new file mode 100644 index 0000000..a541659 --- /dev/null +++ b/static/src/xml/ows_briefing_details_edit.xml @@ -0,0 +1,224 @@ + + + + + +
+
+ Street + +
+
+ Postcode + +
+
+ City + +
+
+ Country + +
+
+ Email + +
+
+ Phone + +
+
+ Geburtstag + +
+
+ Pricelist + +
+ +
+ Haftungsauschschluß + +
+
+
+ +
+
+
+ Sab. Laser + +
+
+ Prusa + +
+
+ Prusa MMU + +
+
+ 3D Delta + +
+
+ CNC Beami + +
+
+ + + +
+
+ Felder Kreissäge + +
+
+ Felder Bandsäge + +
+
+ Abricht-/Dickenhobel + +
+
+ Drechselbank + +
+
+ Festool Domino Fräse + +
+
+ Maffel Duo Dübler + +
+
+ amello Zeta P2 + +
+
+ + + +
+
+ Säge Metall + +
+
+ MIG/MAG Schweißgerät + +
+
+ WIG Schweißgerät + +
+ +
+ Drehbank + +
+
+ Fräse Deckel FP2 + +
+
+ Abkantbank + +
+ +
+
+
+
+
diff --git a/static/src/xml/ows_pos_order_selector.xml b/static/src/xml/ows_pos_order_selector.xml new file mode 100644 index 0000000..e4956b7 --- /dev/null +++ b/static/src/xml/ows_pos_order_selector.xml @@ -0,0 +1,70 @@ + + + + + + HOBBYHIMMEL + + + + + + + + + + + +
+
+
+ + + +
+
+ + + + + + +
+ + + + + + + + + + + + + ? + + + + + + + + + + + + + + + ? + + + + + + +
+
+ +
diff --git a/views/assets.xml b/views/assets.xml index 908193e..7be1067 100644 --- a/views/assets.xml +++ b/views/assets.xml @@ -6,5 +6,8 @@