Kaydet (Commit) 9c9e5593 authored tarafından mertcelen's avatar mertcelen

Extension Support enabled

Login page visual changes applied.
Dark mode enabled
Navbar color updated
Extensions can have required minimum version.
üst 77652b94
......@@ -8,4 +8,5 @@ APP_NOTIFICATION_EMAIL=admin@liman.dev
LOG_LEVEL=debug
LOG_PATH=/liman/logs/liman.log
EXTENSION_DEVELOPER_MODE=false
QUEUE_DRIVER=database
\ No newline at end of file
QUEUE_DRIVER=database
BRAND_NAME="Havelsan © 2020"
\ No newline at end of file
......@@ -20,6 +20,7 @@ class Extension extends Model
"sslPorts",
"issuer",
"language",
"support"
];
/**
......
......@@ -165,9 +165,13 @@ class MainController extends Controller
// Now that we have everything, let's extract database.
$file = file_get_contents($path . '/db.json');
$json = json_decode($file, true);
if(array_key_exists("supportedLiman",$json) && version_compare($json["supportedLiman"],getVersion()) !== -1){
return respond("Bu eklentiyi yükleyebilmek için Liman'ı güncellemelisiniz, gerekli minimum sürüm " . $json["supportedLiman"],201);
}
if (isset($verify)) {
$json["issuer"] = explode(" ", $verify, 4)[3];
} else {
......@@ -288,6 +292,7 @@ class MainController extends Controller
"language" => request('language'),
"status" => 0,
"service" => "",
"supportedLiman" => file_get_contents(storage_path('VERSION')),
"support" => auth()->user()->email,
"icon" => "",
];
......
......@@ -104,7 +104,6 @@ class MainController extends Controller
return view('extension_pages.server', [
"viewName" => "",
"view" => $output,
"timestamp" => $timestamp,
"last" => $this->getNavigationServers(),
]);
}
......
......@@ -23,7 +23,7 @@ class SettingsController extends Controller
public function saveSettings()
{
if (intval(request('ext_count')) > 0) {
config(['liman.nav_extension_hide_count' => request('ext_count')]);
setEnv(['NAV_EXTENSION_HIDE_COUNT' => request('ext_count')]);
return respond('Ayarlar başarıyla kaydedildi.');
} else {
return respond('Bu ayar minimum 1 olmalıdır.', 201);
......@@ -136,6 +136,7 @@ class SettingsController extends Controller
$extension["version"] = request("version");
$extension["verification"] = request("verification");
$extension["sslPorts"] = request("sslPorts");
$extension["supportedLiman"] = request("supportedLiman");
} else {
$values = $extension[request('table')];
foreach ($values as $key => $value) {
......
......@@ -5,5 +5,4 @@ return [
"user_widget_count" => 10,
"nav_extension_hide_count" => 10,
"widget_refresh_time" => 30000, //ms
"brand" => "Havelsan © 2020"
];
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddSupportToExtensions extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('extensions', function (Blueprint $table) {
$table->string('support')->default('administrator@liman.app');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('extensions', function (Blueprint $table) {
//
});
}
}
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 260" width="500" height="283">
<defs>
<image width="143" height="260" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAAEECAMAAAAmvZcOAAAAAXNSR0IB2cksfwAAAUFQTFRF////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////17AiVwAAAGt0Uk5TK9T/4kcqHQ8BAPHVx0IsDvLjOBzGObjf7fs1oQsY0Sf258vZaCEvEwQMGyglFwg3s9LPjTPh7/36690J+c0jBup7Fcj32zEKGaDJHwMm0OZVEfQF6PUp5Na0DR7p+E6X5dgunMHzvXbTji1AnmjOAAAK1ElEQVR4nN1dfX8cxQ2evctekt014727JcFJWseJE0jshDjOiw20tKZAE6BAgQQKtNB3vv8H6Kz37OyLpJ3RaHf86/CDPwjcPSdpJI30jEapaFKu6blYzc5fuBh6qRWeZJqm2dprM31G8JRrPU+z+SIsIqXSSW0l0+U8qIxUHE0mbUQBZVTX1wmifKmCAVJx2sZjEEVFKBF19BVYRDAegyiNgwAC9RUQEGDPJ4CyRQg8iL7MyosAAkL1VWosgE23/HMTUDS+CRHyMYCWs9HxEPIJYUL4/gojIFJfJk0bW0DEfq8ENLITovU1voDU4vVomhACGtlLK72Ii+Wly29ggCI1Lh7zt15sXLmEyWhkhVW//uq1jSyHEY2ssBNt6EWRwoCiOAQegyiGAaWB8FzU82l4g65/2WIJCWg6H9Og63h0kUMGPWoMaygDjvWjGnQDDxzLRjUgGzzB5APrKw0mHzjWB5QPiOesyWdUB93wP6CDfuNXvw6EZ5ZB/vnylWth8MDueXJp42oYPDMwfAWL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"/>
</defs>
<style>
tspan { white-space:pre }
</style>
<use id="Background" href="#img1" x="0" y="0" />
<path id="man " fill="#ffffff" d="M227.2 146.28L227.2 186L205.61 186L205.61 139.77Q205.61 131.2 202.7 126.95Q199.87 122.63 193.71 122.63Q185.43 122.63 181.67 128.72Q177.92 134.81 177.92 148.76L177.92 186L156.33 186L156.33 106.84L172.82 106.84L175.73 116.97L176.93 116.97Q180.12 111.52 186.14 108.47Q192.15 105.36 199.94 105.36Q217.71 105.36 224.01 116.97L225.93 116.97Q229.11 111.45 235.27 108.4Q241.5 105.36 249.29 105.36Q262.74 105.36 269.61 112.3Q276.55 119.16 276.55 134.39L276.55 186L254.88 186L254.88 139.77Q254.88 131.2 251.98 126.95Q249.15 122.63 242.99 122.63Q235.06 122.63 231.09 128.3Q227.2 133.96 227.2 146.28ZM364.06 186L348.98 186L344.8 175.24L344.23 175.24Q338.78 182.11 332.98 184.8Q327.24 187.42 317.97 187.42Q306.57 187.42 299.98 180.9Q293.47 174.39 293.47 162.35Q293.47 149.75 302.25 143.8Q311.1 137.78 328.87 137.15L342.6 136.72L342.6 133.25Q342.6 121.22 330.29 121.22Q320.8 121.22 307.98 126.95L300.83 112.37Q314.5 105.22 331.14 105.22Q347.07 105.22 355.56 112.15Q364.06 119.09 364.06 133.25L364.06 186ZM342.6 155.84L342.6 149.33L334.25 149.61Q324.83 149.89 320.23 153.01Q315.63 156.12 315.63 162.49Q315.63 171.63 326.11 171.63Q333.61 171.63 338.07 167.31Q342.6 162.99 342.6 155.84ZM459.36 134.39L459.36 186L437.76 186L437.76 139.77Q437.76 131.2 434.72 126.95Q431.67 122.63 425.02 122.63Q415.95 122.63 411.92 128.72Q407.88 134.74 407.88 148.76L407.88 186L386.29 186L386.29 106.84L402.79 106.84L405.69 116.97L406.89 116.97Q410.5 111.23 416.8 108.33Q423.18 105.36 431.25 105.36Q445.05 105.36 452.2 112.86Q459.36 120.3 459.36 134.39Z" />
</svg>
\ No newline at end of file
......@@ -47,15 +47,8 @@ table.dataTable tbody tr.selected {
}
.customAlert {
padding: 10px 25px 10px 15px !important;
font-size: 12px;
border-radius: 0px;
text-align: center;
text-shadow: 3px 2px 3px rgba(255, 255, 255, 0.2);
border: 0px;
-webkit-box-shadow: 0px 0px 15px -2px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 0px 0px 15px -2px rgba(0, 0, 0, 0.75);
box-shadow: 0px 0px 15px -2px rgba(0, 0, 0, 0.75);
}
.error-page > .error-content {
......
......@@ -5,7 +5,8 @@
@section('body')
<div class="login-box">
<div class="login-logo">
<a href="{{ route('login') }}"><b>Liman MYS</b></a>
<a><b><img src="/images/liman_logo-white.svg" height="50"><br> Merkezi Yönetim Sistemi</b></a>
<h5>{{env("BRAND_NAME")}}</h5>
</div>
<div class="card">
<div class="card-body login-card-body">
......@@ -27,7 +28,7 @@
<form action="{{ route('login')}}" method="post">
@csrf
<div class="input-group mb-3">
<input type="text" name="liman_email_mert" class="form-control {{ $errors->has('email') ? 'is-invalid' : '' }}" placeholder="{{__("Email Adresi ve Ldap Kullanıcı Adı")}}" value="{{ old('liman_email_mert') }}" required>
<input type="text" name="liman_email_mert" class="form-control {{ $errors->has('email') ? 'is-invalid' : '' }}" placeholder="{{__("Email Adresi")}}" value="{{ old('liman_email_mert') }}" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
......@@ -35,7 +36,7 @@
</div>
</div>
<div class="input-group mb-3">
<input type="password" name="liman_password_baran" class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}" placeholder="Password">
<input type="password" name="liman_password_baran" class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}" placeholder="Parola">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
......@@ -58,5 +59,35 @@
</form>
</div>
</div>
<center><h6>Havelsan © 2020 <a href="https://liman.havelsan.com.tr" target="_blank">(İletişim)</a></h6></center>
</div>
<style>
.login-page, .card-body, input {
background: linear-gradient(261deg, #007bff, #343a40);
background-size: 400% 400%;
-webkit-animation: AnimationName 0s ease infinite;
-moz-animation: AnimationName 0s ease infinite;
animation: AnimationName 0s ease infinite;
}
@-webkit-keyframes AnimationName {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}
@-moz-keyframes AnimationName {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}
@keyframes AnimationName {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}
.login-box, .card-body {
color:white;
}
</style>
@stop
\ No newline at end of file
......@@ -18,6 +18,6 @@
<h1>{{__("Bakım Zamanı")}}</h1>
<div>
<p>{{__("Liman Merkezi Yönetim Sistemi şu an bakımda. Lütfen daha sonra tekrar deneyin.")}}</p>
<p>{{config('liman.brand')}}</p>
<p>{{env('BRAND_NAME')}}</p>
</div>
</article>
\ No newline at end of file
......@@ -142,7 +142,7 @@
])
<script>
$('input[name=ext_count]').val('{{intval(config('liman.nav_extension_hide_count'))}}');
$('input[name=ext_count]').val('{{intval(env('NAV_EXTENSION_HIDE_COUNT'))}}');
function downloadFile(form){
window.location.assign('/indir/eklenti/' + form.getElementsByTagName('select')[0].value);
setTimeout(function(){
......
......@@ -33,28 +33,30 @@
<div class="tab-content">
<div class="tab-pane fade show active" id="tab_1" role="tabpanel">
<h3>{{__("Eklenti Adı")}}</h3>
<input id="extensionName" type="text" class="form-control" value="{{$extension['name']}}" disabled required>
<input id="extensionName" type="text" class="form-control" value="{{$extension['name']}}" disabled required><br>
<h3>{{__("Yayınlayan")}}</h3>
<input type="text" name="name" class="form-control" value="{{$extension['publisher']}}" disabled required>
<input type="text" name="name" class="form-control" value="{{$extension['publisher']}}" disabled required><br>
<h3>{{__("Yazılım Dili")}}</h3>
<select name="programmingLanguage" class="form-control" value="{{$extension['language']}}" autocomplete="off" disabled>
<select name="programmingLanguage" class="form-control" value="{{$extension['language']}}" autocomplete="off" disabled><br>
<option value="php" @if($extension["language"] == "php") selected='true' @endif >PHP 7.3</option>
<option value="python" @if($extension["language"] == "python") selected='true' @endif>Python 3</option>
</select>
</select><br>
<h3>{{__("Destek Email'i")}}</h3>
<input id="support" type="text" name="email" class="form-control" value="{{$extension["support"]}}" required>
<input id="support" type="text" name="email" class="form-control" value="{{$extension["support"]}}" required><br>
<h3>{{__("Logo (Font Awesome Ikon)")}}</h3>
<input id="icon" type="text" name="icon" class="form-control" value="{{$extension["icon"]}}" required>
<input id="icon" type="text" name="icon" class="form-control" value="{{$extension["icon"]}}" required><br>
<h3>{{__("Gerekli Minimum Liman Sürümü")}}</h3>
<input id="supportedLiman" type="text" name="icon" class="form-control" value="{{array_key_exists("supportedLiman",$extension) ? $extension["supportedLiman"] : getVersion()}}" required><br>
<h3>{{__("Versiyon")}}</h3>
<input id="version" type="text" name="version" class="form-control" value="{{$extension["version"]}}" required>
<input id="version" type="text" name="version" class="form-control" value="{{$extension["version"]}}" required><br>
<h3>{{__("Ayar Doğrulama Fonksiyonu/Betiği")}}</h3>
<input id="verification" type="text" name="verification" class="form-control" value="{{array_key_exists("verification",$extension) ? $extension["verification"] : ""}}" required>
<input id="verification" type="text" name="verification" class="form-control" value="{{array_key_exists("verification",$extension) ? $extension["verification"] : ""}}" required><br>
<h3>{{__("Servis Adı yada Kontrol Etmek için Port")}}</h3>
<input id="service" type="text" name="service" class="form-control" value="{{$extension["service"]}}" required>
<input id="service" type="text" name="service" class="form-control" value="{{$extension["service"]}}" required><br>
<h3>{{__("SSL Sertifikası Eklenecek Portlar")}}</h3>
<small>{{__("Birden fazla port yazmak için aralarında virgül bırakabilirsiniz.")}}</small>
<small>{{__("Birden fazla port yazmak için aralarında virgül bırakabilirsiniz.")}}</small><br>
<input id="sslPorts" type="text" name="service" class="form-control" value="{{array_key_exists("sslPorts",$extension) ? $extension["sslPorts"] : ""}}" required><br>
<button class="btn btn-success btn-sm" onclick="updateExtension('general')">{{__("Kaydet")}}</button>
<button class="btn btn-success btn-sm" onclick="updateExtension('general')">{{__("Kaydet")}}</button><br>
</div>
<div class="tab-pane fade show" id="tab_2" role="tabpanel">
@include('modal-button',[
......@@ -321,6 +323,7 @@
data.append('version',$("#version").val());
data.append('service',$("#service").val());
data.append('sslPorts',$("#sslPorts").val());
data.append('supportedLiman',$("#supportedLiman").val());
data.append('verification',$("#verification").val());
request('{{route('extension_settings_update')}}',data,function(){
showSwal("{{__("Başarıyla kaydedildi")}}",'success');
......
......@@ -21,6 +21,7 @@
<button data-toggle="tooltip" title="Sunucuya Git" class="btn btn-primary" onclick="location.href = '{{route('server_one',[
"server_id" => server()->id,
])}}'"><i class="fa fa-server"></i></button>
<button data-toggle="tooltip" title="Destek Al" class="btn btn-primary" onclick="location.href = 'mailto:{{env('APP_NOTIFICATION_EMAIL')}}?subject={{env('BRAND_NAME')}} {{extension()->display_name}} {{extension()->version}}'"><i class="fas fa-headset"></i></button>
</div>
@include('errors')
<div class="card">
......@@ -64,7 +65,6 @@
</div>
</div>
</div>
<br><span style="padding-left: 30px;">{{__("İstek")}} {{$timestamp}} {{__("saniyede tamamlandı.")}}</span>
<script>
$(function(){
let list = [];
......
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
@if(auth()->check() && user()->email == "administrator@liman.app")
<div class="alert alert-warning customAlert">
{{__("Tam yetkili yönetici hesabı ile giriş yaptınız, sisteme zarar verebilirsiniz.")}}
<div class="alert alert-danger customAlert">
<b>{{__("Tam yetkili yönetici hesabı ile giriş yaptınız, sisteme zarar verebilirsiniz.")}}</b>
</div>
@endif
<!-- Content Header (Page header) -->
......
......@@ -3,10 +3,8 @@
<aside class="main-sidebar sidebar-dark-primary elevation-4">
<!-- Brand Logo -->
<a href="/" class="brand-link">
<img src="/images/liman_logo_white.png" alt="Liman Logo" class="brand-image"
style="opacity: .8;margin-left: 1.3rem;">
<span class="brand-text font-weight-light">liman</span>
<span class="right badge badge-success">{{getVersion()}}</span>
<img src="/images/liman_logo-white.svg" height="30" style="opacity: .8;margin-left: 0.3rem;">
<span class="right badge badge-success" style="margin-left:10px;">{{getVersion()}}</span>
</a>
<!-- Sidebar -->
<div class="sidebar">
......@@ -54,7 +52,7 @@
@if(count(extensions()))
<li class="nav-header">{{__("Eklentiler")}}</li>
@foreach(extensions() as $extension)
<li class="nav-item ext_nav" @if($loop->iteration > intval(config('liman.nav_extension_hide_count')))style="display:none;"@endif>
<li class="nav-item ext_nav" @if($loop->iteration > intval(env('NAV_EXTENSION_HIDE_COUNT')))style="display:none;"@endif>
<a href="/l/{{$extension->id}}" class="nav-link @if(request('extension_id') == $extension->id) active @endif">
@if(empty($extension->icon))
<i class="nav-icon fab fa-etsy"></i>
......@@ -67,7 +65,7 @@
</a>
</li>
@endforeach
@if(count(extensions()) > intval(config('liman.nav_extension_hide_count')))
@if(count(extensions()) > intval(env('NAV_EXTENSION_HIDE_COUNT')))
<li class="nav-item ext_nav_more_less">
<a href="javascript:void(0)" class="nav-link">
<p>{{__('...daha fazla')}}</p>
......@@ -83,12 +81,14 @@
<p>{{__("Eklentiler")}}</p>
</a>
</li>
@if(\App\Module::exists())
<li class="nav-item">
<a href="/modules" class="nav-link">
<i class="nav-icon fas fa-puzzle-piece"></i>
<p>{{__("Modüller")}}</p>
</a>
</li>
@endif
<li class="nav-item">
<a href="/ayarlar" class="nav-link">
<i class="nav-icon fas fa-cog"></i>
......
......@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{__("Liman Sistem Yönetimi")}}</title>
<title>{{__("Liman Merkezi Sistem Yönetimi")}}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="{{mix('/css/liman.css')}}">
......@@ -134,11 +134,11 @@
checkNotifications();
@endif
$('.ext_nav').slice({{intval(config('liman.nav_extension_hide_count'))}}, $('.ext_nav').length).hide();
$('.ext_nav').slice({{intval(env('NAV_EXTENSION_HIDE_COUNT'))}}, $('.ext_nav').length).hide();
$('.ext_nav_more_less').click(function(){
if ($('.ext_nav').length == $('.ext_nav:visible').length) {
$('.ext_nav_more_less').find('p').text("{{__('...daha fazla')}}");
$('.ext_nav').slice({{intval(config('liman.nav_extension_hide_count'))}}, $('.ext_nav').length).hide();
$('.ext_nav').slice({{intval(env('NAV_EXTENSION_HIDE_COUNT'))}}, $('.ext_nav').length).hide();
}else{
$('.ext_nav_more_less').find('p').text("{{__('daha az...')}}");
$('.ext_nav:hidden').show();
......
<nav class="main-header navbar navbar-expand navbar-light">
<!-- Left navbar links -->
<ul class="navbar-nav">
@if(env('LIMAN_RESTRICTED') == true && !user()->isAdmin())
<nav class="main-header navbar navbar-expand navbar-dark" style="margin-left:0px;max-height:60px">
<ul class="navbar-nav" style="line-height:45px;">
<a href="/" class="brand-link">
<img src="/images/liman_logo-white.svg" height="30" style="opacity: .8;margin-left: 0.3rem;">
<span class="right badge badge-success" style="margin-left:10px;">1.0-RC6</span>
</a>
<li class="nav-item d-none d-sm-inline-block">
<a href="/" class="nav-link">{{__("Ana Sayfa")}}</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="/ayarlar/{{request('extension_id')}}/{{request('server_id')}}" class="nav-link">{{__("Ayarlar")}}</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="mailto:{{env('APP_NOTIFICATION_EMAIL')}}?subject={{env('BRAND_NAME')}} {{extension()->display_name}} {{extension()->version}}" class="nav-link">{{__("Destek Al")}}</a>
</li>
@else
<nav class="main-header navbar navbar-expand navbar-dark" style="height:58.86px;border:0px;"> <!-- exactly 58.86 :) -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#" onclick="request('{{route('set_collapse')}}',new FormData(),null)"><i class="fas fa-bars"></i></a>
</li>
@if(env('LIMAN_RESTRICTED') == true && !user()->isAdmin())
<li class="nav-item d-none d-sm-inline-block">
<a href="/" class="nav-link">{{__("Ana Sayfa")}}</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="/ayarlar/{{request('extension_id')}}/{{request('server_id')}}" class="nav-link">{{__("Ayarlar")}}</a>
<li class="nav-item">
<a class="nav-link" onclick="toggleDarkMode()"><i id="darkModeIcon" class="far fa-tired"></i></a>
</li>
@endif
<script>
let currentlyLight = window.localStorage.getItem("dark") ? window.localStorage.getItem("dark") : true;
function toggleDarkMode(){
currentlyLight = !currentlyLight;
window.localStorage.setItem("dark",currentlyLight);
let icon = $("#darkModeIcon");
if(currentlyLight){
icon.attr("class","far fa-tired");
$("#darkModeCss").remove();
}else{
icon.attr("class","fas fa-grin-stars");
var link = document.createElement( "link" );
link.href = "https://192.168.0.10/css/dark.css";
link.type = "text/css";
link.id = "darkModeCss";
link.rel = "stylesheet";
link.media = "screen,print";
document.getElementsByTagName( "head" )[0].appendChild( link );
}
}
toggleDarkMode();
</script>
<!-- Left navbar links -->
@if(env('LIMAN_RESTRICTED') == true && !user()->isAdmin())
@endif
</ul>
<!-- Right navbar links -->
......@@ -53,7 +92,7 @@
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
<div class="card card-widget widget-user-2" style="margin-bottom: 0px;">
<div class="widget-user-header bg-warning">
<div class="widget-user-header bg-warning" style="color:black">
<h3 class="widget-user-username" style="margin-left: 0px;">{{user()->name}}</h3>
<h5 class="widget-user-desc" style="margin-left: 0px;font-size: 13px;">{{__("Son Giriş Tarihi : ") . user()->last_login_at}}</h5>
<h5 class="widget-user-desc" style="margin-left: 0px;font-size: 13px;">{{__("Giriş Yapılan Son Ip : ") . user()->last_login_ip}}</h5>
......@@ -61,12 +100,12 @@
<div class="card-footer p-0">
<ul class="nav flex-column">
<li class="nav-item">
<a href="{{route('my_profile')}}" class="nav-link">
<a href="{{route('my_profile')}}" class="nav-link text-dark">
{{__("Profil")}}
</a>
</li>
<li class="nav-item">
<a onclick="request('/cikis',new FormData(),null)" class="nav-link">
<a onclick="request('/cikis',new FormData(),null)" class="nav-link text-dark">
{{__("Çıkış Yap")}}
</a>
</li>
......
1.0-RC5
\ No newline at end of file
1.0-RC6
\ No newline at end of file
......@@ -4,7 +4,6 @@ return [
"server_connection_timeout" => 5000, //ms
"user_widget_count" => 10,
"extension_developer_mode" => false,
"nav_extension_hide_count" => 10,
"widget_refresh_time" => 30000, //ms
"brand" => "Havelsan © 2020",
];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment