mirror of https://github.com/wallabag/wallabag.git
Merge pull request #3541 from Simounet/feature/nav-label-replaced-by-buttons
Nav actions updated
This commit is contained in:
commit
fd637b9a5a
|
@ -2,8 +2,7 @@
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
Nav
|
Nav
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
nav,
|
nav {
|
||||||
.nav-wrapper {
|
|
||||||
height: auto;
|
height: auto;
|
||||||
line-height: initial;
|
line-height: initial;
|
||||||
}
|
}
|
||||||
|
@ -18,25 +17,25 @@ nav {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-wrapper {
|
.nav-panel-item .button-collapse {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
padding: 0 0.5rem;
|
||||||
|
height: auto;
|
||||||
|
line-height: 1;
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-panel-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 0.6rem 0.4rem 0.6rem 0.75rem;
|
padding: 0.6rem 0.4rem 0.6rem 0.75rem;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.button-collapse {
|
|
||||||
margin-left: 0;
|
|
||||||
margin-right: 0.5rem;
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
height: auto;
|
|
||||||
line-height: 1;
|
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nav .nav-wrapper i {
|
.nav-panel-item .material-icons {
|
||||||
height: 46px;
|
height: 46px;
|
||||||
line-height: 46px;
|
line-height: 46px;
|
||||||
}
|
}
|
||||||
|
@ -51,8 +50,8 @@ nav .nav-wrapper i {
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-panel-add .add,
|
.nav-panel-item .add,
|
||||||
.nav-panel-search .search,
|
.nav-panel-item .search,
|
||||||
.nav-panels .close {
|
.nav-panels .close {
|
||||||
color: #444 !important;
|
color: #444 !important;
|
||||||
}
|
}
|
||||||
|
@ -68,9 +67,7 @@ nav .nav-wrapper i {
|
||||||
.input-field input {
|
.input-field input {
|
||||||
display: block;
|
display: block;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
padding-left: 4rem !important;
|
height: 3rem;
|
||||||
width: calc(100% - 8rem);
|
|
||||||
height: 4.1rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-field input:focus {
|
.input-field input:focus {
|
||||||
|
@ -87,36 +84,45 @@ nav .nav-wrapper i {
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-field {
|
.input-field {
|
||||||
&.nav-panel-add label,
|
&.nav-panel-item label {
|
||||||
&.nav-panel-search label {
|
|
||||||
left: 1rem;
|
left: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.nav-panel-add .close,
|
&.nav-panel-item .close {
|
||||||
&.nav-panel-search .close {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 1rem;
|
|
||||||
color: transparent;
|
color: transparent;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
transition: 0.3s color;
|
transition: 0.3s color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.nav-panel-add,
|
&.nav-panel-item {
|
||||||
&.nav-panel-add form,
|
|
||||||
&.nav-panel-search,
|
|
||||||
&.nav-panel-search form {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.nav-panel-add form.disabled,
|
&.nav-panel-add.disabled,
|
||||||
&.nav-panel-add form.disabled input {
|
&.nav-panel-add.disabled input {
|
||||||
background-color: whitesmoke;
|
background-color: whitesmoke;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-form-button {
|
||||||
|
padding: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-form-button,
|
||||||
|
.nav-panel-item .close {
|
||||||
|
margin: 0 1%;
|
||||||
|
}
|
||||||
|
|
||||||
#button_filters {
|
#button_filters {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ div.settings div.file-field {
|
||||||
|
|
||||||
nav .input-field input {
|
nav .input-field input {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding-left: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabs {
|
.tabs {
|
||||||
|
|
|
@ -35,6 +35,13 @@ $(document).ready(() => {
|
||||||
initFilters();
|
initFilters();
|
||||||
initExport();
|
initExport();
|
||||||
|
|
||||||
|
const toggleNav = (toShow, toFocus) => {
|
||||||
|
$('.nav-panel-actions').hide(100);
|
||||||
|
$(toShow).show(100);
|
||||||
|
$('.nav-panels').css('background', 'white');
|
||||||
|
$(toFocus).focus();
|
||||||
|
};
|
||||||
|
|
||||||
$('#nav-btn-add-tag').on('click', () => {
|
$('#nav-btn-add-tag').on('click', () => {
|
||||||
$('.nav-panel-add-tag').toggle(100);
|
$('.nav-panel-add-tag').toggle(100);
|
||||||
$('.nav-panel-menu').addClass('hidden');
|
$('.nav-panel-menu').addClass('hidden');
|
||||||
|
@ -42,34 +49,21 @@ $(document).ready(() => {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$('#nav-btn-add').on('click', () => {
|
$('#nav-btn-add').on('click', () => {
|
||||||
$('.nav-panel-buttom').hide(100);
|
toggleNav('.nav-panel-add', '#entry_url');
|
||||||
$('.nav-panel-add').show(100);
|
|
||||||
$('.nav-panels .action').hide(100);
|
|
||||||
$('.nav-panel-menu').addClass('hidden');
|
|
||||||
$('.nav-panels').css('background', 'white');
|
|
||||||
$('#entry_url').focus();
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
const materialAddForm = $('.nav-panel-add form[name=entry]');
|
const materialAddForm = $('.nav-panel-add');
|
||||||
materialAddForm.on('submit', () => {
|
materialAddForm.on('submit', () => {
|
||||||
materialAddForm.addClass('disabled');
|
materialAddForm.addClass('disabled');
|
||||||
$('input#entry_url', materialAddForm).prop('readonly', true).trigger('blur');
|
$('input#entry_url', materialAddForm).prop('readonly', true).trigger('blur');
|
||||||
});
|
});
|
||||||
$('#nav-btn-search').on('click', () => {
|
$('#nav-btn-search').on('click', () => {
|
||||||
$('.nav-panel-buttom').hide(100);
|
toggleNav('.nav-panel-search', '#search_entry_term');
|
||||||
$('.nav-panel-search').show(100);
|
|
||||||
$('.nav-panels .action').hide(100);
|
|
||||||
$('.nav-panel-menu').addClass('hidden');
|
|
||||||
$('.nav-panels').css('background', 'white');
|
|
||||||
$('#search_entry_term').focus();
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$('.close').on('click', () => {
|
$('.close').on('click', (e) => {
|
||||||
$('.nav-panel-add').hide(100);
|
$(e.target).parent('.nav-panel-item').hide(100);
|
||||||
$('.nav-panel-search').hide(100);
|
$('.nav-panel-actions').show(100);
|
||||||
$('.nav-panel-buttom').show(100);
|
|
||||||
$('.nav-panels .action').show(100);
|
|
||||||
$('.nav-panel-menu').removeClass('hidden');
|
|
||||||
$('.nav-panels').css('background', 'transparent');
|
$('.nav-panels').css('background', 'transparent');
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="determinate"></div>
|
<div class="determinate"></div>
|
||||||
</div>
|
</div>
|
||||||
<nav class="hide-on-large-only">
|
<nav class="hide-on-large-only">
|
||||||
<div class="nav-wrapper cyan darken-1">
|
<div class="nav-panel-item cyan darken-1">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="#" data-activates="slide-out" class="button-collapse">
|
<a href="#" data-activates="slide-out" class="button-collapse">
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
<form name="entry" method="post" action="{{ path('new_entry')}}">
|
<form class="input-field nav-panel-item nav-panel-add" style="display: none" name="entry" method="post" action="{{ path('new_entry')}}">
|
||||||
{% if form_errors(form) %}
|
{% if form_errors(form) %}
|
||||||
<span class="black-text">{{ form_errors(form) }}</span>
|
<span class="black-text">{{ form_errors(form) }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<button type="submit" class="nav-form-button"><i class="material-icons add">add</i></button>
|
||||||
|
|
||||||
{% if form_errors(form.url) %}
|
{% if form_errors(form.url) %}
|
||||||
<span class="black-text">{{ form_errors(form.url) }}</span>
|
<span class="black-text">{{ form_errors(form.url) }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
|
{{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
|
||||||
|
<i class="material-icons close">clear</i>
|
||||||
|
|
||||||
{{ form_rest(form) }}
|
{{ form_rest(form) }}
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<form name="search" method="GET" action="{{ path('search')}}">
|
<form class="input-field nav-panel-item nav-panel-search" style="display: none" name="search" method="GET" action="{{ path('search')}}">
|
||||||
{% if form_errors(form) %}
|
{% if form_errors(form) %}
|
||||||
<span class="black-text">{{ form_errors(form) }}</span>
|
<span class="black-text">{{ form_errors(form) }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<button type="submit" class="nav-form-button"><i class="material-icons search">search</i></button>
|
||||||
|
|
||||||
{% if form_errors(form.term) %}
|
{% if form_errors(form.term) %}
|
||||||
<span class="black-text">{{ form_errors(form.term) }}</span>
|
<span class="black-text">{{ form_errors(form.term) }}</span>
|
||||||
|
@ -10,6 +11,7 @@
|
||||||
<input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
|
<input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
|
||||||
|
|
||||||
{{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }}
|
{{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }}
|
||||||
|
<i class="material-icons close">clear</i>
|
||||||
|
|
||||||
{{ form_rest(form) }}
|
{{ form_rest(form) }}
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -93,46 +93,40 @@
|
||||||
<a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a>
|
<a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="nav-wrapper nav-panels">
|
<div class="nav-panels">
|
||||||
<div class="nav-panel-top">
|
<div class="nav-panel-actions nav-panel-item">
|
||||||
<button data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="material-icons">menu</i></button>
|
<div class="nav-panel-top">
|
||||||
<h1 class="left action">
|
<button data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="material-icons">menu</i></button>
|
||||||
{% block title %}
|
<h1 class="left action">
|
||||||
{% endblock %}
|
{% block title %}
|
||||||
</h1>
|
{% endblock %}
|
||||||
</div>
|
</h1>
|
||||||
<ul class="input-field nav-panel-buttom">
|
</div>
|
||||||
<li class="bold">
|
<ul class="input-field nav-panel-buttom">
|
||||||
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.add_new_entry'|trans }}" href="{{ path('new') }}" id="nav-btn-add">
|
<li class="bold">
|
||||||
<i class="material-icons">add</i>
|
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.add_new_entry'|trans }}" href="{{ path('new') }}" id="nav-btn-add">
|
||||||
</a>
|
<i class="material-icons">add</i>
|
||||||
</li>
|
</a>
|
||||||
<li>
|
</li>
|
||||||
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.search'|trans }}" href="javascript: void(null);" id="nav-btn-search">
|
<li>
|
||||||
<i class="material-icons">search</i>
|
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.search'|trans }}" href="javascript: void(null);" id="nav-btn-search">
|
||||||
</a>
|
<i class="material-icons">search</i>
|
||||||
</li>
|
</a>
|
||||||
<li id="button_filters">
|
</li>
|
||||||
<a class="nav-panel-menu button-collapse-right tooltipped js-filters-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters">
|
<li id="button_filters">
|
||||||
<i class="material-icons">filter_list</i>
|
<a class="nav-panel-menu button-collapse-right tooltipped js-filters-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters">
|
||||||
</a>
|
<i class="material-icons">filter_list</i>
|
||||||
</li>
|
</a>
|
||||||
<li id="button_export">
|
</li>
|
||||||
<a class="nav-panel-menu button-collapse-right tooltipped js-export-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.export'|trans }}" href="#" data-activates="export">
|
<li id="button_export">
|
||||||
<i class="material-icons">file_download</i>
|
<a class="nav-panel-menu button-collapse-right tooltipped js-export-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.export'|trans }}" href="#" data-activates="export">
|
||||||
</a>
|
<i class="material-icons">file_download</i>
|
||||||
</li>
|
</a>
|
||||||
</ul>
|
</li>
|
||||||
<div class="input-field nav-panel-search" style="display: none">
|
</ul>
|
||||||
{{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }}
|
|
||||||
<label for="search"><i class="material-icons search">search</i></label>
|
|
||||||
<i class="material-icons close">clear</i>
|
|
||||||
</div>
|
|
||||||
<div class="input-field nav-panel-add" style="display: none">
|
|
||||||
{{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }}
|
|
||||||
<label for="add"><i class="material-icons add">add</i></label>
|
|
||||||
<i class="material-icons close">clear</i>
|
|
||||||
</div>
|
</div>
|
||||||
|
{{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }}
|
||||||
|
{{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }}
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -17,7 +17,7 @@ class DeveloperControllerTest extends WallabagCoreTestCase
|
||||||
$crawler = $client->request('GET', '/developer/client/create');
|
$crawler = $client->request('GET', '/developer/client/create');
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
|
|
||||||
$form = $crawler->filter('button[type=submit]')->form();
|
$form = $crawler->filter('button[id=client_save]')->form();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'client[name]' => 'My app',
|
'client[name]' => 'My app',
|
||||||
|
|
|
@ -476,7 +476,7 @@ class EntryControllerTest extends WallabagCoreTestCase
|
||||||
|
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
|
|
||||||
$form = $crawler->filter('button[type=submit]')->form();
|
$form = $crawler->filter('button[id=entry_save]')->form();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'entry[title]' => 'My updated title hehe :)',
|
'entry[title]' => 'My updated title hehe :)',
|
||||||
|
@ -509,7 +509,7 @@ class EntryControllerTest extends WallabagCoreTestCase
|
||||||
|
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
|
|
||||||
$form = $crawler->filter('button[type=submit]')->form();
|
$form = $crawler->filter('button[id=entry_save]')->form();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'entry[title]' => 'My updated title hehe :)',
|
'entry[title]' => 'My updated title hehe :)',
|
||||||
|
|
|
@ -14,7 +14,7 @@ class PocketControllerTest extends WallabagCoreTestCase
|
||||||
$crawler = $client->request('GET', '/import/pocket');
|
$crawler = $client->request('GET', '/import/pocket');
|
||||||
|
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
$this->assertSame(1, $crawler->filter('button[type=submit]')->count());
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testImportPocketWithRabbitEnabled()
|
public function testImportPocketWithRabbitEnabled()
|
||||||
|
@ -27,7 +27,7 @@ class PocketControllerTest extends WallabagCoreTestCase
|
||||||
$crawler = $client->request('GET', '/import/pocket');
|
$crawler = $client->request('GET', '/import/pocket');
|
||||||
|
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
$this->assertSame(1, $crawler->filter('button[type=submit]')->count());
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
||||||
|
|
||||||
$client->getContainer()->get('craue_config')->set('import_with_rabbitmq', 0);
|
$client->getContainer()->get('craue_config')->set('import_with_rabbitmq', 0);
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class PocketControllerTest extends WallabagCoreTestCase
|
||||||
$crawler = $client->request('GET', '/import/pocket');
|
$crawler = $client->request('GET', '/import/pocket');
|
||||||
|
|
||||||
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
||||||
$this->assertSame(1, $crawler->filter('button[type=submit]')->count());
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
||||||
|
|
||||||
$client->getContainer()->get('craue_config')->set('import_with_redis', 0);
|
$client->getContainer()->get('craue_config')->set('import_with_redis', 0);
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue