Search menu icone and view set up
This commit is contained in:
parent
e6e7f29ee3
commit
1837282ca8
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export DN="http://app.happy-dev.fr"
|
export DN="https://app.happy-dev.fr"
|
||||||
export SDN="http://hd-ldp.happy-dev.fr"
|
export SDN="https://hd-ldp.happy-dev.fr"
|
||||||
php index.php > index.html
|
php index.php > index.html
|
||||||
grunt
|
grunt
|
||||||
ssh hd-app@ssh-hd-app.alwaysdata.net "rm -R hd-app; mkdir hd-app; cd hd-app; mkdir -p src/fonts; mkdir -p dist/css;"
|
ssh hd-app@ssh-hd-app.alwaysdata.net "rm -R hd-app; mkdir hd-app; cd hd-app; mkdir -p src/fonts; mkdir -p dist/css;"
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
<?php require_once('src/html/project.html'); ?>
|
<?php require_once('src/html/project.html'); ?>
|
||||||
<?php require_once('src/html/channels.html'); ?>
|
<?php require_once('src/html/channels.html'); ?>
|
||||||
<?php require_once('src/html/channel.html'); ?>
|
<?php require_once('src/html/channel.html'); ?>
|
||||||
|
<?php require_once('src/html/search.html'); ?>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<!-- This is a hack : https://git.happy-dev.fr/happy-dev/xmpp-chat-component/issues/24 -->
|
<!-- This is a hack : https://git.happy-dev.fr/happy-dev/xmpp-chat-component/issues/24 -->
|
||||||
@ -41,7 +42,7 @@
|
|||||||
data-authentication="anonymous"
|
data-authentication="anonymous"
|
||||||
data-auto-login="true"
|
data-auto-login="true"
|
||||||
data-bosh-service-url="https://conversejs.org/http-bind/"
|
data-bosh-service-url="https://conversejs.org/http-bind/"
|
||||||
data-debug="true"
|
data-debug="false"
|
||||||
data-jid="nomnom.im"
|
data-jid="nomnom.im"
|
||||||
data-locales-url="<?php echo $cdn; ?>/node_modules/converse.js/locale/{{{locale}}}/LC_MESSAGES/converse.json",
|
data-locales-url="<?php echo $cdn; ?>/node_modules/converse.js/locale/{{{locale}}}/LC_MESSAGES/converse.json",
|
||||||
data-room-jid="anonymous@conference.nomnom.im">
|
data-room-jid="anonymous@conference.nomnom.im">
|
||||||
@ -65,7 +66,7 @@
|
|||||||
|
|
||||||
insertChatIfNeeded();
|
insertChatIfNeeded();
|
||||||
}
|
}
|
||||||
}, 150);
|
}, 15000);
|
||||||
|
|
||||||
// Inserts a chat in the current view if needed
|
// Inserts a chat in the current view if needed
|
||||||
function insertChatIfNeeded() {
|
function insertChatIfNeeded() {
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
<script type="text/javascript" src="<?php echo $dn; ?>/node_modules/jquery/dist/jquery.min.js"></script>
|
<script type="text/javascript" src="<?php echo $dn; ?>/node_modules/jquery/dist/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="<?php echo $dn; ?>/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
<script type="text/javascript" src="<?php echo $dn; ?>/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||||
<script type="text/javascript" src="<?php echo $dn; ?>/dist/lib/webcomponentsjs/webcomponents-loader.js"></script>
|
<script type="text/javascript" src="<?php echo $dn; ?>/dist/lib/webcomponentsjs/webcomponents-loader.js"></script>
|
||||||
|
<script type="text/javascript" src="<?php echo $dn; ?>/src/js/hd-app.js"></script>
|
||||||
|
|
||||||
<!-- Web components -->
|
<!-- Web components -->
|
||||||
<link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
|
<link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
|
||||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js" integrity="sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=" crossorigin="anonymous"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js" integrity="sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=" crossorigin="anonymous"></script>
|
||||||
|
<script type="text/javascript" src="<?php echo $dn; ?>/dist/js/hd-app.js"></script>
|
||||||
|
|
||||||
<!-- Web components -->
|
<!-- Web components -->
|
||||||
<link rel="import" href="https://cdn.happy-dev.fr/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
|
<link rel="import" href="https://cdn.happy-dev.fr/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
<nav class="navbar bg-white fixed-top border-bottom pb-0 d-md-flex" id="navbar">
|
<nav class="navbar bg-white fixed-top border-bottom pb-0 d-md-flex" id="navbar">
|
||||||
<!--<ldp-router>-->
|
|
||||||
<!--<ldp-route id="menu-title" class=" pb-2" name="dashboard">HAPPY APP</ldp-route>-->
|
|
||||||
<!--</ldp-router>-->
|
|
||||||
|
|
||||||
<ldp-router id="navbar-router" class="navbar-nav" default-route="members">
|
<ldp-router id="navbar-router" class="navbar-nav" default-route="members">
|
||||||
<ldp-route id="menu-title" class="col-4 col-md-2 nav-item" name="dashboard">
|
<ldp-route id="menu-title" class="col-3 col-md-2 nav-item" name="dashboard">
|
||||||
HAPPY DEV
|
HAPPY DEV
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
|
|
||||||
<div id="menu-items" class="col-8 col-md-10">
|
<div id="menu-items" class="col-7 col-md-10">
|
||||||
<ldp-route class="nav-item pl-4 pr-4 pb-2 active align-self-stretch text-center text-md-left" name="members">
|
<ldp-route class="nav-item pb-2 active align-self-stretch text-center text-md-left" name="members">
|
||||||
<i class="fa fa-users" aria-hidden="true"></i>
|
<i class="fa fa-users" aria-hidden="true"></i>
|
||||||
<span class="d-none d-md-inline"> Membres</span>
|
<span class="d-none d-md-inline"> Membres</span>
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
@ -17,7 +14,7 @@
|
|||||||
Membre
|
Membre
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
|
|
||||||
<ldp-route class="nav-item pl-4 pr-4 pb-2 align-self-stretch text-center text-md-left" name="projects">
|
<ldp-route class="nav-item pb-2 align-self-stretch text-center text-md-left" name="projects">
|
||||||
<i class="fa fa-tasks" aria-hidden="true"></i>
|
<i class="fa fa-tasks" aria-hidden="true"></i>
|
||||||
<span class="d-none d-md-inline"> Projets</span>
|
<span class="d-none d-md-inline"> Projets</span>
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
@ -25,7 +22,7 @@
|
|||||||
Projet
|
Projet
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
|
|
||||||
<ldp-route class="nav-item pl-4 pr-4 pb-2 align-self-stretch text-center text-md-left" name="channels">
|
<ldp-route class="nav-item pb-2 align-self-stretch text-center text-md-left" name="channels">
|
||||||
<i class="fa fa-comments" aria-hidden="true"></i>
|
<i class="fa fa-comments" aria-hidden="true"></i>
|
||||||
<span class="d-none d-md-inline"> Channels</span>
|
<span class="d-none d-md-inline"> Channels</span>
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
@ -33,5 +30,12 @@
|
|||||||
channel
|
channel
|
||||||
</ldp-route>
|
</ldp-route>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-2 col-md-1"></div>
|
||||||
</ldp-router>
|
</ldp-router>
|
||||||
|
|
||||||
|
<div id="search-bar">
|
||||||
|
<input id="search-input" class="form-control" type="search" placeholder="ctrl + k"/>
|
||||||
|
<i id="search-icon" class="fa fa-search" aria-hidden="true" data-toggle="modal" data-target="#search-view"></i>
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
7
src/html/search.html
Normal file
7
src/html/search.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<div class="modal fade" id="search-view" tabindex="-1" role="dialog" aria-labelledby="Search results" aria-hidden="true">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
Search results here
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
26
src/js/hd-app.js
Normal file
26
src/js/hd-app.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
document.addEventListener("DOMContentLoaded", function(event) {
|
||||||
|
// Constants declaration
|
||||||
|
const navBar = document.querySelector("#navbar");
|
||||||
|
const searchBar = navBar.querySelector("#search-bar");
|
||||||
|
|
||||||
|
|
||||||
|
// Shortcuts
|
||||||
|
document.querySelector("body").addEventListener("keydown", function(e) {
|
||||||
|
// CTRL + K triggers the search feature
|
||||||
|
if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) {
|
||||||
|
navBar.classList.remove("search-mode");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Toggle the search bar via touch / click
|
||||||
|
searchBar.querySelector("#search-icon").addEventListener("click", function(e) {
|
||||||
|
navBar.classList.add("search-mode");
|
||||||
|
searchBar.querySelector("#search-input").focus();
|
||||||
|
});
|
||||||
|
});
|
@ -13,16 +13,27 @@
|
|||||||
color: $hd-color;
|
color: $hd-color;
|
||||||
font-size: $menu-font-size;
|
font-size: $menu-font-size;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
padding: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#menu-items {
|
#menu-items {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right: 0px;
|
||||||
|
transition-property: opacity;
|
||||||
|
transition-duration: 0.3s;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ldp-route {
|
ldp-route {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
padding: 0px 15px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
border-bottom: 2px solid $hd-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#menu-title[active],
|
#menu-title[active],
|
||||||
@ -30,9 +41,56 @@
|
|||||||
border-bottom: 2px solid $hd-color;
|
border-bottom: 2px solid $hd-color;
|
||||||
color: $hd-color;
|
color: $hd-color;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ldp-route:hover {
|
#search-bar {
|
||||||
border-bottom: 2px solid $hd-color;
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
right: 16px;
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 0px;
|
||||||
|
|
||||||
|
input[type=search] {
|
||||||
|
transform: scaleX(0);
|
||||||
|
transform-origin: 100%;
|
||||||
|
transition-property: all;
|
||||||
|
transition-duration: 0.3s;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
display: block;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
position: relative;
|
||||||
|
z-index: 9999;
|
||||||
|
padding-top: 7px;
|
||||||
|
color: $twitter-color;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 0 0.25rem 0.25rem 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.search-mode {
|
||||||
|
#navbar-router {
|
||||||
|
#menu-items {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#search-bar {
|
||||||
|
width: calc(100% - 125px);
|
||||||
|
|
||||||
|
input[type=search] {
|
||||||
|
transform: scaleX(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: white;
|
||||||
|
background-color: $twitter-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
src/scss/_search.scss
Normal file
12
src/scss/_search.scss
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
.modal-dialog {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-content {
|
||||||
|
height: auto;
|
||||||
|
min-height: 100%;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
@ -14,3 +14,4 @@
|
|||||||
@import "project";
|
@import "project";
|
||||||
@import "channels";
|
@import "channels";
|
||||||
@import "channel";
|
@import "channel";
|
||||||
|
@import "search";
|
||||||
|
Loading…
Reference in New Issue
Block a user