diff --git a/public/css/app.css b/public/css/app.css index 18623b64..f973ae07 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -1,4 +1,4 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#cfd2d4}#switchuser{align-items:center;background:rgba(0,0,0,.5);border-radius:0 9px 0 0;border-right:2px solid hsla(0,0%,100%,.15);border-top:2px solid hsla(0,0%,100%,.15);bottom:0;box-shadow:0 0 10px 0 rgba(0,0,0,.4);color:#fff;display:flex;flex-direction:column;font-size:14px;justify-content:center;left:0;line-height:1.5;padding:10px;position:absolute;text-align:center}#switchuser img{border-radius:50%;margin-bottom:5px;width:50px}#switchuser .btn{background:hsla(0,0%,100%,.15);border-radius:0;color:#fff;font-size:13px;margin:8px -10px -10px;text-decoration:none;transition:all .35s ease-in-out;width:calc(100% + 22px)}#switchuser .btn:hover{background:#d64d55}#tile-preview{align-items:center}.create .textarea{margin:0 20px;width:100%}.create .textarea textarea{border:1px solid #dedfe2;border-radius:6px;font-size:14px;height:100px;padding:15px;width:100%}.create .textarea label:not(.switch){color:#9094a5;display:block;font-size:13px;font-weight:300;margin-bottom:15px;width:100%}.appoptions{flex-direction:column;gap:5px;padding:20px}.appoptions,.appoptions .optdetails{display:flex}.appoptions .optdetails .input{margin:0 20px;width:200px}.appoptions .optvalue{align-items:center;display:flex;height:0;opacity:0;overflow:hidden;width:0}.appoptions .optvalue.active{height:auto;opacity:1;overflow:visible;width:auto}.appoptions button.dark{background:#1b1b1b;border:none;border-radius:4px;color:#fff;min-width:240px;padding:12px 15px}#app{background-image:url(../img/bg1.jpg);background-position:bottom;background-repeat:no-repeat;background-size:cover;min-height:100vh}#app,#app nav{display:flex;flex-direction:column}#app nav{background:rgba(0,0,0,.7);color:#fff;height:100%;left:-340px;position:absolute;transition:all .35s ease-in-out;width:340px;z-index:2}#app .content{display:flex;flex-direction:column;flex-grow:1}#app .content .appheader{background:rgba(0,0,0,.4);height:58px;position:absolute;text-align:center;top:-58px;transition:all .35s ease-in-out;width:100%;z-index:1}#app .content .appheader ul{border-left:1px solid rgba(0,0,0,.6);border-right:1px solid hsla(0,0%,100%,.1);display:inline-block;height:58px;list-style:none;margin:0;padding:0}#app .content .appheader li{border-left:1px solid hsla(0,0%,100%,.1);border-right:1px solid rgba(0,0,0,.6);display:inline-block}#app .content .appheader a{color:#fff;display:inline-block;padding:20px;text-decoration:none}#app main{flex-direction:column}#app #sortable,#app main{align-content:center;align-items:center;display:flex;flex:1;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:30px 10px;position:relative}#config-buttons{bottom:0;display:flex;flex-direction:column;position:fixed;right:0}#config-buttons a{align-items:center;background:rgba(0,0,0,.8);border:1px solid transparent;color:#fff;display:flex;height:50px;justify-content:center;margin-top:1px;position:relative;width:50px}#config-buttons a img{height:26px;margin-top:12px;width:26px}#config-buttons a .tooltip{bottom:50%;left:auto;line-height:1.2;padding:10px 15px;right:55px;transform:translate(200px,50%);white-space:nowrap}#config-buttons a .tooltip.active{transform:translateY(50%)}.userlist,.userlist .user{align-items:center;display:flex;justify-content:center}.userlist .user{background:rgba(0,0,0,.5);border:5px solid hsla(0,0%,100%,.7);border-radius:15px;box-shadow:0 0 10px 0 rgba(0,0,0,.4);color:#fff;flex-direction:column;margin:20px;padding:15px;text-decoration:none}.userlist .user-img{border-radius:50%;height:130px;margin:10px 10px 15px;width:130px}.userlist #password{color:#2f313a;margin:15px -5px;padding:5px 10px;width:100%}.userlist .btn{width:100%}.userlist .forgot{color:#fff;font-size:12px;margin-top:25px}.item-container{position:relative}.item-container .item-edit{background:rgba(0,0,0,.7);border-radius:50%;bottom:20px;color:#fff;display:none;height:30px;left:8px;line-height:30px;position:absolute;text-align:center;width:30px;z-index:1}.tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,.784);border-radius:5px;bottom:120px;color:#fff;font-size:13px;left:0;opacity:0;padding:25px;position:absolute;right:0;transform:translateY(-20px);transition:all .3s;z-index:0}.tooltip.active{opacity:1;transform:translateY(0);z-index:4}.tile-actions{align-items:center;background:rgba(0,0,0,.851);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font-size:12px;height:90px;justify-content:center;left:0;line-height:1;opacity:0;padding:7px;position:absolute;text-align:center;top:0;transition:all .3s;width:80px}.tile-actions.active{opacity:1}.refresh{z-index:3}.refresh .icon{font-size:20px;margin-bottom:5px}.black{color:#000!important}.white{color:#fff!important}.message-container,.message-container2{padding:10px 20px;width:100%}.alert{background:#f1f4f7;box-shadow:0 0 15px 3px rgba(0,0,0,.3);display:flex;justify-content:center;margin:30px auto;max-width:800px;padding:5px 20px 5px 80px;text-align:center}.alert.alert-danger,.alert.alert-success{position:relative}.alert.alert-danger:before,.alert.alert-success:before{align-items:center;background:#0eb584;bottom:0;color:#fff;content:"\f00c";display:flex;font-family:Font Awesome\ 5 Pro;font-size:24px;font-weight:900;justify-content:center;left:0;line-height:57px;position:absolute;text-align:center;top:0;width:60px}.alert.alert-danger:before{background:#d64d55;content:"\f00d"}.alert a{color:#91a1b3}#app.header .add-item,#app.header .item{margin:20px 0;opacity:.8;transform:scale(.9)}#app.sidebar nav{left:0}.add-item{border:4px dashed hsla(0,0%,100%,.7);border-radius:6px;box-shadow:0 0 20px 2px rgba(0,0,0,.3);color:#fff;display:none;flex:0 0 280px;height:90px;margin:20px;outline:1px solid transparent;overflow:hidden;padding:20px;position:relative;width:280px}.add-item a,.add-item.active{display:block}.add-item a{color:#fff;font-size:19px;line-height:40px;text-align:center;width:100%}.item{align-items:center;-webkit-background-clip:padding-box;background-clip:padding-box;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.25));border:1px solid #4a4a4a;border:1px solid rgba(76,76,76,.4);border-radius:6px;color:#fff;display:flex;flex:0 0 280px;height:90px;margin:20px;outline:1px solid transparent;overflow:hidden;padding:15px 55px 15px 15px;position:relative;transition:all .35s ease-in-out;width:280px}.item:after{background:hsla(0,0%,100%,.1);border-radius:50%;box-shadow:0 0 40px 0 rgba(0,0,0,.2);content:"";height:90px;position:absolute;right:-48px;top:0;width:90px}.item .link{color:#fff;font-size:24px;height:100%;line-height:90px;padding-right:10px;position:absolute;right:0;text-align:right;top:0;width:100%;z-index:1}.item .title{font-size:16px}.item .details{width:100%}.text-center{text-align:center!important}.module-container{background:#f9fafd;border:1px solid #cdced8;border-radius:5px;box-shadow:0 0 10px 0 rgba(0,0,0,.4);margin:10px 40px;max-width:1000px;overflow:hidden;width:100%}.module-container footer,.module-container header{align-items:center;background:#f2f3f6;border-bottom:1px solid #dbdce3;border-top:1px solid #fff;display:flex;font-size:16px;height:60px;justify-content:space-between;position:relative}.module-container footer .section-title,.module-container header .section-title{color:#5b5b5b;font-size:18px;margin-left:25px}.module-container footer{border-top:1px solid #dbdce3}.module-container .table{background:#fff;margin:0;width:100%}.module-container .table thead th{background:#f2f3f6;border-top:1px solid #fff;color:#767d94;font-size:13px;padding:15px 25px;text-align:left;text-transform:uppercase}.module-container .table tbody tr:hover{background:#fefbf2}.module-container .table tbody tr:hover td:first-child{position:relative}.module-container .table tbody tr:hover td:first-child:before{background:#0eb584;bottom:0;content:"";left:0;position:absolute;top:0;width:5px}.module-container .table tbody td{color:#2f313a;font-size:13px;max-width:500px;padding:20px 25px;word-break:break-word}.module-container .table tbody td.form-error{background:#e69191;color:#fff;text-align:center}.module-container .table tbody a{color:#2f313a}.homesearch{height:51px}.toggleinput{color:#ababab;display:flex;flex-direction:column-reverse;font-size:9px;font-weight:400;line-height:1;padding:0 20px;text-transform:uppercase}.toggleinput label.name{margin-top:6px}.module-actions{align-items:center;display:flex;justify-content:space-between}.module-actions .button{align-items:center;background:transparent;border:none;border-left:1px solid #cdced8;box-sizing:border-box;color:#515564;display:flex;flex-direction:column;font-size:18px;height:60px;justify-content:center;line-height:1;min-width:65px;padding:0 10px;position:relative;text-decoration:none}.module-actions .button:after{border-right:1px solid #fff;bottom:0;content:"";left:0;position:absolute;top:0}.module-actions .button span{color:#ababab;display:inline-block;font-size:9px;font-weight:400;line-height:1;margin:0;position:relative;text-transform:uppercase;top:4px}.input{position:relative}.input .help{bottom:-22px;color:#c00;left:10px;position:absolute}div.create{display:flex;flex-wrap:wrap;padding:30px 15px}div.create .input{margin:20px;width:280px}div.create .input label:not(.switch){color:#9094a5;display:block;font-size:13px;font-weight:300;margin-bottom:15px;width:100%}div.create .input input,div.create .input select{border:1px solid #dedfe2;border-radius:6px;padding:10px;width:100%}.app-icon-container{align-items:center;display:flex;flex:0 0 60px;height:60px;justify-content:center;margin-right:15px;width:60px}.app-icon{display:block;max-height:60px;max-width:60px}.sidenav{position:relative}.sidenav .close-sidenav{color:#ccc;font-size:24px;position:absolute;right:20px;top:20px}.sidenav h2{font-weight:300;margin:0;padding:20px}.sidenav ul{list-style:none;margin:0;padding:20px}.sidenav ul li{display:flex;justify-content:space-between;padding:5px}.sidenav ul li a{color:#2b3542}.sidenav ul li a.active{color:#46b0e6}.trashed{color:#91a1b3;font-size:11px;margin-left:20px}#websiteiconoptions{display:flex;flex-direction:column;padding:20px}#websiteiconoptions .results{align-items:center;display:flex;flex-wrap:wrap;gap:8px}#websiteiconoptions .header{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:10px 0}#websiteiconoptions .selectclose,.iconbutton{cursor:pointer}.iconbutton{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;height:160px;justify-content:center;width:160px}.selecticon{height:auto;max-width:120px}.switch{display:inline-block;height:20px;position:relative;width:36px}.switch input{display:none}.slider{background-color:#4a556b;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;bottom:3px;content:"";height:14px;left:3px;width:14px}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{transform:translateX(16px)}.slider.round{border-radius:20px}.slider.round:before{border-radius:50%}@keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}input:-webkit-autofill{-webkit-animation-fill-mode:both;-webkit-animation-name:autofill}input:autofill{animation-fill-mode:both;animation-name:autofill}button.link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none}a.settinglink{color:#2f313a;display:inline-block;font-size:13px;font-weight:700;margin:15px 5px}.setting-view-image{display:inline-block;margin-bottom:20px}.setting-view-image img{max-width:330px}.searchform{align-self:flex-start;background:rgba(0,0,0,.2);border-bottom:1px solid hsla(0,0%,100%,.35);border-radius:14px;border-top:1px solid rgba(0,0,0,.5);box-shadow:inset 0 1px 6px 0 rgba(0,0,0,.3);display:flex;margin:50px auto;max-width:620px;padding:14px;position:relative;text-align:center;width:100%;z-index:4}.searchform form{width:100%}.searchform .input-container{background:#fff;border-radius:5px;box-shadow:0 0 5px 0 rgba(0,0,0,.4);display:flex;overflow:hidden;position:relative}.searchform input{background:transparent;border:0;font-size:15px;padding:17px 15px;width:100%}.searchform button{background:#d64d55;border:none;border-bottom-right-radius:5px;border-top-right-radius:5px;color:#fff;font-size:16px;font-weight:500;line-height:38px;padding:7px 15px;position:absolute;right:0;text-transform:uppercase;top:0}.searchform select{background:#f5f5f5;border:none;border-right:1px solid #ddd;padding:0 10px}.ui-autocomplete{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);*border-bottom-width:2px;border-radius:5px;*border-right-width:2px;box-shadow:0 5px 10px rgba(0,0,0,.2);display:none;float:left;left:0;list-style:none;margin:0 0 10px 25px;min-width:160px;padding:4px 0;position:absolute;top:100%;z-index:1000}.ui-menu-item{clear:both;color:#555;display:block;font-weight:400;line-height:18px;padding:3px 15px;text-decoration:none;white-space:nowrap}.ui-state-active,.ui-state-hover{font-weight:700}#appimage img{width:95px}#sapconfig,.newblock{display:none;width:100%}#sapconfig h2,.newblock h2{align-items:center;background:#f2f3f6;border-bottom:1px solid #dbdce3;border-top:1px solid #dbdce3;color:#5b5b5b;display:flex;font-size:18px;font-weight:500;height:60px;justify-content:space-between;margin-left:-15px;padding:2px 25px;width:calc(100% + 30px)}#sapconfig .items,.newblock .items{display:flex}hr{border-style:none;border-width:0;border-bottom:1px solid #fff;border-top:1px solid #eaeaea;height:0;margin:23px 0 18px}.upload-btn-wrapper{display:inline-block;overflow:hidden;position:relative}.btn{background-color:#d64d55;border:none;border-radius:8px;padding:8px 12px}.btn,.btn.test{color:#fff;font-size:16px}.btn.test{background:#207774;border-bottom-right-radius:5px;border-top-right-radius:5px;font-weight:500;padding:8px 50px;text-transform:uppercase}.upload-btn-wrapper input[type=file]{font-size:100px;left:0;opacity:0;position:absolute;top:0}.icon-container{align-items:center;display:flex}.icon-container img{margin-right:15px}.ui-helper-hidden-accessible{display:none}.livestats-container .livestats{display:flex;justify-content:space-between;list-style:none;margin:5px 0 0;padding:0;width:100%}.livestats-container .livestats span{display:block;display:flex;font-size:11px;font-weight:500;line-height:1;opacity:.5;text-align:left;text-transform:uppercase}.livestats-container .livestats strong{align-items:center;color:#fff;display:block;display:flex;font-size:12px;line-height:1;line-height:1.2}.livestats-container .livestats strong span{margin-left:4px}.livestats-container .livestats li{line-height:1;margin:0;text-align:center}.livestats-container .livestats li.right{text-align:right}.livestats-container .livestats li.right span{justify-content:flex-end}.livestats-container .livestats.flexcolumn{flex-direction:column}.livestats-container.black .livestats strong{color:#000}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{-webkit-text-fill-color:inherit;border:inherit;-webkit-box-shadow:inherit;color:#2f313a!important;-webkit-transition:inherit;transition:inherit}#sortable:focus-within .item:focus-within{outline:1px solid hsla(0,0%,100%,.569)}#sortable:focus-within .item:not(:focus-within){opacity:.4}#config-buttons:focus-within a:focus{border:1px solid hsla(0,0%,100%,.569);outline:0}#config-buttons:focus-within a:not(:focus-within){opacity:.4}.title-marquee{align-items:flex-start;display:flex;margin-top:2px;overflow:hidden;width:125px}.title-marquee>span,.title-marquee>strong{animation:marquee 8s linear;transform:translate(0);white-space:nowrap}.no-marquee .title,.title-marquee .title{margin-right:4px}@keyframes marquee{0%{transform:translate(0)}20%{transform:translate(0)}95%{transform:translate(-200%)}to{transform:translate(-200%)}} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#cfd2d4}#switchuser{align-items:center;background:rgba(0,0,0,.5);border-radius:0 9px 0 0;border-right:2px solid hsla(0,0%,100%,.15);border-top:2px solid hsla(0,0%,100%,.15);bottom:0;box-shadow:0 0 10px 0 rgba(0,0,0,.4);color:#fff;display:flex;flex-direction:column;font-size:14px;justify-content:center;left:0;line-height:1.5;padding:10px;position:absolute;text-align:center}#switchuser img{border-radius:50%;margin-bottom:5px;width:50px}#switchuser .btn{background:hsla(0,0%,100%,.15);border-radius:0;color:#fff;font-size:13px;margin:8px -10px -10px;text-decoration:none;transition:all .35s ease-in-out;width:calc(100% + 22px)}#switchuser .btn:hover{background:#d64d55}#tile-preview{align-items:center}.create .textarea{margin:0 20px;width:100%}.create .textarea textarea{border:1px solid #dedfe2;border-radius:6px;font-size:14px;height:100px;padding:15px;width:100%}.create .textarea label:not(.switch){color:#9094a5;display:block;font-size:13px;font-weight:300;margin-bottom:15px;width:100%}.appoptions{flex-direction:column;gap:5px;padding:20px}.appoptions,.appoptions .optdetails{display:flex}.appoptions .optdetails .input{margin:0 20px;width:200px}.appoptions .optvalue{align-items:center;display:flex;height:0;opacity:0;overflow:hidden;width:0}.appoptions .optvalue.active{height:auto;opacity:1;overflow:visible;width:auto}.appoptions button.dark{background:#1b1b1b;border:none;border-radius:4px;color:#fff;min-width:240px;padding:12px 15px}#app{background-image:url(../img/bg1.jpg);background-position:bottom;background-repeat:no-repeat;background-size:cover;min-height:100vh}#app,#app nav{display:flex;flex-direction:column}#app nav{background:rgba(0,0,0,.7);color:#fff;height:100%;left:-340px;position:absolute;transition:all .35s ease-in-out;width:340px;z-index:2}#app .content{display:flex;flex-direction:column;flex-grow:1}#app .content .appheader{background:rgba(0,0,0,.4);height:58px;position:absolute;text-align:center;top:-58px;transition:all .35s ease-in-out;width:100%;z-index:1}#app .content .appheader ul{border-left:1px solid rgba(0,0,0,.6);border-right:1px solid hsla(0,0%,100%,.1);display:inline-block;height:58px;list-style:none;margin:0;padding:0}#app .content .appheader li{border-left:1px solid hsla(0,0%,100%,.1);border-right:1px solid rgba(0,0,0,.6);display:inline-block}#app .content .appheader a{color:#fff;display:inline-block;padding:20px;text-decoration:none}#app main{flex-direction:column}#app #sortable,#app main{align-content:center;align-items:center;display:flex;flex:1;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:30px 10px;position:relative}#config-buttons{bottom:0;display:flex;flex-direction:column;position:fixed;right:0}#config-buttons a{align-items:center;background:rgba(0,0,0,.8);border:1px solid transparent;color:#fff;display:flex;height:50px;justify-content:center;margin-top:1px;position:relative;width:50px}#config-buttons a img{height:26px;margin-top:12px;width:26px}#config-buttons a .tooltip{bottom:50%;left:auto;line-height:1.2;padding:10px 15px;right:55px;transform:translate(200px,50%);white-space:nowrap}#config-buttons a .tooltip.active{transform:translateY(50%)}.userlist,.userlist .user{align-items:center;display:flex;justify-content:center}.userlist .user{background:rgba(0,0,0,.5);border:5px solid hsla(0,0%,100%,.7);border-radius:15px;box-shadow:0 0 10px 0 rgba(0,0,0,.4);color:#fff;flex-direction:column;margin:20px;padding:15px;text-decoration:none}.userlist .user-img{border-radius:50%;height:130px;margin:10px 10px 15px;width:130px}.userlist #password{color:#2f313a;margin:15px -5px;padding:5px 10px;width:100%}.userlist .btn{width:100%}.userlist .forgot{color:#fff;font-size:12px;margin-top:25px}.item-container{position:relative}.item-container .item-edit{background:rgba(0,0,0,.7);border-radius:50%;bottom:20px;color:#fff;display:none;height:30px;left:8px;line-height:30px;position:absolute;text-align:center;width:30px;z-index:1}.tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,.784);border-radius:5px;bottom:120px;color:#fff;font-size:13px;left:0;opacity:0;padding:25px;position:absolute;right:0;transform:translateY(-20px);transition:all .3s;z-index:0}.tooltip.active{opacity:1;transform:translateY(0);z-index:4}.tile-actions{align-items:center;background:rgba(0,0,0,.851);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font-size:12px;height:90px;justify-content:center;left:0;line-height:1;opacity:0;padding:7px;position:absolute;text-align:center;top:0;transition:all .3s;width:80px}.tile-actions.active{opacity:1}.refresh{z-index:3}.refresh .icon{font-size:20px;margin-bottom:5px}.black{color:#000!important}.white{color:#fff!important}.message-container,.message-container2{padding:10px 20px;width:100%}.alert{background:#f1f4f7;box-shadow:0 0 15px 3px rgba(0,0,0,.3);display:flex;justify-content:center;margin:30px auto;max-width:800px;padding:5px 20px 5px 80px;text-align:center}.alert.alert-danger,.alert.alert-success{position:relative}.alert.alert-danger:before,.alert.alert-success:before{align-items:center;background:#0eb584;bottom:0;color:#fff;content:"\f00c";display:flex;font-family:Font Awesome\ 5 Pro;font-size:24px;font-weight:900;justify-content:center;left:0;line-height:57px;position:absolute;text-align:center;top:0;width:60px}.alert.alert-danger:before{background:#d64d55;content:"\f00d"}.alert a{color:#91a1b3}#app.header .add-item,#app.header .item{margin:20px 0;opacity:.8;transform:scale(.9)}#app.sidebar nav{left:0}.add-item{border:4px dashed hsla(0,0%,100%,.7);border-radius:6px;box-shadow:0 0 20px 2px rgba(0,0,0,.3);color:#fff;display:none;flex:0 0 280px;height:90px;margin:20px;outline:1px solid transparent;overflow:hidden;padding:20px;position:relative;width:280px}.add-item a,.add-item.active{display:block}.add-item a{color:#fff;font-size:19px;line-height:40px;text-align:center;width:100%}.item{align-items:center;-webkit-background-clip:padding-box;background-clip:padding-box;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.25));border:1px solid #4a4a4a;border:1px solid rgba(76,76,76,.4);border-radius:6px;color:#fff;display:flex;flex:0 0 280px;height:90px;margin:20px;outline:1px solid transparent;overflow:hidden;padding:15px 55px 15px 15px;position:relative;transition:all .35s ease-in-out;width:280px}.item:after{background:hsla(0,0%,100%,.1);border-radius:50%;box-shadow:0 0 40px 0 rgba(0,0,0,.2);content:"";height:90px;position:absolute;right:-48px;top:0;width:90px}.item .link{color:#fff;font-size:24px;height:100%;line-height:90px;padding-right:10px;position:absolute;right:0;text-align:right;top:0;width:100%;z-index:1}.item .title{font-size:16px}.item .details{width:100%}.text-center{text-align:center!important}.module-container{background:#f9fafd;border:1px solid #cdced8;border-radius:5px;box-shadow:0 0 10px 0 rgba(0,0,0,.4);margin:10px 40px;max-width:1000px;overflow:hidden;width:100%}.module-container footer,.module-container header{align-items:center;background:#f2f3f6;border-bottom:1px solid #dbdce3;border-top:1px solid #fff;display:flex;font-size:16px;height:60px;justify-content:space-between;position:relative}.module-container footer .section-title,.module-container header .section-title{color:#5b5b5b;font-size:18px;margin-left:25px}.module-container footer{border-top:1px solid #dbdce3}.module-container .table{background:#fff;margin:0;width:100%}.module-container .table thead th{background:#f2f3f6;border-top:1px solid #fff;color:#767d94;font-size:13px;padding:15px 25px;text-align:left;text-transform:uppercase}.module-container .table tbody tr:hover{background:#fefbf2}.module-container .table tbody tr:hover td:first-child{position:relative}.module-container .table tbody tr:hover td:first-child:before{background:#0eb584;bottom:0;content:"";left:0;position:absolute;top:0;width:5px}.module-container .table tbody td{color:#2f313a;font-size:13px;max-width:500px;padding:20px 25px;word-break:break-word}.module-container .table tbody td.form-error{background:#e69191;color:#fff;text-align:center}.module-container .table tbody a{color:#2f313a}.homesearch{height:51px}.toggleinput{color:#ababab;display:flex;flex-direction:column-reverse;font-size:9px;font-weight:400;line-height:1;padding:0 20px;text-transform:uppercase}.toggleinput label.name{margin-top:6px}.module-actions{align-items:center;display:flex;justify-content:space-between}.module-actions .button{align-items:center;background:transparent;border:none;border-left:1px solid #cdced8;box-sizing:border-box;color:#515564;display:flex;flex-direction:column;font-size:18px;height:60px;justify-content:center;line-height:1;min-width:65px;padding:0 10px;position:relative;text-decoration:none}.module-actions .button:after{border-right:1px solid #fff;bottom:0;content:"";left:0;position:absolute;top:0}.module-actions .button span{color:#ababab;display:inline-block;font-size:9px;font-weight:400;line-height:1;margin:0;position:relative;text-transform:uppercase;top:4px}.input{position:relative}.input .help{bottom:-22px;color:#c00;left:10px;position:absolute}div.create{display:flex;flex-wrap:wrap;padding:30px 15px}div.create .input{margin:20px;width:280px}div.create .input label:not(.switch){color:#9094a5;display:block;font-size:13px;font-weight:300;margin-bottom:15px;width:100%}div.create .input input,div.create .input select{border:1px solid #dedfe2;border-radius:6px;padding:10px;width:100%}.app-icon-container{align-items:center;display:flex;flex:0 0 60px;height:60px;justify-content:center;margin-right:15px;width:60px}.app-icon{display:block;max-height:60px;max-width:60px}.sidenav{position:relative}.sidenav .close-sidenav{color:#ccc;font-size:24px;position:absolute;right:20px;top:20px}.sidenav h2{font-weight:300;margin:0;padding:20px}.sidenav ul{list-style:none;margin:0;padding:20px}.sidenav ul li{display:flex;justify-content:space-between;padding:5px}.sidenav ul li a{color:#2b3542}.sidenav ul li a.active{color:#46b0e6}.trashed{color:#91a1b3;font-size:11px;margin-left:20px}#websiteiconoptions{display:flex;flex-direction:column;padding:20px}#websiteiconoptions .results{align-items:center;display:flex;flex-wrap:wrap;gap:8px}#websiteiconoptions .header{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:10px 0}#websiteiconoptions .selectclose,.iconbutton{cursor:pointer}.iconbutton{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;height:160px;justify-content:center;width:160px}.selecticon{height:auto;max-width:120px}.switch{display:inline-block;height:20px;position:relative;width:36px}.switch input{display:none}.slider{background-color:#4a556b;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;bottom:3px;content:"";height:14px;left:3px;width:14px}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{transform:translateX(16px)}.slider.round{border-radius:20px}.slider.round:before{border-radius:50%}@keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}input:-webkit-autofill{-webkit-animation-fill-mode:both;-webkit-animation-name:autofill}input:autofill{animation-fill-mode:both;animation-name:autofill}button.link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none}a.settinglink{color:#2f313a;display:inline-block;font-size:13px;font-weight:700;margin:15px 5px}.setting-view-image{display:inline-block;margin-bottom:20px}.setting-view-image img{max-width:330px}.searchform{align-self:flex-start;background:rgba(0,0,0,.2);border-bottom:1px solid hsla(0,0%,100%,.35);border-radius:14px;border-top:1px solid rgba(0,0,0,.5);box-shadow:inset 0 1px 6px 0 rgba(0,0,0,.3);display:flex;margin:50px auto;max-width:620px;padding:14px;position:relative;text-align:center;width:100%;z-index:4}.searchform form{width:100%}.searchform .input-container{background:#fff;border-radius:5px;box-shadow:0 0 5px 0 rgba(0,0,0,.4);display:flex;overflow:hidden;position:relative}.searchform input{background:transparent;border:0;font-size:15px;padding:17px 15px;width:100%}.searchform button{background:#d64d55;border:none;border-bottom-right-radius:5px;border-top-right-radius:5px;color:#fff;font-size:16px;font-weight:500;line-height:38px;padding:7px 15px;position:absolute;right:0;text-transform:uppercase;top:0}.searchform select{background:#f5f5f5;border:none;border-right:1px solid #ddd;padding:0 10px}.ui-autocomplete{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);*border-bottom-width:2px;border-radius:5px;*border-right-width:2px;box-shadow:0 5px 10px rgba(0,0,0,.2);display:none;float:left;left:0;list-style:none;margin:0 0 10px 25px;min-width:160px;padding:4px 0;position:absolute;top:100%;z-index:1000}.ui-menu-item{clear:both;color:#555;display:block;font-weight:400;line-height:18px;padding:3px 15px;text-decoration:none;white-space:nowrap}.ui-state-active,.ui-state-hover{font-weight:700}#appimage img{width:95px}#sapconfig,.newblock{display:none;width:100%}#sapconfig h2,.newblock h2{align-items:center;background:#f2f3f6;border-bottom:1px solid #dbdce3;border-top:1px solid #dbdce3;color:#5b5b5b;display:flex;font-size:18px;font-weight:500;height:60px;justify-content:space-between;margin-left:-15px;padding:2px 25px;width:calc(100% + 30px)}#sapconfig .items,.newblock .items{display:flex}hr{border-style:none;border-width:0;border-bottom:1px solid #fff;border-top:1px solid #eaeaea;height:0;margin:23px 0 18px}.upload-btn-wrapper{display:inline-block;overflow:hidden;position:relative}.btn{background-color:#d64d55;border:none;border-radius:8px;padding:8px 12px}.btn,.btn.test{color:#fff;font-size:16px}.btn.test{background:#207774;border-bottom-right-radius:5px;border-top-right-radius:5px;font-weight:500;padding:8px 50px;text-transform:uppercase}.upload-btn-wrapper input[type=file]{font-size:100px;left:0;opacity:0;position:absolute;top:0}.icon-container{align-items:center;display:flex}.icon-container img{margin-right:15px}.ui-helper-hidden-accessible{display:none}.livestats-container .livestats{display:flex;justify-content:space-between;list-style:none;margin:5px 0 0;padding:0;width:100%}.livestats-container .livestats span{display:block;display:flex;font-size:11px;font-weight:500;line-height:1;opacity:.5;text-align:left;text-transform:uppercase}.livestats-container .livestats strong{align-items:center;color:#fff;display:block;display:flex;font-size:12px;line-height:1;line-height:1.2}.livestats-container .livestats strong span{margin-left:4px}.livestats-container .livestats li{line-height:1;margin:0;text-align:center}.livestats-container .livestats li.right{text-align:right}.livestats-container .livestats li.right span{justify-content:flex-end}.livestats-container .livestats.flexcolumn{flex-direction:column}.livestats-container.black .livestats strong{color:#000}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{-webkit-text-fill-color:inherit;border:inherit;-webkit-box-shadow:inherit;color:#2f313a!important;-webkit-transition:inherit;transition:inherit}#sortable:focus-within .item:focus-within{outline:1px solid hsla(0,0%,100%,.569)}#sortable:focus-within .item:not(:focus-within){opacity:.4}#config-buttons:focus-within a:focus{border:1px solid hsla(0,0%,100%,.569);outline:0}#config-buttons:focus-within a:not(:focus-within){opacity:.4}.import-status{list-style:none}.import-status li{align-items:center;display:flex;margin:6px 0}.import-status li svg{margin-right:8px}.import-status li.success svg{color:#0eb584}.import-status li.fail svg{color:#d64d55}.title-marquee{align-items:flex-start;display:flex;margin-top:2px;overflow:hidden;width:125px}.title-marquee>span,.title-marquee>strong{animation:marquee 8s linear;transform:translate(0);white-space:nowrap}.no-marquee .title,.title-marquee .title{margin-right:4px}@keyframes marquee{0%{transform:translate(0)}20%{transform:translate(0)}95%{transform:translate(-200%)}to{transform:translate(-200%)}} /*! Huebee v2.0.0 http://huebee.buzz ---------------------------------------------- */.huebee{position:absolute;transform:translateY(0);transition:opacity .15s,transform .15s;z-index:1}.huebee.is-hidden{opacity:0;transform:translateY(10px)}.huebee.is-static-open{position:relative;z-index:auto}.huebee__container{background:#eee;border-radius:5px;box-shadow:0 5px 10px rgba(0,0,0,.3);left:0;padding:10px;position:absolute;top:5px}.huebee.is-static-open .huebee__container{box-shadow:none;display:inline-block;left:auto;position:relative;top:auto}.huebee__canvas{cursor:pointer;display:block}.huebee__cursor{border:3px solid #fff;border-radius:5px;box-sizing:content-box;height:15px;left:0;pointer-events:none;position:absolute;top:0;width:15px}.huebee__cursor.is-hidden{opacity:0}.huebee__close-button{background:#222;border-radius:12px;display:block;height:24px;position:absolute;right:-9px;top:-9px;width:24px}.huebee__close-button__x{stroke:#fff;stroke-width:3;stroke-linecap:round}.huebee__close-button:hover{background:#fff;cursor:pointer}.huebee__close-button:hover .huebee__close-button__x{stroke:#222}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;overflow:hidden;padding-left:8px;padding-right:20px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-left:20px;padding-right:8px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:39px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{border:none;box-sizing:border-box;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;left:-100000px;position:absolute;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{box-sizing:border-box;padding:4px;width:100%}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{background-color:#fff;border:0;display:block;filter:alpha(opacity=0);height:auto;left:0;margin:0;min-height:100%;min-width:100%;opacity:0;padding:0;position:fixed;top:0;width:auto;z-index:99}.select2-hidden-accessible{clip:rect(0 0 0 0)!important;border:0!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;right:1px;top:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #dedfe2;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;float:left;margin-top:5px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px;margin-top:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#f2f3f6;border:1px solid #dedfe2;border-radius:4px;cursor:default;float:left;font-size:13px;font-weight:300;margin-right:5px;margin-top:5px;padding:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #dedfe2;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{-webkit-appearance:textfield;background:transparent;border:none;box-shadow:none;outline:0}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;border:1px solid #aaa;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0);outline:0}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;border:none;border-bottom-right-radius:4px;border-left:1px solid #aaa;border-top-right-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0);height:26px;position:absolute;right:1px;top:1px;width:20px}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-radius:0;border-bottom-left-radius:4px;border-right:1px solid #aaa;border-top-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;border-top:none;border-top-left-radius:0;border-top-right-radius:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{box-shadow:none;outline:0}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/public/js/app.js b/public/js/app.js index d32b01b6..8c600c8f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1 +1 @@ -function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{};return(n[t]=n[t]||{})[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),o=n[i+=r?0:1]}return this}},t})),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],(function(n){return e(t,n)})):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,(function(t,e){function n(){}var i=n.prototype=Object.create(e.prototype);i.bindStartEvent=function(t){this._bindStartEvent(t,!0)},i.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},i._bindStartEvent=function(e,n){var i=(n=void 0===n||!!n)?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},h.setTexts=function(){if(this.setTextElems)for(var t=0;t0&&s.attr("value",o)}$(".message-container").length&&setTimeout((function(){$(".message-container").fadeOut()}),3500),void 0!==document.hidden?(t="hidden",e="visibilitychange"):void 0!==document.msHidden?(t="msHidden",e="msvisibilitychange"):void 0!==document.webkitHidden&&(t="webkitHidden",e="webkitvisibilitychange");var r=[],a=[],c=$(".livestats-container");c.length>0&&(void 0===document.addEventListener||void 0===t?console.log("This browser does not support visibilityChange"):document.addEventListener(e,(function(){document[t]?r.forEach((function(t){window.clearTimeout(t)})):a.forEach((function(t){t()}))}),!1),c.each((function(t){var e=$(this).data("id"),i=1===$(this).data("dataonly")?2e4:1e3,o=$(this),s=5e3,c=function a(){$.ajax({url:"".concat(n,"get_stats/").concat(e),dataType:"json",success:function(t){o.html(t.html),"active"===t.status?s=i:s<3e4&&(s+=2e3)},complete:function(e){e.status>299||(r[t]=window.setTimeout(a,s))}})};a[t]=c,c()}))),$("#upload").change((function(){!function(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=function(t){$("#appimage img").attr("src",t.target.result)},e.readAsDataURL(t.files[0])}}(this)})),$("#sortable").sortable({stop:function(){var t=$("#sortable").sortable("toArray",{attribute:"data-id"});$.post("".concat(n,"order"),{order:t})}}),$("#sortable").sortable("disable"),$("#main").on("mouseenter","#sortable.ui-sortable-disabled .item",(function(){$(this).siblings(".tooltip").addClass("active"),$(".refresh",this).addClass("active")})).on("mouseleave",".item",(function(){$(this).siblings(".tooltip").removeClass("active"),$(".refresh",this).removeClass("active")})),$("#config-buttons").on("mouseenter","a",(function(){$(".tooltip",this).addClass("active")})).on("mouseleave","a",(function(){$(".tooltip",this).removeClass("active")})),$(".searchform > form").on("submit",(function(t){"tiles"===$("#search-container select[name=provider]").val()&&t.preventDefault()})),$("#search-container").on("input","input[name=q]",(function(){var t=this.value,e=$("#sortable").children(".item-container");"tiles"===$("#search-container select[name=provider]").val()&&t.length>0?(e.hide(),e.filter((function(){return $(this).data("name").toLowerCase().includes(t.toLowerCase())})).show()):e.show()})).on("change","select[name=provider]",(function(){var t=$("#sortable").children(".item-container");if("tiles"===$(this).val()){$("#search-container button").hide();var e=$("#search-container input[name=q]").val();e.length>0?(t.hide(),t.filter((function(){return $(this).data("name").toLowerCase().includes(e.toLowerCase())})).show()):t.show()}else $("#search-container button").show(),t.show()})),$("#app").on("click","#config-button",(function(t){t.preventDefault();var e=$("#app"),n=e.hasClass("header");e.toggleClass("header"),n?($(".add-item").hide(),$(".item-edit").hide(),$("#app").removeClass("sidebar"),$("#sortable .tooltip").css("display",""),$("#sortable").sortable("disable")):($("#sortable .tooltip").css("display","none"),$("#sortable").sortable("enable"),setTimeout((function(){$(".add-item").fadeIn(),$(".item-edit").fadeIn()}),350))})).on("click","#add-item, #pin-item",(function(t){t.preventDefault(),$("#app").toggleClass("sidebar")})).on("click",".close-sidenav",(function(t){t.preventDefault(),$("#app").removeClass("sidebar")})).on("click","#test_config",(function(t){t.preventDefault();var e=$("#create input[name=url]").val(),i=$('#sapconfig input[name="config[override_url]"]').val();i.length&&""!==i&&(e=i);var s={};s.url=e,$(".config-item").each((function(){var t=$(this).data("config");s[t]=$(this).val()})),s.id=$("form[data-item-id]").data("item-id"),s.password&&s.password===o&&(s.password=""),$.post("".concat(n,"test_config"),{data:s},(function(t){alert(t)}))})),$("#pinlist").on("click","a",(function(t){t.preventDefault();var e=$(this),i=e.data("id"),o=e.data("tag");$.get("".concat(n,"items/pintoggle/").concat(i,"/true/").concat(o),(function(t){var n=$(t).filter("#sortable").html();$("#sortable").html(n),e.toggleClass("active")}))})),$("#itemform").on("submit",(function(){var t=$('input[name="config[password]"]').first();t.length>0&&t.attr("value")===o&&t.attr("value","")}))}));var focusSearch=function(t){var e=document.querySelector('input[name="q"]');e&&(t.preventDefault(),e.focus())},openFirstNonHiddenItem=function(t){if(t.target===document.querySelector('input[name="q"]')&&"tiles"===document.querySelector("#search-container select[name=provider]").value){var e=document.querySelector('#sortable section.item-container:not([style="display: none;"]) a');"href"in e&&(t.preventDefault(),window.open(e.href))}},KEY_BINDINGS={"/":focusSearch,Enter:openFirstNonHiddenItem};document.addEventListener("keydown",(function(t){try{t.key in KEY_BINDINGS&&KEY_BINDINGS[t.key](t)}catch(t){}}));var EXPORT_FILE_NAME="HeimdallExport.json",EXPORT_API_URL="api/item";function triggerFileDownload(t,e){var n=document.createElement("a"),i=new Blob([e],{type:"text/plain"});n.href=URL.createObjectURL(i),n.download=EXPORT_FILE_NAME,n.click()}var exportItems=function(t){t.preventDefault(),fetch(EXPORT_API_URL).then((function(t){return 200!==t.status&&window.alert("An error occurred while exporting..."),t.json()})).then((function(t){var e=JSON.stringify(t,null,2);triggerFileDownload(EXPORT_FILE_NAME,e)}))},exportButton=document.querySelector("#item-export");exportButton&&exportButton.addEventListener("click",exportItems);var IMPORT_API_URL="api/item",APP_LOAD_URL="appload",fetchAppDetails=function(t){return null===t?Promise.resolve({}):fetch(APP_LOAD_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app:t})}).then((function(t){return t.json()})).catch((function(){return{}}))},getCSRFToken=function(){return document.querySelector('input[name="_token"]').value},postToApi=function(t,e){return fetch(IMPORT_API_URL,{method:"POST",cache:"no-cache",redirect:"follow",headers:{"Content-Type":"application/json","X-CSRF-TOKEN":e},body:JSON.stringify(t)})},mergeItemWithAppDetails=function(t,e){return{pinned:1,tags:[0],appid:t.appid,title:t.title,colour:t.colour,url:t.url,appdescription:t.appdescription?t.appdescription:e.description,website:e.website,icon:e.iconview,config:t.description?JSON.parse(t.description):null}},importItems=function(t){t.forEach((function(t){fetchAppDetails(t.appid).then((function(e){var n=mergeItemWithAppDetails(t,e),i=getCSRFToken();return postToApi(n,i)})).then((function(t){console.log(t)}))}))},readJSON=function(t){return new Promise((function(e){var n=new FileReader;n.onload=function(t){var n=t.target.result;e(JSON.parse(n))},n.readAsText(t)}))},openFileForImport=function(t){var e=t.target.files[0];e&&readJSON(e).then(importItems)},fileInput=document.querySelector("input[name='import']");fileInput&&fileInput.addEventListener("change",openFileForImport,!1); +function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{};return(n[t]=n[t]||{})[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),o=n[i+=r?0:1]}return this}},t})),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],(function(n){return e(t,n)})):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,(function(t,e){function n(){}var i=n.prototype=Object.create(e.prototype);i.bindStartEvent=function(t){this._bindStartEvent(t,!0)},i.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},i._bindStartEvent=function(e,n){var i=(n=void 0===n||!!n)?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},h.setTexts=function(){if(this.setTextElems)for(var t=0;t0&&s.attr("value",o)}$(".message-container").length&&setTimeout((function(){$(".message-container").fadeOut()}),3500),void 0!==document.hidden?(t="hidden",e="visibilitychange"):void 0!==document.msHidden?(t="msHidden",e="msvisibilitychange"):void 0!==document.webkitHidden&&(t="webkitHidden",e="webkitvisibilitychange");var r=[],a=[],c=$(".livestats-container");c.length>0&&(void 0===document.addEventListener||void 0===t?console.log("This browser does not support visibilityChange"):document.addEventListener(e,(function(){document[t]?r.forEach((function(t){window.clearTimeout(t)})):a.forEach((function(t){t()}))}),!1),c.each((function(t){var e=$(this).data("id"),i=1===$(this).data("dataonly")?2e4:1e3,o=$(this),s=5e3,c=function a(){$.ajax({url:"".concat(n,"get_stats/").concat(e),dataType:"json",success:function(t){o.html(t.html),"active"===t.status?s=i:s<3e4&&(s+=2e3)},complete:function(e){e.status>299||(r[t]=window.setTimeout(a,s))}})};a[t]=c,c()}))),$("#upload").change((function(){!function(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=function(t){$("#appimage img").attr("src",t.target.result)},e.readAsDataURL(t.files[0])}}(this)})),$("#sortable").sortable({stop:function(){var t=$("#sortable").sortable("toArray",{attribute:"data-id"});$.post("".concat(n,"order"),{order:t})}}),$("#sortable").sortable("disable"),$("#main").on("mouseenter","#sortable.ui-sortable-disabled .item",(function(){$(this).siblings(".tooltip").addClass("active"),$(".refresh",this).addClass("active")})).on("mouseleave",".item",(function(){$(this).siblings(".tooltip").removeClass("active"),$(".refresh",this).removeClass("active")})),$("#config-buttons").on("mouseenter","a",(function(){$(".tooltip",this).addClass("active")})).on("mouseleave","a",(function(){$(".tooltip",this).removeClass("active")})),$(".searchform > form").on("submit",(function(t){"tiles"===$("#search-container select[name=provider]").val()&&t.preventDefault()})),$("#search-container").on("input","input[name=q]",(function(){var t=this.value,e=$("#sortable").children(".item-container");"tiles"===$("#search-container select[name=provider]").val()&&t.length>0?(e.hide(),e.filter((function(){return $(this).data("name").toLowerCase().includes(t.toLowerCase())})).show()):e.show()})).on("change","select[name=provider]",(function(){var t=$("#sortable").children(".item-container");if("tiles"===$(this).val()){$("#search-container button").hide();var e=$("#search-container input[name=q]").val();e.length>0?(t.hide(),t.filter((function(){return $(this).data("name").toLowerCase().includes(e.toLowerCase())})).show()):t.show()}else $("#search-container button").show(),t.show()})),$("#app").on("click","#config-button",(function(t){t.preventDefault();var e=$("#app"),n=e.hasClass("header");e.toggleClass("header"),n?($(".add-item").hide(),$(".item-edit").hide(),$("#app").removeClass("sidebar"),$("#sortable .tooltip").css("display",""),$("#sortable").sortable("disable")):($("#sortable .tooltip").css("display","none"),$("#sortable").sortable("enable"),setTimeout((function(){$(".add-item").fadeIn(),$(".item-edit").fadeIn()}),350))})).on("click","#add-item, #pin-item",(function(t){t.preventDefault(),$("#app").toggleClass("sidebar")})).on("click",".close-sidenav",(function(t){t.preventDefault(),$("#app").removeClass("sidebar")})).on("click","#test_config",(function(t){t.preventDefault();var e=$("#create input[name=url]").val(),i=$('#sapconfig input[name="config[override_url]"]').val();i.length&&""!==i&&(e=i);var s={};s.url=e,$(".config-item").each((function(){var t=$(this).data("config");s[t]=$(this).val()})),s.id=$("form[data-item-id]").data("item-id"),s.password&&s.password===o&&(s.password=""),$.post("".concat(n,"test_config"),{data:s},(function(t){alert(t)}))})),$("#pinlist").on("click","a",(function(t){t.preventDefault();var e=$(this),i=e.data("id"),o=e.data("tag");$.get("".concat(n,"items/pintoggle/").concat(i,"/true/").concat(o),(function(t){var n=$(t).filter("#sortable").html();$("#sortable").html(n),e.toggleClass("active")}))})),$("#itemform").on("submit",(function(){var t=$('input[name="config[password]"]').first();t.length>0&&t.attr("value")===o&&t.attr("value","")}))}));var focusSearch=function(t){var e=document.querySelector('input[name="q"]');e&&(t.preventDefault(),e.focus())},openFirstNonHiddenItem=function(t){if(t.target===document.querySelector('input[name="q"]')&&"tiles"===document.querySelector("#search-container select[name=provider]").value){var e=document.querySelector('#sortable section.item-container:not([style="display: none;"]) a');"href"in e&&(t.preventDefault(),window.open(e.href))}},KEY_BINDINGS={"/":focusSearch,Enter:openFirstNonHiddenItem};document.addEventListener("keydown",(function(t){try{t.key in KEY_BINDINGS&&KEY_BINDINGS[t.key](t)}catch(t){}}));var EXPORT_FILE_NAME="HeimdallExport.json",EXPORT_API_URL="api/item";function triggerFileDownload(t,e){var n=document.createElement("a"),i=new Blob([e],{type:"text/plain"});n.href=URL.createObjectURL(i),n.download=EXPORT_FILE_NAME,n.click()}var exportItems=function(t){t.preventDefault(),fetch(EXPORT_API_URL).then((function(t){return 200!==t.status&&window.alert("An error occurred while exporting..."),t.json()})).then((function(t){var e=JSON.stringify(t,null,2);triggerFileDownload(EXPORT_FILE_NAME,e)}))},exportButton=document.querySelector("#item-export");exportButton&&exportButton.addEventListener("click",exportItems);var IMPORT_API_URL="api/item",APP_LOAD_URL="appload",updateStatus=function(t){var e,n=t.item,i=t.errors;console.log(n,i),e=0===i.length?'
  • Imported: '.concat(n.title,"
  • "):'
  • Failed: '.concat(n.title," - ").concat(i[0],"
  • "),document.querySelector(".import-status").innerHTML+=e};function clearStatus(){document.querySelector(".import-status").innerHTML=""}var postToApi=function(t,e){return fetch(IMPORT_API_URL,{method:"POST",cache:"no-cache",redirect:"follow",headers:{"Content-Type":"application/json","X-CSRF-TOKEN":e},body:JSON.stringify(t)})},getCSRFToken=function(){return document.querySelector('input[name="_token"]').value},mergeItemWithAppDetails=function(t,e){return{pinned:1,tags:[0],appid:t.appid,title:t.title,colour:t.colour,url:t.url,appdescription:t.appdescription?t.appdescription:e.description,website:e.website,icon:e.iconview,config:t.description?JSON.parse(t.description):null}},fetchAppDetails=function(t){return null===t||"null"===t?Promise.resolve({}):fetch(APP_LOAD_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app:t})}).then((function(t){return t.json()}))},importItems=function(t){t.forEach((function(t){var e=[];fetchAppDetails(t.appid).catch((function(){return e.push(new Error("Failed to find app id: ".concat(t.appid)))})).then((function(e){var n=mergeItemWithAppDetails(t,e),i=getCSRFToken();return postToApi(n,i)})).catch((function(){return e.push(new Error("Failed to create item: ".concat(t.title)))})).finally((function(){updateStatus({item:t,errors:e})}))}))},readJSON=function(t){return new Promise((function(e,n){try{var i=new FileReader;i.onload=function(t){var n=t.target.result;e(JSON.parse(n))},i.readAsText(t)}catch(t){n(new Error("Unable to read file"))}}))},openFileForImport=function(t){return clearStatus(),readJSON(t).catch((function(t){console.error(t)})).then(importItems)},fileInput=document.querySelector("input[name='import']"),importButton=document.querySelectorAll(".import-button");fileInput&&importButton&&(importButton.forEach((function(t){t.addEventListener("click",(function(){var t=fileInput.files[0];t&&openFileForImport(t)}))})),fileInput.addEventListener("change",openFileForImport,!1)); diff --git a/public/js/fontawesome.js b/public/js/fontawesome.js index a94c589e..0f26818b 100644 --- a/public/js/fontawesome.js +++ b/public/js/fontawesome.js @@ -483,10 +483,14 @@ var icons = { "arrow-rotate-right": [512, 512, [8635, "arrow-right-rotate", "arrow-rotate-forward", "redo"], "f01e", "M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"], "ban": [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"], "check": [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"], + "circle-check": [512, 512, [61533, "check-circle"], "f058", ["M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z", "M371.8 172.2C382.7 183.1 382.7 200.9 371.8 211.8L243.8 339.8C232.9 350.7 215.1 350.7 204.2 339.8L140.2 275.8C129.3 264.9 129.3 247.1 140.2 236.2C151.1 225.3 168.9 225.3 179.8 236.2L224 280.4L332.2 172.2C343.1 161.3 360.9 161.3 371.8 172.2V172.2z"]], + "circle-xmark": [512, 512, [61532, "times-circle", "xmark-circle"], "f057", ["M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z", "M255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1z"]], "cloud-download": [640, 512, [], "f0ed", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-139.9 93L305 412.3c-9.4 9.4-24.6 9.4-33.9 0l-92.7-92.7c-9.4-9.4-9.4-24.6 0-33.9l10.8-10.8c9.6-9.6 25.2-9.3 34.5.5l32.4 34.5V184c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v125.9l32.4-34.5c9.3-9.9 24.9-10.1 34.5-.5l10.8 10.8c9.2 9.3 9.2 24.5-.1 33.9z"], "cogs": [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"], "edit": [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"], "exchange": [512, 512, [], "f0ec", "M0 168v-16c0-13.255 10.745-24 24-24h381.97l-30.467-27.728c-9.815-9.289-10.03-24.846-.474-34.402l10.84-10.84c9.373-9.373 24.568-9.373 33.941 0l82.817 82.343c12.497 12.497 12.497 32.758 0 45.255l-82.817 82.343c-9.373 9.373-24.569 9.373-33.941 0l-10.84-10.84c-9.556-9.556-9.341-25.114.474-34.402L405.97 192H24c-13.255 0-24-10.745-24-24zm488 152H106.03l30.467-27.728c9.815-9.289 10.03-24.846.474-34.402l-10.84-10.84c-9.373-9.373-24.568-9.373-33.941 0L9.373 329.373c-12.497 12.497-12.497 32.758 0 45.255l82.817 82.343c9.373 9.373 24.569 9.373 33.941 0l10.84-10.84c9.556-9.556 9.341-25.113-.474-34.402L106.03 384H488c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"], + "file-arrow-down": [384, 512, ["file-download"], "f56d", ["M256 128V0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V128H256zM288.1 360.1l-80 80c-9.375 9.375-24.56 9.375-33.94 0l-80-80c-9.375-9.375-9.375-24.56 0-33.94C99.72 322.3 105.8 320 112 320s12.28 2.344 16.97 7.031L168 366.1V248C168 234.8 178.8 224 192 224s24 10.75 24 24v118.1l39.03-39.03c9.375-9.375 24.56-9.375 33.94 0S298.3 351.6 288.1 360.1z", "M256 0v128h128L256 0zM255 327L216 366.1V248C216 234.8 205.3 224 192 224S168 234.8 168 248v118.1l-39.03-39.03C124.3 322.3 118.2 320 112 320s-12.28 2.344-16.97 7.031c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94S264.4 317.7 255 327z"]], + "file-arrow-up": [384, 512, ["file-upload"], "f574", ["M256 128V0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V128H256zM288.1 344.1C284.3 349.7 278.2 352 272 352s-12.28-2.344-16.97-7.031L216 305.9V424c0 13.25-10.75 24-24 24s-24-10.75-24-24V305.9l-39.03 39.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94l80-80c9.375-9.375 24.56-9.375 33.94 0l80 80C298.3 320.4 298.3 335.6 288.1 344.1z", "M256 0v128h128L256 0zM208.1 231c-9.375-9.375-24.56-9.375-33.94 0l-80 80c-9.375 9.375-9.375 24.56 0 33.94s24.56 9.375 33.94 0L168 305.9V424C168 437.3 178.8 448 192 448s24-10.75 24-24V305.9l39.03 39.03C259.7 349.7 265.8 352 272 352s12.28-2.344 16.97-7.031c9.375-9.375 9.375-24.56 0-33.94L208.1 231z"]], "list": [512, 512, [], "f03a", "M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"], "pencil": [512, 512, [], "f040", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"], "plus": [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"], diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 8b3143e2..091c2514 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,4 @@ { - "/css/app.css": "/css/app.css?id=9a25947db63214edd4e6f459200dfa62", - "/js/app.js": "/js/app.js?id=50647209eddf7eb990cfe03fcc6652ed" + "/css/app.css": "/css/app.css?id=910562b0b11f9731ff1cdded5e57f7b5", + "/js/app.js": "/js/app.js?id=455ff98b9cf4ee09f73e8521270cea96" } diff --git a/resources/assets/js/itemImport.js b/resources/assets/js/itemImport.js index 5a044a54..8983775a 100644 --- a/resources/assets/js/itemImport.js +++ b/resources/assets/js/itemImport.js @@ -3,33 +3,27 @@ const APP_LOAD_URL = "appload"; /** * - * @param {string|null} appId - * @returns {Promise<{}>|Promise} + * @param {object} item + * @param {array} errors */ -const fetchAppDetails = (appId) => { - if (appId === null) { - return Promise.resolve({}); +const updateStatus = ({ item, errors }) => { + console.log(item, errors); + let statusLine; + if (errors.length === 0) { + statusLine = `
  • Imported: ${item.title}
  • `; + } else { + statusLine = `
  • Failed: ${item.title} - ${errors[0]}
  • `; } - - return fetch(APP_LOAD_URL, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ app: appId }), - }) - .then((response) => response.json()) - .catch(() => ({})); + document.querySelector(".import-status").innerHTML += statusLine; }; /** * - * @returns {string} */ -const getCSRFToken = () => { - const tokenSelector = 'input[name="_token"]'; - return document.querySelector(tokenSelector).value; -}; +function clearStatus() { + const statusContainer = document.querySelector(".import-status"); + statusContainer.innerHTML = ""; +} /** * @@ -48,11 +42,20 @@ const postToApi = (data, csrfToken) => body: JSON.stringify(data), }); +/** + * + * @returns {string} + */ +const getCSRFToken = () => { + const tokenSelector = 'input[name="_token"]'; + return document.querySelector(tokenSelector).value; +}; + /** * * @param {object} item * @param {object} appDetails - * @returns {undefined} + * @returns {object} */ const mergeItemWithAppDetails = (item, appDetails) => ({ pinned: 1, @@ -72,21 +75,51 @@ const mergeItemWithAppDetails = (item, appDetails) => ({ config: item.description ? JSON.parse(item.description) : null, }); +/** + * + * @param {string|null} appId + * @returns {Promise<{}>|Promise} + */ +const fetchAppDetails = (appId) => { + if (appId === null || appId === "null") { + return Promise.resolve({}); + } + + return fetch(APP_LOAD_URL, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ app: appId }), + }).then((response) => response.json()); +}; + /** * * @param {array} items */ const importItems = (items) => { items.forEach((item) => { + const errors = []; + fetchAppDetails(item.appid) + .catch(() => + errors.push(new Error(`Failed to find app id: ${item.appid}`)) + ) .then((appDetails) => { const itemWithAppDetails = mergeItemWithAppDetails(item, appDetails); const csrfToken = getCSRFToken(); return postToApi(itemWithAppDetails, csrfToken); }) - .then((response) => { - console.log(response); + .catch(() => + errors.push(new Error(`Failed to create item: ${item.title}`)) + ) + .finally(() => { + updateStatus({ + item, + errors, + }); }); }); }; @@ -97,32 +130,47 @@ const importItems = (items) => { * @returns {Promise} */ const readJSON = (file) => - new Promise((resolve) => { - const reader = new FileReader(); + new Promise((resolve, reject) => { + try { + const reader = new FileReader(); - reader.onload = (e) => { - const contents = e.target.result; - resolve(JSON.parse(contents)); - }; + reader.onload = (event) => { + const contents = event.target.result; + resolve(JSON.parse(contents)); + }; - reader.readAsText(file); + reader.readAsText(file); + } catch (e) { + reject(new Error("Unable to read file")); + } }); /** * * @param {Event} event */ -const openFileForImport = (event) => { - const file = event.target.files[0]; - if (!file) { - return; - } +const openFileForImport = (file) => { + clearStatus(); - readJSON(file).then(importItems); + return readJSON(file) + .catch((error) => { + console.error(error); + }) + .then(importItems); }; const fileInput = document.querySelector("input[name='import']"); +const importButton = document.querySelectorAll(".import-button"); -if (fileInput) { +if (fileInput && importButton) { + importButton.forEach((importButton) => { + importButton.addEventListener("click", () => { + const file = fileInput.files[0]; + if (!file) { + return; + } + openFileForImport(file); + }); + }); fileInput.addEventListener("change", openFileForImport, false); } diff --git a/resources/assets/sass/_app.scss b/resources/assets/sass/_app.scss index 47bd87df..9a6e3742 100644 --- a/resources/assets/sass/_app.scss +++ b/resources/assets/sass/_app.scss @@ -1141,4 +1141,22 @@ select:-webkit-autofill:focus { a:not(:focus-within) { opacity: 0.4; } +} + +.import-status { + list-style: none; + li { + display: flex; + align-items: center; + margin: 6px 0; + svg { + margin-right: 8px; + } + &.success svg { + color: $app-green; + } + &.fail svg { + color: $app-red; + } + } } \ No newline at end of file diff --git a/resources/lang/en/app.php b/resources/lang/en/app.php index 974f0650..9b38b4fe 100644 --- a/resources/lang/en/app.php +++ b/resources/lang/en/app.php @@ -72,6 +72,7 @@ return array ( 'apps.only_admin_account' => 'Only if you have admin-account!', 'apps.autologin_url' => 'Auto login url', 'apps.show_deleted' => 'Showing Deleted Applications', + 'app.import' => 'Import', 'dashboard' => 'Home dashboard', 'user.user_list' => 'Users', 'user.add_user' => 'Add user', diff --git a/resources/views/items/import.blade.php b/resources/views/items/import.blade.php index 979a8292..5e30d2c8 100644 --- a/resources/views/items/import.blade.php +++ b/resources/views/items/import.blade.php @@ -4,9 +4,9 @@
    -
    {{ __('import.title') }}
    +
    {{ __('app.import') }}
    - + {{ __('app.buttons.cancel') }}
    @@ -16,12 +16,18 @@
    +
    + +
      +
    +
    + diff --git a/resources/views/items/list.blade.php b/resources/views/items/list.blade.php index 0f177d7c..f72e46f5 100644 --- a/resources/views/items/list.blade.php +++ b/resources/views/items/list.blade.php @@ -11,8 +11,6 @@
    -{{-- {{ __('import') }}--}} - {{ __('export') }} {{ __('app.buttons.downloadapps') }} {{ __('app.buttons.add') }} {{ __('app.buttons.cancel') }} diff --git a/resources/views/settings/list.blade.php b/resources/views/settings/list.blade.php index 9a9d3e79..923b65a5 100644 --- a/resources/views/settings/list.blade.php +++ b/resources/views/settings/list.blade.php @@ -2,13 +2,18 @@ @section('content') - @foreach ($groups as $group) + @foreach ($groups as $index => $group)
    {{ __($group->title) }} -
    + @if($index === 0) + + @endif