2013-12-07 19:45:00 +01:00
|
|
|
@extends('master')
|
|
|
|
|
2017-06-13 14:55:34 +02:00
|
|
|
@section('head_css')
|
|
|
|
<link href="{{ asset('css/built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
|
|
|
@stop
|
2013-11-26 13:45:07 +01:00
|
|
|
|
2014-01-30 23:29:09 +01:00
|
|
|
@section('head')
|
2014-04-28 22:05:37 +02:00
|
|
|
|
2015-04-22 21:21:04 +02:00
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
function checkForEnter(event)
|
|
|
|
{
|
|
|
|
if (event.keyCode === 13){
|
2016-05-15 22:16:08 +02:00
|
|
|
event.preventDefault();
|
2015-04-22 21:21:04 +02:00
|
|
|
validateServerSignUp();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function logout(force)
|
|
|
|
{
|
|
|
|
if (force) {
|
|
|
|
NINJA.formIsChanged = false;
|
|
|
|
}
|
|
|
|
|
2016-05-15 22:16:08 +02:00
|
|
|
if (force || NINJA.isRegistered) {
|
2017-03-24 14:44:01 +01:00
|
|
|
window.location = '{{ URL::to('logout') }}' + (force ? '?force_logout=true' : '');
|
2015-04-22 21:21:04 +02:00
|
|
|
} else {
|
2016-05-15 22:16:08 +02:00
|
|
|
$('#logoutModal').modal('show');
|
2015-04-22 21:21:04 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function hideMessage() {
|
|
|
|
$('.alert-info').fadeOut();
|
|
|
|
$.get('/hide_message', function(response) {
|
|
|
|
console.log('Reponse: %s', response);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-09-26 11:46:23 +02:00
|
|
|
function openTimeTracker() {
|
2017-10-29 08:48:23 +01:00
|
|
|
var width = 1060;
|
2017-10-15 11:39:42 +02:00
|
|
|
var height = 700;
|
2017-09-26 11:46:23 +02:00
|
|
|
var left = (screen.width/2)-(width/4);
|
|
|
|
var top = (screen.height/2)-(height/1.5);
|
|
|
|
window.open("{{ url('/time_tracker') }}", "time-tracker", "width="+width+",height="+height+",scrollbars=no,toolbar=no,screenx="+left+",screeny="+top+",location=no,titlebar=no,directories=no,status=no,menubar=no");
|
|
|
|
}
|
|
|
|
|
2016-03-14 09:25:08 +01:00
|
|
|
window.loadedSearchData = false;
|
2016-09-19 11:12:22 +02:00
|
|
|
function onSearchBlur() {
|
|
|
|
$('#search').typeahead('val', '');
|
|
|
|
}
|
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
function onSearchFocus() {
|
2016-02-19 10:41:03 +01:00
|
|
|
$('#search-form').show();
|
2016-05-15 22:16:08 +02:00
|
|
|
|
2016-03-14 09:25:08 +01:00
|
|
|
if (!window.loadedSearchData) {
|
2016-08-23 22:20:03 +02:00
|
|
|
window.loadedSearchData = true;
|
2015-10-11 16:41:09 +02:00
|
|
|
trackEvent('/activity', '/search');
|
2016-07-27 14:46:05 +02:00
|
|
|
var request = $.get('{{ URL::route('get_search_data') }}', function(data) {
|
2016-02-28 21:43:43 +01:00
|
|
|
$('#search').typeahead({
|
|
|
|
hint: true,
|
|
|
|
highlight: true,
|
2016-02-29 10:40:52 +01:00
|
|
|
}
|
2016-03-14 09:09:18 +01:00
|
|
|
@if (Auth::check() && Auth::user()->account->custom_client_label1)
|
|
|
|
,{
|
|
|
|
name: 'data',
|
2016-04-10 14:44:45 +02:00
|
|
|
limit: 3,
|
2016-03-14 09:09:18 +01:00
|
|
|
display: 'value',
|
2018-01-17 11:19:46 +01:00
|
|
|
source: searchData(data['{{ Auth::user()->account->present()->customClientLabel1 }}'], 'tokens'),
|
2016-03-14 09:09:18 +01:00
|
|
|
templates: {
|
2018-01-17 11:19:46 +01:00
|
|
|
header: ' <span style="font-weight:600;font-size:16px">{{ Auth::user()->account->present()->customClientLabel1 }}</span>'
|
2016-03-14 09:09:18 +01:00
|
|
|
}
|
2016-05-15 22:16:08 +02:00
|
|
|
}
|
2016-03-14 09:09:18 +01:00
|
|
|
@endif
|
|
|
|
@if (Auth::check() && Auth::user()->account->custom_client_label2)
|
|
|
|
,{
|
|
|
|
name: 'data',
|
2016-04-10 14:44:45 +02:00
|
|
|
limit: 3,
|
2016-03-14 09:09:18 +01:00
|
|
|
display: 'value',
|
2018-01-17 11:19:46 +01:00
|
|
|
source: searchData(data['{{ Auth::user()->account->present()->customClientLabel2 }}'], 'tokens'),
|
2016-03-14 09:09:18 +01:00
|
|
|
templates: {
|
2018-01-17 11:19:46 +01:00
|
|
|
header: ' <span style="font-weight:600;font-size:16px">{{ Auth::user()->account->present()->customClientLabel2 }}</span>'
|
2016-03-14 09:09:18 +01:00
|
|
|
}
|
2016-05-15 22:16:08 +02:00
|
|
|
}
|
2016-03-14 09:09:18 +01:00
|
|
|
@endif
|
2016-02-29 10:40:52 +01:00
|
|
|
@foreach (['clients', 'contacts', 'invoices', 'quotes', 'navigation'] as $type)
|
|
|
|
,{
|
2016-02-28 21:43:43 +01:00
|
|
|
name: 'data',
|
2016-04-10 14:44:45 +02:00
|
|
|
limit: 3,
|
2016-02-28 21:43:43 +01:00
|
|
|
display: 'value',
|
2016-03-14 09:09:18 +01:00
|
|
|
source: searchData(data['{{ $type }}'], 'tokens', true),
|
2016-02-28 21:43:43 +01:00
|
|
|
templates: {
|
2016-02-29 10:40:52 +01:00
|
|
|
header: ' <span style="font-weight:600;font-size:16px">{{ trans("texts.{$type}") }}</span>'
|
2016-02-28 21:43:43 +01:00
|
|
|
}
|
2016-02-29 10:40:52 +01:00
|
|
|
}
|
|
|
|
@endforeach
|
|
|
|
).on('typeahead:selected', function(element, datum, name) {
|
2016-02-22 22:23:28 +01:00
|
|
|
window.location = datum.url;
|
2016-05-15 22:16:08 +02:00
|
|
|
}).focus();
|
2015-04-22 21:21:04 +02:00
|
|
|
});
|
2016-07-04 09:59:30 +02:00
|
|
|
|
|
|
|
request.error(function(httpObj, textStatus) {
|
|
|
|
// if the session has expried show login page
|
|
|
|
if (httpObj.status == 401) {
|
|
|
|
location.reload();
|
|
|
|
}
|
|
|
|
});
|
2016-02-15 18:58:18 +01:00
|
|
|
}
|
|
|
|
}
|
2016-05-15 22:16:08 +02:00
|
|
|
|
2016-02-15 18:58:18 +01:00
|
|
|
$(function() {
|
2017-01-31 12:09:25 +01:00
|
|
|
// auto-logout after 8 hours
|
|
|
|
window.setTimeout(function() {
|
2017-06-13 15:27:05 +02:00
|
|
|
window.location = '{{ URL::to('/logout?reason=inactive') }}';
|
2017-02-19 16:41:44 +01:00
|
|
|
}, {{ 1000 * env('AUTO_LOGOUT_SECONDS', (60 * 60 * 8)) }});
|
2017-01-31 12:09:25 +01:00
|
|
|
|
|
|
|
// auto-hide status alerts
|
2016-05-15 22:16:08 +02:00
|
|
|
window.setTimeout(function() {
|
2016-02-15 18:58:18 +01:00
|
|
|
$(".alert-hide").fadeOut();
|
|
|
|
}, 3000);
|
|
|
|
|
2016-07-11 19:08:43 +02:00
|
|
|
/* Set the defaults for Bootstrap datepicker */
|
|
|
|
$.extend(true, $.fn.datepicker.defaults, {
|
2016-07-31 20:47:29 +02:00
|
|
|
//language: '{{ $appLanguage }}', // causes problems with some languages (ie, fr_CA) if the date includes strings (ie, July 31, 2016)
|
2016-07-11 19:08:43 +02:00
|
|
|
weekStart: {{ Session::get('start_of_week') }}
|
|
|
|
});
|
|
|
|
|
2015-04-22 21:21:04 +02:00
|
|
|
if (isStorageSupported()) {
|
|
|
|
@if (Auth::check() && !Auth::user()->registered)
|
2017-03-24 12:51:24 +01:00
|
|
|
localStorage.setItem('guest_key', '{{ Auth::user()->password }}');
|
2015-04-22 21:21:04 +02:00
|
|
|
@endif
|
|
|
|
}
|
|
|
|
|
2016-02-17 11:12:39 +01:00
|
|
|
$('ul.navbar-settings, ul.navbar-search').hover(function () {
|
2015-07-12 21:43:45 +02:00
|
|
|
if ($('.user-accounts').css('display') == 'block') {
|
|
|
|
$('.user-accounts').dropdown('toggle');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2015-04-22 21:21:04 +02:00
|
|
|
@yield('onReady')
|
|
|
|
|
2015-08-14 14:04:33 +02:00
|
|
|
@if (Input::has('focus'))
|
|
|
|
$('#{{ Input::get('focus') }}').focus();
|
|
|
|
@endif
|
|
|
|
|
2016-02-17 10:49:20 +01:00
|
|
|
// Focus the search input if the user clicks forward slash
|
2016-08-23 22:20:03 +02:00
|
|
|
$('#search').focusin(onSearchFocus);
|
2016-09-19 11:12:22 +02:00
|
|
|
$('#search').blur(onSearchBlur);
|
2016-08-23 22:20:03 +02:00
|
|
|
|
|
|
|
// manage sidebar state
|
2016-10-25 16:07:56 +02:00
|
|
|
function setupSidebar(side) {
|
|
|
|
$("#" + side + "-menu-toggle").click(function(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
$("#wrapper").toggleClass("toggled-" + side);
|
2016-08-31 11:58:31 +02:00
|
|
|
|
2016-10-25 16:07:56 +02:00
|
|
|
var toggled = $("#wrapper").hasClass("toggled-" + side) ? '1' : '0';
|
|
|
|
$.post('{{ url('save_sidebar_state') }}?show_' + side + '=' + toggled);
|
2016-08-23 22:20:03 +02:00
|
|
|
|
2016-10-25 16:07:56 +02:00
|
|
|
if (isStorageSupported()) {
|
|
|
|
localStorage.setItem('show_' + side + '_sidebar', toggled);
|
|
|
|
}
|
|
|
|
});
|
2016-08-31 11:58:31 +02:00
|
|
|
|
2016-10-25 16:07:56 +02:00
|
|
|
if (isStorageSupported()) {
|
2016-11-14 19:21:30 +01:00
|
|
|
var storage = localStorage.getItem('show_' + side + '_sidebar') || '0';
|
2016-10-25 16:07:56 +02:00
|
|
|
var toggled = $("#wrapper").hasClass("toggled-" + side) ? '1' : '0';
|
|
|
|
|
|
|
|
if (storage != toggled) {
|
|
|
|
setTimeout(function() {
|
|
|
|
$("#wrapper").toggleClass("toggled-" + side);
|
|
|
|
$.post('{{ url('save_sidebar_state') }}?show_' + side + '=' + storage);
|
2016-11-14 19:21:30 +01:00
|
|
|
}, 200);
|
2016-10-25 16:07:56 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-26 09:05:22 +02:00
|
|
|
@if ( ! Utils::isTravis())
|
|
|
|
setupSidebar('left');
|
|
|
|
setupSidebar('right');
|
|
|
|
@endif
|
2016-08-31 11:58:31 +02:00
|
|
|
|
2016-10-25 16:07:56 +02:00
|
|
|
// auto select focused nav-tab
|
2016-09-05 14:28:59 +02:00
|
|
|
if (window.location.hash) {
|
|
|
|
setTimeout(function() {
|
|
|
|
$('.nav-tabs a[href="' + window.location.hash + '"]').tab('show');
|
|
|
|
}, 1);
|
|
|
|
}
|
|
|
|
|
2016-09-05 20:51:00 +02:00
|
|
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
2017-03-07 11:10:00 +01:00
|
|
|
if (isStorageSupported() && /\/settings\//.test(location.href)) {
|
2017-03-11 22:43:38 +01:00
|
|
|
var target = $(e.target).attr("href") // activated tab
|
|
|
|
if (history.pushState) {
|
|
|
|
history.pushState(null, null, target);
|
|
|
|
}
|
2017-03-20 14:40:10 +01:00
|
|
|
if (isStorageSupported()) {
|
|
|
|
localStorage.setItem('last:settings_page', location.href.replace(location.hash, ''));
|
|
|
|
}
|
2017-03-07 11:10:00 +01:00
|
|
|
}
|
2016-09-05 20:51:00 +02:00
|
|
|
});
|
|
|
|
|
2018-01-17 12:17:45 +01:00
|
|
|
// set timeout onDomReady
|
|
|
|
setTimeout(delayedFragmentTargetOffset, 500);
|
|
|
|
|
|
|
|
// add scroll offset to fragment target (if there is one)
|
|
|
|
function delayedFragmentTargetOffset(){
|
|
|
|
var offset = $(':target').offset();
|
|
|
|
if (offset) {
|
|
|
|
var scrollto = offset.top - 180; // minus fixed header height
|
|
|
|
$('html, body').animate({scrollTop:scrollto}, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-04-22 21:21:04 +02:00
|
|
|
});
|
|
|
|
|
2016-05-15 22:16:08 +02:00
|
|
|
</script>
|
2015-04-22 21:21:04 +02:00
|
|
|
|
2013-12-07 19:45:00 +01:00
|
|
|
@stop
|
2013-11-27 08:38:37 +01:00
|
|
|
|
2013-12-07 19:45:00 +01:00
|
|
|
@section('body')
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2017-08-08 21:29:51 +02:00
|
|
|
@if (Utils::isNinjaProd() && ! Request::is('settings/account_management'))
|
2016-10-18 17:01:33 +02:00
|
|
|
@include('partials.upgrade_modal')
|
|
|
|
@endif
|
2016-10-16 15:38:04 +02:00
|
|
|
|
2016-08-23 19:28:45 +02:00
|
|
|
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" style="height:60px;">
|
2014-04-03 19:54:06 +02:00
|
|
|
|
|
|
|
<div class="navbar-header">
|
|
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
|
|
|
|
<span class="sr-only">Toggle navigation</span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
</button>
|
2016-09-01 17:52:26 +02:00
|
|
|
<a href="#" id="left-menu-toggle" class="menu-toggle" title="{{ trans('texts.toggle_navigation') }}">
|
|
|
|
<div class="navbar-brand">
|
2016-09-01 17:57:04 +02:00
|
|
|
<i class="fa fa-bars hide-phone" style="width:32px;padding-top:2px;float:left"></i>
|
2016-09-01 17:52:26 +02:00
|
|
|
{{-- Per our license, please do not remove or modify this link. --}}
|
|
|
|
<img src="{{ asset('images/invoiceninja-logo.png') }}" width="193" height="25" style="float:left"/>
|
|
|
|
</div>
|
|
|
|
</a>
|
2014-04-03 19:54:06 +02:00
|
|
|
</div>
|
|
|
|
|
2016-09-01 17:52:26 +02:00
|
|
|
<a id="right-menu-toggle" class="menu-toggle hide-phone pull-right" title="{{ trans('texts.toggle_history') }}" style="cursor:pointer">
|
2016-09-01 17:57:04 +02:00
|
|
|
<div class="fa fa-bars"></div>
|
2016-09-01 17:52:26 +02:00
|
|
|
</a>
|
|
|
|
|
2014-04-03 19:54:06 +02:00
|
|
|
<div class="collapse navbar-collapse" id="navbar-collapse-1">
|
2016-09-01 17:52:26 +02:00
|
|
|
<div class="navbar-form navbar-right">
|
2016-08-23 12:42:17 +02:00
|
|
|
|
2014-05-25 12:57:19 +02:00
|
|
|
@if (Auth::check())
|
|
|
|
@if (!Auth::user()->registered)
|
2018-02-04 09:57:08 +01:00
|
|
|
@if (!Auth::user()->confirmed)
|
2018-02-16 10:05:44 +01:00
|
|
|
{!! Button::success(trans('texts.sign_up'))->withAttributes(array('id' => 'signUpButton', 'onclick' => 'showSignUp()', 'style' => 'max-width:100px;;overflow:hidden'))->small() !!}
|
2018-02-04 09:57:08 +01:00
|
|
|
@endif
|
2016-02-11 16:12:27 +01:00
|
|
|
@elseif (Utils::isNinjaProd() && (!Auth::user()->isPro() || Auth::user()->isTrial()))
|
2016-12-14 15:19:16 +01:00
|
|
|
@if (Auth::user()->account->company->hasActivePromo())
|
|
|
|
{!! Button::warning(trans('texts.plan_upgrade'))->withAttributes(array('onclick' => 'showUpgradeModal()', 'style' => 'max-width:100px;overflow:hidden'))->small() !!}
|
|
|
|
@else
|
|
|
|
{!! Button::success(trans('texts.plan_upgrade'))->withAttributes(array('onclick' => 'showUpgradeModal()', 'style' => 'max-width:100px;overflow:hidden'))->small() !!}
|
|
|
|
@endif
|
2014-05-25 12:57:19 +02:00
|
|
|
@endif
|
2014-04-22 22:10:14 +02:00
|
|
|
@endif
|
2014-03-19 17:17:26 +01:00
|
|
|
|
2015-06-16 21:35:35 +02:00
|
|
|
<div class="btn-group user-dropdown">
|
2014-04-03 19:54:06 +02:00
|
|
|
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
2016-08-23 22:20:03 +02:00
|
|
|
<div id="myAccountButton" class="ellipsis" style="max-width:{{ Utils::hasFeature(FEATURE_USERS) ? '130' : '100' }}px;">
|
2015-06-16 21:35:35 +02:00
|
|
|
@if (session(SESSION_USER_ACCOUNTS) && count(session(SESSION_USER_ACCOUNTS)))
|
|
|
|
{{ Auth::user()->account->getDisplayName() }}
|
|
|
|
@else
|
|
|
|
{{ Auth::user()->getDisplayName() }}
|
|
|
|
@endif
|
2014-11-12 16:22:54 +01:00
|
|
|
<span class="caret"></span>
|
2016-03-14 22:37:13 +01:00
|
|
|
</div>
|
2016-05-15 22:16:08 +02:00
|
|
|
</button>
|
2015-08-03 09:15:58 +02:00
|
|
|
<ul class="dropdown-menu user-accounts">
|
2015-06-16 21:35:35 +02:00
|
|
|
@if (session(SESSION_USER_ACCOUNTS))
|
|
|
|
@foreach (session(SESSION_USER_ACCOUNTS) as $item)
|
2015-07-07 22:08:16 +02:00
|
|
|
@if ($item->user_id == Auth::user()->id)
|
|
|
|
@include('user_account', [
|
|
|
|
'user_account_id' => $item->id,
|
|
|
|
'user_id' => $item->user_id,
|
|
|
|
'account_name' => $item->account_name,
|
|
|
|
'user_name' => $item->user_name,
|
2016-03-22 21:19:55 +01:00
|
|
|
'logo_url' => isset($item->logo_url) ? $item->logo_url : "",
|
2015-07-07 22:08:16 +02:00
|
|
|
'selected' => true,
|
|
|
|
])
|
|
|
|
@endif
|
|
|
|
@endforeach
|
|
|
|
@foreach (session(SESSION_USER_ACCOUNTS) as $item)
|
|
|
|
@if ($item->user_id != Auth::user()->id)
|
|
|
|
@include('user_account', [
|
|
|
|
'user_account_id' => $item->id,
|
|
|
|
'user_id' => $item->user_id,
|
|
|
|
'account_name' => $item->account_name,
|
|
|
|
'user_name' => $item->user_name,
|
2016-03-22 21:19:55 +01:00
|
|
|
'logo_url' => isset($item->logo_url) ? $item->logo_url : "",
|
2015-07-07 22:08:16 +02:00
|
|
|
'selected' => false,
|
|
|
|
])
|
|
|
|
@endif
|
2015-06-16 21:35:35 +02:00
|
|
|
@endforeach
|
|
|
|
@else
|
2015-07-07 22:08:16 +02:00
|
|
|
@include('user_account', [
|
2016-05-15 22:16:08 +02:00
|
|
|
'account_name' => Auth::user()->account->name ?: trans('texts.untitled'),
|
2015-07-07 22:08:16 +02:00
|
|
|
'user_name' => Auth::user()->getDisplayName(),
|
2016-03-22 21:19:55 +01:00
|
|
|
'logo_url' => Auth::user()->account->getLogoURL(),
|
2015-07-07 22:08:16 +02:00
|
|
|
'selected' => true,
|
|
|
|
])
|
2016-05-15 22:16:08 +02:00
|
|
|
@endif
|
2016-03-16 00:08:00 +01:00
|
|
|
<li class="divider"></li>
|
2017-05-07 15:22:02 +02:00
|
|
|
@if (Utils::isAdmin() && Auth::user()->confirmed && Utils::getResllerType() != RESELLER_ACCOUNT_COUNT)
|
2017-08-24 19:06:12 +02:00
|
|
|
@if (!session(SESSION_USER_ACCOUNTS) || count(session(SESSION_USER_ACCOUNTS)) < 5)
|
2017-03-24 12:51:24 +01:00
|
|
|
<li>{!! link_to('#', trans('texts.add_company'), ['onclick' => 'showSignUp()']) !!}</li>
|
2016-03-16 00:08:00 +01:00
|
|
|
@endif
|
2015-08-03 09:15:58 +02:00
|
|
|
@endif
|
2015-06-16 21:35:35 +02:00
|
|
|
<li>{!! link_to('#', trans('texts.logout'), array('onclick'=>'logout()')) !!}</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
2016-05-15 22:16:08 +02:00
|
|
|
</div>
|
|
|
|
|
2017-04-04 11:54:38 +02:00
|
|
|
{!! Former::open('/handle_command')->id('search-form')->addClass('navbar-form navbar-right')->role('search') !!}
|
|
|
|
<div class="form-group has-feedback">
|
2017-04-19 16:28:55 +02:00
|
|
|
<input type="text" name="command" id="search" style="width: 280px;padding-top:0px;padding-bottom:0px;margin-right:12px;"
|
2017-04-04 11:54:38 +02:00
|
|
|
class="form-control" placeholder="{{ trans('texts.search') . ': ' . trans('texts.search_hotkey')}}"/>
|
2017-04-06 16:04:15 +02:00
|
|
|
@if (env('SPEECH_ENABLED'))
|
2017-04-04 11:54:38 +02:00
|
|
|
@include('partials/speech_recognition')
|
|
|
|
@endif
|
2016-08-23 12:42:17 +02:00
|
|
|
</div>
|
2017-04-04 11:54:38 +02:00
|
|
|
{!! Former::close() !!}
|
2016-08-23 12:42:17 +02:00
|
|
|
|
|
|
|
@if (false && Utils::isAdmin())
|
2016-08-18 21:52:59 +02:00
|
|
|
<ul class="nav navbar-nav navbar-right">
|
|
|
|
<li class="dropdown">
|
2016-08-23 12:42:17 +02:00
|
|
|
@section('self-updater')
|
2016-08-18 21:52:59 +02:00
|
|
|
<a href="{{ URL::to('self-update') }}" class="dropdown-toggle">
|
|
|
|
<span class="glyphicon glyphicon-cloud-download" title="{{ trans('texts.update_invoiceninja_title') }}"></span>
|
|
|
|
</a>
|
|
|
|
@show
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
@endif
|
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
<ul class="nav navbar-nav hide-non-phone" style="font-weight: bold">
|
|
|
|
@foreach ([
|
|
|
|
'dashboard' => false,
|
|
|
|
'clients' => false,
|
2016-09-23 16:00:47 +02:00
|
|
|
'products' => false,
|
|
|
|
'invoices' => false,
|
|
|
|
'payments' => false,
|
2017-12-06 12:01:50 +01:00
|
|
|
'recurring_invoices' => 'recurring',
|
2016-08-23 22:20:03 +02:00
|
|
|
'credits' => false,
|
2016-09-23 16:00:47 +02:00
|
|
|
'quotes' => false,
|
2018-01-30 19:58:55 +01:00
|
|
|
'proposals' => false,
|
2017-11-30 12:57:39 +01:00
|
|
|
'projects' => false,
|
2016-08-23 22:20:03 +02:00
|
|
|
'tasks' => false,
|
|
|
|
'expenses' => false,
|
|
|
|
'vendors' => false,
|
2017-01-22 11:09:29 +01:00
|
|
|
'reports' => false,
|
2016-08-23 22:20:03 +02:00
|
|
|
'settings' => false,
|
|
|
|
] as $key => $value)
|
|
|
|
{!! Form::nav_link($key, $value ?: $key) !!}
|
|
|
|
@endforeach
|
|
|
|
</ul>
|
2016-08-23 12:42:17 +02:00
|
|
|
</div><!-- /.navbar-collapse -->
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2016-08-23 12:42:17 +02:00
|
|
|
</nav>
|
2016-08-31 11:58:31 +02:00
|
|
|
|
2018-03-27 11:52:37 +02:00
|
|
|
<div id="wrapper" class='{{ session(SESSION_LEFT_SIDEBAR) ? 'toggled-left' : '' }} {{ session(SESSION_RIGHT_SIDEBAR, true) ? 'toggled-right' : '' }}'>
|
2016-08-23 12:42:17 +02:00
|
|
|
|
|
|
|
<!-- Sidebar -->
|
2016-09-01 17:52:26 +02:00
|
|
|
<div id="left-sidebar-wrapper" class="hide-phone">
|
2017-06-19 13:19:25 +02:00
|
|
|
<ul class="sidebar-nav {{ Auth::user()->dark_mode ? 'sidebar-nav-dark' : 'sidebar-nav-light' }}">
|
2016-08-23 12:42:17 +02:00
|
|
|
@foreach([
|
2016-08-31 21:10:41 +02:00
|
|
|
'dashboard',
|
|
|
|
'clients',
|
2016-09-23 16:00:47 +02:00
|
|
|
'products',
|
2016-08-31 21:10:41 +02:00
|
|
|
'invoices',
|
|
|
|
'payments',
|
2017-12-06 12:01:50 +01:00
|
|
|
'recurring_invoices',
|
2016-08-31 21:10:41 +02:00
|
|
|
'credits',
|
|
|
|
'quotes',
|
2018-01-30 19:58:55 +01:00
|
|
|
'proposals',
|
2017-11-30 12:57:39 +01:00
|
|
|
'projects',
|
2016-08-31 21:10:41 +02:00
|
|
|
'tasks',
|
|
|
|
'expenses',
|
|
|
|
'vendors',
|
|
|
|
] as $option)
|
2016-12-07 21:40:36 +01:00
|
|
|
@if (in_array($option, ['dashboard', 'settings'])
|
|
|
|
|| Auth::user()->can('view', substr($option, 0, -1))
|
|
|
|
|| Auth::user()->can('create', substr($option, 0, -1)))
|
2016-12-09 10:26:21 +01:00
|
|
|
@include('partials.navigation_option')
|
2016-08-31 11:58:31 +02:00
|
|
|
@endif
|
2016-08-23 12:42:17 +02:00
|
|
|
@endforeach
|
2016-12-07 21:40:36 +01:00
|
|
|
@if ( ! Utils::isNinjaProd())
|
|
|
|
@foreach (Module::all() as $module)
|
2016-12-09 10:26:21 +01:00
|
|
|
@include('partials.navigation_option', [
|
|
|
|
'option' => $module->getAlias(),
|
|
|
|
'icon' => $module->get('icon', 'th-large'),
|
|
|
|
])
|
2016-12-07 21:40:36 +01:00
|
|
|
@endforeach
|
|
|
|
@endif
|
2017-02-07 16:23:55 +01:00
|
|
|
@if (Auth::user()->hasPermission('view_all'))
|
2017-01-23 16:00:44 +01:00
|
|
|
@include('partials.navigation_option', ['option' => 'reports'])
|
|
|
|
@endif
|
2016-12-09 10:26:21 +01:00
|
|
|
@include('partials.navigation_option', ['option' => 'settings'])
|
2017-01-08 16:24:23 +01:00
|
|
|
<li style="width:100%;">
|
2016-12-13 11:47:40 +01:00
|
|
|
<div class="nav-footer">
|
2017-06-04 10:51:49 +02:00
|
|
|
@if (Auth::user()->registered)
|
|
|
|
<a href="javascript:showContactUs()" title="{{ trans('texts.contact_us') }}">
|
|
|
|
<i class="fa fa-envelope"></i>
|
|
|
|
</a>
|
|
|
|
@endif
|
2016-12-11 23:25:22 +01:00
|
|
|
<a href="{{ url(NINJA_FORUM_URL) }}" target="_blank" title="{{ trans('texts.support_forum') }}">
|
2016-12-11 23:38:00 +01:00
|
|
|
<i class="fa fa-list-ul"></i>
|
|
|
|
</a>
|
2017-06-04 09:35:25 +02:00
|
|
|
<a href="javascript:showKeyboardShortcuts()" title="{{ trans('texts.help') }}">
|
2016-12-11 23:25:22 +01:00
|
|
|
<i class="fa fa-question-circle"></i>
|
|
|
|
</a>
|
2016-12-11 23:38:00 +01:00
|
|
|
<a href="{{ url(SOCIAL_LINK_FACEBOOK) }}" target="_blank" title="Facebook">
|
2016-12-11 23:25:22 +01:00
|
|
|
<i class="fa fa-facebook-square"></i>
|
|
|
|
</a>
|
2016-12-11 23:38:00 +01:00
|
|
|
<a href="{{ url(SOCIAL_LINK_TWITTER) }}" target="_blank" title="Twitter">
|
2016-12-11 23:25:22 +01:00
|
|
|
<i class="fa fa-twitter-square"></i>
|
|
|
|
</a>
|
2016-12-11 23:38:00 +01:00
|
|
|
<a href="{{ url(SOCIAL_LINK_GITHUB) }}" target="_blank" title="GitHub">
|
2016-12-11 23:25:22 +01:00
|
|
|
<i class="fa fa-github-square"></i>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</li>
|
2016-08-23 12:42:17 +02:00
|
|
|
</ul>
|
|
|
|
</div>
|
2016-08-31 11:58:31 +02:00
|
|
|
<!-- /#left-sidebar-wrapper -->
|
|
|
|
|
2016-09-02 16:53:16 +02:00
|
|
|
<div id="right-sidebar-wrapper" class="hide-phone" style="overflow-y:hidden">
|
2017-06-19 13:19:25 +02:00
|
|
|
<ul class="sidebar-nav {{ Auth::user()->dark_mode ? 'sidebar-nav-dark' : 'sidebar-nav-light' }}">
|
2016-09-01 17:52:26 +02:00
|
|
|
{!! \App\Libraries\HistoryUtils::renderHtml(Auth::user()->account_id) !!}
|
2016-08-31 21:10:41 +02:00
|
|
|
</ul>
|
2016-08-31 11:58:31 +02:00
|
|
|
</div>
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2016-08-23 12:42:17 +02:00
|
|
|
<!-- Page Content -->
|
|
|
|
<div id="page-content-wrapper">
|
|
|
|
<div class="container-fluid">
|
2016-02-15 18:58:18 +01:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@include('partials.warn_session', ['redirectTo' => '/dashboard'])
|
2016-05-15 22:16:08 +02:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@if (Session::has('warning'))
|
2017-02-19 21:31:27 +01:00
|
|
|
<div class="alert alert-warning">{!! Session::get('warning') !!}</div>
|
|
|
|
@elseif (env('WARNING_MESSAGE'))
|
|
|
|
<div class="alert alert-warning">{!! env('WARNING_MESSAGE') !!}</div>
|
2016-08-23 22:20:03 +02:00
|
|
|
@endif
|
2016-05-15 22:16:08 +02:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@if (Session::has('message'))
|
|
|
|
<div class="alert alert-info alert-hide">
|
|
|
|
{{ Session::get('message') }}
|
|
|
|
</div>
|
|
|
|
@elseif (Session::has('news_feed_message'))
|
|
|
|
<div class="alert alert-info">
|
|
|
|
{!! Session::get('news_feed_message') !!}
|
|
|
|
<a href="#" onclick="hideMessage()" class="pull-right">{{ trans('texts.hide') }}</a>
|
|
|
|
</div>
|
|
|
|
@endif
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@if (Session::has('error'))
|
|
|
|
<div class="alert alert-danger">{!! Session::get('error') !!}</div>
|
|
|
|
@endif
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2017-09-12 12:43:59 +02:00
|
|
|
<div class="pull-right">
|
|
|
|
@yield('top-right')
|
|
|
|
</div>
|
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@if (!isset($showBreadcrumbs) || $showBreadcrumbs)
|
2018-03-22 10:03:46 +01:00
|
|
|
{!! Form::breadcrumbs((! empty($entity) && $entity->exists) ? $entity->present()->statusLabel : false) !!}
|
2016-08-23 22:20:03 +02:00
|
|
|
@endif
|
2014-04-03 19:54:06 +02:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@yield('content')
|
2016-09-01 17:52:26 +02:00
|
|
|
<br/>
|
2016-08-23 22:20:03 +02:00
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-12">
|
2015-09-26 23:08:59 +02:00
|
|
|
|
2016-08-23 22:20:03 +02:00
|
|
|
@if (Utils::isNinjaProd())
|
2017-12-01 10:48:13 +01:00
|
|
|
@if (Auth::check() && Auth::user()->hasActivePromo())
|
|
|
|
{!! trans('texts.promotion_footer', [
|
|
|
|
'link' => '<a href="javascript:showUpgradeModal()">' . trans('texts.click_here') . '</a>'
|
|
|
|
]) !!}
|
|
|
|
@elseif (Auth::check() && Auth::user()->isTrial())
|
2016-08-23 22:20:03 +02:00
|
|
|
{!! trans(Auth::user()->account->getCountTrialDaysLeft() == 0 ? 'texts.trial_footer_last_day' : 'texts.trial_footer', [
|
|
|
|
'count' => Auth::user()->account->getCountTrialDaysLeft(),
|
2016-10-16 15:38:04 +02:00
|
|
|
'link' => '<a href="javascript:showUpgradeModal()">' . trans('texts.click_here') . '</a>'
|
2016-08-23 22:20:03 +02:00
|
|
|
]) !!}
|
|
|
|
@endif
|
|
|
|
@else
|
2016-12-27 12:44:15 +01:00
|
|
|
@include('partials.white_label', ['company' => Auth::user()->account->company])
|
2016-08-23 22:20:03 +02:00
|
|
|
@endif
|
|
|
|
</div>
|
2016-08-23 12:42:17 +02:00
|
|
|
</div>
|
2014-10-05 23:00:42 +02:00
|
|
|
</div>
|
2016-08-23 12:42:17 +02:00
|
|
|
<!-- /#page-content-wrapper -->
|
2014-04-03 19:54:06 +02:00
|
|
|
</div>
|
|
|
|
|
2016-12-25 18:43:42 +01:00
|
|
|
@include('partials.contact_us')
|
2017-03-24 12:51:24 +01:00
|
|
|
@include('partials.sign_up')
|
2016-12-06 22:52:57 +01:00
|
|
|
@include('partials.keyboard_shortcuts')
|
2016-12-06 22:39:10 +01:00
|
|
|
|
2018-03-12 14:37:05 +01:00
|
|
|
@if (auth()->check() && ! auth()->user()->hasAcceptedLatestTerms())
|
|
|
|
@include('partials.accept_terms')
|
|
|
|
@endif
|
|
|
|
|
2015-10-14 16:15:39 +02:00
|
|
|
</div>
|
2014-04-03 19:54:06 +02:00
|
|
|
|
|
|
|
<p> </p>
|
|
|
|
|
2014-03-19 17:17:26 +01:00
|
|
|
|
2016-05-10 21:41:30 +02:00
|
|
|
@stop
|