Various code cleanup

This commit is contained in:
James Cole
2017-08-12 07:47:42 +02:00
parent 81fb3df45e
commit 743547096e
39 changed files with 4885 additions and 3714 deletions

View File

@@ -34,7 +34,8 @@ class DecryptAttachment extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'firefly:decrypt-attachment {id:The ID of the attachment.} {name:The file name of the attachment.} protected $signature
= 'firefly:decrypt-attachment {id:The ID of the attachment.} {name:The file name of the attachment.}
{directory:Where the file must be stored.}'; {directory:Where the file must be stored.}';

View File

@@ -18,6 +18,11 @@ use FireflyIII\Support\Import\Prerequisites\PrerequisitesInterface;
class BankController extends Controller class BankController extends Controller
{ {
public function postPrerequisites()
{
}
/** /**
* @param string $bank * @param string $bank
*/ */
@@ -31,6 +36,7 @@ class BankController extends Controller
if ($object->hasPrerequisites()) { if ($object->hasPrerequisites()) {
$view = $object->getView(); $view = $object->getView();
$parameters = $object->getViewParameters(); $parameters = $object->getViewParameters();
return view($view, $parameters); return view($view, $parameters);
} }
@@ -40,8 +46,4 @@ class BankController extends Controller
} }
public function postPrerequisites() {
}
} }

View File

@@ -56,26 +56,6 @@ class FileController extends Controller
); );
} }
/**
* This is step 1. Upload a file.
*
* @return View
*/
public function index()
{
$subTitle = trans('firefly.import_index_sub_title');
$subTitleIcon = 'fa-home';
$importFileTypes = [];
$defaultImportType = config('firefly.default_import_format');
foreach (array_keys(config('firefly.import_formats')) as $type) {
$importFileTypes[$type] = trans('firefly.import_file_type_' . $type);
}
return view('import.file.index', compact('subTitle', 'subTitleIcon', 'importFileTypes', 'defaultImportType'));
}
/** /**
* This is step 3. This repeats until the job is configured. * This is step 3. This repeats until the job is configured.
* *
@@ -140,6 +120,24 @@ class FileController extends Controller
} }
/**
* This is step 1. Upload a file.
*
* @return View
*/
public function index()
{
$subTitle = trans('firefly.import_index_sub_title');
$subTitleIcon = 'fa-home';
$importFileTypes = [];
$defaultImportType = config('firefly.default_import_format');
foreach (array_keys(config('firefly.import_formats')) as $type) {
$importFileTypes[$type] = trans('firefly.import_file_type_' . $type);
}
return view('import.file.index', compact('subTitle', 'subTitleIcon', 'importFileTypes', 'defaultImportType'));
}
/** /**
* This is step 2. It creates an Import Job. Stores the import. * This is step 2. It creates an Import Job. Stores the import.

View File

@@ -78,11 +78,11 @@ class TagController extends Controller
} }
/** /**
* @param Request $request * Create a new tag.
* *
* @return View * @return View
*/ */
public function create(Request $request) public function create()
{ {
$subTitle = trans('firefly.new_tag'); $subTitle = trans('firefly.new_tag');
$subTitleIcon = 'fa-tag'; $subTitleIcon = 'fa-tag';
@@ -100,6 +100,8 @@ class TagController extends Controller
} }
/** /**
* Delete a tag
*
* @param Tag $tag * @param Tag $tag
* *
* @return View * @return View
@@ -134,13 +136,13 @@ class TagController extends Controller
} }
/** /**
* @param Tag $tag * Edit a tag
* *
* @param TagRepositoryInterface $repository * @param Tag $tag
* *
* @return View * @return View
*/ */
public function edit(Tag $tag, TagRepositoryInterface $repository) public function edit(Tag $tag)
{ {
$subTitle = trans('firefly.edit_tag', ['tag' => $tag->tag]); $subTitle = trans('firefly.edit_tag', ['tag' => $tag->tag]);
$subTitleIcon = 'fa-tag'; $subTitleIcon = 'fa-tag';
@@ -158,6 +160,8 @@ class TagController extends Controller
} }
/** /**
* View all tags
*
* @param TagRepositoryInterface $repository * @param TagRepositoryInterface $repository
* *
* @return View * @return View

View File

@@ -278,6 +278,7 @@ class ImportStorage
} }
Log::debug('getForeignCurrencyId: journal has no foreign currency.'); Log::debug('getForeignCurrencyId: journal has no foreign currency.');
// return null in other cases. // return null in other cases.
return null; return null;
} }

View File

@@ -20,6 +20,7 @@ interface Verifier
{ {
/** /**
* Verify the given password against (some) service. * Verify the given password against (some) service.
*
* @param string $password * @param string $password
* *
* @return bool * @return bool

View File

@@ -27,6 +27,13 @@ interface ConfigurationInterface
*/ */
public function getData(): array; public function getData(): array;
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string;
/** /**
* @param ImportJob $job * @param ImportJob $job
* *
@@ -43,11 +50,4 @@ interface ConfigurationInterface
*/ */
public function storeConfiguration(array $data): bool; public function storeConfiguration(array $data): bool;
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string;
} }

View File

@@ -61,6 +61,16 @@ class Initial implements ConfigurationInterface
return $data; return $data;
} }
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
/** /**
* @param ImportJob $job * @param ImportJob $job
* *
@@ -135,14 +145,4 @@ class Initial implements ConfigurationInterface
return $config; return $config;
} }
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
} }

View File

@@ -106,6 +106,16 @@ class Map implements ConfigurationInterface
} }
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
/** /**
* @param ImportJob $job * @param ImportJob $job
* *
@@ -268,14 +278,4 @@ class Map implements ConfigurationInterface
return $column; return $column;
} }
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
} }

View File

@@ -262,7 +262,7 @@ class Roles implements ConfigurationInterface
$this->warning = ''; $this->warning = '';
} }
if ($assigned === 0 || !$hasAmount) { if ($assigned === 0 || !$hasAmount) {
$this->warning = trans('csv.roles_warning'); $this->warning = strval(trans('csv.roles_warning'));
} }
return true; return true;

View File

@@ -16,13 +16,6 @@ use FireflyIII\User;
interface PrerequisitesInterface interface PrerequisitesInterface
{ {
/**
* Set the user for this Prerequisites-routine. Class is expected to implement and save this.
*
* @param User $user
*/
public function setUser(User $user): void;
/** /**
* Returns view name that allows user to fill in prerequisites. * Returns view name that allows user to fill in prerequisites.
* *
@@ -44,4 +37,11 @@ interface PrerequisitesInterface
* @return bool * @return bool
*/ */
public function hasPrerequisites(): bool; public function hasPrerequisites(): bool;
/**
* Set the user for this Prerequisites-routine. Class is expected to implement and save this.
*
* @param User $user
*/
public function setUser(User $user): void;
} }

View File

@@ -17,6 +17,7 @@ return [
[ [
'4.3' => 'Make sure you run the migrations and clear your cache. If you need more help, please check Github or the Firefly III website.', '4.3' => 'Make sure you run the migrations and clear your cache. If you need more help, please check Github or the Firefly III website.',
'4.6.3' => 'This will be the last version to require PHP7.0. Future versions will require PHP7.1 minimum.', '4.6.3' => 'This will be the last version to require PHP7.0. Future versions will require PHP7.1 minimum.',
'4.6.4' => 'This version of Firefly III requires PHP7.1.'
], ],
'install' => 'install' =>
[ [

View File

@@ -8,79 +8,121 @@
margin-top: 1px; margin-top: 1px;
top: 100px; top: 100px;
left: 20px; left: 20px;
/* Calendars */ } /* Calendars */
}
.daterangepicker:before, .daterangepicker:after { .daterangepicker:before, .daterangepicker:after {
position: absolute; position: absolute;
display: inline-block; display: inline-block;
border-bottom-color: rgba(0, 0, 0, 0.2); border-bottom-color: rgba(0, 0, 0, 0.2);
content: ''; } content: '';
}
.daterangepicker:before { .daterangepicker:before {
top: -7px; top: -7px;
border-right: 7px solid transparent; border-right: 7px solid transparent;
border-left: 7px solid transparent; border-left: 7px solid transparent;
border-bottom: 7px solid #ccc; } border-bottom: 7px solid #ccc;
}
.daterangepicker:after { .daterangepicker:after {
top: -6px; top: -6px;
border-right: 6px solid transparent; border-right: 6px solid transparent;
border-bottom: 6px solid #fff; border-bottom: 6px solid #fff;
border-left: 6px solid transparent; } border-left: 6px solid transparent;
}
.daterangepicker.opensleft:before { .daterangepicker.opensleft:before {
right: 9px; } right: 9px;
}
.daterangepicker.opensleft:after { .daterangepicker.opensleft:after {
right: 10px; } right: 10px;
}
.daterangepicker.openscenter:before { .daterangepicker.openscenter:before {
left: 0; left: 0;
right: 0; right: 0;
width: 0; width: 0;
margin-left: auto; margin-left: auto;
margin-right: auto; } margin-right: auto;
}
.daterangepicker.openscenter:after { .daterangepicker.openscenter:after {
left: 0; left: 0;
right: 0; right: 0;
width: 0; width: 0;
margin-left: auto; margin-left: auto;
margin-right: auto; } margin-right: auto;
}
.daterangepicker.opensright:before { .daterangepicker.opensright:before {
left: 9px; } left: 9px;
}
.daterangepicker.opensright:after { .daterangepicker.opensright:after {
left: 10px; } left: 10px;
}
.daterangepicker.dropup { .daterangepicker.dropup {
margin-top: -5px; } margin-top: -5px;
}
.daterangepicker.dropup:before { .daterangepicker.dropup:before {
top: initial; top: initial;
bottom: -7px; bottom: -7px;
border-bottom: initial; border-bottom: initial;
border-top: 7px solid #ccc; } border-top: 7px solid #ccc;
}
.daterangepicker.dropup:after { .daterangepicker.dropup:after {
top: initial; top: initial;
bottom: -6px; bottom: -6px;
border-bottom: initial; border-bottom: initial;
border-top: 6px solid #fff; } border-top: 6px solid #fff;
}
.daterangepicker.dropdown-menu { .daterangepicker.dropdown-menu {
max-width: none; max-width: none;
z-index: 3001; } z-index: 3001;
}
.daterangepicker.single .ranges, .daterangepicker.single .calendar { .daterangepicker.single .ranges, .daterangepicker.single .calendar {
float: none; } float: none;
}
.daterangepicker.show-calendar .calendar { .daterangepicker.show-calendar .calendar {
display: block; } display: block;
}
.daterangepicker .calendar { .daterangepicker .calendar {
display: none; display: none;
max-width: 270px; max-width: 270px;
margin: 4px; } margin: 4px;
}
.daterangepicker .calendar.single .calendar-table { .daterangepicker .calendar.single .calendar-table {
border: none; } border: none;
}
.daterangepicker .calendar th, .daterangepicker .calendar td { .daterangepicker .calendar th, .daterangepicker .calendar td {
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
min-width: 32px; } min-width: 32px;
}
.daterangepicker .calendar-table { .daterangepicker .calendar-table {
border: 1px solid #fff; border: 1px solid #fff;
padding: 4px; padding: 4px;
border-radius: 4px; border-radius: 4px;
background-color: #fff; } background-color: #fff;
}
.daterangepicker table { .daterangepicker table {
width: 100%; width: 100%;
margin: 0; } margin: 0;
}
.daterangepicker td, .daterangepicker th { .daterangepicker td, .daterangepicker th {
text-align: center; text-align: center;
width: 20px; width: 20px;
@@ -88,53 +130,83 @@
border-radius: 4px; border-radius: 4px;
border: 1px solid transparent; border: 1px solid transparent;
white-space: nowrap; white-space: nowrap;
cursor: pointer; } cursor: pointer;
}
.daterangepicker td.available:hover, .daterangepicker th.available:hover { .daterangepicker td.available:hover, .daterangepicker th.available:hover {
background-color: #eee; background-color: #eee;
border-color: transparent; border-color: transparent;
color: inherit; } color: inherit;
}
.daterangepicker td.week, .daterangepicker th.week { .daterangepicker td.week, .daterangepicker th.week {
font-size: 80%; font-size: 80%;
color: #ccc; } color: #ccc;
}
.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { .daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {
background-color: #fff; background-color: #fff;
border-color: transparent; border-color: transparent;
color: #999; } color: #999;
}
.daterangepicker td.in-range { .daterangepicker td.in-range {
background-color: #ebf4f8; background-color: #ebf4f8;
border-color: transparent; border-color: transparent;
color: #000; color: #000;
border-radius: 0; } border-radius: 0;
}
.daterangepicker td.start-date { .daterangepicker td.start-date {
border-radius: 4px 0 0 4px; } border-radius: 4px 0 0 4px;
}
.daterangepicker td.end-date { .daterangepicker td.end-date {
border-radius: 0 4px 4px 0; } border-radius: 0 4px 4px 0;
}
.daterangepicker td.start-date.end-date { .daterangepicker td.start-date.end-date {
border-radius: 4px; } border-radius: 4px;
}
.daterangepicker td.active, .daterangepicker td.active:hover { .daterangepicker td.active, .daterangepicker td.active:hover {
background-color: #357ebd; background-color: #357ebd;
border-color: transparent; border-color: transparent;
color: #fff; } color: #fff;
}
.daterangepicker th.month { .daterangepicker th.month {
width: auto; } width: auto;
}
.daterangepicker td.disabled, .daterangepicker option.disabled { .daterangepicker td.disabled, .daterangepicker option.disabled {
color: #999; color: #999;
cursor: not-allowed; cursor: not-allowed;
text-decoration: line-through; } text-decoration: line-through;
}
.daterangepicker select.monthselect, .daterangepicker select.yearselect { .daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px; font-size: 12px;
padding: 1px; padding: 1px;
height: auto; height: auto;
margin: 0; margin: 0;
cursor: default; } cursor: default;
}
.daterangepicker select.monthselect { .daterangepicker select.monthselect {
margin-right: 2%; margin-right: 2%;
width: 56%; } width: 56%;
}
.daterangepicker select.yearselect { .daterangepicker select.yearselect {
width: 40%; } width: 40%;
}
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
width: 50px; width: 50px;
margin-bottom: 0; } margin-bottom: 0;
}
.daterangepicker .input-mini { .daterangepicker .input-mini {
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 4px; border-radius: 4px;
@@ -145,42 +217,61 @@
vertical-align: middle; vertical-align: middle;
margin: 0 0 5px 0; margin: 0 0 5px 0;
padding: 0 6px 0 28px; padding: 0 6px 0 28px;
width: 100%; } width: 100%;
}
.daterangepicker .input-mini.active { .daterangepicker .input-mini.active {
border: 1px solid #08c; border: 1px solid #08c;
border-radius: 4px; } border-radius: 4px;
}
.daterangepicker .daterangepicker_input { .daterangepicker .daterangepicker_input {
position: relative; } position: relative;
}
.daterangepicker .daterangepicker_input i { .daterangepicker .daterangepicker_input i {
position: absolute; position: absolute;
left: 8px; left: 8px;
top: 8px; } top: 8px;
}
.daterangepicker.rtl .input-mini { .daterangepicker.rtl .input-mini {
padding-right: 28px; padding-right: 28px;
padding-left: 6px; } padding-left: 6px;
}
.daterangepicker.rtl .daterangepicker_input i { .daterangepicker.rtl .daterangepicker_input i {
left: auto; left: auto;
right: 8px; } right: 8px;
}
.daterangepicker .calendar-time { .daterangepicker .calendar-time {
text-align: center; text-align: center;
margin: 5px auto; margin: 5px auto;
line-height: 30px; line-height: 30px;
position: relative; position: relative;
padding-left: 28px; } padding-left: 28px;
}
.daterangepicker .calendar-time select.disabled { .daterangepicker .calendar-time select.disabled {
color: #ccc; color: #ccc;
cursor: not-allowed; } cursor: not-allowed;
}
.ranges { .ranges {
font-size: 11px; font-size: 11px;
float: none; float: none;
margin: 4px; margin: 4px;
text-align: left; } text-align: left;
}
.ranges ul { .ranges ul {
list-style: none; list-style: none;
margin: 0 auto; margin: 0 auto;
padding: 0; padding: 0;
width: 100%; } width: 100%;
}
.ranges li { .ranges li {
font-size: 13px; font-size: 13px;
background-color: #f5f5f5; background-color: #f5f5f5;
@@ -189,81 +280,139 @@
color: #08c; color: #08c;
padding: 3px 12px; padding: 3px 12px;
margin-bottom: 8px; margin-bottom: 8px;
cursor: pointer; } cursor: pointer;
}
.ranges li:hover { .ranges li:hover {
background-color: #08c; background-color: #08c;
border: 1px solid #08c; border: 1px solid #08c;
color: #fff; } color: #fff;
}
.ranges li.active { .ranges li.active {
background-color: #08c; background-color: #08c;
border: 1px solid #08c; border: 1px solid #08c;
color: #fff; } color: #fff;
}
/* Larger Screen Styling */ /* Larger Screen Styling */
@media (min-width: 564px) { @media (min-width: 564px) {
.daterangepicker { .daterangepicker {
width: auto; } width: auto;
}
.daterangepicker .ranges ul { .daterangepicker .ranges ul {
width: 160px; } width: 160px;
}
.daterangepicker.single .ranges ul { .daterangepicker.single .ranges ul {
width: 100%; } width: 100%;
}
.daterangepicker.single .calendar.left { .daterangepicker.single .calendar.left {
clear: none; } clear: none;
}
.daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar { .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar {
float: left; } float: left;
}
.daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar { .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar {
float: right; } float: right;
}
.daterangepicker.ltr { .daterangepicker.ltr {
direction: ltr; direction: ltr;
text-align: left; } text-align: left;
}
.daterangepicker.ltr .calendar.left { .daterangepicker.ltr .calendar.left {
clear: left; clear: left;
margin-right: 0; } margin-right: 0;
}
.daterangepicker.ltr .calendar.left .calendar-table { .daterangepicker.ltr .calendar.left .calendar-table {
border-right: none; border-right: none;
border-top-right-radius: 0; border-top-right-radius: 0;
border-bottom-right-radius: 0; } border-bottom-right-radius: 0;
}
.daterangepicker.ltr .calendar.right { .daterangepicker.ltr .calendar.right {
margin-left: 0; } margin-left: 0;
}
.daterangepicker.ltr .calendar.right .calendar-table { .daterangepicker.ltr .calendar.right .calendar-table {
border-left: none; border-left: none;
border-top-left-radius: 0; border-top-left-radius: 0;
border-bottom-left-radius: 0; } border-bottom-left-radius: 0;
}
.daterangepicker.ltr .left .daterangepicker_input { .daterangepicker.ltr .left .daterangepicker_input {
padding-right: 12px; } padding-right: 12px;
}
.daterangepicker.ltr .calendar.left .calendar-table { .daterangepicker.ltr .calendar.left .calendar-table {
padding-right: 12px; } padding-right: 12px;
}
.daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar { .daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar {
float: left; } float: left;
}
.daterangepicker.rtl { .daterangepicker.rtl {
direction: rtl; direction: rtl;
text-align: right; } text-align: right;
}
.daterangepicker.rtl .calendar.left { .daterangepicker.rtl .calendar.left {
clear: right; clear: right;
margin-left: 0; } margin-left: 0;
}
.daterangepicker.rtl .calendar.left .calendar-table { .daterangepicker.rtl .calendar.left .calendar-table {
border-left: none; border-left: none;
border-top-left-radius: 0; border-top-left-radius: 0;
border-bottom-left-radius: 0; } border-bottom-left-radius: 0;
}
.daterangepicker.rtl .calendar.right { .daterangepicker.rtl .calendar.right {
margin-right: 0; } margin-right: 0;
}
.daterangepicker.rtl .calendar.right .calendar-table { .daterangepicker.rtl .calendar.right .calendar-table {
border-right: none; border-right: none;
border-top-right-radius: 0; border-top-right-radius: 0;
border-bottom-right-radius: 0; } border-bottom-right-radius: 0;
}
.daterangepicker.rtl .left .daterangepicker_input { .daterangepicker.rtl .left .daterangepicker_input {
padding-left: 12px; } padding-left: 12px;
}
.daterangepicker.rtl .calendar.left .calendar-table { .daterangepicker.rtl .calendar.left .calendar-table {
padding-left: 12px; } padding-left: 12px;
}
.daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar { .daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar {
text-align: right; text-align: right;
float: right; } } float: right;
}
}
@media (min-width: 730px) { @media (min-width: 730px) {
.daterangepicker .ranges { .daterangepicker .ranges {
width: auto; } width: auto;
}
.daterangepicker.ltr .ranges { .daterangepicker.ltr .ranges {
float: left; } float: left;
}
.daterangepicker.rtl .ranges { .daterangepicker.rtl .ranges {
float: right; } float: right;
}
.daterangepicker .calendar.left { .daterangepicker .calendar.left {
clear: none !important; } } clear: none !important;
}
}

View File

@@ -60,8 +60,6 @@ function failedJobImport(jqxhr, textStatus, error) {
function reportOnJobImport(data) { function reportOnJobImport(data) {
switch (data.status) { switch (data.status) {
default:
break;
case "configured": case "configured":
// job is ready. Do not check again, just show the start-box. Hide the rest. // job is ready. Do not check again, just show the start-box. Hide the rest.
$('.statusbox').hide(); $('.statusbox').hide();
@@ -94,9 +92,10 @@ function reportOnJobImport(data) {
$('.status_finished').show(); $('.status_finished').show();
// show text: // show text:
$('#import-status-more-info').html(data.finishedText); $('#import-status-more-info').html(data.finishedText);
break; break;
default:
break;
} }
} }

View File

@@ -69,6 +69,7 @@ function removeMoney(e) {
return false; return false;
} }
function stopSorting() { function stopSorting() {
"use strict"; "use strict";
$('.loadSpin').addClass('fa fa-refresh fa-spin'); $('.loadSpin').addClass('fa fa-refresh fa-spin');

View File

@@ -40,4 +40,5 @@ function initialize() {
marker.setMap(map); marker.setMap(map);
} }
} }
google.maps.event.addDomListener(window, 'load', initialize); google.maps.event.addDomListener(window, 'load', initialize);

View File

@@ -99,6 +99,7 @@ function checkAll() {
"use strict"; "use strict";
$('.select_all_single').prop('checked', true); $('.select_all_single').prop('checked', true);
} }
function uncheckAll() { function uncheckAll() {
"use strict"; "use strict";
$('.select_all_single').prop('checked', false); $('.select_all_single').prop('checked', false);

View File

@@ -278,8 +278,12 @@
var ua = navigator.userAgent; var ua = navigator.userAgent;
$.each($.browser, function (c) { $.each($.browser, function (c) {
$.browser[c] = ((new RegExp(c, 'i').test(ua))) ? true : false; $.browser[c] = ((new RegExp(c, 'i').test(ua))) ? true : false;
if ($.browser.mozilla && c === 'mozilla') { $.browser.mozilla = ((new RegExp('firefox', 'i').test(ua))) ? true : false; } if ($.browser.mozilla && c === 'mozilla') {
if ($.browser.chrome && c === 'safari') { $.browser.safari = false; } $.browser.mozilla = ((new RegExp('firefox', 'i').test(ua))) ? true : false;
}
if ($.browser.chrome && c === 'safari') {
$.browser.safari = false;
}
}); });
} }

View File

@@ -78,7 +78,8 @@
firstDay: moment.localeData().firstDayOfWeek() firstDay: moment.localeData().firstDayOfWeek()
}; };
this.callback = function() { }; this.callback = function () {
};
//some state information //some state information
this.isShowing = false; this.isShowing = false;
@@ -1100,7 +1101,9 @@
if (this.isShowing) return; if (this.isShowing) return;
// Create a click proxy that is private to this instance of datepicker, for unbinding // Create a click proxy that is private to this instance of datepicker, for unbinding
this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); this._outsideClickProxy = $.proxy(function (e) {
this.outsideClick(e);
}, this);
// Bind global datepicker mousedown for hiding and // Bind global datepicker mousedown for hiding and
$(document) $(document)
@@ -1113,7 +1116,9 @@
.on('focusin.daterangepicker', this._outsideClickProxy); .on('focusin.daterangepicker', this._outsideClickProxy);
// Reposition the picker if the window is resized while it's open // Reposition the picker if the window is resized while it's open
$(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); $(window).on('resize.daterangepicker', $.proxy(function (e) {
this.move(e);
}, this));
this.oldStartDate = this.startDate.clone(); this.oldStartDate = this.startDate.clone();
this.oldEndDate = this.endDate.clone(); this.oldEndDate = this.endDate.clone();

File diff suppressed because it is too large Load Diff

View File

@@ -5,9 +5,11 @@
.skin-blue-light .main-header .navbar { .skin-blue-light .main-header .navbar {
background-color: #3c8dbc; background-color: #3c8dbc;
} }
.skin-blue-light .main-header .navbar .nav > li > a { .skin-blue-light .main-header .navbar .nav > li > a {
color: #ffffff; color: #ffffff;
} }
.skin-blue-light .main-header .navbar .nav > li > a:hover, .skin-blue-light .main-header .navbar .nav > li > a:hover,
.skin-blue-light .main-header .navbar .nav > li > a:active, .skin-blue-light .main-header .navbar .nav > li > a:active,
.skin-blue-light .main-header .navbar .nav > li > a:focus, .skin-blue-light .main-header .navbar .nav > li > a:focus,
@@ -18,105 +20,133 @@
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
color: #f6f6f6; color: #f6f6f6;
} }
.skin-blue-light .main-header .navbar .sidebar-toggle { .skin-blue-light .main-header .navbar .sidebar-toggle {
color: #ffffff; color: #ffffff;
} }
.skin-blue-light .main-header .navbar .sidebar-toggle:hover { .skin-blue-light .main-header .navbar .sidebar-toggle:hover {
color: #f6f6f6; color: #f6f6f6;
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
} }
.skin-blue-light .main-header .navbar .sidebar-toggle { .skin-blue-light .main-header .navbar .sidebar-toggle {
color: #fff; color: #fff;
} }
.skin-blue-light .main-header .navbar .sidebar-toggle:hover { .skin-blue-light .main-header .navbar .sidebar-toggle:hover {
background-color: #367fa9; background-color: #367fa9;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.skin-blue-light .main-header .navbar .dropdown-menu li.divider { .skin-blue-light .main-header .navbar .dropdown-menu li.divider {
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1);
} }
.skin-blue-light .main-header .navbar .dropdown-menu li a { .skin-blue-light .main-header .navbar .dropdown-menu li a {
color: #fff; color: #fff;
} }
.skin-blue-light .main-header .navbar .dropdown-menu li a:hover { .skin-blue-light .main-header .navbar .dropdown-menu li a:hover {
background: #367fa9; background: #367fa9;
} }
} }
.skin-blue-light .main-header .logo { .skin-blue-light .main-header .logo {
background-color: #3c8dbc; background-color: #3c8dbc;
color: #ffffff; color: #ffffff;
border-bottom: 0 solid transparent; border-bottom: 0 solid transparent;
} }
.skin-blue-light .main-header .logo:hover { .skin-blue-light .main-header .logo:hover {
background-color: #3b8ab8; background-color: #3b8ab8;
} }
.skin-blue-light .main-header li.user-header { .skin-blue-light .main-header li.user-header {
background-color: #3c8dbc; background-color: #3c8dbc;
} }
.skin-blue-light .content-header { .skin-blue-light .content-header {
background: transparent; background: transparent;
} }
.skin-blue-light .wrapper, .skin-blue-light .wrapper,
.skin-blue-light .main-sidebar, .skin-blue-light .main-sidebar,
.skin-blue-light .left-side { .skin-blue-light .left-side {
background-color: #f9fafc; background-color: #f9fafc;
} }
.skin-blue-light .content-wrapper, .skin-blue-light .content-wrapper,
.skin-blue-light .main-footer { .skin-blue-light .main-footer {
border-left: 1px solid #d2d6de; border-left: 1px solid #d2d6de;
} }
.skin-blue-light .user-panel > .info, .skin-blue-light .user-panel > .info,
.skin-blue-light .user-panel > .info > a { .skin-blue-light .user-panel > .info > a {
color: #444444; color: #444444;
} }
.skin-blue-light .sidebar-menu > li { .skin-blue-light .sidebar-menu > li {
-webkit-transition: border-left-color 0.3s ease; -webkit-transition: border-left-color 0.3s ease;
-o-transition: border-left-color 0.3s ease; -o-transition: border-left-color 0.3s ease;
transition: border-left-color 0.3s ease; transition: border-left-color 0.3s ease;
} }
.skin-blue-light .sidebar-menu > li.header { .skin-blue-light .sidebar-menu > li.header {
color: #848484; color: #848484;
background: #f9fafc; background: #f9fafc;
} }
.skin-blue-light .sidebar-menu > li > a { .skin-blue-light .sidebar-menu > li > a {
border-left: 3px solid transparent; border-left: 3px solid transparent;
font-weight: 600; font-weight: 600;
} }
.skin-blue-light .sidebar-menu > li:hover > a, .skin-blue-light .sidebar-menu > li:hover > a,
.skin-blue-light .sidebar-menu > li.active > a { .skin-blue-light .sidebar-menu > li.active > a {
color: #000000; color: #000000;
background: #f4f4f5; background: #f4f4f5;
} }
.skin-blue-light .sidebar-menu > li.active { .skin-blue-light .sidebar-menu > li.active {
border-left-color: #3c8dbc; border-left-color: #3c8dbc;
} }
.skin-blue-light .sidebar-menu > li.active > a { .skin-blue-light .sidebar-menu > li.active > a {
font-weight: 600; font-weight: 600;
} }
.skin-blue-light .sidebar-menu > li > .treeview-menu { .skin-blue-light .sidebar-menu > li > .treeview-menu {
background: #f4f4f5; background: #f4f4f5;
} }
.skin-blue-light .sidebar a { .skin-blue-light .sidebar a {
color: #444444; color: #444444;
} }
.skin-blue-light .sidebar a:hover { .skin-blue-light .sidebar a:hover {
text-decoration: none; text-decoration: none;
} }
.skin-blue-light .treeview-menu > li > a { .skin-blue-light .treeview-menu > li > a {
color: #777777; color: #777777;
} }
.skin-blue-light .treeview-menu > li.active > a, .skin-blue-light .treeview-menu > li.active > a,
.skin-blue-light .treeview-menu > li > a:hover { .skin-blue-light .treeview-menu > li > a:hover {
color: #000000; color: #000000;
} }
.skin-blue-light .treeview-menu > li.active > a { .skin-blue-light .treeview-menu > li.active > a {
font-weight: 600; font-weight: 600;
} }
.skin-blue-light .sidebar-form { .skin-blue-light .sidebar-form {
border-radius: 3px; border-radius: 3px;
border: 1px solid #d2d6de; border: 1px solid #d2d6de;
margin: 10px 10px; margin: 10px 10px;
} }
.skin-blue-light .sidebar-form input[type="text"], .skin-blue-light .sidebar-form input[type="text"],
.skin-blue-light .sidebar-form .btn { .skin-blue-light .sidebar-form .btn {
box-shadow: none; box-shadow: none;
@@ -124,6 +154,7 @@
border: 1px solid transparent; border: 1px solid transparent;
height: 35px; height: 35px;
} }
.skin-blue-light .sidebar-form input[type="text"] { .skin-blue-light .sidebar-form input[type="text"] {
color: #666; color: #666;
border-top-left-radius: 2px; border-top-left-radius: 2px;
@@ -131,14 +162,17 @@
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
border-bottom-left-radius: 2px; border-bottom-left-radius: 2px;
} }
.skin-blue-light .sidebar-form input[type="text"]:focus, .skin-blue-light .sidebar-form input[type="text"]:focus,
.skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
background-color: #fff; background-color: #fff;
color: #666; color: #666;
} }
.skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
border-left-color: #fff; border-left-color: #fff;
} }
.skin-blue-light .sidebar-form .btn { .skin-blue-light .sidebar-form .btn {
color: #999; color: #999;
border-top-left-radius: 0; border-top-left-radius: 0;
@@ -146,19 +180,23 @@
border-bottom-right-radius: 2px; border-bottom-right-radius: 2px;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
border-left: 1px solid #d2d6de; border-left: 1px solid #d2d6de;
} }
} }
.skin-blue-light .main-footer { .skin-blue-light .main-footer {
border-top-color: #d2d6de; border-top-color: #d2d6de;
} }
.skin-blue.layout-top-nav .main-header > .logo { .skin-blue.layout-top-nav .main-header > .logo {
background-color: #3c8dbc; background-color: #3c8dbc;
color: #ffffff; color: #ffffff;
border-bottom: 0 solid transparent; border-bottom: 0 solid transparent;
} }
.skin-blue.layout-top-nav .main-header > .logo:hover { .skin-blue.layout-top-nav .main-header > .logo:hover {
background-color: #3b8ab8; background-color: #3b8ab8;
} }

View File

@@ -76,8 +76,10 @@
</p> </p>
<h4>But I thought SHA1 was broken?</h4> <h4>But I thought SHA1 was broken?</h4>
<p> <p>
Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is now Yes, but not in this context. As you can read on <a href="https://shattered.io/">the website detailing how they broke SHA1</a>, it is
slightly easier to find a "collision": another string that results in the same SHA1-hash. It now only takes 10,000 years using a single-GPU machine. now
slightly easier to find a "collision": another string that results in the same SHA1-hash. It now only takes 10,000 years using a
single-GPU machine.
</p> </p>
<p> <p>
This collision would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application This collision would not be equal to your password, nor would it be useful on (a site like) Firefly III. This application

View File

@@ -168,7 +168,8 @@
<div class="modal-footer"> <div class="modal-footer">
<small class="pull-left"> <small class="pull-left">
{{ 'need_more_help'|_ }} {{ 'need_more_help'|_ }}
</small><br /> </small>
<br/>
<small class="pull-left"> <small class="pull-left">
{{ trans('firefly.reenable_intro_text')|raw }} {{ trans('firefly.reenable_intro_text')|raw }}
</small> </small>

View File

@@ -50,7 +50,8 @@
<span class="input-group-addon">{{ journal.currency_symbol }}</span> <span class="input-group-addon">{{ journal.currency_symbol }}</span>
<input name="amount[{{ journal.id }}]" class="form-control" autocomplete="off" <input name="amount[{{ journal.id }}]" class="form-control" autocomplete="off"
step="any" type="number" value="{{ journal.amount }}"> step="any" type="number" value="{{ journal.amount }}">
<input type="hidden" name="transaction_currency_id[{{ journal.id }}]" value="{{ journal.transaction_currency_id }}"> <input type="hidden" name="transaction_currency_id[{{ journal.id }}]"
value="{{ journal.transaction_currency_id }}">
</div> </div>
{% if journal.foreign_amount %} {% if journal.foreign_amount %}
{# insert foreign data #} {# insert foreign data #}

View File

@@ -295,7 +295,6 @@ class SingleControllerTest extends TestCase
$messages->add('attachments', 'Fake error'); $messages->add('attachments', 'Fake error');
// mock attachment helper, trigger an error AND and info thing. // mock attachment helper, trigger an error AND and info thing.
$attachmentRepo = $this->mock(AttachmentHelperInterface::class); $attachmentRepo = $this->mock(AttachmentHelperInterface::class);
$attachmentRepo->shouldReceive('saveAttachmentsForModel'); $attachmentRepo->shouldReceive('saveAttachmentsForModel');