mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
a86ba6ed36
@ -590,8 +590,8 @@ class AccountController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$labels = [];
|
$labels = [];
|
||||||
foreach (['item', 'description', 'unit_cost', 'quantity', 'line_total'] as $field) {
|
foreach (['item', 'description', 'unit_cost', 'quantity', 'line_total', 'terms'] as $field) {
|
||||||
$labels[$field] = trim(Input::get("labels_{$field}"));
|
$labels[$field] = Input::get("labels_{$field}");
|
||||||
}
|
}
|
||||||
$account->invoice_labels = json_encode($labels);
|
$account->invoice_labels = json_encode($labels);
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ class AuthController extends Controller {
|
|||||||
$userId = Auth::check() ? Auth::user()->id : null;
|
$userId = Auth::check() ? Auth::user()->id : null;
|
||||||
$user = User::where('email', '=', $request->input('email'))->first();
|
$user = User::where('email', '=', $request->input('email'))->first();
|
||||||
|
|
||||||
if ($user && $user->failed_logins >= 3) {
|
if ($user && $user->failed_logins >= MAX_FAILED_LOGINS) {
|
||||||
Session::flash('error', trans('texts.invalid_credentials'));
|
Session::flash('error', trans('texts.invalid_credentials'));
|
||||||
return redirect()->to('login');
|
return redirect()->to('login');
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ class StartupCheck
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ensure all request are over HTTPS in production
|
// Ensure all request are over HTTPS in production
|
||||||
if (App::environment() == ENV_PRODUCTION && !Request::secure()) {
|
if (Utils::isNinjaProd() && !Request::secure()) {
|
||||||
return Redirect::secure(Request::getRequestUri());
|
return Redirect::secure(Request::getRequestUri());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,7 +247,6 @@ if (!defined('CONTACT_EMAIL')) {
|
|||||||
|
|
||||||
define('ENV_DEVELOPMENT', 'local');
|
define('ENV_DEVELOPMENT', 'local');
|
||||||
define('ENV_STAGING', 'staging');
|
define('ENV_STAGING', 'staging');
|
||||||
define('ENV_PRODUCTION', 'fortrabbit');
|
|
||||||
|
|
||||||
define('RECENTLY_VIEWED', 'RECENTLY_VIEWED');
|
define('RECENTLY_VIEWED', 'RECENTLY_VIEWED');
|
||||||
define('ENTITY_CLIENT', 'client');
|
define('ENTITY_CLIENT', 'client');
|
||||||
@ -338,6 +337,7 @@ if (!defined('CONTACT_EMAIL')) {
|
|||||||
define('MAX_SUBDOMAIN_LENGTH', 30);
|
define('MAX_SUBDOMAIN_LENGTH', 30);
|
||||||
define('MAX_IFRAME_URL_LENGTH', 250);
|
define('MAX_IFRAME_URL_LENGTH', 250);
|
||||||
define('MAX_LOGO_FILE_SIZE', 200); // KB
|
define('MAX_LOGO_FILE_SIZE', 200); // KB
|
||||||
|
define('MAX_FAILED_LOGINS', 5);
|
||||||
define('DEFAULT_FONT_SIZE', 9);
|
define('DEFAULT_FONT_SIZE', 9);
|
||||||
define('DEFAULT_SEND_RECURRING_HOUR', 8);
|
define('DEFAULT_SEND_RECURRING_HOUR', 8);
|
||||||
|
|
||||||
@ -488,6 +488,12 @@ if (!defined('CONTACT_EMAIL')) {
|
|||||||
define('SOCIAL_GITHUB', 'GitHub');
|
define('SOCIAL_GITHUB', 'GitHub');
|
||||||
define('SOCIAL_LINKEDIN', 'LinkedIn');
|
define('SOCIAL_LINKEDIN', 'LinkedIn');
|
||||||
|
|
||||||
|
define('USER_STATE_ACTIVE', 'active');
|
||||||
|
define('USER_STATE_PENDING', 'pending');
|
||||||
|
define('USER_STATE_DISABLED', 'disabled');
|
||||||
|
define('USER_STATE_ADMIN', 'admin');
|
||||||
|
|
||||||
|
|
||||||
$creditCards = [
|
$creditCards = [
|
||||||
1 => ['card' => 'images/credit_cards/Test-Visa-Icon.png', 'text' => 'Visa'],
|
1 => ['card' => 'images/credit_cards/Test-Visa-Icon.png', 'text' => 'Visa'],
|
||||||
2 => ['card' => 'images/credit_cards/Test-MasterCard-Icon.png', 'text' => 'Master Card'],
|
2 => ['card' => 'images/credit_cards/Test-MasterCard-Icon.png', 'text' => 'Master Card'],
|
||||||
@ -510,6 +516,9 @@ if (!defined('CONTACT_EMAIL')) {
|
|||||||
'countries' => 'App\Models\Country',
|
'countries' => 'App\Models\Country',
|
||||||
'invoiceDesigns' => 'App\Models\InvoiceDesign',
|
'invoiceDesigns' => 'App\Models\InvoiceDesign',
|
||||||
'invoiceStatus' => 'App\Models\InvoiceStatus',
|
'invoiceStatus' => 'App\Models\InvoiceStatus',
|
||||||
|
'frequencies' => 'App\Models\Frequency',
|
||||||
|
'gateways' => 'App\Models\Gateway',
|
||||||
|
'themes' => 'App\Models\Theme',
|
||||||
];
|
];
|
||||||
define('CACHED_TABLES', serialize($cachedTables));
|
define('CACHED_TABLES', serialize($cachedTables));
|
||||||
|
|
||||||
|
@ -45,11 +45,6 @@ class Utils
|
|||||||
return file_exists(storage_path() . '/framework/down');
|
return file_exists(storage_path() . '/framework/down');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function isProd()
|
|
||||||
{
|
|
||||||
return App::environment() == ENV_PRODUCTION;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function isNinja()
|
public static function isNinja()
|
||||||
{
|
{
|
||||||
return self::isNinjaProd() || self::isNinjaDev();
|
return self::isNinjaProd() || self::isNinjaDev();
|
||||||
|
@ -22,8 +22,7 @@ class UserRepository extends BaseRepository
|
|||||||
$query->where('users.deleted_at', '=', null);
|
$query->where('users.deleted_at', '=', null);
|
||||||
}
|
}
|
||||||
|
|
||||||
$query->where('users.public_id', '>', 0)
|
$query->select('users.public_id', 'users.first_name', 'users.last_name', 'users.email', 'users.confirmed', 'users.public_id', 'users.deleted_at');
|
||||||
->select('users.public_id', 'users.first_name', 'users.last_name', 'users.email', 'users.confirmed', 'users.public_id', 'users.deleted_at');
|
|
||||||
|
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,8 @@ class InvoiceTransformer extends EntityTransformer
|
|||||||
'partial' => (float) $invoice->partial,
|
'partial' => (float) $invoice->partial,
|
||||||
'has_tasks' => (bool) $invoice->has_tasks,
|
'has_tasks' => (bool) $invoice->has_tasks,
|
||||||
'auto_bill' => (bool) $invoice->auto_bill,
|
'auto_bill' => (bool) $invoice->auto_bill,
|
||||||
'account_key' => $this->account->account_key
|
'account_key' => $this->account->account_key,
|
||||||
|
'user_id' => (int) $invoice->user->public_id+1
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -80,7 +80,9 @@ class DatatableService
|
|||||||
$str .= "<li class=\"divider\"></li>";
|
$str .= "<li class=\"divider\"></li>";
|
||||||
}
|
}
|
||||||
|
|
||||||
$str .= "<li><a href=\"javascript:archiveEntity({$model->public_id})\">" . trans("texts.archive_{$entityType}") . "</a></li>";
|
if ($entityType != ENTITY_USER || $model->public_id) {
|
||||||
|
$str .= "<li><a href=\"javascript:archiveEntity({$model->public_id})\">" . trans("texts.archive_{$entityType}") . "</a></li>";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$str .= "<li><a href=\"javascript:restoreEntity({$model->public_id})\">" . trans("texts.restore_{$entityType}") . "</a></li>";
|
$str .= "<li><a href=\"javascript:restoreEntity({$model->public_id})\">" . trans("texts.restore_{$entityType}") . "</a></li>";
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,15 @@ class UserService extends BaseService
|
|||||||
[
|
[
|
||||||
'confirmed',
|
'confirmed',
|
||||||
function ($model) {
|
function ($model) {
|
||||||
return $model->deleted_at ? trans('texts.deleted') : ($model->confirmed ? trans('texts.active') : trans('texts.pending'));
|
if (!$model->public_id) {
|
||||||
|
return self::getStatusLabel(USER_STATE_ADMIN);
|
||||||
|
} elseif ($model->deleted_at) {
|
||||||
|
return self::getStatusLabel(USER_STATE_DISABLED);
|
||||||
|
} elseif ($model->confirmed) {
|
||||||
|
return self::getStatusLabel(USER_STATE_ACTIVE);
|
||||||
|
} else {
|
||||||
|
return self::getStatusLabel(USER_STATE_PENDING);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
@ -65,6 +73,9 @@ class UserService extends BaseService
|
|||||||
uctrans('texts.edit_user'),
|
uctrans('texts.edit_user'),
|
||||||
function ($model) {
|
function ($model) {
|
||||||
return URL::to("users/{$model->public_id}/edit");
|
return URL::to("users/{$model->public_id}/edit");
|
||||||
|
},
|
||||||
|
function ($model) {
|
||||||
|
return $model->public_id;
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -73,10 +84,31 @@ class UserService extends BaseService
|
|||||||
return URL::to("send_confirmation/{$model->public_id}");
|
return URL::to("send_confirmation/{$model->public_id}");
|
||||||
},
|
},
|
||||||
function ($model) {
|
function ($model) {
|
||||||
return !$model->confirmed;
|
return $model->public_id && ! $model->confirmed;
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getStatusLabel($state)
|
||||||
|
{
|
||||||
|
$label = trans("texts.{$state}");
|
||||||
|
$class = 'default';
|
||||||
|
switch ($state) {
|
||||||
|
case USER_STATE_PENDING:
|
||||||
|
$class = 'info';
|
||||||
|
break;
|
||||||
|
case USER_STATE_ACTIVE:
|
||||||
|
$class = 'primary';
|
||||||
|
break;
|
||||||
|
case USER_STATE_DISABLED:
|
||||||
|
$class = 'warning';
|
||||||
|
break;
|
||||||
|
case USER_STATE_ADMIN:
|
||||||
|
$class = 'success';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "<h4><div class=\"label label-{$class}\">$label</div></h4>";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -194,8 +194,8 @@ return array(
|
|||||||
'email_paid' => 'Benachrichtigen, wenn eine Rechnung <strong>bezahlt</strong> wurde',
|
'email_paid' => 'Benachrichtigen, wenn eine Rechnung <strong>bezahlt</strong> wurde',
|
||||||
'site_updates' => 'Seiten Updates',
|
'site_updates' => 'Seiten Updates',
|
||||||
'custom_messages' => 'Benutzerdefinierte Nachrichten',
|
'custom_messages' => 'Benutzerdefinierte Nachrichten',
|
||||||
'default_invoice_terms' => 'Standard Rechnungsbedingungen',
|
'default_invoice_terms' => 'Standard-Rechnungsbedingungen',
|
||||||
'default_email_footer' => 'Standard E-Mail Signatur',
|
'default_email_footer' => 'Standard-E-Mail Signatur',
|
||||||
'import_clients' => 'Importiere Kundendaten',
|
'import_clients' => 'Importiere Kundendaten',
|
||||||
'csv_file' => 'Wähle CSV Datei',
|
'csv_file' => 'Wähle CSV Datei',
|
||||||
'export_clients' => 'Exportiere Kundendaten',
|
'export_clients' => 'Exportiere Kundendaten',
|
||||||
@ -838,7 +838,7 @@ return array(
|
|||||||
'edit_tax_rate' => 'Steuersatz bearbeiten',
|
'edit_tax_rate' => 'Steuersatz bearbeiten',
|
||||||
'archive_tax_rate' => 'Steuersatz archivieren',
|
'archive_tax_rate' => 'Steuersatz archivieren',
|
||||||
'archived_tax_rate' => 'Steuersatz archiviert',
|
'archived_tax_rate' => 'Steuersatz archiviert',
|
||||||
'default_tax_rate_id' => 'Standard Steuersatz',
|
'default_tax_rate_id' => 'Standard-Steuersatz',
|
||||||
'tax_rate' => 'Steuersatz',
|
'tax_rate' => 'Steuersatz',
|
||||||
|
|
||||||
'recurring_hour' => 'Wiederholende Stunde',
|
'recurring_hour' => 'Wiederholende Stunde',
|
||||||
|
@ -942,5 +942,7 @@ return array(
|
|||||||
],
|
],
|
||||||
|
|
||||||
'client_portal' => 'Client Portal',
|
'client_portal' => 'Client Portal',
|
||||||
|
'admin' => 'Admin',
|
||||||
|
'disabled' => 'Disabled',
|
||||||
|
'show_archived_users' => 'Show archived users',
|
||||||
);
|
);
|
||||||
|
22
resources/lang/nl/passwords.php
Normal file
22
resources/lang/nl/passwords.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reminder Language Lines
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following language lines are the default lines which match reasons
|
||||||
|
| that are given by the password broker for a password update attempt
|
||||||
|
| has failed, such as for an invalid token or invalid new password.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
"password" => "Het wachtwoord moet minimaal zes tekens lang zijn en moet overeenkomen met de bevestiging.",
|
||||||
|
"user" => "We kunnen geen gebruiker vinden met het opgegeven e-mailadres.",
|
||||||
|
"token" => "Het wachtwoord reset token is ongeldig.",
|
||||||
|
"sent" => "We hebben u een wachtwoord reset link gemaild!",
|
||||||
|
"reset" => "Je wachtwoord is opnieuw ingesteld!",
|
||||||
|
|
||||||
|
];
|
@ -169,7 +169,7 @@ return array(
|
|||||||
'date' => 'Datum',
|
'date' => 'Datum',
|
||||||
'message' => 'Bericht',
|
'message' => 'Bericht',
|
||||||
'adjustment' => 'Aanpassing',
|
'adjustment' => 'Aanpassing',
|
||||||
'are_you_sure' => 'Ben je zeker?',
|
'are_you_sure' => 'Weet u het zeker?',
|
||||||
|
|
||||||
// payment pages
|
// payment pages
|
||||||
'payment_type_id' => 'Betalingstype',
|
'payment_type_id' => 'Betalingstype',
|
||||||
@ -179,8 +179,8 @@ return array(
|
|||||||
'work_email' => 'E-mail',
|
'work_email' => 'E-mail',
|
||||||
'language_id' => 'Taal',
|
'language_id' => 'Taal',
|
||||||
'timezone_id' => 'Tijdszone',
|
'timezone_id' => 'Tijdszone',
|
||||||
'date_format_id' => 'Formaat datum',
|
'date_format_id' => 'Datum formaat',
|
||||||
'datetime_format_id' => 'Datum/Tijd Formaat',
|
'datetime_format_id' => 'Datum/Tijd formaat',
|
||||||
'users' => 'Gebruikers',
|
'users' => 'Gebruikers',
|
||||||
'localization' => 'Localisatie',
|
'localization' => 'Localisatie',
|
||||||
'remove_logo' => 'Verwijder logo',
|
'remove_logo' => 'Verwijder logo',
|
||||||
@ -194,19 +194,19 @@ return array(
|
|||||||
'site_updates' => 'Site Aanpassingen',
|
'site_updates' => 'Site Aanpassingen',
|
||||||
'custom_messages' => 'Aangepaste berichten',
|
'custom_messages' => 'Aangepaste berichten',
|
||||||
'default_invoice_terms' => 'Stel standaard factuursvoorwaarden in',
|
'default_invoice_terms' => 'Stel standaard factuursvoorwaarden in',
|
||||||
'default_email_footer' => 'Stel standaard e-mail signatuur in',
|
'default_email_footer' => 'Stel standaard e-mail handtekening in',
|
||||||
'import_clients' => 'Importeer Klant Gegevens',
|
'import_clients' => 'Importeer Klant Gegevens',
|
||||||
'csv_file' => 'Selecteer CSV bestand',
|
'csv_file' => 'Selecteer CSV bestand',
|
||||||
'export_clients' => 'Exporteer Klant Gegevens',
|
'export_clients' => 'Exporteer Klant Gegevens',
|
||||||
'select_file' => 'Selecteer alstublieft een bestand',
|
'select_file' => 'Selecteer een bestand',
|
||||||
'first_row_headers' => 'Gebruik eerste rij als hoofdding',
|
'first_row_headers' => 'Gebruik eerste rij als koppen',
|
||||||
'column' => 'Kolom',
|
'column' => 'Kolom',
|
||||||
'sample' => 'Voorbeeld',
|
'sample' => 'Voorbeeld',
|
||||||
'import_to' => 'Importeer naar',
|
'import_to' => 'Importeer naar',
|
||||||
'client_will_create' => 'klant zal aangemaakt worden',
|
'client_will_create' => 'klant zal aangemaakt worden',
|
||||||
'clients_will_create' => 'klanten zullen aangemaakt worden',
|
'clients_will_create' => 'klanten zullen aangemaakt worden',
|
||||||
'email_settings' => 'Email Settings',
|
'email_settings' => 'E-mail instellingen',
|
||||||
'pdf_email_attachment' => 'Attach PDF to Emails',
|
'pdf_email_attachment' => 'PDF als bijlage toevoegen in e-mailberichten',
|
||||||
|
|
||||||
// application messages
|
// application messages
|
||||||
'created_client' => 'Klant succesvol aangemaakt',
|
'created_client' => 'Klant succesvol aangemaakt',
|
||||||
@ -217,8 +217,8 @@ return array(
|
|||||||
'invoice_error' => 'Selecteer een klant alstublieft en corrigeer mogelijke fouten',
|
'invoice_error' => 'Selecteer een klant alstublieft en corrigeer mogelijke fouten',
|
||||||
'limit_clients' => 'Sorry, dit zal de klantenlimiet van :count klanten overschrijden',
|
'limit_clients' => 'Sorry, dit zal de klantenlimiet van :count klanten overschrijden',
|
||||||
'payment_error' => 'Er was een fout bij het verwerken van uw betaling. Probeer later alstublieft opnieuw.',
|
'payment_error' => 'Er was een fout bij het verwerken van uw betaling. Probeer later alstublieft opnieuw.',
|
||||||
'registration_required' => 'Meld je aan om een factuur te mailen',
|
'registration_required' => 'Meld u aan om een factuur te mailen',
|
||||||
'confirmation_required' => 'Bevestig je e-mail adres alstublieft',
|
'confirmation_required' => 'Bevestig uw e-mailadres alstublieft',
|
||||||
|
|
||||||
'updated_client' => 'Klant succesvol aangepast',
|
'updated_client' => 'Klant succesvol aangepast',
|
||||||
'created_client' => 'Klant succesvol aangemaakt',
|
'created_client' => 'Klant succesvol aangemaakt',
|
||||||
@ -253,23 +253,24 @@ return array(
|
|||||||
// E-mails
|
// E-mails
|
||||||
'confirmation_subject' => 'Invoice Ninja Bevestiging Account',
|
'confirmation_subject' => 'Invoice Ninja Bevestiging Account',
|
||||||
'confirmation_header' => 'Bevestiging Account',
|
'confirmation_header' => 'Bevestiging Account',
|
||||||
'confirmation_message' => 'Ga alstublieft naar onderstaande link om je account te bevestiging.',
|
'confirmation_message' => 'Ga alstublieft naar onderstaande link om uw account te bevestiging.',
|
||||||
'invoice_message' => 'Om je factuur voor :amount te bekijken, klik op onderstaande link.',
|
'invoice_subject' => 'Nieuwe factuur :invoice van :account',
|
||||||
|
'invoice_message' => 'Klik op onderstaande link ow uw factuur van :amount te bekijken.',
|
||||||
'payment_subject' => 'Betaling ontvangen',
|
'payment_subject' => 'Betaling ontvangen',
|
||||||
'payment_message' => 'Bedankt voor je betaling van :amount.',
|
'payment_message' => 'Bedankt voor uw betaling van :amount.',
|
||||||
'email_salutation' => 'Beste :name,',
|
'email_salutation' => 'Beste :name,',
|
||||||
'email_signature' => 'Met vriendelijke groeten,',
|
'email_signature' => 'Met vriendelijke groeten,',
|
||||||
'email_from' => 'Het InvoiceNinja Team',
|
'email_from' => 'Het InvoiceNinja Team',
|
||||||
'user_email_footer' => 'Ga alstublieft naar '.SITE_URL.'/settings/notifications om je e-mail notificatie instellingen aan te passen ',
|
'user_email_footer' => 'Ga alstublieft naar '.SITE_URL.'/settings/notifications om uw e-mail notificatie instellingen aan te passen',
|
||||||
'invoice_link_message' => 'Klik op volgende link om de Factuur van je klant te bekijken:',
|
'invoice_link_message' => 'Klik op volgende link om de Factuur van uw klant te bekijken:',
|
||||||
'notification_invoice_paid_subject' => 'Factuur :invoice is betaald door :client',
|
'notification_invoice_paid_subject' => 'Factuur :invoice is betaald door :client',
|
||||||
'notification_invoice_sent_subject' => 'Factuur :invoice is gezonden door :client',
|
'notification_invoice_sent_subject' => 'Factuur :invoice is gezonden door :client',
|
||||||
'notification_invoice_viewed_subject' => 'Factuur :invoice is bekeken door :client',
|
'notification_invoice_viewed_subject' => 'Factuur :invoice is bekeken door :client',
|
||||||
'notification_invoice_paid' => 'Een betaling voor :amount is gemaakt door klant :client voor Factuur :invoice.',
|
'notification_invoice_paid' => 'Een betaling voor :amount is gemaakt door klant :client voor Factuur :invoice.',
|
||||||
'notification_invoice_sent' => 'De volgende klant :client heeft Factuur :invoice voor :amount gemaild gekregen.',
|
'notification_invoice_sent' => 'De volgende klant :client heeft Factuur :invoice voor :amount gemaild gekregen.',
|
||||||
'notification_invoice_viewed' => 'De volgende klant :client heeft Factuur :invoice voor :amount bekeken.',
|
'notification_invoice_viewed' => 'De volgende klant :client heeft Factuur :invoice voor :amount bekeken.',
|
||||||
'reset_password' => 'Je kan het paswoord van je account resetten door op volgende link te klikken:',
|
'reset_password' => 'U kunt het paswoord van uw account resetten door op de volgende link te klikken:',
|
||||||
'reset_password_footer' => 'Als je deze paswoord reset niet aangevraagd hebt contacteer dan onze helpdesk alstublieft: ' . CONTACT_EMAIL,
|
'reset_password_footer' => 'Neem a.u.b. contact op met onze helpdesk indien u deze paswoord reset niet heeft aangevraagd. Het e-mailadres van de helpdesk is ' . CONTACT_EMAIL,
|
||||||
|
|
||||||
// Payment page
|
// Payment page
|
||||||
'secure_payment' => 'Veilige betaling',
|
'secure_payment' => 'Veilige betaling',
|
||||||
@ -282,10 +283,10 @@ return array(
|
|||||||
'security' => [
|
'security' => [
|
||||||
'too_many_attempts' => 'Te veel pogingen. Probeer opnieuw binnen enkele minuten.',
|
'too_many_attempts' => 'Te veel pogingen. Probeer opnieuw binnen enkele minuten.',
|
||||||
'wrong_credentials' => 'Verkeerd e-mailadres of paswoord.',
|
'wrong_credentials' => 'Verkeerd e-mailadres of paswoord.',
|
||||||
'confirmation' => 'Je account is bevestigd!',
|
'confirmation' => 'Uw account is bevestigd!',
|
||||||
'wrong_confirmation' => 'Verkeerde bevestigingscode.',
|
'wrong_confirmation' => 'Verkeerde bevestigingscode.',
|
||||||
'password_forgot' => 'De informatie over je paswoord reset is verzonden naar je e-mailadres.',
|
'password_forgot' => 'De informatie over uw paswoord reset is verzonden naar uw e-mailadres.',
|
||||||
'password_reset' => 'Je paswoord is succesvol aangepast.',
|
'password_reset' => 'Uw paswoord is succesvol aangepast.',
|
||||||
'wrong_password_reset' => 'Ongeldig paswoord. Probeer opnieuw',
|
'wrong_password_reset' => 'Ongeldig paswoord. Probeer opnieuw',
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -296,13 +297,13 @@ return array(
|
|||||||
],
|
],
|
||||||
|
|
||||||
'logout' => 'Afmelden',
|
'logout' => 'Afmelden',
|
||||||
'sign_up_to_save' => 'Registreer je om je werk op te slaan',
|
'sign_up_to_save' => 'Registreer u om uw werk op te slaan',
|
||||||
'agree_to_terms' =>'Ik accepteer de Invoice Ninja :terms',
|
'agree_to_terms' =>'Ik accepteer de Invoice Ninja :terms',
|
||||||
'terms_of_service' => 'Gebruiksvoorwaarden',
|
'terms_of_service' => 'Gebruiksvoorwaarden',
|
||||||
'email_taken' => 'Het e-mailadres is al geregistreerd',
|
'email_taken' => 'Het e-mailadres is al geregistreerd',
|
||||||
'working' => 'Actief',
|
'working' => 'Actief',
|
||||||
'success' => 'Succes',
|
'success' => 'Succes',
|
||||||
'success_message' => 'Je bent succesvol geregistreerd. Ga alstublieft naar de link in de bevestigingsmail om je e-mailadres te verifiëren.',
|
'success_message' => 'U bent succesvol geregistreerd. Ga alstublieft naar de link in de bevestigingsmail om uw e-mailadres te verifiëren.',
|
||||||
'erase_data' => 'Dit zal uw data permanent verwijderen.',
|
'erase_data' => 'Dit zal uw data permanent verwijderen.',
|
||||||
'password' => 'Wachtwoord',
|
'password' => 'Wachtwoord',
|
||||||
'invoice_subject' => 'Nieuwe factuur :invoice van :account',
|
'invoice_subject' => 'Nieuwe factuur :invoice van :account',
|
||||||
@ -310,9 +311,9 @@ return array(
|
|||||||
|
|
||||||
'pro_plan_product' => 'Pro Plan',
|
'pro_plan_product' => 'Pro Plan',
|
||||||
'pro_plan_description' => 'Één jaar abbonnement op het Invoice Ninja Pro Plan.',
|
'pro_plan_description' => 'Één jaar abbonnement op het Invoice Ninja Pro Plan.',
|
||||||
'pro_plan_success' => 'Bedankt voor het aanmelden! Zodra je factuur betaald is zal je Pro Plan lidmaatschap beginnen.',
|
'pro_plan_success' => 'Bedankt voor het aanmelden! Zodra uw factuur betaald is zal uw Pro Plan lidmaatschap beginnen.',
|
||||||
|
|
||||||
'unsaved_changes' => 'Je hebt niet bewaarde wijzigingen',
|
'unsaved_changes' => 'U hebt niet bewaarde wijzigingen',
|
||||||
'custom_fields' => 'Aangepaste velden',
|
'custom_fields' => 'Aangepaste velden',
|
||||||
'company_fields' => 'Velden Bedrijf',
|
'company_fields' => 'Velden Bedrijf',
|
||||||
'client_fields' => 'Velden Klant',
|
'client_fields' => 'Velden Klant',
|
||||||
@ -399,7 +400,7 @@ return array(
|
|||||||
'hide_paid_to_date' => 'Verberg "Reeds betaald"',
|
'hide_paid_to_date' => 'Verberg "Reeds betaald"',
|
||||||
'hide_paid_to_date_help' => 'Toon alleen het "Reeds betaald" gebied op je facturen als er een betaling gemaakt is.',
|
'hide_paid_to_date_help' => 'Toon alleen het "Reeds betaald" gebied op je facturen als er een betaling gemaakt is.',
|
||||||
|
|
||||||
'charge_taxes' => 'Charge taxes',
|
'charge_taxes' => 'BTW berekenen',
|
||||||
'user_management' => 'Gebruikersbeheer',
|
'user_management' => 'Gebruikersbeheer',
|
||||||
'add_user' => 'Nieuwe gebruiker',
|
'add_user' => 'Nieuwe gebruiker',
|
||||||
'send_invite' => 'Verstuur uitnodiging',
|
'send_invite' => 'Verstuur uitnodiging',
|
||||||
@ -441,8 +442,8 @@ return array(
|
|||||||
|
|
||||||
'gateway_help_1' => ':link om in te schrijven voor Authorize.net.',
|
'gateway_help_1' => ':link om in te schrijven voor Authorize.net.',
|
||||||
'gateway_help_2' => ':link om in te schrijven voor Authorize.net.',
|
'gateway_help_2' => ':link om in te schrijven voor Authorize.net.',
|
||||||
'gateway_help_17' => ':link om je PayPal API signature te krijgen.',
|
'gateway_help_17' => ':link om uw PayPal API signature te krijgen.',
|
||||||
'gateway_help_23' => 'Opmerking: gebruik je gehieme API key, niet je publiceerbare API key.',
|
'gateway_help_23' => 'Opmerking: gebruik uw gehieme API key, niet uw publiceerbare API key.',
|
||||||
'gateway_help_27' => ':link om in te schrijven voor TwoCheckout.',
|
'gateway_help_27' => ':link om in te schrijven voor TwoCheckout.',
|
||||||
|
|
||||||
'more_designs' => 'Meer ontwerpen',
|
'more_designs' => 'Meer ontwerpen',
|
||||||
@ -458,9 +459,9 @@ return array(
|
|||||||
'sent' => 'verzonden',
|
'sent' => 'verzonden',
|
||||||
'timesheets' => 'Timesheets',
|
'timesheets' => 'Timesheets',
|
||||||
|
|
||||||
'payment_title' => 'Geef je betalingsadres en kredietkaart gegevens op',
|
'payment_title' => 'Geef uw betalingsadres en kredietkaart gegevens op',
|
||||||
'payment_cvv' => '*Dit is de code van 3-4 tekens op de achterkant van je kaart',
|
'payment_cvv' => '*Dit is de code van 3-4 tekens op de achterkant van uw kaart',
|
||||||
'payment_footer1' => '*Betalingsadres moet overeenkomen met het adres dat aan je kaart gekoppekd is.',
|
'payment_footer1' => '*Betalingsadres moet overeenkomen met het adres dat aan uw kaart gekoppekd is.',
|
||||||
'payment_footer2' => '*Klik alstublieft slechts 1 keer op "PAY NOW" - verwerking kan tot 1 minuut duren.',
|
'payment_footer2' => '*Klik alstublieft slechts 1 keer op "PAY NOW" - verwerking kan tot 1 minuut duren.',
|
||||||
'vat_number' => 'BTW Nummer',
|
'vat_number' => 'BTW Nummer',
|
||||||
'id_number' => 'ID Nummer',
|
'id_number' => 'ID Nummer',
|
||||||
@ -509,7 +510,7 @@ return array(
|
|||||||
'approve' => 'Goedkeuren',
|
'approve' => 'Goedkeuren',
|
||||||
|
|
||||||
'token_billing_type_id' => 'Betalingstoken',
|
'token_billing_type_id' => 'Betalingstoken',
|
||||||
'token_billing_help' => 'Laat je toe om kredietkaart gegevens bij je gateway op te slaan en ze later te gebruiken.',
|
'token_billing_help' => 'Stelt u in staat om kredietkaart gegevens bij uw gateway op te slaan en ze later te gebruiken.',
|
||||||
'token_billing_1' => 'Inactief',
|
'token_billing_1' => 'Inactief',
|
||||||
'token_billing_2' => 'Opt-in - checkbox is getoond maar niet geselecteerd',
|
'token_billing_2' => 'Opt-in - checkbox is getoond maar niet geselecteerd',
|
||||||
'token_billing_3' => 'Opt-out - checkbox is getoond en geselecteerd',
|
'token_billing_3' => 'Opt-out - checkbox is getoond en geselecteerd',
|
||||||
@ -528,7 +529,7 @@ return array(
|
|||||||
'billing_address' => 'Facturatie adres',
|
'billing_address' => 'Facturatie adres',
|
||||||
'billing_method' => 'Betaalmethode',
|
'billing_method' => 'Betaalmethode',
|
||||||
'order_overview' => 'Order overzicht',
|
'order_overview' => 'Order overzicht',
|
||||||
'match_address' => '*Addres moet overeenkomen met adres van creditcard.',
|
'match_address' => '*Addres moet overeenkomen met adres van kredietkaart.',
|
||||||
'click_once' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
|
'click_once' => '*Please click "PAY NOW" only once - transaction may take up to 1 minute to process.',
|
||||||
|
|
||||||
'default_invoice_footer' => 'Stel standaard factuur-footer in',
|
'default_invoice_footer' => 'Stel standaard factuur-footer in',
|
||||||
@ -604,7 +605,7 @@ return array(
|
|||||||
'www' => 'www',
|
'www' => 'www',
|
||||||
'logo' => 'Logo',
|
'logo' => 'Logo',
|
||||||
'subdomain' => 'Subdomein',
|
'subdomain' => 'Subdomein',
|
||||||
'provide_name_or_email' => 'Geef aub een contact naam en email op',
|
'provide_name_or_email' => 'Geef a.u.b. een contact naam en email op',
|
||||||
'charts_and_reports' => 'Grafieken & Rapporten',
|
'charts_and_reports' => 'Grafieken & Rapporten',
|
||||||
'chart' => 'Grafiek',
|
'chart' => 'Grafiek',
|
||||||
'report' => 'Rapport',
|
'report' => 'Rapport',
|
||||||
@ -652,7 +653,7 @@ return array(
|
|||||||
'logged' => 'Gelogd',
|
'logged' => 'Gelogd',
|
||||||
'running' => 'Lopend',
|
'running' => 'Lopend',
|
||||||
'task_error_multiple_clients' => 'Taken kunnen niet tot meerdere klanten behoren',
|
'task_error_multiple_clients' => 'Taken kunnen niet tot meerdere klanten behoren',
|
||||||
'task_error_running' => 'Stop aub de lopende taken eerst',
|
'task_error_running' => 'Stop a.u.b. de lopende taken eerst',
|
||||||
'task_error_invoiced' => 'Deze taken zijn al gefactureerd',
|
'task_error_invoiced' => 'Deze taken zijn al gefactureerd',
|
||||||
'restored_task' => 'Taak succesvol hersteld',
|
'restored_task' => 'Taak succesvol hersteld',
|
||||||
'archived_task' => 'Taak succesvol gearchiveerd',
|
'archived_task' => 'Taak succesvol gearchiveerd',
|
||||||
@ -686,7 +687,7 @@ return array(
|
|||||||
'break_duration' => 'Pauze',
|
'break_duration' => 'Pauze',
|
||||||
'edit_details' => 'Details aanpassen',
|
'edit_details' => 'Details aanpassen',
|
||||||
'work' => 'Werk',
|
'work' => 'Werk',
|
||||||
'timezone_unset' => ':link om je tijdszone aan te passen',
|
'timezone_unset' => ':link om uw tijdszone aan te passen',
|
||||||
'click_here' => 'Klik hier',
|
'click_here' => 'Klik hier',
|
||||||
|
|
||||||
'email_receipt' => 'Mail betalingsbewijs naar de klant',
|
'email_receipt' => 'Mail betalingsbewijs naar de klant',
|
||||||
@ -701,7 +702,7 @@ return array(
|
|||||||
|
|
||||||
'email_error' => 'Er was een probleem om de email te verzenden',
|
'email_error' => 'Er was een probleem om de email te verzenden',
|
||||||
'confirm_recurring_timing' => 'Opmerking: emails worden aan het begin van het uur verzonden.',
|
'confirm_recurring_timing' => 'Opmerking: emails worden aan het begin van het uur verzonden.',
|
||||||
'old_browser' => 'Gebruik aub een <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">nieuwere browser</a>',
|
'old_browser' => 'Gebruik a.u.b. een <a href="'.OUTDATE_BROWSER_URL.'" target="_blank">nieuwere browser</a>',
|
||||||
'payment_terms_help' => 'Stel de standaard factuur vervaldatum in',
|
'payment_terms_help' => 'Stel de standaard factuur vervaldatum in',
|
||||||
'unlink_account' => 'Koppel account los',
|
'unlink_account' => 'Koppel account los',
|
||||||
'unlink' => 'Koppel los',
|
'unlink' => 'Koppel los',
|
||||||
@ -715,7 +716,7 @@ return array(
|
|||||||
'dark_mode_help' => 'Toon witte tekst op een donkere achtergrond',
|
'dark_mode_help' => 'Toon witte tekst op een donkere achtergrond',
|
||||||
'add_to_invoice' => 'Toevoegen aan factuur :invoice',
|
'add_to_invoice' => 'Toevoegen aan factuur :invoice',
|
||||||
'create_new_invoice' => 'Maak een nieuwe factuur',
|
'create_new_invoice' => 'Maak een nieuwe factuur',
|
||||||
'task_errors' => 'Pas overlappende tijden aan aub.',
|
'task_errors' => 'Pas overlappende tijden aan a.u.b..',
|
||||||
'from' => 'Van',
|
'from' => 'Van',
|
||||||
'to' => 'Aan',
|
'to' => 'Aan',
|
||||||
'font_size' => 'Tekstgrootte',
|
'font_size' => 'Tekstgrootte',
|
||||||
@ -748,55 +749,55 @@ return array(
|
|||||||
<p>Gebruik dot notatie om een "kind eigenschap" te gebruiken. Bijvoorbeeld voor de klant naam te tonen gebruik je <code>$client.nameValue</code>.</p>
|
<p>Gebruik dot notatie om een "kind eigenschap" te gebruiken. Bijvoorbeeld voor de klant naam te tonen gebruik je <code>$client.nameValue</code>.</p>
|
||||||
<p>Als je ergens hulp bij nodig hebt, post dan een vraag op ons <a href="https://www.invoiceninja.com/forums/forum/support/" target="_blank">support forum</a>.</p>',
|
<p>Als je ergens hulp bij nodig hebt, post dan een vraag op ons <a href="https://www.invoiceninja.com/forums/forum/support/" target="_blank">support forum</a>.</p>',
|
||||||
|
|
||||||
'invoice_due_date' => 'Due Date',
|
'invoice_due_date' => 'Vervaldatum',
|
||||||
'quote_due_date' => 'Valid Until',
|
'quote_due_date' => 'Geldig tot',
|
||||||
'valid_until' => 'Valid Until',
|
'valid_until' => 'Geldig tot',
|
||||||
'reset_terms' => 'Reset terms',
|
'reset_terms' => 'Reset voorwaarden',
|
||||||
'reset_footer' => 'Reset footer',
|
'reset_footer' => 'Reset footer',
|
||||||
'invoices_sent' => ':count invoice sent|:count invoices sent',
|
'invoices_sent' => ':count factuur verstuurd|:count facturen verstuurd',
|
||||||
'status_draft' => 'Draft',
|
'status_draft' => 'Concept',
|
||||||
'status_sent' => 'Sent',
|
'status_sent' => 'Verstuurd',
|
||||||
'status_viewed' => 'Viewed',
|
'status_viewed' => 'Bekeken',
|
||||||
'status_partial' => 'Partial',
|
'status_partial' => 'Gedeeltelijk',
|
||||||
'status_paid' => 'Paid',
|
'status_paid' => 'Betaald',
|
||||||
'show_line_item_tax' => 'Display <b>line item taxes</b> inline',
|
'show_line_item_tax' => '<b>BTW tarieven per lijn</b> per regel tonen',
|
||||||
|
|
||||||
'iframe_url' => 'Website',
|
'iframe_url' => 'Website',
|
||||||
'iframe_url_help1' => 'Copy the following code to a page on your site.',
|
'iframe_url_help1' => 'Kopieer de volgende code naar een pagina op uw site.',
|
||||||
'iframe_url_help2' => 'You can test the feature by clicking \'View as recipient\' for an invoice.',
|
'iframe_url_help2' => 'U kunt de functionaliteit testen door te klikken op \'Bekijk als ontvanger\' bij een factuur.',
|
||||||
|
|
||||||
'auto_bill' => 'Auto Bill',
|
'auto_bill' => 'Automatische incasso',
|
||||||
'military_time' => '24 Hour Time',
|
'military_time' => '24 uurs tijd',
|
||||||
'last_sent' => 'Last Sent',
|
'last_sent' => 'Laatst verstuurd',
|
||||||
|
|
||||||
'reminder_emails' => 'Reminder Emails',
|
'reminder_emails' => 'Herinnerings E-mails',
|
||||||
'templates_and_reminders' => 'Templates & Reminders',
|
'templates_and_reminders' => 'Templates & herinneringen',
|
||||||
'subject' => 'Subject',
|
'subject' => 'Onderwerp',
|
||||||
'body' => 'Body',
|
'body' => 'Tekst',
|
||||||
'first_reminder' => 'First Reminder',
|
'first_reminder' => 'Eerste herinnering',
|
||||||
'second_reminder' => 'Second Reminder',
|
'second_reminder' => 'Tweede herinnering',
|
||||||
'third_reminder' => 'Third Reminder',
|
'third_reminder' => 'Derde herinnering',
|
||||||
'num_days_reminder' => 'Days after due date',
|
'num_days_reminder' => 'Dagen na vervaldatum',
|
||||||
'reminder_subject' => 'Reminder: Invoice :invoice from :account',
|
'reminder_subject' => 'Herinnering: Factuur :invoice van :account',
|
||||||
'reset' => 'Reset',
|
'reset' => 'Reset',
|
||||||
'invoice_not_found' => 'The requested invoice is not available',
|
'invoice_not_found' => 'De opgevraagde factuur is niet beschikbaar',
|
||||||
|
|
||||||
'referral_program' => 'Referral Program',
|
'referral_program' => 'Referral Program',
|
||||||
'referral_code' => 'Referral Code',
|
'referral_code' => 'Referral Code',
|
||||||
'last_sent_on' => 'Last sent on :date',
|
'last_sent_on' => 'Laatst verstuurd op :date',
|
||||||
|
|
||||||
'page_expire' => 'This page will expire soon, :click_here to keep working',
|
'page_expire' => 'Deze pagina verloopt binnenkort, :click_here om verder te kunnen werken',
|
||||||
'upcoming_quotes' => 'Upcoming Quotes',
|
'upcoming_quotes' => 'Eersvolgende offertes',
|
||||||
'expired_quotes' => 'Expired Quotes',
|
'expired_quotes' => 'Verlopen offertes',
|
||||||
|
|
||||||
'sign_up_using' => 'Sign up using',
|
'sign_up_using' => 'Meld u aan met',
|
||||||
'invalid_credentials' => 'These credentials do not match our records',
|
'invalid_credentials' => 'Deze credentials zijn niet bij ons bekend',
|
||||||
'show_all_options' => 'Show all options',
|
'show_all_options' => 'Alle opties tonen',
|
||||||
'user_details' => 'User Details',
|
'user_details' => 'Gebruiker gegevens',
|
||||||
'oneclick_login' => 'One-Click Login',
|
'oneclick_login' => 'One-Click Login',
|
||||||
'disable' => 'Disable',
|
'disable' => 'Uitzetten',
|
||||||
'invoice_quote_number' => 'Invoice and Quote Numbers',
|
'invoice_quote_number' => 'Factuur en offerte nummers',
|
||||||
'invoice_charges' => 'Invoice Charges',
|
'invoice_charges' => 'Facturatie kosten',
|
||||||
|
|
||||||
'invitation_status' => [
|
'invitation_status' => [
|
||||||
'sent' => 'Email Sent',
|
'sent' => 'Email Sent',
|
||||||
@ -808,41 +809,41 @@ return array(
|
|||||||
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact.',
|
'notification_quote_bounced' => 'We were unable to deliver Quote :invoice to :contact.',
|
||||||
'notification_quote_bounced_subject' => 'Unable to deliver Quote :invoice',
|
'notification_quote_bounced_subject' => 'Unable to deliver Quote :invoice',
|
||||||
|
|
||||||
'custom_invoice_link' => 'Custom Invoice Link',
|
'custom_invoice_link' => 'Eigen factuur link',
|
||||||
'total_invoiced' => 'Total Invoiced',
|
'total_invoiced' => 'Total Invoiced',
|
||||||
'open_balance' => 'Open Balance',
|
'open_balance' => 'Open Balance',
|
||||||
'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.',
|
'verify_email' => 'Please visit the link in the account confirmation email to verify your email address.',
|
||||||
'basic_settings' => 'Basic Settings',
|
'basic_settings' => 'Basis Instellingen',
|
||||||
'pro' => 'Pro',
|
'pro' => 'Pro',
|
||||||
'gateways' => 'Payment Gateways',
|
'gateways' => 'Payment Gateways',
|
||||||
'recurring_too_soon' => 'Het is te vroeg om de volgende wederkerende factuur aan te maken, it\'s scheduled for :date',
|
'recurring_too_soon' => 'Het is te vroeg om de volgende wederkerende factuur aan te maken, dit is gepland voor :date',
|
||||||
|
|
||||||
'next_send_on' => 'Send Next: :date',
|
'next_send_on' => 'Send Next: :date',
|
||||||
'no_longer_running' => 'This invoice is not scheduled to run',
|
'no_longer_running' => 'This invoice is not scheduled to run',
|
||||||
'general_settings' => 'General Settings',
|
'general_settings' => 'General Settings',
|
||||||
'customize' => 'Customize',
|
'customize' => 'Customize',
|
||||||
'oneclick_login_help' => 'Connect an account to login without a password',
|
'oneclick_login_help' => 'Verbind een account om zonder wachtwoord in te kunnen loggen',
|
||||||
'referral_code_help' => 'Earn money by sharing our app online',
|
'referral_code_help' => 'Verdien geld door onze applicatie online te delen',
|
||||||
|
|
||||||
'enable_with_stripe' => 'Enable | Requires Stripe',
|
'enable_with_stripe' => 'Aanzetten | Vereist Stripe',
|
||||||
'tax_settings' => 'Tax Settings',
|
'tax_settings' => 'BTW Instellingen',
|
||||||
'create_tax_rate' => 'Add Tax Rate',
|
'create_tax_rate' => 'Voeg een tarief toe',
|
||||||
'updated_tax_rate' => 'Successfully updated tax rate',
|
'updated_tax_rate' => 'Het tarief is bijgewerkt',
|
||||||
'created_tax_rate' => 'Successfully created tax rate',
|
'created_tax_rate' => 'Het tarief is aangemaakt',
|
||||||
'edit_tax_rate' => 'Edit tax rate',
|
'edit_tax_rate' => 'Bewerk tarief',
|
||||||
'archive_tax_rate' => 'Archive tax rate',
|
'archive_tax_rate' => 'Archiveer tarief',
|
||||||
'archived_tax_rate' => 'Successfully archived the tax rate',
|
'archived_tax_rate' => 'Het tarief is gearchiveerd',
|
||||||
'default_tax_rate_id' => 'Default Tax Rate',
|
'default_tax_rate_id' => 'Standaard BTW tarief',
|
||||||
'tax_rate' => 'Tax Rate',
|
'tax_rate' => 'BTW Tarief',
|
||||||
'recurring_hour' => 'Recurring Hour',
|
'recurring_hour' => 'Uur van de dag voor het aanmaken van terugkerende facturen',
|
||||||
'pattern' => 'Pattern',
|
'pattern' => 'Patroon',
|
||||||
'pattern_help_title' => 'Pattern Help',
|
'pattern_help_title' => 'Help bij Patroon',
|
||||||
'pattern_help_1' => 'Create custom invoice and quote numbers by specifying a pattern',
|
'pattern_help_1' => 'Definieer factuur en offerte nummers op basis van een patroon',
|
||||||
'pattern_help_2' => 'Available variables:',
|
'pattern_help_2' => 'Beschikbare variabelen:',
|
||||||
'pattern_help_3' => 'For example, :example would be converted to :value',
|
'pattern_help_3' => 'Bijvoorbeeld, :example wordt omgezet naar :value',
|
||||||
'see_options' => 'See options',
|
'see_options' => 'Zie opties',
|
||||||
'invoice_counter' => 'Invoice Counter',
|
'invoice_counter' => 'Factuur teller',
|
||||||
'quote_counter' => 'Quote Counter',
|
'quote_counter' => 'Offerte teller',
|
||||||
'type' => 'Type',
|
'type' => 'Type',
|
||||||
|
|
||||||
'activity_1' => ':user created client :client',
|
'activity_1' => ':user created client :client',
|
||||||
|
@ -32,8 +32,11 @@ return array(
|
|||||||
"countbetween" => ":attribute moet tussen :min en :max geselecteerde elementen bevatten.",
|
"countbetween" => ":attribute moet tussen :min en :max geselecteerde elementen bevatten.",
|
||||||
"countmax" => ":attribute moet minder dan :max geselecteerde elementen bevatten.",
|
"countmax" => ":attribute moet minder dan :max geselecteerde elementen bevatten.",
|
||||||
"countmin" => ":attribute moet minimaal :min geselecteerde elementen bevatten.",
|
"countmin" => ":attribute moet minimaal :min geselecteerde elementen bevatten.",
|
||||||
|
"date" => ":attribute is een ongeldige datum.",
|
||||||
"date_format" => ":attribute moet een geldig datum formaat bevatten.",
|
"date_format" => ":attribute moet een geldig datum formaat bevatten.",
|
||||||
"different" => ":attribute en :other moeten verschillend zijn.",
|
"different" => ":attribute en :other moeten verschillend zijn.",
|
||||||
|
"digits" => ":attribute moet :digits cijfers bevatten.",
|
||||||
|
"digits_between" => ":attribute moet minimaal :min en maximaal :max cijfers bevatten.",
|
||||||
"email" => ":attribute is geen geldig e-mailadres.",
|
"email" => ":attribute is geen geldig e-mailadres.",
|
||||||
"exists" => ":attribute bestaat niet.",
|
"exists" => ":attribute bestaat niet.",
|
||||||
"image" => ":attribute moet een afbeelding zijn.",
|
"image" => ":attribute moet een afbeelding zijn.",
|
||||||
@ -54,10 +57,12 @@ return array(
|
|||||||
"string" => ":attribute moet minimaal :min karakters zijn.",
|
"string" => ":attribute moet minimaal :min karakters zijn.",
|
||||||
"array" => ":attribute moet minimaal :min items bevatten."
|
"array" => ":attribute moet minimaal :min items bevatten."
|
||||||
),
|
),
|
||||||
"not_in" => "Het formaat van :attribute is ongeldig.",
|
"not_in" => "Het geselecteerde :attribute is ongeldig.",
|
||||||
"numeric" => ":attribute moet een nummer zijn.",
|
"numeric" => ":attribute moet een nummer zijn.",
|
||||||
"required" => ":attribute is verplicht.",
|
"regex" => ":attribute formaat is ongeldig.",
|
||||||
"required_with" => ":attribute is verplicht i.c.m. :values",
|
"required" => ":attribute is verplicht.",
|
||||||
|
"required_if" => ":attribute is verplicht wanneer in het veld :other gekozen is voor :value.",
|
||||||
|
"required_with" => ":attribute is verplicht wanneer :values ingevuld is.",
|
||||||
"required_with_all" => ":attribute is verplicht i.c.m. :values",
|
"required_with_all" => ":attribute is verplicht i.c.m. :values",
|
||||||
"required_without" => ":attribute is verplicht als :values niet ingevuld is.",
|
"required_without" => ":attribute is verplicht als :values niet ingevuld is.",
|
||||||
"required_without_all" => ":attribute is verplicht als :values niet ingevuld zijn.",
|
"required_without_all" => ":attribute is verplicht als :values niet ingevuld zijn.",
|
||||||
@ -65,7 +70,7 @@ return array(
|
|||||||
"size" => array(
|
"size" => array(
|
||||||
"numeric" => ":attribute moet :size zijn.",
|
"numeric" => ":attribute moet :size zijn.",
|
||||||
"file" => ":attribute moet :size kilobyte zijn.",
|
"file" => ":attribute moet :size kilobyte zijn.",
|
||||||
"string" => ":attribute moet :size characters zijn.",
|
"string" => ":attribute moet :size karakters lang zijn.",
|
||||||
"array" => ":attribute moet :size items bevatten."
|
"array" => ":attribute moet :size items bevatten."
|
||||||
),
|
),
|
||||||
"unique" => ":attribute is al in gebruik.",
|
"unique" => ":attribute is al in gebruik.",
|
||||||
@ -75,9 +80,9 @@ return array(
|
|||||||
"has_credit" => "De klant heeft niet voldoende krediet.",
|
"has_credit" => "De klant heeft niet voldoende krediet.",
|
||||||
"notmasked" => "De waarden zijn verborgen",
|
"notmasked" => "De waarden zijn verborgen",
|
||||||
"less_than" => 'Het :attribute moet minder zijn dan :value',
|
"less_than" => 'Het :attribute moet minder zijn dan :value',
|
||||||
"has_counter" => 'The value must contain {$counter}',
|
"has_counter" => 'De waarde moet {$counter} bevatten',
|
||||||
"valid_contacts" => "All of the contacts must have either an email or name",
|
"valid_contacts" => "Alle contacten moeten een e-mailadres of een naam hebben",
|
||||||
"valid_invoice_items" => "The invoice exceeds the maximum amount",
|
"valid_invoice_items" => "De factuur overschrijd het maximale aantal",
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
NINJA.secondaryColor = $('#secondary_color').val();
|
NINJA.secondaryColor = $('#secondary_color').val();
|
||||||
NINJA.fontSize = parseInt($('#font_size').val());
|
NINJA.fontSize = parseInt($('#font_size').val());
|
||||||
|
|
||||||
var fields = ['item', 'description', 'unit_cost', 'quantity', 'line_total'];
|
var fields = ['item', 'description', 'unit_cost', 'quantity', 'line_total', 'terms'];
|
||||||
invoiceLabels.old = {};
|
invoiceLabels.old = {};
|
||||||
for (var i=0; i<fields.length; i++) {
|
for (var i=0; i<fields.length; i++) {
|
||||||
var field = fields[i];
|
var field = fields[i];
|
||||||
@ -102,12 +102,22 @@
|
|||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
|
||||||
@if (!Utils::isPro() || \App\Models\InvoiceDesign::count() == COUNT_FREE_DESIGNS_SELF_HOST)
|
@if (!Utils::isPro() || \App\Models\InvoiceDesign::count() == COUNT_FREE_DESIGNS_SELF_HOST)
|
||||||
{!! Former::select('invoice_design_id')->style('display:inline')->fromQuery($invoiceDesigns, 'name', 'id')->addOption(trans('texts.more_designs') . '...', '-1') !!}
|
{!! Former::select('invoice_design_id')
|
||||||
|
->style('display:inline; width:300px')
|
||||||
|
->fromQuery($invoiceDesigns, 'name', 'id')
|
||||||
|
->addOption(trans('texts.more_designs') . '...', '-1') !!}
|
||||||
@else
|
@else
|
||||||
{!! Former::select('invoice_design_id')->style('display:inline')->fromQuery($invoiceDesigns, 'name', 'id') !!}
|
{!! Former::select('invoice_design_id')
|
||||||
|
->style('display:inline; width:300px')
|
||||||
|
->fromQuery($invoiceDesigns, 'name', 'id') !!}
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{!! Former::text('font_size')->type('number')->min('0')->step('1') !!}
|
{!! Former::text('font_size')
|
||||||
|
->style('width:300px')
|
||||||
|
->type('number')
|
||||||
|
->min('0')
|
||||||
|
->step('1') !!}
|
||||||
|
|
||||||
{!! Former::text('primary_color') !!}
|
{!! Former::text('primary_color') !!}
|
||||||
{!! Former::text('secondary_color') !!}
|
{!! Former::text('secondary_color') !!}
|
||||||
|
|
||||||
@ -116,13 +126,18 @@
|
|||||||
<div role="tabpanel" class="tab-pane" id="invoiceLabels">
|
<div role="tabpanel" class="tab-pane" id="invoiceLabels">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
{!! Former::text('labels_item')->label(trans('texts.item')) !!}
|
<div class="col-md-6">
|
||||||
{!! Former::text('labels_description')->label(trans('texts.description')) !!}
|
{!! Former::text('labels_item')->label(trans('texts.item')) !!}
|
||||||
{!! Former::text('labels_unit_cost')->label(trans('texts.unit_cost')) !!}
|
{!! Former::text('labels_description')->label(trans('texts.description')) !!}
|
||||||
{!! Former::text('labels_quantity')->label(trans('texts.quantity')) !!}
|
{!! Former::text('labels_unit_cost')->label(trans('texts.unit_cost')) !!}
|
||||||
{!! Former::text('labels_line_total')->label(trans('texts.line_total')) !!}
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
{!! Former::text('labels_quantity')->label(trans('texts.quantity')) !!}
|
||||||
|
{!! Former::text('labels_line_total')->label(trans('texts.line_total')) !!}
|
||||||
|
{!! Former::text('labels_terms')->label(trans('texts.terms')) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<label for="trashed" style="font-weight:normal; margin-left: 10px;">
|
<label for="trashed" style="font-weight:normal; margin-left: 10px;">
|
||||||
<input id="trashed" type="checkbox" onclick="setTrashVisible()"
|
<input id="trashed" type="checkbox" onclick="setTrashVisible()"
|
||||||
{!! Session::get('show_trash:user') ? 'checked' : ''!!}/> {!! trans('texts.show_deleted_users')!!}
|
{!! Session::get('show_trash:user') ? 'checked' : ''!!}/> {!! trans('texts.show_archived_users')!!}
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
@include('partials.bulk_form', ['entityType' => ENTITY_USER])
|
@include('partials.bulk_form', ['entityType' => ENTITY_USER])
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
<div class="form-group" style="margin-bottom: 8px">
|
<div class="form-group" style="margin-bottom: 8px">
|
||||||
<div class="col-lg-8 col-sm-8 col-lg-offset-4 col-sm-offset-4">
|
<div class="col-lg-8 col-sm-8 col-lg-offset-4 col-sm-offset-4">
|
||||||
<a id="createClientLink" class="pointer" data-bind="click: $root.showClientForm, html: $root.clientLinkText"></a>
|
<a id="createClientLink" class="pointer" data-bind="click: $root.showClientForm, html: $root.clientLinkText"></a>
|
||||||
<span data-bind="visible: $root.invoice().client().public_id() > 0">|
|
<span data-bind="visible: $root.invoice().client().public_id() > 0" style="display:none">|
|
||||||
<a data-bind="attr: {href: '{{ url('/clients') }}/' + $root.invoice().client().public_id()}" target="_blank">{{ trans('texts.view_client') }}</a>
|
<a data-bind="attr: {href: '{{ url('/clients') }}/' + $root.invoice().client().public_id()}" target="_blank">{{ trans('texts.view_client') }}</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
@endif
|
@endif
|
||||||
|
|
||||||
var NINJA = NINJA || {};
|
var NINJA = NINJA || {};
|
||||||
@if (Utils::isPro())
|
@if ($account->isPro())
|
||||||
NINJA.primaryColor = "{{ $account->primary_color }}";
|
NINJA.primaryColor = "{{ $account->primary_color }}";
|
||||||
NINJA.secondaryColor = "{{ $account->secondary_color }}";
|
NINJA.secondaryColor = "{{ $account->secondary_color }}";
|
||||||
NINJA.fontSize = {{ $account->font_size }};
|
NINJA.fontSize = {{ $account->font_size }};
|
||||||
|
@ -50,12 +50,20 @@
|
|||||||
return generatePDF(invoice, invoice.invoice_design.javascript, true, cb);
|
return generatePDF(invoice, invoice.invoice_design.javascript, true, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window.hasOwnProperty('pjsc_meta')) {
|
||||||
|
window['pjsc_meta'].remainingTasks++;
|
||||||
|
}
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
@if (Input::has('phantomjs'))
|
@if (Input::has('phantomjs'))
|
||||||
doc = getPDFString();
|
doc = getPDFString();
|
||||||
doc.getDataUrl(function(pdfString) {
|
doc.getDataUrl(function(pdfString) {
|
||||||
document.write(pdfString);
|
document.write(pdfString);
|
||||||
document.close();
|
document.close();
|
||||||
|
|
||||||
|
if (window.hasOwnProperty('pjsc_meta')) {
|
||||||
|
window['pjsc_meta'].remainingTasks--;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
@else
|
@else
|
||||||
refreshPDF();
|
refreshPDF();
|
||||||
|
Loading…
Reference in New Issue
Block a user