first part of new theme integration

This commit is contained in:
2021-09-07 20:52:58 +02:00
parent 1c5350c8c6
commit 4ae9e36050
53 changed files with 4249 additions and 57 deletions

View File

@@ -13,7 +13,3 @@
*= require_tree .
*= require_self
*/
body {
background-color: rgb(21, 32, 43);
}

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the characters controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the home controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the protected controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the RpWorld controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the wow_mounts controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the wow_pets controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

View File

@@ -1,3 +0,0 @@
// Place all the styles related to the WowReputation controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -8,12 +8,18 @@ import "@hotwired/turbo-rails"
import * as ActiveStorage from "@rails/activestorage"
import "channels"
// Additional JS
import "bootstrap"
import "../stylesheets/application"
import "select2"
import "moment"
// sass
import "../stylesheets/application"
import "@fortawesome/fontawesome-free/css/all"
import "flag-icon-css/css/flag-icon"
const images = require.context("../images", true);
document.addEventListener("turbolinks:load", () => {
$('[data-toggle="tooltip"]').tooltip()
$('[data-toggle="popover"]').popover()

View File

@@ -1 +1,21 @@
//Core files
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "config/saas/variables";
@import "config/saas/custom-variables";
@import "~bootstrap/scss/bootstrap";
// Structure
@import "custom/structure/general";
@import "custom/structure/left-menu";
@import "custom/structure/topbar";
@import "custom/structure/right-sidebar";
@import "custom/structure/page-head";
@import "custom/structure/footer";
// horizontal nav
@import "custom/structure/horizontal-nav";
@import "custom/components/mixins";
@import "custom/components/accordions";
@import "custom/components/dropdown";
@import "custom/components/nav";

View File

@@ -0,0 +1,112 @@
//
// custom-variables.scss
//
// Background left-sidebar
$bg-leftbar: linear-gradient(135deg, #8f75da 0%, #727cf5 60%);
$bg-leftbar-light: #ffffff;
$bg-leftbar-dark: #313a46;
$bg-topnav: #313a46;
// Deatched left sidenav
$bg-detached-leftbar: #ffffff;
// Topbar Height
$topbar-height: 70px;
// Logo Display
$logo-light-display: block;
$logo-dark-display: none;
// Logo auth display
$logo-auth-light-display: none;
$logo-auth-dark-display: block;
// Leftbar width
$leftbar-width: 260px;
// Boxed Layout
$boxed-layout-width: 1300px;
$boxed-layout-bg: #ffffff;
// Menu item colors (Default-dark)
$menu-item: #cedce4;
$menu-item-hover: #ffffff;
$menu-item-active: #ffffff;
// Menu item colors (light)
$menu-item-light: #6c757d;
$menu-item-light-hover: #727cf5;
$menu-item-light-active: #727cf5;
// Detached Menu item colors
$menu-item-dark: #6c757d;
$menu-item-dark-hover: #727cf5;
$menu-item-dark-active: #727cf5;
// Dark sidenav Menu item color
$sidebar-dark-menu-item: #8391a2;
$sidebar-dark-menu-item-hover: #bccee4;
$sidebar-dark-menu-item-active: #ffffff;
// Rightbar Width
$rightbar-width: 280px;
$rightbar-bg: #ffffff;
$rightbar-title-bg: #313a46;
$rightbar-title-color: #ffffff;
$rightbar-title-btn-bg: #444e5a;
$rightbar-title-btn-color: #ffffff;
$rightbar-overlay-bg: #37404a;
// Topbar Background
$bg-topbar: #ffffff;
$bg-topbar-dark: #313a46;
// Topbar Search
$bg-topbar-search: #f1f3fa;
$bg-topbar-dark-search: #3c4655;
// Helpbox
$help-box-light-bg: rgba(255,255,255,0.07);
$help-box-dark-bg: #727cf5;
// Font weight
$font-weight-semibold: 600;
// Dropdown Large
$dropdown-lg-width: 320px;
// Page title color
$page-title-color: inherit;
// Nav-pill background
$nav-pills-bg: #eef2f7;
// Custom-accordion
$custom-accordion-title-color: #313a46;
// Dragula demo background
$dragula-bg: #f7f9fb;
// Form wizard header background
$form-wizard-header-bg: #eef2f7;
// Text title color
$text-title-color: #6c757d;
// card Loader background
$card-loader-bg: #313a46;
// Chat widget
$chat-primary-user-bg: #fef5e4;
$chat-secondary-user-bg: #f1f3fa;
// User authentication Background
$auth-bg: #ffffff;
$auth-bg-pattern-img: url("../images/bg-pattern-light.svg");
// Apex chart
$apex-grid-color: #f9f9fd;
// Hero
$hero-bg: linear-gradient(to bottom,#8669ed,#727cf5);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
//
// accordions.scss
//
.custom-accordion {
.card {
box-shadow: none;
}
.card-header {
background-color: $gray-100;
}
.card-body {
border: 1px solid $gray-100;
}
.accordion-arrow {
font-size: 1.2rem;
position: absolute;
right: 0;
}
a {
&.collapsed {
i.accordion-arrow {
&:before {
content: "\F142";
}
}
}
}
}
.custom-accordion-title {
color: $custom-accordion-title-color;
position: relative;
&:hover {
color: lighten($custom-accordion-title-color,7.5%)
}
}
.accordion {
>.card {
>.card-header {
border-radius: 0;
margin-bottom: -1px;
}
}
}

View File

@@ -0,0 +1,92 @@
//
// dropdown.scss
//
.dropdown-menu {
box-shadow: $box-shadow;
}
.dropdown-menu-animated {
&.dropdown-menu-end[style] {
left: auto!important;
right: 0!important;
}
}
// Dropdown Animated (Custom)
.dropdown-menu-animated {
animation-name: DropDownSlide;
animation-duration: .3s;
animation-fill-mode: both;
position: absolute;
margin: 0;
z-index: 1000;
&.show {
top: 100%!important;
}
i {
display: inline-block;
}
&.dropdown-menu[data-popper-placement^=right],
&.dropdown-menu[data-popper-placement^=top],
&.dropdown-menu[data-popper-placement^=left]{
top: auto !important;
animation: none !important;
}
}
@keyframes DropDownSlide {
100% {
transform: translateY(0)
}
0% {
transform: translateY(10px)
}
}
// Dropdown Large (Custom)
@media (min-width: 600px) {
.dropdown-lg {
width: $dropdown-lg-width;
}
}
// Dropdown with Icons
.dropdown-icon-item {
display: block;
border-radius: 3px;
line-height: 34px;
text-align: center;
padding: 15px 0 9px;
display: block;
border: 1px solid transparent;
color: $dropdown-link-color;
img {
height: 24px;
}
span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&:hover {
background-color: $dropdown-link-hover-bg;
color: $dropdown-link-hover-color;
}
}
// Dropdown arrow hide
.arrow-none {
&:after {
display: none;
}
}

View File

@@ -0,0 +1,8 @@
//
// mixins.scss
//
// Components
@import "mixins/background-variant";
@import "mixins/buttons";
@import "mixins/badge";

View File

@@ -0,0 +1,46 @@
//
// tabs.scss
//
.nav-tabs,.nav-pills {
> li {
> a {
color: $gray-700;
font-weight: $font-weight-semibold;
}
}
}
.nav-pills {
> a {
color: $gray-700;
font-weight: $font-weight-semibold;
}
}
.bg-nav-pills {
background-color: $nav-pills-bg;
}
//
// nav-bordered
//
.nav-tabs.nav-bordered {
border-bottom: 2px solid rgba($gray-600, 0.2);
.nav-item {
margin-bottom: -1px;
}
li {
a {
border: 0;
padding: 0.625rem 1.25rem;
}
a.active {
border-bottom: 2px solid $primary;
}
}
}

View File

@@ -0,0 +1,5 @@
// Background lighten
@mixin bg-variant-light($color) {
background-color: rgba($color, 0.25) !important;
}

View File

@@ -0,0 +1,14 @@
// Lighten badge
@mixin badge-variant-light($bg) {
color: $bg;
background-color: rgba($bg, 0.18);
}
// Outline badge
@mixin badge-variant-outline($bg) {
color: $bg;
border: 1px solid $bg;
background-color: transparent;
}

View File

@@ -0,0 +1,5 @@
// Button shadow
@mixin button-shadow($color) {
box-shadow: $btn-box-shadow rgba($color, 0.5);
}

View File

@@ -0,0 +1,82 @@
//
// footer.scss
//
.footer {
border-top: 1px solid rgba($gray-600, 0.2);
bottom: 0;
padding: 19px 24px 20px;
position: absolute;
right: 0;
color: $gray-600;
left: $leftbar-width;
.footer-links {
a {
color: $gray-600;
margin-left: 1.5rem;
transition: all .4s;
&:hover {
color: $gray-900;
}
&:first-of-type {
margin-left: 0;
}
}
}
}
@include media-breakpoint-down(md) {
.footer {
left: 0 !important;
text-align: center;
}
}
// Used for account authentication pages
.footer-alt {
left: 0;
border: none;
text-align: center;
}
// Layout - Topnav
body[data-layout="topnav"] {
.footer {
left: 0 !important;
padding: 19px 0 20px;
}
&[data-layout-mode="boxed"] {
.footer {
max-width: $boxed-layout-width;
}
}
}
body[data-layout-mode="boxed"] {
.footer {
border: none;
margin: 0 auto;
background-color: $body-bg;
box-shadow: $box-shadow;
max-width: calc(#{$boxed-layout-width} - #{$leftbar-width});
}
&[data-leftbar-compact-mode="condensed"] {
.footer {
max-width: calc(#{$boxed-layout-width} - 70px);
}
}
}
body[data-layout="detached"] {
.footer {
left: 0;
.container-fluid {
max-width: 100%;
padding: 0;
}
}
}

View File

@@ -0,0 +1,19 @@
//
// general.scss
//
html {
position: relative;
min-height: 100%;
}
body {
overflow-x: hidden;
}
// Fix event bubbling on iOS devices
@supports (-webkit-overflow-scrolling: touch) {
body {
cursor: pointer;
}
}

View File

@@ -0,0 +1,260 @@
//
// horizontal-nav.scss
//
.topnav-navbar {
padding: 0;
margin: 0;
min-height: 70px;
position: relative;
left: 0 !important;
z-index: 1002;
.topnav-logo {
line-height: 70px;
float: left;
padding-right: 20px;
min-width: 160px;
.topnav-logo-sm {
display: none;
}
}
.navbar-toggle {
position: relative;
cursor: pointer;
float: left;
margin: 27px 20px;
padding: 0;
background-color: transparent;
border: none;
.lines {
width: 25px;
display: block;
position: relative;
height: 16px;
transition: all .5s ease;
}
span {
height: 2px;
width: 100%;
background-color: rgba($dark, 0.8);
display: block;
margin-bottom: 5px;
transition: transform .5s ease;
}
&.open {
span {
position: absolute;
&:first-child {
top: 7px;
transform: rotate(45deg);
}
&:nth-child(2) {
visibility: hidden;
}
&:last-child {
width: 100%;
top: 7px;
transform: rotate(-45deg);
}
}
}
}
.app-search {
float: left;
}
}
.topnav {
background: $bg-topnav;
.topnav-menu {
margin: 0;
padding: 0;
}
.navbar-nav {
.nav-link {
font-size: .9375rem;
position: relative;
padding: 1rem 1.3rem;
}
}
.nav-item {
&.active {
> a {
color: $menu-item-light-active;
}
}
}
.navbar-dark {
.dropdown {
&.active, &:active {
>.nav-link {
color: $white;
}
}
}
}
}
.arrow-down {
display: inline-block;
&:after {
border-color: initial;
border-style: solid;
border-width: 0 0 1px 1px;
content: "";
height: .4em;
display: inline-block;
right: 5px;
top: 50%;
margin-left: 10px;
transform: rotate(-45deg) translateY(-50%);
transform-origin: top;
transition: all .3s ease-out;
width: .4em;
}
}
body[data-layout="topnav"] {
.container-fluid {
padding-right: $grid-gutter-width;
padding-left: $grid-gutter-width;
}
}
@include media-breakpoint-up(lg) {
body[data-layout="topnav"] {
.container-fluid {
max-width: 95%;
}
&[data-layout-mode="boxed"]{
.container-fluid {
max-width: 97%;
}
}
}
.topnav {
.navbar-nav {
.nav-item {
&:first-of-type {
.nav-link {
padding-left: 0;
}
}
}
}
.dropdown {
.dropdown-menu {
margin-top: 0;
border-radius: 0 0 $dropdown-border-radius $dropdown-border-radius;
min-width: calc(#{$dropdown-min-width} + 1.5rem);
@include font-size(calc(#{$dropdown-font-size} - 0.01rem));
.arrow-down {
&::after {
right: 15px;
transform: rotate(-135deg) translateY(-50%);
position: absolute;
}
}
.dropdown {
.dropdown-menu {
position: absolute;
top: 0;
left: 100%;
display: none
}
}
}
&:hover {
> .dropdown-menu {
display: block;
}
}
}
.dropdown:hover > .dropdown-menu >.dropdown:hover > .dropdown-menu {
display: block
}
}
.dropdown.active > a.dropdown-item {
color: $dropdown-link-active-color;
@include gradient-bg($dropdown-link-active-bg);
}
}
@include media-breakpoint-up(xxl) {
body[data-layout="topnav"] {
.container-fluid {
max-width: 85%;
}
}
}
@include media-breakpoint-up(lg) {
.navbar-toggle {
display: none;
}
}
@include media-breakpoint-down(lg) {
.topnav-navbar {
.topnav-logo-lg {
display: none;
}
.topnav-logo {
min-width: 50px;
padding-right: 0;
text-align: center;
}
.topnav-logo-sm {
display: block !important;
}
}
.topnav {
.navbar-nav {
.nav-link {
padding: 0.75rem 1.3rem;
}
}
.dropdown {
.dropdown-menu {
background-color: transparent;
border: none;
box-shadow: none;
padding-left: 15px;
}
.dropdown-item {
position: relative;
background-color: transparent;
}
}
.navbar-dark {
.dropdown {
.dropdown-item {
color: rgba($white, 0.5);
&.active, &:active {
color: $white;
}
}
}
}
.arrow-down {
&::after {
right: 15px;
position: absolute;
}
}
}
}

View File

@@ -0,0 +1,951 @@
//
// menu.scss
//
// Logo
.logo {
display: block;
line-height: $topbar-height;
width: $leftbar-width;
position: fixed;
top: 0;
span.logo-lg {
display: block;
}
span.logo-sm {
display: none;
}
&.logo-light {
display: $logo-light-display;
}
&.logo-dark {
display: $logo-dark-display;
}
}
// Wrapper
.wrapper {
height: 100%;
overflow: hidden;
width: 100%;
}
//Content Page
.content-page {
margin-left: $leftbar-width;
overflow: hidden;
padding: $topbar-height 12px 65px;
min-height: 100vh;
}
// Left Side-menu (Default dark)
.leftside-menu {
width: $leftbar-width;
z-index: 10;
background: $bg-leftbar;
bottom: 0;
position: fixed;
top: 0;
padding-top: $topbar-height;
box-shadow: $box-shadow;
}
// Side-nav
.side-nav {
padding-left: 0;
list-style-type: none;
ul {
list-style-type: none;
}
.side-nav-link {
color: $menu-item;
display: block;
padding: 10px 30px;
font-size: 0.9375rem;
position: relative;
transition: all 0.4s;
list-style: none;
&:hover,
&:focus,
&:active {
color: $menu-item-hover;
text-decoration: none;
}
span {
vertical-align: middle;
}
i {
display: inline-block;
line-height: 1.0625rem;
margin: 0 10px 0 0;
font-size: 1.1rem;
vertical-align: middle;
width: 20px;
}
}
.menu-arrow {
transition: transform .15s;
position: absolute;
right: 30px;
display: inline-block;
font-family: 'Material Design Icons';
text-rendering: auto;
line-height: 1.5rem;
font-size: 1.1rem;
transform: translate(0, 0);
&:before {
content: "\F0142";
}
}
.fa-chevron-right {
transition: transform .15s;
position: absolute;
right: 30px;
display: inline-block;
text-rendering: auto;
line-height: 1.5rem;
font-size: 1.1rem;
transform: translate(0, 0);
}
.badge{
margin-top: 3px;
}
.side-nav-item {
>a[aria-expanded="true"] {
> span.menu-arrow {
transform: rotate(90deg);
}
> span.fa-chevron-right {
transform: rotate(90deg);
}
}
&.menuitem-active {
> a:not(.collapsed) {
> span.menu-arrow {
transform: rotate(90deg);
}
> span.fa-chevron-right {
transform: rotate(90deg);
}
}
}
}
.side-nav-title {
padding: 12px 30px;
letter-spacing: .05em;
pointer-events: none;
cursor: default;
font-size: 0.6875rem;
text-transform: uppercase;
color: $menu-item;
font-weight: $font-weight-bold;
}
.menuitem-active {
> a {
color: $menu-item-active !important;
}
}
}
*[dir="ltr"] {
.side-nav {
.side-nav-item {
.menu-arrow {
&:before {
content: "\F0141" !important;
}
}
}
}
}
.side-nav-second-level,
.side-nav-third-level,
.side-nav-forth-level {
padding-left: 0;
li {
a {
padding: 8px 30px 8px 65px;
color: $menu-item;
display: block;
position: relative;
transition: all 0.4s;
font-size: 0.89rem;
&:focus,
&:hover {
color: $menu-item-hover;
}
.menu-arrow {
line-height: 1.3rem;
}
}
&.active {
>a {
color: $menu-item-active;
}
}
}
}
.side-nav-third-level {
li {
a {
padding: 8px 30px 8px 80px;
}
}
}
.side-nav-forth-level {
li {
a {
padding: 8px 30px 8px 100px;
}
}
}
// Enlarge menu
body[data-leftbar-compact-mode="condensed"]:not(.authentication-bg) {
min-height: 1600px;
.wrapper {
// Side menu
.leftside-menu {
position: absolute;
padding-top: 0;
width: 70px;
z-index: 5;
padding-top: $topbar-height;
.simplebar-mask,
.simplebar-content-wrapper {
overflow: visible !important;
}
.simplebar-scrollbar {
display: none !important;
}
.simplebar-offset {
bottom: 0 !important;
}
.logo {
width: 70px;
z-index: 1;
background: $bg-leftbar;
}
}
// Help Box
.help-box {
display: none;
}
// Content Page
.content-page {
margin-left: 70px;
}
//Navbar & Footer
.navbar-custom,
.footer {
left: 70px;
}
}
// Sidebar Menu
.side-nav {
.side-nav-title,
.badge,
.menu-arrow{
display: none !important;
}
.collapse,
.collapsing{
display: none;
height: inherit !important;
transition: none !important;
.side-nav-second-level,
.side-nav-third-level,
.side-nav-forth-level {
display: none !important;
}
}
.side-nav-item {
position: relative;
white-space: nowrap;
.side-nav-link {
padding: 15px 20px;
min-height: 54px;
transition: none;
&:hover,
&:active,
&:focus {
color: $menu-item-hover;
}
i {
font-size: 1.125rem;
margin-right: 20px;
margin-left: 6px;
}
span {
display: none;
padding-left: 10px;
}
}
&:hover {
.side-nav-link {
position: relative;
width: 260px;
color: $white;
background: $bg-leftbar;
span {
display: inline;
}
}
> ul {
display: block !important;
left: 70px;
position: absolute;
width: 190px;
height: auto !important;
padding: 5px 0;
z-index: 9999;
background: $bg-leftbar;
box-shadow: $box-shadow;
a {
padding: 8px 20px;
position: relative;
width: 190px;
&:hover {
color: $menu-item-hover;
}
}
}
> .collapse,
> .collapsing {
display: block !important;
transition: none !important;
> ul {
display: block !important;
left: 70px;
position: absolute;
width: 190px;
background: $bg-leftbar;
box-shadow: $box-shadow;
a {
box-shadow: none;
padding: 8px 20px;
position: relative;
width: 190px;
z-index: 6;
&:hover {
color: $menu-item-hover;
}
}
li {
&:hover {
> .collapse {
display: block !important;
height: auto !important;
transition: none !important;
>ul {
display: block;
left: 190px;
top: 0;
position: absolute;
width: 190px;
}
}
}
}
}
}
}
}
}
.logo {
span.logo-lg {
display: none;
}
span.logo-sm {
display: block;
line-height: 70px;
color: $primary;
}
}
}
@include media-breakpoint-down(md) {
body {
overflow-x: hidden;
}
.leftside-menu {
box-shadow: $box-shadow;
display: none;
z-index: 10 !important;
}
.sidebar-enable {
.leftside-menu {
display: block;
}
}
.navbar-nav.navbar-right {
float: right;
}
.content-page {
margin-left: 0 !important;
padding: 65px 10px 65px;
}
body[data-leftbar-compact-mode="condensed"] {
.leftside-menu {
margin-left: 0px;
}
}
.logo {
span.logo-lg {
display: block;
}
span.logo-sm {
display: none;
}
}
}
/// Help-box
.help-box {
border-radius: 5px;
padding: 20px;
margin: 65px 25px 25px;
position: relative;
background-color: $help-box-light-bg;
.close-btn {
position: absolute;
right: 10px;
top: 10px;
}
}
// Light
body[data-leftbar-theme="light"] {
.help-box {
background-color: $primary;
}
.logo {
&.logo-light {
display: $logo-dark-display;
}
&.logo-dark {
display: $logo-light-display;
}
}
}
// Layout -topnav
body[data-layout="topnav"] {
.content-page {
margin-left: 0 !important;
padding: 0 0 60px 0;
}
}
// Layout-boxed
body[data-layout-mode="boxed"] {
background-color: $boxed-layout-bg;
.wrapper {
max-width: $boxed-layout-width;
margin: 0 auto;
background-color: $body-bg;
box-shadow: $box-shadow;
}
&[data-leftbar-compact-mode="condensed"] {
.logo {
position: relative;
margin-top: -$topbar-height;
}
}
}
// Scrollable Layout
@include media-breakpoint-up(xl) {
body[data-leftbar-compact-mode="scrollable"]:not([data-layout="topnav"]) {
padding-bottom: 0;
.wrapper {
display: flex;
}
.leftside-menu {
position: relative;
min-width: $leftbar-width;
max-width: $leftbar-width;
padding-top: 0;
}
.logo {
position: relative;
margin-top: 0;
}
.content-page {
margin-left: 0;
width: 100%;
padding-bottom: 60px;
}
}
}
// Detached Left sidebar
body[data-layout="detached"] {
padding-bottom: 0;
@include media-breakpoint-up(lg) {
.container-fluid {
max-width: 95%;
}
}
&[data-layout-mode="boxed"] {
.wrapper {
max-width: 100%;
}
}
.wrapper {
display: flex;
overflow: inherit;
}
.content-page {
margin-left: 0;
overflow: hidden;
padding: 0 15px 5px 30px;
position: relative;
margin-right: -15px;
width: 100%;
padding-bottom: 60px;
}
.leftside-menu {
position: relative;
background: $bg-detached-leftbar !important;
min-width: $leftbar-width;
max-width: $leftbar-width;
box-shadow: $box-shadow;
margin-top: 30px;
padding-top: 0 !important;
z-index: 1001 !important;
.side-nav {
.side-nav-link {
color: $menu-item-dark !important;
&:hover,
&:focus,
&:active {
color: $menu-item-dark-hover !important;
}
}
.side-nav-second-level,
.side-nav-third-level,
.side-nav-forth-level {
li {
a {
color: $menu-item-dark;
&:focus,
&:hover {
color: $menu-item-dark-hover;
}
}
&.mm-active {
> a {
color: $menu-item-dark-active;
}
}
}
}
.menuitem-active {
> a {
color: $menu-item-dark-active !important;
}
}
.side-nav-title {
color: $menu-item-dark;
}
}
}
.leftbar-user {
padding: 30px 20px;
text-align: center;
.leftbar-user-name {
font-weight: 700;
color: $dark;
margin-left: 12px;
margin-top: 8px;
display: block;
}
}
@include media-breakpoint-down(md) {
&.sidebar-enable {
.leftside-menu {
position: fixed;
left: 0;
overflow-y: auto;
margin-top: 70px;
}
}
.wrapper {
max-width: 100%;
}
.content-page {
margin-left: 0 !important;
padding: 0 10px 60px 10px;
}
.lang-switch {
display: none;
}
&[data-leftbar-compact-mode="condensed"] {
&.sidebar-enable {
.leftside-menu {
margin-top: 0px;
}
}
}
}
// Enlarge menu
&[data-leftbar-compact-mode="condensed"] {
.wrapper {
// Side menu
.leftside-menu {
max-width: 70px;
min-width: 70px;
position: relative;
}
.leftbar-user {
display: none;
}
// Content Page
.content-page {
margin-left: 0;
}
//Footer
.footer {
left: 0;
}
}
// Sidebar Menu
.side-nav {
.side-nav-item {
.side-nav-link {
&:hover,
&:active,
&:focus {
color: $menu-item-hover;
}
}
&:hover {
.side-nav-link {
background: $primary;
color: $white !important;
transition: none;
}
ul {
background: $bg-leftbar-light !important;
box-shadow: $box-shadow;
a {
&:hover {
color: $menu-item-light-hover !important;
}
}
}
}
}
}
}
}
// reaponsive detached mode
@include media-breakpoint-up(lg) {
body[data-layout="detached"] {
&[data-leftbar-compact-mode="scrollable"] {
.wrapper {
padding-top: 70px;
}
}
}
}
.button-menu-mobile {
.lines {
width: 18px;
display: block;
position: relative;
height: 16px;
transition: all .5s ease;
margin-top: 26px;
margin-left: 10px;
}
span {
height: 2px;
width: 100%;
background-color: rgba($white, 0.8);
display: block;
margin-bottom: 5px;
transition: transform .5s ease;
&:nth-of-type(2) {
width: 24px;
}
}
&.disable-btn {
display: none;
}
}
// Light sidebar
body[data-leftbar-theme="light"] {
.leftside-menu {
background: $bg-leftbar-light;
.logo {
background: $bg-leftbar-light !important;
}
}
.side-nav {
.side-nav-link {
color: $menu-item-light;
&:hover,
&:focus,
&:active {
color: $menu-item-light-hover;
}
}
.menuitem-active {
> a {
color: $menu-item-dark-active !important;
}
}
.side-nav-title {
color: $menu-item-light;
}
.side-nav-second-level,
.side-nav-third-level,
.side-nav-forth-level {
li {
a {
color: $menu-item-light;
&:focus,
&:hover {
color: $menu-item-light-hover;
}
}
&.active {
>a {
color: $menu-item-light-active;
}
}
}
}
}
// Enlarge menu
&[data-leftbar-compact-mode="condensed"] {
// Sidebar Menu
.side-nav {
.side-nav-item {
.side-nav-link {
&:hover,
&:active,
&:focus {
color: $menu-item-hover;
}
}
&:hover {
.side-nav-link {
background: $primary;
color: $white !important;
transition: none;
}
> ul {
background: $bg-leftbar-light;
box-shadow: $box-shadow;
a {
&:hover {
color: $menu-item-light-hover;
}
}
}
> .collapse,
> .collapsing {
> ul {
background: $bg-leftbar-light;
a {
&:hover {
color: $menu-item-light-hover;
}
}
}
}
}
}
}
}
}
// Dark sidenav
body[data-leftbar-theme="dark"] {
.leftside-menu {
background: $bg-leftbar-dark;
.logo {
background: $bg-leftbar-dark !important;
}
}
.side-nav {
.side-nav-link {
color: $sidebar-dark-menu-item;
&:hover,
&:focus,
&:active {
color: $sidebar-dark-menu-item-hover;
}
}
.menuitem-active {
> a {
color: $sidebar-dark-menu-item-active !important;
}
}
.side-nav-title {
color: $sidebar-dark-menu-item;
}
.side-nav-second-level,
.side-nav-third-level,
.side-nav-forth-level {
li {
a {
color: $sidebar-dark-menu-item;
&:focus,
&:hover {
color: $sidebar-dark-menu-item-hover;
}
}
&.active {
>a {
color: $sidebar-dark-menu-item-active;
}
}
}
}
}
// Enlarge menu
&[data-leftbar-compact-mode="condensed"] {
// Sidebar Menu
.side-nav {
.side-nav-item {
.side-nav-link {
&:hover,
&:active,
&:focus {
color: $sidebar-dark-menu-item-hover;
}
}
&:hover {
.side-nav-link {
background: $primary;
color: $white !important;
transition: none;
}
> ul {
background: $bg-leftbar-dark;
box-shadow: $box-shadow;
a {
&:hover {
color: $sidebar-dark-menu-item-hover;
}
}
}
> .collapse,
> .collapsing {
> ul {
background: $bg-leftbar-dark;
}
}
}
}
}
}
}

View File

@@ -0,0 +1,72 @@
//
// page-head.scss
//
.page-title-box {
.page-title {
font-size: 18px;
margin: 0;
line-height: 75px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: $page-title-color;
}
.page-title-right {
float: right;
margin-top: 20px;
}
.breadcrumb {
padding-top: 8px;
}
}
.page-title-box-sm {
.page-title {
line-height: 1 !important;
margin-bottom: 25px;
}
.page-title-right {
float: right;
margin-top: 0;
}
.breadcrumb {
padding-top: 0;
margin-top: -3px !important;
}
}
.text-title {
color: $text-title-color;
&:hover {
color: $text-title-color;
}
}
@include media-breakpoint-down(md) {
.page-title-box {
.page-title {
display: block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
line-height: 70px;
}
.breadcrumb {
display: none;
}
.page-title-right {
display: none;
}
}
}
@media (max-width: 419px) {
.page-title-box .breadcrumb {
display: none;
}
}

View File

@@ -0,0 +1,68 @@
//
// right-sidebar.scss
//
/* rtl:begin:options: {
"autoRename": true,
"stringMap":[]
} */
.end-bar {
background-color: $rightbar-bg;
box-shadow: 0 0 24px 0 rgba($dark, 0.1), 0 1px 0 0 rgba($dark, 0.08);
display: block;
position: fixed;
transition: all 200ms ease-out;
width: $rightbar-width;
z-index: 9999;
float: right !important;
right: -($rightbar-width + 10px);
top: 0;
bottom: 0;
padding-bottom: 80px;
.rightbar-title {
background-color: $rightbar-title-bg;
padding: 27px 25px;
color: $rightbar-title-color;
}
.end-bar-toggle {
background-color: $rightbar-title-btn-bg;
height: 24px;
width: 24px;
line-height: 22px;
color: $rightbar-title-btn-color;
text-align: center;
border-radius: 50%;
margin-top: -4px;
}
}
.rightbar-overlay {
background-color: $rightbar-overlay-bg;
opacity: 0.1;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: none;
z-index: 9998;
transition: all .2s ease-out;
}
.end-bar-enabled {
.end-bar {
right: 0;
}
.rightbar-overlay {
display: block;
}
}
@include media-breakpoint-down(md) {
.end-bar {
overflow: auto;
}
}

View File

@@ -0,0 +1,388 @@
//
// topbar.scss
//
.navbar-custom {
padding: 0 $grid-gutter-width;
background-color: $bg-topbar;
box-shadow: $box-shadow;
min-height: $topbar-height;
position: fixed;
left: $leftbar-width;
top: 0;
right: 0;
z-index: 1001;
.topbar-left {
background-color: $bg-topbar;
height: $topbar-height;
position: fixed;
z-index: 1;
width: $leftbar-width;
text-align: center;
top: 0;
left: 0;
.logo {
line-height: $topbar-height;
i {
display: none;
}
}
}
.topbar-menu {
position: relative;
z-index: 1;
li {
float: left;
max-height: $topbar-height;
.show {
&.nav-link {
color: $gray-700;
}
}
}
.nav-link {
padding: 0;
color: $gray-600;
min-width: 32px;
display: block;
text-align: center;
margin: 0 10px;
position: relative;
}
}
.app-search {
position: static;
overflow-y: hidden;
form {
padding: calc(#{$topbar-height - 38px} / 2) 5px calc(#{$topbar-height - 38px} / 2) 0;
overflow: hidden;
max-width: 320px;
}
}
}
.topbar-dropdown {
.nav-link {
line-height: $topbar-height;
}
}
/* Search */
.app-search {
.form-control {
border: none;
height: $input-height;
padding-left: 40px;
padding-right: 20px;
background-color: $bg-topbar-search;
box-shadow: none;
}
span.search-icon {
position: absolute;
z-index: 9;
font-size: 20px;
line-height: 38px;
left: 10px;
top: 0;
}
.input-group-text {
margin-left: 0;
z-index: 4;
}
}
/* Notification */
.notification-list {
margin-left: 0;
.noti-title {
background-color: transparent;
padding: 15px 20px;
}
.noti-icon {
font-size: 22px;
vertical-align: middle;
line-height: $topbar-height;
}
.noti-icon-badge {
display: inline-block;
position: absolute;
top: 22px;
right: 6px;
border-radius: 50%;
height: 7px;
width: 7px;
background-color: $danger;
}
.notify-item {
padding: 10px 20px;
.notify-icon {
float: left;
height: 36px;
width: 36px;
line-height: 36px;
text-align: center;
margin-right: 10px;
border-radius: 50%;
color: $white;
}
.notify-details {
margin-bottom: 0;
overflow: hidden;
margin-left: 45px;
text-overflow: ellipsis;
white-space: nowrap;
b {
font-weight: 500;
}
small {
display: block;
}
span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
}
}
.user-msg {
margin-left: 45px;
white-space: normal;
line-height: 16px;
}
}
.topbar-dropdown-menu {
.notify-item {
padding: 7px 20px;
}
}
}
.profile-dropdown {
min-width: 170px;
i,span {
vertical-align: middle;
}
}
.nav-user {
padding: calc(#{$topbar-height - 39px} / 2) 20px calc(#{$topbar-height - 39px} / 2) 57px !important;
text-align: left !important;
position: relative;
background-color: lighten($gray-100, 2.5%);
border: 1px solid $gray-100;
border-width: 0 1px;
min-height: $topbar-height;
.account-user-avatar {
position: absolute;
top: calc(#{$topbar-height - 32px} / 2);
left: 15px;
img {
height: 32px;
width: 32px;
}
}
.account-position {
display: block;
font-size: 12px;
margin-top: -3px;
}
.account-user-name {
display: block;
font-weight: $font-weight-semibold;
}
}
.button-menu-mobile {
border: none;
color: $dark;
height: $topbar-height;
line-height: $topbar-height;
width: 60px;
background-color: transparent;
font-size: 24px;
cursor: pointer;
float: left;
z-index: 1;
position: relative;
margin-left: -$grid-gutter-width;
&.disable-btn {
display: none;
}
@include media-breakpoint-down(md) {
margin: 0 !important;
}
}
[data-keep-enlarged="true"] {
.navbar-custom {
padding-left: 0;
}
.button-menu-mobile {
margin: 0;
&.disable-btn {
display: inline-block;
}
}
}
@media (max-width: 600px) {
.navbar-custom {
.topbar-menu {
position: initial;
}
.dropdown {
position: static;
.dropdown-menu {
left: 10px!important;
right: 10px!important;
}
}
}
}
@media (max-width: 1200px) {
.navbar-custom {
right: 0;
.app-search {
display: none;
}
}
}
@include media-breakpoint-down(lg) {
.nav-user {
padding: 17px 5px 17px 57px !important;
.account-position,
.account-user-name {
display: none;
}
}
}
@include media-breakpoint-down(md) {
.navbar-custom {
left: 0 !important;
padding: 0;
}
.button-menu-mobile {
&.disable-btn {
display: inline-block;
}
}
}
@media (max-width:375px) {
.navbar-custom {
.topbar-menu {
.nav-link {
margin: 0 6px;
}
}
&.topnav-navbar {
.container-fluid {
padding-right: 12px;
padding-left: 12px;
}
.navbar-toggle {
margin: 27px 3px
}
.button-menu-mobile {
width: auto;
}
}
}
}
// Scrollable Layout
@include media-breakpoint-up(lg) {
body[data-leftbar-compact-mode="scrollable"]:not([data-layout="topnav"]) {
.navbar-custom {
position: absolute;
}
}
}
// Topbar Dark
.topnav-navbar-dark {
background-color: $bg-topbar-dark;
.nav-user {
background-color: lighten($bg-topbar-dark,5%);
border: 1px solid lighten($bg-topbar-dark,7.5%);
}
.topbar-menu {
li {
.show {
&.nav-link {
color: $white !important;
}
}
}
}
.app-search {
.form-control {
background-color: $bg-topbar-dark-search;
color: $white;
}
span {
color: $gray-600;
}
}
.navbar-toggle {
span {
background-color: rgba($white, 0.8) !important;
}
}
}
body[data-layout-mode="boxed"] {
.navbar-custom {
position: relative;
left: 0 !important;
margin: -$topbar-height (-$grid-gutter-width / 2) 0;
}
&[data-layout="topnav"] {
.navbar-custom {
margin: 0;
}
}
}
// Locales dropdown
li#locales div a span {
padding-left: 20px;
}

View File

@@ -27,7 +27,7 @@
<div class="d-grid gap-2">
<% wow_achievements.each do |achievement| %>
<div class="card">
<div class="card-header <% if achievement_completed(achievement.id, current_user) %>bg-success text-white<% else %>bg-secondary text-white<% end %>">
<div class="card-header <% if achievement_completed(achievement.id, current_user) %>bg-primary text-white<% else %>bg-secondary text-white<% end %>">
<%= achievement.name %><% if Rails.env.development? %> - ID: <%= achievement.achievement_id %><% end %>
</div>
<div class="card-body">

View File

@@ -0,0 +1,196 @@
<!-- NAVBAR START -->
<nav class="navbar navbar-expand-lg py-lg-3 navbar-dark">
<div class="container">
<!-- logo -->
<a href="/" class="navbar-brand me-lg-5">
<%= image_pack_tag 'media/images/logo.png', alt: 'logo', height: 18, class: 'logo-dark' %>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<i class="mdi mdi-menu"></i>
</button>
<!-- menus -->
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<!-- left menu -->
<ul class="navbar-nav me-auto align-items-center">
<li class="nav-item mx-lg-1">
<a class="nav-link active" href="">Home</a>
</li>
<li class="nav-item mx-lg-1">
<a class="nav-link" href="">Features</a>
</li>
<li class="nav-item mx-lg-1">
<a class="nav-link" href="">Pricing</a>
</li>
<li class="nav-item mx-lg-1">
<a class="nav-link" href="">FAQs</a>
</li>
<li class="nav-item mx-lg-1">
<a class="nav-link" href="">Clients</a>
</li>
<li class="nav-item mx-lg-1">
<a class="nav-link" href="">Contact</a>
</li>
</ul>
<!-- right menu -->
<ul class="navbar-nav ms-auto align-items-center">
<li class="nav-item me-0">
<%= button_to user_bnet_omniauth_authorize_path, class: 'btn btn-primary nav-item', name: 'login', form: { 'data-turbo': false } do %>
Sign in with <i class="fab fa-battle-net"></i>
<% end %>
</li>
</ul>
</div>
</div>
</nav>
<!-- NAVBAR END -->
<!-- START HERO -->
<section class="hero-section">
<div class="container">
<div class="row align-items-center">
<div class="col-md-5">
<div class="mt-md-4">
<div>
<span class="badge bg-danger rounded-pill">New</span>
<span class="text-white-50 ms-1">Welcome to new landing page</span>
</div>
<h2 class="text-white fw-normal mb-4 mt-3 hero-title">
Responsive Web UI Kit & Dashboard Template
</h2>
<p class="mb-4 font-16 text-white-50">Hyper is a fully featured dashboard and admin template
comes with tones of well designed UI elements, components, widgets and pages.</p>
<a href="" target="_blank" class="btn btn-success">Preview <i
class="mdi mdi-arrow-right ms-1"></i></a>
</div>
</div>
<div class="col-md-5 offset-md-2">
<div class="text-md-end mt-3 mt-md-0">
<%= image_pack_tag 'media/images/startup.svg', alt: 'startup', class: 'img-fluid' %>
</div>
</div>
</div>
</div>
</section>
<!-- END HERO -->
<!-- START FEATURES 1 -->
<section class="py-5 bg-light-lighten border-top border-bottom border-light">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center">
<h3>Flexible <span class="text-primary">Layouts</span></h3>
<p class="text-muted mt-2">There are three different layout options available to cater need for
any <br /> modern web
application.</p>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-lg-4">
<div class="demo-box text-center">
<%= image_pack_tag 'media/images/layouts/layout-1.png', alt: 'demo-img-1', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Vertical Layout</h5>
</div>
</div>
<div class="col-lg-4">
<div class="demo-box text-center mt-3 mt-lg-0">
<%= image_pack_tag 'media/images/layouts/layout-2.png', alt: 'demo-img-2', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Horizontal Layout</h5>
</div>
</div>
<div class="col-lg-4">
<div class="demo-box text-center mt-3 mt-lg-0">
<%= image_pack_tag 'media/images/layouts/layout-3.png', alt: 'demo-img-3', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Detached Layout</h5>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-lg-4">
<div class="demo-box text-center">
<%= image_pack_tag 'media/images/layouts/layout-5.png', alt: 'demo-img-5', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Light Sidenav Layout</h5>
</div>
</div>
<div class="col-lg-4">
<div class="demo-box text-center mt-3 mt-lg-0">
<%= image_pack_tag 'media/images/layouts/layout-6.png', alt: 'demo-img-6', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Boxed Layout</h5>
</div>
</div>
<div class="col-lg-4">
<div class="demo-box text-center mt-3 mt-lg-0">
<%= image_pack_tag 'media/images/layouts/layout-4.png', alt: 'demo-img-4', class: 'img-fluid shadow-sm rounded' %>
<h5 class="mt-3 f-17">Semi Dark Layout</h5>
</div>
</div>
</div>
</div>
</section>
<!-- END FEATURES 1 -->
<!-- START FOOTER -->
<footer class="bg-dark py-5">
<div class="container">
<div class="row">
<div class="col-lg-6">
<%= image_pack_tag 'media/images/logo.png', alt: 'features-1', class: 'logo-dark', height: 18 %>
<p class="text-muted mt-4">Hyper makes it easier to build better websites with
<br> great speed. Save hundreds of hours of design
<br> and development by using it.</p>
<ul class="social-list list-inline mt-3">
<li class="list-inline-item text-center">
<a href="javascript: void(0);" class="social-list-item border-primary text-primary"><i class="mdi mdi-facebook"></i></a>
</li>
<li class="list-inline-item text-center">
<a href="javascript: void(0);" class="social-list-item border-danger text-danger"><i class="mdi mdi-google"></i></a>
</li>
<li class="list-inline-item text-center">
<a href="javascript: void(0);" class="social-list-item border-info text-info"><i class="mdi mdi-twitter"></i></a>
</li>
<li class="list-inline-item text-center">
<a href="javascript: void(0);" class="social-list-item border-secondary text-secondary"><i class="mdi mdi-github"></i></a>
</li>
</ul>
</div>
<div class="col-lg-2 mt-3 mt-lg-0">
<h5 class="text-light">Company</h5>
<ul class="list-unstyled ps-0 mb-0 mt-3">
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">About Us</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Documentation</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Blog</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Affiliate Program</a></li>
</ul>
</div>
<div class="col-lg-2 mt-3 mt-lg-0">
<h5 class="text-light">Apps</h5>
<ul class="list-unstyled ps-0 mb-0 mt-3">
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Ecommerce Pages</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Email</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Social Feed</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Projects</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Tasks Management</a></li>
</ul>
</div>
<div class="col-lg-2 mt-3 mt-lg-0">
<h5 class="text-light">Discover</h5>
<ul class="list-unstyled ps-0 mb-0 mt-3">
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Help Center</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Our Products</a></li>
<li class="mt-2"><a href="javascript: void(0);" class="text-muted">Privacy</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="mt-5">
<p class="text-muted mt-4 text-center mb-0">© 2018 - 2021 Hyper. Design and coded by
Coderthemes</p>
</div>
</div>
</div>
</div>
</footer>
<!-- END FOOTER -->

View File

@@ -1,5 +1,7 @@
<% if user_signed_in? %>
<h1>Welcome <%= current_user.battletag %></h1>
<% unless user_signed_in? %>
<%= render 'home/landing' %>
<% else %>
<h1>Welcome guest</h1>
<body class="loading" data-layout-config='{"darkMode":false}'>
<%= yield %>
</body>
<% end %>

View File

@@ -0,0 +1,72 @@
<!-- ========== Left Sidebar Start ========== -->
<div class="leftside-menu">
<!-- LOGO -->
<a href="index.html" class="logo text-center logo-light">
<span class="logo-lg">
<%= image_pack_tag 'media/images/logo.png', alt: 'startup', height: 16 %>
</span>
<span class="logo-sm">
<%= image_pack_tag 'media/images/logo_sm.png', alt: 'startup', height: 16 %>
</span>
</a>
<div class="h-100" id="leftside-menu-container" data-simplebar>
<!--- Sidemenu -->
<ul class="side-nav">
<li class="side-nav-item">
<a data-bs-toggle="collapse" href="#sidebarCollection" aria-expanded="false" aria-controls="sidebarCollection" class="side-nav-link">
<i class="fas fa-layer-group"></i>
<span> Collections </span>
<span class="fas fa-chevron-right"></span>
</a>
<div class="collapse" id="sidebarCollection">
<ul class="side-nav-second-level">
<li>
<a class="<%= 'active' if current_page?(wow_mounts_path) %>" aria-current="page" href="<%= wow_mounts_path %>"><%= t('layouts.navbar.mounts') %></a>
</li>
<li>
<a class="<%= 'active' if current_page?(wow_pets_path) %>" aria-current="page" href="<%= wow_pets_path %>"><%= t('layouts.navbar.pets') %></a>
</li>
</ul>
</div>
</li>
<li class="side-nav-item">
<a data-bs-toggle="collapse" href="#sidebarEmail" aria-expanded="false" aria-controls="sidebarEmail" class="side-nav-link">
<i class="fas fa-gamepad"></i>
<span> Games </span>
<span class="fas fa-chevron-right"></span>
</a>
<div class="collapse" id="sidebarEmail">
<ul class="side-nav-second-level">
<li>
<a class="<%= 'active' if current_page?(wow_characters_path) %>" aria-current="page" href="<%= wow_characters_path %>"><%= t('layouts.navbar.characters') %></a>
</li>
<li>
<a class="<%= 'active' if current_page?(wow_reputations_path) %>" aria-current="page" href="<%= wow_reputations_path %>"><%= t('layouts.navbar.reputations') %></a>
</li>
</ul>
</div>
</li>
<li class="side-nav-item">
<a class="side-nav-link <%= 'active' if current_page?(achievements_path) %>" aria-current="page" href="<%= achievements_path %>">
<i class="fas fa-book"></i>
<span> <%= t('layouts.navbar.achievements') %> </span>
</a>
</li>
</ul>
<!-- End Sidebar -->
<div class="clearfix"></div>
</div>
<!-- Sidebar -left -->
</div>
<!-- Left Sidebar End -->

View File

@@ -1,19 +1,32 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-globe-europe"></i>
<li class="dropdown notification-list topbar-dropdown" id="locales">
<a class="nav-link dropdown-toggle arrow-none" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="false" aria-expanded="false">
<i class="fas fa-globe-europe align-middle"></i>
<i class="fas fa-chevron-down d-none d-sm-inline-block align-middle"></i>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-de"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'de-de', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-gb"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'en-gb', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-us"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'en-us', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-mx"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'es-mx', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-br"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'pt-br', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-es"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'es-es', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-fr"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'fr-fr', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-it"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'it', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-ru"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'ru-ru', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-kr"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'ko', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-tw"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'zh-tw', only_path: true)) %></li>
<li class="dropdown-item"><%= link_to '<span class="flag-icon flag-icon-cn"></span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'zh-cn', only_path: true)) %></li>
</ul>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-animated topbar-dropdown-menu">
<%= link_to '<span class="flag-icon flag-icon-de align-middle">German</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'de-de', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-gb align-middle">English</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'en-gb', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-us align-middle">American</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'en-us', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-mx align-middle">Mexicano</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'es-mx', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-br align-middle">Portugués</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'pt-br', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-es align-middle">Español</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'es-es', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-fr align-middle">Français</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'fr-fr', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-it align-middle">Italiano</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'it', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-ru align-middle">Pусский</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'ru-ru', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-kr align-middle">한국인</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'ko', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-tw align-middle">台湾</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'zh-tw', only_path: true)), class: "dropdown-item notify-item" %>
<%= link_to '<span class="flag-icon flag-icon-cn align-middle">中国人</span>'.html_safe, url_for(params.clone.permit!.merge(locale: 'zh-cn', only_path: true)), class: "dropdown-item notify-item" %>
</div>
</li>

View File

@@ -0,0 +1,30 @@
<!-- Topbar Start -->
<div class="navbar-custom">
<ul class="list-unstyled topbar-menu float-end mb-0">
<%= render 'layouts/locales' %>
<li class="dropdown notification-list">
<a class="nav-link dropdown-toggle nav-user arrow-none me-0" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="false" aria-expanded="false">
<span class="account-user-name"><%= current_user.battletag %></span>
</a>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-animated topbar-dropdown-menu profile-dropdown">
<!-- item-->
<div class=" dropdown-header noti-title">
<h6 class="text-overflow m-0">Account</h6>
</div>
<%= link_to '<i class="fas fa-sign-out-alt"> Logout</i>'.html_safe, destroy_user_session_path, method: :delete, class: "dropdown-item notify-item" %>
</div>
</li>
</ul>
<button class="button-menu-mobile open-left">
<i class="fas fa-bars"></i>
</button>
</div>
<!-- end Topbar -->

View File

@@ -11,11 +11,26 @@
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= render 'layouts/navbar' %>
<%= render partial: 'layouts/flash', flash: flash %>
<% if user_signed_in? %>
<body class="loading" data-layout-config='{"leftSideBarTheme":"dark","layoutBoxed":false, "leftSidebarCondensed":false, "leftSidebarScrollable":false,"darkMode":false, "showRightSidebarOnStart": true}' style="visibility: visible;" data-leftbar-theme="dark">
<!-- Begin page -->
<div class="wrapper">
<%= render 'layouts/left-sidebar' %>
<div class="content-page">
<div class="content">
<%= render 'layouts/topbar' %>
<div class="container-fluid">
<%= yield %>
</div>
</div>
</div>
</div>
</body>
<% else %>
<body class="loading" data-layout-config='{"darkMode":false}'>
<%= yield %>
</body>
<% end %>
</html>

View File

@@ -71,7 +71,6 @@ development:
watch_options:
ignored: '**/node_modules/**'
test:
<<: *default
compile: true

View File

@@ -10,8 +10,14 @@
"@rails/ujs": "^6.1.4",
"@rails/webpacker": "5.2.1",
"bootstrap": "^5.1.0",
"bootstrap-datepicker": "^1.9.0",
"bootstrap-maxlength": "^1.10.0",
"bootstrap-timepicker": "^0.5.2",
"bootstrap-touchspin": "^4.3.0",
"flag-icon-css": "^3.5.0",
"jquery": "^3.6.0"
"jquery": "^3.6.0",
"moment": "^2.29.1",
"select2": "^4.0.13"
},
"version": "0.1.0",
"devDependencies": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 0 B

After

Width:  |  Height:  |  Size: 99 KiB

80
yarn.lock generated
View File

@@ -1560,6 +1560,37 @@ boolbase@^1.0.0, boolbase@~1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
bootstrap-datepicker@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz#e4bfce3fcce1967876b21dc6833ec5994aaed090"
integrity sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==
dependencies:
jquery ">=1.7.1 <4.0.0"
bootstrap-maxlength@^1.10.0:
version "1.10.1"
resolved "https://registry.yarnpkg.com/bootstrap-maxlength/-/bootstrap-maxlength-1.10.1.tgz#6b818f4397eed9302477d00f7d2f69fccf2b7740"
integrity sha512-VYQosg0ojUNq05PlZcTwETm0E0Aoe/cclRmCC27QrHk/sY0Q75PUvgHYujN0gb2CD3n2olJfPeqx3EGAqpKjww==
dependencies:
bootstrap "^4.4.1"
jquery "^3.5.1"
qunit "^2.10.0"
bootstrap-timepicker@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/bootstrap-timepicker/-/bootstrap-timepicker-0.5.2.tgz#10ed9f2a2f0b8ccaefcde0fcf6a0738b919a3835"
integrity sha1-EO2fKi8LjMrvzeD89qBzi5GaODU=
bootstrap-touchspin@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/bootstrap-touchspin/-/bootstrap-touchspin-4.3.0.tgz#a1dde0f12c331244fcb0e19f99c397f0f73f7793"
integrity sha512-jLynvVHYknc5c+90K0CTHzXADKxFGNCqD4u2N5MZwWuVNy2MovNRyKWGa/puuSebkdIFCqydVkziGWclhx3KKA==
bootstrap@^4.4.1:
version "4.6.0"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7"
integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==
bootstrap@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.0.tgz#543ef8f44f4b9af67b0230f19508542fec38ef55"
@@ -2023,6 +2054,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
commander@7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff"
integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -3338,6 +3374,11 @@ globals@^11.1.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globalyzer@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465"
integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
@@ -3349,6 +3390,11 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
globrex@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
globule@^1.0.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4"
@@ -4074,7 +4120,7 @@ jest-worker@^26.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
jquery@^3.6.0:
"jquery@>=1.7.1 <4.0.0", jquery@^3.5.1, jquery@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
@@ -4578,6 +4624,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
moment@^2.29.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -4740,6 +4791,11 @@ node-sass@^4.14.1:
stdout-stream "^1.4.0"
"true-case-path" "^1.0.2"
node-watch@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.1.tgz#0caaa6a6833b0d533487f953c52a6c787769ba7c"
integrity sha512-UWblPYuZYrkCQCW5PxAwYSxaELNBLUckrTBBk8xr1/bUgyOkYYTsUcV4e3ytcazFEOyiRyiUrsG37pu6I0I05g==
"nopt@2 || 3":
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
@@ -6024,6 +6080,15 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
qunit@^2.10.0:
version "2.16.0"
resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.16.0.tgz#b8ed63d512e5d4eaada5afc0c6c9e8b844181ba1"
integrity sha512-88x9t+rRMbB6IrCIUZvYU4pJy7NiBEv7SX8jD4LZAsIj+dV+kwGnFStOmPNvqa6HM96VZMD8CIIFKH2+3qvluA==
dependencies:
commander "7.1.0"
node-watch "0.7.1"
tiny-glob "0.2.8"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -6426,6 +6491,11 @@ select-hose@^2.0.0:
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
select2@^4.0.13:
version "4.0.13"
resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d"
integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==
selfsigned@^1.10.8:
version "1.10.8"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30"
@@ -7101,6 +7171,14 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tiny-glob@0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.8.tgz#b2792c396cc62db891ffa161fe8b33e76123e531"
integrity sha512-vkQP7qOslq63XRX9kMswlby99kyO5OvKptw7AMwBVMjXEI7Tb61eoI5DydyEMOseyGS5anDN1VPoVxEvH01q8w==
dependencies:
globalyzer "0.1.0"
globrex "^0.1.2"
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"