diff --git a/.env.example b/.env.example index 18053683d7ba..1ed1ec049cbb 100644 --- a/.env.example +++ b/.env.example @@ -54,6 +54,12 @@ FCM_API_TOKEN= GOOGLE_MAPS_ENABLED=true #GOOGLE_MAPS_API_KEY= +# Create a cookie to stay logged in +#REMEMBER_ME_ENABLED=true + +# The app automatically logs the user out after this number of seconds +#AUTO_LOGOUT_SECONDS=28800 + #S3_KEY= #S3_SECRET= #S3_REGION= @@ -88,5 +94,6 @@ WEPAY_APP_FEE_MULTIPLIER=0.002 WEPAY_APP_FEE_FIXED=0 WEPAY_THEME='{"name":"Invoice Ninja","primary_color":"0b4d78","secondary_color":"0b4d78","background_color":"f8f8f8","button_color":"33b753"}' # See https://www.wepay.com/developer/reference/structures#theme + BLUEVINE_PARTNER_UNIQUE_ID= BLUEVINE_PARTNER_TOKEN= diff --git a/.php_cs.dist b/.php_cs.dist new file mode 100644 index 000000000000..568722c566f7 --- /dev/null +++ b/.php_cs.dist @@ -0,0 +1,98 @@ +notPath('bootstrap/cache') + ->notPath('storage') + ->notPath('vendor') + ->in(__DIR__) + ->name('*.php') + ->notName('*.blade.php') + ->ignoreDotFiles(true) + ->ignoreVCS(true); + +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + 'binary_operator_spaces' => true, + 'blank_line_after_namespace' => true, + 'blank_line_after_opening_tag' => true, + 'blank_line_before_return' => true, + 'braces' => true, + 'cast_spaces' => true, + 'class_definition' => true, + 'elseif' => true, + 'encoding' => true, + 'full_opening_tag' => true, + 'function_declaration' => true, + 'function_typehint_space' => true, + 'hash_to_slash_comment' => true, + 'heredoc_to_nowdoc' => true, + 'include' => true, + 'linebreak_after_opening_tag' => true, + 'lowercase_cast' => true, + 'lowercase_constants' => true, + 'lowercase_keywords' => true, + 'method_argument_space' => true, + 'method_separation' => true, + 'native_function_casing' => true, + 'new_with_braces' => true, + 'no_alias_functions' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_closing_tag' => true, + 'no_empty_phpdoc' => true, + 'no_extra_consecutive_blank_lines' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_multiline_whitespace_before_semicolons' => true, + 'no_short_bool_cast' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_inside_parenthesis' => true, + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unreachable_default_argument_value' => true, + 'no_unused_imports' => true, + 'no_useless_return' => true, + 'no_whitespace_before_comma_in_array' => true, + 'not_operator_with_successor_space' => true, + 'object_operator_without_whitespace' => true, + 'ordered_imports' => true, + 'phpdoc_add_missing_param_annotation' => true, + 'phpdoc_align' => true, + 'phpdoc_indent' => true, + 'phpdoc_inline_tag' => true, + 'phpdoc_no_access' => true, + 'phpdoc_no_package' => true, + 'phpdoc_order' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_summary' => true, + 'phpdoc_to_comment' => true, + 'phpdoc_trim' => true, + 'phpdoc_types' => true, + 'phpdoc_var_without_name' => true, + 'self_accessor' => true, + 'short_scalar_cast' => true, + 'single_blank_line_at_eof' => true, + 'single_blank_line_before_namespace' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_quote' => true, + 'space_after_semicolon' => true, + 'standardize_not_equals' => true, + 'switch_case_semicolon_to_colon' => true, + 'switch_case_space' => true, + 'ternary_operator_spaces' => true, + 'trailing_comma_in_multiline_array' => true, + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => true, + 'whitespace_after_comma_in_array' => true, + 'array_syntax' => array('syntax' => 'short'), + ]) + ->setFinder($finder); diff --git a/.travis.yml b/.travis.yml index 5eaa04417349..92bf4064b384 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,6 +49,7 @@ before_script: - php artisan key:generate --no-interaction - sed -i 's/APP_ENV=production/APP_ENV=development/g' .env - sed -i 's/APP_DEBUG=false/APP_DEBUG=true/g' .env + - sed -i 's/MAIL_DRIVER=smtp/MAIL_DRIVER=log/g' .env - sed -i '$a NINJA_DEV=true' .env - sed -i '$a TRAVIS=true' .env # create the database and user diff --git a/LICENSE b/LICENSE index a3f780707e33..3170777e2dcf 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016 by Hillel Coren +Copyright (c) 2017 by Hillel Coren Invoice Ninja * https://www.invoiceninja.com "CREATE. SEND. GET PAID" diff --git a/README.md b/README.md index 558472ba6bf6..53188aa1fc6b 100644 --- a/README.md +++ b/README.md @@ -61,9 +61,9 @@ The [self-host zip](https://www.invoiceninja.com/self-host/) includes all third * [Feature Roadmap](https://trello.com/b/63BbiVVe/) ## Development -* [Custom Module](http://docs.invoiceninja.com/en/latest/custom_modules.html) | [Watch Video](https://www.youtube.com/watch?v=8jJ-PYuq85k) -* [PHP SDK](https://github.com/invoiceninja/sdk-php) * [API Documentation](https://www.invoiceninja.com/api-documentation/) +* [PHP SDK](https://github.com/invoiceninja/sdk-php) +* [Custom Module](http://docs.invoiceninja.com/en/latest/custom_modules.html) | [Watch Video](https://www.youtube.com/watch?v=8jJ-PYuq85k) ## Contributing All contributors are welcome! diff --git a/app/Commands/Command.php b/app/Commands/Command.php index d6a8d61150ae..3b33ca89d1b8 100644 --- a/app/Commands/Command.php +++ b/app/Commands/Command.php @@ -1,6 +1,7 @@ -client->public_id); - if ( ! $account) { + if (! $account) { continue; } $company = $account->company; - if ( ! $company->plan || $company->plan == PLAN_FREE) { + if (! $company->plan || $company->plan == PLAN_FREE) { continue; } $this->info("Charging invoice {$invoice->invoice_number}"); - if ( ! $this->paymentService->autoBillInvoice($invoice)) { + if (! $this->paymentService->autoBillInvoice($invoice)) { $this->info('Failed to auto-bill, emailing invoice'); $this->mailer->sendInvoice($invoice); } diff --git a/app/Console/Commands/CheckData.php b/app/Console/Commands/CheckData.php index c5f2d8e2aed3..dca1327f40ac 100644 --- a/app/Console/Commands/CheckData.php +++ b/app/Console/Commands/CheckData.php @@ -1,11 +1,13 @@ -logMessage(date('Y-m-d') . ' Running CheckData...'); - if (!$this->option('client_id')) { + if (! $this->option('client_id')) { $this->checkPaidToDate(); $this->checkBlankInvoiceHistory(); } $this->checkBalances(); - if (!$this->option('client_id')) { + if (! $this->option('client_id')) { + $this->checkFailedJobs(); $this->checkAccountData(); } @@ -79,7 +81,7 @@ class CheckData extends Command { Mail::raw($this->log, function ($message) use ($errorEmail) { $message->to($errorEmail) ->from(CONTACT_EMAIL) - ->subject('Check-Data'); + ->subject('Check-Data: ' . strtoupper($this->isValid ? RESULT_SUCCESS : RESULT_FAILURE)); }); } } @@ -89,6 +91,17 @@ class CheckData extends Command { $this->log .= $str . "\n"; } + private function checkFailedJobs() + { + $count = DB::table('failed_jobs')->count(); + + if ($count > 0) { + $this->isValid = false; + } + + $this->logMessage($count . ' failed jobs'); + } + private function checkBlankInvoiceHistory() { $count = DB::table('activities') @@ -113,33 +126,33 @@ class CheckData extends Command { ENTITY_CONTACT, ENTITY_PAYMENT, ENTITY_INVITATION, - ENTITY_USER + ENTITY_USER, ], 'invoices' => [ ENTITY_CLIENT, - ENTITY_USER + ENTITY_USER, ], 'payments' => [ ENTITY_INVOICE, ENTITY_CLIENT, ENTITY_USER, ENTITY_INVITATION, - ENTITY_CONTACT + ENTITY_CONTACT, ], 'tasks' => [ ENTITY_INVOICE, ENTITY_CLIENT, - ENTITY_USER + ENTITY_USER, ], 'credits' => [ ENTITY_CLIENT, - ENTITY_USER + ENTITY_USER, ], 'expenses' => [ ENTITY_CLIENT, ENTITY_VENDOR, ENTITY_INVOICE, - ENTITY_USER + ENTITY_USER, ], 'products' => [ ENTITY_USER, @@ -150,7 +163,7 @@ class CheckData extends Command { 'projects' => [ ENTITY_USER, ENTITY_CLIENT, - ] + ], ]; foreach ($tables as $table => $entityTypes) { @@ -249,7 +262,6 @@ class CheckData extends Command { //$this->logMessage(var_dump($activities)); foreach ($activities as $activity) { - $activityFix = false; if ($activity->invoice_id) { @@ -258,7 +270,7 @@ class CheckData extends Command { ->first(['invoices.amount', 'invoices.is_recurring', 'invoices.invoice_type_id', 'invoices.deleted_at', 'invoices.id', 'invoices.is_deleted']); // Check if this invoice was once set as recurring invoice - if ($invoice && !$invoice->is_recurring && DB::table('invoices') + if ($invoice && ! $invoice->is_recurring && DB::table('invoices') ->where('recurring_invoice_id', '=', $activity->invoice_id) ->first(['invoices.id'])) { $invoice->is_recurring = 1; @@ -272,7 +284,6 @@ class CheckData extends Command { } } - if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_INVOICE || $activity->activity_type_id == ACTIVITY_TYPE_CREATE_QUOTE) { @@ -293,12 +304,12 @@ class CheckData extends Command { // **Fix for ninja invoices which didn't have the invoice_type_id value set if ($noAdjustment && $client->account_id == 20432) { - $this->logMessage("No adjustment for ninja invoice"); + $this->logMessage('No adjustment for ninja invoice'); $foundProblem = true; $clientFix += $invoice->amount; $activityFix = $invoice->amount; // **Fix for allowing converting a recurring invoice to a normal one without updating the balance** - } elseif ($noAdjustment && $invoice->invoice_type_id == INVOICE_TYPE_STANDARD && !$invoice->is_recurring) { + } elseif ($noAdjustment && $invoice->invoice_type_id == INVOICE_TYPE_STANDARD && ! $invoice->is_recurring) { $this->logMessage("No adjustment for new invoice:{$activity->invoice_id} amount:{$invoice->amount} invoiceTypeId:{$invoice->invoice_type_id} isRecurring:{$invoice->is_recurring}"); $foundProblem = true; $clientFix += $invoice->amount; @@ -322,7 +333,7 @@ class CheckData extends Command { } } elseif ($activity->activity_type_id == ACTIVITY_TYPE_ARCHIVE_INVOICE) { // **Fix for updating balance when archiving an invoice** - if ($activity->adjustment != 0 && !$invoice->is_recurring) { + if ($activity->adjustment != 0 && ! $invoice->is_recurring) { $this->logMessage("Incorrect adjustment for archiving invoice adjustment:{$activity->adjustment}"); $foundProblem = true; $activityFix = 0; @@ -335,7 +346,7 @@ class CheckData extends Command { $foundProblem = true; $clientFix -= $activity->adjustment; $activityFix = 0; - } else if ((strtotime($activity->created_at) - strtotime($lastCreatedAt) <= 1) && $activity->adjustment > 0 && $activity->adjustment == $lastAdjustment) { + } elseif ((strtotime($activity->created_at) - strtotime($lastCreatedAt) <= 1) && $activity->adjustment > 0 && $activity->adjustment == $lastAdjustment) { $this->logMessage("Duplicate adjustment for updated invoice adjustment:{$activity->adjustment}"); $foundProblem = true; $clientFix -= $activity->adjustment; @@ -349,7 +360,7 @@ class CheckData extends Command { $clientFix += $lastBalance - $activity->balance; $activityFix = 0; } - } else if ($activity->activity_type_id == ACTIVITY_TYPE_DELETE_PAYMENT) { + } elseif ($activity->activity_type_id == ACTIVITY_TYPE_DELETE_PAYMENT) { // **Fix for deleting payment after deleting invoice** if ($activity->adjustment != 0 && $invoice->is_deleted && $activity->created_at > $invoice->deleted_at) { $this->logMessage("Incorrect adjustment for deleted payment adjustment:{$activity->adjustment}"); @@ -361,7 +372,7 @@ class CheckData extends Command { if ($activityFix !== false || $clientFix !== false) { $data = [ - 'balance' => $activity->balance + $clientFix + 'balance' => $activity->balance + $clientFix, ]; if ($activityFix !== false) { @@ -384,8 +395,8 @@ class CheckData extends Command { $this->logMessage("** Creating 'recovered update' activity **"); if ($this->option('fix') == 'true') { DB::table('activities')->insert([ - 'created_at' => new Carbon, - 'updated_at' => new Carbon, + 'created_at' => new Carbon(), + 'updated_at' => new Carbon(), 'account_id' => $client->account_id, 'client_id' => $client->id, 'adjustment' => $client->actual_balance - $activity->balance, @@ -422,5 +433,4 @@ class CheckData extends Command { ['client_id', null, InputOption::VALUE_OPTIONAL, 'Client id', null], ]; } - } diff --git a/app/Console/Commands/CreateTestData.php b/app/Console/Commands/CreateTestData.php index 244f0b93fbd7..7e339643e182 100644 --- a/app/Console/Commands/CreateTestData.php +++ b/app/Console/Commands/CreateTestData.php @@ -1,17 +1,19 @@ -count; $i++) { + for ($i = 0; $i < $this->count; $i++) { $data = [ 'name' => $this->faker->name, 'address1' => $this->faker->streetAddress, @@ -91,7 +94,7 @@ class CreateTestData extends Command 'last_name' => $this->faker->lastName, 'email' => $this->faker->safeEmail, 'phone' => $this->faker->phoneNumber, - ]] + ]], ]; $client = $this->clientRepo->save($data); @@ -106,7 +109,7 @@ class CreateTestData extends Command */ private function createInvoices($client) { - for ($i=0; $i<$this->count; $i++) { + for ($i = 0; $i < $this->count; $i++) { $data = [ 'client_id' => $client->id, 'invoice_date_sql' => date_create()->modify(rand(-100, 100) . ' days')->format('Y-m-d'), @@ -115,8 +118,8 @@ class CreateTestData extends Command 'product_key' => $this->faker->word, 'qty' => $this->faker->randomDigit + 1, 'cost' => $this->faker->randomFloat(2, 1, 10), - 'notes' => $this->faker->text($this->faker->numberBetween(50, 300)) - ]] + 'notes' => $this->faker->text($this->faker->numberBetween(50, 300)), + ]], ]; $invoice = $this->invoiceRepo->save($data); @@ -146,7 +149,7 @@ class CreateTestData extends Command private function createVendors() { - for ($i=0; $i<$this->count; $i++) { + for ($i = 0; $i < $this->count; $i++) { $data = [ 'name' => $this->faker->name, 'address1' => $this->faker->streetAddress, @@ -159,7 +162,7 @@ class CreateTestData extends Command 'last_name' => $this->faker->lastName, 'email' => $this->faker->safeEmail, 'phone' => $this->faker->phoneNumber, - ]] + ]], ]; $vendor = $this->vendorRepo->save($data); @@ -174,7 +177,7 @@ class CreateTestData extends Command */ private function createExpense($vendor) { - for ($i=0; $i<$this->count; $i++) { + for ($i = 0; $i < $this->count; $i++) { $data = [ 'vendor_id' => $vendor->id, 'amount' => $this->faker->randomFloat(2, 1, 10), diff --git a/app/Console/Commands/GenerateResources.php b/app/Console/Commands/GenerateResources.php index 9826f3c70b07..17e139188caf 100644 --- a/app/Console/Commands/GenerateResources.php +++ b/app/Console/Commands/GenerateResources.php @@ -1,10 +1,12 @@ -comment(PHP_EOL.Inspiring::quote().PHP_EOL); - } + /** + * The console command description. + * + * @var string + */ + protected $description = 'Display an inspiring quote'; + /** + * Execute the console command. + * + * @return mixed + */ + public function handle() + { + $this->comment(PHP_EOL.Inspiring::quote().PHP_EOL); + } } diff --git a/app/Console/Commands/MakeClass.php b/app/Console/Commands/MakeClass.php index 83b99fa62b30..8f1a5c7699a6 100644 --- a/app/Console/Commands/MakeClass.php +++ b/app/Console/Commands/MakeClass.php @@ -2,14 +2,14 @@ namespace App\Console\Commands; -use Illuminate\Support\Str; use Illuminate\Console\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputOption; - +use Illuminate\Support\Str; use Nwidart\Modules\Commands\GeneratorCommand; use Nwidart\Modules\Support\Stub; + use Nwidart\Modules\Traits\ModuleCommandTrait; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputOption; class MakeClass extends GeneratorCommand { @@ -48,20 +48,19 @@ class MakeClass extends GeneratorCommand */ protected function getOptions() { - return array( - array('fields', null, InputOption::VALUE_OPTIONAL, 'The model attributes.', null), - array('filename', null, InputOption::VALUE_OPTIONAL, 'The class filename.', null), - ); + return [ + ['fields', null, InputOption::VALUE_OPTIONAL, 'The model attributes.', null], + ['filename', null, InputOption::VALUE_OPTIONAL, 'The class filename.', null], + ]; } - public function getTemplateContents() { $module = $this->laravel['modules']->findOrFail($this->getModuleName()); $path = str_replace('/', '\\', config('modules.paths.generator.' . $this->argument('class'))); return (new Stub('/' . $this->argument('prefix') . $this->argument('class') . '.stub', [ - 'NAMESPACE' => $this->getClassNamespace($module) . "\\" . $path, + 'NAMESPACE' => $this->getClassNamespace($module) . '\\' . $path, 'LOWER_NAME' => $module->getLowerName(), 'CLASS' => $this->getClass(), 'STUDLY_NAME' => Str::studly($module->getLowerName()), @@ -88,6 +87,7 @@ class MakeClass extends GeneratorCommand if ($this->option('filename')) { return $this->option('filename'); } + return studly_case($this->argument('prefix')) . studly_case($this->argument('name')) . Str::studly($this->argument('class')); } @@ -98,7 +98,7 @@ class MakeClass extends GeneratorCommand $str = ''; foreach ($fields as $field) { - if ( ! $field) { + if (! $field) { continue; } $field = explode(':', $field)[0]; @@ -120,7 +120,7 @@ class MakeClass extends GeneratorCommand $str = ''; foreach ($fields as $field) { - if ( ! $field) { + if (! $field) { continue; } $parts = explode(':', $field); @@ -144,7 +144,7 @@ class MakeClass extends GeneratorCommand $str = ''; foreach ($fields as $field) { - if ( ! $field) { + if (! $field) { continue; } $field = explode(':', $field)[0]; @@ -161,7 +161,7 @@ class MakeClass extends GeneratorCommand $str = ''; foreach ($fields as $field) { - if ( ! $field) { + if (! $field) { continue; } $field = explode(':', $field)[0]; @@ -169,6 +169,5 @@ class MakeClass extends GeneratorCommand } return rtrim($str); - } } diff --git a/app/Console/Commands/MakeModule.php b/app/Console/Commands/MakeModule.php index b96cb9ea7674..88291b78c50f 100644 --- a/app/Console/Commands/MakeModule.php +++ b/app/Console/Commands/MakeModule.php @@ -45,10 +45,10 @@ class MakeModule extends Command // convert 'name:string,description:text' to 'name,description' $fillable = explode(',', $fields); - $fillable = array_map(function($item) { + $fillable = array_map(function ($item) { return explode(':', $item)[0]; }, $fillable); - $fillable = join(',', $fillable); + $fillable = implode(',', $fillable); $this->info("Creating module: {$name}..."); @@ -77,22 +77,21 @@ class MakeModule extends Command Artisan::call('module:dump'); - $this->info("Done"); + $this->info('Done'); } protected function getArguments() { return [ ['name', InputArgument::REQUIRED, 'The name of the module.'], - ['fields', InputArgument::OPTIONAL, 'The fields of the module.'] + ['fields', InputArgument::OPTIONAL, 'The fields of the module.'], ]; } protected function getOptions() { - return array( - array('migrate', null, InputOption::VALUE_OPTIONAL, 'The model attributes.', null), - ); + return [ + ['migrate', null, InputOption::VALUE_OPTIONAL, 'The model attributes.', null], + ]; } - } diff --git a/app/Console/Commands/PruneData.php b/app/Console/Commands/PruneData.php index 1c04e1ab5fcf..33d2bd64c0a9 100644 --- a/app/Console/Commands/PruneData.php +++ b/app/Console/Commands/PruneData.php @@ -1,10 +1,12 @@ -info("Deleting {$result->id}"); + $this->info("Deleting {$result->id}"); DB::table('accounts') ->where('id', '=', $result->id) ->delete(); diff --git a/app/Console/Commands/RemoveOrphanedDocuments.php b/app/Console/Commands/RemoveOrphanedDocuments.php index edcb864564bc..489d8d94421f 100644 --- a/app/Console/Commands/RemoveOrphanedDocuments.php +++ b/app/Console/Commands/RemoveOrphanedDocuments.php @@ -1,11 +1,13 @@ -info(date('Y-m-d') . ' Running ResetData...'); - if (!Utils::isNinjaDev()) { + if (! Utils::isNinjaDev()) { return; } @@ -32,4 +32,4 @@ class ResetData extends Command Artisan::call('migrate'); Artisan::call('db:seed'); } -} \ No newline at end of file +} diff --git a/app/Console/Commands/ResetInvoiceSchemaCounter.php b/app/Console/Commands/ResetInvoiceSchemaCounter.php index ed849a25a26f..be221c4d6390 100644 --- a/app/Console/Commands/ResetInvoiceSchemaCounter.php +++ b/app/Console/Commands/ResetInvoiceSchemaCounter.php @@ -62,9 +62,9 @@ class ResetInvoiceSchemaCounter extends Command $latestInvoice = $this->invoice->latest()->first(); $invoiceYear = Carbon::parse($latestInvoice->created_at)->year; - if(Carbon::now()->year > $invoiceYear || $force) { + if (Carbon::now()->year > $invoiceYear || $force) { $accounts->transform(function ($a) { - /** @var Account $a */ + /* @var Account $a */ $a->invoice_number_counter = 1; $a->update(); }); diff --git a/app/Console/Commands/SendRecurringInvoices.php b/app/Console/Commands/SendRecurringInvoices.php index 3a546f187edf..88b317df5a69 100644 --- a/app/Console/Commands/SendRecurringInvoices.php +++ b/app/Console/Commands/SendRecurringInvoices.php @@ -1,14 +1,16 @@ -shouldSendToday(); $this->info('Processing Invoice '.$recurInvoice->id.' - Should send '.($shouldSendToday ? 'YES' : 'NO')); - if ( ! $shouldSendToday) { + if (! $shouldSendToday) { continue; } $recurInvoice->account->loadLocalizationSettings($recurInvoice->client); $invoice = $this->invoiceRepo->createRecurringInvoice($recurInvoice); - if ($invoice && !$invoice->isPaid()) { + if ($invoice && ! $invoice->isPaid()) { $this->info('Sending Invoice'); $this->mailer->sendInvoice($invoice); } diff --git a/app/Console/Commands/SendReminders.php b/app/Console/Commands/SendReminders.php index bdb239deff70..af5f9bfca2c2 100644 --- a/app/Console/Commands/SendReminders.php +++ b/app/Console/Commands/SendReminders.php @@ -1,13 +1,15 @@ -hasFeature(FEATURE_EMAIL_TEMPLATES_REMINDERS)) { + if (! $account->hasFeature(FEATURE_EMAIL_TEMPLATES_REMINDERS)) { continue; } @@ -77,6 +80,14 @@ class SendReminders extends Command } $this->info('Done'); + + if ($errorEmail = env('ERROR_EMAIL')) { + \Mail::raw('EOM', function ($message) use ($errorEmail) { + $message->to($errorEmail) + ->from(CONTACT_EMAIL) + ->subject('SendReminders: Finished successfully'); + }); + } } /** diff --git a/app/Console/Commands/SendRenewalInvoices.php b/app/Console/Commands/SendRenewalInvoices.php index 2751e151c099..edfc2471b31d 100644 --- a/app/Console/Commands/SendRenewalInvoices.php +++ b/app/Console/Commands/SendRenewalInvoices.php @@ -1,13 +1,15 @@ -info(count($companies).' companies found renewing in 10 days'); foreach ($companies as $company) { - if (!count($company->accounts)) { + if (! count($company->accounts)) { continue; } @@ -74,7 +76,7 @@ class SendRenewalInvoices extends Command $plan['price'] = min($company->pending_plan_price, Utils::getPlanPrice($plan)); } - if ($plan['plan'] == PLAN_FREE || !$plan['plan'] || !$plan['term'] || !$plan['price']){ + if ($plan['plan'] == PLAN_FREE || ! $plan['plan'] || ! $plan['term'] || ! $plan['price']) { continue; } diff --git a/app/Console/Commands/TestOFX.php b/app/Console/Commands/TestOFX.php index d21518cba7ef..08246c5f7c1b 100644 --- a/app/Console/Commands/TestOFX.php +++ b/app/Console/Commands/TestOFX.php @@ -1,10 +1,12 @@ -info(date('Y-m-d').' Running TestOFX...'); } -} \ No newline at end of file +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index deab7b163c53..14b26d80f515 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -1,8 +1,10 @@ - ['card' => 'images/credit_cards/Test-MasterCard-Icon.png', 'text' => 'Master Card'], 4 => ['card' => 'images/credit_cards/Test-AmericanExpress-Icon.png', 'text' => 'American Express'], 8 => ['card' => 'images/credit_cards/Test-Diners-Icon.png', 'text' => 'Diners'], - 16 => ['card' => 'images/credit_cards/Test-Discover-Icon.png', 'text' => 'Discover'] + 16 => ['card' => 'images/credit_cards/Test-Discover-Icon.png', 'text' => 'Discover'], ]; define('CREDIT_CARDS', serialize($creditCards)); @@ -540,7 +545,6 @@ if (!defined('APP_NAME')) ]; define('CACHED_TABLES', serialize($cachedTables)); - // TODO remove these translation functions function uctrans($text) { @@ -557,6 +561,7 @@ if (!defined('APP_NAME')) } else { $string = trans($text); $english = trans($text, [], 'en'); + return $string != $english ? $string : ''; } } @@ -564,12 +569,12 @@ if (!defined('APP_NAME')) // include modules in translations function mtrans($entityType, $text = false) { - if ( ! $text) { + if (! $text) { $text = $entityType; } // check if this has been translated in a module language file - if ( ! Utils::isNinjaProd() && $module = Module::find($entityType)) { + if (! Utils::isNinjaProd() && $module = Module::find($entityType)) { $key = "{$module->getLowerName()}::texts.{$text}"; $value = trans($key); if ($key != $value) { diff --git a/app/Constants/Domain.php b/app/Constants/Domain.php index afdcbf90c52e..d8a0ff9b043f 100644 --- a/app/Constants/Domain.php +++ b/app/Constants/Domain.php @@ -1,4 +1,6 @@ -credit = $credit; } - } diff --git a/app/Events/CreditWasCreated.php b/app/Events/CreditWasCreated.php index 81ba63c450ca..81ca47d630ed 100644 --- a/app/Events/CreditWasCreated.php +++ b/app/Events/CreditWasCreated.php @@ -1,11 +1,12 @@ -credit = $credit; } - } diff --git a/app/Events/CreditWasDeleted.php b/app/Events/CreditWasDeleted.php index c5f585fcf338..e1b9ee117b88 100644 --- a/app/Events/CreditWasDeleted.php +++ b/app/Events/CreditWasDeleted.php @@ -1,14 +1,16 @@ -credit = $credit; } - } diff --git a/app/Events/CreditWasRestored.php b/app/Events/CreditWasRestored.php index a80c9e729b5f..87a82ff951b4 100644 --- a/app/Events/CreditWasRestored.php +++ b/app/Events/CreditWasRestored.php @@ -1,15 +1,16 @@ -credit = $credit; } - } diff --git a/app/Events/Event.php b/app/Events/Event.php index 76e730a4b8e8..caf34813678d 100644 --- a/app/Events/Event.php +++ b/app/Events/Event.php @@ -1,4 +1,6 @@ -expense = $expense; } - } diff --git a/app/Events/ExpenseWasCreated.php b/app/Events/ExpenseWasCreated.php index edaca9c00a82..f850c60050a5 100644 --- a/app/Events/ExpenseWasCreated.php +++ b/app/Events/ExpenseWasCreated.php @@ -1,10 +1,12 @@ -expense = $expense; } - } diff --git a/app/Events/ExpenseWasRestored.php b/app/Events/ExpenseWasRestored.php index 142f41d7e9ec..2c0d17e84210 100644 --- a/app/Events/ExpenseWasRestored.php +++ b/app/Events/ExpenseWasRestored.php @@ -1,11 +1,12 @@ -expense = $expense; } - } diff --git a/app/Events/ExpenseWasUpdated.php b/app/Events/ExpenseWasUpdated.php index 469a258ba1aa..79367890d10f 100644 --- a/app/Events/ExpenseWasUpdated.php +++ b/app/Events/ExpenseWasUpdated.php @@ -1,10 +1,12 @@ -invitation = $invitation; $this->notes = $notes; } - } diff --git a/app/Events/InvoiceInvitationWasViewed.php b/app/Events/InvoiceInvitationWasViewed.php index 0897895a7a82..446f3472300b 100644 --- a/app/Events/InvoiceInvitationWasViewed.php +++ b/app/Events/InvoiceInvitationWasViewed.php @@ -1,15 +1,17 @@ -invoice = $invoice; } - } diff --git a/app/Events/InvoiceWasCreated.php b/app/Events/InvoiceWasCreated.php index b78d7f769f3f..2c8d65515aa7 100644 --- a/app/Events/InvoiceWasCreated.php +++ b/app/Events/InvoiceWasCreated.php @@ -1,10 +1,12 @@ -invoice = $invoice; } - } diff --git a/app/Events/InvoiceWasDeleted.php b/app/Events/InvoiceWasDeleted.php index 792e693eb4eb..172c885ad59c 100644 --- a/app/Events/InvoiceWasDeleted.php +++ b/app/Events/InvoiceWasDeleted.php @@ -1,10 +1,12 @@ -invoice = $invoice; $this->fromDeleted = $fromDeleted; } - } diff --git a/app/Events/InvoiceWasUpdated.php b/app/Events/InvoiceWasUpdated.php index f929b3d5bef8..5bd8c65f2ff8 100644 --- a/app/Events/InvoiceWasUpdated.php +++ b/app/Events/InvoiceWasUpdated.php @@ -1,10 +1,12 @@ -payment = $payment; } - } diff --git a/app/Events/PaymentFailed.php b/app/Events/PaymentFailed.php index 445b8ba5beaf..3c82659c30da 100644 --- a/app/Events/PaymentFailed.php +++ b/app/Events/PaymentFailed.php @@ -1,10 +1,12 @@ -payment = $payment; } - } diff --git a/app/Events/PaymentWasCreated.php b/app/Events/PaymentWasCreated.php index 98e95ae43a70..c4480acb7c48 100644 --- a/app/Events/PaymentWasCreated.php +++ b/app/Events/PaymentWasCreated.php @@ -1,14 +1,16 @@ -invitation = $invitation; $this->notes = $notes; } - } diff --git a/app/Events/QuoteInvitationWasViewed.php b/app/Events/QuoteInvitationWasViewed.php index 87f5da2a0bb0..048a1ad4ad84 100644 --- a/app/Events/QuoteInvitationWasViewed.php +++ b/app/Events/QuoteInvitationWasViewed.php @@ -1,14 +1,16 @@ -quote = $quote; } - } diff --git a/app/Events/QuoteWasCreated.php b/app/Events/QuoteWasCreated.php index 8077ea671634..3b294056eabf 100644 --- a/app/Events/QuoteWasCreated.php +++ b/app/Events/QuoteWasCreated.php @@ -1,9 +1,11 @@ -quote = $quote; } - } diff --git a/app/Events/TaskWasArchived.php b/app/Events/TaskWasArchived.php index 74a7d1e4f6be..879430d2de05 100644 --- a/app/Events/TaskWasArchived.php +++ b/app/Events/TaskWasArchived.php @@ -1,10 +1,12 @@ -task = $task; } - } diff --git a/app/Events/TaskWasCreated.php b/app/Events/TaskWasCreated.php index af1fc5c27df3..ffdedb2f0bc3 100644 --- a/app/Events/TaskWasCreated.php +++ b/app/Events/TaskWasCreated.php @@ -1,11 +1,12 @@ -task = $task; } - } diff --git a/app/Events/TaskWasRestored.php b/app/Events/TaskWasRestored.php index 58891f6e3d85..438fe0dcd1f5 100644 --- a/app/Events/TaskWasRestored.php +++ b/app/Events/TaskWasRestored.php @@ -1,11 +1,12 @@ -task = $task; } - } diff --git a/app/Events/TaskWasUpdated.php b/app/Events/TaskWasUpdated.php index 608f57ea7c2b..e79f9bbc7f10 100644 --- a/app/Events/TaskWasUpdated.php +++ b/app/Events/TaskWasUpdated.php @@ -1,11 +1,12 @@ -path() != 'get_started') { // https://gist.github.com/jrmadsen67/bd0f9ad0ef1ed6bb594e @@ -79,35 +82,32 @@ class Handler extends ExceptionHandler ->back() ->withInput($request->except('password', '_token')) ->with([ - 'warning' => trans('texts.token_expired') + 'warning' => trans('texts.token_expired'), ]); } } - if($this->isHttpException($e)) - { - switch ($e->getStatusCode()) - { + if ($this->isHttpException($e)) { + switch ($e->getStatusCode()) { // not found case 404: - if($request->header('X-Ninja-Token') != '') { + if ($request->header('X-Ninja-Token') != '') { //API request which has hit a route which does not exist - $error['error'] = ['message'=>'Route does not exist']; + $error['error'] = ['message' => 'Route does not exist']; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); return response()->make($error, 404, $headers); - } break; // internal error case '500': - if($request->header('X-Ninja-Token') != '') { + if ($request->header('X-Ninja-Token') != '') { //API request which produces 500 error - $error['error'] = ['message'=>'Internal Server Error']; + $error['error'] = ['message' => 'Internal Server Error']; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); @@ -120,17 +120,17 @@ class Handler extends ExceptionHandler // In production, except for maintenance mode, we'll show a custom error screen if (Utils::isNinjaProd() - && !Utils::isDownForMaintenance() - && !($e instanceof HttpResponseException) - && !($e instanceof ValidationException)) { + && ! Utils::isDownForMaintenance() + && ! ($e instanceof HttpResponseException) + && ! ($e instanceof ValidationException)) { $data = [ 'error' => get_class($e), 'hideHeader' => true, ]; - return response()->view('error', $data); + return response()->view('error', $data, 500); } else { return parent::render($request, $e); } - } + } } diff --git a/app/Handlers/InvoiceEventHandler.php b/app/Handlers/InvoiceEventHandler.php index 924a9590ee36..74c410880da4 100644 --- a/app/Handlers/InvoiceEventHandler.php +++ b/app/Handlers/InvoiceEventHandler.php @@ -1,51 +1,51 @@ -userMailer = $userMailer; - $this->contactMailer = $contactMailer; - } + public function __construct(UserMailer $userMailer, ContactMailer $contactMailer) + { + $this->userMailer = $userMailer; + $this->contactMailer = $contactMailer; + } - public function subscribe($events) - { - $events->listen('invoice.sent', 'InvoiceEventHandler@onSent'); - $events->listen('invoice.viewed', 'InvoiceEventHandler@onViewed'); - $events->listen('invoice.paid', 'InvoiceEventHandler@onPaid'); - } + public function subscribe($events) + { + $events->listen('invoice.sent', 'InvoiceEventHandler@onSent'); + $events->listen('invoice.viewed', 'InvoiceEventHandler@onViewed'); + $events->listen('invoice.paid', 'InvoiceEventHandler@onPaid'); + } - public function onSent($invoice) - { - $this->sendNotifications($invoice, 'sent'); - } + public function onSent($invoice) + { + $this->sendNotifications($invoice, 'sent'); + } - public function onViewed($invoice) - { - $this->sendNotifications($invoice, 'viewed'); - } + public function onViewed($invoice) + { + $this->sendNotifications($invoice, 'viewed'); + } - public function onPaid($payment) - { - $this->contactMailer->sendPaymentConfirmation($payment); + public function onPaid($payment) + { + $this->contactMailer->sendPaymentConfirmation($payment); - $this->sendNotifications($payment->invoice, 'paid', $payment); - } + $this->sendNotifications($payment->invoice, 'paid', $payment); + } - private function sendNotifications($invoice, $type, $payment = null) - { - foreach ($invoice->account->users as $user) - { - if ($user->{'notify_' . $type}) - { + private function sendNotifications($invoice, $type, $payment = null) + { + foreach ($invoice->account->users as $user) { + if ($user->{'notify_' . $type}) { $this->userMailer->sendNotification($user, $invoice, $type, $payment); - } - } - } -} \ No newline at end of file + } + } + } +} diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index e63cc24d7790..cceb58a2502f 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -1,20 +1,22 @@ -accountRepo->create($request->first_name, $request->last_name, $request->email, $request->password); $user = $account->users()->first(); @@ -52,7 +53,8 @@ class AccountApiController extends BaseAPIController return $this->processLogin($request); } else { sleep(ERROR_DELAY); - return $this->errorResponse(['message'=>'Invalid credentials'],401); + + return $this->errorResponse(['message' => 'Invalid credentials'], 401); } } @@ -114,20 +116,18 @@ class AccountApiController extends BaseAPIController $account = Auth::user()->account; //scan if this user has a token already registered (tokens can change, so we need to use the users email as key) - $devices = json_decode($account->devices,TRUE); + $devices = json_decode($account->devices, true); - - for($x=0; $xusername) { - $devices[$x]['token'] = $request->token; //update + for ($x = 0; $x < count($devices); $x++) { + if ($devices[$x]['email'] == Auth::user()->username) { + $devices[$x]['token'] = $request->token; //update $account->devices = json_encode($devices); - $account->save(); - $devices[$x]['account_key'] = $account->account_key; + $account->save(); + $devices[$x]['account_key'] = $account->account_key; - return $this->response($devices[$x]); - } + return $this->response($devices[$x]); } + } //User does not have a device, create new record @@ -136,10 +136,10 @@ class AccountApiController extends BaseAPIController 'email' => $request->email, 'device' => $request->device, 'account_key' => $account->account_key, - 'notify_sent' => TRUE, - 'notify_viewed' => TRUE, - 'notify_approved' => TRUE, - 'notify_paid' => TRUE, + 'notify_sent' => true, + 'notify_viewed' => true, + 'notify_approved' => true, + 'notify_paid' => true, ]; $devices[] = $newDevice; @@ -147,23 +147,20 @@ class AccountApiController extends BaseAPIController $account->save(); return $this->response($newDevice); - } public function updatePushNotifications(Request $request) { $account = Auth::user()->account; - $devices = json_decode($account->devices, TRUE); + $devices = json_decode($account->devices, true); - if(count($devices) < 1) - return $this->errorResponse(['message'=>'No registered devices.'], 400); - - for($x=0; $xusername) - { + if (count($devices) < 1) { + return $this->errorResponse(['message' => 'No registered devices.'], 400); + } + for ($x = 0; $x < count($devices); $x++) { + if ($devices[$x]['email'] == Auth::user()->username) { $newDevice = [ 'token' => $devices[$x]['token'], 'email' => $devices[$x]['email'], @@ -182,7 +179,6 @@ class AccountApiController extends BaseAPIController return $this->response($newDevice); } } - } public function oauthLogin(Request $request) @@ -204,9 +200,11 @@ class AccountApiController extends BaseAPIController if ($user) { Auth::login($user); + return $this->processLogin($request); } else { sleep(ERROR_DELAY); + return $this->errorResponse(['message' => 'Invalid credentials'], 401); } } diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index df786d21b0ba..33d337a58f12 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -1,49 +1,51 @@ -accountRepo = $accountRepo; $this->userMailer = $userMailer; $this->contactMailer = $contactMailer; @@ -103,7 +104,7 @@ class AccountController extends BaseController { $demoAccountId = Utils::getDemoAccountId(); - if (!$demoAccountId) { + if (! $demoAccountId) { return Redirect::to('/'); } @@ -128,11 +129,11 @@ class AccountController extends BaseController return Redirect::to('invoices/create'); } - if (!Utils::isNinja() && (Account::count() > 0 && !$prevUserId)) { + if (! Utils::isNinja() && (Account::count() > 0 && ! $prevUserId)) { return Redirect::to('/login'); } - if ($guestKey && !$prevUserId) { + if ($guestKey && ! $prevUserId) { $user = User::where('password', '=', $guestKey)->first(); if ($user && $user->registered) { @@ -140,7 +141,7 @@ class AccountController extends BaseController } } - if (!$user) { + if (! $user) { $account = $this->accountRepo->create(); $user = $account->users()->first(); @@ -161,7 +162,8 @@ class AccountController extends BaseController /** * @return \Illuminate\Http\RedirectResponse */ - public function changePlan() { + public function changePlan() + { $user = Auth::user(); $account = $user->account; $company = $account->company; @@ -171,7 +173,7 @@ class AccountController extends BaseController $numUsers = Input::get('num_users'); if ($plan != PLAN_ENTERPRISE) { - $numUsers = 1; + $numUsers = 1; } $planDetails = $account->getPlanDetails(false, false); @@ -184,7 +186,7 @@ class AccountController extends BaseController $newPlan['price'] = Utils::getPlanPrice($newPlan); $credit = 0; - if (!empty($planDetails['started']) && $plan == PLAN_FREE) { + if (! empty($planDetails['started']) && $plan == PLAN_FREE) { // Downgrade $refund_deadline = clone $planDetails['started']; $refund_deadline->modify('+30 days'); @@ -203,7 +205,7 @@ class AccountController extends BaseController } $hasPaid = false; - if (!empty($planDetails['paid']) && $plan != PLAN_FREE) { + if (! empty($planDetails['paid']) && $plan != PLAN_FREE) { $hasPaid = true; $time_used = $planDetails['paid']->diff(date_create()); $days_used = $time_used->days; @@ -221,12 +223,11 @@ class AccountController extends BaseController if ($newPlan['price'] > $credit) { $invitation = $this->accountRepo->enablePlan($newPlan, $credit); if ($hasPaid) { - return Redirect::to('view/' . $invitation->invitation_key); + return Redirect::to('view/' . $invitation->invitation_key); } else { - return Redirect::to('payment/' . $invitation->invitation_key); + return Redirect::to('payment/' . $invitation->invitation_key); } } else { - if ($plan == PLAN_FREE) { $company->discount = 0; } else { @@ -244,10 +245,11 @@ class AccountController extends BaseController } } - /** * @param $entityType * @param $visible + * @param mixed $filter + * * @return mixed */ public function setEntityFilter($entityType, $filter = '') @@ -268,8 +270,8 @@ class AccountController extends BaseController } } - Session::put("entity_state_filter:{$entityType}", join(',', $stateFilter)); - Session::put("entity_status_filter:{$entityType}", join(',', $statusFilter)); + Session::put("entity_state_filter:{$entityType}", implode(',', $stateFilter)); + Session::put("entity_status_filter:{$entityType}", implode(',', $statusFilter)); return RESULT_SUCCESS; } @@ -286,15 +288,16 @@ class AccountController extends BaseController /** * @param bool $section + * * @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse */ public function showSection($section = false) { - if ( ! Auth::user()->is_admin) { + if (! Auth::user()->is_admin) { return Redirect::to('/settings/user_details'); } - if (!$section) { + if (! $section) { return Redirect::to('/settings/'.ACCOUNT_COMPANY_DETAILS, 301); } @@ -363,7 +366,7 @@ class AccountController extends BaseController $account = Auth::user()->account; $recurringHours = []; - for ($i = 0; $i<24; $i++) { + for ($i = 0; $i < 24; $i++) { if ($account->military_time) { $format = 'H:i'; } else { @@ -489,17 +492,17 @@ class AccountController extends BaseController return Redirect::to('gateways/create'); } else { $tokenBillingOptions = []; - for ($i=1; $i<=4; $i++) { + for ($i = 1; $i <= 4; $i++) { $tokenBillingOptions[$i] = trans("texts.token_billing_{$i}"); } return View::make('accounts.payments', [ - 'showAdd' => $count < count(Gateway::$alternate) + 1, - 'title' => trans('texts.online_payments'), + 'showAdd' => $count < count(Gateway::$alternate) + 1, + 'title' => trans('texts.online_payments'), 'tokenBillingOptions' => $tokenBillingOptions, - 'currency' => Utils::getFromCache(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY), + 'currency' => Utils::getFromCache(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY), 'currencies'), - 'account' => $account, + 'account' => $account, ]); } } @@ -539,7 +542,6 @@ class AccountController extends BaseController $data = [ 'account' => Auth::user()->account, 'title' => trans('texts.payment_terms'), - 'taxRates' => PaymentTerm::scope()->get(['id', 'name', 'num_days']), ]; return View::make('accounts.payment_terms', $data); @@ -547,6 +549,7 @@ class AccountController extends BaseController /** * @param $section + * * @return \Illuminate\Contracts\View\View */ private function showInvoiceDesign($section) @@ -609,7 +612,7 @@ class AccountController extends BaseController } if ($section == ACCOUNT_CUSTOMIZE_DESIGN) { - $data['customDesign'] = ($account->custom_design && !$design) ? $account->custom_design : $design; + $data['customDesign'] = ($account->custom_design && ! $design) ? $account->custom_design : $design; // sample invoice to help determine variables $invoice = Invoice::scope() @@ -652,7 +655,7 @@ class AccountController extends BaseController GATEWAY_TYPE_BANK_TRANSFER, GATEWAY_TYPE_PAYPAL, GATEWAY_TYPE_BITCOIN, - GATEWAY_TYPE_DWOLLA + GATEWAY_TYPE_DWOLLA, ]; $options = []; foreach ($types as $type) { @@ -695,7 +698,6 @@ class AccountController extends BaseController 'template' => $account->getDefaultEmailTemplate($type), ]; } - $data['emailFooter'] = $account->getEmailFooter(); $data['title'] = trans('texts.email_templates'); return View::make('accounts.templates_and_reminders', $data); @@ -703,34 +705,35 @@ class AccountController extends BaseController /** * @param $section + * * @return \Illuminate\Http\RedirectResponse */ public function doSection($section) { if ($section === ACCOUNT_LOCALIZATION) { - return AccountController::saveLocalization(); + return self::saveLocalization(); } elseif ($section == ACCOUNT_PAYMENTS) { return self::saveOnlinePayments(); } elseif ($section === ACCOUNT_NOTIFICATIONS) { - return AccountController::saveNotifications(); + return self::saveNotifications(); } elseif ($section === ACCOUNT_EXPORT) { - return AccountController::export(); + return self::export(); } elseif ($section === ACCOUNT_INVOICE_SETTINGS) { - return AccountController::saveInvoiceSettings(); + return self::saveInvoiceSettings(); } elseif ($section === ACCOUNT_INVOICE_DESIGN) { - return AccountController::saveInvoiceDesign(); + return self::saveInvoiceDesign(); } elseif ($section === ACCOUNT_CUSTOMIZE_DESIGN) { - return AccountController::saveCustomizeDesign(); + return self::saveCustomizeDesign(); } elseif ($section === ACCOUNT_TEMPLATES_AND_REMINDERS) { - return AccountController::saveEmailTemplates(); + return self::saveEmailTemplates(); } elseif ($section === ACCOUNT_PRODUCTS) { - return AccountController::saveProducts(); + return self::saveProducts(); } elseif ($section === ACCOUNT_TAX_RATES) { - return AccountController::saveTaxRates(); + return self::saveTaxRates(); } elseif ($section === ACCOUNT_PAYMENT_TERMS) { - return AccountController::savePaymetTerms(); + return self::savePaymetTerms(); } elseif ($section === ACCOUNT_MANAGEMENT) { - return AccountController::saveAccountManagement(); + return self::saveAccountManagement(); } } @@ -749,10 +752,11 @@ class AccountController extends BaseController $account->live_preview = Input::get('live_preview') ? true : false; // Automatically disable live preview when using a large font - $fonts = Cache::get('fonts')->filter(function($font) use ($account) { + $fonts = Cache::get('fonts')->filter(function ($font) use ($account) { if ($font->google_font) { return false; } + return $font->id == $account->header_font_id || $font->id == $account->body_font_id; }); if ($account->live_preview && count($fonts)) { @@ -792,7 +796,8 @@ class AccountController extends BaseController { $account = $request->user()->account; $account->fill($request->all()); - $account->subdomain = $request->subdomain; + $account->client_view_css = $request->client_view_css; + $account->subdomain = $request->subdomain; $account->iframe_url = $request->iframe_url; $account->save(); @@ -835,12 +840,9 @@ class AccountController extends BaseController foreach ([REMINDER1, REMINDER2, REMINDER3] as $type) { $enableField = "enable_{$type}"; $account->$enableField = Input::get($enableField) ? true : false; - - if ($account->$enableField) { - $account->{"num_days_{$type}"} = Input::get("num_days_{$type}"); - $account->{"field_{$type}"} = Input::get("field_{$type}"); - $account->{"direction_{$type}"} = Input::get("field_{$type}") == REMINDER_FIELD_INVOICE_DATE ? REMINDER_DIRECTION_AFTER : Input::get("direction_{$type}"); - } + $account->{"num_days_{$type}"} = Input::get("num_days_{$type}"); + $account->{"field_{$type}"} = Input::get("field_{$type}"); + $account->{"direction_{$type}"} = Input::get("field_{$type}") == REMINDER_FIELD_INVOICE_DATE ? REMINDER_DIRECTION_AFTER : Input::get("direction_{$type}"); } $account->save(); @@ -935,7 +937,7 @@ class AccountController extends BaseController $account->recurring_hour = Input::get('recurring_hour'); } - if (!$account->share_counter) { + if (! $account->share_counter) { $account->quote_number_counter = Input::get('quote_number_counter'); } @@ -949,7 +951,7 @@ class AccountController extends BaseController } } - if (!$account->share_counter + if (! $account->share_counter && $account->invoice_number_prefix == $account->quote_number_prefix && $account->invoice_number_pattern == $account->quote_number_pattern) { Session::flash('error', trans('texts.invalid_counter')); @@ -1019,6 +1021,7 @@ class AccountController extends BaseController /** * @param UpdateAccountRequest $request + * * @return \Illuminate\Http\RedirectResponse */ public function updateDetails(UpdateAccountRequest $request) @@ -1036,14 +1039,13 @@ class AccountController extends BaseController } $extension = strtolower($uploaded->getClientOriginalExtension()); - if(empty(Document::$types[$extension]) && !empty(Document::$extraExtensions[$extension])){ + if (empty(Document::$types[$extension]) && ! empty(Document::$extraExtensions[$extension])) { $documentType = Document::$extraExtensions[$extension]; - } - else{ + } else { $documentType = $extension; } - if(!in_array($documentType, ['jpeg', 'png', 'gif'])){ + if (! in_array($documentType, ['jpeg', 'png', 'gif'])) { Session::flash('warning', 'Unsupported file type'); } else { $documentTypeData = Document::$types[$documentType]; @@ -1051,7 +1053,7 @@ class AccountController extends BaseController $filePath = $uploaded->path(); $size = filesize($filePath); - if($size/1000 > MAX_DOCUMENT_SIZE){ + if ($size / 1000 > MAX_DOCUMENT_SIZE) { Session::flash('warning', 'File too large'); } else { if ($documentType != 'gif') { @@ -1072,7 +1074,7 @@ class AccountController extends BaseController $account->logo_size = strlen($imageStr); } else { $stream = fopen($filePath, 'r'); - $disk->getDriver()->putStream($account->logo, $stream, ['mimetype'=>$documentTypeData['mime']]); + $disk->getDriver()->putStream($account->logo, $stream, ['mimetype' => $documentTypeData['mime']]); fclose($stream); } } else { @@ -1128,7 +1130,7 @@ class AccountController extends BaseController $user->email = trim(strtolower(Input::get('email'))); $user->phone = trim(Input::get('phone')); - if ( ! Auth::user()->is_admin) { + if (! Auth::user()->is_admin) { $user->notify_sent = Input::get('notify_sent'); $user->notify_viewed = Input::get('notify_viewed'); $user->notify_paid = Input::get('notify_paid'); @@ -1136,7 +1138,7 @@ class AccountController extends BaseController } if (Utils::isNinja()) { - if (Input::get('referral_code') && !$user->referral_code) { + if (Input::get('referral_code') && ! $user->referral_code) { $user->referral_code = $this->accountRepo->getReferralCode(); } } @@ -1204,7 +1206,7 @@ class AccountController extends BaseController $gateway_type_id = intval(Input::get('gateway_type_id')); $gateway_settings = AccountGatewaySettings::scope()->where('gateway_type_id', '=', $gateway_type_id)->first(); - if ( ! $gateway_settings) { + if (! $gateway_settings) { $gateway_settings = AccountGatewaySettings::createNew(); $gateway_settings->gateway_type_id = $gateway_type_id; } @@ -1308,7 +1310,7 @@ class AccountController extends BaseController $affiliate = Affiliate::where('affiliate_key', '=', SELF_HOST_AFFILIATE_KEY)->first(); $email = trim(Input::get('email')); - if (!$email || $email == TEST_USERNAME) { + if (! $email || $email == TEST_USERNAME) { return RESULT_FAILURE; } @@ -1348,15 +1350,16 @@ class AccountController extends BaseController $account = Auth::user()->account; \Log::info("Canceled Account: {$account->name} - {$user->email}"); - Document::scope()->each(function($item, $key) { + Document::scope()->each(function ($item, $key) { $item->delete(); }); $this->accountRepo->unlinkAccount($account); - if ($account->company->accounts->count() == 1) { - $account->company->forceDelete(); - } else { + + if ($account->hasMultipleAccounts()) { $account->forceDelete(); + } else { + $account->company->forceDelete(); } Auth::logout(); @@ -1380,6 +1383,7 @@ class AccountController extends BaseController /** * @param $section * @param bool $subSection + * * @return \Illuminate\Http\RedirectResponse */ public function redirectLegacy($section, $subSection = false) @@ -1395,7 +1399,7 @@ class AccountController extends BaseController } } - if (!in_array($section, array_merge(Account::$basicSettings, Account::$advancedSettings))) { + if (! in_array($section, array_merge(Account::$basicSettings, Account::$advancedSettings))) { $section = ACCOUNT_COMPANY_DETAILS; } @@ -1404,6 +1408,7 @@ class AccountController extends BaseController /** * @param TemplateService $templateService + * * @return \Illuminate\Http\Response */ public function previewEmail(TemplateService $templateService) @@ -1414,7 +1419,7 @@ class AccountController extends BaseController ->withTrashed() ->first(); - if ( ! $invoice) { + if (! $invoice) { return trans('texts.create_invoice_for_sample'); } @@ -1429,7 +1434,7 @@ class AccountController extends BaseController 'invitation' => $invitation, 'link' => $invitation->getLink(), 'client' => $invoice->client, - 'amount' => $invoice->amount + 'amount' => $invoice->amount, ]; // create the email view diff --git a/app/Http/Controllers/AccountGatewayController.php b/app/Http/Controllers/AccountGatewayController.php index 7d2d97e294e1..56f2dc5d746a 100644 --- a/app/Http/Controllers/AccountGatewayController.php +++ b/app/Http/Controllers/AccountGatewayController.php @@ -1,19 +1,21 @@ -gatewayIds(); $otherProviders = Input::get('other_providers'); - if ( ! Utils::isNinja() || ! env('WEPAY_CLIENT_ID') || Gateway::hasStandardGateway($accountGatewaysIds)) { + if (! Utils::isNinja() || ! env('WEPAY_CLIENT_ID') || Gateway::hasStandardGateway($accountGatewaysIds)) { $otherProviders = true; } @@ -114,7 +115,7 @@ class AccountGatewayController extends BaseController { $selectedCards = $accountGateway ? $accountGateway->accepted_credit_cards : 0; $user = Auth::user(); - $account =$user->account; + $account = $user->account; $creditCardsArray = unserialize(CREDIT_CARDS); $creditCards = []; @@ -132,7 +133,7 @@ class AccountGatewayController extends BaseController foreach ($gateways as $gateway) { $fields = $gateway->getFields(); - if ( ! $gateway->isCustom()) { + if (! $gateway->isCustom()) { asort($fields); } $gateway->fields = $gateway->id == GATEWAY_WEPAY ? [] : $fields; @@ -148,11 +149,10 @@ class AccountGatewayController extends BaseController 'config' => false, 'gateways' => $gateways, 'creditCardTypes' => $creditCards, - 'countGateways' => count($currentGateways) + 'countGateways' => count($currentGateways), ]; } - public function bulk() { $action = Input::get('bulk_action'); @@ -165,8 +165,9 @@ class AccountGatewayController extends BaseController } /** - * Stores new account + * Stores new account. * + * @param mixed $accountGatewayPublicId */ public function save($accountGatewayPublicId = false) { @@ -190,7 +191,7 @@ class AccountGatewayController extends BaseController if ($gatewayId != GATEWAY_WEPAY) { foreach ($fields as $field => $details) { - if (!in_array($field, $optional)) { + if (! in_array($field, $optional)) { if (strtolower($gateway->name) == 'beanstream') { if (in_array($field, ['merchant_id', 'passCode'])) { $rules[$gateway->id . '_' . $field] = 'required'; @@ -224,6 +225,7 @@ class AccountGatewayController extends BaseController ->first(); if ($accountGateway) { Session::flash('error', trans('texts.gateway_exists')); + return Redirect::to("gateways/{$accountGateway->public_id}/edit"); } @@ -231,7 +233,7 @@ class AccountGatewayController extends BaseController $accountGateway->gateway_id = $gatewayId; if ($gatewayId == GATEWAY_WEPAY) { - if(!$this->setupWePay($accountGateway, $wepayResponse)) { + if (! $this->setupWePay($accountGateway, $wepayResponse)) { return $wepayResponse; } $oldConfig = $accountGateway->getConfig(); @@ -247,7 +249,7 @@ class AccountGatewayController extends BaseController if ($oldConfig && $value && $value === str_repeat('*', strlen($value))) { $value = $oldConfig->$field; } - if (!$value && ($field == 'testMode' || $field == 'developerMode')) { + if (! $value && ($field == 'testMode' || $field == 'developerMode')) { // do nothing } elseif ($gatewayId == GATEWAY_CUSTOM) { $config->$field = strip_tags($value); @@ -255,7 +257,7 @@ class AccountGatewayController extends BaseController $config->$field = $value; } } - } elseif($oldConfig) { + } elseif ($oldConfig) { $config = clone $oldConfig; } @@ -321,11 +323,13 @@ class AccountGatewayController extends BaseController if ($accountGatewayPublicId) { $message = trans('texts.updated_gateway'); Session::flash('message', $message); + return Redirect::to("gateways/{$accountGateway->public_id}/edit"); } else { $message = trans('texts.created_gateway'); Session::flash('message', $message); - return Redirect::to("/settings/online_payments"); + + return Redirect::to('/settings/online_payments'); } } } @@ -350,8 +354,8 @@ class AccountGatewayController extends BaseController $wepay = Utils::setupWePay($accountGateway); $update_uri_data = $wepay->request('account/get_update_uri', [ - 'account_id' => $accountGateway->getConfig()->accountId, - 'mode' => 'iframe', + 'account_id' => $accountGateway->getConfig()->accountId, + 'mode' => 'iframe', 'redirect_uri' => URL::to('/gateways'), ]); @@ -383,7 +387,7 @@ class AccountGatewayController extends BaseController ->withInput(); } - try{ + try { $wepay = Utils::setupWePay(); $userDetails = [ @@ -407,11 +411,11 @@ class AccountGatewayController extends BaseController $wepay = new WePay($accessToken); $accountDetails = [ - 'name' => Input::get('company_name'), - 'description' => trans('texts.wepay_account_description'), + 'name' => Input::get('company_name'), + 'description' => trans('texts.wepay_account_description'), 'theme_object' => json_decode(WEPAY_THEME), 'callback_uri' => $accountGateway->getWebhookUrl(), - 'rbits' => $account->present()->rBits, + 'rbits' => $account->present()->rBits, ]; if (WEPAY_ENABLE_CANADA) { @@ -428,9 +432,9 @@ class AccountGatewayController extends BaseController try { $wepay->request('user/send_confirmation/', []); $confirmationRequired = true; - } catch(\WePayException $ex){ + } catch (\WePayException $ex) { if ($ex->getMessage() == 'This access_token is already approved.') { - $confirmationRequired = false; + $confirmationRequired = false; } else { throw $ex; } @@ -457,20 +461,22 @@ class AccountGatewayController extends BaseController ]); $response = Redirect::to($updateUri->uri); + return true; } $response = Redirect::to("gateways/{$accountGateway->public_id}/edit"); + return true; } catch (\WePayException $e) { Session::flash('error', $e->getMessage()); $response = Redirect::to('gateways/create') ->withInput(); + return false; } } - public function resendConfirmation($publicId = false) { $accountGateway = AccountGateway::scope($publicId)->firstOrFail(); @@ -488,5 +494,4 @@ class AccountGatewayController extends BaseController return Redirect::to("gateways/{$accountGateway->public_id}/edit"); } - } diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index bd84d3ff9a1f..578746a1836e 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -1,4 +1,6 @@ -withInput(); } @@ -113,18 +115,14 @@ class AppController extends BaseController $config .= "{$key}={$val}\n"; } - // Write Config Settings $fp = fopen(base_path().'/.env', 'w'); fwrite($fp, $config); fclose($fp); // == DB Migrate & Seed == // - // Artisan::call('migrate:rollback', array('--force' => true)); // Debug Purposes - Artisan::call('migrate', ['--force' => true]); - if (Industry::count() == 0) { - Artisan::call('db:seed', ['--force' => true]); - } + $sqlFile = base_path() . '/database/setup.sql'; + DB::unprepared(file_get_contents($sqlFile)); Cache::flush(); Artisan::call('optimize', ['--force' => true]); @@ -144,12 +142,13 @@ class AppController extends BaseController return Redirect::to('/'); } - if (!Auth::check() && Utils::isDatabaseSetup() && Account::count() > 0) { + if (! Auth::check() && Utils::isDatabaseSetup() && Account::count() > 0) { return Redirect::to('/'); } - if ( ! $canUpdateEnv = @fopen(base_path().'/.env', 'w')) { + if (! $canUpdateEnv = @fopen(base_path().'/.env', 'w')) { Session::flash('error', 'Warning: Permission denied to write to .env config file, try running sudo chown www-data:www-data /path/to/ninja/.env'); + return Redirect::to('/settings/system_settings'); } @@ -186,7 +185,7 @@ class AppController extends BaseController continue; } if (preg_match('/\s/', $val)) { - $val = "'{$val}'"; + $val = "'{$val}'"; } $config .= "{$key}={$val}\n"; } @@ -196,6 +195,7 @@ class AppController extends BaseController fclose($fp); Session::flash('message', trans('texts.updated_settings')); + return Redirect::to('/settings/system_settings'); } @@ -231,6 +231,7 @@ class AppController extends BaseController $data = [ 'text' => 'Test email', + 'fromEmail' => $email ]; try { @@ -244,7 +245,7 @@ class AppController extends BaseController public function install() { - if (!Utils::isNinjaProd() && !Utils::isDatabaseSetup()) { + if (! Utils::isNinjaProd() && ! Utils::isDatabaseSetup()) { try { set_time_limit(60 * 5); // shouldn't take this long but just in case Artisan::call('migrate', ['--force' => true]); @@ -254,6 +255,7 @@ class AppController extends BaseController Artisan::call('optimize', ['--force' => true]); } catch (Exception $e) { Utils::logError($e); + return Response::make($e->getMessage(), 500); } } @@ -263,7 +265,7 @@ class AppController extends BaseController public function update() { - if (!Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { try { set_time_limit(60 * 5); Artisan::call('clear-compiled'); @@ -280,7 +282,7 @@ class AppController extends BaseController Event::fire(new UserSettingsChanged()); // legacy fix: check cipher is in .env file - if ( ! env('APP_CIPHER')) { + if (! env('APP_CIPHER')) { $fp = fopen(base_path().'/.env', 'a'); fwrite($fp, "\nAPP_CIPHER=AES-256-CBC"); fclose($fp); @@ -293,6 +295,7 @@ class AppController extends BaseController Session::flash('warning', $message); } catch (Exception $e) { Utils::logError($e); + return Response::make($e->getMessage(), 500); } } @@ -304,12 +307,14 @@ class AppController extends BaseController { $messageId = Input::get('MessageID'); $error = Input::get('Name') . ': ' . Input::get('Description'); + return $this->emailService->markBounced($messageId, $error) ? RESULT_SUCCESS : RESULT_FAILURE; } public function emailOpened() { $messageId = Input::get('MessageID'); + return $this->emailService->markOpened($messageId) ? RESULT_SUCCESS : RESULT_FAILURE; return RESULT_SUCCESS; @@ -317,8 +322,9 @@ class AppController extends BaseController public function stats() { - if ( ! hash_equals(Input::get('password'), env('RESELLER_PASSWORD'))) { + if (! hash_equals(Input::get('password'), env('RESELLER_PASSWORD'))) { sleep(3); + return ''; } @@ -332,7 +338,7 @@ class AppController extends BaseController 'clients.public_id as client_id', 'payments.public_id as payment_id', 'payments.payment_date', - 'payments.amount' + 'payments.amount', ]); } else { $data = DB::table('users')->count(); diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index c016c6ba97ee..c5fbccb78790 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -1,20 +1,21 @@ -accountRepo->unlinkUserFromOauth(Auth::user()); Session::flash('message', trans('texts.updated_settings')); + return redirect()->to('/settings/' . ACCOUNT_USER_DETAILS); } @@ -113,7 +117,7 @@ class AuthController extends Controller */ public function getLoginWrapper() { - if (!Utils::isNinja() && !User::count()) { + if (! Utils::isNinja() && ! User::count()) { return redirect()->to('invoice_now'); } @@ -127,12 +131,12 @@ class AuthController extends Controller */ public function postLoginWrapper(Request $request) { - $userId = Auth::check() ? Auth::user()->id : null; $user = User::where('email', '=', $request->input('email'))->first(); if ($user && $user->failed_logins >= MAX_FAILED_LOGINS) { Session::flash('error', trans('texts.invalid_credentials')); + return redirect()->to('login'); } @@ -155,7 +159,6 @@ class AuthController extends Controller $users = $this->accountRepo->loadAccounts(Auth::user()->id); Session::put(SESSION_USER_ACCOUNTS, $users); - } elseif ($user) { $user->failed_logins = $user->failed_logins + 1; $user->save(); @@ -169,10 +172,11 @@ class AuthController extends Controller */ public function getLogoutWrapper() { - if (Auth::check() && !Auth::user()->registered) { + if (Auth::check() && ! Auth::user()->registered) { $account = Auth::user()->account; $this->accountRepo->unlinkAccount($account); - if ($account->company->accounts->count() == 1) { + + if (! $account->hasMultipleAccounts()) { $account->company->forceDelete(); } $account->forceDelete(); @@ -182,6 +186,10 @@ class AuthController extends Controller Session::flush(); + if ($reason = request()->reason) { + Session::flash('warning', trans("texts.{$reason}_logout")); + } + return $response; } } diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php index e26ca7bc1fea..42fa1c76d90d 100644 --- a/app/Http/Controllers/Auth/PasswordController.php +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -1,11 +1,12 @@ -middleware('guest'); } - } diff --git a/app/Http/Controllers/BankAccountController.php b/app/Http/Controllers/BankAccountController.php index 3a3e5d7269c3..945357e6039f 100644 --- a/app/Http/Controllers/BankAccountController.php +++ b/app/Http/Controllers/BankAccountController.php @@ -1,20 +1,22 @@ - null, 'bankAccount' => null, - 'transactions' => json_encode([$data]) + 'transactions' => json_encode([$data]), ]; return View::make('accounts.bank_account', $data); diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 4022408794e3..0a07f8b0b5bd 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -1,17 +1,19 @@ -where('public_id', '=', $clientPublicId); }; $query->whereHas('client', $filter); } - if ( ! Utils::hasPermission('view_all')){ + if (! Utils::hasPermission('view_all')) { if ($this->entityType == ENTITY_USER) { $query->where('id', '=', Auth::user()->id); } else { @@ -128,6 +130,7 @@ class BaseAPIController extends Controller } $resource = new Item($data, $transformer, $entityType); + return $this->manager->createData($resource)->toArray(); } @@ -159,7 +162,7 @@ class BaseAPIController extends Controller } else { $meta = isset($response['meta']) ? $response['meta'] : null; $response = [ - $index => $response + $index => $response, ]; if ($meta) { @@ -174,14 +177,13 @@ class BaseAPIController extends Controller return Response::make($response, 200, $headers); } - protected function errorResponse($response, $httpErrorCode = 400) + protected function errorResponse($response, $httpErrorCode = 400) { $error['error'] = $response; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); return Response::make($error, $httpErrorCode, $headers); - } protected function getRequestIncludes($data) diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 11e78f6b66c0..90e85c312f78 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -1,9 +1,11 @@ - Input::get( 'name' ), - 'business_phone_number' => Input::get( 'phone' ), - 'email' => Input::get( 'email' ), - 'personal_fico_score' => intval( Input::get( 'fico_score' ) ), - 'business_annual_revenue' => intval( Input::get( 'annual_revenue' ) ), - 'business_monthly_average_bank_balance' => intval( Input::get( 'average_bank_balance' ) ), - 'business_inception_date' => date( 'Y-m-d', strtotime( Input::get( 'business_inception' ) ) ), - 'partner_internal_business_id' => 'ninja_account_' . $user->account_id, - ); + $data = [ + 'personal_user_full_name' => Input::get('name'), + 'business_phone_number' => Input::get('phone'), + 'email' => Input::get('email'), + 'personal_fico_score' => intval(Input::get('fico_score')), + 'business_annual_revenue' => intval(Input::get('annual_revenue')), + 'business_monthly_average_bank_balance' => intval(Input::get('average_bank_balance')), + 'business_inception_date' => date('Y-m-d', strtotime(Input::get('business_inception'))), + 'partner_internal_business_id' => 'ninja_account_' . $user->account_id, + ]; - if ( ! empty( Input::get( 'quote_type_factoring' ) ) ) { - $data['invoice_factoring_offer'] = true; - $data['desired_credit_line'] = intval( Input::get( 'desired_credit_limit' )['invoice_factoring'] ); - } + if (! empty(Input::get('quote_type_factoring'))) { + $data['invoice_factoring_offer'] = true; + $data['desired_credit_line'] = intval(Input::get('desired_credit_limit')['invoice_factoring']); + } - if ( ! empty( Input::get( 'quote_type_loc' ) ) ) { - $data['line_of_credit_offer'] = true; - $data['desired_credit_line_for_loc'] = intval( Input::get( 'desired_credit_limit' )['line_of_credit'] ); - } + if (! empty(Input::get('quote_type_loc'))) { + $data['line_of_credit_offer'] = true; + $data['desired_credit_line_for_loc'] = intval(Input::get('desired_credit_limit')['line_of_credit']); + } + $api_client = new \GuzzleHttp\Client(); + try { + $response = $api_client->request('POST', + 'https://app.bluevine.com/api/v1/user/register_external?' . http_build_query([ + 'external_register_token' => env('BLUEVINE_PARTNER_TOKEN'), + 'c' => env('BLUEVINE_PARTNER_UNIQUE_ID'), + 'signup_parent_url' => URL::to('/bluevine/completed'), + ]), [ + 'json' => $data, + ] + ); + } catch (\GuzzleHttp\Exception\RequestException $ex) { + if ($ex->getCode() == 403) { + $response_body = $ex->getResponse()->getBody(true); + $response_data = json_decode($response_body); - $api_client = new \GuzzleHttp\Client(); - try { - $response = $api_client->request( 'POST', - 'https://app.bluevine.com/api/v1/user/register_external?' . http_build_query( array( - 'external_register_token' => env( 'BLUEVINE_PARTNER_TOKEN' ), - 'c' => env( 'BLUEVINE_PARTNER_UNIQUE_ID' ), - 'signup_parent_url' => URL::to( '/bluevine/completed' ), - ) ), array( - 'json' => $data - ) - ); - } catch ( \GuzzleHttp\Exception\RequestException $ex ) { - if ( $ex->getCode() == 403 ) { - $response_body = $ex->getResponse()->getBody( true ); - $response_data = json_decode( $response_body ); + return response()->json([ + 'error' => true, + 'message' => $response_data->reason, + ]); + } else { + return response()->json([ + 'error' => true, + ]); + } + } - return response()->json( [ - 'error' => true, - 'message' => $response_data->reason - ] ); - } else { - return response()->json( [ - 'error' => true - ] ); - } - } + $company = $user->account->company; + $company->bluevine_status = 'signed_up'; + $company->save(); - $company = $user->account->company; - $company->bluevine_status = 'signed_up'; - $company->save(); + $quote_data = json_decode($response->getBody()); - $quote_data = json_decode( $response->getBody() ); + return response()->json($quote_data); + } - return response()->json( $quote_data ); - } + public function hideMessage() + { + $user = Auth::user(); - public function hideMessage() { - $user = Auth::user(); + if ($user) { + $company = $user->account->company; + $company->bluevine_status = 'ignored'; + $company->save(); + } - if ( $user ) { - $company = $user->account->company; - $company->bluevine_status = 'ignored'; - $company->save(); - } + return 'success'; + } - return 'success'; - } + public function handleCompleted() + { + Session::flash('message', trans('texts.bluevine_completed')); - public function handleCompleted() { - Session::flash( 'message', trans( 'texts.bluevine_completed' ) ); - - return Redirect::to( '/dashboard' ); - } + return Redirect::to('/dashboard'); + } } diff --git a/app/Http/Controllers/BotController.php b/app/Http/Controllers/BotController.php index 5e5994185c87..02267924f23a 100644 --- a/app/Http/Controllers/BotController.php +++ b/app/Http/Controllers/BotController.php @@ -2,18 +2,18 @@ namespace App\Http\Controllers; -use Auth; -use DB; -use Utils; -use Cache; -use Input; -use Exception; -use App\Libraries\Skype\SkypeResponse; use App\Libraries\CurlUtils; -use App\Models\User; +use App\Libraries\Skype\SkypeResponse; use App\Models\SecurityCode; +use App\Models\User; use App\Ninja\Intents\BaseIntent; use App\Ninja\Mailers\UserMailer; +use Auth; +use Cache; +use DB; +use Exception; +use Input; +use Utils; class BotController extends Controller { @@ -29,7 +29,7 @@ class BotController extends Controller $input = Input::all(); $botUserId = $input['from']['id']; - if ( ! $token = $this->authenticate($input)) { + if (! $token = $this->authenticate($input)) { return SkypeResponse::message(trans('texts.not_authorized')); } @@ -42,6 +42,7 @@ class BotController extends Controller } elseif ($input['action'] === 'remove') { $this->removeBot($botUserId); $this->saveState($token, false); + return RESULT_SUCCESS; } } else { @@ -71,7 +72,7 @@ class BotController extends Controller } elseif ($text == 'status') { $response = SkypeResponse::message(trans('texts.intent_not_supported')); } else { - if ( ! $user = User::whereBotUserId($botUserId)->with('account')->first()) { + if (! $user = User::whereBotUserId($botUserId)->with('account')->first()) { return SkypeResponse::message(trans('texts.not_authorized')); } @@ -102,7 +103,7 @@ class BotController extends Controller if (Utils::isNinjaDev()) { // skip validation for testing - } elseif ( ! $this->validateToken($token)) { + } elseif (! $this->validateToken($token)) { return false; } @@ -130,7 +131,7 @@ class BotController extends Controller $url = sprintf('%s/botstate/skype/conversations/%s', MSBOT_STATE_URL, '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts'); $headers = [ - 'Authorization: Bearer ' . $token + 'Authorization: Bearer ' . $token, ]; $response = CurlUtils::get($url, $headers); @@ -165,7 +166,6 @@ class BotController extends Controller $data = '{ eTag: "*", data: "' . addslashes(json_encode($data)) . '" }'; - CurlUtils::post($url, $data, $headers); } @@ -186,7 +186,7 @@ class BotController extends Controller private function validateEmail($email, $botUserId) { - if ( ! $email || ! $botUserId) { + if (! $email || ! $botUserId) { return false; } @@ -203,7 +203,7 @@ class BotController extends Controller ->whereNull('bot_user_id') ->first(); - if ( ! $user) { + if (! $user) { return false; } @@ -221,7 +221,7 @@ class BotController extends Controller private function validateCode($input, $botUserId) { - if ( ! $input || ! $botUserId) { + if (! $input || ! $botUserId) { return false; } @@ -230,13 +230,14 @@ class BotController extends Controller ->where('attempts', '<', 5) ->first(); - if ( ! $code) { + if (! $code) { return false; } - if ( ! hash_equals($code->code, $input)) { + if (! hash_equals($code->code, $input)) { $code->attempts += 1; $code->save(); + return false; } @@ -256,7 +257,7 @@ class BotController extends Controller private function validateToken($token) { - if ( ! $token) { + if (! $token) { return false; } @@ -273,17 +274,17 @@ class BotController extends Controller $sig_enc = $token_arr[2]; // 2 base 64 url decoding - $headers_arr = json_decode($this->base64_url_decode($headers_enc), TRUE); - $claims_arr = json_decode($this->base64_url_decode($claims_enc), TRUE); + $headers_arr = json_decode($this->base64_url_decode($headers_enc), true); + $claims_arr = json_decode($this->base64_url_decode($claims_enc), true); $sig = $this->base64_url_decode($sig_enc); // 3 get key list $keylist = file_get_contents('https://api.aps.skype.com/v1/keys'); - $keylist_arr = json_decode($keylist, TRUE); - foreach($keylist_arr['keys'] as $key => $value) { + $keylist_arr = json_decode($keylist, true); + foreach ($keylist_arr['keys'] as $key => $value) { // 4 select one key (which matches) - if($value['kid'] == $headers_arr['kid']) { + if ($value['kid'] == $headers_arr['kid']) { // 5 get public key from key info $cert_txt = '-----BEGIN CERTIFICATE-----' . "\n" . chunk_split($value['x5c'][0], 64) . '-----END CERTIFICATE-----'; @@ -298,10 +299,11 @@ class BotController extends Controller } // 7 show result - return ($token_valid == 1); + return $token_valid == 1; } - private function base64_url_decode($arg) { + private function base64_url_decode($arg) + { $res = $arg; $res = str_replace('-', '+', $res); $res = str_replace('_', '/', $res); @@ -309,15 +311,16 @@ class BotController extends Controller case 0: break; case 2: - $res .= "=="; + $res .= '=='; break; case 3: - $res .= "="; + $res .= '='; break; default: break; } $res = base64_decode($res); + return $res; } } diff --git a/app/Http/Controllers/ClientApiController.php b/app/Http/Controllers/ClientApiController.php index 4f6ca6521c62..928fe68b8c7c 100644 --- a/app/Http/Controllers/ClientApiController.php +++ b/app/Http/Controllers/ClientApiController.php @@ -1,12 +1,14 @@ -itemResponse($request->entity()); } - - - /** * @SWG\Post( * path="/clients", @@ -126,8 +124,9 @@ class ClientApiController extends BaseAPIController * description="an ""unexpected"" error" * ) * ) + * + * @param mixed $publicId */ - public function update(UpdateClientRequest $request, $publicId) { if ($request->action) { @@ -143,7 +142,6 @@ class ClientApiController extends BaseAPIController return $this->itemResponse($client); } - /** * @SWG\Delete( * path="/clients/{client_id}", @@ -165,7 +163,6 @@ class ClientApiController extends BaseAPIController * ) * ) */ - public function destroy(UpdateClientRequest $request) { $client = $request->entity(); @@ -174,5 +171,4 @@ class ClientApiController extends BaseAPIController return $this->itemResponse($client); } - } diff --git a/app/Http/Controllers/ClientAuth/AuthController.php b/app/Http/Controllers/ClientAuth/AuthController.php index fee6eeab838f..f48934b06826 100644 --- a/app/Http/Controllers/ClientAuth/AuthController.php +++ b/app/Http/Controllers/ClientAuth/AuthController.php @@ -1,11 +1,13 @@ -first(); - if ($contact && !$contact->is_deleted) { - $account = $contact->account; - - $data['account'] = $account; - $data['clientFontUrl'] = $account->getFontsUrl(); - } - } + $data = [ + 'clientauth' => true, + ]; return view('clientauth.login')->with($data); } @@ -45,7 +38,7 @@ class AuthController extends Controller /** * Get the needed authorization credentials from the request. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * * @return array */ @@ -57,7 +50,7 @@ class AuthController extends Controller $contactKey = session('contact_key'); if ($contactKey) { $contact = Contact::where('contact_key', '=', $contactKey)->first(); - if ($contact && !$contact->is_deleted) { + if ($contact && ! $contact->is_deleted) { $credentials['id'] = $contact->id; } } @@ -68,7 +61,7 @@ class AuthController extends Controller /** * Validate the user login request. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * * @return void */ @@ -84,6 +77,6 @@ class AuthController extends Controller */ public function getSessionExpired() { - return view('clientauth.sessionexpired'); + return view('clientauth.sessionexpired')->with(['clientauth' => true]); } } diff --git a/app/Http/Controllers/ClientAuth/PasswordController.php b/app/Http/Controllers/ClientAuth/PasswordController.php index a7957cacf5d1..bf3f2da9c974 100644 --- a/app/Http/Controllers/ClientAuth/PasswordController.php +++ b/app/Http/Controllers/ClientAuth/PasswordController.php @@ -1,17 +1,18 @@ - true, + ]; $contactKey = session('contact_key'); - if ($contactKey) { - $contact = Contact::where('contact_key', '=', $contactKey)->first(); - if ($contact && !$contact->is_deleted) { - $account = $contact->account; - $data['account'] = $account; - $data['clientFontUrl'] = $account->getFontsUrl(); - } - } else { + if (!$contactKey) { return \Redirect::to('/client/sessionexpired'); } @@ -66,8 +62,8 @@ class PasswordController extends Controller /** * Send a reset link to the given user. * - * @param \Illuminate\Http\Request $request - * + * @param \Illuminate\Http\Request $request + * * @return \Illuminate\Http\Response */ public function sendResetLinkEmail(Request $request) @@ -78,7 +74,7 @@ class PasswordController extends Controller $contactKey = session('contact_key'); if ($contactKey) { $contact = Contact::where('contact_key', '=', $contactKey)->first(); - if ($contact && !$contact->is_deleted) { + if ($contact && ! $contact->is_deleted && $contact->email) { $contactId = $contact->id; } } @@ -102,9 +98,10 @@ class PasswordController extends Controller * * If no token is present, display the link request form. * - * @param \Illuminate\Http\Request $request - * @param string|null $key - * @param string|null $token + * @param \Illuminate\Http\Request $request + * @param string|null $key + * @param string|null $token + * * @return \Illuminate\Http\Response */ public function showResetForm(Request $request, $key = null, $token = null) @@ -113,25 +110,26 @@ class PasswordController extends Controller return $this->getEmail(); } - $data = compact('token'); + $data = array( + 'token' => $token, + 'clientauth' => true, + ); + if ($key) { $contact = Contact::where('contact_key', '=', $key)->first(); - if ($contact && !$contact->is_deleted) { + if ($contact && ! $contact->is_deleted) { $account = $contact->account; $data['contact_key'] = $contact->contact_key; } else { // Maybe it's an invitation key $invitation = Invitation::where('invitation_key', '=', $key)->first(); - if ($invitation && !$invitation->is_deleted) { + if ($invitation && ! $invitation->is_deleted) { $account = $invitation->account; $data['contact_key'] = $invitation->contact->contact_key; } } - if (!empty($account)) { - $data['account'] = $account; - $data['clientFontUrl'] = $account->getFontsUrl(); - } else { + if ( empty($account)) { return \Redirect::to('/client/sessionexpired'); } } @@ -139,15 +137,15 @@ class PasswordController extends Controller return view('clientauth.reset')->with($data); } - /** * Display the password reset view for the given token. * * If no token is present, display the link request form. * - * @param \Illuminate\Http\Request $request - * @param string|null $key - * @param string|null $token + * @param \Illuminate\Http\Request $request + * @param string|null $key + * @param string|null $token + * * @return \Illuminate\Http\Response */ public function getReset(Request $request, $key = null, $token = null) @@ -158,7 +156,8 @@ class PasswordController extends Controller /** * Reset the given user's password. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request + * * @return \Illuminate\Http\Response */ public function reset(Request $request) @@ -174,7 +173,7 @@ class PasswordController extends Controller $contactKey = session('contact_key'); if ($contactKey) { $contact = Contact::where('contact_key', '=', $contactKey)->first(); - if ($contact && !$contact->is_deleted) { + if ($contact && ! $contact->is_deleted) { $credentials['id'] = $contact->id; } } diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index c2fd0a93d614..8a6beffcc81e 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -1,25 +1,26 @@ -can('create', ENTITY_INVOICE)){ + if ($user->can('create', ENTITY_INVOICE)) { $actionLinks[] = ['label' => trans('texts.new_invoice'), 'url' => URL::to('/invoices/create/'.$client->public_id)]; } - if ($user->can('create', ENTITY_TASK)){ + if ($user->can('create', ENTITY_TASK)) { $actionLinks[] = ['label' => trans('texts.new_task'), 'url' => URL::to('/tasks/create/'.$client->public_id)]; } if (Utils::hasFeature(FEATURE_QUOTES) && $user->can('create', ENTITY_QUOTE)) { $actionLinks[] = ['label' => trans('texts.new_quote'), 'url' => URL::to('/quotes/create/'.$client->public_id)]; } - if(!empty($actionLinks)){ + if (! empty($actionLinks)) { $actionLinks[] = \DropdownButton::DIVIDER; } - if($user->can('create', ENTITY_PAYMENT)){ + if ($user->can('create', ENTITY_PAYMENT)) { $actionLinks[] = ['label' => trans('texts.enter_payment'), 'url' => URL::to('/payments/create/'.$client->public_id)]; } - if($user->can('create', ENTITY_CREDIT)){ + if ($user->can('create', ENTITY_CREDIT)) { $actionLinks[] = ['label' => trans('texts.enter_credit'), 'url' => URL::to('/credits/create/'.$client->public_id)]; } - if($user->can('create', ENTITY_EXPENSE)){ + if ($user->can('create', ENTITY_EXPENSE)) { $actionLinks[] = ['label' => trans('texts.enter_expense'), 'url' => URL::to('/expenses/create/0/'.$client->public_id)]; } @@ -154,7 +156,8 @@ class ClientController extends BaseController /** * Show the form for editing the specified resource. * - * @param int $id + * @param int $id + * * @return Response */ public function edit(ClientRequest $request) @@ -185,7 +188,6 @@ class ClientController extends BaseController 'data' => Input::old('data'), 'account' => Auth::user()->account, 'sizes' => Cache::get('sizes'), - 'paymentTerms' => Cache::get('paymentTerms'), 'currencies' => Cache::get('currencies'), 'customLabel1' => Auth::user()->account->custom_client_label1, 'customLabel2' => Auth::user()->account->custom_client_label2, @@ -195,7 +197,8 @@ class ClientController extends BaseController /** * Update the specified resource in storage. * - * @param int $id + * @param int $id + * * @return Response */ public function update(UpdateClientRequest $request) diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php index ca996ac136ea..40a46176fc59 100644 --- a/app/Http/Controllers/ClientPortalController.php +++ b/app/Http/Controllers/ClientPortalController.php @@ -1,32 +1,34 @@ -silent) { - session(['silent' => true]); - return redirect(request()->url()); - } - - if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return $this->returnError(); } @@ -59,19 +56,21 @@ class ClientPortalController extends BaseController $client = $invoice->client; $account = $invoice->account; - if (!$account->checkSubdomain(Request::server('HTTP_HOST'))) { + if (request()->silent) { + session(['silent:' . $client->id => true]); + return redirect(request()->url()); + } + + if (! $account->checkSubdomain(Request::server('HTTP_HOST'))) { return response()->view('error', [ 'error' => trans('texts.invoice_not_found'), - 'hideHeader' => true, - 'clientViewCSS' => $account->clientViewCSS(), - 'clientFontUrl' => $account->getFontsUrl(), ]); } $account->loadLocalizationSettings($client); - if (! Input::has('phantomjs') && ! session('silent') && ! Session::has($invitationKey) - && (!Auth::check() || Auth::user()->account_id != $invoice->account_id)) { + if (! Input::has('phantomjs') && ! session('silent:' . $client->id) && ! Session::has($invitation->invitation_key) + && (! Auth::check() || Auth::user()->account_id != $invoice->account_id)) { if ($invoice->isType(INVOICE_TYPE_QUOTE)) { event(new QuoteInvitationWasViewed($invoice, $invitation)); } else { @@ -79,8 +78,8 @@ class ClientPortalController extends BaseController } } - Session::put($invitationKey, true); // track this invitation has been seen - Session::put('contact_key', $invitation->contact->contact_key);// track current contact + Session::put($invitation->invitation_key, true); // track this invitation has been seen + Session::put('contact_key', $invitation->contact->contact_key); // track current contact $invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date); $invoice->due_date = Utils::fromSqlDate($invoice->due_date); @@ -104,10 +103,13 @@ class ClientPortalController extends BaseController 'phone', ]); - // translate the client country name + // translate the country names if ($invoice->client->country) { $invoice->client->country->name = trans('texts.country_' . $invoice->client->country->name); } + if ($invoice->account->country) { + $invoice->account->country->name = trans('texts.country_' . $invoice->account->country->name); + } $data = []; $paymentTypes = $this->getPaymentTypes($account, $client, $invitation); @@ -116,12 +118,12 @@ class ClientPortalController extends BaseController $paymentURL = $paymentTypes[0]['url']; if ($paymentTypes[0]['gatewayTypeId'] == GATEWAY_TYPE_CUSTOM) { // do nothing - } elseif (!$account->isGatewayConfigured(GATEWAY_PAYPAL_EXPRESS)) { + } elseif (! $account->isGatewayConfigured(GATEWAY_PAYPAL_EXPRESS)) { $paymentURL = URL::to($paymentURL); } } - if ($wepayGateway = $account->getGatewayConfig(GATEWAY_WEPAY)){ + if ($wepayGateway = $account->getGatewayConfig(GATEWAY_WEPAY)) { $data['enableWePayACH'] = $wepayGateway->getAchEnabled(); } @@ -137,7 +139,6 @@ class ClientPortalController extends BaseController 'account' => $account, 'showApprove' => $showApprove, 'showBreadcrumbs' => false, - 'clientFontUrl' => $account->getFontsUrl(), 'invoice' => $invoice->hidePrivateFields(), 'invitation' => $invitation, 'invoiceLabels' => $account->getInvoiceLabels(), @@ -162,10 +163,10 @@ class ClientPortalController extends BaseController ]; } - if($account->hasFeature(FEATURE_DOCUMENTS) && $this->canCreateZip()){ + if ($account->hasFeature(FEATURE_DOCUMENTS) && $this->canCreateZip()) { $zipDocs = $this->getInvoiceZipDocuments($invoice, $size); - if(count($zipDocs) > 1){ + if (count($zipDocs) > 1) { $data['documentsZipURL'] = URL::to("client/documents/{$invitation->invitation_key}"); $data['documentsZipSize'] = $size; } @@ -189,7 +190,7 @@ class ClientPortalController extends BaseController public function download($invitationKey) { - if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return response()->view('error', [ 'error' => trans('texts.invoice_not_found'), 'hideHeader' => true, @@ -210,7 +211,7 @@ class ClientPortalController extends BaseController public function sign($invitationKey) { - if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return RESULT_FAILURE; } @@ -228,24 +229,29 @@ class ClientPortalController extends BaseController public function dashboard($contactKey = false) { if ($contactKey) { - if (!$contact = Contact::where('contact_key', '=', $contactKey)->first()) { + if (! $contact = Contact::where('contact_key', '=', $contactKey)->first()) { return $this->returnError(); } - Session::put('contact_key', $contactKey);// track current contact - } else if (!$contact = $this->getContact()) { + Session::put('contact_key', $contactKey); // track current contact + } elseif (! $contact = $this->getContact()) { return $this->returnError(); } $client = $contact->client; $account = $client->account; - $account->loadLocalizationSettings($client); + if (request()->silent) { + session(['silent:' . $client->id => true]); + return redirect(request()->url()); + } + + $account->loadLocalizationSettings($client); $color = $account->primary_color ? $account->primary_color : '#0b4d78'; $customer = false; - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); - } elseif (!$account->enable_client_portal_dashboard) { + } elseif (! $account->enable_client_portal_dashboard) { return redirect()->to('/client/invoices/'); } @@ -258,7 +264,6 @@ class ClientPortalController extends BaseController 'contact' => $contact, 'account' => $account, 'client' => $client, - 'clientFontUrl' => $account->getFontsUrl(), 'gateway' => $account->getTokenGateway(), 'paymentMethods' => $customer ? $customer->payment_methods : false, 'transactionToken' => $paymentDriver ? $paymentDriver->createTransactionToken() : false, @@ -269,7 +274,7 @@ class ClientPortalController extends BaseController public function activityDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } @@ -279,7 +284,9 @@ class ClientPortalController extends BaseController $query->where('activities.adjustment', '!=', 0); return Datatable::query($query) - ->addColumn('activities.id', function ($model) { return Utils::timestampToDateTimeString(strtotime($model->created_at)); }) + ->addColumn('activities.id', function ($model) { + return Utils::timestampToDateTimeString(strtotime($model->created_at)); + }) ->addColumn('activity_type_id', function ($model) { $data = [ 'client' => Utils::getClientDisplayName($model), @@ -293,22 +300,26 @@ class ClientPortalController extends BaseController ]; return trans("texts.activity_{$model->activity_type_id}", $data); - }) - ->addColumn('balance', function ($model) { return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); }) - ->addColumn('adjustment', function ($model) { return $model->adjustment != 0 ? Utils::wrapAdjustment($model->adjustment, $model->currency_id, $model->country_id) : ''; }) + }) + ->addColumn('balance', function ($model) { + return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); + }) + ->addColumn('adjustment', function ($model) { + return $model->adjustment != 0 ? Utils::wrapAdjustment($model->adjustment, $model->currency_id, $model->country_id) : ''; + }) ->make(); } public function recurringInvoiceIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -318,7 +329,6 @@ class ClientPortalController extends BaseController 'color' => $color, 'account' => $account, 'client' => $contact->client, - 'clientFontUrl' => $account->getFontsUrl(), 'title' => trans('texts.recurring_invoices'), 'entityType' => ENTITY_RECURRING_INVOICE, 'columns' => Utils::trans(['frequency', 'start_date', 'end_date', 'invoice_total', 'auto_bill']), @@ -329,14 +339,14 @@ class ClientPortalController extends BaseController public function invoiceIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -346,7 +356,6 @@ class ClientPortalController extends BaseController 'color' => $color, 'account' => $account, 'client' => $contact->client, - 'clientFontUrl' => $account->getFontsUrl(), 'title' => trans('texts.invoices'), 'entityType' => ENTITY_INVOICE, 'columns' => Utils::trans(['invoice_number', 'invoice_date', 'invoice_total', 'balance_due', 'due_date']), @@ -357,7 +366,7 @@ class ClientPortalController extends BaseController public function invoiceDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return ''; } @@ -366,24 +375,23 @@ class ClientPortalController extends BaseController public function recurringInvoiceDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return ''; } return $this->invoiceRepo->getClientRecurringDatatable($contact->id); } - public function paymentIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -392,10 +400,9 @@ class ClientPortalController extends BaseController $data = [ 'color' => $color, 'account' => $account, - 'clientFontUrl' => $account->getFontsUrl(), 'entityType' => ENTITY_PAYMENT, 'title' => trans('texts.payments'), - 'columns' => Utils::trans(['invoice', 'transaction_reference', 'method', 'payment_amount', 'payment_date', 'status']) + 'columns' => Utils::trans(['invoice', 'transaction_reference', 'method', 'payment_amount', 'payment_date', 'status']), ]; return response()->view('public_list', $data); @@ -403,19 +410,31 @@ class ClientPortalController extends BaseController public function paymentDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $payments = $this->paymentRepo->findForContact($contact->id, Input::get('sSearch')); return Datatable::query($payments) - ->addColumn('invoice_number', function ($model) { return $model->invitation_key ? link_to('/view/'.$model->invitation_key, $model->invoice_number)->toHtml() : $model->invoice_number; }) - ->addColumn('transaction_reference', function ($model) { return $model->transaction_reference ? $model->transaction_reference : ''.trans('texts.manual_entry').''; }) - ->addColumn('payment_type', function ($model) { return ($model->payment_type && !$model->last4) ? $model->payment_type : ($model->account_gateway_id ? 'Online payment' : ''); }) - ->addColumn('amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }) - ->addColumn('payment_date', function ($model) { return Utils::dateToString($model->payment_date); }) - ->addColumn('status', function ($model) { return $this->getPaymentStatusLabel($model); }) - ->orderColumns( 'invoice_number', 'transaction_reference', 'payment_type', 'amount', 'payment_date') + ->addColumn('invoice_number', function ($model) { + return $model->invitation_key ? link_to('/view/'.$model->invitation_key, $model->invoice_number)->toHtml() : $model->invoice_number; + }) + ->addColumn('transaction_reference', function ($model) { + return $model->transaction_reference ? $model->transaction_reference : ''.trans('texts.manual_entry').''; + }) + ->addColumn('payment_type', function ($model) { + return ($model->payment_type && ! $model->last4) ? $model->payment_type : ($model->account_gateway_id ? 'Online payment' : ''); + }) + ->addColumn('amount', function ($model) { + return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); + }) + ->addColumn('payment_date', function ($model) { + return Utils::dateToString($model->payment_date); + }) + ->addColumn('status', function ($model) { + return $this->getPaymentStatusLabel($model); + }) + ->orderColumns('invoice_number', 'transaction_reference', 'payment_type', 'amount', 'payment_date') ->make(); } @@ -443,19 +462,20 @@ class ClientPortalController extends BaseController $class = 'default'; break; } + return "

$label

"; } public function quoteIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -464,7 +484,6 @@ class ClientPortalController extends BaseController $data = [ 'color' => $color, 'account' => $account, - 'clientFontUrl' => $account->getFontsUrl(), 'title' => trans('texts.quotes'), 'entityType' => ENTITY_QUOTE, 'columns' => Utils::trans(['quote_number', 'quote_date', 'quote_total', 'due_date']), @@ -473,10 +492,9 @@ class ClientPortalController extends BaseController return response()->view('public_list', $data); } - public function quoteDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return false; } @@ -485,14 +503,14 @@ class ClientPortalController extends BaseController public function creditIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -501,7 +519,6 @@ class ClientPortalController extends BaseController $data = [ 'color' => $color, 'account' => $account, - 'clientFontUrl' => $account->getFontsUrl(), 'title' => trans('texts.credits'), 'entityType' => ENTITY_CREDIT, 'columns' => Utils::trans(['credit_date', 'credit_amount', 'credit_balance']), @@ -512,7 +529,7 @@ class ClientPortalController extends BaseController public function creditDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return false; } @@ -521,14 +538,14 @@ class ClientPortalController extends BaseController public function documentIndex() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } $account = $contact->account; $account->loadLocalizationSettings($contact->client); - if (!$account->enable_client_portal) { + if (! $account->enable_client_portal) { return $this->returnError(); } @@ -537,7 +554,6 @@ class ClientPortalController extends BaseController $data = [ 'color' => $color, 'account' => $account, - 'clientFontUrl' => $account->getFontsUrl(), 'title' => trans('texts.documents'), 'entityType' => ENTITY_DOCUMENT, 'columns' => Utils::trans(['invoice_number', 'name', 'document_date', 'document_size']), @@ -546,10 +562,9 @@ class ClientPortalController extends BaseController return response()->view('public_list', $data); } - public function documentDatatable() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return false; } @@ -565,50 +580,51 @@ class ClientPortalController extends BaseController ]); } - private function getContact() { + private function getContact() + { $contactKey = session('contact_key'); - if (!$contactKey) { + if (! $contactKey) { return false; } $contact = Contact::where('contact_key', '=', $contactKey)->first(); - if (!$contact || $contact->is_deleted) { + if (! $contact || $contact->is_deleted) { return false; } return $contact; } - public function getDocumentVFSJS($publicId, $name){ - if (!$contact = $this->getContact()) { + public function getDocumentVFSJS($publicId, $name) + { + if (! $contact = $this->getContact()) { return $this->returnError(); } $document = Document::scope($publicId, $contact->account_id)->first(); - - if(!$document->isPDFEmbeddable()){ - return Response::view('error', ['error'=>'Image does not exist!'], 404); + if (! $document->isPDFEmbeddable()) { + return Response::view('error', ['error' => 'Image does not exist!'], 404); } $authorized = false; - if($document->expense && $document->expense->client_id == $contact->client_id){ + if ($document->expense && $document->expense->client_id == $contact->client_id) { $authorized = true; - } else if($document->invoice && $document->invoice->client_id ==$contact->client_id){ + } elseif ($document->invoice && $document->invoice->client_id == $contact->client_id) { $authorized = true; } - if(!$authorized){ - return Response::view('error', ['error'=>'Not authorized'], 403); + if (! $authorized) { + return Response::view('error', ['error' => 'Not authorized'], 403); } - if(substr($name, -3)=='.js'){ + if (substr($name, -3) == '.js') { $name = substr($name, 0, -3); } - $content = $document->preview?$document->getRawPreview():$document->getRaw(); + $content = $document->preview ? $document->getRawPreview() : $document->getRaw(); $content = 'ninjaAddVFSDoc('.json_encode(intval($publicId).'/'.strval($name)).',"'.base64_encode($content).'")'; $response = Response::make($content, 200); $response->header('content-type', 'text/javascript'); @@ -617,14 +633,16 @@ class ClientPortalController extends BaseController return $response; } - protected function canCreateZip(){ + protected function canCreateZip() + { return function_exists('gmp_init'); } - protected function getInvoiceZipDocuments($invoice, &$size=0){ + protected function getInvoiceZipDocuments($invoice, &$size = 0) + { $documents = $invoice->documents; - foreach($invoice->expenses as $expense){ + foreach ($invoice->expenses as $expense) { $documents = $documents->merge($expense->documents); } @@ -633,31 +651,31 @@ class ClientPortalController extends BaseController $size = 0; $maxSize = MAX_ZIP_DOCUMENTS_SIZE * 1000; $toZip = []; - foreach($documents as $document){ - if($size + $document->size > $maxSize)break; + foreach ($documents as $document) { + if ($size + $document->size > $maxSize) { + break; + } - if(!empty($toZip[$document->name])){ + if (! empty($toZip[$document->name])) { // This name is taken - if($toZip[$document->name]->hash != $document->hash){ + if ($toZip[$document->name]->hash != $document->hash) { // 2 different files with the same name $nameInfo = pathinfo($document->name); - for($i = 1;; $i++){ + for ($i = 1; ; $i++) { $name = $nameInfo['filename'].' ('.$i.').'.$nameInfo['extension']; - if(empty($toZip[$name])){ + if (empty($toZip[$name])) { $toZip[$name] = $document; $size += $document->size; break; - } else if ($toZip[$name]->hash == $document->hash){ + } elseif ($toZip[$name]->hash == $document->hash) { // We're not adding this after all break; } } - } - } - else{ + } else { $toZip[$document->name] = $document; $size += $document->size; } @@ -666,32 +684,35 @@ class ClientPortalController extends BaseController return $toZip; } - public function getInvoiceDocumentsZip($invitationKey){ - if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + public function getInvoiceDocumentsZip($invitationKey) + { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return $this->returnError(); } - Session::put('contact_key', $invitation->contact->contact_key);// track current contact + Session::put('contact_key', $invitation->contact->contact_key); // track current contact $invoice = $invitation->invoice; $toZip = $this->getInvoiceZipDocuments($invoice); - if(!count($toZip)){ - return Response::view('error', ['error'=>'No documents small enough'], 404); + if (! count($toZip)) { + return Response::view('error', ['error' => 'No documents small enough'], 404); } $zip = new ZipArchive($invitation->account->name.' Invoice '.$invoice->invoice_number.'.zip'); - return Response::stream(function() use ($toZip, $zip) { - foreach($toZip as $name=>$document){ + + return Response::stream(function () use ($toZip, $zip) { + foreach ($toZip as $name => $document) { $fileStream = $document->getStream(); - if($fileStream){ - $zip->init_file_stream_transfer($name, $document->size, ['time'=>$document->created_at->timestamp]); - while ($buffer = fread($fileStream, 256000))$zip->stream_file_part($buffer); + if ($fileStream) { + $zip->init_file_stream_transfer($name, $document->size, ['time' => $document->created_at->timestamp]); + while ($buffer = fread($fileStream, 256000)) { + $zip->stream_file_part($buffer); + } fclose($fileStream); $zip->complete_file_stream(); - } - else{ + } else { $zip->add_file($name, $document->getRaw()); } } @@ -699,25 +720,26 @@ class ClientPortalController extends BaseController }, 200); } - public function getDocument($invitationKey, $publicId){ - if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + public function getDocument($invitationKey, $publicId) + { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return $this->returnError(); } - Session::put('contact_key', $invitation->contact->contact_key);// track current contact + Session::put('contact_key', $invitation->contact->contact_key); // track current contact $clientId = $invitation->invoice->client_id; $document = Document::scope($publicId, $invitation->account_id)->firstOrFail(); $authorized = false; - if($document->expense && $document->expense->client_id == $invitation->invoice->client_id){ + if ($document->expense && $document->expense->client_id == $invitation->invoice->client_id) { $authorized = true; - } else if($document->invoice && $document->invoice->client_id == $invitation->invoice->client_id){ + } elseif ($document->invoice && $document->invoice->client_id == $invitation->invoice->client_id) { $authorized = true; } - if(!$authorized){ - return Response::view('error', ['error'=>'Not authorized'], 403); + if (! $authorized) { + return Response::view('error', ['error' => 'Not authorized'], 403); } return DocumentController::getDownloadResponse($document); @@ -725,7 +747,7 @@ class ClientPortalController extends BaseController public function paymentMethods() { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } @@ -740,8 +762,6 @@ class ClientPortalController extends BaseController 'contact' => $contact, 'color' => $account->primary_color ? $account->primary_color : '#0b4d78', 'client' => $client, - 'clientViewCSS' => $account->clientViewCSS(), - 'clientFontUrl' => $account->getFontsUrl(), 'paymentMethods' => $customer ? $customer->payment_methods : false, 'gateway' => $account->getTokenGateway(), 'title' => trans('texts.payment_methods'), @@ -757,7 +777,7 @@ class ClientPortalController extends BaseController $amount1 = Input::get('verification1'); $amount2 = Input::get('verification2'); - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } @@ -773,12 +793,12 @@ class ClientPortalController extends BaseController Session::flash('message', trans('texts.payment_method_verified')); } - return redirect()->to($account->enable_client_portal_dashboard?'/client/dashboard':'/client/payment_methods/'); + return redirect()->to($account->enable_client_portal_dashboard ? '/client/dashboard' : '/client/payment_methods/'); } public function removePaymentMethod($publicId) { - if (!$contact = $this->getContact()) { + if (! $contact = $this->getContact()) { return $this->returnError(); } @@ -797,11 +817,12 @@ class ClientPortalController extends BaseController Session::flash('error', $exception->getMessage()); } - return redirect()->to($client->account->enable_client_portal_dashboard?'/client/dashboard':'/client/payment_methods/'); + return redirect()->to($client->account->enable_client_portal_dashboard ? '/client/dashboard' : '/client/payment_methods/'); } - public function setDefaultPaymentMethod(){ - if (!$contact = $this->getContact()) { + public function setDefaultPaymentMethod() + { + if (! $contact = $this->getContact()) { return $this->returnError(); } @@ -810,7 +831,7 @@ class ClientPortalController extends BaseController $validator = Validator::make(Input::all(), ['source' => 'required']); if ($validator->fails()) { - return Redirect::to($client->account->enable_client_portal_dashboard?'/client/dashboard':'/client/payment_methods/'); + return Redirect::to($client->account->enable_client_portal_dashboard ? '/client/dashboard' : '/client/payment_methods/'); } $paymentDriver = $account->paymentDriver(false, GATEWAY_TYPE_TOKEN); @@ -824,7 +845,7 @@ class ClientPortalController extends BaseController Session::flash('message', trans('texts.payment_method_set_as_default')); - return redirect()->to($client->account->enable_client_portal_dashboard?'/client/dashboard':'/client/payment_methods/'); + return redirect()->to($client->account->enable_client_portal_dashboard ? '/client/dashboard' : '/client/payment_methods/'); } private function paymentMethodError($type, $error, $accountGateway = false, $exception = false) @@ -839,8 +860,9 @@ class ClientPortalController extends BaseController Utils::logError("Payment Method Error [{$type}]: " . ($exception ? Utils::getErrorString($exception) : $message), 'PHP', true); } - public function setAutoBill(){ - if (!$contact = $this->getContact()) { + public function setAutoBill() + { + if (! $contact = $this->getContact()) { return $this->returnError(); } diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index b0c144732f6a..8c55a50d0469 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -1,11 +1,13 @@ -credit_date = Utils::fromSqlDate($credit->credit_date); - $data = array( + $data = [ 'client' => $credit->client, 'clientPublicId' => $credit->client->public_id, 'credit' => $credit, @@ -78,7 +80,7 @@ class CreditController extends BaseController 'url' => 'credits/'.$publicId, 'title' => 'Edit Credit', 'clients' => null, - ); + ]; return View::make('credits.edit', $data); } diff --git a/app/Http/Controllers/DashboardApiController.php b/app/Http/Controllers/DashboardApiController.php index 0db08e555010..d87ea271392a 100644 --- a/app/Http/Controllers/DashboardApiController.php +++ b/app/Http/Controllers/DashboardApiController.php @@ -1,9 +1,10 @@ -pastDue($accountId, $userId, $viewAll); $upcoming = $dashboardRepo->upcoming($accountId, $userId, $viewAll); $payments = $dashboardRepo->payments($accountId, $userId, $viewAll); - $expenses = $dashboardRepo->expenses($accountId, $userId, $viewAll); + $expenses = $dashboardRepo->expenses($account, $userId, $viewAll); $tasks = $dashboardRepo->tasks($accountId, $userId, $viewAll); - $showBlueVinePromo = $user->is_admin + $showBlueVinePromo = $user->is_admin && env('BLUEVINE_PARTNER_UNIQUE_ID') && ! $account->company->bluevine_status - && $account->created_at <= date( 'Y-m-d', strtotime( '-1 month' )); + && $account->created_at <= date('Y-m-d', strtotime('-1 month')); $showWhiteLabelExpired = Utils::isSelfHost() && $account->company->hasExpiredPlan(PLAN_WHITE_LABEL); @@ -60,8 +59,57 @@ class DashboardController extends BaseController } } - // check if the account has multiple curencies + $data = [ + 'account' => $user->account, + 'user' => $user, + 'paidToDate' => $paidToDate, + 'balances' => $balances, + 'averageInvoice' => $averageInvoice, + 'invoicesSent' => $metrics ? $metrics->invoices_sent : 0, + 'activeClients' => $metrics ? $metrics->active_clients : 0, + 'activities' => $activities, + 'pastDue' => $pastDue, + 'upcoming' => $upcoming, + 'payments' => $payments, + 'title' => trans('texts.dashboard'), + 'hasQuotes' => $hasQuotes, + 'showBreadcrumbs' => false, + 'currencies' => $this->getCurrencyCodes(), + 'expenses' => $expenses, + 'tasks' => $tasks, + 'showBlueVinePromo' => $showBlueVinePromo, + 'showWhiteLabelExpired' => $showWhiteLabelExpired, + ]; + + if ($showBlueVinePromo) { + $usdLast12Months = 0; + $pastYear = date('Y-m-d', strtotime('-1 year')); + $paidLast12Months = $dashboardRepo->paidToDate($account, $userId, $viewAll, $pastYear); + + foreach ($paidLast12Months as $item) { + if ($item->currency_id == null) { + $currency = $user->account->currency_id ?: DEFAULT_CURRENCY; + } else { + $currency = $item->currency_id; + } + + if ($currency == CURRENCY_DOLLAR) { + $usdLast12Months += $item->value; + } + } + + $data['usdLast12Months'] = $usdLast12Months; + } + + return View::make('dashboard', $data); + } + + private function getCurrencyCodes() + { + $account = Auth::user()->account; $currencyIds = $account->currency_id ? [$account->currency_id] : [DEFAULT_CURRENCY]; + + // get client/invoice currencies $data = Client::scope() ->withArchived() ->distinct() @@ -75,54 +123,26 @@ class DashboardController extends BaseController } }, $data); + // get expense currencies + $data = Expense::scope() + ->withArchived() + ->distinct() + ->get(['expense_currency_id']) + ->toArray(); + + array_map(function ($item) use (&$currencyIds) { + $currencyId = intval($item['expense_currency_id']); + if ($currencyId && ! in_array($currencyId, $currencyIds)) { + $currencyIds[] = $currencyId; + } + }, $data); + $currencies = []; foreach ($currencyIds as $currencyId) { $currencies[$currencyId] = Utils::getFromCache($currencyId, 'currencies')->code; } - $data = [ - 'account' => $user->account, - 'user' => $user, - 'paidToDate' => $paidToDate, - 'balances' => $balances, - 'averageInvoice' => $averageInvoice, - 'invoicesSent' => $metrics ? $metrics->invoices_sent : 0, - 'activeClients' => $metrics ? $metrics->active_clients : 0, - 'activities' => $activities, - 'pastDue' => $pastDue, - 'upcoming' => $upcoming, - 'payments' => $payments, - 'title' => trans('texts.dashboard'), - 'hasQuotes' => $hasQuotes, - 'showBreadcrumbs' => false, - 'currencies' => $currencies, - 'expenses' => $expenses, - 'tasks' => $tasks, - 'showBlueVinePromo' => $showBlueVinePromo, - 'showWhiteLabelExpired' => $showWhiteLabelExpired, - ]; - - if ($showBlueVinePromo) { - $usdLast12Months = 0; - $pastYear = date( 'Y-m-d', strtotime( '-1 year' )); - $paidLast12Months = $dashboardRepo->paidToDate( $account, $userId, $viewAll, $pastYear ); - - foreach ( $paidLast12Months as $item ) { - if ( $item->currency_id == null ) { - $currency = $user->account->currency_id ?: DEFAULT_CURRENCY; - } else { - $currency = $item->currency_id; - } - - if ( $currency == CURRENCY_DOLLAR ) { - $usdLast12Months += $item->value; - } - } - - $data['usdLast12Months'] = $usdLast12Months; - } - - return View::make('dashboard', $data); + return $currencies; } public function chartData($groupBy, $startDate, $endDate, $currencyCode, $includeExpenses) diff --git a/app/Http/Controllers/DocumentAPIController.php b/app/Http/Controllers/DocumentAPIController.php index b639bb7dda65..fb85331eb1e2 100644 --- a/app/Http/Controllers/DocumentAPIController.php +++ b/app/Http/Controllers/DocumentAPIController.php @@ -1,12 +1,14 @@ -listResponse($documents); - } /** @@ -65,10 +66,11 @@ class DocumentAPIController extends BaseAPIController { $document = $request->entity(); - if(array_key_exists($document->type, Document::$types)) + if (array_key_exists($document->type, Document::$types)) { return DocumentController::getDownloadResponse($document); - else - return $this->errorResponse(['error'=>'Invalid mime type'],400); + } else { + return $this->errorResponse(['error' => 'Invalid mime type'], 400); + } } /** @@ -94,7 +96,6 @@ class DocumentAPIController extends BaseAPIController */ public function store(CreateDocumentRequest $request) { - $document = $this->documentRepo->upload($request->all()); return $this->itemResponse($document); diff --git a/app/Http/Controllers/DocumentController.php b/app/Http/Controllers/DocumentController.php index f25a027f8662..28a544cb3dc5 100644 --- a/app/Http/Controllers/DocumentController.php +++ b/app/Http/Controllers/DocumentController.php @@ -1,13 +1,15 @@ -entity()); } - public static function getDownloadResponse($document){ + public static function getDownloadResponse($document) + { $direct_url = $document->getDirectUrl(); - if($direct_url){ + if ($direct_url) { return redirect($direct_url); } $stream = $document->getStream(); - if($stream){ + if ($stream) { $headers = [ - 'Content-Type' => Document::$types[$document->type]['mime'], - 'Content-Length' => $document->size, + 'Content-Type' => Document::$types[$document->type]['mime'], + 'Content-Length' => $document->size, ]; - $response = Response::stream(function() use ($stream) { + $response = Response::stream(function () use ($stream) { fpassthru($stream); }, 200, $headers); - } - else{ + } else { $response = Response::make($document->getRaw(), 200); $response->header('content-type', Document::$types[$document->type]['mime']); } @@ -56,12 +58,12 @@ class DocumentController extends BaseController { $document = $request->entity(); - if(empty($document->preview)){ - return Response::view('error', ['error'=>'Preview does not exist!'], 404); + if (empty($document->preview)) { + return Response::view('error', ['error' => 'Preview does not exist!'], 404); } $direct_url = $document->getDirectPreviewUrl(); - if($direct_url){ + if ($direct_url) { return redirect($direct_url); } @@ -76,15 +78,15 @@ class DocumentController extends BaseController { $document = $request->entity(); - if(substr($name, -3)=='.js'){ + if (substr($name, -3) == '.js') { $name = substr($name, 0, -3); } - if(!$document->isPDFEmbeddable()){ - return Response::view('error', ['error'=>'Image does not exist!'], 404); + if (! $document->isPDFEmbeddable()) { + return Response::view('error', ['error' => 'Image does not exist!'], 404); } - $content = $document->preview?$document->getRawPreview():$document->getRaw(); + $content = $document->preview ? $document->getRawPreview() : $document->getRaw(); $content = 'ninjaAddVFSDoc('.json_encode(intval($publicId).'/'.strval($name)).',"'.base64_encode($content).'")'; $response = Response::make($content, 200); $response->header('content-type', 'text/javascript'); @@ -97,16 +99,16 @@ class DocumentController extends BaseController { $result = $this->documentRepo->upload($request->all(), $doc_array); - if(is_string($result)){ - return Response::json([ + if (is_string($result)) { + return Response::json([ 'error' => $result, - 'code' => 400 + 'code' => 400, ], 400); } else { - return Response::json([ + return Response::json([ 'error' => false, 'document' => $doc_array, - 'code' => 200 + 'code' => 200, ], 200); } } diff --git a/app/Http/Controllers/ExpenseApiController.php b/app/Http/Controllers/ExpenseApiController.php index 2f38a53362de..07bbcb995fce 100644 --- a/app/Http/Controllers/ExpenseApiController.php +++ b/app/Http/Controllers/ExpenseApiController.php @@ -1,12 +1,13 @@ -withTrashed() ->with('client', 'invoice', 'vendor', 'expense_category') - ->orderBy('created_at','desc'); + ->orderBy('created_at', 'desc'); return $this->listResponse($expenses); } @@ -102,6 +103,8 @@ class ExpenseApiController extends BaseAPIController * description="an ""unexpected"" error" * ) * ) + * + * @param mixed $publicId */ public function update(UpdateExpenseRequest $request, $publicId) { @@ -145,8 +148,4 @@ class ExpenseApiController extends BaseAPIController return $this->itemResponse($expense); } - - - - } diff --git a/app/Http/Controllers/ExpenseCategoryApiController.php b/app/Http/Controllers/ExpenseCategoryApiController.php index 1d7515ceed40..cbdcb3f5e1a4 100644 --- a/app/Http/Controllers/ExpenseCategoryApiController.php +++ b/app/Http/Controllers/ExpenseCategoryApiController.php @@ -1,13 +1,12 @@ -itemResponse($category); } - /** * @SWG\Put( * path="/expense_categories/{expense_category_id}", diff --git a/app/Http/Controllers/ExpenseCategoryController.php b/app/Http/Controllers/ExpenseCategoryController.php index ebee16df7c89..6dcbd83b4c32 100644 --- a/app/Http/Controllers/ExpenseCategoryController.php +++ b/app/Http/Controllers/ExpenseCategoryController.php @@ -1,15 +1,16 @@ -to('/expense_categories'); } - } diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index e159b268f22c..d0be38fc8491 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -1,25 +1,27 @@ - 'javascript:submitAction("add_to_invoice", '.$invoice->public_id.')', 'label' => trans('texts.add_to_invoice', ['invoice' => $invoice->invoice_number])]; } - } $actions[] = \DropdownButton::DIVIDER; - if (!$expense->trashed()) { + if (! $expense->trashed()) { $actions[] = ['url' => 'javascript:submitAction("archive")', 'label' => trans('texts.archive_expense')]; $actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans('texts.delete_expense')]; } else { @@ -144,7 +145,8 @@ class ExpenseController extends BaseController /** * Update the specified resource in storage. * - * @param int $id + * @param int $id + * * @return Response */ public function update(UpdateExpenseRequest $request) @@ -179,10 +181,9 @@ class ExpenseController extends BaseController public function bulk() { $action = Input::get('action'); - $ids = Input::get('public_id') ? Input::get('public_id') : Input::get('ids'); + $ids = Input::get('public_id') ? Input::get('public_id') : Input::get('ids'); - switch($action) - { + switch ($action) { case 'invoice': case 'add_to_invoice': $expenses = Expense::scope($ids)->with('client')->get(); @@ -190,26 +191,28 @@ class ExpenseController extends BaseController $currencyId = null; // Validate that either all expenses do not have a client or if there is a client, it is the same client - foreach ($expenses as $expense) - { + foreach ($expenses as $expense) { if ($expense->client) { - if (!$clientPublicId) { + if (! $clientPublicId) { $clientPublicId = $expense->client->public_id; } elseif ($clientPublicId != $expense->client->public_id) { Session::flash('error', trans('texts.expense_error_multiple_clients')); + return Redirect::to('expenses'); } } - if (!$currencyId) { + if (! $currencyId) { $currencyId = $expense->invoice_currency_id; } elseif ($currencyId != $expense->invoice_currency_id && $expense->invoice_currency_id) { Session::flash('error', trans('texts.expense_error_multiple_currencies')); + return Redirect::to('expenses'); } if ($expense->invoice_id) { Session::flash('error', trans('texts.expense_error_invoiced')); + return Redirect::to('expenses'); } } @@ -220,15 +223,15 @@ class ExpenseController extends BaseController ->with('expenses', $ids); } else { $invoiceId = Input::get('invoice_id'); + return Redirect::to("invoices/{$invoiceId}/edit") ->with('expenseCurrencyId', $currencyId) ->with('expenses', $ids); - } break; default: - $count = $this->expenseService->bulk($ids, $action); + $count = $this->expenseService->bulk($ids, $action); } if ($count > 0) { diff --git a/app/Http/Controllers/ExportController.php b/app/Http/Controllers/ExportController.php index ed0d1480e12e..9a8e54f59d17 100644 --- a/app/Http/Controllers/ExportController.php +++ b/app/Http/Controllers/ExportController.php @@ -1,25 +1,27 @@ -all(); $fields = array_filter(array_map(function ($key) { - if ( ! in_array($key, ['format', 'include', '_token'])) { + if (! in_array($key, ['format', 'include', '_token'])) { return $key; } else { return null; } }, array_keys($fields), $fields)); - $fileName = "invoice-ninja-" . join('-', $fields) . "-{$date}"; + $fileName = 'invoice-ninja-' . implode('-', $fields) . "-{$date}"; } if ($format === 'JSON') { @@ -74,17 +76,17 @@ class ExportController extends BaseController // eager load data, include archived but exclude deleted $account = Auth::user()->account; - $account->load(['clients' => function($query) { + $account->load(['clients' => function ($query) { $query->withArchived() - ->with(['contacts', 'invoices' => function($query) { + ->with(['contacts', 'invoices' => function ($query) { $query->withArchived() - ->with(['invoice_items', 'payments' => function($query) { + ->with(['invoice_items', 'payments' => function ($query) { $query->withArchived(); }]); }]); }]); - $resource = new Item($account, new AccountTransformer); + $resource = new Item($account, new AccountTransformer()); $data = $manager->parseIncludes('clients.invoices.payments') ->createData($resource) ->toArray(); @@ -102,8 +104,8 @@ class ExportController extends BaseController { $data = $this->getData($request); - return Excel::create($fileName, function($excel) use ($data) { - $excel->sheet('', function($sheet) use ($data) { + return Excel::create($fileName, function ($excel) use ($data) { + $excel->sheet('', function ($sheet) use ($data) { $sheet->loadView('export', $data); }); })->download('csv'); @@ -120,8 +122,7 @@ class ExportController extends BaseController $user = Auth::user(); $data = $this->getData($request); - return Excel::create($fileName, function($excel) use ($user, $data) { - + return Excel::create($fileName, function ($excel) use ($user, $data) { $excel->setTitle($data['title']) ->setCreator($user->getDisplayName()) ->setLastModifiedBy($user->getDisplayName()) @@ -140,7 +141,7 @@ class ExportController extends BaseController $key = 'recurring_invoices'; } $label = trans("texts.{$key}"); - $excel->sheet($label, function($sheet) use ($key, $data) { + $excel->sheet($label, function ($sheet) use ($key, $data) { if ($key === 'quotes') { $key = 'invoices'; $data['entityType'] = ENTITY_QUOTE; @@ -164,7 +165,7 @@ class ExportController extends BaseController $data = [ 'account' => $account, 'title' => 'Invoice Ninja v' . NINJA_VERSION . ' - ' . $account->formatDateTime($account->getDateTime()), - 'multiUser' => $account->users->count() > 1 + 'multiUser' => $account->users->count() > 1, ]; if ($request->input('include') === 'all' || $request->input('clients')) { diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 969dcf84cb2b..7f26529fe06d 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -1,19 +1,21 @@ -with('sign_up', Input::get('sign_up')); } else { return View::make('public.invoice_now'); @@ -85,6 +88,7 @@ class HomeController extends BaseController /** * @param $userType * @param $version + * * @return \Illuminate\Http\JsonResponse */ public function newsFeed($userType, $version) @@ -134,9 +138,9 @@ class HomeController extends BaseController */ public function contactUs() { - Mail::raw(request()->message, function ($message) { + Mail::raw(request()->contact_us_message, function ($message) { $subject = 'Customer Message'; - if ( ! Utils::isNinja()) { + if (! Utils::isNinja()) { $subject .= ': v' . NINJA_VERSION; } $message->to(env('CONTACT_EMAIL', 'contact@invoiceninja.com')) @@ -145,7 +149,6 @@ class HomeController extends BaseController ->subject($subject); }); - return redirect(Request::server('HTTP_REFERER')) - ->with('message', trans('texts.contact_us_response')); + return RESULT_SUCCESS; } } diff --git a/app/Http/Controllers/ImportController.php b/app/Http/Controllers/ImportController.php index e5b74453e4e0..6fde46cd1613 100644 --- a/app/Http/Controllers/ImportController.php +++ b/app/Http/Controllers/ImportController.php @@ -1,12 +1,14 @@ -importService->mapCSV($files); + return View::make('accounts.import_map', ['data' => $data]); } elseif ($source === IMPORT_JSON) { $results = $this->importService->importJSON($files[IMPORT_JSON]); + return $this->showResult($results); } else { $results = $this->importService->importFiles($source, $files); + return $this->showResult($results); } } catch (Exception $exception) { Utils::logError($exception); Session::flash('error', $exception->getMessage()); + return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } } @@ -61,10 +68,12 @@ class ImportController extends BaseController try { $results = $this->importService->importCSV($map, $headers); + return $this->showResult($results); } catch (Exception $exception) { Utils::logError($exception); Session::flash('error', $exception->getMessage()); + return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } } diff --git a/app/Http/Controllers/IntegrationController.php b/app/Http/Controllers/IntegrationController.php index cb1a905f3775..1437a215e8a6 100644 --- a/app/Http/Controllers/IntegrationController.php +++ b/app/Http/Controllers/IntegrationController.php @@ -1,13 +1,15 @@ -account_id) ->where('event_id', '=', $eventId)->first(); - if (!$subscription) { + if (! $subscription) { $subscription = new Subscription(); $subscription->account_id = Auth::user()->account_id; $subscription->event_id = $eventId; @@ -34,7 +36,7 @@ class IntegrationController extends Controller $subscription->target_url = trim(Input::get('target_url')); $subscription->save(); - if (!$subscription->id) { + if (! $subscription->id) { return Response::json('Failed to create subscription', 500); } diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index a10fe91b9946..d310f6f9ee67 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -1,24 +1,26 @@ -listResponse($invoices); } - /** - * @SWG\Get( - * path="/invoices/{invoice_id}", - * summary="Individual Invoice", - * tags={"invoice"}, - * @SWG\Response( - * response=200, - * description="A single invoice", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ - + /** + * @SWG\Get( + * path="/invoices/{invoice_id}", + * summary="Individual Invoice", + * tags={"invoice"}, + * @SWG\Response( + * response=200, + * description="A single invoice", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ public function show(InvoiceRequest $request) { return $this->itemResponse($request->entity()); @@ -113,14 +114,15 @@ class InvoiceApiController extends BaseAPIController if (isset($data['email'])) { $email = $data['email']; - $client = Client::scope()->whereHas('contacts', function($query) use ($email) { + $client = Client::scope()->whereHas('contacts', function ($query) use ($email) { $query->where('email', '=', $email); })->first(); - if (!$client) { - $validator = Validator::make(['email'=>$email], ['email' => 'email']); + if (! $client) { + $validator = Validator::make(['email' => $email], ['email' => 'email']); if ($validator->fails()) { $messages = $validator->messages(); + return $messages->first(); } @@ -152,7 +154,7 @@ class InvoiceApiController extends BaseAPIController $client = $this->clientRepo->save($clientData); } - } else if (isset($data['client_id'])) { + } elseif (isset($data['client_id'])) { $client = Client::scope($data['client_id'])->firstOrFail(); } @@ -174,11 +176,11 @@ class InvoiceApiController extends BaseAPIController if ($invoice->isInvoice()) { if ($isAutoBill) { $payment = $this->paymentService->autoBillInvoice($invoice); - } else if ($isPaid) { + } elseif ($isPaid) { $payment = $this->paymentRepo->save([ 'invoice_id' => $invoice->id, 'client_id' => $client->id, - 'amount' => $data['paid'] + 'amount' => $data['paid'], ]); } } @@ -187,7 +189,7 @@ class InvoiceApiController extends BaseAPIController if ($payment) { app('App\Ninja\Mailers\ContactMailer')->sendPaymentConfirmation($payment); //$this->dispatch(new SendPaymentEmail($payment)); - } elseif ( ! $invoice->is_recurring) { + } elseif (! $invoice->is_recurring) { app('App\Ninja\Mailers\ContactMailer')->sendInvoice($invoice); //$this->dispatch(new SendInvoiceEmail($invoice)); } @@ -223,22 +225,22 @@ class InvoiceApiController extends BaseAPIController 'custom_value2' => 0, 'custom_taxes1' => false, 'custom_taxes2' => false, - 'partial' => 0 + 'partial' => 0, ]; - if (!isset($data['invoice_status_id']) || $data['invoice_status_id'] == 0) { + if (! isset($data['invoice_status_id']) || $data['invoice_status_id'] == 0) { $data['invoice_status_id'] = INVOICE_STATUS_DRAFT; } - if (!isset($data['invoice_date'])) { + if (! isset($data['invoice_date'])) { $fields['invoice_date_sql'] = date_create()->format('Y-m-d'); } - if (!isset($data['due_date'])) { + if (! isset($data['due_date'])) { $fields['due_date_sql'] = false; } foreach ($fields as $key => $val) { - if (!isset($data[$key])) { + if (! isset($data[$key])) { $data[$key] = $val; } } @@ -263,7 +265,7 @@ class InvoiceApiController extends BaseAPIController private function prepareItem($item) { // if only the product key is set we'll load the cost and notes - if (!empty($item['product_key']) && empty($item['cost']) && empty($item['notes'])) { + if (! empty($item['product_key']) && empty($item['cost']) && empty($item['notes'])) { $product = Product::findProductByKey($item['product_key']); if ($product) { if (empty($item['cost'])) { @@ -279,11 +281,11 @@ class InvoiceApiController extends BaseAPIController 'cost' => 0, 'product_key' => '', 'notes' => '', - 'qty' => 1 + 'qty' => 1, ]; foreach ($fields as $key => $val) { - if (!isset($item[$key])) { + if (! isset($item[$key])) { $item[$key] = $val; } } @@ -299,35 +301,39 @@ class InvoiceApiController extends BaseAPIController $response = json_encode(RESULT_SUCCESS, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); + return Response::make($response, 200, $headers); } - /** - * @SWG\Put( - * path="/invoices", - * tags={"invoice"}, - * summary="Update an invoice", - * @SWG\Parameter( - * in="body", - * name="body", - * @SWG\Schema(ref="#/definitions/Invoice") - * ), - * @SWG\Response( - * response=200, - * description="Update invoice", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ + /** + * @SWG\Put( + * path="/invoices", + * tags={"invoice"}, + * summary="Update an invoice", + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Invoice") + * ), + * @SWG\Response( + * response=200, + * description="Update invoice", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + * + * @param mixed $publicId + */ public function update(UpdateInvoiceAPIRequest $request, $publicId) { if ($request->action == ACTION_CONVERT) { $quote = $request->entity(); $invoice = $this->invoiceRepo->cloneInvoice($quote, $quote->id); + return $this->itemResponse($invoice); } elseif ($request->action) { return $this->handleAction($request); @@ -344,28 +350,27 @@ class InvoiceApiController extends BaseAPIController return $this->itemResponse($invoice); } - /** - * @SWG\Delete( - * path="/invoices", - * tags={"invoice"}, - * summary="Delete an invoice", - * @SWG\Parameter( - * in="body", - * name="body", - * @SWG\Schema(ref="#/definitions/Invoice") - * ), - * @SWG\Response( - * response=200, - * description="Delete invoice", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ - + /** + * @SWG\Delete( + * path="/invoices", + * tags={"invoice"}, + * summary="Delete an invoice", + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Invoice") + * ), + * @SWG\Response( + * response=200, + * description="Delete invoice", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Invoice")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ public function destroy(UpdateInvoiceAPIRequest $request) { $invoice = $request->entity(); diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 2f46ff2d60dc..6a65c5e638c0 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -1,34 +1,36 @@ -balance = $invoice->amount; $invoice->invoice_status_id = 0; $invoice->invoice_date = date_create()->format('Y-m-d'); + $invoice->deleted_at = null; $method = 'POST'; $url = "{$entityType}s"; } else { @@ -111,7 +114,7 @@ class InvoiceController extends BaseController } $invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date); - $invoice->recurring_due_date = $invoice->due_date;// Keep in SQL form + $invoice->recurring_due_date = $invoice->due_date; // Keep in SQL form $invoice->due_date = Utils::fromSqlDate($invoice->due_date); $invoice->start_date = Utils::fromSqlDate($invoice->start_date); $invoice->end_date = Utils::fromSqlDate($invoice->end_date); @@ -124,7 +127,7 @@ class InvoiceController extends BaseController $lastSent = ($invoice->is_recurring && $invoice->last_sent_date) ? $invoice->recurring_invoices->last() : null; - if(!Auth::user()->hasPermission('view_all')){ + if (! Auth::user()->hasPermission('view_all')) { $clients = $clients->where('clients.user_id', '=', Auth::user()->id); } @@ -139,10 +142,10 @@ class InvoiceController extends BaseController 'title' => trans("texts.edit_{$entityType}"), 'client' => $invoice->client, 'isRecurring' => $invoice->is_recurring, - 'lastSent' => $lastSent]; + 'lastSent' => $lastSent, ]; $data = array_merge($data, self::getViewModel($invoice)); - if ($invoice->isSent() && $invoice->getAutoBillEnabled() && !$invoice->isPaid()) { + if ($invoice->isSent() && $invoice->getAutoBillEnabled() && ! $invoice->isPaid()) { $data['autoBillChangeWarning'] = $invoice->client->autoBillLater(); } @@ -151,7 +154,7 @@ class InvoiceController extends BaseController } // Set the invitation data on the client's contacts - if ( ! $clone) { + if (! $clone) { $clients = $data['clients']; foreach ($clients as $client) { if ($client->id != $invoice->client->id) { @@ -193,7 +196,7 @@ class InvoiceController extends BaseController $invoice->public_id = 0; $clients = Client::scope()->with('contacts', 'country')->orderBy('name'); - if (!Auth::user()->hasPermission('view_all')) { + if (! Auth::user()->hasPermission('view_all')) { $clients = $clients->where('clients.user_id', '=', Auth::user()->id); } @@ -217,6 +220,8 @@ class InvoiceController extends BaseController private static function getViewModel($invoice) { + $account = Auth::user()->account; + $recurringHelp = ''; $recurringDueDateHelp = ''; $recurringDueDates = []; @@ -246,19 +251,21 @@ class InvoiceController extends BaseController trans('texts.use_client_terms') => ['value' => '', 'class' => 'monthly weekly'], ]; - $ends = ['th','st','nd','rd','th','th','th','th','th','th']; - for($i = 1; $i < 31; $i++){ - if ($i >= 11 && $i <= 13) $ordinal = $i. 'th'; - else $ordinal = $i . $ends[$i % 10]; + $ends = ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th']; + for ($i = 1; $i < 31; $i++) { + if ($i >= 11 && $i <= 13) { + $ordinal = $i. 'th'; + } else { + $ordinal = $i . $ends[$i % 10]; + } $dayStr = str_pad($i, 2, '0', STR_PAD_LEFT); - $str = trans('texts.day_of_month', ['ordinal'=>$ordinal]); + $str = trans('texts.day_of_month', ['ordinal' => $ordinal]); $recurringDueDates[$str] = ['value' => "1998-01-$dayStr", 'data-num' => $i, 'class' => 'monthly']; } $recurringDueDates[trans('texts.last_day_of_month')] = ['value' => '1998-01-31', 'data-num' => 31, 'class' => 'monthly']; - $daysOfWeek = [ trans('texts.sunday'), trans('texts.monday'), @@ -268,35 +275,16 @@ class InvoiceController extends BaseController trans('texts.friday'), trans('texts.saturday'), ]; - foreach(['1st','2nd','3rd','4th'] as $i=>$ordinal){ - foreach($daysOfWeek as $j=>$dayOfWeek){ + foreach (['1st', '2nd', '3rd', '4th'] as $i => $ordinal) { + foreach ($daysOfWeek as $j => $dayOfWeek) { $str = trans('texts.day_of_week_after', ['ordinal' => $ordinal, 'day' => $dayOfWeek]); - $day = $i * 7 + $j + 1; + $day = $i * 7 + $j + 1; $dayStr = str_pad($day, 2, '0', STR_PAD_LEFT); $recurringDueDates[$str] = ['value' => "1998-02-$dayStr", 'data-num' => $day, 'class' => 'weekly']; } } - // Tax rate $options - $account = Auth::user()->account; - $rates = TaxRate::scope()->orderBy('name')->get(); - $options = []; - $defaultTax = false; - - foreach ($rates as $rate) { - $name = $rate->name . ' ' . ($rate->rate+0) . '%'; - if ($rate->is_inclusive) { - $name .= ' - ' . trans('texts.inclusive'); - } - $options[($rate->is_inclusive ? '1 ' : '0 ') . $rate->rate . ' ' . $rate->name] = $name; - - // load default invoice tax - if ($rate->id == $account->default_tax_rate_id) { - $defaultTax = $rate; - } - } - // Check for any taxes which have been deleted if ($invoice->exists) { foreach ($invoice->getTaxes() as $key => $rate) { @@ -311,22 +299,13 @@ class InvoiceController extends BaseController 'data' => Input::old('data'), 'account' => Auth::user()->account->load('country'), 'products' => Product::scope()->with('default_tax_rate')->orderBy('product_key')->get(), - 'taxRateOptions' => $options, - 'defaultTax' => $defaultTax, + 'taxRateOptions' => $account->present()->taxRateOptions, + 'defaultTax' => $account->default_tax_rate, 'currencies' => Cache::get('currencies'), 'sizes' => Cache::get('sizes'), - 'paymentTerms' => Cache::get('paymentTerms'), 'invoiceDesigns' => InvoiceDesign::getDesigns(), 'invoiceFonts' => Cache::get('fonts'), - 'frequencies' => [ - 1 => trans('texts.freq_weekly'), - 2 => trans('texts.freq_two_weeks'), - 3 => trans('texts.freq_four_weeks'), - 4 => trans('texts.freq_monthly'), - 5 => trans('texts.freq_three_months'), - 6 => trans('texts.freq_six_months'), - 7 => trans('texts.freq_annually'), - ], + 'frequencies' => \App\Models\Frequency::selectOptions(), 'recurringDueDates' => $recurringDueDates, 'recurringHelp' => $recurringHelp, 'recurringDueDateHelp' => $recurringDueDateHelp, @@ -335,7 +314,6 @@ class InvoiceController extends BaseController 'expenseCurrencyId' => Session::get('expenseCurrencyId') ?: null, 'expenses' => Session::get('expenses') ? Expense::scope(Session::get('expenses'))->with('documents', 'expense_category')->get() : [], ]; - } /** @@ -364,7 +342,7 @@ class InvoiceController extends BaseController Session::flash('message', $message); if ($action == 'email') { - $this->emailInvoice($invoice, Input::get('pdfupload')); + $this->emailInvoice($invoice); } return url($invoice->getRoute()); @@ -373,7 +351,8 @@ class InvoiceController extends BaseController /** * Update the specified resource in storage. * - * @param int $id + * @param int $id + * * @return Response */ public function update(UpdateInvoiceRequest $request) @@ -394,34 +373,36 @@ class InvoiceController extends BaseController } elseif ($action == 'convert') { return $this->convertQuote($request, $invoice->public_id); } elseif ($action == 'email') { - $this->emailInvoice($invoice, Input::get('pdfupload')); + $this->emailInvoice($invoice); } return url($invoice->getRoute()); } - - private function emailInvoice($invoice, $pdfUpload) + private function emailInvoice($invoice) { + $reminder = Input::get('reminder'); + $template = Input::get('template'); + $pdfUpload = Utils::decodePDF(Input::get('pdfupload')); $entityType = $invoice->getEntityType(); - $pdfUpload = Utils::decodePDF($pdfUpload); - if (!Auth::user()->confirmed) { + if (filter_var(Input::get('save_as_default'), FILTER_VALIDATE_BOOLEAN)) { + $account = Auth::user()->account; + $account->setTemplateDefaults(Input::get('template_type'), $template['subject'], $template['body']); + } + + if (! Auth::user()->confirmed) { $errorMessage = trans(Auth::user()->registered ? 'texts.confirmation_required' : 'texts.registration_required'); Session::flash('error', $errorMessage); + return Redirect::to('invoices/'.$invoice->public_id.'/edit'); } if ($invoice->is_recurring) { $response = $this->emailRecurringInvoice($invoice); } else { - // TODO remove this with Laravel 5.3 (https://github.com/invoiceninja/invoiceninja/issues/1303) - if (config('queue.default') === 'sync') { - $response = app('App\Ninja\Mailers\ContactMailer')->sendInvoice($invoice, false, $pdfUpload); - } else { - $this->dispatch(new SendInvoiceEmail($invoice, false, $pdfUpload)); - $response = true; - } + $this->dispatch(new SendInvoiceEmail($invoice, $reminder, $pdfUpload, $template)); + $response = true; } if ($response === true) { @@ -434,10 +415,11 @@ class InvoiceController extends BaseController private function emailRecurringInvoice(&$invoice) { - if (!$invoice->shouldSendToday()) { + if (! $invoice->shouldSendToday()) { if ($date = $invoice->getNextSendDate()) { $date = $invoice->account->formatDate($date); $date .= ' ' . DEFAULT_SEND_RECURRING_HOUR . ':00 am ' . $invoice->account->getTimezone(); + return trans('texts.recurring_too_soon', ['date' => $date]); } else { return trans('texts.no_longer_running'); @@ -464,7 +446,9 @@ class InvoiceController extends BaseController /** * Display the specified resource. * - * @param int $id + * @param int $id + * @param mixed $publicId + * * @return Response */ public function show($publicId) @@ -477,12 +461,15 @@ class InvoiceController extends BaseController /** * Remove the specified resource from storage. * - * @param int $id + * @param int $id + * @param mixed $entityType + * * @return Response */ public function bulk($entityType = ENTITY_INVOICE) { - $action = Input::get('bulk_action') ?: Input::get('action');; + $action = Input::get('bulk_action') ?: Input::get('action'); + ; $ids = Input::get('bulk_public_id') ?: (Input::get('public_id') ?: Input::get('ids')); $count = $this->invoiceService->bulk($ids, $action); @@ -569,7 +556,7 @@ class InvoiceController extends BaseController } // Show the current version as the last in the history - if ( ! $paymentId) { + if (! $paymentId) { $versionsSelect[$lastId] = Utils::timestampToDateTimeString(strtotime($invoice->created_at)) . ' - ' . $invoice->user->getDisplayName(); } @@ -601,5 +588,4 @@ class InvoiceController extends BaseController return $count ? RESULT_FAILURE : RESULT_SUCCESS; } - } diff --git a/app/Http/Controllers/NinjaController.php b/app/Http/Controllers/NinjaController.php index cab57f9da2b5..3dce07391e98 100644 --- a/app/Http/Controllers/NinjaController.php +++ b/app/Http/Controllers/NinjaController.php @@ -1,20 +1,22 @@ - $input['city'], 'shippingState' => $input['state'], 'shippingPostcode' => $input['postal_code'], - 'shippingCountry' => $country->iso_3166_2 + 'shippingCountry' => $country->iso_3166_2, ]; $card = new CreditCard($data); @@ -79,7 +81,7 @@ class NinjaController extends BaseController 'card' => $card, 'currency' => 'USD', 'returnUrl' => URL::to('license_complete'), - 'cancelUrl' => URL::to('/') + 'cancelUrl' => URL::to('/'), ]; } @@ -100,11 +102,11 @@ class NinjaController extends BaseController if (Input::has('product_id')) { Session::set('product_id', Input::get('product_id')); - } else if (!Session::has('product_id')) { + } elseif (! Session::has('product_id')) { Session::set('product_id', PRODUCT_ONE_CLICK_INSTALL); } - if (!Session::get('affiliate_id')) { + if (! Session::get('affiliate_id')) { return Utils::fatalError(); } @@ -190,8 +192,9 @@ class NinjaController extends BaseController $ref = $response->getTransactionReference(); - if (!$response->isSuccessful() || !$ref) { + if (! $response->isSuccessful() || ! $ref) { $this->error('License', $response->getMessage(), $accountGateway); + return redirect()->to('license')->withInput(); } } @@ -227,6 +230,7 @@ class NinjaController extends BaseController return View::make('public.license', $data); } catch (\Exception $e) { $this->error('License-Uncaught', false, $accountGateway, $e); + return redirect()->to('license')->withInput(); } } @@ -284,6 +288,6 @@ class NinjaController extends BaseController $company->plan = null; $company->save(); - return RESULT_SUCCESS; - } + return RESULT_SUCCESS; + } } diff --git a/app/Http/Controllers/OnlinePaymentController.php b/app/Http/Controllers/OnlinePaymentController.php index ae596b89eaa7..e25defd2a0d2 100644 --- a/app/Http/Controllers/OnlinePaymentController.php +++ b/app/Http/Controllers/OnlinePaymentController.php @@ -1,30 +1,32 @@ -invoiceRepo->findInvoiceByInvitation($invitationKey)) { + if (! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { return response()->view('error', [ 'error' => trans('texts.invoice_not_found'), 'hideHeader' => true, ]); } - if ( ! $invitation->invoice->canBePaid()) { + if (! $invitation->invoice->canBePaid()) { return redirect()->to('view/' . $invitation->invitation_key); } @@ -84,7 +88,7 @@ class OnlinePaymentController extends BaseController $account->loadLocalizationSettings($invitation->invoice->client); - if ( ! $gatewayTypeAlias) { + if (! $gatewayTypeAlias) { $gatewayTypeId = Session::get($invitation->id . 'gateway_type'); } elseif ($gatewayTypeAlias != GATEWAY_TYPE_TOKEN) { $gatewayTypeId = GatewayType::getIdFromAlias($gatewayTypeAlias); @@ -103,6 +107,7 @@ class OnlinePaymentController extends BaseController /** * @param CreateOnlinePaymentRequest $request + * * @return \Illuminate\Http\RedirectResponse */ public function doPayment(CreateOnlinePaymentRequest $request) @@ -111,7 +116,7 @@ class OnlinePaymentController extends BaseController $gatewayTypeId = Session::get($invitation->id . 'gateway_type'); $paymentDriver = $invitation->account->paymentDriver($invitation, $gatewayTypeId); - if ( ! $invitation->invoice->canBePaid()) { + if (! $invitation->invoice->canBePaid()) { return redirect()->to('view/' . $invitation->invitation_key); } @@ -131,8 +136,9 @@ class OnlinePaymentController extends BaseController } /** - * @param bool $invitationKey + * @param bool $invitationKey * @param mixed $gatewayTypeAlias + * * @return \Illuminate\Http\RedirectResponse */ public function offsitePayment($invitationKey = false, $gatewayTypeAlias = false) @@ -141,7 +147,7 @@ class OnlinePaymentController extends BaseController $invitation = Invitation::with('invoice.invoice_items', 'invoice.client.currency', 'invoice.client.account.account_gateways.gateway') ->where('invitation_key', '=', $invitationKey)->firstOrFail(); - if ( ! $gatewayTypeAlias) { + if (! $gatewayTypeAlias) { $gatewayTypeId = Session::get($invitation->id . 'gateway_type'); } elseif ($gatewayTypeAlias != GATEWAY_TYPE_TOKEN) { $gatewayTypeId = GatewayType::getIdFromAlias($gatewayTypeAlias); @@ -159,6 +165,7 @@ class OnlinePaymentController extends BaseController if ($paymentDriver->completeOffsitePurchase(Input::all())) { Session::flash('message', trans('texts.applied_payment')); } + return $this->completePurchase($invitation, true); } catch (Exception $exception) { return $this->error($paymentDriver, $exception); @@ -169,6 +176,7 @@ class OnlinePaymentController extends BaseController { if ($redirectUrl = session('redirect_url:' . $invitation->invitation_key)) { $separator = strpos($redirectUrl, '?') === false ? '?' : '&'; + return redirect()->to($redirectUrl . $separator . 'invoice_id=' . $invitation->invoice->public_id); } else { // Allow redirecting to iFrame for offsite payments @@ -184,6 +192,7 @@ class OnlinePaymentController extends BaseController * @param $paymentDriver * @param $exception * @param bool $showPayment + * * @return \Illuminate\Http\RedirectResponse */ private function error($paymentDriver, $exception, $showPayment = false) @@ -203,15 +212,18 @@ class OnlinePaymentController extends BaseController Utils::logError($message, 'PHP', true); $route = $showPayment ? 'payment/' : 'view/'; + return redirect()->to($route . $paymentDriver->invitation->invitation_key); } /** * @param $routingNumber + * * @return \Illuminate\Http\JsonResponse */ - public function getBankInfo($routingNumber) { - if (strlen($routingNumber) != 9 || !preg_match('/\d{9}/', $routingNumber)) { + public function getBankInfo($routingNumber) + { + if (strlen($routingNumber) != 9 || ! preg_match('/\d{9}/', $routingNumber)) { return response()->json([ 'message' => 'Invalid routing number', ], 400); @@ -223,7 +235,7 @@ class OnlinePaymentController extends BaseController return response()->json([ 'message' => $data, ], 500); - } elseif (!empty($data)) { + } elseif (! empty($data)) { return response()->json($data); } @@ -235,6 +247,7 @@ class OnlinePaymentController extends BaseController /** * @param $accountKey * @param $gatewayId + * * @return \Illuminate\Http\JsonResponse */ public function handlePaymentWebhook($accountKey, $gatewayId) @@ -243,7 +256,7 @@ class OnlinePaymentController extends BaseController $account = Account::where('accounts.account_key', '=', $accountKey)->first(); - if (!$account) { + if (! $account) { return response()->json([ 'message' => 'Unknown account', ], 404); @@ -251,7 +264,7 @@ class OnlinePaymentController extends BaseController $accountGateway = $account->getGatewayConfig(intval($gatewayId)); - if (!$accountGateway) { + if (! $accountGateway) { return response()->json([ 'message' => 'Unknown gateway', ], 404); @@ -261,9 +274,11 @@ class OnlinePaymentController extends BaseController try { $result = $paymentDriver->handleWebHook(Input::all()); + return response()->json(['message' => $result]); } catch (Exception $exception) { Utils::logError($exception->getMessage(), 'PHP'); + return response()->json(['message' => $exception->getMessage()], 500); } } @@ -278,14 +293,14 @@ class OnlinePaymentController extends BaseController $redirectUrl = Input::get('redirect_url'); $failureUrl = URL::previous(); - if ( ! $account || ! $account->enable_buy_now_buttons || ! $account->hasFeature(FEATURE_BUY_NOW_BUTTONS)) { + if (! $account || ! $account->enable_buy_now_buttons || ! $account->hasFeature(FEATURE_BUY_NOW_BUTTONS)) { return redirect()->to("{$failureUrl}/?error=invalid account"); } Auth::onceUsingId($account->users[0]->id); $product = Product::scope(Input::get('product_id'))->first(); - if ( ! $product) { + if (! $product) { return redirect()->to("{$failureUrl}/?error=invalid product"); } @@ -296,7 +311,7 @@ class OnlinePaymentController extends BaseController $query->where('contact_key', $contactKey); })->first(); } - if ( ! $client) { + if (! $client) { $rules = [ 'first_name' => 'string|max:100', 'last_name' => 'string|max:100', @@ -310,13 +325,18 @@ class OnlinePaymentController extends BaseController $data = [ 'currency_id' => $account->currency_id, - 'contact' => Input::all() + 'contact' => Input::all(), ]; $client = $clientRepo->save($data); } $data = [ 'client_id' => $client->id, + 'is_public' => true, + 'is_recurring' => filter_var(Input::get('is_recurring'), FILTER_VALIDATE_BOOLEAN), + 'frequency_id' => Input::get('frequency_id'), + 'auto_bill_id' => Input::get('auto_bill_id'), + 'start_date' => Input::get('start_date', date('Y-m-d')), 'tax_rate1' => $account->default_tax_rate ? $account->default_tax_rate->rate : 0, 'tax_name1' => $account->default_tax_rate ? $account->default_tax_rate->name : '', 'invoice_items' => [[ @@ -326,9 +346,12 @@ class OnlinePaymentController extends BaseController 'qty' => 1, 'tax_rate1' => $product->default_tax_rate ? $product->default_tax_rate->rate : 0, 'tax_name1' => $product->default_tax_rate ? $product->default_tax_rate->name : '', - ]] + ]], ]; $invoice = $invoiceService->save($data); + if ($invoice->is_recurring) { + $invoice = $this->invoiceRepo->createRecurringInvoice($invoice->fresh()); + } $invitation = $invoice->invitations[0]; $link = $invitation->getLink(); diff --git a/app/Http/Controllers/PaymentApiController.php b/app/Http/Controllers/PaymentApiController.php index 4daad26d0d88..207177e1747c 100644 --- a/app/Http/Controllers/PaymentApiController.php +++ b/app/Http/Controllers/PaymentApiController.php @@ -1,13 +1,15 @@ -action) { @@ -84,7 +87,6 @@ class PaymentApiController extends BaseAPIController return $this->itemResponse($payment); } - /** * @SWG\Post( * path="/payments", @@ -121,27 +123,26 @@ class PaymentApiController extends BaseAPIController } /** - * @SWG\Delete( - * path="/payments/{payment_id}", - * summary="Delete a payment", - * tags={"payment"}, - * @SWG\Parameter( - * in="body", - * name="body", - * @SWG\Schema(ref="#/definitions/Payment") - * ), - * @SWG\Response( - * response=200, - * description="Delete payment", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Payment")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ - + * @SWG\Delete( + * path="/payments/{payment_id}", + * summary="Delete a payment", + * tags={"payment"}, + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Payment") + * ), + * @SWG\Response( + * response=200, + * description="Delete payment", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Payment")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ public function destroy(UpdatePaymentRequest $request) { $payment = $request->entity(); @@ -150,5 +151,4 @@ class PaymentApiController extends BaseAPIController return $this->itemResponse($payment); } - } diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index bcb244f1e21d..3597c3f47734 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -1,20 +1,23 @@ -paymentRepo = $paymentRepo; $this->contactMailer = $contactMailer; $this->paymentService = $paymentService; @@ -70,6 +72,7 @@ class PaymentController extends BaseController /** * @param null $clientPublicId + * * @return \Illuminate\Http\JsonResponse */ public function getDatatable($clientPublicId = null) @@ -79,6 +82,7 @@ class PaymentController extends BaseController /** * @param PaymentRequest $request + * * @return \Illuminate\Contracts\View\View */ public function create(PaymentRequest $request) @@ -90,6 +94,7 @@ class PaymentController extends BaseController ->orderBy('invoice_number')->get(); $data = [ + 'account' => Auth::user()->account, 'clientPublicId' => Input::old('client') ? Input::old('client') : ($request->client_id ?: 0), 'invoicePublicId' => Input::old('invoice') ? Input::old('invoice') : ($request->invoice_id ?: 0), 'invoice' => null, @@ -106,6 +111,7 @@ class PaymentController extends BaseController /** * @param $publicId + * * @return \Illuminate\Http\RedirectResponse */ public function show($publicId) @@ -117,6 +123,7 @@ class PaymentController extends BaseController /** * @param PaymentRequest $request + * * @return \Illuminate\Contracts\View\View */ public function edit(PaymentRequest $request) @@ -129,8 +136,13 @@ class PaymentController extends BaseController $actions[] = ['url' => url("/invoices/invoice_history/{$payment->invoice->public_id}?payment_id={$payment->public_id}"), 'label' => trans('texts.view_invoice')]; } $actions[] = ['url' => url("/invoices/{$payment->invoice->public_id}/edit"), 'label' => trans('texts.edit_invoice')]; + + if ($payment->canBeRefunded()) { + $actions[] = ['url' => "javascript:showRefundModal({$payment->public_id}, \"{$payment->getCompletedAmount()}\", \"{$payment->present()->completedAmount}\", \"{$payment->present()->currencySymbol}\")", 'label' => trans('texts.refund_payment')]; + } + $actions[] = DropdownButton::DIVIDER; - if ( ! $payment->trashed()) { + if (! $payment->trashed()) { $actions[] = ['url' => 'javascript:submitAction("archive")', 'label' => trans('texts.archive_payment')]; $actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans('texts.delete_payment')]; } else { @@ -138,6 +150,7 @@ class PaymentController extends BaseController } $data = [ + 'account' => Auth::user()->account, 'client' => null, 'invoice' => null, 'invoices' => Invoice::scope() @@ -160,6 +173,7 @@ class PaymentController extends BaseController /** * @param CreatePaymentRequest $request + * * @return \Illuminate\Http\RedirectResponse */ public function store(CreatePaymentRequest $request) @@ -184,11 +198,12 @@ class PaymentController extends BaseController /** * @param UpdatePaymentRequest $request + * * @return \Illuminate\Http\RedirectResponse */ public function update(UpdatePaymentRequest $request) { - if (in_array($request->action, ['archive', 'delete', 'restore'])) { + if (in_array($request->action, ['archive', 'delete', 'restore', 'refund'])) { return self::bulk(); } @@ -207,10 +222,10 @@ class PaymentController extends BaseController $action = Input::get('action'); $amount = Input::get('amount'); $ids = Input::get('public_id') ? Input::get('public_id') : Input::get('ids'); - $count = $this->paymentService->bulk($ids, $action, ['amount'=>$amount]); + $count = $this->paymentService->bulk($ids, $action, ['amount' => $amount]); if ($count > 0) { - $message = Utils::pluralize($action=='refund' ? 'refunded_payment':$action.'d_payment', $count); + $message = Utils::pluralize($action == 'refund' ? 'refunded_payment' : $action.'d_payment', $count); Session::flash('message', $message); } diff --git a/app/Http/Controllers/PaymentTermController.php b/app/Http/Controllers/PaymentTermController.php index 30f3c5bf42d7..e92e53035675 100644 --- a/app/Http/Controllers/PaymentTermController.php +++ b/app/Http/Controllers/PaymentTermController.php @@ -1,13 +1,16 @@ -paymentTermService->getDatatable(); + $accountId = Auth::user()->account_id; + + return $this->paymentTermService->getDatatable($accountId); } /** * @param $publicId + * * @return \Illuminate\Contracts\View\View */ public function edit($publicId) @@ -84,6 +91,7 @@ class PaymentTermController extends BaseController /** * @param $publicId + * * @return \Illuminate\Http\RedirectResponse */ public function update($publicId) @@ -93,6 +101,7 @@ class PaymentTermController extends BaseController /** * @param bool $publicId + * * @return \Illuminate\Http\RedirectResponse */ private function save($publicId = false) @@ -103,8 +112,8 @@ class PaymentTermController extends BaseController $paymentTerm = PaymentTerm::createNew(); } - $paymentTerm->name = trim(Input::get('name')); - $paymentTerm->num_days = Utils::parseInt(Input::get('num_days')); + $paymentTerm->num_days = Utils::parseInt(Input::get('num_days')); + $paymentTerm->name = 'Net ' . $paymentTerm->num_days; $paymentTerm->save(); $message = $publicId ? trans('texts.updated_payment_term') : trans('texts.created_payment_term'); @@ -119,12 +128,11 @@ class PaymentTermController extends BaseController public function bulk() { $action = Input::get('bulk_action'); - $ids = Input::get('bulk_public_id'); - $count = $this->paymentTermService->bulk($ids, $action); + $ids = Input::get('bulk_public_id'); + $count = $this->paymentTermService->bulk($ids, $action); Session::flash('message', trans('texts.archived_payment_term')); return Redirect::to('settings/' . ACCOUNT_PAYMENT_TERMS); } - } diff --git a/app/Http/Controllers/ProductApiController.php b/app/Http/Controllers/ProductApiController.php index f0a0b8af43e4..9dc5915d90de 100644 --- a/app/Http/Controllers/ProductApiController.php +++ b/app/Http/Controllers/ProductApiController.php @@ -1,12 +1,14 @@ -product_key = trim(Input::get('product_key')); $product->notes = trim(Input::get('notes')); $product->cost = trim(Input::get('cost')); - $product->default_tax_rate_id = Input::get('default_tax_rate_id'); - + $product->fill(Input::all()); $product->save(); $message = $productPublicId ? trans('texts.updated_product') : trans('texts.created_product'); diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 9e43e2c63918..fc96d98594dd 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -1,17 +1,18 @@ -to('/projects'); } - } diff --git a/app/Http/Controllers/QuoteApiController.php b/app/Http/Controllers/QuoteApiController.php index d6c572ceb08e..959bc8281b35 100644 --- a/app/Http/Controllers/QuoteApiController.php +++ b/app/Http/Controllers/QuoteApiController.php @@ -1,8 +1,10 @@ -invoiceRepo = $invoiceRepo; } - /** - * @SWG\Get( - * path="/quotes", - * tags={"quote"}, - * summary="List of quotes", - * @SWG\Response( - * response=200, - * description="A list with quotes", - * @SWG\Schema(type="array", @SWG\Items(ref="#/definitions/Invoice")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ + /** + * @SWG\Get( + * path="/quotes", + * tags={"quote"}, + * summary="List of quotes", + * @SWG\Response( + * response=200, + * description="A list with quotes", + * @SWG\Schema(type="array", @SWG\Items(ref="#/definitions/Invoice")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ public function index() { $invoices = Invoice::scope() @@ -43,5 +45,4 @@ class QuoteApiController extends BaseAPIController return $this->listResponse($invoices); } - } diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index 5fb20cde8559..c02e54672daa 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -1,26 +1,28 @@ -account; - $rates = TaxRate::scope()->orderBy('name')->get(); - $options = []; - $defaultTax = false; - - foreach ($rates as $rate) { - $name = $rate->name . ' ' . ($rate->rate + 0) . '%'; - if ($rate->is_inclusive) { - $name .= ' - ' . trans('texts.inclusive'); - } - $options[($rate->is_inclusive ? '1 ' : '0 ') . $rate->rate . ' ' . $rate->name] = $name; - - // load default invoice tax - if ($rate->id == $account->default_tax_rate_id) { - $defaultTax = $rate; - } - } return [ 'entityType' => ENTITY_QUOTE, - 'account' => Auth::user()->account, + 'account' => $account, 'products' => Product::scope()->orderBy('id')->get(['product_key', 'notes', 'cost', 'qty']), - 'taxRateOptions' => $options, - 'defaultTax' => $defaultTax, + 'taxRateOptions' => $account->present()->taxRateOptions, + 'defaultTax' => $account->default_tax_rate, 'countries' => Cache::get('countries'), 'clients' => Client::scope()->with('contacts', 'country')->orderBy('name')->get(), 'taxRates' => TaxRate::scope()->orderBy('name')->get(), @@ -133,7 +118,8 @@ class QuoteController extends BaseController public function bulk() { - $action = Input::get('bulk_action') ?: Input::get('action');; + $action = Input::get('bulk_action') ?: Input::get('action'); + ; $ids = Input::get('bulk_public_id') ?: (Input::get('public_id') ?: Input::get('ids')); if ($action == 'convert') { @@ -141,6 +127,7 @@ class QuoteController extends BaseController $clone = $this->invoiceService->convertQuote($invoice); Session::flash('message', trans('texts.converted_to_invoice')); + return Redirect::to('invoices/'.$clone->public_id); } diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index db1b83ba3949..2b1cc2977361 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -1,11 +1,12 @@ -view('list_wrapper', $data); } - } diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index f23da88bd489..69d85eecc216 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -1,17 +1,16 @@ -hasPermission('view_all')) { + return redirect('/'); + } + $action = Input::get('action'); if (Input::get('report_type')) { @@ -64,14 +67,13 @@ class ReportController extends BaseController } $reportTypes = [ - 'client', - 'product', - 'invoice', - 'invoice_details', 'aging', - 'profit_and_loss', - 'payment', + 'client', 'expense', + 'invoice', + 'payment', + 'product', + 'profit_and_loss', 'task', 'tax_rate', ]; @@ -120,6 +122,10 @@ class ReportController extends BaseController */ private function export($reportType, $data, $columns, $totals) { + if (! Auth::user()->hasPermission('view_all')) { + exit; + } + $output = fopen('php://output', 'w') or Utils::fatalError(); $reportType = trans("texts.{$reportType}s"); $date = date('Y-m-d'); diff --git a/app/Http/Controllers/SelfUpdateController.php b/app/Http/Controllers/SelfUpdateController.php index a58bb1c93ca0..9f9955c8992a 100644 --- a/app/Http/Controllers/SelfUpdateController.php +++ b/app/Http/Controllers/SelfUpdateController.php @@ -2,14 +2,14 @@ namespace App\Http\Controllers; -use Utils; -use Redirect; use Codedge\Updater\UpdaterManager; +use Redirect; +use Utils; class SelfUpdateController extends BaseController { /** - * @var UpdaterManager + * @var UpdaterManager */ protected $updater; @@ -28,7 +28,7 @@ class SelfUpdateController extends BaseController } /** - * Show default update page + * Show default update page. * * @return mixed */ @@ -42,13 +42,13 @@ class SelfUpdateController extends BaseController [ 'versionInstalled' => $versionInstalled, 'versionAvailable' => $this->updater->source()->getVersionAvailable(), - 'updateAvailable' => $updateAvailable + 'updateAvailable' => $updateAvailable, ] ); } /** - * Run the actual update + * Run the actual update. * * @return \Illuminate\Http\RedirectResponse */ diff --git a/app/Http/Controllers/TaskApiController.php b/app/Http/Controllers/TaskApiController.php index 632a8b034d0b..ca24c03941d7 100644 --- a/app/Http/Controllers/TaskApiController.php +++ b/app/Http/Controllers/TaskApiController.php @@ -1,12 +1,14 @@ -response($data); } - - /** * @SWG\Put( * path="/task/{task_id}", @@ -109,7 +109,6 @@ class TaskApiController extends BaseAPIController * ) * ) */ - public function update(UpdateTaskRequest $request) { $task = $request->entity(); @@ -117,7 +116,5 @@ class TaskApiController extends BaseAPIController $task = $this->taskRepo->save($task->public_id, \Illuminate\Support\Facades\Input::all()); return $this->itemResponse($task); - } - } diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 452ce50ebaa6..412aeb67cec6 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -1,26 +1,28 @@ -taskRepo = $taskRepo; @@ -77,6 +79,7 @@ class TaskController extends BaseController /** * @param null $clientPublicId + * * @return \Illuminate\Http\JsonResponse */ public function getDatatable($clientPublicId = null) @@ -98,6 +101,7 @@ class TaskController extends BaseController /** * @param $publicId + * * @return \Illuminate\Http\RedirectResponse */ public function show($publicId) @@ -162,7 +166,7 @@ class TaskController extends BaseController } $actions[] = DropdownButton::DIVIDER; - if (!$task->trashed()) { + if (! $task->trashed()) { $actions[] = ['url' => 'javascript:submitAction("archive")', 'label' => trans('texts.archive_task')]; $actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans('texts.delete_task')]; } else { @@ -215,6 +219,7 @@ class TaskController extends BaseController /** * @param null $publicId + * * @return \Illuminate\Http\RedirectResponse */ private function save($publicId = null) @@ -227,7 +232,7 @@ class TaskController extends BaseController $task = $this->taskRepo->save($publicId, Input::all()); - if($publicId) { + if ($publicId) { Session::flash('message', trans('texts.updated_task')); } else { Session::flash('message', trans('texts.created_task')); @@ -251,8 +256,9 @@ class TaskController extends BaseController if ($action == 'stop') { $this->taskRepo->save($ids, ['action' => $action]); Session::flash('message', trans('texts.stopped_task')); + return Redirect::to('tasks'); - } else if ($action == 'invoice' || $action == 'add_to_invoice') { + } elseif ($action == 'invoice' || $action == 'add_to_invoice') { $tasks = Task::scope($ids)->with('client')->orderBy('project_id', 'id')->get(); $clientPublicId = false; $data = []; @@ -260,19 +266,22 @@ class TaskController extends BaseController $lastProjectId = false; foreach ($tasks as $task) { if ($task->client) { - if (!$clientPublicId) { + if (! $clientPublicId) { $clientPublicId = $task->client->public_id; - } else if ($clientPublicId != $task->client->public_id) { + } elseif ($clientPublicId != $task->client->public_id) { Session::flash('error', trans('texts.task_error_multiple_clients')); + return Redirect::to('tasks'); } } if ($task->is_running) { Session::flash('error', trans('texts.task_error_running')); + return Redirect::to('tasks'); - } else if ($task->invoice_id) { + } elseif ($task->invoice_id) { Session::flash('error', trans('texts.task_error_invoiced')); + return Redirect::to('tasks'); } @@ -290,6 +299,7 @@ class TaskController extends BaseController return Redirect::to("invoices/create/{$clientPublicId}")->with('tasks', $data); } else { $invoiceId = Input::get('invoice_id'); + return Redirect::to("invoices/{$invoiceId}/edit")->with('tasks', $data); } } else { @@ -304,7 +314,7 @@ class TaskController extends BaseController private function checkTimezone() { - if (!Auth::user()->account->timezone) { + if (! Auth::user()->account->timezone) { $link = link_to('/settings/localization?focus=timezone_id', trans('texts.click_here'), ['target' => '_blank']); Session::flash('warning', trans('texts.timezone_unset', ['link' => $link])); } diff --git a/app/Http/Controllers/TaxRateApiController.php b/app/Http/Controllers/TaxRateApiController.php index 2fa442af49b2..cebab115f806 100644 --- a/app/Http/Controllers/TaxRateApiController.php +++ b/app/Http/Controllers/TaxRateApiController.php @@ -1,9 +1,11 @@ -taxRateRepo->save($request->input()); Session::flash('message', trans('texts.created_tax_rate')); + return Redirect::to('settings/' . ACCOUNT_TAX_RATES); } @@ -72,10 +75,10 @@ class TaxRateController extends BaseController $this->taxRateRepo->save($request->input(), $request->entity()); Session::flash('message', trans('texts.updated_tax_rate')); + return Redirect::to('settings/' . ACCOUNT_TAX_RATES); } - public function bulk() { $action = Input::get('bulk_action'); diff --git a/app/Http/Controllers/TokenController.php b/app/Http/Controllers/TokenController.php index 51e53b5d97ed..414151fd3ee2 100644 --- a/app/Http/Controllers/TokenController.php +++ b/app/Http/Controllers/TokenController.php @@ -1,17 +1,19 @@ -save(); } - /** * @return \Illuminate\Contracts\View\View */ @@ -113,9 +117,9 @@ class TokenController extends BaseController return Redirect::to('settings/' . ACCOUNT_API_TOKENS); } - /** * @param bool $tokenPublicId + * * @return $this|\Illuminate\Http\RedirectResponse */ public function save($tokenPublicId = false) @@ -157,5 +161,4 @@ class TokenController extends BaseController return Redirect::to('settings/' . ACCOUNT_API_TOKENS); } - } diff --git a/app/Http/Controllers/UserApiController.php b/app/Http/Controllers/UserApiController.php index be37ecc66c3f..64365c910ec5 100644 --- a/app/Http/Controllers/UserApiController.php +++ b/app/Http/Controllers/UserApiController.php @@ -1,12 +1,14 @@ -response($data); } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 1646c539f8c8..70f1780d4f18 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -1,20 +1,22 @@ -registered) { + if (! Auth::user()->registered) { Session::flash('error', trans('texts.register_to_add_user')); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } - if ( ! Auth::user()->confirmed) { + if (! Auth::user()->confirmed) { Session::flash('error', trans('texts.confirmation_required')); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } if (Utils::isNinja() && ! Auth::user()->caddAddUsers()) { Session::flash('error', trans('texts.max_users_reached')); + return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } @@ -132,7 +136,7 @@ class UserController extends BaseController if ($action === 'archive') { $user->delete(); } else { - if ( ! Auth::user()->caddAddUsers()) { + if (! Auth::user()->caddAddUsers()) { return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT) ->with('error', trans('texts.max_users_reached')); } @@ -146,8 +150,9 @@ class UserController extends BaseController } /** - * Stores new account + * Stores new account. * + * @param mixed $userPublicId */ public function save($userPublicId = false) { @@ -205,7 +210,7 @@ class UserController extends BaseController $user->save(); - if (!$user->confirmed) { + if (! $user->confirmed) { $this->userMailer->sendConfirmation($user, Auth::user()); $message = trans('texts.sent_invite'); } else { @@ -229,9 +234,8 @@ class UserController extends BaseController return Redirect::to('settings/' . ACCOUNT_USER_MANAGEMENT); } - /** - * Attempt to confirm account with code + * Attempt to confirm account with code. * * @param string $code */ @@ -249,6 +253,7 @@ class UserController extends BaseController if ($user->public_id) { Auth::logout(); $token = Password::getRepository()->create($user); + return Redirect::to("/password/reset/{$token}"); } else { if (Auth::check()) { @@ -261,6 +266,7 @@ class UserController extends BaseController } else { $url = '/login'; } + return Redirect::to($url)->with('message', $notice_msg); } } else { @@ -270,37 +276,12 @@ class UserController extends BaseController } } - /** - * Log the user out of the application. - * - */ - /* - public function logout() - { - if (Auth::check()) { - if (!Auth::user()->registered) { - $account = Auth::user()->account; - $this->accountRepo->unlinkAccount($account); - if ($account->company->accounts->count() == 1) { - $account->company->forceDelete(); - } - $account->forceDelete(); - } - } - - Auth::logout(); - Session::flush(); - - return Redirect::to('/')->with('clearGuestKey', true); - } - */ - public function changePassword() { // check the current password is correct - if (!Auth::validate([ + if (! Auth::validate([ 'email' => Auth::user()->email, - 'password' => Input::get('current_password') + 'password' => Input::get('current_password'), ])) { return trans('texts.password_error_incorrect'); } @@ -347,6 +328,22 @@ class UserController extends BaseController } } + public function viewAccountByKey($accountKey) + { + $user = $this->accountRepo->findUser(Auth::user(), $accountKey); + + if (! $user) { + return redirect()->to('/'); + } + + Auth::loginUsingId($user->id); + Auth::user()->account->loadLocalizationSettings(); + + $redirectTo = request()->redirect_to ?: '/'; + + return redirect()->to($redirectTo); + } + public function unlinkAccount($userAccountId, $userId) { $this->accountRepo->unlinkUser($userAccountId, $userId); @@ -356,6 +353,7 @@ class UserController extends BaseController Session::put(SESSION_USER_ACCOUNTS, $users); Session::flash('message', trans('texts.unlinked_account')); + return Redirect::to('/manage_companies'); } diff --git a/app/Http/Controllers/VendorApiController.php b/app/Http/Controllers/VendorApiController.php index c38e5867e2df..f7227a97af37 100644 --- a/app/Http/Controllers/VendorApiController.php +++ b/app/Http/Controllers/VendorApiController.php @@ -1,13 +1,16 @@ -itemResponse($vendor); } - /** - * @SWG\Put( - * path="/vendors/{vendor_id}", - * tags={"vendor"}, - * summary="Update a vendor", - * @SWG\Parameter( - * in="body", - * name="body", - * @SWG\Schema(ref="#/definitions/Vendor") - * ), - * @SWG\Response( - * response=200, - * description="Update vendor", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Vendor")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ - + /** + * @SWG\Put( + * path="/vendors/{vendor_id}", + * tags={"vendor"}, + * summary="Update a vendor", + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Vendor") + * ), + * @SWG\Response( + * response=200, + * description="Update vendor", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Vendor")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + * + * @param mixed $publicId + */ public function update(UpdateVendorRequest $request, $publicId) { if ($request->action) { @@ -123,29 +127,27 @@ class VendorApiController extends BaseAPIController return $this->itemResponse($vendor); } - - /** - * @SWG\Delete( - * path="/vendors/{vendor_id}", - * tags={"vendor"}, - * summary="Delete a vendor", - * @SWG\Parameter( - * in="body", - * name="body", - * @SWG\Schema(ref="#/definitions/Vendor") - * ), - * @SWG\Response( - * response=200, - * description="Delete vendor", - * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Vendor")) - * ), - * @SWG\Response( - * response="default", - * description="an ""unexpected"" error" - * ) - * ) - */ - + /** + * @SWG\Delete( + * path="/vendors/{vendor_id}", + * tags={"vendor"}, + * summary="Delete a vendor", + * @SWG\Parameter( + * in="body", + * name="body", + * @SWG\Schema(ref="#/definitions/Vendor") + * ), + * @SWG\Response( + * response=200, + * description="Delete vendor", + * @SWG\Schema(type="object", @SWG\Items(ref="#/definitions/Vendor")) + * ), + * @SWG\Response( + * response="default", + * description="an ""unexpected"" error" + * ) + * ) + */ public function destroy(VendorRequest $request) { $vendor = $request->entity(); diff --git a/app/Http/Controllers/VendorController.php b/app/Http/Controllers/VendorController.php index bc16ee9e407c..e89c0028f738 100644 --- a/app/Http/Controllers/VendorController.php +++ b/app/Http/Controllers/VendorController.php @@ -1,21 +1,23 @@ -entity(); $actionLinks = [ - ['label' => trans('texts.new_vendor'), 'url' => URL::to('/vendors/create/' . $vendor->public_id)] + ['label' => trans('texts.new_vendor'), 'url' => URL::to('/vendors/create/' . $vendor->public_id)], ]; $data = [ - 'actionLinks' => $actionLinks, - 'showBreadcrumbs' => false, - 'vendor' => $vendor, - 'title' => trans('texts.view_vendor'), - 'hasRecurringInvoices' => false, - 'hasQuotes' => false, - 'hasTasks' => false, + 'actionLinks' => $actionLinks, + 'showBreadcrumbs' => false, + 'vendor' => $vendor, + 'title' => trans('texts.view_vendor'), + 'hasRecurringInvoices' => false, + 'hasQuotes' => false, + 'hasTasks' => false, ]; return View::make('vendors.show', $data); @@ -117,7 +120,8 @@ class VendorController extends BaseController /** * Show the form for editing the specified resource. * - * @param int $id + * @param int $id + * * @return Response */ public function edit(VendorRequest $request) @@ -155,7 +159,8 @@ class VendorController extends BaseController /** * Update the specified resource in storage. * - * @param int $id + * @param int $id + * * @return Response */ public function update(UpdateVendorRequest $request) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index b20e0b754465..46a45d9ca6d6 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -1,38 +1,38 @@ - 'App\Http\Middleware\Authenticate', - 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth', - 'permissions.required' => 'App\Http\Middleware\PermissionsRequired', - 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated', + /** + * The application's route middleware. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => 'App\Http\Middleware\Authenticate', + 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth', + 'permissions.required' => 'App\Http\Middleware\PermissionsRequired', + 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated', 'api' => 'App\Http\Middleware\ApiCheck', - ]; - + ]; } diff --git a/app/Http/Middleware/ApiCheck.php b/app/Http/Middleware/ApiCheck.php index b0c5528b9084..7f59159fe088 100644 --- a/app/Http/Middleware/ApiCheck.php +++ b/app/Http/Middleware/ApiCheck.php @@ -1,26 +1,29 @@ -is('api/v1/login') @@ -37,9 +40,10 @@ class ApiCheck { if ($loggingIn) { // check API secret - if ( ! $hasApiSecret) { + if (! $hasApiSecret) { sleep(ERROR_DELAY); - $error['error'] = ['message'=>'Invalid value for API_SECRET']; + $error['error'] = ['message' => 'Invalid value for API_SECRET']; + return Response::json($error, 403, $headers); } } else { @@ -52,24 +56,26 @@ class ApiCheck { Session::set('token_id', $token->id); } else { sleep(ERROR_DELAY); - $error['error'] = ['message'=>'Invalid token']; + $error['error'] = ['message' => 'Invalid token']; + return Response::json($error, 403, $headers); } } - if (!Utils::isNinja() && !$loggingIn) { + if (! Utils::isNinja() && ! $loggingIn) { return $next($request); } - if (!Utils::hasFeature(FEATURE_API) && !$hasApiSecret) { - $error['error'] = ['message'=>'API requires pro plan']; + if (! Utils::hasFeature(FEATURE_API) && ! $hasApiSecret) { + $error['error'] = ['message' => 'API requires pro plan']; + return Response::json($error, 403, $headers); } else { $key = Auth::check() ? Auth::user()->account->id : $request->getClientIp(); // http://stackoverflow.com/questions/1375501/how-do-i-throttle-my-sites-api-users $hour = 60 * 60; - $hour_limit = 100; # users are limited to 100 requests/hour + $hour_limit = 100; // users are limited to 100 requests/hour $hour_throttle = Cache::get("hour_throttle:{$key}", null); $last_api_request = Cache::get("last_api_request:{$key}", 0); $last_api_diff = time() - $last_api_request; @@ -80,13 +86,14 @@ class ApiCheck { $new_hour_throttle = $hour_throttle - $last_api_diff; $new_hour_throttle = $new_hour_throttle < 0 ? 0 : $new_hour_throttle; $new_hour_throttle += $hour / $hour_limit; - $hour_hits_remaining = floor(( $hour - $new_hour_throttle ) * $hour_limit / $hour); + $hour_hits_remaining = floor(($hour - $new_hour_throttle) * $hour_limit / $hour); $hour_hits_remaining = $hour_hits_remaining >= 0 ? $hour_hits_remaining : 0; } if ($new_hour_throttle > $hour) { $wait = ceil($new_hour_throttle - $hour); sleep(1); + return Response::json("Please wait {$wait} second(s)", 403, $headers); } @@ -96,5 +103,4 @@ class ApiCheck { return $next($request); } - } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 0aa3d1187520..0ebfbacccf63 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -1,22 +1,25 @@ -check(); if ($guard == 'client') { - if (!empty($request->invitation_key)) { + if (! empty($request->invitation_key)) { $contact_key = session('contact_key'); if ($contact_key) { $contact = $this->getContact($contact_key); $invitation = $this->getInvitation($request->invitation_key); - if (!$invitation) { + if (! $invitation) { return response()->view('error', [ 'error' => trans('texts.invoice_not_found'), 'hideHeader' => true, @@ -46,7 +49,7 @@ class Authenticate } } - if (!empty($request->contact_key)) { + if (! empty($request->contact_key)) { $contact_key = $request->contact_key; Session::put('contact_key', $contact_key); } else { @@ -55,7 +58,7 @@ class Authenticate if ($contact_key) { $contact = $this->getContact($contact_key); - } elseif (!empty($request->invitation_key)) { + } elseif (! empty($request->invitation_key)) { $invitation = $this->getInvitation($request->invitation_key); $contact = $invitation->contact; Session::put('contact_key', $contact->contact_key); @@ -70,11 +73,15 @@ class Authenticate } // Does this account require portal passwords? - if ($account && (!$account->enable_portal_password || !$account->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD))) { + if ($account && (! $account->enable_portal_password || ! $account->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD))) { $authenticated = true; } - if (!$authenticated && $contact && !$contact->password) { + if (! $authenticated && $contact && ! $contact->password) { + $authenticated = true; + } + + if (env('PHANTOMJS_SECRET') && $request->phantomjs_secret && hash_equals(env('PHANTOMJS_SECRET'), $request->phantomjs_secret)) { $authenticated = true; } @@ -83,7 +90,7 @@ class Authenticate } } - if (!$authenticated) { + if (! $authenticated) { if ($request->ajax()) { return response('Unauthorized.', 401); } else { @@ -96,12 +103,16 @@ class Authenticate /** * @param $key + * * @return \Illuminate\Database\Eloquent\Model|null|static */ protected function getInvitation($key) { + // check for extra params at end of value (from website feature) + list($key) = explode('&', $key); + $invitation = Invitation::withTrashed()->where('invitation_key', '=', $key)->first(); - if ($invitation && !$invitation->is_deleted) { + if ($invitation && ! $invitation->is_deleted) { return $invitation; } else { return null; @@ -110,12 +121,13 @@ class Authenticate /** * @param $key + * * @return \Illuminate\Database\Eloquent\Model|null|static */ protected function getContact($key) { $contact = Contact::withTrashed()->where('contact_key', '=', $key)->first(); - if ($contact && !$contact->is_deleted) { + if ($contact && ! $contact->is_deleted) { return $contact; } else { return null; diff --git a/app/Http/Middleware/DuplicateSubmissionCheck.php b/app/Http/Middleware/DuplicateSubmissionCheck.php index f92a31a48398..dc8ae4004acc 100644 --- a/app/Http/Middleware/DuplicateSubmissionCheck.php +++ b/app/Http/Middleware/DuplicateSubmissionCheck.php @@ -1,16 +1,19 @@ -getAction(); // Check if we have any permissions to check the user has. - if ($permissions = !empty($actions['permissions']) ? $actions['permissions'] : null) { - if (!Auth::user($guard)->hasPermission($permissions, !empty($actions['permissions_require_all']))) { + if ($permissions = ! empty($actions['permissions']) ? $actions['permissions'] : null) { + if (! Auth::user($guard)->hasPermission($permissions, ! empty($actions['permissions_require_all']))) { return response('Unauthorized.', 401); } } @@ -44,7 +45,7 @@ class PermissionsRequired $action = explode('@', $request->route()->getActionName()); if (isset(static::$actions[$action[0]]) && isset(static::$actions[$action[0]][$action[1]])) { $controller_permissions = static::$actions[$action[0]][$action[1]]; - if (!Auth::user($guard)->hasPermission($controller_permissions)) { + if (! Auth::user($guard)->hasPermission($controller_permissions)) { return response('Unauthorized.', 401); } } @@ -53,10 +54,10 @@ class PermissionsRequired } /** - * add a controller's action permission + * add a controller's action permission. * * @param Controller $controller - * @param array $permissions + * @param array $permissions */ public static function addPermission(Controller $controller, array $permissions) { diff --git a/app/Http/Middleware/QueryLogging.php b/app/Http/Middleware/QueryLogging.php index 1bc8160dff7c..c0a4852c69ae 100644 --- a/app/Http/Middleware/QueryLogging.php +++ b/app/Http/Middleware/QueryLogging.php @@ -1,21 +1,24 @@ -secure()) { + if (Utils::requireHTTPS() && ! $request->secure()) { return Redirect::secure($request->path()); } // If the database doens't yet exist we'll skip the rest - if (!Utils::isNinja() && !Utils::isDatabaseSetup()) { + if (! Utils::isNinja() && ! Utils::isDatabaseSetup()) { return $next($request); } // Check if a new version was installed - if (!Utils::isNinja()) { + if (! Utils::isNinja()) { $file = storage_path() . '/version.txt'; $version = @file_get_contents($file); if ($version != NINJA_VERSION) { @@ -58,6 +61,7 @@ class StartupCheck $handle = fopen($file, 'w'); fwrite($handle, NINJA_VERSION); fclose($handle); + return Redirect::to('/update'); } } @@ -67,7 +71,7 @@ class StartupCheck $count = Session::get(SESSION_COUNTER, 0); Session::put(SESSION_COUNTER, ++$count); - if (isset($_SERVER['REQUEST_URI']) && !Utils::startsWith($_SERVER['REQUEST_URI'], '/news_feed') && !Session::has('news_feed_id')) { + if (isset($_SERVER['REQUEST_URI']) && ! Utils::startsWith($_SERVER['REQUEST_URI'], '/news_feed') && ! Session::has('news_feed_id')) { $data = false; if (Utils::isNinja()) { $data = Utils::getNewsFeedResponse(); @@ -117,14 +121,14 @@ class StartupCheck } // Make sure the account/user localization settings are in the session - if (Auth::check() && !Session::has(SESSION_TIMEZONE)) { + if (Auth::check() && ! Session::has(SESSION_TIMEZONE)) { Event::fire(new UserLoggedIn()); } // Check if the user is claiming a license (ie, additional invoices, white label, etc.) - if ( ! Utils::isNinjaProd() && isset($_SERVER['REQUEST_URI'])) { + if (! Utils::isNinjaProd() && isset($_SERVER['REQUEST_URI'])) { $claimingLicense = Utils::startsWith($_SERVER['REQUEST_URI'], '/claim_license'); - if ( ! $claimingLicense && Input::has('license_key') && Input::has('product_id')) { + if (! $claimingLicense && Input::has('license_key') && Input::has('product_id')) { $licenseKey = Input::get('license_key'); $productId = Input::get('product_id'); @@ -168,9 +172,9 @@ class StartupCheck Session::flash('message', 'Cache cleared'); } foreach ($cachedTables as $name => $class) { - if (Input::has('clear_cache') || !Cache::has($name)) { + if (Input::has('clear_cache') || ! Cache::has($name)) { // check that the table exists in case the migration is pending - if ( ! Schema::hasTable((new $class)->getTable())) { + if (! Schema::hasTable((new $class())->getTable())) { continue; } if ($name == 'paymentTerms') { diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index 3fbef6812658..2a8b178f5952 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -1,14 +1,15 @@ - 'valid_contacts', - ]; + $rules = []; if ($this->user()->account->client_number_counter) { $rules['id_number'] = 'unique:clients,id_number,,id,account_id,' . $this->user()->account_id; diff --git a/app/Http/Requests/CreateCreditRequest.php b/app/Http/Requests/CreateCreditRequest.php index b6f4fe3b37e3..73366081420d 100644 --- a/app/Http/Requests/CreateCreditRequest.php +++ b/app/Http/Requests/CreateCreditRequest.php @@ -1,4 +1,6 @@ -user()->hasFeature(FEATURE_DOCUMENTS)) { + if (! $this->user()->hasFeature(FEATURE_DOCUMENTS)) { return false; } @@ -43,5 +45,4 @@ class CreateDocumentRequest extends DocumentRequest //'file' => 'mimes:jpg' ]; } - } diff --git a/app/Http/Requests/CreateExpenseCategoryRequest.php b/app/Http/Requests/CreateExpenseCategoryRequest.php index c54108e225a5..347c0450a26c 100644 --- a/app/Http/Requests/CreateExpenseCategoryRequest.php +++ b/app/Http/Requests/CreateExpenseCategoryRequest.php @@ -1,8 +1,11 @@ - 'valid_contacts', + 'client' => 'required', 'invoice_items' => 'valid_invoice_items', 'invoice_number' => 'required|unique:invoices,invoice_number,,id,account_id,' . $this->user()->account_id, 'discount' => 'positive', diff --git a/app/Http/Requests/CreateOnlinePaymentRequest.php b/app/Http/Requests/CreateOnlinePaymentRequest.php index 815c8f5b217d..1e9910082b9d 100644 --- a/app/Http/Requests/CreateOnlinePaymentRequest.php +++ b/app/Http/Requests/CreateOnlinePaymentRequest.php @@ -1,4 +1,6 @@ -user()->can('create', ENTITY_PAYMENT); @@ -26,7 +23,7 @@ class CreatePaymentAPIRequest extends PaymentRequest */ public function rules() { - if ( ! $this->invoice_id || ! $this->amount) { + if (! $this->invoice_id || ! $this->amount) { return [ 'invoice_id' => 'required|numeric|min:1', 'amount' => 'required|numeric|min:0.01', @@ -52,7 +49,4 @@ class CreatePaymentAPIRequest extends PaymentRequest return $rules; } - - - } diff --git a/app/Http/Requests/CreatePaymentRequest.php b/app/Http/Requests/CreatePaymentRequest.php index 9b45b2486dd7..f2e1d468419a 100644 --- a/app/Http/Requests/CreatePaymentRequest.php +++ b/app/Http/Requests/CreatePaymentRequest.php @@ -1,4 +1,6 @@ - 'required', ]; - if ( ! empty($input['payment_type_id']) && $input['payment_type_id'] == PAYMENT_TYPE_CREDIT) { + if (! empty($input['payment_type_id']) && $input['payment_type_id'] == PAYMENT_TYPE_CREDIT) { $rules['payment_type_id'] = 'has_credit:'.$input['client'].','.$input['amount']; } diff --git a/app/Http/Requests/CreateProductRequest.php b/app/Http/Requests/CreateProductRequest.php index 0fad2af14a23..b7392cc6ac19 100644 --- a/app/Http/Requests/CreateProductRequest.php +++ b/app/Http/Requests/CreateProductRequest.php @@ -1,4 +1,6 @@ -entityType . '_id'; - if ( ! empty($this->$field)) { + if (! empty($this->$field)) { $publicId = $this->$field; } - if ( ! $publicId) { + if (! $publicId) { $field = Utils::pluralizeEntityType($this->entityType); - if ( ! empty($this->$field)) { + if (! empty($this->$field)) { $publicId = $this->$field; } } - if ( ! $publicId) { + if (! $publicId) { $publicId = Input::get('public_id') ?: Input::get('id'); } - if ( ! $publicId) { + if (! $publicId) { return null; } @@ -56,6 +58,7 @@ class EntityRequest extends Request { if ($this->entity()) { if ($this->user()->can('view', $this->entity())) { HistoryUtils::trackViewed($this->entity()); + return true; } } else { @@ -67,5 +70,4 @@ class EntityRequest extends Request { { return []; } - } diff --git a/app/Http/Requests/ExpenseCategoryRequest.php b/app/Http/Requests/ExpenseCategoryRequest.php index 810e7e56bee5..55f2ee78791a 100644 --- a/app/Http/Requests/ExpenseCategoryRequest.php +++ b/app/Http/Requests/ExpenseCategoryRequest.php @@ -1,7 +1,8 @@ -req = $req; } - public function authorize() { return true; @@ -30,7 +30,6 @@ class RegisterRequest extends Request */ public function rules() { - $rules = [ 'email' => 'required|unique:users', 'first_name' => 'required', @@ -44,14 +43,14 @@ class RegisterRequest extends Request public function response(array $errors) { /* If the user is not validating from a mobile app - pass through parent::response */ - if(!isset($this->req->api_secret)) + if (! isset($this->req->api_secret)) { return parent::response($errors); + } /* If the user is validating from a mobile app - pass through first error string and return error */ - foreach($errors as $error) { + foreach ($errors as $error) { foreach ($error as $key => $value) { - - $message['error'] = ['message'=>$value]; + $message['error'] = ['message' => $value]; $message = json_encode($message, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); @@ -59,5 +58,4 @@ class RegisterRequest extends Request } } } - } diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index f965e6af7ba3..4ce91b8540c4 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -1,19 +1,22 @@ -api_secret) { + if (! request()->api_secret) { return parent::response($errors); } /* If the user is validating from a mobile app - pass through first error string and return error */ - foreach($errors as $error) { + foreach ($errors as $error) { foreach ($error as $key => $value) { - - $message['error'] = ['message'=>$value]; + $message['error'] = ['message' => $value]; $message = json_encode($message, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); diff --git a/app/Http/Requests/SaveClientPortalSettings.php b/app/Http/Requests/SaveClientPortalSettings.php index 3c2485e7d7ef..7886722ae2f6 100644 --- a/app/Http/Requests/SaveClientPortalSettings.php +++ b/app/Http/Requests/SaveClientPortalSettings.php @@ -1,7 +1,9 @@ -replace($input); return $this->all(); } - } diff --git a/app/Http/Requests/SaveEmailSettings.php b/app/Http/Requests/SaveEmailSettings.php index 84f8c5baf8d0..25696c6fff5b 100644 --- a/app/Http/Requests/SaveEmailSettings.php +++ b/app/Http/Requests/SaveEmailSettings.php @@ -1,4 +1,6 @@ - 'email', ]; } - } diff --git a/app/Http/Requests/TaskRequest.php b/app/Http/Requests/TaskRequest.php index 1e2783781f06..141bf89f08eb 100644 --- a/app/Http/Requests/TaskRequest.php +++ b/app/Http/Requests/TaskRequest.php @@ -1,7 +1,8 @@ - 'valid_contacts', - ]; + $rules = []; if ($this->user()->account->client_number_counter) { $rules['id_number'] = 'unique:clients,id_number,'.$this->entity()->id.',id,account_id,' . $this->user()->account_id; diff --git a/app/Http/Requests/UpdateCreditRequest.php b/app/Http/Requests/UpdateCreditRequest.php index 0bc9d64066ea..be5ebd50ff2d 100644 --- a/app/Http/Requests/UpdateCreditRequest.php +++ b/app/Http/Requests/UpdateCreditRequest.php @@ -1,4 +1,6 @@ - 'required', 'name' => sprintf('required|unique:expense_categories,name,%s,id,account_id,%s', $this->entity()->id, $this->user()->account_id), ]; diff --git a/app/Http/Requests/UpdateExpenseRequest.php b/app/Http/Requests/UpdateExpenseRequest.php index 55a7ae59bf76..cd87ec5e59de 100644 --- a/app/Http/Requests/UpdateExpenseRequest.php +++ b/app/Http/Requests/UpdateExpenseRequest.php @@ -1,4 +1,6 @@ - 'numeric', ]; } diff --git a/app/Http/Requests/UpdateInvoiceAPIRequest.php b/app/Http/Requests/UpdateInvoiceAPIRequest.php index fb3f1b42a82b..f572e8bbc4b8 100644 --- a/app/Http/Requests/UpdateInvoiceAPIRequest.php +++ b/app/Http/Requests/UpdateInvoiceAPIRequest.php @@ -1,4 +1,6 @@ -entity()->id; $rules = [ - 'client.contacts' => 'valid_contacts', + 'client' => 'required', 'invoice_items' => 'valid_invoice_items', 'invoice_number' => 'required|unique:invoices,invoice_number,' . $invoiceId . ',id,account_id,' . $this->user()->account_id, 'discount' => 'positive', diff --git a/app/Http/Requests/UpdatePaymentRequest.php b/app/Http/Requests/UpdatePaymentRequest.php index 70a328d26772..e569ffe2b4a1 100644 --- a/app/Http/Requests/UpdatePaymentRequest.php +++ b/app/Http/Requests/UpdatePaymentRequest.php @@ -1,4 +1,6 @@ - sprintf('required|unique:projects,name,%s,id,account_id,%s', $this->entity()->id, $this->user()->account_id), ]; } diff --git a/app/Http/Requests/UpdateTaskRequest.php b/app/Http/Requests/UpdateTaskRequest.php index 83ce23ab31ab..4131bf99ee0d 100644 --- a/app/Http/Requests/UpdateTaskRequest.php +++ b/app/Http/Requests/UpdateTaskRequest.php @@ -1,4 +1,6 @@ -getLocale(); - if(preg_match('/_/', $code)) { + if (preg_match('/_/', $code)) { $codes = explode('_', $code); $code = $codes[0]; } return $code; } -} \ No newline at end of file +} diff --git a/app/Http/ViewComposers/ClientPortalHeaderComposer.php b/app/Http/ViewComposers/ClientPortalHeaderComposer.php index 7525b80bf699..a7a799150d59 100644 --- a/app/Http/ViewComposers/ClientPortalHeaderComposer.php +++ b/app/Http/ViewComposers/ClientPortalHeaderComposer.php @@ -2,10 +2,9 @@ namespace App\Http\ViewComposers; -use DB; -use Cache; -use Illuminate\View\View; use App\Models\Contact; +use DB; +use Illuminate\View\View; /** * ClientPortalHeaderComposer.php. @@ -17,7 +16,7 @@ class ClientPortalHeaderComposer /** * Bind data to the view. * - * @param View $view + * @param View $view * * @return void */ @@ -25,7 +24,7 @@ class ClientPortalHeaderComposer { $contactKey = session('contact_key'); - if ( ! $contactKey) { + if (! $contactKey) { return false; } @@ -33,7 +32,7 @@ class ClientPortalHeaderComposer ->with('client') ->first(); - if ( ! $contact || $contact->is_deleted) { + if (! $contact || $contact->is_deleted) { return false; } diff --git a/app/Http/ViewComposers/TranslationComposer.php b/app/Http/ViewComposers/TranslationComposer.php index 76a576ea5444..ff2dc954199f 100644 --- a/app/Http/ViewComposers/TranslationComposer.php +++ b/app/Http/ViewComposers/TranslationComposer.php @@ -15,7 +15,7 @@ class TranslationComposer /** * Bind data to the view. * - * @param View $view + * @param View $view * * @return void */ @@ -45,4 +45,4 @@ class TranslationComposer return $lang->name; })); } -} \ No newline at end of file +} diff --git a/app/Http/routes.php b/app/Http/routes.php index cb9acd590c18..04d17603ee25 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -11,7 +11,6 @@ | */ - // Application setup Route::get('/setup', 'AppController@showSetup'); Route::post('/setup', 'AppController@doSetup'); @@ -26,7 +25,7 @@ Route::get('/keep_alive', 'HomeController@keepAlive'); Route::post('/get_started', 'AccountController@getStarted'); // Client visible pages -Route::group(['middleware' => 'auth:client'], function() { +Route::group(['middleware' => 'auth:client'], function () { Route::get('view/{invitation_key}', 'ClientPortalController@view'); Route::get('download/{invitation_key}', 'ClientPortalController@download'); Route::put('sign/{invitation_key}', 'ClientPortalController@sign'); @@ -54,16 +53,15 @@ Route::group(['middleware' => 'auth:client'], function() { Route::get('client/documents/{invitation_key}/{documents}/{filename?}', 'ClientPortalController@getDocument'); Route::get('client/documents/{invitation_key}/{filename?}', 'ClientPortalController@getInvoiceDocumentsZip'); - Route::get('api/client.quotes', ['as'=>'api.client.quotes', 'uses'=>'ClientPortalController@quoteDatatable']); - Route::get('api/client.credits', ['as'=>'api.client.credits', 'uses'=>'ClientPortalController@creditDatatable']); - Route::get('api/client.invoices', ['as'=>'api.client.invoices', 'uses'=>'ClientPortalController@invoiceDatatable']); - Route::get('api/client.recurring_invoices', ['as'=>'api.client.recurring_invoices', 'uses'=>'ClientPortalController@recurringInvoiceDatatable']); - Route::get('api/client.documents', ['as'=>'api.client.documents', 'uses'=>'ClientPortalController@documentDatatable']); - Route::get('api/client.payments', ['as'=>'api.client.payments', 'uses'=>'ClientPortalController@paymentDatatable']); - Route::get('api/client.activity', ['as'=>'api.client.activity', 'uses'=>'ClientPortalController@activityDatatable']); + Route::get('api/client.quotes', ['as' => 'api.client.quotes', 'uses' => 'ClientPortalController@quoteDatatable']); + Route::get('api/client.credits', ['as' => 'api.client.credits', 'uses' => 'ClientPortalController@creditDatatable']); + Route::get('api/client.invoices', ['as' => 'api.client.invoices', 'uses' => 'ClientPortalController@invoiceDatatable']); + Route::get('api/client.recurring_invoices', ['as' => 'api.client.recurring_invoices', 'uses' => 'ClientPortalController@recurringInvoiceDatatable']); + Route::get('api/client.documents', ['as' => 'api.client.documents', 'uses' => 'ClientPortalController@documentDatatable']); + Route::get('api/client.payments', ['as' => 'api.client.payments', 'uses' => 'ClientPortalController@paymentDatatable']); + Route::get('api/client.activity', ['as' => 'api.client.activity', 'uses' => 'ClientPortalController@activityDatatable']); }); - Route::get('license', 'NinjaController@show_license_payment'); Route::post('license', 'NinjaController@do_license_payment'); Route::get('claim_license', 'NinjaController@claim_license'); @@ -102,7 +100,6 @@ Route::post('/client/recover_password', ['as' => 'forgot', 'uses' => 'ClientAuth Route::get('/client/password/reset/{invitation_key}/{token}', ['as' => 'forgot', 'uses' => 'ClientAuth\PasswordController@getReset']); Route::post('/client/password/reset', ['as' => 'forgot', 'uses' => 'ClientAuth\PasswordController@postReset']); - if (Utils::isNinja()) { Route::post('/signup/register', 'AccountController@doRegister'); Route::get('/news_feed/{user_type}/{version}/', 'HomeController@newsFeed'); @@ -113,7 +110,7 @@ if (Utils::isReseller()) { Route::post('/reseller_stats', 'AppController@stats'); } -Route::group(['middleware' => 'auth:user'], function() { +Route::group(['middleware' => 'auth:user'], function () { Route::get('dashboard', 'DashboardController@index'); Route::get('dashboard_chart_data/{group_by}/{start_date}/{end_date}/{currency_id}/{include_expenses}', 'DashboardController@chartData'); Route::get('set_entity_filter/{entity_type}/{filter?}', 'AccountController@setEntityFilter'); @@ -192,11 +189,9 @@ Route::group(['middleware' => 'auth:user'], function() { Route::resource('products', 'ProductController'); Route::post('products/bulk', 'ProductController@bulk'); - Route::get('/resend_confirmation', 'AccountController@resendConfirmation'); Route::post('/update_setup', 'AppController@updateSetup'); - // vendor Route::resource('vendors', 'VendorController'); Route::get('api/vendors', 'VendorController@getDatatable'); @@ -216,22 +211,26 @@ Route::group(['middleware' => 'auth:user'], function() { Route::get('expense_categories/{expense_categories}/edit', 'ExpenseCategoryController@edit'); Route::post('expense_categories/bulk', 'ExpenseCategoryController@bulk'); - // BlueVine - Route::post('bluevine/signup', 'BlueVineController@signup'); - Route::get('bluevine/hide_message', 'BlueVineController@hideMessage'); - Route::get('bluevine/completed', 'BlueVineController@handleCompleted'); + // BlueVine + Route::post('bluevine/signup', 'BlueVineController@signup'); + Route::get('bluevine/hide_message', 'BlueVineController@hideMessage'); + Route::get('bluevine/completed', 'BlueVineController@handleCompleted'); Route::get('white_label/hide_message', 'NinjaController@hideWhiteLabelMessage'); + + Route::get('reports', 'ReportController@showReports'); + Route::post('reports', 'ReportController@showReports'); }); Route::group([ 'middleware' => ['auth:user', 'permissions.required'], 'permissions' => 'admin', -], function() { +], function () { Route::get('api/users', 'UserController@getDatatable'); Route::resource('users', 'UserController'); Route::post('users/bulk', 'UserController@bulk'); Route::get('send_confirmation/{user_id}', 'UserController@sendConfirmation'); Route::get('/switch_account/{user_id}', 'UserController@switchAccount'); + Route::get('/account/{account_key}', 'UserController@viewAccountByKey'); Route::get('/unlink_account/{user_account_id}/{user_id}', 'UserController@unlinkAccount'); Route::get('/manage_companies', 'UserController@manageCompanies'); @@ -248,8 +247,6 @@ Route::group([ Route::post('settings/email_settings', 'AccountController@saveEmailSettings'); Route::get('company/{section}/{subSection?}', 'AccountController@redirectLegacy'); Route::get('settings/data_visualizations', 'ReportController@d3'); - Route::get('reports', 'ReportController@showReports'); - Route::post('reports', 'ReportController@showReports'); Route::post('settings/change_plan', 'AccountController@changePlan'); Route::post('settings/cancel_account', 'AccountController@cancelAccount'); @@ -269,6 +266,14 @@ Route::group([ Route::get('api/gateways', 'AccountGatewayController@getDatatable'); Route::post('account_gateways/bulk', 'AccountGatewayController@bulk'); + Route::get('payment_terms', 'PaymentTermController@index'); + Route::get('api/payment_terms', 'PaymentTermController@getDatatable'); + Route::get('payment_terms/create', 'PaymentTermController@create'); + Route::post('payment_terms', 'PaymentTermController@store'); + Route::put('payment_terms/{payment_terms}', 'PaymentTermController@update'); + Route::get('payment_terms/{payment_terms}/edit', 'PaymentTermController@edit'); + Route::post('payment_terms/bulk', 'PaymentTermController@bulk'); + Route::get('bank_accounts/import_ofx', 'BankAccountController@showImportOFX'); Route::post('bank_accounts/import_ofx', 'BankAccountController@doImportOFX'); Route::resource('bank_accounts', 'BankAccountController'); @@ -281,13 +286,12 @@ Route::group([ Route::get('self-update/download', 'SelfUpdateController@download'); }); -Route::group(['middleware' => 'auth:user'], function() { +Route::group(['middleware' => 'auth:user'], function () { Route::get('settings/{section?}', 'AccountController@showSection'); }); // Route groups for API -Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() -{ +Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function () { Route::get('ping', 'AccountApiController@ping'); Route::post('login', 'AccountApiController@login'); Route::post('oauth_login', 'AccountApiController@oauthLogin'); @@ -309,7 +313,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() Route::resource('products', 'ProductApiController'); Route::resource('tax_rates', 'TaxRateApiController'); Route::resource('users', 'UserApiController'); - Route::resource('expenses','ExpenseApiController'); + Route::resource('expenses', 'ExpenseApiController'); Route::post('add_token', 'AccountApiController@addDeviceToken'); Route::post('update_notifications', 'AccountApiController@updatePushNotifications'); Route::get('dashboard', 'DashboardApiController@index'); @@ -319,37 +323,37 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() }); // Redirects for legacy links -Route::get('/rocksteady', function() { +Route::get('/rocksteady', function () { return Redirect::to(NINJA_WEB_URL, 301); }); -Route::get('/about', function() { +Route::get('/about', function () { return Redirect::to(NINJA_WEB_URL, 301); }); -Route::get('/contact', function() { +Route::get('/contact', function () { return Redirect::to(NINJA_WEB_URL.'/contact', 301); }); -Route::get('/plans', function() { +Route::get('/plans', function () { return Redirect::to(NINJA_WEB_URL.'/pricing', 301); }); -Route::get('/faq', function() { +Route::get('/faq', function () { return Redirect::to(NINJA_WEB_URL.'/how-it-works', 301); }); -Route::get('/features', function() { +Route::get('/features', function () { return Redirect::to(NINJA_WEB_URL.'/features', 301); }); -Route::get('/testimonials', function() { +Route::get('/testimonials', function () { return Redirect::to(NINJA_WEB_URL, 301); }); -Route::get('/compare-online-invoicing{sites?}', function() { +Route::get('/compare-online-invoicing{sites?}', function () { return Redirect::to(NINJA_WEB_URL, 301); }); -Route::get('/forgot', function() { +Route::get('/forgot', function () { return Redirect::to(NINJA_APP_URL.'/recover_password', 301); }); -Route::get('/feed', function() { +Route::get('/feed', function () { return Redirect::to(NINJA_WEB_URL.'/feed', 301); }); -Route::get('/comments/feed', function() { +Route::get('/comments/feed', function () { return Redirect::to(NINJA_WEB_URL.'/comments/feed', 301); }); diff --git a/app/Includes/parsecsv.lib.php b/app/Includes/parsecsv.lib.php index 797beef30340..5c45a847d8b2 100644 --- a/app/Includes/parsecsv.lib.php +++ b/app/Includes/parsecsv.lib.php @@ -1,695 +1,879 @@ data); - ---------------- - # tab delimited, and encoding conversion - $csv = new parseCSV(); - $csv->encoding('UTF-16', 'UTF-8'); - $csv->delimiter = "\t"; - $csv->parse('data.tsv'); - print_r($csv->data); - ---------------- - # auto-detect delimiter character - $csv = new parseCSV(); - $csv->auto('data.csv'); - print_r($csv->data); - ---------------- - # modify data in a csv file - $csv = new parseCSV(); - $csv->sort_by = 'id'; - $csv->parse('data.csv'); - # "4" is the value of the "id" column of the CSV row - $csv->data[4] = array('firstname' => 'John', 'lastname' => 'Doe', 'email' => 'john@doe.com'); - $csv->save(); - ---------------- - # add row/entry to end of CSV file - # - only recommended when you know the extact sctructure of the file - $csv = new parseCSV(); - $csv->save('data.csv', array('1986', 'Home', 'Nowhere', ''), true); - ---------------- - # convert 2D array to csv data and send headers - # to browser to treat output as a file and download it - $csv = new parseCSV(); - $csv->output (true, 'movies.csv', $array); - ---------------- + Code Examples + ---------------- + # general usage + $csv = new parseCSV('data.csv'); + print_r($csv->data); + ---------------- + # tab delimited, and encoding conversion + $csv = new parseCSV(); + $csv->encoding('UTF-16', 'UTF-8'); + $csv->delimiter = "\t"; + $csv->parse('data.tsv'); + print_r($csv->data); + ---------------- + # auto-detect delimiter character + $csv = new parseCSV(); + $csv->auto('data.csv'); + print_r($csv->data); + ---------------- + # modify data in a csv file + $csv = new parseCSV(); + $csv->sort_by = 'id'; + $csv->parse('data.csv'); + # "4" is the value of the "id" column of the CSV row + $csv->data[4] = array('firstname' => 'John', 'lastname' => 'Doe', 'email' => 'john@doe.com'); + $csv->save(); + ---------------- + # add row/entry to end of CSV file + # - only recommended when you know the extact sctructure of the file + $csv = new parseCSV(); + $csv->save('data.csv', array('1986', 'Home', 'Nowhere', ''), true); + ---------------- + # convert 2D array to csv data and send headers + # to browser to treat output as a file and download it + $csv = new parseCSV(); + $csv->output (true, 'movies.csv', $array); + ---------------- */ - - /** - * Configuration - * - set these options with $object->var_name = 'value'; - */ - - # use first line/entry as field names - var $heading = true; - - # override field names - var $fields = []; - - # sort entries by this field - var $sort_by = null; - var $sort_reverse = false; - - # delimiter (comma) and enclosure (double quote) - var $delimiter = ','; - var $enclosure = '"'; - - # basic SQL-like conditions for row matching - var $conditions = null; - - # number of rows to ignore from beginning of data - var $offset = null; - - # limits the number of returned rows to specified amount - var $limit = null; - - # number of rows to analyze when attempting to auto-detect delimiter - var $auto_depth = 15; - - # characters to ignore when attempting to auto-detect delimiter - var $auto_non_chars = "a-zA-Z0-9\n\r"; - - # preferred delimiter characters, only used when all filtering method - # returns multiple possible delimiters (happens very rarely) - var $auto_preferred = ",;\t.:|"; - - # character encoding options - var $convert_encoding = false; - var $input_encoding = 'ISO-8859-1'; - var $output_encoding = 'ISO-8859-1'; - - # used by unparse(), save(), and output() functions - var $linefeed = "\r\n"; - - # only used by output() function - var $output_delimiter = ','; - var $output_filename = 'data.csv'; - - - /** - * Internal variables - */ - - # current file - var $file; - - # loaded file contents - var $file_data; - - # array of field values in data parsed - var $titles = []; - - # two dimentional array of CSV data - var $data = []; - - - /** - * Constructor - * @param input CSV file or string - * @return nothing - */ - function __construct ($input = null, $offset = null, $limit = null, $conditions = null) { - if ( $offset !== null ) $this->offset = $offset; - if ( $limit !== null ) $this->limit = $limit; - if ( count($conditions) > 0 ) $this->conditions = $conditions; - if ( !empty($input) ) $this->parse($input); - } - - - // ============================================== - // ----- [ Main Functions ] --------------------- - // ============================================== - - /** - * Parse CSV file or string - * @param input CSV file or string - * @return nothing - */ - function parse ($input = null, $offset = null, $limit = null, $conditions = null) { - if ( !empty($input) ) { - if ( $offset !== null ) $this->offset = $offset; - if ( $limit !== null ) $this->limit = $limit; - if ( count($conditions) > 0 ) $this->conditions = $conditions; - if ( is_readable($input) ) { - $this->data = $this->parse_file($input); - } else { - $this->file_data = &$input; - $this->data = $this->parse_string(); - } - if ( $this->data === false ) return false; - } - return true; - } - - /** - * Save changes, or new file and/or data - * @param file file to save to - * @param data 2D array with data - * @param append append current data to end of target CSV if exists - * @param fields field names - * @return true or false - */ - function save ($file = null, $data = [], $append = false, $fields = []) { - if ( empty($file) ) $file = &$this->file; - $mode = ( $append ) ? 'at' : 'wt' ; - $is_php = ( preg_match('/\.php$/i', $file) ) ? true : false ; - return $this->_wfile($file, $this->unparse($data, $fields, $append, $is_php), $mode); - } - - /** - * Generate CSV based string for output - * @param output if true, prints headers and strings to browser - * @param filename filename sent to browser in headers if output is true - * @param data 2D array with data - * @param fields field names - * @param delimiter delimiter used to separate data - * @return CSV data using delimiter of choice, or default - */ - function output ($output = true, $filename = null, $data = [], $fields = [], $delimiter = null) { - if ( empty($filename) ) $filename = $this->output_filename; - if ( $delimiter === null ) $delimiter = $this->output_delimiter; - $data = $this->unparse($data, $fields, null, null, $delimiter); - if ( $output ) { - header('Content-type: application/csv'); - header('Content-Disposition: inline; filename="'.$filename.'"'); - echo $data; - } - return $data; - } - - /** - * Convert character encoding - * @param input input character encoding, uses default if left blank - * @param output output character encoding, uses default if left blank - * @return nothing - */ - function encoding ($input = null, $output = null) { - $this->convert_encoding = true; - if ( $input !== null ) $this->input_encoding = $input; - if ( $output !== null ) $this->output_encoding = $output; - } - - /** - * Auto-Detect Delimiter: Find delimiter by analyzing a specific number of - * rows to determine most probable delimiter character - * @param file local CSV file - * @param parse true/false parse file directly - * @param search_depth number of rows to analyze - * @param preferred preferred delimiter characters - * @param enclosure enclosure character, default is double quote ("). - * @return delimiter character - */ - function auto ($file = null, $parse = true, $search_depth = null, $preferred = null, $enclosure = null) { - - if ( $file === null ) $file = $this->file; - if ( empty($search_depth) ) $search_depth = $this->auto_depth; - if ( $enclosure === null ) $enclosure = $this->enclosure; - - if ( $preferred === null ) $preferred = $this->auto_preferred; - - if ( empty($this->file_data) ) { - if ( $this->_check_data($file) ) { - $data = &$this->file_data; - } else return false; - } else { - $data = &$this->file_data; - } - - $chars = []; - $strlen = strlen($data); - $enclosed = false; - $n = 1; - $to_end = true; - - // walk specific depth finding posssible delimiter characters - for ( $i=0; $i < $strlen; $i++ ) { - $ch = $data{$i}; - $nch = ( isset($data{$i+1}) ) ? $data{$i+1} : false ; - $pch = ( isset($data{$i-1}) ) ? $data{$i-1} : false ; - - // open and closing quotes - if ( $ch == $enclosure && (!$enclosed || $nch != $enclosure) ) { - $enclosed = ( $enclosed ) ? false : true ; - - // inline quotes - } elseif ( $ch == $enclosure && $enclosed ) { - $i++; - - // end of row - } elseif ( ($ch == "\n" && $pch != "\r" || $ch == "\r") && !$enclosed ) { - if ( $n >= $search_depth ) { - $strlen = 0; - $to_end = false; - } else { - $n++; - } - - // count character - } elseif (!$enclosed) { - if ( !preg_match('/['.preg_quote($this->auto_non_chars, '/').']/i', $ch) ) { - if ( !isset($chars[$ch][$n]) ) { - $chars[$ch][$n] = 1; - } else { - $chars[$ch][$n]++; - } - } - } - } - - // filtering - $depth = ( $to_end ) ? $n-1 : $n ; - $filtered = []; - foreach( $chars as $char => $value ) { - if ( $match = $this->_check_count($char, $value, $depth, $preferred) ) { - $filtered[$match] = $char; - } - } - - // capture most probable delimiter - ksort($filtered); - $delimiter = reset($filtered); - $this->delimiter = $delimiter; - - // parse data - if ( $parse ) $this->data = $this->parse_string(); - - return $delimiter; - - } - - - // ============================================== - // ----- [ Core Functions ] --------------------- - // ============================================== - - /** - * Read file to string and call parse_string() - * @param file local CSV file - * @return 2D array with CSV data, or false on failure - */ - function parse_file ($file = null) { - if ( $file === null ) $file = $this->file; - if ( empty($this->file_data) ) $this->load_data($file); - return ( !empty($this->file_data) ) ? $this->parse_string() : false ; - } - - /** - * Parse CSV strings to arrays - * @param data CSV string - * @return 2D array with CSV data, or false on failure - */ - function parse_string ($data = null) { - if ( empty($data) ) { - if ( $this->_check_data() ) { - $data = &$this->file_data; - } else return false; - } - - $rows = []; - $row = []; - $row_count = 0; - $current = ''; - $head = ( !empty($this->fields) ) ? $this->fields : [] ; - $col = 0; - $enclosed = false; - $was_enclosed = false; - $strlen = strlen($data); - - // walk through each character - for ( $i=0; $i < $strlen; $i++ ) { - $ch = $data{$i}; - $nch = ( isset($data{$i+1}) ) ? $data{$i+1} : false ; - $pch = ( isset($data{$i-1}) ) ? $data{$i-1} : false ; - - // open and closing quotes - if ( $ch == $this->enclosure && (!$enclosed || $nch != $this->enclosure) ) { - $enclosed = ( $enclosed ) ? false : true ; - if ( $enclosed ) $was_enclosed = true; - - // inline quotes - } elseif ( $ch == $this->enclosure && $enclosed ) { - $current .= $ch; - $i++; - - // end of field/row - } elseif ( ($ch == $this->delimiter || ($ch == "\n" && $pch != "\r") || $ch == "\r") && !$enclosed ) { - if ( !$was_enclosed ) $current = trim($current); - $key = ( !empty($head[$col]) ) ? $head[$col] : $col ; - $row[$key] = $current; - $current = ''; - $col++; - - // end of row - if ( $ch == "\n" || $ch == "\r" ) { - if ( $this->_validate_offset($row_count) && $this->_validate_row_conditions($row, $this->conditions) ) { - if ( $this->heading && empty($head) ) { - $head = $row; - } elseif ( empty($this->fields) || (!empty($this->fields) && (($this->heading && $row_count > 0) || !$this->heading)) ) { - if ( !empty($this->sort_by) && !empty($row[$this->sort_by]) ) { - if ( isset($rows[$row[$this->sort_by]]) ) { - $rows[$row[$this->sort_by].'_0'] = &$rows[$row[$this->sort_by]]; - unset($rows[$row[$this->sort_by]]); - for ( $sn=1; isset($rows[$row[$this->sort_by].'_'.$sn]); $sn++ ) {} - $rows[$row[$this->sort_by].'_'.$sn] = $row; - } else $rows[$row[$this->sort_by]] = $row; - } else $rows[] = $row; - } - } - $row = []; - $col = 0; - $row_count++; - if ( $this->sort_by === null && $this->limit !== null && count($rows) == $this->limit ) { - $i = $strlen; - } - } - - // append character to current field - } else { - $current .= $ch; - } - } - $this->titles = $head; - if ( !empty($this->sort_by) ) { - ( $this->sort_reverse ) ? krsort($rows) : ksort($rows) ; - if ( $this->offset !== null || $this->limit !== null ) { - $rows = array_slice($rows, ($this->offset === null ? 0 : $this->offset) , $this->limit, true); - } - } - return $rows; - } - - /** - * Create CSV data from array - * @param data 2D array with data - * @param fields field names - * @param append if true, field names will not be output - * @param is_php if a php die() call should be put on the first - * line of the file, this is later ignored when read. - * @param delimiter field delimiter to use - * @return CSV data (text string) - */ - function unparse ( $data = [], $fields = [], $append = false , $is_php = false, $delimiter = null) { - if ( !is_array($data) || empty($data) ) $data = &$this->data; - if ( !is_array($fields) || empty($fields) ) $fields = &$this->titles; - if ( $delimiter === null ) $delimiter = $this->delimiter; - - $string = ( $is_php ) ? "".$this->linefeed : '' ; - $entry = []; - - // create heading - if ( $this->heading && !$append ) { - foreach( $fields as $key => $value ) { - $entry[] = $this->_enclose_value($value); - } - $string .= implode($delimiter, $entry).$this->linefeed; - $entry = []; - } - - // create data - foreach( $data as $key => $row ) { - foreach( $row as $field => $value ) { - $entry[] = $this->_enclose_value($value); - } - $string .= implode($delimiter, $entry).$this->linefeed; - $entry = []; - } - - return $string; - } - - /** - * Load local file or string - * @param input local CSV file - * @return true or false - */ - function load_data ($input = null) { - $data = null; - $file = null; - if ( $input === null ) { - $file = $this->file; - } elseif ( file_exists($input) ) { - $file = $input; - } else { - $data = $input; - } - if ( !empty($data) || $data = $this->_rfile($file) ) { - if ( $this->file != $file ) $this->file = $file; - if ( preg_match('/\.php$/i', $file) && preg_match('/<\?.*?\?>(.*)/ims', $data, $strip) ) { - $data = ltrim($strip[1]); - } - if ( $this->convert_encoding ) $data = iconv($this->input_encoding, $this->output_encoding, $data); - if ( substr($data, -1) != "\n" ) $data .= "\n"; - $this->file_data = &$data; - return true; - } - return false; - } - - - // ============================================== - // ----- [ Internal Functions ] ----------------- - // ============================================== - - /** - * Validate a row against specified conditions - * @param row array with values from a row - * @param conditions specified conditions that the row must match - * @return true of false - */ - function _validate_row_conditions ($row = [], $conditions = null) { - if ( !empty($row) ) { - if ( !empty($conditions) ) { - $conditions = (strpos($conditions, ' OR ') !== false) ? explode(' OR ', $conditions) : [$conditions] ; - $or = ''; - foreach( $conditions as $key => $value ) { - if ( strpos($value, ' AND ') !== false ) { - $value = explode(' AND ', $value); - $and = ''; - foreach( $value as $k => $v ) { - $and .= $this->_validate_row_condition($row, $v); - } - $or .= (strpos($and, '0') !== false) ? '0' : '1' ; - } else { - $or .= $this->_validate_row_condition($row, $value); - } - } - return (strpos($or, '1') !== false) ? true : false ; - } - return true; - } - return false; - } - - /** - * Validate a row against a single condition - * @param row array with values from a row - * @param condition specified condition that the row must match - * @return true of false - */ - function _validate_row_condition ($row, $condition) { - $operators = [ - '=', 'equals', 'is', - '!=', 'is not', - '<', 'is less than', - '>', 'is greater than', - '<=', 'is less than or equals', - '>=', 'is greater than or equals', - 'contains', - 'does not contain', - ]; - $operators_regex = []; - foreach( $operators as $value ) { - $operators_regex[] = preg_quote($value, '/'); - } - $operators_regex = implode('|', $operators_regex); - if ( preg_match('/^(.+) ('.$operators_regex.') (.+)$/i', trim($condition), $capture) ) { - $field = $capture[1]; - $op = $capture[2]; - $value = $capture[3]; - if ( preg_match('/^([\'\"]{1})(.*)([\'\"]{1})$/i', $value, $capture) ) { - if ( $capture[1] == $capture[3] ) { - $value = $capture[2]; - $value = str_replace('\\n', "\n", $value); - $value = str_replace('\\r', "\r", $value); - $value = str_replace('\\t', "\t", $value); - $value = stripslashes($value); - } - } - if ( array_key_exists($field, $row) ) { - if ( ($op == '=' || $op == 'equals' || $op == 'is') && $row[$field] == $value ) { - return '1'; - } elseif ( ($op == '!=' || $op == 'is not') && $row[$field] != $value ) { - return '1'; - } elseif ( ($op == '<' || $op == 'is less than' ) && $row[$field] < $value ) { - return '1'; - } elseif ( ($op == '>' || $op == 'is greater than') && $row[$field] > $value ) { - return '1'; - } elseif ( ($op == '<=' || $op == 'is less than or equals' ) && $row[$field] <= $value ) { - return '1'; - } elseif ( ($op == '>=' || $op == 'is greater than or equals') && $row[$field] >= $value ) { - return '1'; - } elseif ( $op == 'contains' && preg_match('/'.preg_quote($value, '/').'/i', $row[$field]) ) { - return '1'; - } elseif ( $op == 'does not contain' && !preg_match('/'.preg_quote($value, '/').'/i', $row[$field]) ) { - return '1'; - } else { - return '0'; - } - } - } - return '1'; - } - - /** - * Validates if the row is within the offset or not if sorting is disabled - * @param current_row the current row number being processed - * @return true of false - */ - function _validate_offset ($current_row) { - if ( $this->sort_by === null && $this->offset !== null && $current_row < $this->offset ) return false; - return true; - } - - /** - * Enclose values if needed - * - only used by unparse() - * @param value string to process - * @return Processed value - */ - function _enclose_value ($value = null) { - if ( $value !== null && $value != '' ) { - $delimiter = preg_quote($this->delimiter, '/'); - $enclosure = preg_quote($this->enclosure, '/'); - if ( preg_match('/'.$delimiter.'|'.$enclosure."|\n|\r/i", $value) || ($value{0} == ' ' || substr($value, -1) == ' ') ) { - $value = str_replace($this->enclosure, $this->enclosure.$this->enclosure, $value); - $value = $this->enclosure.$value.$this->enclosure; - } - } - return $value; - } - - /** - * Check file data - * @param file local filename - * @return true or false - */ - function _check_data ($file = null) { - if ( empty($this->file_data) ) { - if ( $file === null ) $file = $this->file; - return $this->load_data($file); - } - return true; - } - - - /** - * Check if passed info might be delimiter - * - only used by find_delimiter() - * @return special string used for delimiter selection, or false - */ - function _check_count ($char, $array, $depth, $preferred) { - if ( $depth == count($array) ) { - $first = null; - $equal = null; - $almost = false; - foreach( $array as $key => $value ) { - if ( $first == null ) { - $first = $value; - } elseif ( $value == $first && $equal !== false) { - $equal = true; - } elseif ( $value == $first+1 && $equal !== false ) { - $equal = true; - $almost = true; - } else { - $equal = false; - } - } - if ( $equal ) { - $match = ( $almost ) ? 2 : 1 ; - $pref = strpos($preferred, $char); - $pref = ( $pref !== false ) ? str_pad($pref, 3, '0', STR_PAD_LEFT) : '999' ; - return $pref.$match.'.'.(99999 - str_pad($first, 5, '0', STR_PAD_LEFT)); - } else return false; - } - } - - /** - * Read local file - * @param file local filename - * @return Data from file, or false on failure - */ - function _rfile ($file = null) { - if ( is_readable($file) ) { - if ( !($fh = fopen($file, 'r')) ) return false; - $data = fread($fh, filesize($file)); - fclose($fh); - return $data; - } - return false; - } - - /** - * Write to local file - * @param file local filename - * @param string data to write to file - * @param mode fopen() mode - * @param lock flock() mode - * @return true or false - */ - function _wfile ($file, $string = '', $mode = 'wb', $lock = 2) { - if ( $fp = fopen($file, $mode) ) { - flock($fp, $lock); - $re = fwrite($fp, $string); - $re2 = fclose($fp); - if ( $re != false && $re2 != false ) return true; - } - return false; - } - + /** + * Configuration + * - set these options with $object->var_name = 'value';. + */ + + // use first line/entry as field names + public $heading = true; + + // override field names + public $fields = []; + + // sort entries by this field + public $sort_by = null; + public $sort_reverse = false; + + // delimiter (comma) and enclosure (double quote) + public $delimiter = ','; + public $enclosure = '"'; + + // basic SQL-like conditions for row matching + public $conditions = null; + + // number of rows to ignore from beginning of data + public $offset = null; + + // limits the number of returned rows to specified amount + public $limit = null; + + // number of rows to analyze when attempting to auto-detect delimiter + public $auto_depth = 15; + + // characters to ignore when attempting to auto-detect delimiter + public $auto_non_chars = "a-zA-Z0-9\n\r"; + + // preferred delimiter characters, only used when all filtering method + // returns multiple possible delimiters (happens very rarely) + public $auto_preferred = ",;\t.:|"; + + // character encoding options + public $convert_encoding = false; + public $input_encoding = 'ISO-8859-1'; + public $output_encoding = 'ISO-8859-1'; + + // used by unparse(), save(), and output() functions + public $linefeed = "\r\n"; + + // only used by output() function + public $output_delimiter = ','; + public $output_filename = 'data.csv'; + + /** + * Internal variables. + */ + + // current file + public $file; + + // loaded file contents + public $file_data; + + // array of field values in data parsed + public $titles = []; + + // two dimentional array of CSV data + public $data = []; + + /** + * Constructor. + * + * @param input CSV file or string + * @param null|mixed $input + * @param null|mixed $offset + * @param null|mixed $limit + * @param null|mixed $conditions + * + * @return nothing + */ + public function __construct($input = null, $offset = null, $limit = null, $conditions = null) + { + if ($offset !== null) { + $this->offset = $offset; + } + if ($limit !== null) { + $this->limit = $limit; + } + if (count($conditions) > 0) { + $this->conditions = $conditions; + } + if (! empty($input)) { + $this->parse($input); + } + } + + // ============================================== + // ----- [ Main Functions ] --------------------- + // ============================================== + + /** + * Parse CSV file or string. + * + * @param input CSV file or string + * @param null|mixed $input + * @param null|mixed $offset + * @param null|mixed $limit + * @param null|mixed $conditions + * + * @return nothing + */ + public function parse($input = null, $offset = null, $limit = null, $conditions = null) + { + if (! empty($input)) { + if ($offset !== null) { + $this->offset = $offset; + } + if ($limit !== null) { + $this->limit = $limit; + } + if (count($conditions) > 0) { + $this->conditions = $conditions; + } + if (is_readable($input)) { + $this->data = $this->parse_file($input); + } else { + $this->file_data = &$input; + $this->data = $this->parse_string(); + } + if ($this->data === false) { + return false; + } + } + + return true; + } + + /** + * Save changes, or new file and/or data. + * + * @param file file to save to + * @param data 2D array with data + * @param append append current data to end of target CSV if exists + * @param fields field names + * @param null|mixed $file + * @param mixed $data + * @param mixed $append + * @param mixed $fields + * + * @return true or false + */ + public function save($file = null, $data = [], $append = false, $fields = []) + { + if (empty($file)) { + $file = &$this->file; + } + $mode = ($append) ? 'at' : 'wt'; + $is_php = (preg_match('/\.php$/i', $file)) ? true : false; + + return $this->_wfile($file, $this->unparse($data, $fields, $append, $is_php), $mode); + } + + /** + * Generate CSV based string for output. + * + * @param output if true, prints headers and strings to browser + * @param filename filename sent to browser in headers if output is true + * @param data 2D array with data + * @param fields field names + * @param delimiter delimiter used to separate data + * @param mixed $output + * @param null|mixed $filename + * @param mixed $data + * @param mixed $fields + * @param null|mixed $delimiter + * + * @return CSV data using delimiter of choice, or default + */ + public function output($output = true, $filename = null, $data = [], $fields = [], $delimiter = null) + { + if (empty($filename)) { + $filename = $this->output_filename; + } + if ($delimiter === null) { + $delimiter = $this->output_delimiter; + } + $data = $this->unparse($data, $fields, null, null, $delimiter); + if ($output) { + header('Content-type: application/csv'); + header('Content-Disposition: inline; filename="'.$filename.'"'); + echo $data; + } + + return $data; + } + + /** + * Convert character encoding. + * + * @param input input character encoding, uses default if left blank + * @param output output character encoding, uses default if left blank + * @param null|mixed $input + * @param null|mixed $output + * + * @return nothing + */ + public function encoding($input = null, $output = null) + { + $this->convert_encoding = true; + if ($input !== null) { + $this->input_encoding = $input; + } + if ($output !== null) { + $this->output_encoding = $output; + } + } + + /** + * Auto-Detect Delimiter: Find delimiter by analyzing a specific number of + * rows to determine most probable delimiter character. + * + * @param file local CSV file + * @param parse true/false parse file directly + * @param search_depth number of rows to analyze + * @param preferred preferred delimiter characters + * @param enclosure enclosure character, default is double quote ("). + * @param null|mixed $file + * @param mixed $parse + * @param null|mixed $search_depth + * @param null|mixed $preferred + * @param null|mixed $enclosure + * + * @return delimiter character + */ + public function auto($file = null, $parse = true, $search_depth = null, $preferred = null, $enclosure = null) + { + if ($file === null) { + $file = $this->file; + } + if (empty($search_depth)) { + $search_depth = $this->auto_depth; + } + if ($enclosure === null) { + $enclosure = $this->enclosure; + } + + if ($preferred === null) { + $preferred = $this->auto_preferred; + } + + if (empty($this->file_data)) { + if ($this->_check_data($file)) { + $data = &$this->file_data; + } else { + return false; + } + } else { + $data = &$this->file_data; + } + + $chars = []; + $strlen = strlen($data); + $enclosed = false; + $n = 1; + $to_end = true; + + // walk specific depth finding posssible delimiter characters + for ($i = 0; $i < $strlen; $i++) { + $ch = $data{$i}; + $nch = (isset($data{$i + 1})) ? $data{$i + 1} : false; + $pch = (isset($data{$i - 1})) ? $data{$i - 1} : false; + + // open and closing quotes + if ($ch == $enclosure && (! $enclosed || $nch != $enclosure)) { + $enclosed = ($enclosed) ? false : true; + + // inline quotes + } elseif ($ch == $enclosure && $enclosed) { + $i++; + + // end of row + } elseif (($ch == "\n" && $pch != "\r" || $ch == "\r") && ! $enclosed) { + if ($n >= $search_depth) { + $strlen = 0; + $to_end = false; + } else { + $n++; + } + + // count character + } elseif (! $enclosed) { + if (! preg_match('/['.preg_quote($this->auto_non_chars, '/').']/i', $ch)) { + if (! isset($chars[$ch][$n])) { + $chars[$ch][$n] = 1; + } else { + $chars[$ch][$n]++; + } + } + } + } + + // filtering + $depth = ($to_end) ? $n - 1 : $n; + $filtered = []; + foreach ($chars as $char => $value) { + if ($match = $this->_check_count($char, $value, $depth, $preferred)) { + $filtered[$match] = $char; + } + } + + // capture most probable delimiter + ksort($filtered); + $delimiter = reset($filtered); + $this->delimiter = $delimiter; + + // parse data + if ($parse) { + $this->data = $this->parse_string(); + } + + return $delimiter; + } + + // ============================================== + // ----- [ Core Functions ] --------------------- + // ============================================== + + /** + * Read file to string and call parse_string(). + * + * @param file local CSV file + * @param null|mixed $file + * + * @return 2D array with CSV data, or false on failure + */ + public function parse_file($file = null) + { + if ($file === null) { + $file = $this->file; + } + if (empty($this->file_data)) { + $this->load_data($file); + } + + return (! empty($this->file_data)) ? $this->parse_string() : false; + } + + /** + * Parse CSV strings to arrays. + * + * @param data CSV string + * @param null|mixed $data + * + * @return 2D array with CSV data, or false on failure + */ + public function parse_string($data = null) + { + if (empty($data)) { + if ($this->_check_data()) { + $data = &$this->file_data; + } else { + return false; + } + } + + $rows = []; + $row = []; + $row_count = 0; + $current = ''; + $head = (! empty($this->fields)) ? $this->fields : []; + $col = 0; + $enclosed = false; + $was_enclosed = false; + $strlen = strlen($data); + + // walk through each character + for ($i = 0; $i < $strlen; $i++) { + $ch = $data{$i}; + $nch = (isset($data{$i + 1})) ? $data{$i + 1} : false; + $pch = (isset($data{$i - 1})) ? $data{$i - 1} : false; + + // open and closing quotes + if ($ch == $this->enclosure && (! $enclosed || $nch != $this->enclosure)) { + $enclosed = ($enclosed) ? false : true; + if ($enclosed) { + $was_enclosed = true; + } + + // inline quotes + } elseif ($ch == $this->enclosure && $enclosed) { + $current .= $ch; + $i++; + + // end of field/row + } elseif (($ch == $this->delimiter || ($ch == "\n" && $pch != "\r") || $ch == "\r") && ! $enclosed) { + if (! $was_enclosed) { + $current = trim($current); + } + $key = (! empty($head[$col])) ? $head[$col] : $col; + $row[$key] = $current; + $current = ''; + $col++; + + // end of row + if ($ch == "\n" || $ch == "\r") { + if ($this->_validate_offset($row_count) && $this->_validate_row_conditions($row, $this->conditions)) { + if ($this->heading && empty($head)) { + $head = $row; + } elseif (empty($this->fields) || (! empty($this->fields) && (($this->heading && $row_count > 0) || ! $this->heading))) { + if (! empty($this->sort_by) && ! empty($row[$this->sort_by])) { + if (isset($rows[$row[$this->sort_by]])) { + $rows[$row[$this->sort_by].'_0'] = &$rows[$row[$this->sort_by]]; + unset($rows[$row[$this->sort_by]]); + for ($sn = 1; isset($rows[$row[$this->sort_by].'_'.$sn]); $sn++) { + } + $rows[$row[$this->sort_by].'_'.$sn] = $row; + } else { + $rows[$row[$this->sort_by]] = $row; + } + } else { + $rows[] = $row; + } + } + } + $row = []; + $col = 0; + $row_count++; + if ($this->sort_by === null && $this->limit !== null && count($rows) == $this->limit) { + $i = $strlen; + } + } + + // append character to current field + } else { + $current .= $ch; + } + } + $this->titles = $head; + if (! empty($this->sort_by)) { + ($this->sort_reverse) ? krsort($rows) : ksort($rows); + if ($this->offset !== null || $this->limit !== null) { + $rows = array_slice($rows, ($this->offset === null ? 0 : $this->offset), $this->limit, true); + } + } + + return $rows; + } + + /** + * Create CSV data from array. + * + * @param data 2D array with data + * @param fields field names + * @param append if true, field names will not be output + * @param is_php if a php die() call should be put on the first + * line of the file, this is later ignored when read. + * @param delimiter field delimiter to use + * @param mixed $data + * @param mixed $fields + * @param mixed $append + * @param mixed $is_php + * @param null|mixed $delimiter + * + * @return CSV data (text string) + */ + public function unparse($data = [], $fields = [], $append = false, $is_php = false, $delimiter = null) + { + if (! is_array($data) || empty($data)) { + $data = &$this->data; + } + if (! is_array($fields) || empty($fields)) { + $fields = &$this->titles; + } + if ($delimiter === null) { + $delimiter = $this->delimiter; + } + + $string = ($is_php) ? "".$this->linefeed : ''; + $entry = []; + + // create heading + if ($this->heading && ! $append) { + foreach ($fields as $key => $value) { + $entry[] = $this->_enclose_value($value); + } + $string .= implode($delimiter, $entry).$this->linefeed; + $entry = []; + } + + // create data + foreach ($data as $key => $row) { + foreach ($row as $field => $value) { + $entry[] = $this->_enclose_value($value); + } + $string .= implode($delimiter, $entry).$this->linefeed; + $entry = []; + } + + return $string; + } + + /** + * Load local file or string. + * + * @param input local CSV file + * @param null|mixed $input + * + * @return true or false + */ + public function load_data($input = null) + { + $data = null; + $file = null; + if ($input === null) { + $file = $this->file; + } elseif (file_exists($input)) { + $file = $input; + } else { + $data = $input; + } + if (! empty($data) || $data = $this->_rfile($file)) { + if ($this->file != $file) { + $this->file = $file; + } + if (preg_match('/\.php$/i', $file) && preg_match('/<\?.*?\?>(.*)/ims', $data, $strip)) { + $data = ltrim($strip[1]); + } + if ($this->convert_encoding) { + $data = iconv($this->input_encoding, $this->output_encoding, $data); + } + if (substr($data, -1) != "\n") { + $data .= "\n"; + } + $this->file_data = &$data; + + return true; + } + + return false; + } + + // ============================================== + // ----- [ Internal Functions ] ----------------- + // ============================================== + + /** + * Validate a row against specified conditions. + * + * @param row array with values from a row + * @param conditions specified conditions that the row must match + * @param mixed $row + * @param null|mixed $conditions + * + * @return true of false + */ + public function _validate_row_conditions($row = [], $conditions = null) + { + if (! empty($row)) { + if (! empty($conditions)) { + $conditions = (strpos($conditions, ' OR ') !== false) ? explode(' OR ', $conditions) : [$conditions]; + $or = ''; + foreach ($conditions as $key => $value) { + if (strpos($value, ' AND ') !== false) { + $value = explode(' AND ', $value); + $and = ''; + foreach ($value as $k => $v) { + $and .= $this->_validate_row_condition($row, $v); + } + $or .= (strpos($and, '0') !== false) ? '0' : '1'; + } else { + $or .= $this->_validate_row_condition($row, $value); + } + } + + return (strpos($or, '1') !== false) ? true : false; + } + + return true; + } + + return false; + } + + /** + * Validate a row against a single condition. + * + * @param row array with values from a row + * @param condition specified condition that the row must match + * @param mixed $row + * @param mixed $condition + * + * @return true of false + */ + public function _validate_row_condition($row, $condition) + { + $operators = [ + '=', 'equals', 'is', + '!=', 'is not', + '<', 'is less than', + '>', 'is greater than', + '<=', 'is less than or equals', + '>=', 'is greater than or equals', + 'contains', + 'does not contain', + ]; + $operators_regex = []; + foreach ($operators as $value) { + $operators_regex[] = preg_quote($value, '/'); + } + $operators_regex = implode('|', $operators_regex); + if (preg_match('/^(.+) ('.$operators_regex.') (.+)$/i', trim($condition), $capture)) { + $field = $capture[1]; + $op = $capture[2]; + $value = $capture[3]; + if (preg_match('/^([\'\"]{1})(.*)([\'\"]{1})$/i', $value, $capture)) { + if ($capture[1] == $capture[3]) { + $value = $capture[2]; + $value = str_replace('\\n', "\n", $value); + $value = str_replace('\\r', "\r", $value); + $value = str_replace('\\t', "\t", $value); + $value = stripslashes($value); + } + } + if (array_key_exists($field, $row)) { + if (($op == '=' || $op == 'equals' || $op == 'is') && $row[$field] == $value) { + return '1'; + } elseif (($op == '!=' || $op == 'is not') && $row[$field] != $value) { + return '1'; + } elseif (($op == '<' || $op == 'is less than') && $row[$field] < $value) { + return '1'; + } elseif (($op == '>' || $op == 'is greater than') && $row[$field] > $value) { + return '1'; + } elseif (($op == '<=' || $op == 'is less than or equals') && $row[$field] <= $value) { + return '1'; + } elseif (($op == '>=' || $op == 'is greater than or equals') && $row[$field] >= $value) { + return '1'; + } elseif ($op == 'contains' && preg_match('/'.preg_quote($value, '/').'/i', $row[$field])) { + return '1'; + } elseif ($op == 'does not contain' && ! preg_match('/'.preg_quote($value, '/').'/i', $row[$field])) { + return '1'; + } else { + return '0'; + } + } + } + + return '1'; + } + + /** + * Validates if the row is within the offset or not if sorting is disabled. + * + * @param current_row the current row number being processed + * @param mixed $current_row + * + * @return true of false + */ + public function _validate_offset($current_row) + { + if ($this->sort_by === null && $this->offset !== null && $current_row < $this->offset) { + return false; + } + + return true; + } + + /** + * Enclose values if needed + * - only used by unparse(). + * + * @param value string to process + * @param null|mixed $value + * + * @return Processed value + */ + public function _enclose_value($value = null) + { + if ($value !== null && $value != '') { + $delimiter = preg_quote($this->delimiter, '/'); + $enclosure = preg_quote($this->enclosure, '/'); + if (preg_match('/'.$delimiter.'|'.$enclosure."|\n|\r/i", $value) || ($value{0} == ' ' || substr($value, -1) == ' ')) { + $value = str_replace($this->enclosure, $this->enclosure.$this->enclosure, $value); + $value = $this->enclosure.$value.$this->enclosure; + } + } + + return $value; + } + + /** + * Check file data. + * + * @param file local filename + * @param null|mixed $file + * + * @return true or false + */ + public function _check_data($file = null) + { + if (empty($this->file_data)) { + if ($file === null) { + $file = $this->file; + } + + return $this->load_data($file); + } + + return true; + } + + /** + * Check if passed info might be delimiter + * - only used by find_delimiter(). + * + * @param mixed $char + * @param mixed $array + * @param mixed $depth + * @param mixed $preferred + * + * @return special string used for delimiter selection, or false + */ + public function _check_count($char, $array, $depth, $preferred) + { + if ($depth == count($array)) { + $first = null; + $equal = null; + $almost = false; + foreach ($array as $key => $value) { + if ($first == null) { + $first = $value; + } elseif ($value == $first && $equal !== false) { + $equal = true; + } elseif ($value == $first + 1 && $equal !== false) { + $equal = true; + $almost = true; + } else { + $equal = false; + } + } + if ($equal) { + $match = ($almost) ? 2 : 1; + $pref = strpos($preferred, $char); + $pref = ($pref !== false) ? str_pad($pref, 3, '0', STR_PAD_LEFT) : '999'; + + return $pref.$match.'.'.(99999 - str_pad($first, 5, '0', STR_PAD_LEFT)); + } else { + return false; + } + } + } + + /** + * Read local file. + * + * @param file local filename + * @param null|mixed $file + * + * @return Data from file, or false on failure + */ + public function _rfile($file = null) + { + if (is_readable($file)) { + if (! ($fh = fopen($file, 'r'))) { + return false; + } + $data = fread($fh, filesize($file)); + fclose($fh); + + return $data; + } + + return false; + } + + /** + * Write to local file. + * + * @param file local filename + * @param string data to write to file + * @param mode fopen() mode + * @param lock flock() mode + * @param mixed $file + * @param mixed $string + * @param mixed $mode + * @param mixed $lock + * + * @return true or false + */ + public function _wfile($file, $string = '', $mode = 'wb', $lock = 2) + { + if ($fp = fopen($file, $mode)) { + flock($fp, $lock); + $re = fwrite($fp, $string); + $re2 = fclose($fp); + if ($re != false && $re2 != false) { + return true; + } + } + + return false; + } } - -?> diff --git a/app/Jobs/Job.php b/app/Jobs/Job.php index cd1bae1ceb3d..605ad09ff400 100644 --- a/app/Jobs/Job.php +++ b/app/Jobs/Job.php @@ -17,7 +17,7 @@ abstract class Job */ protected $jobName; - /** + /* * Handle a job failure. * * @param ContactMailer $mailer diff --git a/app/Jobs/SendInvoiceEmail.php b/app/Jobs/SendInvoiceEmail.php index 8194a1c95684..a638b2b049c0 100644 --- a/app/Jobs/SendInvoiceEmail.php +++ b/app/Jobs/SendInvoiceEmail.php @@ -4,14 +4,13 @@ namespace App\Jobs; use App\Models\Invoice; use App\Ninja\Mailers\ContactMailer; -use Illuminate\Queue\SerializesModels; -use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Queue\SerializesModels; use Monolog\Logger; -use Carbon; /** - * Class SendInvoiceEmail + * Class SendInvoiceEmail. */ class SendInvoiceEmail extends Job implements ShouldQueue { @@ -32,18 +31,25 @@ class SendInvoiceEmail extends Job implements ShouldQueue */ protected $pdfString; + /** + * @var array + */ + protected $template; + /** * Create a new job instance. * * @param Invoice $invoice - * @param string $pdf - * @param bool $reminder + * @param string $pdf + * @param bool $reminder + * @param mixed $pdfString */ - public function __construct(Invoice $invoice, $reminder = false, $pdfString = false) + public function __construct(Invoice $invoice, $reminder = false, $pdfString = false, $template = false) { $this->invoice = $invoice; $this->reminder = $reminder; $this->pdfString = $pdfString; + $this->template = $template; } /** @@ -53,10 +59,10 @@ class SendInvoiceEmail extends Job implements ShouldQueue */ public function handle(ContactMailer $mailer) { - $mailer->sendInvoice($this->invoice, $this->reminder, $this->pdfString); + $mailer->sendInvoice($this->invoice, $this->reminder, $this->pdfString, $this->template); } - /** + /* * Handle a job failure. * * @param ContactMailer $mailer diff --git a/app/Jobs/SendNotificationEmail.php b/app/Jobs/SendNotificationEmail.php index 32eaa6c42de0..bd8e893967dd 100644 --- a/app/Jobs/SendNotificationEmail.php +++ b/app/Jobs/SendNotificationEmail.php @@ -4,14 +4,12 @@ namespace App\Jobs; use App\Models\Payment; use App\Ninja\Mailers\UserMailer; -use Illuminate\Queue\SerializesModels; -use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; -use Monolog\Logger; -use Carbon; +use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Queue\SerializesModels; /** - * Class SendInvoiceEmail + * Class SendInvoiceEmail. */ class SendNotificationEmail extends Job implements ShouldQueue { @@ -37,13 +35,16 @@ class SendNotificationEmail extends Job implements ShouldQueue */ protected $payment; - /** * Create a new job instance. - * @param UserMailer $userMailer + * @param UserMailer $userMailer * @param ContactMailer $contactMailer - * @param PushService $pushService + * @param PushService $pushService + * @param mixed $user + * @param mixed $invoice + * @param mixed $type + * @param mixed $payment */ public function __construct($user, $invoice, $type, $payment) { @@ -62,5 +63,4 @@ class SendNotificationEmail extends Job implements ShouldQueue { $userMailer->sendNotification($this->user, $this->invoice, $this->type, $this->payment); } - } diff --git a/app/Jobs/SendPaymentEmail.php b/app/Jobs/SendPaymentEmail.php index c27c0f5f44ad..e23d291efcec 100644 --- a/app/Jobs/SendPaymentEmail.php +++ b/app/Jobs/SendPaymentEmail.php @@ -4,14 +4,12 @@ namespace App\Jobs; use App\Models\Payment; use App\Ninja\Mailers\ContactMailer; -use Illuminate\Queue\SerializesModels; -use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; -use Monolog\Logger; -use Carbon; +use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Queue\SerializesModels; /** - * Class SendInvoiceEmail + * Class SendInvoiceEmail. */ class SendPaymentEmail extends Job implements ShouldQueue { @@ -22,7 +20,6 @@ class SendPaymentEmail extends Job implements ShouldQueue */ protected $payment; - /** * Create a new job instance. @@ -42,6 +39,4 @@ class SendPaymentEmail extends Job implements ShouldQueue { $contactMailer->sendPaymentConfirmation($this->payment); } - - } diff --git a/app/Jobs/SendPushNotification.php b/app/Jobs/SendPushNotification.php index a9774e1f084c..88a1e59e1789 100644 --- a/app/Jobs/SendPushNotification.php +++ b/app/Jobs/SendPushNotification.php @@ -3,15 +3,13 @@ namespace App\Jobs; use App\Models\Invoice; -use Illuminate\Queue\SerializesModels; -use Illuminate\Queue\InteractsWithQueue; -use Illuminate\Contracts\Queue\ShouldQueue; use App\Services\PushService; -use Monolog\Logger; -use Carbon; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Queue\SerializesModels; /** - * Class SendInvoiceEmail + * Class SendInvoiceEmail. */ class SendPushNotification extends Job implements ShouldQueue { @@ -27,11 +25,11 @@ class SendPushNotification extends Job implements ShouldQueue */ protected $type; - /** * Create a new job instance. * @param Invoice $invoice + * @param mixed $type */ public function __construct($invoice, $type) { @@ -48,5 +46,4 @@ class SendPushNotification extends Job implements ShouldQueue { $pushService->sendNotification($this->invoice, $this->type); } - } diff --git a/app/Libraries/CurlUtils.php b/app/Libraries/CurlUtils.php index 4a11a90939dd..263631fe5985 100644 --- a/app/Libraries/CurlUtils.php +++ b/app/Libraries/CurlUtils.php @@ -1,4 +1,6 @@ -send($request, $response); - + if ($response->getStatus() === 200) { return $response->getContent(); } else { - //$response->getStatus(); + Utils::logError('Local PhantomJS Error: ' . $response->getStatus() . ' - ' . $url); return false; } - } } diff --git a/app/Libraries/DateUtils.php b/app/Libraries/DateUtils.php new file mode 100644 index 000000000000..2ee9b7596c58 --- /dev/null +++ b/app/Libraries/DateUtils.php @@ -0,0 +1,7 @@ +limit(100) ->get(); - foreach ($activities->reverse() as $activity) - { + foreach ($activities->reverse() as $activity) { if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_CLIENT) { $entity = $activity->client; - } else if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_TASK || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_TASK) { + } elseif ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_TASK || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_TASK) { $entity = $activity->task; - if ( ! $entity) { + if (! $entity) { continue; } $entity->setRelation('client', $activity->client); - } else if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_EXPENSE || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_EXPENSE) { + } elseif ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_EXPENSE || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_EXPENSE) { $entity = $activity->expense; - if ( ! $entity) { + if (! $entity) { continue; } $entity->setRelation('client', $activity->client); } else { $entity = $activity->invoice; - if ( ! $entity) { + if (! $entity) { continue; } $entity->setRelation('client', $activity->client); @@ -79,20 +79,20 @@ class HistoryUtils ENTITY_INVOICE, ENTITY_QUOTE, ENTITY_TASK, - ENTITY_EXPENSE + ENTITY_EXPENSE, ]; - if ( ! in_array($entityType, $trackedTypes)) { + if (! in_array($entityType, $trackedTypes)) { return; } - $object = static::convertToObject($entity); + $object = static::convertToObject($entity); $history = Session::get(RECENTLY_VIEWED) ?: []; $accountHistory = isset($history[$entity->account_id]) ? $history[$entity->account_id] : []; $data = []; // Add to the list and make sure to only show each item once - for ($i = 0; $iurl == $item->url) { @@ -151,20 +151,18 @@ class HistoryUtils $history = Session::get(RECENTLY_VIEWED, []); $history = isset($history[$accountId]) ? $history[$accountId] : []; - foreach ($history as $item) - { + foreach ($history as $item) { if ($item->entityType == ENTITY_CLIENT && isset($clientMap[$item->client_id])) { continue; } $clientMap[$item->client_id] = true; - if ($lastClientId === false || $item->client_id != $lastClientId) - { + if ($lastClientId === false || $item->client_id != $lastClientId) { $icon = ''; if ($item->client_id) { $link = url('/clients/' . $item->client_id); - $name = $item->client_name ; + $name = $item->client_name; $buttonLink = url('/invoices/create/' . $item->client_id); $button = ' diff --git a/app/Libraries/OFX.php b/app/Libraries/OFX.php index 83edb3085d5f..2fa13d80c589 100644 --- a/app/Libraries/OFX.php +++ b/app/Libraries/OFX.php @@ -1,10 +1,12 @@ -bank = $bank; $this->request = $request; } + public function go() { $c = curl_init(); @@ -40,6 +44,7 @@ class OFX $this->responseHeader = $tmp[0]; $this->responseBody = ''.$tmp[1]; } + public function xml() { $xml = $this->responseBody; @@ -52,6 +57,7 @@ class OFX public static function closeTags($x) { $x = preg_replace('/\s+/', '', $x); + return preg_replace('/(<([^<\/]+)>)(?!.*?<\/\2>)([^<]+)/', '\1\3', $x); } } @@ -64,10 +70,11 @@ class Finance class Bank { public $logins; // array of class User - public $finance; // the Finance object that hold this Bank object - public $fid; + public $finance; // the Finance object that hold this Bank object + public $fid; public $org; public $url; + public function __construct($finance, $fid, $url, $org) { $this->finance = $finance; @@ -83,50 +90,52 @@ class Login public $bank; public $id; public $pass; + public function __construct($bank, $id, $pass) { $this->bank = $bank; $this->id = $id; $this->pass = $pass; } + public function setup() { $ofxRequest = - "OFXHEADER:100\n". - "DATA:OFXSGML\n". - "VERSION:102\n". - "SECURITY:NONE\n". - "ENCODING:USASCII\n". - "CHARSET:1252\n". - "COMPRESSION:NONE\n". - "OLDFILEUID:NONE\n". - "NEWFILEUID:NONE\n". - "\n". - "\n". - "\n". - "\n". - "20110412162900.000[-7:MST]\n". - ''.$this->id."\n". - ''.$this->pass."\n". - "N\n". - "ENG\n". - "\n". - ''.$this->bank->org."\n". - ''.$this->bank->fid."\n". - "\n". - "QWIN\n". - "2500\n". - "\n". - "\n". - "\n". - "\n". - ''.md5(time().$this->bank->url.$this->id)."\n". - "\n". - "19900101\n". - "\n". - " \n". - "\n". - "\n"; + "OFXHEADER:100\n". + "DATA:OFXSGML\n". + "VERSION:102\n". + "SECURITY:NONE\n". + "ENCODING:USASCII\n". + "CHARSET:1252\n". + "COMPRESSION:NONE\n". + "OLDFILEUID:NONE\n". + "NEWFILEUID:NONE\n". + "\n". + "\n". + "\n". + "\n". + "20110412162900.000[-7:MST]\n". + ''.$this->id."\n". + ''.$this->pass."\n". + "N\n". + "ENG\n". + "\n". + ''.$this->bank->org."\n". + ''.$this->bank->fid."\n". + "\n". + "QWIN\n". + "2500\n". + "\n". + "\n". + "\n". + "\n". + ''.md5(time().$this->bank->url.$this->id)."\n". + "\n". + "19900101\n". + "\n". + " \n". + "\n". + "\n"; $o = new OFX($this->bank, $ofxRequest); $o->go(); $x = $o->xml(); @@ -149,6 +158,7 @@ class Account public $ledgerBalance; public $availableBalance; public $response; + public function __construct($login, $id, $type, $subType = null, $bankId = null) { $this->login = $login; @@ -157,80 +167,81 @@ class Account $this->subType = $subType; $this->bankId = $bankId; } + public function setup($includeTransactions = true) { $ofxRequest = - "OFXHEADER:100\n". - "DATA:OFXSGML\n". - "VERSION:102\n". - "SECURITY:NONE\n". - "ENCODING:USASCII\n". - "CHARSET:1252\n". - "COMPRESSION:NONE\n". - "OLDFILEUID:NONE\n". - "NEWFILEUID:NONE\n". - "\n". - "\n". - "\n". - "\n". - "20110412162900.000[-7:MST]\n". - ''.$this->login->id."\n". - ''.$this->login->pass."\n". - "ENG\n". - "\n". - ''.$this->login->bank->org."\n". - ''.$this->login->bank->fid."\n". - "\n". - "QWIN\n". - "2500\n". - "\n". - "\n"; + "OFXHEADER:100\n". + "DATA:OFXSGML\n". + "VERSION:102\n". + "SECURITY:NONE\n". + "ENCODING:USASCII\n". + "CHARSET:1252\n". + "COMPRESSION:NONE\n". + "OLDFILEUID:NONE\n". + "NEWFILEUID:NONE\n". + "\n". + "\n". + "\n". + "\n". + "20110412162900.000[-7:MST]\n". + ''.$this->login->id."\n". + ''.$this->login->pass."\n". + "ENG\n". + "\n". + ''.$this->login->bank->org."\n". + ''.$this->login->bank->fid."\n". + "\n". + "QWIN\n". + "2500\n". + "\n". + "\n"; if ($this->type == 'BANK') { $ofxRequest .= - " \n". - " \n". - ' '.md5(time().$this->login->bank->url.$this->id)."\n". - " \n". - " \n". - ' '.$this->bankId."\n". - ' '.$this->id."\n". - ' '.$this->subType."\n". - " \n". - " \n". - " 20110301\n". - ' '.($includeTransactions ? 'Y' : 'N')."\n". - " \n". - " \n". - " \n". - " \n"; + " \n". + " \n". + ' '.md5(time().$this->login->bank->url.$this->id)."\n". + " \n". + " \n". + ' '.$this->bankId."\n". + ' '.$this->id."\n". + ' '.$this->subType."\n". + " \n". + " \n". + " 20110301\n". + ' '.($includeTransactions ? 'Y' : 'N')."\n". + " \n". + " \n". + " \n". + " \n"; } elseif ($this->type == 'CC') { $ofxRequest .= - " \n". - " \n". - ' '.md5(time().$this->login->bank->url.$this->id)."\n". - " \n". - " \n". - ' '.$this->id."\n". - " \n". - " \n". - " 20110320\n". - ' '.($includeTransactions ? 'Y' : 'N')."\n". - " \n". - " \n". - " \n". - " \n"; + " \n". + " \n". + ' '.md5(time().$this->login->bank->url.$this->id)."\n". + " \n". + " \n". + ' '.$this->id."\n". + " \n". + " \n". + " 20110320\n". + ' '.($includeTransactions ? 'Y' : 'N')."\n". + " \n". + " \n". + " \n". + " \n"; } $ofxRequest .= - ''; + ''; $o = new OFX($this->login->bank, $ofxRequest); $o->go(); $this->response = $o->response; $x = $o->xml(); $a = $x->xpath('/OFX/*/*/*/LEDGERBAL/BALAMT'); - $this->ledgerBalance = (double) $a[0]; + $this->ledgerBalance = (float) $a[0]; $a = $x->xpath('/OFX/*/*/*/AVAILBAL/BALAMT'); if (isset($a[0])) { - $this->availableBalance = (double) $a[0]; + $this->availableBalance = (float) $a[0]; } } } diff --git a/app/Libraries/Skype/ButtonCard.php b/app/Libraries/Skype/ButtonCard.php index f2e1c52ae6f7..ed3136917538 100644 --- a/app/Libraries/Skype/ButtonCard.php +++ b/app/Libraries/Skype/ButtonCard.php @@ -1,4 +1,6 @@ -contentType = 'application/vnd.microsoft.card.hero'; - $this->content = new stdClass; + $this->content = new stdClass(); $this->content->buttons = []; } diff --git a/app/Libraries/Skype/InvoiceCard.php b/app/Libraries/Skype/InvoiceCard.php index f7a1d6097781..88f4dcd8232b 100644 --- a/app/Libraries/Skype/InvoiceCard.php +++ b/app/Libraries/Skype/InvoiceCard.php @@ -1,4 +1,6 @@ -contentType = 'application/vnd.microsoft.card.receipt'; - $this->content = new stdClass; + $this->content = new stdClass(); $this->content->facts = []; $this->content->items = []; $this->content->buttons = []; @@ -17,7 +19,7 @@ class InvoiceCard $this->setTitle(trans('texts.invoice_for_client', [ 'invoice' => link_to($invoice->getRoute(), $invoice->invoice_number), - 'client' => link_to($invoice->client->getRoute(), $invoice->client->getDisplayName()) + 'client' => link_to($invoice->client->getRoute(), $invoice->client->getDisplayName()), ])); $this->addFact(trans('texts.email'), HTML::mailto($invoice->client->contacts[0]->email)->toHtml()); @@ -60,7 +62,7 @@ class InvoiceCard public function addFact($key, $value) { - $fact = new stdClass; + $fact = new stdClass(); $fact->key = $key; $fact->value = $value; diff --git a/app/Libraries/Skype/InvoiceItemCard.php b/app/Libraries/Skype/InvoiceItemCard.php index 7922d7053001..f62f00810d00 100644 --- a/app/Libraries/Skype/InvoiceItemCard.php +++ b/app/Libraries/Skype/InvoiceItemCard.php @@ -1,4 +1,6 @@ -account; + } elseif ($contactKey = session('contact_key')) { + if ($contact = \App\Models\Contact::whereContactKey($contactKey)->first()) { + $account = $contact->account; + } + } + + if ( !$account && ! self::isNinja()) { + // For self-hosted accounts, pick the first account + $account = \App\Models\Account::first(); + } + + return $account ? $account->clientViewCSS() : ''; + } + + public static function getAccountFontsUrl($protocol = '') + { + $account = false; + + if (Auth::check()) { + $account = Auth::user()->account; + } elseif ($contactKey = session('contact_key')) { + if ($contact = \App\Models\Contact::whereContactKey($contactKey)->first()) { + $account = $contact->account; + } + } + + if ( !$account && ! self::isNinja()) { + // For self-hosted accounts, pick the first account + $account = \App\Models\Account::first(); + } + + return $account ? $account->getFontsUrl($protocol) : false; + } + public static function isWhiteLabel() { $account = false; - if (Utils::isNinja()) { + if (self::isNinja()) { if (Auth::check()) { $account = Auth::user()->account; } elseif ($contactKey = session('contact_key')) { @@ -135,7 +177,7 @@ class Utils SOCIAL_GOOGLE, SOCIAL_FACEBOOK, SOCIAL_GITHUB, - SOCIAL_LINKEDIN + SOCIAL_LINKEDIN, ]; foreach ($providers as $provider) { @@ -150,7 +192,7 @@ class Utils public static function allowNewAccounts() { - return Utils::isNinja() || Auth::check(); + return self::isNinja() || Auth::check(); } public static function isPro() @@ -202,7 +244,7 @@ class Utils public static function getUserType() { - if (Utils::isNinja()) { + if (self::isNinja()) { return USER_TYPE_CLOUD_HOST; } else { return USER_TYPE_SELF_HOST; @@ -216,8 +258,8 @@ class Utils public static function getNewsFeedResponse($userType = false) { - if (!$userType) { - $userType = Utils::getUserType(); + if (! $userType) { + $userType = self::getUserType(); } $response = new stdClass(); @@ -231,7 +273,7 @@ class Utils public static function getProLabel($feature) { if (Auth::check() - && !Auth::user()->isPro() + && ! Auth::user()->isPro() && $feature == ACCOUNT_ADVANCED_SETTINGS) { return ' PRO'; } else { @@ -311,7 +353,7 @@ class Utils public static function fatalError($message = false, $exception = false) { - if (!$message) { + if (! $message) { $message = 'An error occurred, please try again later.'; } @@ -329,6 +371,7 @@ class Utils { $class = get_class($exception); $code = method_exists($exception, 'getStatusCode') ? $exception->getStatusCode() : $exception->getCode(); + return "***{$class}*** [{$code}] : {$exception->getFile()} [Line {$exception->getLine()}] => {$exception->getMessage()}"; } @@ -384,15 +427,17 @@ class Utils return intval($value); } - public static function getFromCache($id, $type) { + public static function getFromCache($id, $type) + { $cache = Cache::get($type); - if ( ! $cache) { + if (! $cache) { static::logError("Cache for {$type} is not set"); + return null; } - $data = $cache->filter(function($item) use ($id) { + $data = $cache->filter(function ($item) use ($id) { return $item->id == $id; }); @@ -403,15 +448,15 @@ class Utils { $value = floatval($value); - if (!$currencyId) { + if (! $currencyId) { $currencyId = Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY); } - if (!$decorator) { + if (! $decorator) { $decorator = Session::get(SESSION_CURRENCY_DECORATOR, CURRENCY_DECORATOR_SYMBOL); } - if (!$countryId && Auth::check()) { + if (! $countryId && Auth::check()) { $countryId = Auth::user()->account->country_id; } @@ -457,7 +502,7 @@ class Utils public static function pluralizeEntityType($type) { - if ( ! Utils::isNinjaProd()) { + if (! self::isNinjaProd()) { if ($module = \Module::find($type)) { return $module->get('plural', $type); } @@ -478,6 +523,7 @@ class Utils } $lastDigits = substr($value, -4); + return str_repeat('*', $length - 4) . $lastDigits; } @@ -533,7 +579,7 @@ class Utils $timezone = Session::get(SESSION_TIMEZONE, DEFAULT_TIMEZONE); $format = Session::get(SESSION_DATETIME_FORMAT, DEFAULT_DATETIME_FORMAT); - return Utils::timestampToString($timestamp, $timezone, $format); + return self::timestampToString($timestamp, $timezone, $format); } public static function timestampToDateString($timestamp) @@ -541,12 +587,12 @@ class Utils $timezone = Session::get(SESSION_TIMEZONE, DEFAULT_TIMEZONE); $format = Session::get(SESSION_DATE_FORMAT, DEFAULT_DATE_FORMAT); - return Utils::timestampToString($timestamp, $timezone, $format); + return self::timestampToString($timestamp, $timezone, $format); } public static function dateToString($date) { - if (!$date) { + if (! $date) { return false; } @@ -559,12 +605,12 @@ class Utils $timestamp = $dateTime->getTimestamp(); $format = Session::get(SESSION_DATE_FORMAT, DEFAULT_DATE_FORMAT); - return Utils::timestampToString($timestamp, false, $format); + return self::timestampToString($timestamp, false, $format); } - public static function timestampToString($timestamp, $timezone = false, $format) + public static function timestampToString($timestamp, $timezone, $format) { - if (!$timestamp) { + if (! $timestamp) { return ''; } $date = Carbon::createFromTimeStamp($timestamp); @@ -580,37 +626,39 @@ class Utils public static function toSqlDate($date, $formatResult = true) { - if (!$date) { + if (! $date) { return; } $format = Session::get(SESSION_DATE_FORMAT, DEFAULT_DATE_FORMAT); $dateTime = DateTime::createFromFormat($format, $date); - if(!$dateTime) + if (! $dateTime) { return $date; - else + } else { return $formatResult ? $dateTime->format('Y-m-d') : $dateTime; + } } public static function fromSqlDate($date, $formatResult = true) { - if (!$date || $date == '0000-00-00') { + if (! $date || $date == '0000-00-00') { return ''; } $format = Session::get(SESSION_DATE_FORMAT, DEFAULT_DATE_FORMAT); $dateTime = DateTime::createFromFormat('Y-m-d', $date); - if(!$dateTime) + if (! $dateTime) { return $date; - else + } else { return $formatResult ? $dateTime->format($format) : $dateTime; + } } public static function fromSqlDateTime($date, $formatResult = true) { - if (!$date || $date == '0000-00-00 00:00:00') { + if (! $date || $date == '0000-00-00 00:00:00') { return ''; } @@ -627,7 +675,8 @@ class Utils { // http://stackoverflow.com/a/3172665 $f = ':'; - return sprintf('%02d%s%02d%s%02d', floor($t/3600), $f, ($t/60)%60, $f, $t%60); + + return sprintf('%02d%s%02d%s%02d', floor($t / 3600), $f, ($t / 60) % 60, $f, $t % 60); } public static function today($formatResult = true) @@ -646,12 +695,12 @@ class Utils public static function processVariables($str) { - if (!$str) { + if (! $str) { return ''; } $variables = ['MONTH', 'QUARTER', 'YEAR']; - for ($i = 0; $ivendor_name) + if ($model->vendor_name) { return $model->vendor_name; + } return 'No vendor name'; } @@ -781,7 +832,7 @@ class Utils public static function generateLicense() { $parts = []; - for ($i = 0; $i<5; $i++) { + for ($i = 0; $i < 5; $i++) { $parts[] = strtoupper(str_random(4)); } @@ -816,7 +867,7 @@ class Utils CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $jsonEncodedData, - CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Content-Length: '.strlen($jsonEncodedData)], + CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Content-Length: '.strlen($jsonEncodedData)], ]; curl_setopt_array($curl, $opts); @@ -849,7 +900,7 @@ class Utils public static function isEmpty($value) { - return !$value || $value == '0' || $value == '0.00' || $value == '0,00'; + return ! $value || $value == '0' || $value == '0.00' || $value == '0,00'; } public static function startsWith($haystack, $needle) @@ -910,9 +961,10 @@ class Utils public static function transFlowText($key) { $str = trans("texts.$key"); - if (!in_array(App::getLocale(), ['de', 'fr'])) { + if (! in_array(App::getLocale(), ['de', 'fr'])) { $str = strtolower($str); } + return $str; } @@ -926,6 +978,7 @@ class Utils $subdomain = $host[0]; } } + return $subdomain; } @@ -945,6 +998,7 @@ class Utils if (isset($parts['path'])) { $domain .= $parts['path']; } + return $domain; } @@ -956,6 +1010,7 @@ class Utils $oldSubdomain = $host[0]; $domain = str_replace("://{$oldSubdomain}.", "://{$subdomain}.", $domain); } + return $domain; } @@ -964,12 +1019,14 @@ class Utils $name = trim($name); $lastName = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name); $firstName = trim(preg_replace('#'.$lastName.'#', '', $name)); + return [$firstName, $lastName]; } public static function decodePDF($string) { $string = str_replace('data:application/pdf;base64,', '', $string); + return base64_decode($string); } @@ -993,7 +1050,7 @@ class Utils public static function formatWebsite($website) { - if (!$website) { + if (! $website) { return ''; } @@ -1013,13 +1070,14 @@ class Utils public static function wrapAdjustment($adjustment, $currencyId, $countryId) { $class = $adjustment <= 0 ? 'success' : 'default'; - $adjustment = Utils::formatMoney($adjustment, $currencyId, $countryId); + $adjustment = self::formatMoney($adjustment, $currencyId, $countryId); + return "

$adjustment

"; } public static function copyContext($entity1, $entity2) { - if (!$entity2) { + if (! $entity2) { return $entity1; } @@ -1028,7 +1086,7 @@ class Utils 'payment_id', 'invoice_id', 'credit_id', - 'invitation_id' + 'invitation_id', ]; $fields1 = $entity1->getAttributes(); @@ -1045,7 +1103,7 @@ class Utils public static function addHttp($url) { - if (!preg_match('~^(?:f|ht)tps?://~i', $url)) { + if (! preg_match('~^(?:f|ht)tps?://~i', $url)) { $url = 'http://' . $url; } @@ -1070,7 +1128,7 @@ class Utils } /** - * Gets an array of weekday names (in English) + * Gets an array of weekday names (in English). * * @see getTranslatedWeekdayNames() * @@ -1082,14 +1140,14 @@ class Utils } /** - * Gets an array of translated weekday names + * Gets an array of translated weekday names. * * @return \Illuminate\Support\Collection */ public static function getTranslatedWeekdayNames() { return collect(static::$weekdayNames)->transform(function ($day) { - return trans('texts.'.strtolower($day)); + return trans('texts.'.strtolower($day)); }); } diff --git a/app/Libraries/entity.php b/app/Libraries/entity.php index 57e447e2e271..c8802aa8008d 100644 --- a/app/Libraries/entity.php +++ b/app/Libraries/entity.php @@ -1,8 +1,7 @@ - - # This code is licensed under the MIT license - # + + // This code is licensed under the MIT license + // - #################################################################### + //################################################################### - # - # These are global options. You can set them before calling the autolinking - # functions to change the output. - # + // + // These are global options. You can set them before calling the autolinking + // functions to change the output. + // - $GLOBALS['autolink_options'] = [ + $GLOBALS['autolink_options'] = [ + + // Should http:// be visibly stripped from the front + // of URLs? + 'strip_protocols' => false, + + ]; + + //################################################################### + + function autolink($text, $limit = 30, $tagfill = '', $auto_title = true) + { + $text = autolink_do($text, '![a-z][a-z-]+://!i', $limit, $tagfill, $auto_title); + $text = autolink_do($text, '!(mailto|skype):!i', $limit, $tagfill, $auto_title); + $text = autolink_do($text, '!www\\.!i', $limit, $tagfill, $auto_title, 'http://'); + + return $text; + } + + //################################################################### + + function autolink_do($text, $sub, $limit, $tagfill, $auto_title, $force_prefix = null) + { + $text_l = strtolower($text); + $cursor = 0; + $loop = 1; + $buffer = ''; + + while (($cursor < strlen($text)) && $loop) { + $ok = 1; + $matched = preg_match($sub, $text_l, $m, PREG_OFFSET_CAPTURE, $cursor); + + if (! $matched) { + $loop = 0; + $ok = 0; + } else { + $pos = $m[0][1]; + $sub_len = strlen($m[0][0]); + + $pre_hit = substr($text, $cursor, $pos - $cursor); + $hit = substr($text, $pos, $sub_len); + $pre = substr($text, 0, $pos); + $post = substr($text, $pos + $sub_len); + + $fail_text = $pre_hit.$hit; + $fail_len = strlen($fail_text); + + // + // substring found - first check to see if we're inside a link tag already... + // + + $bits = preg_split('!
!i', $pre); + $last_bit = array_pop($bits); + if (preg_match("!\n"; + + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } + + // + // looks like a nice spot to autolink from - check the pre + // to see if there was whitespace before this match + // + + if ($ok) { + if ($pre) { + if (! preg_match('![\s\(\[\{>]$!s', $pre)) { + + //echo "fail 2 at $cursor ($pre)
\n"; + + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } + } + + // + // we want to autolink here - find the extent of the url + // + + if ($ok) { + if (preg_match('/^([a-z0-9\-\.\/\-_%~!?=,:;&+*#@\(\)\$]+)/i', $post, $matches)) { + $url = $hit.$matches[1]; + + $cursor += strlen($url) + strlen($pre_hit); + $buffer .= $pre_hit; + + $url = html_entity_decode($url); + + // + // remove trailing punctuation from url + // + + while (preg_match('|[.,!;:?]$|', $url)) { + $url = substr($url, 0, strlen($url) - 1); + $cursor--; + } + foreach (['()', '[]', '{}'] as $pair) { + $o = substr($pair, 0, 1); + $c = substr($pair, 1, 1); + if (preg_match("!^(\\$c|^)[^\\$o]+\\$c$!", $url)) { + $url = substr($url, 0, strlen($url) - 1); + $cursor--; + } + } + + // + // nice-i-fy url here + // + + $link_url = $url; + $display_url = $url; + + if ($force_prefix) { + $link_url = $force_prefix.$link_url; + } + + if ($GLOBALS['autolink_options']['strip_protocols']) { + if (preg_match('!^(http|https)://!i', $display_url, $m)) { + $display_url = substr($display_url, strlen($m[1]) + 3); + } + } + + $display_url = autolink_label($display_url, $limit); + + // + // add the url + // + + $currentTagfill = $tagfill; + if ($display_url != $link_url && ! preg_match('@title=@msi', $currentTagfill) && $auto_title) { + $display_quoted = preg_quote($display_url, '!'); + + if (! preg_match("!^(http|https)://{$display_quoted}$!i", $link_url)) { + $currentTagfill .= ' title="'.$link_url.'"'; + } + } - # Should http:// be visibly stripped from the front - # of URLs? - 'strip_protocols' => false, + $link_url_enc = htmlspecialchars($link_url); + $display_url_enc = htmlspecialchars($display_url); - ]; + $buffer .= "{$display_url_enc}"; + } else { + //echo "fail 3 at $cursor
\n"; - #################################################################### + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } + } - function autolink($text, $limit=30, $tagfill='', $auto_title = true){ + // + // add everything from the cursor to the end onto the buffer. + // - $text = autolink_do($text, '![a-z][a-z-]+://!i', $limit, $tagfill, $auto_title); - $text = autolink_do($text, '!(mailto|skype):!i', $limit, $tagfill, $auto_title); - $text = autolink_do($text, '!www\\.!i', $limit, $tagfill, $auto_title, 'http://'); - return $text; - } + $buffer .= substr($text, $cursor); - #################################################################### + return $buffer; + } - function autolink_do($text, $sub, $limit, $tagfill, $auto_title, $force_prefix=null){ + //################################################################### - $text_l = StrToLower($text); - $cursor = 0; - $loop = 1; - $buffer = ''; + function autolink_label($text, $limit) + { + if (! $limit) { + return $text; + } - while (($cursor < strlen($text)) && $loop){ + if (strlen($text) > $limit) { + return substr($text, 0, $limit - 3).'...'; + } - $ok = 1; - $matched = preg_match($sub, $text_l, $m, PREG_OFFSET_CAPTURE, $cursor); + return $text; + } - if (!$matched){ + //################################################################### - $loop = 0; - $ok = 0; + function autolink_email($text, $tagfill = '') + { + $atom = '[^()<>@,;:\\\\".\\[\\]\\x00-\\x20\\x7f]+'; // from RFC822 - }else{ + //die($atom); - $pos = $m[0][1]; - $sub_len = strlen($m[0][0]); + $text_l = strtolower($text); + $cursor = 0; + $loop = 1; + $buffer = ''; - $pre_hit = substr($text, $cursor, $pos-$cursor); - $hit = substr($text, $pos, $sub_len); - $pre = substr($text, 0, $pos); - $post = substr($text, $pos + $sub_len); + while (($cursor < strlen($text)) && $loop) { - $fail_text = $pre_hit.$hit; - $fail_len = strlen($fail_text); + // + // find an '@' symbol + // - # - # substring found - first check to see if we're inside a link tag already... - # + $ok = 1; + $pos = strpos($text_l, '@', $cursor); - $bits = preg_split('!!i', $pre); - $last_bit = array_pop($bits); - if (preg_match("!\n"; + $fail_text = $pre.$hit; + $fail_len = strlen($fail_text); - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } + //die("$pre::$hit::$post::$fail_text"); - # - # looks like a nice spot to autolink from - check the pre - # to see if there was whitespace before this match - # + // + // substring found - first check to see if we're inside a link tag already... + // - if ($ok){ + $bits = preg_split('!!i', $pre); + $last_bit = array_pop($bits); + if (preg_match("!]$!s', $pre)){ + //echo "fail 1 at $cursor
\n"; - #echo "fail 2 at $cursor ($pre)
\n"; + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } - } + // + // check backwards + // - # - # we want to autolink here - find the extent of the url - # + if ($ok) { + if (preg_match("!($atom(\.$atom)*)\$!", $pre, $matches)) { - if ($ok){ - if (preg_match('/^([a-z0-9\-\.\/\-_%~!?=,:;&+*#@\(\)\$]+)/i', $post, $matches)){ + // move matched part of address into $hit - $url = $hit.$matches[1]; + $len = strlen($matches[1]); + $plen = strlen($pre); - $cursor += strlen($url) + strlen($pre_hit); - $buffer .= $pre_hit; + $hit = substr($pre, $plen - $len).$hit; + $pre = substr($pre, 0, $plen - $len); + } else { - $url = html_entity_decode($url); + //echo "fail 2 at $cursor ($pre)
\n"; + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } - # - # remove trailing punctuation from url - # + // + // check forwards + // - while (preg_match('|[.,!;:?]$|', $url)){ - $url = substr($url, 0, strlen($url)-1); - $cursor--; - } - foreach (['()', '[]', '{}'] as $pair){ - $o = substr($pair, 0, 1); - $c = substr($pair, 1, 1); - if (preg_match("!^(\\$c|^)[^\\$o]+\\$c$!", $url)){ - $url = substr($url, 0, strlen($url)-1); - $cursor--; - } - } + if ($ok) { + if (preg_match("!^($atom(\.$atom)*)!", $post, $matches)) { + // move matched part of address into $hit - # - # nice-i-fy url here - # + $len = strlen($matches[1]); - $link_url = $url; - $display_url = $url; + $hit .= substr($post, 0, $len); + $post = substr($post, $len); + } else { + //echo "fail 3 at $cursor ($post)
\n"; - if ($force_prefix) $link_url = $force_prefix.$link_url; + $ok = 0; + $cursor += $fail_len; + $buffer .= $fail_text; + } + } - if ($GLOBALS['autolink_options']['strip_protocols']){ - if (preg_match('!^(http|https)://!i', $display_url, $m)){ + // + // commit + // - $display_url = substr($display_url, strlen($m[1])+3); - } - } + if ($ok) { + $cursor += strlen($pre) + strlen($hit); + $buffer .= $pre; + $buffer .= "$hit"; + } + } - $display_url = autolink_label($display_url, $limit); + // + // add everything from the cursor to the end onto the buffer. + // + $buffer .= substr($text, $cursor); - # - # add the url - # - - $currentTagfill = $tagfill; - if ($display_url != $link_url && !preg_match('@title=@msi',$currentTagfill) && $auto_title) { + return $buffer; + } - $display_quoted = preg_quote($display_url, '!'); - - if (!preg_match("!^(http|https)://{$display_quoted}$!i", $link_url)){ - - $currentTagfill .= ' title="'.$link_url.'"'; - } - } - - $link_url_enc = HtmlSpecialChars($link_url); - $display_url_enc = HtmlSpecialChars($display_url); - - $buffer .= "{$display_url_enc}"; - - }else{ - #echo "fail 3 at $cursor
\n"; - - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } - - } - - # - # add everything from the cursor to the end onto the buffer. - # - - $buffer .= substr($text, $cursor); - - return $buffer; - } - - #################################################################### - - function autolink_label($text, $limit){ - - if (!$limit){ return $text; } - - if (strlen($text) > $limit){ - return substr($text, 0, $limit-3).'...'; - } - - return $text; - } - - #################################################################### - - function autolink_email($text, $tagfill=''){ - - $atom = '[^()<>@,;:\\\\".\\[\\]\\x00-\\x20\\x7f]+'; # from RFC822 - - #die($atom); - - $text_l = StrToLower($text); - $cursor = 0; - $loop = 1; - $buffer = ''; - - while(($cursor < strlen($text)) && $loop){ - - # - # find an '@' symbol - # - - $ok = 1; - $pos = strpos($text_l, '@', $cursor); - - if ($pos === false){ - - $loop = 0; - $ok = 0; - - }else{ - - $pre = substr($text, $cursor, $pos-$cursor); - $hit = substr($text, $pos, 1); - $post = substr($text, $pos + 1); - - $fail_text = $pre.$hit; - $fail_len = strlen($fail_text); - - #die("$pre::$hit::$post::$fail_text"); - - # - # substring found - first check to see if we're inside a link tag already... - # - - $bits = preg_split('!!i', $pre); - $last_bit = array_pop($bits); - if (preg_match("!\n"; - - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } - - # - # check backwards - # - - if ($ok){ - if (preg_match("!($atom(\.$atom)*)\$!", $pre, $matches)){ - - # move matched part of address into $hit - - $len = strlen($matches[1]); - $plen = strlen($pre); - - $hit = substr($pre, $plen-$len).$hit; - $pre = substr($pre, 0, $plen-$len); - - }else{ - - #echo "fail 2 at $cursor ($pre)
\n"; - - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } - - # - # check forwards - # - - if ($ok){ - if (preg_match("!^($atom(\.$atom)*)!", $post, $matches)){ - - # move matched part of address into $hit - - $len = strlen($matches[1]); - - $hit .= substr($post, 0, $len); - $post = substr($post, $len); - - }else{ - #echo "fail 3 at $cursor ($post)
\n"; - - $ok = 0; - $cursor += $fail_len; - $buffer .= $fail_text; - } - } - - # - # commit - # - - if ($ok) { - - $cursor += strlen($pre) + strlen($hit); - $buffer .= $pre; - $buffer .= "$hit"; - - } - - } - - # - # add everything from the cursor to the end onto the buffer. - # - - $buffer .= substr($text, $cursor); - - return $buffer; - } - - #################################################################### - -?> + //###################################################################; diff --git a/app/Listeners/ActivityListener.php b/app/Listeners/ActivityListener.php index 2a3985f54ff6..59acdb457b98 100644 --- a/app/Listeners/ActivityListener.php +++ b/app/Listeners/ActivityListener.php @@ -1,50 +1,52 @@ -task->isChanged()) { + if (! $event->task->isChanged()) { return; } @@ -541,7 +544,6 @@ class ActivityListener ); } - public function createdExpense(ExpenseWasCreated $event) { $this->activityRepo->create( @@ -552,7 +554,7 @@ class ActivityListener public function updatedExpense(ExpenseWasUpdated $event) { - if ( ! $event->expense->isChanged()) { + if (! $event->expense->isChanged()) { return; } @@ -589,6 +591,4 @@ class ActivityListener ACTIVITY_TYPE_RESTORE_EXPENSE ); } - - } diff --git a/app/Listeners/AnalyticsListener.php b/app/Listeners/AnalyticsListener.php index ca36fd7912f9..5b26b59ab683 100644 --- a/app/Listeners/AnalyticsListener.php +++ b/app/Listeners/AnalyticsListener.php @@ -1,10 +1,12 @@ -accountRepo = $accountRepo; - } + } - /** - * Handle the event. - * - * @param UserLoggedIn $event + /** + * Handle the event. * - * @return void - */ - public function handle(UserLoggedIn $event) - { + * @param UserLoggedIn $event + * + * @return void + */ + public function handle(UserLoggedIn $event) + { $account = Auth::user()->account; if (empty($account->last_login)) { @@ -63,5 +65,5 @@ class HandleUserLoggedIn { } elseif ($account->isLogoTooLarge()) { Session::flash('warning', trans('texts.logo_too_large', ['size' => $account->getLogoSize() . 'KB'])); } - } + } } diff --git a/app/Listeners/HandleUserSettingsChanged.php b/app/Listeners/HandleUserSettingsChanged.php index 8afd72f9a392..f1910ab2f116 100644 --- a/app/Listeners/HandleUserSettingsChanged.php +++ b/app/Listeners/HandleUserSettingsChanged.php @@ -1,38 +1,40 @@ -accountRepo = $accountRepo; $this->userMailer = $userMailer; - } + } - /** - * Handle the event. - * - * @param UserSettingsChanged $event - * - * @return void - */ - public function handle(UserSettingsChanged $event) - { - if (!Auth::check()) { + /** + * Handle the event. + * + * @param UserSettingsChanged $event + * + * @return void + */ + public function handle(UserSettingsChanged $event) + { + if (! Auth::check()) { return; } @@ -46,5 +48,5 @@ class HandleUserSettingsChanged { $this->userMailer->sendConfirmation($event->user); Session::flash('warning', trans('texts.verify_email')); } - } + } } diff --git a/app/Listeners/HandleUserSignedUp.php b/app/Listeners/HandleUserSignedUp.php index 11fd3b90fb2c..e76f6c1c4162 100644 --- a/app/Listeners/HandleUserSignedUp.php +++ b/app/Listeners/HandleUserSignedUp.php @@ -1,13 +1,15 @@ -fromDeleted) { + if (! $event->fromDeleted) { return; } diff --git a/app/Listeners/QuoteListener.php b/app/Listeners/QuoteListener.php index d1b85bdf4ef3..0a47a049d4a0 100644 --- a/app/Listeners/QuoteListener.php +++ b/app/Listeners/QuoteListener.php @@ -1,9 +1,11 @@ -invoice->account); - $this->checkSubscriptions(EVENT_UPDATE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); + $transformer = new InvoiceTransformer($event->invoice->account); + $this->checkSubscriptions(EVENT_UPDATE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); } /** - * @param InvoiceWasDeleted $event - */ + * @param InvoiceWasDeleted $event + */ public function deletedInvoice(InvoiceWasDeleted $event) { - $transformer = new InvoiceTransformer($event->invoice->account); - $this->checkSubscriptions(EVENT_DELETE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); + $transformer = new InvoiceTransformer($event->invoice->account); + $this->checkSubscriptions(EVENT_DELETE_INVOICE, $event->invoice, $transformer, ENTITY_CLIENT); } /** - * @param QuoteWasUpdated $event - */ + * @param QuoteWasUpdated $event + */ public function updatedQuote(QuoteWasUpdated $event) { - $transformer = new InvoiceTransformer($event->quote->account); - $this->checkSubscriptions(EVENT_UPDATE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); + $transformer = new InvoiceTransformer($event->quote->account); + $this->checkSubscriptions(EVENT_UPDATE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); } /** - * @param InvoiceWasDeleted $event - */ + * @param InvoiceWasDeleted $event + */ public function deletedQuote(QuoteWasDeleted $event) { - $transformer = new InvoiceTransformer($event->quote->account); - $this->checkSubscriptions(EVENT_DELETE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); + $transformer = new InvoiceTransformer($event->quote->account); + $this->checkSubscriptions(EVENT_DELETE_QUOTE, $event->quote, $transformer, ENTITY_CLIENT); } /** @@ -129,7 +128,7 @@ class SubscriptionListener */ private function checkSubscriptions($eventId, $entity, $transformer, $include = '') { - if ( ! EntityModel::$notifySubscriptions) { + if (! EntityModel::$notifySubscriptions) { return; } diff --git a/app/Listeners/TaskListener.php b/app/Listeners/TaskListener.php index a49a243b9f38..0e3707380a53 100644 --- a/app/Listeners/TaskListener.php +++ b/app/Listeners/TaskListener.php @@ -1,10 +1,12 @@ -hasMany('App\Models\Expense','account_id','id')->withTrashed(); + return $this->hasMany('App\Models\Expense', 'account_id', 'id')->withTrashed(); } /** @@ -295,7 +298,7 @@ class Account extends Eloquent */ public function payments() { - return $this->hasMany('App\Models\Payment','account_id','id')->withTrashed(); + return $this->hasMany('App\Models\Payment', 'account_id', 'id')->withTrashed(); } /** @@ -311,7 +314,7 @@ class Account extends Eloquent */ public function expense_categories() { - return $this->hasMany('App\Models\ExpenseCategory','account_id','id')->withTrashed(); + return $this->hasMany('App\Models\ExpenseCategory', 'account_id', 'id')->withTrashed(); } /** @@ -319,7 +322,7 @@ class Account extends Eloquent */ public function projects() { - return $this->hasMany('App\Models\Project','account_id','id')->withTrashed(); + return $this->hasMany('App\Models\Project', 'account_id', 'id')->withTrashed(); } /** @@ -348,11 +351,12 @@ class Account extends Eloquent /** * @param int $gatewayId + * * @return bool */ public function isGatewayConfigured($gatewayId = 0) { - if ( ! $this->relationLoaded('account_gateways')) { + if (! $this->relationLoaded('account_gateways')) { $this->load('account_gateways'); } @@ -368,7 +372,7 @@ class Account extends Eloquent */ public function isEnglish() { - return !$this->language_id || $this->language_id == DEFAULT_LANGUAGE; + return ! $this->language_id || $this->language_id == DEFAULT_LANGUAGE; } /** @@ -376,7 +380,7 @@ class Account extends Eloquent */ public function hasInvoicePrefix() { - if ( ! $this->invoice_number_prefix && ! $this->quote_number_prefix) { + if (! $this->invoice_number_prefix && ! $this->quote_number_prefix) { return false; } @@ -404,6 +408,7 @@ class Account extends Eloquent public function getCityState() { $swap = $this->country && $this->country->swap_postal_code; + return Utils::cityStateZip($this->city, $this->state, $this->postal_code, $swap); } @@ -447,9 +452,9 @@ class Account extends Eloquent public function getDate($date = 'now') { - if ( ! $date) { + if (! $date) { return null; - } elseif ( ! $date instanceof \DateTime) { + } elseif (! $date instanceof \DateTime) { $date = new \DateTime($date); } @@ -458,6 +463,7 @@ class Account extends Eloquent /** * @param string $date + * * @return DateTime|null|string */ public function getDateTime($date = 'now') @@ -476,7 +482,6 @@ class Account extends Eloquent return $this->date_format ? $this->date_format->format : DEFAULT_DATE_FORMAT; } - public function getSampleLink() { $invitation = new Invitation(); @@ -486,11 +491,12 @@ class Account extends Eloquent return $invitation->getLink(); } - /** * @param $amount - * @param null $client - * @param bool $hideSymbol + * @param null $client + * @param bool $hideSymbol + * @param mixed $decorator + * * @return string */ public function formatMoney($amount, $client = null, $decorator = false) @@ -511,7 +517,7 @@ class Account extends Eloquent $countryId = false; } - if ( ! $decorator) { + if (! $decorator) { $decorator = $this->show_currency_code ? CURRENCY_DECORATOR_CODE : CURRENCY_DECORATOR_SYMBOL; } @@ -528,13 +534,14 @@ class Account extends Eloquent /** * @param $date + * * @return null|string */ public function formatDate($date) { $date = $this->getDate($date); - if ( ! $date) { + if (! $date) { return null; } @@ -543,13 +550,14 @@ class Account extends Eloquent /** * @param $date + * * @return null|string */ public function formatDateTime($date) { $date = $this->getDateTime($date); - if ( ! $date) { + if (! $date) { return null; } @@ -558,13 +566,14 @@ class Account extends Eloquent /** * @param $date + * * @return null|string */ public function formatTime($date) { $date = $this->getDateTime($date); - if ( ! $date) { + if (! $date) { return null; } @@ -605,17 +614,18 @@ class Account extends Eloquent /** * @param bool $type + * * @return AccountGateway|bool */ public function getGatewayByType($type = false) { - if ( ! $this->relationLoaded('account_gateways')) { + if (! $this->relationLoaded('account_gateways')) { $this->load('account_gateways'); } /** @var AccountGateway $accountGateway */ foreach ($this->account_gateways as $accountGateway) { - if ( ! $type) { + if (! $type) { return $accountGateway; } @@ -634,7 +644,7 @@ class Account extends Eloquent */ public function availableGatewaysIds() { - if ( ! $this->relationLoaded('account_gateways')) { + if (! $this->relationLoaded('account_gateways')) { $this->load('account_gateways'); } @@ -666,8 +676,9 @@ class Account extends Eloquent } /** - * @param bool $invitation + * @param bool $invitation * @param mixed $gatewayTypeId + * * @return bool */ public function paymentDriver($invitation = false, $gatewayTypeId = false) @@ -690,6 +701,7 @@ class Account extends Eloquent /** * @param $gatewayId + * * @return bool */ public function hasGatewayId($gatewayId) @@ -699,6 +711,7 @@ class Account extends Eloquent /** * @param $gatewayId + * * @return bool */ public function getGatewayConfig($gatewayId) @@ -717,26 +730,28 @@ class Account extends Eloquent */ public function hasLogo() { - return !empty($this->logo); + return ! empty($this->logo); } /** * @return mixed */ - public function getLogoDisk(){ + public function getLogoDisk() + { return Storage::disk(env('LOGO_FILESYSTEM', 'logos')); } - protected function calculateLogoDetails(){ + protected function calculateLogoDetails() + { $disk = $this->getLogoDisk(); - if($disk->exists($this->account_key.'.png')){ + if ($disk->exists($this->account_key.'.png')) { $this->logo = $this->account_key.'.png'; - } else if($disk->exists($this->account_key.'.jpg')) { + } elseif ($disk->exists($this->account_key.'.jpg')) { $this->logo = $this->account_key.'.jpg'; } - if(!empty($this->logo)){ + if (! empty($this->logo)) { $image = imagecreatefromstring($disk->get($this->logo)); $this->logo_width = imagesx($image); $this->logo_height = imagesy($image); @@ -750,29 +765,32 @@ class Account extends Eloquent /** * @return null */ - public function getLogoRaw(){ - if(!$this->hasLogo()){ + public function getLogoRaw() + { + if (! $this->hasLogo()) { return null; } $disk = $this->getLogoDisk(); + return $disk->get($this->logo); } /** * @param bool $cachebuster + * * @return null|string */ public function getLogoURL($cachebuster = false) { - if(!$this->hasLogo()){ + if (! $this->hasLogo()) { return null; } $disk = $this->getLogoDisk(); $adapter = $disk->getAdapter(); - if($adapter instanceof \League\Flysystem\Adapter\Local) { + if ($adapter instanceof \League\Flysystem\Adapter\Local) { // Stored locally $logoUrl = url('/logo/' . $this->logo); @@ -788,7 +806,7 @@ class Account extends Eloquent public function getLogoPath() { - if ( ! $this->hasLogo()){ + if (! $this->hasLogo()) { return null; } @@ -815,6 +833,7 @@ class Account extends Eloquent /** * @param $userId * @param $name + * * @return null */ public function getToken($userId, $name) @@ -833,7 +852,7 @@ class Account extends Eloquent */ public function getLogoWidth() { - if(!$this->hasLogo()){ + if (! $this->hasLogo()) { return null; } @@ -845,7 +864,7 @@ class Account extends Eloquent */ public function getLogoHeight() { - if(!$this->hasLogo()){ + if (! $this->hasLogo()) { return null; } @@ -855,6 +874,7 @@ class Account extends Eloquent /** * @param $entityType * @param null $clientId + * * @return mixed */ public function createInvoice($entityType = ENTITY_INVOICE, $clientId = null) @@ -876,14 +896,14 @@ class Account extends Eloquent $invoice->invoice_type_id = INVOICE_TYPE_QUOTE; } - if ($this->hasClientNumberPattern($invoice) && !$clientId) { + if ($this->hasClientNumberPattern($invoice) && ! $clientId) { // do nothing, we don't yet know the value - } elseif ( ! $invoice->invoice_number) { + } elseif (! $invoice->invoice_number) { $invoice->invoice_number = $this->getNextNumber($invoice); } } - if (!$clientId) { + if (! $clientId) { $invoice->client = Client::createNew(); $invoice->client->public_id = 0; } @@ -935,7 +955,7 @@ class Account extends Eloquent */ public function startTrial($plan) { - if ( ! Utils::isNinja()) { + if (! Utils::isNinja()) { return; } @@ -950,6 +970,7 @@ class Account extends Eloquent /** * @param $feature + * * @return bool */ public function hasFeature($feature) @@ -959,9 +980,9 @@ class Account extends Eloquent } $planDetails = $this->getPlanDetails(); - $selfHost = !Utils::isNinjaProd(); + $selfHost = ! Utils::isNinjaProd(); - if (!$selfHost && function_exists('ninja_account_features')) { + if (! $selfHost && function_exists('ninja_account_features')) { $result = ninja_account_features($this, $feature); if ($result != null) { @@ -990,34 +1011,34 @@ class Account extends Eloquent case FEATURE_API: case FEATURE_CLIENT_PORTAL_PASSWORD: case FEATURE_CUSTOM_URL: - return $selfHost || !empty($planDetails); + return $selfHost || ! empty($planDetails); // Pro; No trial allowed, unless they're trialing enterprise with an active pro plan case FEATURE_MORE_CLIENTS: - return $selfHost || !empty($planDetails) && (!$planDetails['trial'] || !empty($this->getPlanDetails(false, false))); + return $selfHost || ! empty($planDetails) && (! $planDetails['trial'] || ! empty($this->getPlanDetails(false, false))); // White Label case FEATURE_WHITE_LABEL: - if ($this->isNinjaAccount() || (!$selfHost && $planDetails && !$planDetails['expires'])) { + if ($this->isNinjaAccount() || (! $selfHost && $planDetails && ! $planDetails['expires'])) { return false; } // Fallthrough case FEATURE_REMOVE_CREATED_BY: - return !empty($planDetails);// A plan is required even for self-hosted users + return ! empty($planDetails); // A plan is required even for self-hosted users // Enterprise; No Trial allowed; grandfathered for old pro users case FEATURE_USERS:// Grandfathered for old Pro users - if($planDetails && $planDetails['trial']) { + if ($planDetails && $planDetails['trial']) { // Do they have a non-trial plan? $planDetails = $this->getPlanDetails(false, false); } - return $selfHost || !empty($planDetails) && ($planDetails['plan'] == PLAN_ENTERPRISE || $planDetails['started'] <= date_create(PRO_USERS_GRANDFATHER_DEADLINE)); + return $selfHost || ! empty($planDetails) && ($planDetails['plan'] == PLAN_ENTERPRISE || $planDetails['started'] <= date_create(PRO_USERS_GRANDFATHER_DEADLINE)); // Enterprise; No Trial allowed case FEATURE_DOCUMENTS: case FEATURE_USER_PERMISSIONS: - return $selfHost || !empty($planDetails) && $planDetails['plan'] == PLAN_ENTERPRISE && !$planDetails['trial']; + return $selfHost || ! empty($planDetails) && $planDetails['plan'] == PLAN_ENTERPRISE && ! $planDetails['trial']; default: return false; @@ -1026,11 +1047,12 @@ class Account extends Eloquent /** * @param null $plan_details + * * @return bool */ public function isPro(&$plan_details = null) { - if (!Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { return true; } @@ -1040,16 +1062,17 @@ class Account extends Eloquent $plan_details = $this->getPlanDetails(); - return !empty($plan_details); + return ! empty($plan_details); } /** * @param null $plan_details + * * @return bool */ public function isEnterprise(&$plan_details = null) { - if (!Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { return true; } @@ -1065,11 +1088,12 @@ class Account extends Eloquent /** * @param bool $include_inactive * @param bool $include_trial + * * @return array|null */ public function getPlanDetails($include_inactive = false, $include_trial = true) { - if (!$this->company) { + if (! $this->company) { return null; } @@ -1077,7 +1101,7 @@ class Account extends Eloquent $price = $this->company->plan_price; $trial_plan = $this->company->trial_plan; - if((!$plan || $plan == PLAN_FREE) && (!$trial_plan || !$include_trial)) { + if ((! $plan || $plan == PLAN_FREE) && (! $trial_plan || ! $include_trial)) { return null; } @@ -1088,7 +1112,7 @@ class Account extends Eloquent $trial_expires->modify('+2 weeks'); if ($trial_expires >= date_create()) { - $trial_active = true; + $trial_active = true; } } @@ -1105,22 +1129,22 @@ class Account extends Eloquent } } - if (!$include_inactive && !$plan_active && !$trial_active) { + if (! $include_inactive && ! $plan_active && ! $trial_active) { return null; } // Should we show plan details or trial details? - if (($plan && !$trial_plan) || !$include_trial) { + if (($plan && ! $trial_plan) || ! $include_trial) { $use_plan = true; - } elseif (!$plan && $trial_plan) { + } elseif (! $plan && $trial_plan) { $use_plan = false; } else { // There is both a plan and a trial - if (!empty($plan_active) && empty($trial_active)) { + if (! empty($plan_active) && empty($trial_active)) { $use_plan = true; - } elseif (empty($plan_active) && !empty($trial_active)) { + } elseif (empty($plan_active) && ! empty($trial_active)) { $use_plan = false; - } elseif (!empty($plan_active) && !empty($trial_active)) { + } elseif (! empty($plan_active) && ! empty($trial_active)) { // Both are active; use whichever is a better plan if ($plan == PLAN_ENTERPRISE) { $use_plan = true; @@ -1168,7 +1192,7 @@ class Account extends Eloquent */ public function isTrial() { - if (!Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { return false; } @@ -1184,7 +1208,7 @@ class Account extends Eloquent { $planDetails = $this->getPlanDetails(true); - if(!$planDetails || !$planDetails['trial']) { + if (! $planDetails || ! $planDetails['trial']) { return 0; } @@ -1216,7 +1240,7 @@ class Account extends Eloquent */ public function getLogoSize() { - if(!$this->hasLogo()){ + if (! $this->hasLogo()) { return null; } @@ -1233,6 +1257,7 @@ class Account extends Eloquent /** * @param $eventId + * * @return \Illuminate\Database\Eloquent\Model|null|static */ public function getSubscription($eventId) @@ -1289,150 +1314,14 @@ class Account extends Eloquent return $this; } - /** - * @param $entityType - * @return mixed - */ - public function getDefaultEmailSubject($entityType) - { - if (strpos($entityType, 'reminder') !== false) { - $entityType = 'reminder'; - } - - return trans("texts.{$entityType}_subject", ['invoice' => '$invoice', 'account' => '$account']); - } - - /** - * @param $entityType - * @return mixed - */ - public function getEmailSubject($entityType) - { - if ($this->hasFeature(FEATURE_CUSTOM_EMAILS)) { - $field = "email_subject_{$entityType}"; - $value = $this->$field; - - if ($value) { - return $value; - } - } - - return $this->getDefaultEmailSubject($entityType); - } - - /** - * @param $entityType - * @param bool $message - * @return string - */ - public function getDefaultEmailTemplate($entityType, $message = false) - { - if (strpos($entityType, 'reminder') !== false) { - $entityType = ENTITY_INVOICE; - } - - $template = '
$client,

'; - - if ($this->hasFeature(FEATURE_CUSTOM_EMAILS) && $this->email_design_id != EMAIL_DESIGN_PLAIN) { - $template .= '
' . trans("texts.{$entityType}_message_button", ['amount' => '$amount']) . '

' . - '
$viewButton

'; - } else { - $template .= '
' . trans("texts.{$entityType}_message", ['amount' => '$amount']) . '

' . - '
$viewLink

'; - } - - if ($message) { - $template .= "$message

\r\n\r\n"; - } - - return $template . '$footer'; - } - - /** - * @param $entityType - * @param bool $message - * @return mixed - */ - public function getEmailTemplate($entityType, $message = false) - { - $template = false; - - if ($this->hasFeature(FEATURE_CUSTOM_EMAILS)) { - $field = "email_template_{$entityType}"; - $template = $this->$field; - } - - if (!$template) { - $template = $this->getDefaultEmailTemplate($entityType, $message); - } - - //
is causing page breaks with the email designs - return str_replace('/>', ' />', $template); - } - - /** - * @param string $view - * @return string - */ - public function getTemplateView($view = '') - { - return $this->getEmailDesignId() == EMAIL_DESIGN_PLAIN ? $view : 'design' . $this->getEmailDesignId(); - } - - /** - * @return mixed|string - */ - public function getEmailFooter() - { - if ($this->email_footer) { - // Add line breaks if HTML isn't already being used - return strip_tags($this->email_footer) == $this->email_footer ? nl2br($this->email_footer) : $this->email_footer; - } else { - return '

' . trans('texts.email_signature') . "\n
\$account

"; - } - } - - /** - * @param $reminder - * @return bool - */ - public function getReminderDate($reminder) - { - if ( ! $this->{"enable_reminder{$reminder}"}) { - return false; - } - - $numDays = $this->{"num_days_reminder{$reminder}"}; - $plusMinus = $this->{"direction_reminder{$reminder}"} == REMINDER_DIRECTION_AFTER ? '-' : '+'; - - return date('Y-m-d', strtotime("$plusMinus $numDays days")); - } - - /** - * @param Invoice $invoice - * @return bool|string - */ - public function getInvoiceReminder(Invoice $invoice) - { - for ($i=1; $i<=3; $i++) { - if ($date = $this->getReminderDate($i)) { - $field = $this->{"field_reminder{$i}"} == REMINDER_FIELD_DUE_DATE ? 'due_date' : 'invoice_date'; - if ($invoice->$field == $date) { - return "reminder{$i}"; - } - } - } - - return false; - } - /** * @param null $storage_gateway + * * @return bool */ public function showTokenCheckbox(&$storage_gateway = null) { - if (!($storage_gateway = $this->getTokenGatewayId())) { + if (! ($storage_gateway = $this->getTokenGatewayId())) { return false; } @@ -1443,7 +1332,8 @@ class Account extends Eloquent /** * @return bool */ - public function getTokenGatewayId() { + public function getTokenGatewayId() + { if ($this->isGatewayConfigured(GATEWAY_STRIPE)) { return GATEWAY_STRIPE; } elseif ($this->isGatewayConfigured(GATEWAY_BRAINTREE)) { @@ -1458,9 +1348,10 @@ class Account extends Eloquent /** * @return bool|void */ - public function getTokenGateway() { + public function getTokenGateway() + { $gatewayId = $this->getTokenGatewayId(); - if (!$gatewayId) { + if (! $gatewayId) { return; } @@ -1485,7 +1376,7 @@ class Account extends Eloquent if ($iframe_url) { return "{$iframe_url}/?"; - } else if ($this->subdomain) { + } elseif ($this->subdomain) { $url = Utils::replaceSubdomain($url, $this->subdomain); } @@ -1494,18 +1385,19 @@ class Account extends Eloquent /** * @param $host + * * @return bool */ public function checkSubdomain($host) { - if (!$this->subdomain) { + if (! $this->subdomain) { return true; } $server = explode('.', $host); $subdomain = $server[0]; - if (!in_array($subdomain, ['app', 'www']) && $subdomain != $this->subdomain) { + if (! in_array($subdomain, ['app', 'www']) && $subdomain != $this->subdomain) { return false; } @@ -1515,6 +1407,7 @@ class Account extends Eloquent /** * @param $field * @param bool $entity + * * @return bool */ public function showCustomField($field, $entity = false) @@ -1523,7 +1416,7 @@ class Account extends Eloquent return true; } - if (!$entity) { + if (! $entity) { return false; } @@ -1552,7 +1445,8 @@ class Account extends Eloquent /** * @return string */ - public function clientViewCSS(){ + public function clientViewCSS() + { $css = ''; if ($this->hasFeature(FEATURE_CUSTOMIZE_INVOICE_DESIGN)) { @@ -1572,60 +1466,68 @@ class Account extends Eloquent /** * @param string $protocol + * * @return string */ - public function getFontsUrl($protocol = ''){ + public function getFontsUrl($protocol = '') + { $bodyFont = $this->getHeaderFontId(); $headerFont = $this->getBodyFontId(); $bodyFontSettings = Utils::getFromCache($bodyFont, 'fonts'); $google_fonts = [$bodyFontSettings['google_font']]; - if($headerFont != $bodyFont){ + if ($headerFont != $bodyFont) { $headerFontSettings = Utils::getFromCache($headerFont, 'fonts'); $google_fonts[] = $headerFontSettings['google_font']; } - return ($protocol?$protocol.':':'').'//fonts.googleapis.com/css?family='.implode('|',$google_fonts); + return ($protocol ? $protocol.':' : '').'//fonts.googleapis.com/css?family='.implode('|', $google_fonts); } /** * @return mixed */ - public function getHeaderFontId() { + public function getHeaderFontId() + { return ($this->hasFeature(FEATURE_CUSTOMIZE_INVOICE_DESIGN) && $this->header_font_id) ? $this->header_font_id : DEFAULT_HEADER_FONT; } /** * @return mixed */ - public function getBodyFontId() { + public function getBodyFontId() + { return ($this->hasFeature(FEATURE_CUSTOMIZE_INVOICE_DESIGN) && $this->body_font_id) ? $this->body_font_id : DEFAULT_BODY_FONT; } /** * @return null */ - public function getHeaderFontName(){ + public function getHeaderFontName() + { return Utils::getFromCache($this->getHeaderFontId(), 'fonts')['name']; } /** * @return null */ - public function getBodyFontName(){ + public function getBodyFontName() + { return Utils::getFromCache($this->getBodyFontId(), 'fonts')['name']; } /** * @param bool $include_weight + * * @return string */ - public function getHeaderFontCss($include_weight = true){ + public function getHeaderFontCss($include_weight = true) + { $font_data = Utils::getFromCache($this->getHeaderFontId(), 'fonts'); $css = 'font-family:'.$font_data['css_stack'].';'; - if($include_weight){ + if ($include_weight) { $css .= 'font-weight:'.$font_data['css_weight'].';'; } @@ -1634,13 +1536,15 @@ class Account extends Eloquent /** * @param bool $include_weight + * * @return string */ - public function getBodyFontCss($include_weight = true){ + public function getBodyFontCss($include_weight = true) + { $font_data = Utils::getFromCache($this->getBodyFontId(), 'fonts'); $css = 'font-family:'.$font_data['css_stack'].';'; - if($include_weight){ + if ($include_weight) { $css .= 'font-weight:'.$font_data['css_weight'].';'; } @@ -1650,17 +1554,19 @@ class Account extends Eloquent /** * @return array */ - public function getFonts(){ + public function getFonts() + { return array_unique([$this->getHeaderFontId(), $this->getBodyFontId()]); } /** * @return array */ - public function getFontsData(){ + public function getFontsData() + { $data = []; - foreach($this->getFonts() as $font){ + foreach ($this->getFonts() as $font) { $data[] = Utils::getFromCache($font, 'fonts'); } @@ -1670,13 +1576,16 @@ class Account extends Eloquent /** * @return array */ - public function getFontFolders(){ - return array_map(function($item){return $item['folder'];}, $this->getFontsData()); + public function getFontFolders() + { + return array_map(function ($item) { + return $item['folder']; + }, $this->getFontsData()); } public function isModuleEnabled($entityType) { - if ( ! in_array($entityType, [ + if (! in_array($entityType, [ ENTITY_RECURRING_INVOICE, ENTITY_CREDIT, ENTITY_QUOTE, @@ -1697,7 +1606,7 @@ class Account extends Eloquent public function showAcceptTerms($invoice) { - if ( ! $this->isPro() || ! $invoice->terms) { + if (! $this->isPro() || ! $invoice->terms) { return false; } @@ -1706,7 +1615,7 @@ class Account extends Eloquent public function showSignature($invoice) { - if ( ! $this->isPro()) { + if (! $this->isPro()) { return false; } @@ -1715,22 +1624,46 @@ class Account extends Eloquent public function emailMarkupEnabled() { - if ( ! Utils::isNinja()) { + if (! Utils::isNinja()) { return false; } return $this->enable_email_markup; } - public function defaultDueDate() + public function defaultDaysDue($client = false) { - $numDays = $this->payment_terms == -1 ? 0 : $this->payment_terms; + if ($client && $client->payment_terms != 0) { + return $client->defaultDaysDue(); + } - return Carbon::now($this->getTimezone())->addDays($numDays)->format('Y-m-d'); + return $this->payment_terms == -1 ? 0 : $this->payment_terms; + } + + public function defaultDueDate($client = false) + { + if ($client && $client->payment_terms != 0) { + $numDays = $client->defaultDaysDue(); + } elseif ($this->payment_terms != 0) { + $numDays = $this->defaultDaysDue(); + } else { + return null; + } + + return Carbon::now()->addDays($numDays)->format('Y-m-d'); + } + + public function hasMultipleAccounts() + { + return $this->company->accounts->count() > 1; } public function financialYearStart() { + if (! $this->financial_year_start) { + return false; + } + $yearStart = Carbon::parse($this->financial_year_start); $yearStart->year = date('Y'); @@ -1742,8 +1675,7 @@ class Account extends Eloquent } } -Account::updated(function ($account) -{ +Account::updated(function ($account) { // prevent firing event if the invoice/quote counter was changed // TODO: remove once counters are moved to separate table $dirty = $account->getDirty(); diff --git a/app/Models/AccountGateway.php b/app/Models/AccountGateway.php index 241d1013f884..514fea0cfb3f 100644 --- a/app/Models/AccountGateway.php +++ b/app/Models/AccountGateway.php @@ -1,11 +1,13 @@ -isGateway(GATEWAY_STRIPE)) { + if (! $this->isGateway(GATEWAY_STRIPE)) { return false; } @@ -134,7 +140,7 @@ class AccountGateway extends EntityModel */ public function getAchEnabled() { - return !empty($this->getConfigField('enableAch')); + return ! empty($this->getConfigField('enableAch')); } /** @@ -142,7 +148,7 @@ class AccountGateway extends EntityModel */ public function getPayPalEnabled() { - return !empty($this->getConfigField('enablePayPal')); + return ! empty($this->getConfigField('enablePayPal')); } /** @@ -150,7 +156,7 @@ class AccountGateway extends EntityModel */ public function getPlaidSecret() { - if ( ! $this->isGateway(GATEWAY_STRIPE)) { + if (! $this->isGateway(GATEWAY_STRIPE)) { return false; } @@ -162,7 +168,7 @@ class AccountGateway extends EntityModel */ public function getPlaidClientId() { - if ( ! $this->isGateway(GATEWAY_STRIPE)) { + if (! $this->isGateway(GATEWAY_STRIPE)) { return false; } @@ -174,7 +180,7 @@ class AccountGateway extends EntityModel */ public function getPlaidPublicKey() { - if ( ! $this->isGateway(GATEWAY_STRIPE)) { + if (! $this->isGateway(GATEWAY_STRIPE)) { return false; } @@ -186,7 +192,7 @@ class AccountGateway extends EntityModel */ public function getPlaidEnabled() { - return !empty($this->getPlaidClientId()) && $this->getAchEnabled(); + return ! empty($this->getPlaidClientId()) && $this->getAchEnabled(); } /** @@ -194,7 +200,7 @@ class AccountGateway extends EntityModel */ public function getPlaidEnvironment() { - if (!$this->getPlaidClientId()) { + if (! $this->getPlaidClientId()) { return null; } @@ -210,6 +216,6 @@ class AccountGateway extends EntityModel { $account = $this->account ? $this->account : Account::find($this->account_id); - return \URL::to(env('WEBHOOK_PREFIX','').'payment_hook/'.$account->account_key.'/'.$this->gateway_id.env('WEBHOOK_SUFFIX','')); + return \URL::to(env('WEBHOOK_PREFIX', '').'payment_hook/'.$account->account_key.'/'.$this->gateway_id.env('WEBHOOK_SUFFIX', '')); } } diff --git a/app/Models/AccountGatewaySettings.php b/app/Models/AccountGatewaySettings.php index 6b95c585c0a4..b0eb0e2920f1 100644 --- a/app/Models/AccountGatewaySettings.php +++ b/app/Models/AccountGatewaySettings.php @@ -1,9 +1,9 @@ -gateway_id == GATEWAY_BRAINTREE) { $merchantId = $accountGateway->getConfigField('merchantId'); $testMode = $accountGateway->getConfigField('testMode'); + return $testMode ? "https://sandbox.braintreegateway.com/merchants/{$merchantId}/customers/{$this->token}" : "https://www.braintreegateway.com/merchants/{$merchantId}/customers/{$this->token}"; } else { return false; } } - } diff --git a/app/Models/AccountToken.php b/app/Models/AccountToken.php index 5ef52e170117..dace5f00b91b 100644 --- a/app/Models/AccountToken.php +++ b/app/Models/AccountToken.php @@ -1,9 +1,11 @@ -hasMany('App\Models\BankSubaccount'); } } - diff --git a/app/Models/BankSubaccount.php b/app/Models/BankSubaccount.php index 4cda62da0403..00b37a7faec6 100644 --- a/app/Models/BankSubaccount.php +++ b/app/Models/BankSubaccount.php @@ -1,8 +1,11 @@ -belongsTo('App\Models\BankAccount'); } - } - diff --git a/app/Models/Client.php b/app/Models/Client.php index d88f5986c0b8..f8a8dd52eaa9 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -1,13 +1,15 @@ - 'notes', 'site|website' => 'website', 'vat' => 'vat_number', + 'id|number' => 'id_number', ]; } @@ -258,12 +266,13 @@ class Client extends EntityModel */ public function expenses() { - return $this->hasMany('App\Models\Expense','client_id','id')->withTrashed(); + return $this->hasMany('App\Models\Expense', 'client_id', 'id')->withTrashed(); } /** * @param $data * @param bool $isPrimary + * * @return \Illuminate\Database\Eloquent\Model */ public function addContact($data, $isPrimary = false) @@ -283,10 +292,10 @@ class Client extends EntityModel } } - if (Utils::hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $this->account->enable_portal_password){ - if(!empty($data['password']) && $data['password']!='-%unchanged%-'){ + if (Utils::hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $this->account->enable_portal_password) { + if (! empty($data['password']) && $data['password'] != '-%unchanged%-') { $contact->password = bcrypt($data['password']); - } else if(empty($data['password'])){ + } elseif (empty($data['password'])) { $contact->password = null; } } @@ -359,7 +368,7 @@ class Client extends EntityModel return $this->name; } - if ( ! count($this->contacts)) { + if (! count($this->contacts)) { return ''; } @@ -374,6 +383,7 @@ class Client extends EntityModel public function getCityState() { $swap = $this->country && $this->country->swap_postal_code; + return Utils::cityStateZip($this->city, $this->state, $this->postal_code, $swap); } @@ -435,7 +445,7 @@ class Client extends EntityModel { $accountGateway = $this->account->getGatewayByType(GATEWAY_TYPE_TOKEN); - if ( ! $accountGateway) { + if (! $accountGateway) { return false; } @@ -487,7 +497,7 @@ class Client extends EntityModel return $this->currency_id; } - if (!$this->account) { + if (! $this->account) { $this->load('account'); } @@ -503,7 +513,7 @@ class Client extends EntityModel return $this->currency->code; } - if (!$this->account) { + if (! $this->account) { $this->load('account'); } @@ -512,6 +522,7 @@ class Client extends EntityModel /** * @param $isQuote + * * @return mixed */ public function getCounter($isQuote) @@ -528,9 +539,15 @@ class Client extends EntityModel /** * @return bool */ - public function hasAutoBillConfigurableInvoices(){ + public function hasAutoBillConfigurableInvoices() + { return $this->invoices()->whereIn('auto_bill', [AUTO_BILL_OPT_IN, AUTO_BILL_OPT_OUT])->count() > 0; } + + public function defaultDaysDue() + { + return $this->payment_terms == -1 ? 0 : $this->payment_terms; + } } Client::creating(function ($client) { diff --git a/app/Models/Company.php b/app/Models/Company.php index b0213f9d0149..95c6b614ceef 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -1,13 +1,15 @@ -discount || ! $this->discount_expires) { + if (! $this->discount || ! $this->discount_expires) { return false; } @@ -71,7 +73,7 @@ class Company extends Eloquent public function discountedPrice($price) { - if ( ! $this->hasActivePromo() && ! $this->hasActiveDiscount()) { + if (! $this->hasActivePromo() && ! $this->hasActiveDiscount()) { return $price; } @@ -80,7 +82,7 @@ class Company extends Eloquent public function daysUntilPlanExpires() { - if ( ! $this->hasActivePlan()) { + if (! $this->hasActivePlan()) { return 0; } @@ -103,7 +105,12 @@ class Company extends Eloquent public function hasEarnedPromo() { - if ( ! Utils::isNinjaProd() || Utils::isPro()) { + if (! Utils::isNinjaProd() || Utils::isPro()) { + return false; + } + + // if they've already been pro return false + if ($this->plan_expires && $this->plan_expires != '0000-00-00') { return false; } @@ -131,6 +138,7 @@ class Company extends Eloquent $this->discount = $discount; $this->promo_expires = date_create()->modify($validFor . ' days')->format('Y-m-d'); $this->save(); + return true; } } diff --git a/app/Models/Contact.php b/app/Models/Contact.php index 94f6c388a1ad..c19ba4bda6cb 100644 --- a/app/Models/Contact.php +++ b/app/Models/Contact.php @@ -1,14 +1,16 @@ -contact_key = $contact_key = str_random(RANDOM_KEY_LENGTH); static::where('id', $this->id)->update(['contact_key' => $contact_key]); } + return $contact_key; } @@ -139,6 +143,23 @@ class Contact extends EntityModel implements AuthenticatableContract, CanResetPa */ public function getLinkAttribute() { - return \URL::to('client/dashboard/' . $this->contact_key); + if (! $this->account) { + $this->load('account'); + } + + $account = $this->account; + $url = trim(SITE_URL, '/'); + + if ($account->hasFeature(FEATURE_CUSTOM_URL)) { + if (Utils::isNinjaProd()) { + $url = $account->present()->clientPortalLink(); + } + + if ($this->account->subdomain) { + $url = Utils::replaceSubdomain($url, $account->subdomain); + } + } + + return "{$url}/client/dashboard/{$this->contact_key}"; } } diff --git a/app/Models/Country.php b/app/Models/Country.php index d764a76b30cd..410e1595b6a9 100644 --- a/app/Models/Country.php +++ b/app/Models/Country.php @@ -1,9 +1,11 @@ -name; } diff --git a/app/Models/Credit.php b/app/Models/Credit.php index b7d041b148b9..e1b4243b8e13 100644 --- a/app/Models/Credit.php +++ b/app/Models/Credit.php @@ -1,11 +1,13 @@ -format, $date); - } + } } diff --git a/app/Models/Document.php b/app/Models/Document.php index f2d1e43d337f..f1f83436fbf3 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -1,10 +1,12 @@ -attributes['disk'])){ + if (empty($this->attributes['disk'])) { $this->attributes['disk'] = env('DOCUMENT_FILESYSTEM', 'documents'); } @@ -145,8 +148,9 @@ class Document extends EntityModel /** * @return mixed */ - public function getDisk(){ - return Storage::disk(!empty($this->disk)?$this->disk:env('DOCUMENT_FILESYSTEM', 'documents')); + public function getDisk() + { + return Storage::disk(! empty($this->disk) ? $this->disk : env('DOCUMENT_FILESYSTEM', 'documents')); } /** @@ -154,49 +158,54 @@ class Document extends EntityModel */ public function setDiskAttribute($value) { - $this->attributes['disk'] = $value?$value:env('DOCUMENT_FILESYSTEM', 'documents'); + $this->attributes['disk'] = $value ? $value : env('DOCUMENT_FILESYSTEM', 'documents'); } /** * @return null|string */ - public function getDirectUrl(){ + public function getDirectUrl() + { return static::getDirectFileUrl($this->path, $this->getDisk()); } /** * @return null|string */ - public function getDirectPreviewUrl(){ - return $this->preview?static::getDirectFileUrl($this->preview, $this->getDisk(), true):null; + public function getDirectPreviewUrl() + { + return $this->preview ? static::getDirectFileUrl($this->preview, $this->getDisk(), true) : null; } /** * @param $path * @param $disk * @param bool $prioritizeSpeed - * @return null|string + * * @throws \OpenCloud\Common\Exceptions\NoNameError + * + * @return null|string */ - public static function getDirectFileUrl($path, $disk, $prioritizeSpeed = false){ + public static function getDirectFileUrl($path, $disk, $prioritizeSpeed = false) + { $adapter = $disk->getAdapter(); $fullPath = $adapter->applyPathPrefix($path); - if($adapter instanceof \League\Flysystem\AwsS3v3\AwsS3Adapter) { + if ($adapter instanceof \League\Flysystem\AwsS3v3\AwsS3Adapter) { $client = $adapter->getClient(); $command = $client->getCommand('GetObject', [ 'Bucket' => $adapter->getBucket(), - 'Key' => $fullPath + 'Key' => $fullPath, ]); return (string) $client->createPresignedRequest($command, '+10 minutes')->getUri(); - } else if (!$prioritizeSpeed // Rackspace temp URLs are slow, so we don't use them for previews + } elseif (! $prioritizeSpeed // Rackspace temp URLs are slow, so we don't use them for previews && $adapter instanceof \League\Flysystem\Rackspace\RackspaceAdapter) { $secret = env('RACKSPACE_TEMP_URL_SECRET'); - if($secret){ + if ($secret) { $object = $adapter->getContainer()->getObject($fullPath); - if(env('RACKSPACE_TEMP_URL_SECRET_SET')){ + if (env('RACKSPACE_TEMP_URL_SECRET_SET')) { // Go ahead and set the secret too $object->getService()->getAccount()->setTempUrlSecret($secret); } @@ -206,6 +215,7 @@ class Document extends EntityModel $urlPath = urldecode($url->getPath()); $body = sprintf("%s\n%d\n%s", 'GET', $expiry, $urlPath); $hash = hash_hmac('sha1', $body, $secret); + return sprintf('%s?temp_url_sig=%s&temp_url_expires=%d', $url, $hash, $expiry); } } @@ -216,7 +226,8 @@ class Document extends EntityModel /** * @return mixed */ - public function getRaw(){ + public function getRaw() + { $disk = $this->getDisk(); return $disk->get($this->path); @@ -225,7 +236,8 @@ class Document extends EntityModel /** * @return mixed */ - public function getStream(){ + public function getStream() + { $disk = $this->getDisk(); return $disk->readStream($this->path); @@ -234,7 +246,8 @@ class Document extends EntityModel /** * @return mixed */ - public function getRawPreview(){ + public function getRawPreview() + { $disk = $this->getDisk(); return $disk->get($this->preview); @@ -243,46 +256,59 @@ class Document extends EntityModel /** * @return \Illuminate\Contracts\Routing\UrlGenerator|string */ - public function getUrl(){ + public function getUrl() + { return url('documents/'.$this->public_id.'/'.$this->name); } /** * @param $invitation + * * @return \Illuminate\Contracts\Routing\UrlGenerator|string */ - public function getClientUrl($invitation){ + public function getClientUrl($invitation) + { return url('client/documents/'.$invitation->invitation_key.'/'.$this->public_id.'/'.$this->name); } /** * @return bool */ - public function isPDFEmbeddable(){ + public function isPDFEmbeddable() + { return $this->type == 'jpeg' || $this->type == 'png' || $this->preview; } /** * @return \Illuminate\Contracts\Routing\UrlGenerator|null|string */ - public function getVFSJSUrl(){ - if(!$this->isPDFEmbeddable())return null; + public function getVFSJSUrl() + { + if (! $this->isPDFEmbeddable()) { + return null; + } + return url('documents/js/'.$this->public_id.'/'.$this->name.'.js'); } /** * @return \Illuminate\Contracts\Routing\UrlGenerator|null|string */ - public function getClientVFSJSUrl(){ - if(!$this->isPDFEmbeddable())return null; + public function getClientVFSJSUrl() + { + if (! $this->isPDFEmbeddable()) { + return null; + } + return url('client/documents/js/'.$this->public_id.'/'.$this->name.'.js'); } /** * @return \Illuminate\Contracts\Routing\UrlGenerator|null|string */ - public function getPreviewUrl(){ - return $this->preview?url('documents/preview/'.$this->public_id.'/'.$this->name.'.'.pathinfo($this->preview, PATHINFO_EXTENSION)):null; + public function getPreviewUrl() + { + return $this->preview ? url('documents/preview/'.$this->public_id.'/'.$this->name.'.'.pathinfo($this->preview, PATHINFO_EXTENSION)) : null; } /** @@ -292,8 +318,12 @@ class Document extends EntityModel { $array = parent::toArray(); - if(empty($this->visible) || in_array('url', $this->visible))$array['url'] = $this->getUrl(); - if(empty($this->visible) || in_array('preview_url', $this->visible))$array['preview_url'] = $this->getPreviewUrl(); + if (empty($this->visible) || in_array('url', $this->visible)) { + $array['url'] = $this->getUrl(); + } + if (empty($this->visible) || in_array('preview_url', $this->visible)) { + $array['preview_url'] = $this->getPreviewUrl(); + } return $array; } @@ -301,8 +331,9 @@ class Document extends EntityModel /** * @return mixed */ - public function cloneDocument(){ - $document = Document::createNew($this); + public function cloneDocument() + { + $document = self::createNew($this); $document->path = $this->path; $document->preview = $this->preview; $document->name = $this->name; @@ -324,19 +355,18 @@ Document::deleted(function ($document) { ->where('documents.disk', '=', $document->disk) ->count(); - if(!$same_path_count){ + if (! $same_path_count) { $document->getDisk()->delete($document->path); } - if($document->preview){ + if ($document->preview) { $same_preview_count = DB::table('documents') ->where('documents.account_id', '=', $document->account_id) ->where('documents.preview', '=', $document->preview) ->where('documents.disk', '=', $document->disk) ->count(); - if(!$same_preview_count){ + if (! $same_preview_count) { $document->getDisk()->delete($document->preview); } } - }); diff --git a/app/Models/EntityModel.php b/app/Models/EntityModel.php index 618987b8cada..6bc0c5b290fc 100644 --- a/app/Models/EntityModel.php +++ b/app/Models/EntityModel.php @@ -1,13 +1,14 @@ -setRelation('user', $user); $entity->setRelation('account', $account); - if (method_exists($className, 'trashed')){ + if (method_exists($className, 'trashed')) { $lastEntity = $className::whereAccountId($entity->account_id)->withTrashed(); } else { $lastEntity = $className::whereAccountId($entity->account_id); @@ -88,6 +90,7 @@ class EntityModel extends Eloquent /** * @param $publicId + * * @return mixed */ public static function getPrivateId($publicId) @@ -136,11 +139,12 @@ class EntityModel extends Eloquent * @param $query * @param bool $publicId * @param bool $accountId + * * @return mixed */ public function scopeScope($query, $publicId = false, $accountId = false) { - if (!$accountId) { + if (! $accountId) { $accountId = Auth::user()->account_id; } @@ -163,6 +167,7 @@ class EntityModel extends Eloquent /** * @param $query + * * @return mixed */ public function scopeWithArchived($query) @@ -188,11 +193,12 @@ class EntityModel extends Eloquent /** * @param $entityType + * * @return string */ public static function getClassName($entityType) { - if ( ! Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { if ($module = \Module::find($entityType)) { return "Modules\\{$module->getName()}\\Models\\{$module->getName()}"; } @@ -207,11 +213,12 @@ class EntityModel extends Eloquent /** * @param $entityType + * * @return string */ public static function getTransformerName($entityType) { - if ( ! Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { if ($module = \Module::find($entityType)) { return "Modules\\{$module->getName()}\\Transformers\\{$module->getName()}Transformer"; } @@ -223,13 +230,14 @@ class EntityModel extends Eloquent public function setNullValues() { foreach ($this->fillable as $field) { - if (strstr($field, '_id') && !$this->$field) { + if (strstr($field, '_id') && ! $this->$field) { $this->$field = null; } } } // converts "App\Models\Client" to "client_id" + /** * @return string */ @@ -237,13 +245,16 @@ class EntityModel extends Eloquent { $class = get_class($this); $parts = explode('\\', $class); - $name = $parts[count($parts)-1]; + $name = $parts[count($parts) - 1]; + return strtolower($name) . '_id'; } /** * @param $data * @param $entityType + * @param mixed $entity + * * @return bool|string */ public static function validate($data, $entityType, $entity = false) @@ -251,16 +262,18 @@ class EntityModel extends Eloquent // Use the API request if it exists $action = $entity ? 'update' : 'create'; $requestClass = sprintf('App\\Http\\Requests\\%s%sAPIRequest', ucwords($action), ucwords($entityType)); - if ( ! class_exists($requestClass)) { + if (! class_exists($requestClass)) { $requestClass = sprintf('App\\Http\\Requests\\%s%sRequest', ucwords($action), ucwords($entityType)); } $request = new $requestClass(); - $request->setUserResolver(function() { return Auth::user(); }); + $request->setUserResolver(function () { + return Auth::user(); + }); $request->setEntity($entity); $request->replace($data); - if ( ! $request->authorize()) { + if (! $request->authorize()) { return trans('texts.not_allowed'); } @@ -346,5 +359,4 @@ class EntityModel extends Eloquent { return ''; } - } diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 3a747c0d5c29..2ebd51d18975 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -1,14 +1,15 @@ - 'expense_date', ]; } + /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ @@ -135,7 +137,7 @@ class Expense extends EntityModel if ($this->transaction_id) { return $this->transaction_id; } elseif ($this->public_notes) { - return mb_strimwidth($this->public_notes, 0, 16, "..."); + return mb_strimwidth($this->public_notes, 0, 16, '...'); } else { return '#' . $this->public_id; } @@ -188,7 +190,9 @@ class Expense extends EntityModel { $array = parent::toArray(); - if(empty($this->visible) || in_array('converted_amount', $this->visible))$array['converted_amount'] = $this->convertedAmount(); + if (empty($this->visible) || in_array('converted_amount', $this->visible)) { + $array['converted_amount'] = $this->convertedAmount(); + } return $array; } @@ -196,6 +200,7 @@ class Expense extends EntityModel /** * @param $query * @param null $bankdId + * * @return mixed */ public function scopeBankId($query, $bankdId = null) @@ -267,7 +272,6 @@ class Expense extends EntityModel return static::calcStatusLabel($this->should_be_invoiced, $this->invoice_id, $balance); } - } Expense::creating(function ($expense) { diff --git a/app/Models/ExpenseCategory.php b/app/Models/ExpenseCategory.php index 77782e5b85ef..ba07e60c77bc 100644 --- a/app/Models/ExpenseCategory.php +++ b/app/Models/ExpenseCategory.php @@ -1,10 +1,12 @@ -name)); + $data[$frequency->id] = trans('texts.freq_' . $name); + } + + return $data; + } } diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index 6f7c42d90cad..c4619d64e02d 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -1,11 +1,13 @@ -name; } diff --git a/app/Models/Invitation.php b/app/Models/Invitation.php index 5b62b8218183..37c89b89529d 100644 --- a/app/Models/Invitation.php +++ b/app/Models/Invitation.php @@ -1,11 +1,13 @@ -account) { + if (! $this->account) { $this->load('account'); } @@ -77,7 +81,7 @@ class Invitation extends EntityModel $url = $account->present()->clientPortalLink(); } - if ($iframe_url && !$forceOnsite) { + if ($iframe_url && ! $forceOnsite) { return "{$iframe_url}?{$this->invitation_key}"; } elseif ($this->account->subdomain) { $url = Utils::replaceSubdomain($url, $account->subdomain); @@ -147,7 +151,7 @@ class Invitation extends EntityModel public function signatureDiv() { - if ( ! $this->signature_base64) { + if (! $this->signature_base64) { return false; } diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 49438dc81ea3..0e817722a545 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1,19 +1,22 @@ -isType(INVOICE_TYPE_STANDARD) && !$this->is_recurring && $this->is_public; + return $this->isType(INVOICE_TYPE_STANDARD) && ! $this->is_recurring && $this->is_public; } /** @@ -177,7 +181,7 @@ class Invoice extends EntityModel implements BalanceAffecting */ public function getAdjustment() { - if ( ! $this->affectsBalance()) { + if (! $this->affectsBalance()) { return 0; } @@ -233,6 +237,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param bool $calculate + * * @return int|mixed */ public function getAmountPaid($calculate = false) @@ -249,9 +254,10 @@ class Invoice extends EntityModel implements BalanceAffecting } $amount += $payment->getCompletedAmount(); } + return $amount; } else { - return ($this->amount - $this->balance); + return $this->amount - $this->balance; } } @@ -326,7 +332,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ - public function payments() + public function payments() { return $this->hasMany('App\Models\Payment', 'invoice_id', 'id'); } @@ -368,11 +374,12 @@ class Invoice extends EntityModel implements BalanceAffecting */ public function expenses() { - return $this->hasMany('App\Models\Expense','invoice_id','id')->withTrashed(); + return $this->hasMany('App\Models\Expense', 'invoice_id', 'id')->withTrashed(); } /** * @param $query + * * @return mixed */ public function scopeInvoices($query) @@ -383,6 +390,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $query + * * @return mixed */ public function scopeRecurring($query) @@ -393,6 +401,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $query + * * @return mixed */ public function scopeQuotes($query) @@ -404,6 +413,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $query * @param $typeId + * * @return mixed */ public function scopeInvoiceType($query, $typeId) @@ -413,36 +423,40 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $typeId + * * @return bool */ - public function isType($typeId) { + public function isType($typeId) + { return $this->invoice_type_id == $typeId; } /** * @return bool */ - public function isQuote() { + public function isQuote() + { return $this->isType(INVOICE_TYPE_QUOTE); } /** * @return bool */ - public function isInvoice() { + public function isInvoice() + { return $this->isType(INVOICE_TYPE_STANDARD) && ! $this->is_recurring; } public function markSentIfUnsent() { - if ( ! $this->isSent()) { + if (! $this->isSent()) { $this->markSent(); } } public function markSent() { - if ( ! $this->isSent()) { + if (! $this->isSent()) { $this->invoice_status_id = INVOICE_STATUS_SENT; } @@ -453,11 +467,12 @@ class Invoice extends EntityModel implements BalanceAffecting } /** - * @param bool $notify + * @param bool $notify + * @param mixed $reminder */ public function markInvitationsSent($notify = false, $reminder = false) { - if ( ! $this->relationLoaded('invitations')) { + if (! $this->relationLoaded('invitations')) { $this->load('invitations'); } @@ -468,12 +483,12 @@ class Invoice extends EntityModel implements BalanceAffecting public function areInvitationsSent() { - if ( ! $this->relationLoaded('invitations')) { + if (! $this->relationLoaded('invitations')) { $this->load('invitations'); } foreach ($this->invitations as $invitation) { - if ( ! $invitation->isSent()) { + if (! $invitation->isSent()) { return false; } } @@ -483,12 +498,13 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $invitation - * @param bool $messageId - * @param bool $notify + * @param bool $messageId + * @param bool $notify + * @param mixed $notes */ public function markInvitationSent($invitation, $messageId = false, $notify = true, $notes = false) { - if ( ! $this->isSent()) { + if (! $this->isSent()) { $this->invoice_status_id = INVOICE_STATUS_SENT; $this->save(); } @@ -497,7 +513,7 @@ class Invoice extends EntityModel implements BalanceAffecting // if the user marks it as sent rather than acually sending it // then we won't track it in the activity log - if (!$notify) { + if (! $notify) { return; } @@ -510,7 +526,7 @@ class Invoice extends EntityModel implements BalanceAffecting public function markViewed() { - if (!$this->isViewed()) { + if (! $this->isViewed()) { $this->invoice_status_id = INVOICE_STATUS_VIEWED; $this->save(); } @@ -579,6 +595,7 @@ class Invoice extends EntityModel implements BalanceAffecting public function getFileName() { $entityType = $this->getEntityType(); + return trans("texts.$entityType") . '_' . $this->invoice_number . '.pdf'; } @@ -599,7 +616,7 @@ class Invoice extends EntityModel implements BalanceAffecting { if ($quoteInvoiceId) { $label = 'converted'; - } else if ($class == 'danger') { + } elseif ($class == 'danger') { $label = $entityType == ENTITY_INVOICE ? 'overdue' : 'expired'; } else { $label = 'status_' . strtolower($status); @@ -623,16 +640,16 @@ class Invoice extends EntityModel implements BalanceAffecting public static function calcIsOverdue($balance, $dueDate) { - if ( ! Utils::parseFloat($balance) > 0) { + if (! Utils::parseFloat($balance) > 0) { return false; } - if ( ! $dueDate || $dueDate == '0000-00-00') { + if (! $dueDate || $dueDate == '0000-00-00') { return false; } // it isn't considered overdue until the end of the day - return time() > (strtotime($dueDate) + (60*60*24)); + return time() > (strtotime($dueDate) + (60 * 60 * 24)); } public function statusClass() @@ -647,6 +664,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $invoice + * * @return string */ public static function calcLink($invoice) @@ -664,7 +682,7 @@ class Invoice extends EntityModel implements BalanceAffecting public function getInvitationLink($type = 'view', $forceOnsite = false) { - if ( ! $this->relationLoaded('invitations')) { + if (! $this->relationLoaded('invitations')) { $this->load('invitations'); } @@ -899,12 +917,13 @@ class Invoice extends EntityModel implements BalanceAffecting } /** - * @return bool|\Recurr\RecurrenceCollection * @throws \Recurr\Exception\MissingData + * + * @return bool|\Recurr\RecurrenceCollection */ public function getSchedule() { - if (!$this->start_date || !$this->is_recurring || !$this->frequency_id) { + if (! $this->start_date || ! $this->is_recurring || ! $this->frequency_id) { return false; } @@ -937,12 +956,17 @@ class Invoice extends EntityModel implements BalanceAffecting */ public function getNextSendDate() { - if ($this->start_date && !$this->last_sent_date) { + if (! $this->is_public) { + return null; + } + + if ($this->start_date && ! $this->last_sent_date) { $startDate = $this->getOriginal('start_date') . ' ' . $this->account->recurring_hour . ':00:00'; + return $this->account->getDateTime($startDate); } - if (!$schedule = $this->getSchedule()) { + if (! $schedule = $this->getSchedule()) { return null; } @@ -955,87 +979,87 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param null $invoice_date + * * @return mixed|null */ - public function getDueDate($invoice_date = null){ - if(!$this->is_recurring) { + public function getDueDate($invoice_date = null) + { + if (! $this->is_recurring) { return $this->due_date ? $this->due_date : null; - } - else{ + } else { $now = time(); - if($invoice_date) { + if ($invoice_date) { // If $invoice_date is specified, all calculations are based on that date - if(is_numeric($invoice_date)) { + if (is_numeric($invoice_date)) { $now = $invoice_date; - } - else if(is_string($invoice_date)) { + } elseif (is_string($invoice_date)) { $now = strtotime($invoice_date); - } - elseif ($invoice_date instanceof \DateTime) { + } elseif ($invoice_date instanceof \DateTime) { $now = $invoice_date->getTimestamp(); } } - if($this->due_date && $this->due_date != '0000-00-00'){ + if ($this->due_date && $this->due_date != '0000-00-00') { // This is a recurring invoice; we're using a custom format here. // The year is always 1998; January is 1st, 2nd, last day of the month. // February is 1st Sunday after, 1st Monday after, ..., through 4th Saturday after. $dueDateVal = strtotime($this->due_date); - $monthVal = (int)date('n', $dueDateVal); - $dayVal = (int)date('j', $dueDateVal); + $monthVal = (int) date('n', $dueDateVal); + $dayVal = (int) date('j', $dueDateVal); $dueDate = false; - if($monthVal == 1) {// January; day of month - $currentDay = (int)date('j', $now); - $lastDayOfMonth = (int)date('t', $now); + if ($monthVal == 1) {// January; day of month + $currentDay = (int) date('j', $now); + $lastDayOfMonth = (int) date('t', $now); - $dueYear = (int)date('Y', $now);// This year - $dueMonth = (int)date('n', $now);// This month - $dueDay = $dayVal;// The day specified for the invoice + $dueYear = (int) date('Y', $now); // This year + $dueMonth = (int) date('n', $now); // This month + $dueDay = $dayVal; // The day specified for the invoice - if($dueDay > $lastDayOfMonth) { + if ($dueDay > $lastDayOfMonth) { // No later than the end of the month $dueDay = $lastDayOfMonth; } - if($currentDay >= $dueDay) { + if ($currentDay >= $dueDay) { // Wait until next month // We don't need to handle the December->January wraparaound, since PHP handles month 13 as January of next year $dueMonth++; // Reset the due day $dueDay = $dayVal; - $lastDayOfMonth = (int)date('t', mktime(0, 0, 0, $dueMonth, 1, $dueYear));// The number of days in next month + $lastDayOfMonth = (int) date('t', mktime(0, 0, 0, $dueMonth, 1, $dueYear)); // The number of days in next month // Check against the last day again - if($dueDay > $lastDayOfMonth){ + if ($dueDay > $lastDayOfMonth) { // No later than the end of the month $dueDay = $lastDayOfMonth; } } $dueDate = mktime(0, 0, 0, $dueMonth, $dueDay, $dueYear); - } - else if($monthVal == 2) {// February; day of week + } elseif ($monthVal == 2) {// February; day of week $ordinals = ['first', 'second', 'third', 'fourth']; $daysOfWeek = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; - $ordinalIndex = ceil($dayVal / 7) - 1;// 1-7 are "first"; 8-14 are "second", etc. - $dayOfWeekIndex = ($dayVal - 1) % 7;// 1,8,15,22 are Sunday, 2,9,16,23 are Monday, etc. - $dayStr = $ordinals[$ordinalIndex] . ' ' . $daysOfWeek[$dayOfWeekIndex];// "first sunday", "first monday", etc. + $ordinalIndex = ceil($dayVal / 7) - 1; // 1-7 are "first"; 8-14 are "second", etc. + $dayOfWeekIndex = ($dayVal - 1) % 7; // 1,8,15,22 are Sunday, 2,9,16,23 are Monday, etc. + $dayStr = $ordinals[$ordinalIndex] . ' ' . $daysOfWeek[$dayOfWeekIndex]; // "first sunday", "first monday", etc. $dueDate = strtotime($dayStr, $now); } - if($dueDate) { - return date('Y-m-d', $dueDate);// SQL format + if ($dueDate) { + return date('Y-m-d', $dueDate); // SQL format } } elseif ($this->client->payment_terms != 0) { // No custom due date set for this invoice; use the client's payment terms - $days = $this->client->payment_terms; - if ($days == -1) { - $days = 0; - } + $days = $this->client->defaultDaysDue(); + + return date('Y-m-d', strtotime('+'.$days.' day', $now)); + } elseif ($this->account->payment_terms != 0) { + $days = $this->account->defaultDaysDue(); + return date('Y-m-d', strtotime('+'.$days.' day', $now)); } elseif ($this->account->payment_terms != 0) { // No custom due date set for this invoice; use the client's payment terms @@ -1054,23 +1078,24 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param int $min * @param int $max + * * @return null */ public function getPrettySchedule($min = 1, $max = 10) { - if (!$schedule = $this->getSchedule($max)) { + if (! $schedule = $this->getSchedule($max)) { return null; } $dates = []; - for ($i=$min; $igetStart(); $date = $this->account->formatDate($dateStart); $dueDate = $this->getDueDate($dateStart); - if($dueDate) { + if ($dueDate) { $date .= ' (' . trans('texts.due') . ' ' . $this->account->formatDate($dueDate) . ')'; } @@ -1100,6 +1125,9 @@ class Invoice extends EntityModel implements BalanceAffecting case FREQUENCY_MONTHLY: $rule = 'FREQ=MONTHLY;'; break; + case FREQUENCY_TWO_MONTHS: + $rule = 'FREQ=MONTHLY;INTERVAL=2;'; + break; case FREQUENCY_THREE_MONTHS: $rule = 'FREQ=MONTHLY;INTERVAL=3;'; break; @@ -1134,11 +1162,11 @@ class Invoice extends EntityModel implements BalanceAffecting */ public function shouldSendToday() { - if ( ! $this->user->confirmed) { + if (! $this->user->confirmed) { return false; } - if ( ! $this->start_date || strtotime($this->start_date) > strtotime('now')) { + if (! $this->start_date || strtotime($this->start_date) > strtotime('now')) { return false; } @@ -1152,7 +1180,7 @@ class Invoice extends EntityModel implements BalanceAffecting $dayOfMonthToday = date('j'); $dayOfMonthStart = date('j', strtotime($this->start_date)); - if (!$this->last_sent_date) { + if (! $this->last_sent_date) { return true; } else { $date1 = new DateTime($this->last_sent_date); @@ -1175,6 +1203,8 @@ class Invoice extends EntityModel implements BalanceAffecting return $daysSinceLastSent >= 28; case FREQUENCY_MONTHLY: return $monthsSinceLastSent >= 1; + case FREQUENCY_TWO_MONTHS: + return $monthsSinceLastSent >= 2; case FREQUENCY_THREE_MONTHS: return $monthsSinceLastSent >= 3; case FREQUENCY_SIX_MONTHS: @@ -1193,7 +1223,7 @@ class Invoice extends EntityModel implements BalanceAffecting */ public function getPDFString() { - if ( ! env('PHANTOMJS_CLOUD_KEY') && ! env('PHANTOMJS_BIN_PATH')) { + if (! env('PHANTOMJS_CLOUD_KEY') && ! env('PHANTOMJS_BIN_PATH')) { return false; } @@ -1218,7 +1248,7 @@ class Invoice extends EntityModel implements BalanceAffecting return false; } - if ( ! $pdfString || strlen($pdfString) < 200) { + if (! $pdfString || strlen($pdfString) < 200) { Utils::logError("PhantomJS - Failed to create pdf: {$pdfString}"); return false; } @@ -1229,6 +1259,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @param $invoiceItem * @param $invoiceTotal + * * @return float|int */ public function getItemTaxable($invoiceItem, $invoiceTotal) @@ -1280,8 +1311,10 @@ class Invoice extends EntityModel implements BalanceAffecting // if $calculatePaid is true we'll loop through each payment to // determine the sum, otherwise we'll use the cached paid_to_date amount + /** * @param bool $calculatePaid + * * @return array */ public function getTaxes($calculatePaid = false) @@ -1292,13 +1325,13 @@ class Invoice extends EntityModel implements BalanceAffecting if ($this->tax_name1) { $invoiceTaxAmount = round($taxable * ($this->tax_rate1 / 100), 2); - $invoicePaidAmount = floatVal($this->amount) && $invoiceTaxAmount ? ($paidAmount / $this->amount * $invoiceTaxAmount) : 0; + $invoicePaidAmount = floatval($this->amount) && $invoiceTaxAmount ? ($paidAmount / $this->amount * $invoiceTaxAmount) : 0; $this->calculateTax($taxes, $this->tax_name1, $this->tax_rate1, $invoiceTaxAmount, $invoicePaidAmount); } if ($this->tax_name2) { $invoiceTaxAmount = round($taxable * ($this->tax_rate2 / 100), 2); - $invoicePaidAmount = floatVal($this->amount) && $invoiceTaxAmount ? ($paidAmount / $this->amount * $invoiceTaxAmount) : 0; + $invoicePaidAmount = floatval($this->amount) && $invoiceTaxAmount ? ($paidAmount / $this->amount * $invoiceTaxAmount) : 0; $this->calculateTax($taxes, $this->tax_name2, $this->tax_rate2, $invoiceTaxAmount, $invoicePaidAmount); } @@ -1307,13 +1340,13 @@ class Invoice extends EntityModel implements BalanceAffecting if ($invoiceItem->tax_name1) { $itemTaxAmount = round($taxable * ($invoiceItem->tax_rate1 / 100), 2); - $itemPaidAmount = floatVal($this->amount) && $itemTaxAmount ? ($paidAmount / $this->amount * $itemTaxAmount) : 0; + $itemPaidAmount = floatval($this->amount) && $itemTaxAmount ? ($paidAmount / $this->amount * $itemTaxAmount) : 0; $this->calculateTax($taxes, $invoiceItem->tax_name1, $invoiceItem->tax_rate1, $itemTaxAmount, $itemPaidAmount); } if ($invoiceItem->tax_name2) { $itemTaxAmount = round($taxable * ($invoiceItem->tax_rate2 / 100), 2); - $itemPaidAmount = floatVal($this->amount) && $itemTaxAmount ? ($paidAmount / $this->amount * $itemTaxAmount) : 0; + $itemPaidAmount = floatval($this->amount) && $itemTaxAmount ? ($paidAmount / $this->amount * $itemTaxAmount) : 0; $this->calculateTax($taxes, $invoiceItem->tax_name2, $invoiceItem->tax_rate2, $itemTaxAmount, $itemPaidAmount); } } @@ -1330,7 +1363,7 @@ class Invoice extends EntityModel implements BalanceAffecting */ private function calculateTax(&$taxes, $name, $rate, $amount, $paid) { - if ( ! $amount) { + if (! $amount) { return; } @@ -1338,12 +1371,12 @@ class Invoice extends EntityModel implements BalanceAffecting $paid = round($paid, 2); $key = $rate . ' ' . $name; - if ( ! isset($taxes[$key])) { + if (! isset($taxes[$key])) { $taxes[$key] = [ 'name' => $name, - 'rate' => $rate+0, + 'rate' => $rate + 0, 'amount' => 0, - 'paid' => 0 + 'paid' => 0, ]; } @@ -1354,32 +1387,41 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @return bool */ - public function hasDocuments(){ - if(count($this->documents))return true; + public function hasDocuments() + { + if (count($this->documents)) { + return true; + } + return $this->hasExpenseDocuments(); } /** * @return bool */ - public function hasExpenseDocuments(){ - foreach($this->expenses as $expense){ - if(count($expense->documents))return true; + public function hasExpenseDocuments() + { + foreach ($this->expenses as $expense) { + if (count($expense->documents)) { + return true; + } } + return false; } /** * @return bool */ - public function getAutoBillEnabled() { - if (!$this->is_recurring) { + public function getAutoBillEnabled() + { + if (! $this->is_recurring) { $recurInvoice = $this->recurring_invoice; } else { $recurInvoice = $this; } - if (!$recurInvoice) { + if (! $recurInvoice) { return false; } @@ -1409,15 +1451,26 @@ class Invoice extends EntityModel implements BalanceAffecting } if ($entityType == ENTITY_INVOICE) { + $statuses[INVOICE_STATUS_UNPAID] = trans('texts.unpaid'); $statuses[INVOICE_STATUS_OVERDUE] = trans('texts.overdue'); } return $statuses; } + + public function emailHistory() + { + return Activity::scope() + ->with(['contact']) + ->whereInvoiceId($this->id) + ->whereIn('activity_type_id', [ACTIVITY_TYPE_EMAIL_INVOICE, ACTIVITY_TYPE_EMAIL_QUOTE]) + ->orderBy('id', 'desc') + ->get(); + } } Invoice::creating(function ($invoice) { - if (!$invoice->is_recurring) { + if (! $invoice->is_recurring) { $invoice->account->incrementCounter($invoice); } }); diff --git a/app/Models/InvoiceDesign.php b/app/Models/InvoiceDesign.php index 4db185be309c..a28f35e427b3 100644 --- a/app/Models/InvoiceDesign.php +++ b/app/Models/InvoiceDesign.php @@ -1,11 +1,13 @@ -belongsTo('App\Models\Account'); } - } diff --git a/app/Models/InvoiceStatus.php b/app/Models/InvoiceStatus.php index 24948f845127..4a4dddb5eecb 100644 --- a/app/Models/InvoiceStatus.php +++ b/app/Models/InvoiceStatus.php @@ -1,9 +1,11 @@ -name; } diff --git a/app/Models/License.php b/app/Models/License.php index 39b82b7ecc83..66faa6e6189a 100644 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -1,10 +1,12 @@ -client) { + if (! $this->client) { return false; } return $this->client->trashed(); } -} \ No newline at end of file +} diff --git a/app/Models/Payment.php b/app/Models/Payment.php index 4f080180603a..b836bacba449 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -1,16 +1,18 @@ -amount; } @@ -278,19 +281,26 @@ class Payment extends EntityModel return $this->amount - $this->refunded; } + public function canBeRefunded() + { + return $this->getCompletedAmount() > 0 && ($this->isCompleted() || $this->isPartiallyRefunded()); + } + /** * @return mixed|null|\stdClass|string */ public function getBankDataAttribute() { - if (!$this->routing_number) { + if (! $this->routing_number) { return null; } + return PaymentMethod::lookupBankData($this->routing_number); } /** * @param $bank_name + * * @return null */ public function getBankNameAttribute($bank_name) @@ -300,11 +310,12 @@ class Payment extends EntityModel } $bankData = $this->bank_data; - return $bankData?$bankData->name:null; + return $bankData ? $bankData->name : null; } /** * @param $value + * * @return null|string */ public function getLast4Attribute($value) @@ -328,7 +339,6 @@ class Payment extends EntityModel return static::$statusClasses[$statusId]; } - public function statusClass() { return static::calcStatusClass($this->payment_status_id); @@ -337,6 +347,7 @@ class Payment extends EntityModel public function statusLabel() { $amount = $this->account->formatMoney($this->refunded, $this->client); + return static::calcStatusLabel($this->payment_status_id, $this->payment_status->name, $amount); } @@ -352,7 +363,6 @@ class Payment extends EntityModel } Payment::creating(function ($payment) { - }); Payment::created(function ($payment) { diff --git a/app/Models/PaymentLibrary.php b/app/Models/PaymentLibrary.php index d9445015d2b3..99f5ebabc2ed 100644 --- a/app/Models/PaymentLibrary.php +++ b/app/Models/PaymentLibrary.php @@ -1,9 +1,11 @@ -routing_number) { + if (! $this->routing_number) { return null; } + return static::lookupBankData($this->routing_number); } /** * @param $bank_name + * * @return null */ public function getBankNameAttribute($bank_name) @@ -94,11 +98,12 @@ class PaymentMethod extends EntityModel } $bankData = $this->bank_data; - return $bankData?$bankData->name:null; + return $bankData ? $bankData->name : null; } /** * @param $value + * * @return null|string */ public function getLast4Attribute($value) @@ -109,11 +114,12 @@ class PaymentMethod extends EntityModel /** * @param $query * @param $clientId + * * @return mixed */ public function scopeClientId($query, $clientId) { - $query->whereHas('contact', function($query) use ($clientId) { + $query->whereHas('contact', function ($query) use ($clientId) { $query->whereClientId($clientId); }); } @@ -141,9 +147,11 @@ class PaymentMethod extends EntityModel /** * @param $routingNumber + * * @return mixed|null|\stdClass|string */ - public static function lookupBankData($routingNumber) { + public static function lookupBankData($routingNumber) + { $cached = Cache::get('bankData:'.$routingNumber); if ($cached != null) { @@ -152,12 +160,12 @@ class PaymentMethod extends EntityModel $dataPath = base_path('vendor/gatepay/FedACHdir/FedACHdir.txt'); - if (!file_exists($dataPath) || !$size = filesize($dataPath)) { + if (! file_exists($dataPath) || ! $size = filesize($dataPath)) { return 'Invalid data file'; } $lineSize = 157; - $numLines = $size/$lineSize; + $numLines = $size / $lineSize; if ($numLines % 1 != 0) { // The number of lines should be an integer @@ -178,7 +186,7 @@ class PaymentMethod extends EntityModel if ($thisNumber > $routingNumber) { $high = $mid - 1; - } else if ($thisNumber < $routingNumber) { + } elseif ($thisNumber < $routingNumber) { $low = $mid + 1; } else { $data = new \stdClass(); @@ -196,11 +204,13 @@ class PaymentMethod extends EntityModel } } - if (!empty($data)) { + if (! empty($data)) { Cache::put('bankData:'.$routingNumber, $data, 5); + return $data; } else { Cache::put('bankData:'.$routingNumber, false, 5); + return null; } } @@ -228,10 +238,10 @@ class PaymentMethod extends EntityModel } } -PaymentMethod::deleting(function($paymentMethod) { +PaymentMethod::deleting(function ($paymentMethod) { $accountGatewayToken = $paymentMethod->account_gateway_token; if ($accountGatewayToken->default_payment_method_id == $paymentMethod->id) { - $newDefault = $accountGatewayToken->payment_methods->first(function($i, $paymentMethdod) use ($accountGatewayToken){ + $newDefault = $accountGatewayToken->payment_methods->first(function ($i, $paymentMethdod) use ($accountGatewayToken) { return $paymentMethdod->id != $accountGatewayToken->default_payment_method_id; }); $accountGatewayToken->default_payment_method_id = $newDefault ? $newDefault->id : null; diff --git a/app/Models/PaymentStatus.php b/app/Models/PaymentStatus.php index d4c06899e56e..f0c172cb220a 100644 --- a/app/Models/PaymentStatus.php +++ b/app/Models/PaymentStatus.php @@ -1,9 +1,11 @@ -get() as $term) { + $terms->push($term); + } + + return $terms->sortBy('num_days'); + } } diff --git a/app/Models/PaymentType.php b/app/Models/PaymentType.php index 811ed0a486e8..850e3d34668c 100644 --- a/app/Models/PaymentType.php +++ b/app/Models/PaymentType.php @@ -1,9 +1,11 @@ -where('product_key', '=', $key)->first(); + return self::scope()->where('product_key', '=', $key)->first(); } /** diff --git a/app/Models/Project.php b/app/Models/Project.php index 7e34f0bbf174..834aef98b00e 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -1,10 +1,12 @@ -belongsTo('App\Models\Client')->withTrashed(); } - } Project::creating(function ($project) { diff --git a/app/Models/SecurityCode.php b/app/Models/SecurityCode.php index 1725e65889b7..6e3eeef1fe03 100644 --- a/app/Models/SecurityCode.php +++ b/app/Models/SecurityCode.php @@ -1,9 +1,11 @@ -name; - } + } } diff --git a/app/Models/Subscription.php b/app/Models/Subscription.php index d4e064068276..766678a1888a 100644 --- a/app/Models/Subscription.php +++ b/app/Models/Subscription.php @@ -1,10 +1,12 @@ -time_log) ?: []; + $parts = json_decode($this->time_log) ?: []; - if (count($parts)) { - $index = count($parts) - 1; - return $parts[$index][0]; - } else { - return ''; - } + if (count($parts)) { + $index = count($parts) - 1; + + return $parts[$index][0]; + } else { + return ''; + } } /** * @param $task + * * @return int */ public static function calcDuration($task) @@ -122,7 +127,7 @@ class Task extends EntityModel $parts = json_decode($task->time_log) ?: []; foreach ($parts as $part) { - if (count($part) == 1 || !$part[1]) { + if (count($part) == 1 || ! $part[1]) { $duration += time() - $part[0]; } else { $duration += $part[1] - $part[0]; @@ -146,9 +151,9 @@ class Task extends EntityModel public function getCurrentDuration() { $parts = json_decode($this->time_log) ?: []; - $part = $parts[count($parts)-1]; + $part = $parts[count($parts) - 1]; - if (count($part) == 1 || !$part[1]) { + if (count($part) == 1 || ! $part[1]) { return time() - $part[0]; } else { return 0; @@ -161,6 +166,7 @@ class Task extends EntityModel public function hasPreviousDuration() { $parts = json_decode($this->time_log) ?: []; + return count($parts) && (count($parts[0]) && $parts[0][1]); } @@ -173,7 +179,7 @@ class Task extends EntityModel } /** - * Gets the route to the tasks edit action + * Gets the route to the tasks edit action. * * @return string */ @@ -190,7 +196,7 @@ class Task extends EntityModel public function getDisplayName() { if ($this->description) { - return mb_strimwidth($this->description, 0, 16, "..."); + return mb_strimwidth($this->description, 0, 16, '...'); } return '#' . $this->public_id; @@ -274,7 +280,6 @@ class Task extends EntityModel } } - Task::created(function ($task) { event(new TaskWasCreated($task)); }); diff --git a/app/Models/TaxRate.php b/app/Models/TaxRate.php index f9c25afc389c..356369e0f806 100644 --- a/app/Models/TaxRate.php +++ b/app/Models/TaxRate.php @@ -1,9 +1,11 @@ -name, $this->rate); } - } diff --git a/app/Models/Theme.php b/app/Models/Theme.php index 3cb2255a7e3a..61fb2772bd3c 100644 --- a/app/Models/Theme.php +++ b/app/Models/Theme.php @@ -1,9 +1,11 @@ -save(); } } elseif ($entity->isType(INVOICE_TYPE_QUOTE)) { - if ( ! $this->share_counter) { + if (! $this->share_counter) { $this->quote_number_counter += $counterOffset - 1; $this->save(); } @@ -72,34 +75,39 @@ trait GeneratesNumbers /** * @param $entityType + * * @return string */ public function getNumberPrefix($entityType) { - if ( ! $this->hasFeature(FEATURE_INVOICE_SETTINGS)) { + if (! $this->hasFeature(FEATURE_INVOICE_SETTINGS)) { return ''; } $field = "{$entityType}_number_prefix"; + return $this->$field ?: ''; } /** * @param $entityType + * * @return bool */ public function getNumberPattern($entityType) { - if ( ! $this->hasFeature(FEATURE_INVOICE_SETTINGS)) { + if (! $this->hasFeature(FEATURE_INVOICE_SETTINGS)) { return false; } $field = "{$entityType}_number_pattern"; + return $this->$field; } /** * @param $entityType + * * @return bool */ public function hasNumberPattern($entityType) @@ -109,17 +117,21 @@ trait GeneratesNumbers /** * @param $entityType + * @param mixed $invoice + * * @return string */ public function hasClientNumberPattern($invoice) { $pattern = $invoice->invoice_type_id == INVOICE_TYPE_QUOTE ? $this->quote_number_pattern : $this->invoice_number_pattern; - return strstr($pattern, '$custom'); + return strstr($pattern, '$custom') || strstr($pattern, '$idNumber'); } /** * @param $entity + * @param mixed $counter + * * @return bool|mixed */ public function applyNumberPattern($entity, $counter = 0) @@ -128,7 +140,7 @@ trait GeneratesNumbers $counter = $counter ?: $this->getCounter($entityType); $pattern = $this->getNumberPattern($entityType); - if (!$pattern) { + if (! $pattern) { return false; } @@ -165,22 +177,25 @@ trait GeneratesNumbers /** * @param $pattern * @param $invoice + * * @return mixed */ private function getClientInvoiceNumber($pattern, $invoice) { - if (!$invoice->client) { + if (! $invoice->client) { return $pattern; } $search = [ '{$custom1}', '{$custom2}', + '{$idNumber}', ]; $replace = [ $invoice->client->custom_value1, $invoice->client->custom_value2, + $invoice->client->id_number, ]; return str_replace($search, $replace, $pattern); @@ -188,6 +203,7 @@ trait GeneratesNumbers /** * @param $entityType + * * @return mixed */ public function getCounter($entityType) @@ -203,11 +219,13 @@ trait GeneratesNumbers /** * @param $entityType + * * @return mixed|string */ public function previewNextInvoiceNumber($entityType = ENTITY_INVOICE) { $invoice = $this->createInvoice($entityType); + return $this->getNextNumber($invoice); } diff --git a/app/Models/Traits/PresentsInvoice.php b/app/Models/Traits/PresentsInvoice.php index 4fd9e225ac76..ca415b1e6012 100644 --- a/app/Models/Traits/PresentsInvoice.php +++ b/app/Models/Traits/PresentsInvoice.php @@ -1,7 +1,9 @@ -invoice_fields) { $fields = json_decode($this->invoice_fields, true); + return $this->applyLabels($fields); } else { return $this->getDefaultInvoiceFields(); @@ -120,7 +123,7 @@ trait PresentsInvoice 'account.custom_value1', 'account.custom_value2', '.blank', - ] + ], ]; return $this->applyLabels($fields); @@ -143,7 +146,6 @@ trait PresentsInvoice } return $fields; - } /** @@ -211,6 +213,9 @@ trait PresentsInvoice 'tax_quote', 'statement', 'statement_date', + 'your_statement', + 'statement_issued_to', + 'statement_to', ]; foreach ($fields as $field) { @@ -231,13 +236,11 @@ trait PresentsInvoice 'client.custom_value1' => 'custom_client_label1', 'client.custom_value2' => 'custom_client_label2', 'account.custom_value1' => 'custom_label1', - 'account.custom_value2' => 'custom_label2' + 'account.custom_value2' => 'custom_label2', ] as $field => $property) { $data[$field] = $this->$property ?: trans('texts.custom_field'); } return $data; } - - } diff --git a/app/Models/Traits/SendsEmails.php b/app/Models/Traits/SendsEmails.php index 4843afa5e364..ab310dfe8a57 100644 --- a/app/Models/Traits/SendsEmails.php +++ b/app/Models/Traits/SendsEmails.php @@ -1,13 +1,172 @@ - '$invoice', 'account' => '$account']); + } + + /** + * @param $entityType + * + * @return mixed + */ + public function getEmailSubject($entityType) + { + if ($this->hasFeature(FEATURE_CUSTOM_EMAILS)) { + $field = "email_subject_{$entityType}"; + $value = $this->$field; + + if ($value) { + return $value; + } + } + + return $this->getDefaultEmailSubject($entityType); + } + + /** + * @param $entityType + * @param bool $message + * + * @return string + */ + public function getDefaultEmailTemplate($entityType, $message = false) + { + if (strpos($entityType, 'reminder') !== false) { + $entityType = ENTITY_INVOICE; + } + + $template = '
$client,

'; + + if ($this->hasFeature(FEATURE_CUSTOM_EMAILS) && $this->email_design_id != EMAIL_DESIGN_PLAIN) { + $template .= '
' . trans("texts.{$entityType}_message_button", ['amount' => '$amount']) . '

' . + '
$viewButton

'; + } else { + $template .= '
' . trans("texts.{$entityType}_message", ['amount' => '$amount']) . '

' . + '
$viewLink

'; + } + + if ($message) { + $template .= "$message

\r\n\r\n"; + } + + return $template . '$footer'; + } + + /** + * @param $entityType + * @param bool $message + * + * @return mixed + */ + public function getEmailTemplate($entityType, $message = false) + { + $template = false; + + if ($this->hasFeature(FEATURE_CUSTOM_EMAILS)) { + $field = "email_template_{$entityType}"; + $template = $this->$field; + } + + if (! $template) { + $template = $this->getDefaultEmailTemplate($entityType, $message); + } + + //
is causing page breaks with the email designs + return str_replace('/>', ' />', $template); + } + + /** + * @param string $view + * + * @return string + */ + public function getTemplateView($view = '') + { + return $this->getEmailDesignId() == EMAIL_DESIGN_PLAIN ? $view : 'design' . $this->getEmailDesignId(); + } + + /** + * @return mixed|string + */ + public function getEmailFooter() + { + if ($this->isPro() && $this->email_footer) { + // Add line breaks if HTML isn't already being used + return strip_tags($this->email_footer) == $this->email_footer ? nl2br($this->email_footer) : $this->email_footer; + } else { + return '

' . trans('texts.email_signature') . "\n
\$account

"; + } + } + + /** + * @param $reminder + * + * @return bool + */ + public function getReminderDate($reminder) + { + if (! $this->{"enable_reminder{$reminder}"}) { + return false; + } + + $numDays = $this->{"num_days_reminder{$reminder}"}; + $plusMinus = $this->{"direction_reminder{$reminder}"} == REMINDER_DIRECTION_AFTER ? '-' : '+'; + + return date('Y-m-d', strtotime("$plusMinus $numDays days")); + } + + /** + * @param Invoice $invoice + * + * @return bool|string + */ + public function getInvoiceReminder(Invoice $invoice) + { + for ($i = 1; $i <= 3; $i++) { + if ($date = $this->getReminderDate($i)) { + $field = $this->{"field_reminder{$i}"} == REMINDER_FIELD_DUE_DATE ? 'due_date' : 'invoice_date'; + if ($invoice->$field == $date) { + return "reminder{$i}"; + } + } + } + + return false; + } + + public function setTemplateDefaults($type, $subject, $body) + { + if ($subject) { + $this->{"email_subject_" . $type} = $subject; + } + + if ($body) { + $this->{"email_template_" . $type} = $body; + } + + $this->save(); + } + public function getBccEmail() { return $this->isPro() ? $this->bcc_email : false; @@ -15,7 +174,7 @@ trait SendsEmails public function getFromEmail() { - if ( ! $this->isPro() || ! Utils::isNinjaProd() || Utils::isReseller()) { + if (! $this->isPro() || ! Utils::isNinja() || Utils::isReseller()) { return false; } diff --git a/app/Models/User.php b/app/Models/User.php index d60a7c988943..34b9f48d3732 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -1,20 +1,23 @@ -theme_id || in_array($this->theme_id, [2, 3, 5, 6, 7, 8, 10, 11, 12]); + return ! $this->theme_id || in_array($this->theme_id, [2, 3, 5, 6, 7, 8, 10, 11, 12]); } /** @@ -191,6 +195,7 @@ class User extends Authenticatable /** * @param bool $success * @param bool $forced + * * @return bool */ public function afterSave($success = true, $forced = false) @@ -268,7 +273,7 @@ class User extends Authenticatable */ public static function onUpdatedUser($user) { - if (!$user->getOriginal('email') + if (! $user->getOriginal('email') || $user->getOriginal('email') == TEST_USERNAME || $user->getOriginal('username') == TEST_USERNAME || $user->getOriginal('email') == 'tests@bitrock.com') { @@ -288,42 +293,44 @@ class User extends Authenticatable && $this->getOriginal('confirmed'); } - - - /** - * Set the permissions attribute on the model. - * - * @param mixed $value - * @return $this - */ - protected function setPermissionsAttribute($value){ - if(empty($value)) { + /** + * Set the permissions attribute on the model. + * + * @param mixed $value + * + * @return $this + */ + protected function setPermissionsAttribute($value) + { + if (empty($value)) { $this->attributes['permissions'] = 0; } else { $bitmask = 0; - foreach($value as $permission){ - if ( ! $permission) { - continue; - } - $bitmask = $bitmask | static::$all_permissions[$permission]; + foreach ($value as $permission) { + if (! $permission) { + continue; + } + $bitmask = $bitmask | static::$all_permissions[$permission]; } $this->attributes['permissions'] = $bitmask; } return $this; - } + } /** - * Expands the value of the permissions attribute + * Expands the value of the permissions attribute. + * + * @param mixed $value * - * @param mixed $value * @return mixed */ - protected function getPermissionsAttribute($value){ + protected function getPermissionsAttribute($value) + { $permissions = []; - foreach(static::$all_permissions as $permission => $bitmask){ - if(($value & $bitmask) == $bitmask) { + foreach (static::$all_permissions as $permission => $bitmask) { + if (($value & $bitmask) == $bitmask) { $permissions[$permission] = $permission; } } @@ -332,19 +339,22 @@ class User extends Authenticatable } /** - * Checks to see if the user has the required permission + * Checks to see if the user has the required permission. * - * @param mixed $permission Either a single permission or an array of possible permissions - * @param boolean True to require all permissions, false to require only one - * @return boolean + * @param mixed $permission Either a single permission or an array of possible permissions + * @param bool True to require all permissions, false to require only one + * @param mixed $requireAll + * + * @return bool */ - public function hasPermission($permission, $requireAll = false){ + public function hasPermission($permission, $requireAll = false) + { if ($this->is_admin) { return true; - } else if(is_string($permission)){ - return !empty($this->permissions[$permission]); - } else if(is_array($permission)) { - if($requireAll){ + } elseif (is_string($permission)) { + return ! empty($this->permissions[$permission]); + } elseif (is_array($permission)) { + if ($requireAll) { return count(array_diff($permission, $this->permissions)) == 0; } else { return count(array_intersect($permission, $this->permissions)) > 0; @@ -356,25 +366,27 @@ class User extends Authenticatable /** * @param $entity + * * @return bool */ - public function owns($entity) { - return !empty($entity->user_id) && $entity->user_id == $this->id; + public function owns($entity) + { + return ! empty($entity->user_id) && $entity->user_id == $this->id; } /** * @return bool|mixed */ - public function filterId() { + public function filterId() + { return $this->hasPermission('view_all') ? false : $this->id; } - public function caddAddUsers() { - if ( ! Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { return true; - } elseif ( ! $this->hasFeature(FEATURE_USERS)) { + } elseif (! $this->hasFeature(FEATURE_USERS)) { return false; } @@ -391,8 +403,8 @@ class User extends Authenticatable public function canCreateOrEdit($entityType, $entity = false) { - return (($entity && $this->can('edit', $entity)) - || (!$entity && $this->can('create', $entityType))); + return ($entity && $this->can('edit', $entity)) + || (! $entity && $this->can('create', $entityType)); } public function primaryAccount() diff --git a/app/Models/UserAccount.php b/app/Models/UserAccount.php index 63200eb25f07..f7a8a009dabe 100644 --- a/app/Models/UserAccount.php +++ b/app/Models/UserAccount.php @@ -1,9 +1,11 @@ -$field && $this->$field == $userId) { return true; } } + return false; } @@ -40,9 +44,9 @@ class UserAccount extends Eloquent return; } - for ($i=1; $i<=5; $i++) { + for ($i = 1; $i <= 5; $i++) { $field = "user_id{$i}"; - if (!$this->$field) { + if (! $this->$field) { $this->$field = $userId; break; } @@ -54,11 +58,11 @@ class UserAccount extends Eloquent */ public function removeUserId($userId) { - if (!$userId || !self::hasUserId($userId)) { + if (! $userId || ! self::hasUserId($userId)) { return; } - for ($i=1; $i<=5; $i++) { + for ($i = 1; $i <= 5; $i++) { $field = "user_id{$i}"; if ($this->$field && $this->$field == $userId) { $this->$field = null; diff --git a/app/Models/Vendor.php b/app/Models/Vendor.php index 466c6cc8fa47..1dd933396ce6 100644 --- a/app/Models/Vendor.php +++ b/app/Models/Vendor.php @@ -1,15 +1,17 @@ -hasMany('App\Models\Expense','vendor_id','id'); + return $this->hasMany('App\Models\Expense', 'vendor_id', 'id'); } /** * @param $data * @param bool $isPrimary + * * @return \Illuminate\Database\Eloquent\Model */ public function addVendorContact($data, $isPrimary = false) @@ -256,6 +259,7 @@ class Vendor extends EntityModel public function getCityState() { $swap = $this->country && $this->country->swap_postal_code; + return Utils::cityStateZip($this->city, $this->state, $this->postal_code, $swap); } @@ -319,7 +323,7 @@ class Vendor extends EntityModel return $this->currency_id; } - if (!$this->account) { + if (! $this->account) { $this->load('account'); } @@ -356,7 +360,6 @@ Vendor::updated(function ($vendor) { event(new VendorWasUpdated($vendor)); }); - Vendor::deleting(function ($vendor) { $vendor->setNullValues(); }); diff --git a/app/Models/VendorContact.php b/app/Models/VendorContact.php index abcf4f097fe9..cb594c26929a 100644 --- a/app/Models/VendorContact.php +++ b/app/Models/VendorContact.php @@ -1,10 +1,13 @@ -gateway_id == GATEWAY_CUSTOM) { $accountGateway = $this->getAccountGateway($model->id); $name = $accountGateway->getConfigField('name') . ' [' . trans('texts.custom') . ']'; + return link_to("gateways/{$model->public_id}/edit", $name)->toHtml(); } elseif ($model->gateway_id != GATEWAY_WEPAY) { return link_to("gateways/{$model->public_id}/edit", $model->name)->toHtml(); @@ -33,10 +35,10 @@ class AccountGatewayDatatable extends EntityDatatable $config = $accountGateway->getConfig(); $endpoint = WEPAY_ENVIRONMENT == WEPAY_STAGE ? 'https://stage.wepay.com/' : 'https://www.wepay.com/'; $wepayAccountId = $config->accountId; - $wepayState = isset($config->state)?$config->state:null; + $wepayState = isset($config->state) ? $config->state : null; $linkText = $model->name; $url = $endpoint.'account/'.$wepayAccountId; - $html = link_to($url, $linkText, ['target'=>'_blank'])->toHtml(); + $html = link_to($url, $linkText, ['target' => '_blank'])->toHtml(); try { if ($wepayState == 'action_required') { @@ -50,11 +52,12 @@ class AccountGatewayDatatable extends EntityDatatable $model->resendConfirmationUrl = $url = URL::to("gateways/{$accountGateway->public_id}/resend_confirmation"); $html = link_to($url, $linkText)->toHtml(); } - } catch(\WePayException $ex){} + } catch (\WePayException $ex) { + } return $html; } - } + }, ], [ 'limit', @@ -65,7 +68,7 @@ class AccountGatewayDatatable extends EntityDatatable $accountGateway = $this->getAccountGateway($model->id); $paymentDriver = $accountGateway->paymentDriver(); $gatewayTypes = $paymentDriver->gatewayTypes(); - $gatewayTypes = array_diff($gatewayTypes, array(GATEWAY_TYPE_TOKEN)); + $gatewayTypes = array_diff($gatewayTypes, [GATEWAY_TYPE_TOKEN]); } $html = ''; @@ -86,11 +89,11 @@ class AccountGatewayDatatable extends EntityDatatable $html .= Utils::formatMoney($accountGatewaySettings->min_limit) . ' - ' . Utils::formatMoney($accountGatewaySettings->max_limit); } elseif ($accountGatewaySettings && $accountGatewaySettings->min_limit !== null) { $html .= trans('texts.min_limit', - array('min' => Utils::formatMoney($accountGatewaySettings->min_limit)) + ['min' => Utils::formatMoney($accountGatewaySettings->min_limit)] ); } elseif ($accountGatewaySettings && $accountGatewaySettings->max_limit !== null) { $html .= trans('texts.max_limit', - array('max' => Utils::formatMoney($accountGatewaySettings->max_limit)) + ['max' => Utils::formatMoney($accountGatewaySettings->max_limit)] ); } else { $html .= trans('texts.no_limit'); @@ -98,7 +101,7 @@ class AccountGatewayDatatable extends EntityDatatable } return $html; - } + }, ], ]; } @@ -111,47 +114,48 @@ class AccountGatewayDatatable extends EntityDatatable function ($model) { return $model->resendConfirmationUrl; }, - function($model) { - return !$model->deleted_at && $model->gateway_id == GATEWAY_WEPAY && !empty($model->resendConfirmationUrl); - } - ] , [ + function ($model) { + return ! $model->deleted_at && $model->gateway_id == GATEWAY_WEPAY && ! empty($model->resendConfirmationUrl); + }, + ], [ uctrans('texts.edit_gateway'), function ($model) { return URL::to("gateways/{$model->public_id}/edit"); }, - function($model) { - return !$model->deleted_at; - } + function ($model) { + return ! $model->deleted_at; + }, ], [ uctrans('texts.finish_setup'), function ($model) { return $model->setupUrl; }, - function($model) { - return !$model->deleted_at && $model->gateway_id == GATEWAY_WEPAY && !empty($model->setupUrl); - } + function ($model) { + return ! $model->deleted_at && $model->gateway_id == GATEWAY_WEPAY && ! empty($model->setupUrl); + }, ], [ uctrans('texts.manage_account'), function ($model) { $accountGateway = $this->getAccountGateway($model->id); $endpoint = WEPAY_ENVIRONMENT == WEPAY_STAGE ? 'https://stage.wepay.com/' : 'https://www.wepay.com/'; + return [ 'url' => $endpoint.'account/'.$accountGateway->getConfig()->accountId, - 'attributes' => 'target="_blank"' + 'attributes' => 'target="_blank"', ]; }, - function($model) { - return !$model->deleted_at && $model->gateway_id == GATEWAY_WEPAY; - } + function ($model) { + return ! $model->deleted_at && $model->gateway_id == GATEWAY_WEPAY; + }, ], [ uctrans('texts.terms_of_service'), function ($model) { return 'https://go.wepay.com/terms-of-service-us'; }, - function($model) { + function ($model) { return $model->gateway_id == GATEWAY_WEPAY; - } - ] + }, + ], ]; foreach (Cache::get('gatewayTypes') as $gatewayType) { @@ -177,7 +181,7 @@ class AccountGatewayDatatable extends EntityDatatable return in_array($gatewayType->id, $gatewayTypes); } - } + }, ]; } @@ -194,5 +198,4 @@ class AccountGatewayDatatable extends EntityDatatable return static::$accountGateways[$id]; } - } diff --git a/app/Ninja/Datatables/ActivityDatatable.php b/app/Ninja/Datatables/ActivityDatatable.php index 0261bfc3bb1d..8c3785168af0 100644 --- a/app/Ninja/Datatables/ActivityDatatable.php +++ b/app/Ninja/Datatables/ActivityDatatable.php @@ -1,4 +1,6 @@ -created_at)); - } + }, ], [ 'activity_type_id', @@ -39,20 +41,20 @@ class ActivityDatatable extends EntityDatatable } return $str; - } + }, ], [ 'balance', function ($model) { return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); - } + }, ], [ 'adjustment', function ($model) { return $model->adjustment != 0 ? Utils::wrapAdjustment($model->adjustment, $model->currency_id, $model->country_id) : ''; - } - ] + }, + ], ]; } } diff --git a/app/Ninja/Datatables/BankAccountDatatable.php b/app/Ninja/Datatables/BankAccountDatatable.php index 6f0eb1c00e20..6adab1504d6a 100644 --- a/app/Ninja/Datatables/BankAccountDatatable.php +++ b/app/Ninja/Datatables/BankAccountDatatable.php @@ -1,4 +1,6 @@ -public_id}/edit"); }, - ] + ], ]; } - - } diff --git a/app/Ninja/Datatables/ClientDatatable.php b/app/Ninja/Datatables/ClientDatatable.php index cb4850f73e7d..6913274f977c 100644 --- a/app/Ninja/Datatables/ClientDatatable.php +++ b/app/Ninja/Datatables/ClientDatatable.php @@ -1,8 +1,10 @@ -public_id}", $model->name ?: '')->toHtml(); - } + }, ], [ 'contact', function ($model) { return link_to("clients/{$model->public_id}", $model->contact ?: '')->toHtml(); - } + }, ], [ 'email', function ($model) { return link_to("clients/{$model->public_id}", $model->email ?: '')->toHtml(); - } + }, ], [ 'client_created_at', function ($model) { return Utils::timestampToDateString(strtotime($model->created_at)); - } + }, ], [ 'last_login', function ($model) { return Utils::timestampToDateString(strtotime($model->last_login)); - } + }, ], [ 'balance', function ($model) { return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); - } - ] + }, + ], ]; } @@ -61,14 +63,17 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_CLIENT, $model->user_id]); - } + }, ], [ - '--divider--', function(){return false;}, + '--divider--', function () { + return false; + }, function ($model) { $user = Auth::user(); + return $user->can('editByOwner', [ENTITY_CLIENT, $model->user_id]) && ($user->can('create', ENTITY_TASK) || $user->can('create', ENTITY_INVOICE)); - } + }, ], [ trans('texts.new_task'), @@ -77,7 +82,7 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_TASK); - } + }, ], [ trans('texts.new_invoice'), @@ -86,7 +91,7 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_INVOICE); - } + }, ], [ trans('texts.new_quote'), @@ -95,14 +100,17 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->hasFeature(FEATURE_QUOTES) && Auth::user()->can('create', ENTITY_QUOTE); - } + }, ], [ - '--divider--', function(){return false;}, + '--divider--', function () { + return false; + }, function ($model) { $user = Auth::user(); + return ($user->can('create', ENTITY_TASK) || $user->can('create', ENTITY_INVOICE)) && ($user->can('create', ENTITY_PAYMENT) || $user->can('create', ENTITY_CREDIT) || $user->can('create', ENTITY_EXPENSE)); - } + }, ], [ trans('texts.enter_payment'), @@ -111,7 +119,7 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_PAYMENT); - } + }, ], [ trans('texts.enter_credit'), @@ -120,7 +128,7 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_CREDIT); - } + }, ], [ trans('texts.enter_expense'), @@ -129,9 +137,8 @@ class ClientDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_EXPENSE); - } - ] + }, + ], ]; } - } diff --git a/app/Ninja/Datatables/CreditDatatable.php b/app/Ninja/Datatables/CreditDatatable.php index 6e2dd491b120..3bbf4430fa72 100644 --- a/app/Ninja/Datatables/CreditDatatable.php +++ b/app/Ninja/Datatables/CreditDatatable.php @@ -1,8 +1,10 @@ -can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } return $model->client_public_id ? link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml() : ''; }, - ! $this->hideClient + ! $this->hideClient, ], [ 'amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id) . ''; - } + }, ], [ 'balance', function ($model) { return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); - } + }, ], [ 'credit_date', function ($model) { - if ( ! Auth::user()->can('viewByOwner', [ENTITY_CREDIT, $model->user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CREDIT, $model->user_id])) { return Utils::fromSqlDate($model->credit_date); } return link_to("credits/{$model->public_id}/edit", Utils::fromSqlDate($model->credit_date))->toHtml(); - } + }, ], [ 'private_notes', function ($model) { return $model->private_notes; - } - ] + }, + ], ]; } @@ -64,7 +66,7 @@ class CreditDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_CREDIT, $model->user_id]); - } + }, ], [ trans('texts.apply_credit'), @@ -73,8 +75,8 @@ class CreditDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_PAYMENT); - } - ] + }, + ], ]; } } diff --git a/app/Ninja/Datatables/EntityDatatable.php b/app/Ninja/Datatables/EntityDatatable.php index 8d6249c1990c..008b1f877d12 100644 --- a/app/Ninja/Datatables/EntityDatatable.php +++ b/app/Ninja/Datatables/EntityDatatable.php @@ -1,4 +1,6 @@ - mtrans($this->entityType, 'delete_'.$this->entityType), 'url' => 'javascript:submitForm_'.$this->entityType.'("delete")', - ] + ], ]; } @@ -53,7 +55,7 @@ class EntityDatatable foreach ($columns as $column) { if (count($column) == 3) { // third column is optionally used to determine visibility - if (!$column[2]) { + if (! $column[2]) { continue; } } @@ -88,6 +90,4 @@ class EntityDatatable return $indices; } - - } diff --git a/app/Ninja/Datatables/ExpenseCategoryDatatable.php b/app/Ninja/Datatables/ExpenseCategoryDatatable.php index 82206b8f8cf6..f73364066ac6 100644 --- a/app/Ninja/Datatables/ExpenseCategoryDatatable.php +++ b/app/Ninja/Datatables/ExpenseCategoryDatatable.php @@ -1,8 +1,9 @@ -can('editByOwner', [ENTITY_EXPENSE_CATEGORY, $model->user_id])) { + function ($model) { + if (! Auth::user()->can('editByOwner', [ENTITY_EXPENSE_CATEGORY, $model->user_id])) { return $model->category; } return link_to("expense_categories/{$model->public_id}/edit", $model->category)->toHtml(); - } + }, ], ]; } @@ -32,13 +32,12 @@ class ExpenseCategoryDatatable extends EntityDatatable [ trans('texts.edit_category'), function ($model) { - return URL::to("expense_categories/{$model->public_id}/edit") ; + return URL::to("expense_categories/{$model->public_id}/edit"); }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_EXPENSE_CATEGORY, $model->user_id]); - } + }, ], ]; } - } diff --git a/app/Ninja/Datatables/ExpenseDatatable.php b/app/Ninja/Datatables/ExpenseDatatable.php index a818eb0b79d8..1073bef63017 100644 --- a/app/Ninja/Datatables/ExpenseDatatable.php +++ b/app/Ninja/Datatables/ExpenseDatatable.php @@ -1,9 +1,11 @@ -vendor_public_id) { - if(!Auth::user()->can('viewByOwner', [ENTITY_VENDOR, $model->vendor_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_VENDOR, $model->vendor_user_id])) { return $model->vendor_name; } @@ -27,14 +28,13 @@ class ExpenseDatatable extends EntityDatatable return ''; } }, - ! $this->hideClient + ! $this->hideClient, ], [ 'client_name', - function ($model) - { + function ($model) { if ($model->client_public_id) { - if(!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } @@ -43,17 +43,17 @@ class ExpenseDatatable extends EntityDatatable return ''; } }, - ! $this->hideClient + ! $this->hideClient, ], [ 'expense_date', function ($model) { - if(!Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])) { return Utils::fromSqlDate($model->expense_date); } return link_to("expenses/{$model->public_id}/edit", Utils::fromSqlDate($model->expense_date))->toHtml(); - } + }, ], [ 'amount', @@ -68,25 +68,25 @@ class ExpenseDatatable extends EntityDatatable } return $str; - } + }, ], [ 'category', function ($model) { return $model->category != null ? substr($model->category, 0, 100) : ''; - } + }, ], [ 'public_notes', function ($model) { return $model->public_notes != null ? substr($model->public_notes, 0, 100) : ''; - } + }, ], [ 'status', function ($model) { return self::getStatusLabel($model->invoice_id, $model->should_be_invoiced, $model->balance); - } + }, ], ]; } @@ -97,11 +97,11 @@ class ExpenseDatatable extends EntityDatatable [ trans('texts.edit_expense'), function ($model) { - return URL::to("expenses/{$model->public_id}/edit") ; + return URL::to("expenses/{$model->public_id}/edit"); }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_EXPENSE, $model->user_id]); - } + }, ], [ trans('texts.view_invoice'), @@ -110,7 +110,7 @@ class ExpenseDatatable extends EntityDatatable }, function ($model) { return $model->invoice_public_id && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->invoice_user_id]); - } + }, ], [ trans('texts.invoice_expense'), @@ -118,8 +118,8 @@ class ExpenseDatatable extends EntityDatatable return "javascript:submitForm_expense('invoice', {$model->public_id})"; }, function ($model) { - return ! $model->invoice_id && (!$model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); - } + return ! $model->invoice_id && (! $model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); + }, ], ]; } @@ -131,5 +131,4 @@ class ExpenseDatatable extends EntityDatatable return "

$label

"; } - } diff --git a/app/Ninja/Datatables/InvoiceDatatable.php b/app/Ninja/Datatables/InvoiceDatatable.php index 4d1c75b7df3b..655b924c3b8e 100644 --- a/app/Ninja/Datatables/InvoiceDatatable.php +++ b/app/Ninja/Datatables/InvoiceDatatable.php @@ -1,9 +1,11 @@ -can('viewByOwner', [ENTITY_INVOICE, $model->user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_INVOICE, $model->user_id])) { return $model->invoice_number; } return link_to("{$entityType}s/{$model->public_id}/edit", $model->invoice_number, ['class' => Utils::getEntityRowClass($model)])->toHtml(); - } + }, ], [ 'client_name', function ($model) { - if(!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } + return link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml(); }, - ! $this->hideClient + ! $this->hideClient, ], [ 'date', function ($model) { return Utils::fromSqlDate($model->date); - } + }, ], [ 'amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); - } + }, ], [ 'balance', @@ -53,11 +56,11 @@ class InvoiceDatatable extends EntityDatatable return $model->partial > 0 ? trans('texts.partial_remaining', [ 'partial' => Utils::formatMoney($model->partial, $model->currency_id, $model->country_id), - 'balance' => Utils::formatMoney($model->balance, $model->currency_id, $model->country_id)] + 'balance' => Utils::formatMoney($model->balance, $model->currency_id, $model->country_id), ] ) : Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); }, - $entityType == ENTITY_INVOICE + $entityType == ENTITY_INVOICE, ], [ $entityType == ENTITY_INVOICE ? 'due_date' : 'valid_until', @@ -69,8 +72,8 @@ class InvoiceDatatable extends EntityDatatable 'status', function ($model) use ($entityType) { return $model->quote_invoice_id ? link_to("invoices/{$model->quote_invoice_id}/edit", trans('texts.converted'))->toHtml() : self::getStatusLabel($model); - } - ] + }, + ], ]; } @@ -86,7 +89,7 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ trans("texts.clone_{$entityType}"), @@ -95,19 +98,21 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_INVOICE); - } + }, ], [ trans('texts.view_history'), function ($model) use ($entityType) { return URL::to("{$entityType}s/{$entityType}_history/{$model->public_id}"); - } + }, ], [ - '--divider--', function(){return false;}, + '--divider--', function () { + return false; + }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]) || Auth::user()->can('create', ENTITY_PAYMENT); - } + }, ], [ trans('texts.mark_sent'), @@ -116,7 +121,7 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) { return $model->invoice_status_id < INVOICE_STATUS_SENT && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ trans('texts.mark_paid'), @@ -125,7 +130,7 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) use ($entityType) { return $entityType == ENTITY_INVOICE && $model->balance > 0 && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ trans('texts.enter_payment'), @@ -133,8 +138,8 @@ class InvoiceDatatable extends EntityDatatable return URL::to("payments/create/{$model->client_public_id}/{$model->public_id}"); }, function ($model) use ($entityType) { - return $model->is_public && $entityType == ENTITY_INVOICE && $model->balance > 0 && Auth::user()->can('create', ENTITY_PAYMENT); - } + return $entityType == ENTITY_INVOICE && $model->balance > 0 && Auth::user()->can('create', ENTITY_PAYMENT); + }, ], [ trans('texts.view_quote'), @@ -143,7 +148,7 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) use ($entityType) { return $entityType == ENTITY_INVOICE && $model->quote_id && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ trans('texts.view_invoice'), @@ -152,7 +157,7 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) use ($entityType) { return $entityType == ENTITY_QUOTE && $model->quote_invoice_id && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ trans('texts.convert_to_invoice'), @@ -161,8 +166,8 @@ class InvoiceDatatable extends EntityDatatable }, function ($model) use ($entityType) { return $entityType == ENTITY_QUOTE && ! $model->quote_invoice_id && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } - ] + }, + ], ]; } diff --git a/app/Ninja/Datatables/PaymentDatatable.php b/app/Ninja/Datatables/PaymentDatatable.php index ac24ed1dd3eb..f536b454ef41 100644 --- a/app/Ninja/Datatables/PaymentDatatable.php +++ b/app/Ninja/Datatables/PaymentDatatable.php @@ -1,10 +1,12 @@ -can('viewByOwner', [ENTITY_INVOICE, $model->invoice_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_INVOICE, $model->invoice_user_id])) { return $model->invoice_number; } return link_to("invoices/{$model->invoice_public_id}/edit", $model->invoice_number, ['class' => Utils::getEntityRowClass($model)])->toHtml(); - } + }, ], [ 'client_name', function ($model) { - if(!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } return $model->client_public_id ? link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml() : ''; }, - ! $this->hideClient + ! $this->hideClient, ], [ 'transaction_reference', function ($model) { return $model->transaction_reference ? $model->transaction_reference : ''.trans('texts.manual_entry').''; - } + }, ], [ 'method', function ($model) { - return ($model->payment_type && !$model->last4) ? $model->payment_type : ($model->account_gateway_id ? $model->gateway_name : ''); - } + return ($model->payment_type && ! $model->last4) ? $model->payment_type : ($model->account_gateway_id ? $model->gateway_name : ''); + }, ], [ 'source', @@ -59,34 +61,35 @@ class PaymentDatatable extends EntityDatatable $code = str_replace(' ', '', strtolower($model->payment_type)); $card_type = trans('texts.card_' . $code); if ($model->payment_type_id != PAYMENT_TYPE_ACH) { - if($model->last4) { + if ($model->last4) { $expiration = Utils::fromSqlDate($model->expiration, false)->format('m/y'); + return '' . htmlentities($card_type) . '  •••' . $model->last4 . ' ' . $expiration; } elseif ($model->email) { return $model->email; } } elseif ($model->last4) { - if($model->bank_name) { + if ($model->bank_name) { $bankName = $model->bank_name; } else { $bankData = PaymentMethod::lookupBankData($model->routing_number); - if($bankData) { + if ($bankData) { $bankName = $bankData->name; } } - if (!empty($bankName)) { + if (! empty($bankName)) { return $bankName.'  •••' . $model->last4; - } elseif($model->last4) { + } elseif ($model->last4) { return '' . htmlentities($card_type) . '  •••' . $model->last4; } } - } + }, ], [ 'amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); - } + }, ], [ 'payment_date', @@ -96,18 +99,17 @@ class PaymentDatatable extends EntityDatatable } else { return link_to("payments/{$model->public_id}/edit", Utils::dateToString($model->payment_date))->toHtml(); } - } + }, ], [ 'status', function ($model) { return self::getStatusLabel($model); - } - ] + }, + ], ]; } - public function actions() { return [ @@ -118,22 +120,23 @@ class PaymentDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_PAYMENT, $model->user_id]); - } + }, ], [ trans('texts.refund_payment'), function ($model) { $max_refund = number_format($model->amount - $model->refunded, 2); $formatted = Utils::formatMoney($max_refund, $model->currency_id, $model->country_id); - $symbol = Utils::getFromCache($model->currency_id ? $model->currency_id : 1, 'currencies')->symbol ; + $symbol = Utils::getFromCache($model->currency_id ? $model->currency_id : 1, 'currencies')->symbol; + return "javascript:showRefundModal({$model->public_id}, '{$max_refund}', '{$formatted}', '{$symbol}')"; }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_PAYMENT, $model->user_id]) && $model->payment_status_id >= PAYMENT_STATUS_COMPLETED && $model->refunded < $model->amount; - } - ] + }, + ], ]; } diff --git a/app/Ninja/Datatables/PaymentTermDatatable.php b/app/Ninja/Datatables/PaymentTermDatatable.php new file mode 100644 index 000000000000..d250f2f09424 --- /dev/null +++ b/app/Ninja/Datatables/PaymentTermDatatable.php @@ -0,0 +1,37 @@ +public_id}/edit", trans('texts.payment_terms_net') . ' ' . ($model->num_days == -1 ? 0 : $model->num_days))->toHtml(); + }, + ], + ]; + } + + public function actions() + { + return [ + [ + trans('texts.edit_payment_term'), + function ($model) { + return URL::to("payment_terms/{$model->public_id}/edit"); + }, + ], + ]; + } +} diff --git a/app/Ninja/Datatables/ProductDatatable.php b/app/Ninja/Datatables/ProductDatatable.php index bf57064f1ad4..467efedbc347 100644 --- a/app/Ninja/Datatables/ProductDatatable.php +++ b/app/Ninja/Datatables/ProductDatatable.php @@ -1,9 +1,11 @@ -public_id.'/edit', $model->product_key)->toHtml(); - } + }, ], [ 'notes', function ($model) { return nl2br(Str::limit($model->notes, 100)); - } + }, ], [ 'cost', function ($model) { return Utils::formatMoney($model->cost); - } + }, ], [ 'tax_rate', function ($model) { return $model->tax_rate ? ($model->tax_name . ' ' . $model->tax_rate . '%') : ''; }, - Auth::user()->account->invoice_item_taxes - ] + Auth::user()->account->invoice_item_taxes, + ], ]; } @@ -48,9 +50,8 @@ class ProductDatatable extends EntityDatatable uctrans('texts.edit_product'), function ($model) { return URL::to("products/{$model->public_id}/edit"); - } - ] + }, + ], ]; } - } diff --git a/app/Ninja/Datatables/ProjectDatatable.php b/app/Ninja/Datatables/ProjectDatatable.php index 15b8fc617875..2235481ad83e 100644 --- a/app/Ninja/Datatables/ProjectDatatable.php +++ b/app/Ninja/Datatables/ProjectDatatable.php @@ -1,8 +1,10 @@ -can('editByOwner', [ENTITY_PROJECT, $model->user_id])) { + function ($model) { + if (! Auth::user()->can('editByOwner', [ENTITY_PROJECT, $model->user_id])) { return $model->project; } return link_to("projects/{$model->public_id}/edit", $model->project)->toHtml(); - } + }, ], [ 'client_name', - function ($model) - { + function ($model) { if ($model->client_public_id) { - if(!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } @@ -36,8 +36,8 @@ class ProjectDatatable extends EntityDatatable } else { return ''; } - } - ] + }, + ], ]; } @@ -47,13 +47,12 @@ class ProjectDatatable extends EntityDatatable [ trans('texts.edit_project'), function ($model) { - return URL::to("projects/{$model->public_id}/edit") ; + return URL::to("projects/{$model->public_id}/edit"); }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_PROJECT, $model->user_id]); - } + }, ], ]; } - } diff --git a/app/Ninja/Datatables/RecurringInvoiceDatatable.php b/app/Ninja/Datatables/RecurringInvoiceDatatable.php index 5fe1365817c7..3f0f159dfb81 100644 --- a/app/Ninja/Datatables/RecurringInvoiceDatatable.php +++ b/app/Ninja/Datatables/RecurringInvoiceDatatable.php @@ -1,8 +1,10 @@ -frequency); $frequency = preg_replace('/\s/', '_', $frequency); + return link_to("invoices/{$model->public_id}", trans('texts.freq_'.$frequency))->toHtml(); - } + }, ], [ 'client_name', function ($model) { return link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml(); }, - ! $this->hideClient + ! $this->hideClient, ], [ 'start_date', function ($model) { return Utils::fromSqlDate($model->start_date); - } + }, ], [ 'last_sent', function ($model) { return Utils::fromSqlDate($model->last_sent_date); - } + }, ], [ 'end_date', function ($model) { return Utils::fromSqlDate($model->end_date); - } + }, ], [ 'amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); - } - ] + }, + ], ]; } @@ -63,19 +66,18 @@ class RecurringInvoiceDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); - } + }, ], [ - trans("texts.clone_invoice"), + trans('texts.clone_invoice'), function ($model) { return URL::to("invoices/{$model->public_id}/clone"); }, function ($model) { return Auth::user()->can('create', ENTITY_INVOICE); - } + }, ], ]; } - } diff --git a/app/Ninja/Datatables/TaskDatatable.php b/app/Ninja/Datatables/TaskDatatable.php index bae69b85524a..5f7ea1d8ee89 100644 --- a/app/Ninja/Datatables/TaskDatatable.php +++ b/app/Ninja/Datatables/TaskDatatable.php @@ -1,9 +1,11 @@ -can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } return $model->client_public_id ? link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml() : ''; }, - ! $this->hideClient + ! $this->hideClient, ], [ 'project', function ($model) { - if(!Auth::user()->can('editByOwner', [ENTITY_PROJECT, $model->project_user_id])){ + if (! Auth::user()->can('editByOwner', [ENTITY_PROJECT, $model->project_user_id])) { return $model->project; } return $model->project_public_id ? link_to("projects/{$model->project_public_id}/edit", $model->project)->toHtml() : ''; - } + }, ], [ 'date', function ($model) { - if(!Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])){ + if (! Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])) { return Task::calcStartTime($model); } + return link_to("tasks/{$model->public_id}/edit", Task::calcStartTime($model))->toHtml(); - } + }, ], [ 'duration', - function($model) { + function ($model) { return Utils::formatTime(Task::calcDuration($model)); - } + }, ], [ 'description', function ($model) { return $model->description; - } + }, ], [ 'status', function ($model) { return self::getStatusLabel($model); - } - ] + }, + ], ]; } @@ -73,8 +76,8 @@ class TaskDatatable extends EntityDatatable return URL::to('tasks/'.$model->public_id.'/edit'); }, function ($model) { - return (!$model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('editByOwner', [ENTITY_TASK, $model->user_id]); - } + return (! $model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('editByOwner', [ENTITY_TASK, $model->user_id]); + }, ], [ trans('texts.view_invoice'), @@ -83,7 +86,7 @@ class TaskDatatable extends EntityDatatable }, function ($model) { return $model->invoice_number && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->invoice_user_id]); - } + }, ], [ trans('texts.stop_task'), @@ -92,7 +95,7 @@ class TaskDatatable extends EntityDatatable }, function ($model) { return $model->is_running && Auth::user()->can('editByOwner', [ENTITY_TASK, $model->user_id]); - } + }, ], [ trans('texts.invoice_task'), @@ -100,9 +103,9 @@ class TaskDatatable extends EntityDatatable return "javascript:submitForm_task('invoice', {$model->public_id})"; }, function ($model) { - return ! $model->invoice_number && (!$model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); - } - ] + return ! $model->invoice_number && (! $model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); + }, + ], ]; } @@ -113,6 +116,4 @@ class TaskDatatable extends EntityDatatable return "

$label

"; } - - } diff --git a/app/Ninja/Datatables/TaxRateDatatable.php b/app/Ninja/Datatables/TaxRateDatatable.php index 4cc763d87ea4..fb20386e2e71 100644 --- a/app/Ninja/Datatables/TaxRateDatatable.php +++ b/app/Ninja/Datatables/TaxRateDatatable.php @@ -1,4 +1,6 @@ -public_id}/edit", $model->name)->toHtml(); - } + }, ], [ 'rate', function ($model) { return $model->rate . '%'; - } + }, ], [ 'type', function ($model) { return $model->is_inclusive ? trans('texts.inclusive') : trans('texts.exclusive'); - } - ] + }, + ], ]; } @@ -37,9 +39,8 @@ class TaxRateDatatable extends EntityDatatable uctrans('texts.edit_tax_rate'), function ($model) { return URL::to("tax_rates/{$model->public_id}/edit"); - } - ] + }, + ], ]; } - } diff --git a/app/Ninja/Datatables/TokenDatatable.php b/app/Ninja/Datatables/TokenDatatable.php index 7fb77ebc9655..31596bf0c31a 100644 --- a/app/Ninja/Datatables/TokenDatatable.php +++ b/app/Ninja/Datatables/TokenDatatable.php @@ -1,4 +1,6 @@ -public_id}/edit", $model->name)->toHtml(); - } + }, ], [ 'token', function ($model) { return $model->token; - } - ] + }, + ], ]; } @@ -31,9 +33,8 @@ class TokenDatatable extends EntityDatatable uctrans('texts.edit_token'), function ($model) { return URL::to("tokens/{$model->public_id}/edit"); - } - ] + }, + ], ]; } - } diff --git a/app/Ninja/Datatables/UserDatatable.php b/app/Ninja/Datatables/UserDatatable.php index 2bf4f7a1cc6c..ecc47039b9a1 100644 --- a/app/Ninja/Datatables/UserDatatable.php +++ b/app/Ninja/Datatables/UserDatatable.php @@ -1,4 +1,6 @@ -public_id ? link_to('users/'.$model->public_id.'/edit', $model->first_name.' '.$model->last_name)->toHtml() : ($model->first_name.' '.$model->last_name); - } + }, ], [ 'email', function ($model) { return $model->email; - } + }, ], [ 'confirmed', function ($model) { - if (!$model->public_id) { + if (! $model->public_id) { return self::getStatusLabel(USER_STATE_OWNER); } elseif ($model->deleted_at) { return self::getStatusLabel(USER_STATE_DISABLED); } elseif ($model->confirmed) { - if($model->is_admin){ + if ($model->is_admin) { return self::getStatusLabel(USER_STATE_ADMIN); } else { return self::getStatusLabel(USER_STATE_ACTIVE); @@ -37,7 +39,7 @@ class UserDatatable extends EntityDatatable } else { return self::getStatusLabel(USER_STATE_PENDING); } - } + }, ], ]; } @@ -52,7 +54,7 @@ class UserDatatable extends EntityDatatable }, function ($model) { return $model->public_id; - } + }, ], [ uctrans('texts.send_invite'), @@ -61,8 +63,8 @@ class UserDatatable extends EntityDatatable }, function ($model) { return $model->public_id && ! $model->confirmed; - } - ] + }, + ], ]; } @@ -87,8 +89,7 @@ class UserDatatable extends EntityDatatable $class = 'primary'; break; } + return "

$label

"; } - - } diff --git a/app/Ninja/Datatables/VendorDatatable.php b/app/Ninja/Datatables/VendorDatatable.php index 8898f922cc46..98ba3c66febd 100644 --- a/app/Ninja/Datatables/VendorDatatable.php +++ b/app/Ninja/Datatables/VendorDatatable.php @@ -1,8 +1,10 @@ -public_id}", $model->name ?: '')->toHtml(); - } + }, ], [ 'city', function ($model) { return $model->city; - } + }, ], [ 'work_phone', function ($model) { return $model->work_phone; - } + }, ], [ 'email', function ($model) { return link_to("vendors/{$model->public_id}", $model->email ?: '')->toHtml(); - } + }, ], [ 'date', function ($model) { return Utils::timestampToDateString(strtotime($model->created_at)); - } + }, ], ]; } @@ -55,13 +57,15 @@ class VendorDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_VENDOR, $model->user_id]); - } + }, ], [ - '--divider--', function(){return false;}, + '--divider--', function () { + return false; + }, function ($model) { return Auth::user()->can('editByOwner', [ENTITY_VENDOR, $model->user_id]) && Auth::user()->can('create', ENTITY_EXPENSE); - } + }, ], [ @@ -71,10 +75,8 @@ class VendorDatatable extends EntityDatatable }, function ($model) { return Auth::user()->can('create', ENTITY_EXPENSE); - } - ] + }, + ], ]; } - - } diff --git a/app/Ninja/Import/BaseTransformer.php b/app/Ninja/Import/BaseTransformer.php index df9058a855e0..0d672a0c2dd8 100644 --- a/app/Ninja/Import/BaseTransformer.php +++ b/app/Ninja/Import/BaseTransformer.php @@ -1,12 +1,13 @@ -maps[ENTITY_CLIENT][$name]); } /** * @param $key + * * @return bool */ public function hasProduct($key) { $key = trim(strtolower($key)); + return isset($this->maps[ENTITY_PRODUCT][$key]); } /** * @param $data * @param $field + * * @return string */ public function getString($data, $field) @@ -57,6 +64,7 @@ class BaseTransformer extends TransformerAbstract /** * @param $data * @param $field + * * @return int */ public function getNumber($data, $field) @@ -67,6 +75,7 @@ class BaseTransformer extends TransformerAbstract /** * @param $data * @param $field + * * @return float */ public function getFloat($data, $field) @@ -76,57 +85,70 @@ class BaseTransformer extends TransformerAbstract /** * @param $name + * * @return null */ public function getClientId($name) { $name = strtolower(trim($name)); + return isset($this->maps[ENTITY_CLIENT][$name]) ? $this->maps[ENTITY_CLIENT][$name] : null; } /** * @param $name + * * @return null */ public function getProductId($name) { $name = strtolower(trim($name)); + return isset($this->maps[ENTITY_PRODUCT][$name]) ? $this->maps[ENTITY_PRODUCT][$name] : null; } /** * @param $name + * * @return null */ public function getCountryId($name) { $name = strtolower(trim($name)); + return isset($this->maps['countries'][$name]) ? $this->maps['countries'][$name] : null; } /** * @param $name + * * @return null */ public function getCountryIdBy2($name) { $name = strtolower(trim($name)); + return isset($this->maps['countries2'][$name]) ? $this->maps['countries2'][$name] : null; } /** * @param $name + * * @return mixed */ public function getFirstName($name) { $name = Utils::splitName($name); + return $name[0]; } /** * @param $date * @param string $format + * @param mixed $data + * @param mixed $field + * * @return null */ public function getDate($data, $field) @@ -144,16 +166,19 @@ class BaseTransformer extends TransformerAbstract /** * @param $name + * * @return mixed */ public function getLastName($name) { $name = Utils::splitName($name); + return $name[1]; } /** * @param $number + * * @return string */ public function getInvoiceNumber($number) @@ -163,57 +188,64 @@ class BaseTransformer extends TransformerAbstract /** * @param $invoiceNumber + * * @return null */ public function getInvoiceId($invoiceNumber) { $invoiceNumber = $this->getInvoiceNumber($invoiceNumber); $invoiceNumber = strtolower($invoiceNumber); + return isset($this->maps[ENTITY_INVOICE][$invoiceNumber]) ? $this->maps[ENTITY_INVOICE][$invoiceNumber] : null; } /** * @param $invoiceNumber + * * @return bool */ public function hasInvoice($invoiceNumber) { $invoiceNumber = $this->getInvoiceNumber($invoiceNumber); $invoiceNumber = strtolower($invoiceNumber); + return isset($this->maps[ENTITY_INVOICE][$invoiceNumber]); } /** * @param $invoiceNumber + * * @return null */ public function getInvoiceClientId($invoiceNumber) { $invoiceNumber = $this->getInvoiceNumber($invoiceNumber); $invoiceNumber = strtolower($invoiceNumber); - return isset($this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber])? $this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber] : null; - } + return isset($this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber]) ? $this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber] : null; + } /** * @param $name + * * @return null */ public function getVendorId($name) { $name = strtolower(trim($name)); + return isset($this->maps[ENTITY_VENDOR][$name]) ? $this->maps[ENTITY_VENDOR][$name] : null; } - /** * @param $name + * * @return null */ public function getExpenseCategoryId($name) { $name = strtolower(trim($name)); + return isset($this->maps[ENTITY_EXPENSE_CATEGORY][$name]) ? $this->maps[ENTITY_EXPENSE_CATEGORY][$name] : null; } - } diff --git a/app/Ninja/Import/CSV/ClientTransformer.php b/app/Ninja/Import/CSV/ClientTransformer.php index b8d509ad74a9..b53a714530af 100644 --- a/app/Ninja/Import/CSV/ClientTransformer.php +++ b/app/Ninja/Import/CSV/ClientTransformer.php @@ -1,15 +1,18 @@ - $this->getString($data, 'notes'), 'website' => $this->getString($data, 'website'), 'vat_number' => $this->getString($data, 'vat_number'), + 'id_number' => $this->getString($data, 'id_number'), 'contacts' => [ [ 'first_name' => $this->getString($data, 'first_name'), diff --git a/app/Ninja/Import/CSV/ExpenseTransformer.php b/app/Ninja/Import/CSV/ExpenseTransformer.php index 4b8a4cef64ff..b64ade053cb2 100644 --- a/app/Ninja/Import/CSV/ExpenseTransformer.php +++ b/app/Ninja/Import/CSV/ExpenseTransformer.php @@ -1,16 +1,18 @@ -getClientId($data->name)) { + if (! $this->getClientId($data->name)) { return false; } @@ -38,7 +41,7 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'notes'), 'cost' => $this->getFloat($data, 'amount'), 'qty' => 1, - ] + ], ], ]; }); diff --git a/app/Ninja/Import/CSV/PaymentTransformer.php b/app/Ninja/Import/CSV/PaymentTransformer.php index e06677fcb3ea..46247f8fd068 100644 --- a/app/Ninja/Import/CSV/PaymentTransformer.php +++ b/app/Ninja/Import/CSV/PaymentTransformer.php @@ -1,15 +1,18 @@ -getClientId($data->organization)) { + if (! $this->getClientId($data->organization)) { return false; } @@ -36,9 +39,9 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'notes'), 'cost' => (float) $data->amount, 'qty' => 1, - ] + ], ], ]; }); } -} \ No newline at end of file +} diff --git a/app/Ninja/Import/FreshBooks/PaymentTransformer.php b/app/Ninja/Import/FreshBooks/PaymentTransformer.php index 3cd829f1ea9c..06cc603d3b91 100644 --- a/app/Ninja/Import/FreshBooks/PaymentTransformer.php +++ b/app/Ninja/Import/FreshBooks/PaymentTransformer.php @@ -1,15 +1,18 @@ -hasClient($data->client)) { + if (! $this->hasClient($data->client)) { return false; } diff --git a/app/Ninja/Import/Harvest/InvoiceTransformer.php b/app/Ninja/Import/Harvest/InvoiceTransformer.php index d6b2f619b0b9..62644af32571 100644 --- a/app/Ninja/Import/Harvest/InvoiceTransformer.php +++ b/app/Ninja/Import/Harvest/InvoiceTransformer.php @@ -1,20 +1,23 @@ -getClientId($data->client)) { + if (! $this->getClientId($data->client)) { return false; } @@ -35,7 +38,7 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'subject'), 'cost' => (float) $data->invoice_amount, 'qty' => 1, - ] + ], ], ]; }); diff --git a/app/Ninja/Import/Harvest/PaymentTransformer.php b/app/Ninja/Import/Harvest/PaymentTransformer.php index 3391b9ace16e..e72758d0d941 100644 --- a/app/Ninja/Import/Harvest/PaymentTransformer.php +++ b/app/Ninja/Import/Harvest/PaymentTransformer.php @@ -1,15 +1,18 @@ -hasVendor($data->vendor)) { + if (! $this->hasVendor($data->vendor)) { return false; } diff --git a/app/Ninja/Import/Harvest/VendorTransformer.php b/app/Ninja/Import/Harvest/VendorTransformer.php index 0bc3ab12cd00..13eabb768c8d 100644 --- a/app/Ninja/Import/Harvest/VendorTransformer.php +++ b/app/Ninja/Import/Harvest/VendorTransformer.php @@ -1,16 +1,19 @@ -getClientId($data->client)) { + if (! $this->getClientId($data->client)) { return false; } @@ -35,7 +38,7 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'summary'), 'cost' => (float) $data->billed_total, 'qty' => 1, - ] + ], ], ]; }); diff --git a/app/Ninja/Import/Hiveage/PaymentTransformer.php b/app/Ninja/Import/Hiveage/PaymentTransformer.php index 2057c32a94fc..c73691d97faa 100644 --- a/app/Ninja/Import/Hiveage/PaymentTransformer.php +++ b/app/Ninja/Import/Hiveage/PaymentTransformer.php @@ -1,15 +1,18 @@ -getClientId($data->client_name)) { + if (! $this->getClientId($data->client_name)) { return false; } @@ -37,9 +40,9 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'description'), 'cost' => (float) $data->total, 'qty' => 1, - ] + ], ], ]; }); } -} \ No newline at end of file +} diff --git a/app/Ninja/Import/Invoiceable/PaymentTransformer.php b/app/Ninja/Import/Invoiceable/PaymentTransformer.php index 6ad823f0370f..d11fef9dfaf3 100644 --- a/app/Ninja/Import/Invoiceable/PaymentTransformer.php +++ b/app/Ninja/Import/Invoiceable/PaymentTransformer.php @@ -1,15 +1,18 @@ -getClientId($data->client)) { + if (! $this->getClientId($data->client)) { return false; } @@ -38,7 +41,7 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'description'), 'cost' => (float) $data->total, 'qty' => 1, - ] + ], ], ]; }); diff --git a/app/Ninja/Import/Nutcache/PaymentTransformer.php b/app/Ninja/Import/Nutcache/PaymentTransformer.php index cd7737d44073..23a53e4b021d 100644 --- a/app/Ninja/Import/Nutcache/PaymentTransformer.php +++ b/app/Ninja/Import/Nutcache/PaymentTransformer.php @@ -1,15 +1,18 @@ -getClientId($data->client)) { + if (! $this->getClientId($data->client)) { return false; } @@ -36,9 +39,9 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'line_item'), 'cost' => (float) $data->total, 'qty' => 1, - ] + ], ], ]; }); } -} \ No newline at end of file +} diff --git a/app/Ninja/Import/Ronin/PaymentTransformer.php b/app/Ninja/Import/Ronin/PaymentTransformer.php index b8f7cf0562fa..3c6f8c791c86 100644 --- a/app/Ninja/Import/Ronin/PaymentTransformer.php +++ b/app/Ninja/Import/Ronin/PaymentTransformer.php @@ -1,15 +1,18 @@ -getClientId($data->customer)) { + if (! $this->getClientId($data->customer)) { return false; } @@ -36,7 +39,7 @@ class InvoiceTransformer extends BaseTransformer 'notes' => $this->getString($data, 'description'), 'cost' => (float) $data->amount, 'qty' => (float) $data->quantity, - ] + ], ], ]; }); diff --git a/app/Ninja/Import/Wave/PaymentTransformer.php b/app/Ninja/Import/Wave/PaymentTransformer.php index d08225b8e3c4..95ece47c7c2c 100644 --- a/app/Ninja/Import/Wave/PaymentTransformer.php +++ b/app/Ninja/Import/Wave/PaymentTransformer.php @@ -1,20 +1,23 @@ -getInvoiceClientId($data->invoice_num)) { + if (! $this->getInvoiceClientId($data->invoice_num)) { return false; } diff --git a/app/Ninja/Import/Wave/VendorTransformer.php b/app/Ninja/Import/Wave/VendorTransformer.php index a63a12407e59..1ae77926807b 100644 --- a/app/Ninja/Import/Wave/VendorTransformer.php +++ b/app/Ninja/Import/Wave/VendorTransformer.php @@ -1,16 +1,19 @@ -getClientId($data->customer_name)) { + if (! $this->getClientId($data->customer_name)) { return false; } @@ -42,7 +45,7 @@ class InvoiceTransformer extends BaseTransformer 'tax_rate1' => (float) $data->item_tax1, 'tax_name2' => (float) $data->item_tax2 ? trans('texts.tax') : '', 'tax_rate2' => (float) $data->item_tax2, - ] + ], ], ]; diff --git a/app/Ninja/Import/Zoho/PaymentTransformer.php b/app/Ninja/Import/Zoho/PaymentTransformer.php index c9684bebb455..8fb914b4afcf 100644 --- a/app/Ninja/Import/Zoho/PaymentTransformer.php +++ b/app/Ninja/Import/Zoho/PaymentTransformer.php @@ -1,15 +1,18 @@ -$reference = new stdClass; + $state->$reference = new stdClass(); $state->$reference->entityType = false; foreach ([ENTITY_INVOICE, ENTITY_CLIENT, ENTITY_INVOICE_ITEM] as $entityType) { $state->$reference->$entityType = []; @@ -33,7 +34,7 @@ class BaseIntent public static function createIntent($state, $data) { - if ( ! count($data->intents)) { + if (! count($data->intents)) { throw new Exception(trans('texts.intent_not_found')); } @@ -47,7 +48,7 @@ class BaseIntent } } - if ( ! $entityType) { + if (! $entityType) { $entityType = $state->current->entityType; } @@ -57,14 +58,13 @@ class BaseIntent //echo "Intent: $intent

"; - if ( ! class_exists($className)) { + if (! class_exists($className)) { throw new Exception(trans('texts.intent_not_supported')); } - return (new $className($state, $data)); + return new $className($state, $data); } - public function process() { throw new Exception(trans('texts.intent_not_supported')); @@ -72,7 +72,7 @@ class BaseIntent public function setStateEntities($entityType, $entities) { - if ( ! is_array($entities)) { + if (! is_array($entities)) { $entities = [$entities]; } @@ -116,7 +116,6 @@ class BaseIntent return $this->state->current->entityType; } - public function getState() { return $this->state; @@ -140,7 +139,7 @@ class BaseIntent { $data = []; - if ( ! isset($this->data->compositeEntities)) { + if (! isset($this->data->compositeEntities)) { return []; } @@ -154,7 +153,8 @@ class BaseIntent foreach ($compositeEntity->children as $child) { if ($child->type == 'Field') { - $field = $child->value;; + $field = $child->value; + ; } elseif ($child->type == 'Value') { $value = $child->value; } @@ -213,7 +213,7 @@ class BaseIntent } else { if ($content instanceof \Illuminate\Database\Eloquent\Collection) { // do nothing - } elseif ( ! is_array($content)) { + } elseif (! is_array($content)) { $content = [$content]; } diff --git a/app/Ninja/Intents/CreateInvoiceIntent.php b/app/Ninja/Intents/CreateInvoiceIntent.php index 96a1b9d64d0a..915bfae0883e 100644 --- a/app/Ninja/Intents/CreateInvoiceIntent.php +++ b/app/Ninja/Intents/CreateInvoiceIntent.php @@ -1,7 +1,9 @@ -requestClient(); $invoiceItems = $this->requestInvoiceItems(); - if ( ! $client) { + if (! $client) { throw new Exception(trans('texts.client_not_found')); } @@ -30,7 +32,7 @@ class CreateInvoiceIntent extends InvoiceIntent $invoiceService = app('App\Services\InvoiceService'); $invoice = $invoiceService->save($data); - $invoiceItemIds = array_map(function($item) { + $invoiceItemIds = array_map(function ($item) { return $item['public_id']; }, $invoice->invoice_items->toArray()); diff --git a/app/Ninja/Intents/DownloadInvoiceIntent.php b/app/Ninja/Intents/DownloadInvoiceIntent.php index 400519155ff4..48e649a37434 100644 --- a/app/Ninja/Intents/DownloadInvoiceIntent.php +++ b/app/Ninja/Intents/DownloadInvoiceIntent.php @@ -1,9 +1,9 @@ -stateInvoice(); - if ( ! Auth::user()->can('edit', $invoice)) { + if (! Auth::user()->can('edit', $invoice)) { throw new Exception(trans('texts.not_allowed')); } diff --git a/app/Ninja/Intents/InvoiceIntent.php b/app/Ninja/Intents/InvoiceIntent.php index fdba48a5609a..9421e32e0a4e 100644 --- a/app/Ninja/Intents/InvoiceIntent.php +++ b/app/Ninja/Intents/InvoiceIntent.php @@ -1,8 +1,10 @@ -stateEntity(ENTITY_INVOICE); - if ( ! $invoiceId) { + if (! $invoiceId) { throw new Exception(trans('texts.intent_not_supported')); } $invoice = Invoice::scope($invoiceId)->first(); - if ( ! $invoice) { + if (! $invoice) { throw new Exception(trans('texts.intent_not_supported')); } - if ( ! Auth::user()->can('view', $invoice)) { + if (! Auth::user()->can('view', $invoice)) { throw new Exception(trans('texts.not_allowed')); } @@ -46,7 +48,7 @@ class InvoiceIntent extends BaseIntent $invoiceItems = []; $offset = 0; - if ( ! isset($this->data->compositeEntities) || ! count($this->data->compositeEntities)) { + if (! isset($this->data->compositeEntities) || ! count($this->data->compositeEntities)) { return []; } @@ -102,5 +104,4 @@ class InvoiceIntent extends BaseIntent return $invoiceItems; } - } diff --git a/app/Ninja/Intents/ListProductsIntent.php b/app/Ninja/Intents/ListProductsIntent.php index fc8c17490be6..5216708519fe 100644 --- a/app/Ninja/Intents/ListProductsIntent.php +++ b/app/Ninja/Intents/ListProductsIntent.php @@ -1,9 +1,9 @@ -orderBy('product_key') ->limit(5) ->get() - ->transform(function($item, $key) use ($account) { + ->transform(function ($item, $key) use ($account) { $card = $item->present()->skypeBot($account); if ($this->stateEntity(ENTITY_INVOICE)) { $card->addButton('imBack', trans('texts.add_to_invoice', ['invoice' => '']), trans('texts.add_product_to_invoice', ['product' => $item->product_key])); } + return $card; }); diff --git a/app/Ninja/Intents/ProductIntent.php b/app/Ninja/Intents/ProductIntent.php index bf8b72405b6a..cc7a9ff316ed 100644 --- a/app/Ninja/Intents/ProductIntent.php +++ b/app/Ninja/Intents/ProductIntent.php @@ -1,8 +1,6 @@ -invoiceRepo->save($data, $invoice); $invoiceItems = array_slice($invoice->invoice_items->toArray(), count($invoiceItems) * -1); - $invoiceItemIds = array_map(function($item) { + $invoiceItemIds = array_map(function ($item) { return $item['public_id']; }, $invoiceItems); diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index 2512f94af787..12939f5ecce8 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -1,42 +1,19 @@ -is_recurring) { return false; @@ -78,12 +57,12 @@ class ContactMailer extends Mailer } $account->loadLocalizationSettings($client); - $emailTemplate = $account->getEmailTemplate($reminder ?: $entityType); - $emailSubject = $account->getEmailSubject($reminder ?: $entityType); + $emailTemplate = !empty($template['body']) ? $template['body'] : $account->getEmailTemplate($reminder ?: $entityType); + $emailSubject = !empty($template['subject']) ? $template['subject'] : $account->getEmailSubject($reminder ?: $entityType); $sent = false; - if ($account->attachPDF() && !$pdfString) { + if ($account->attachPDF() && ! $pdfString) { $pdfString = $invoice->getPDFString(); } @@ -91,7 +70,7 @@ class ContactMailer extends Mailer if ($account->document_email_attachment && $invoice->hasDocuments()) { $documents = $invoice->documents; - foreach($invoice->expenses as $expense){ + foreach ($invoice->expenses as $expense) { $documents = $documents->merge($expense->documents); } @@ -99,9 +78,11 @@ class ContactMailer extends Mailer $size = 0; $maxSize = MAX_EMAIL_DOCUMENTS_SIZE * 1000; - foreach($documents as $document){ + foreach ($documents as $document) { $size += $document->size; - if($size > $maxSize)break; + if ($size > $maxSize) { + break; + } $documentStrings[] = [ 'name' => $document->name, @@ -134,13 +115,16 @@ class ContactMailer extends Mailer /** * @param Invitation $invitation - * @param Invoice $invoice + * @param Invoice $invoice * @param $body * @param $subject * @param $pdfString * @param $documentStrings - * @return bool|string + * @param mixed $reminder + * * @throws \Laracasts\Presenter\Exceptions\PresenterException + * + * @return bool|string */ private function sendInvitation( Invitation $invitation, @@ -151,9 +135,7 @@ class ContactMailer extends Mailer $documentStrings, $reminder, $isFirst - ) - { - + ) { $client = $invoice->client; $account = $invoice->account; @@ -166,11 +148,11 @@ class ContactMailer extends Mailer } } - if (!$user->email || !$user->registered) { + if (! $user->email || ! $user->registered) { return trans('texts.email_error_user_unregistered'); - } elseif (!$user->confirmed) { + } elseif (! $user->confirmed) { return trans('texts.email_error_user_unconfirmed'); - } elseif (!$invitation->contact->email) { + } elseif (! $invitation->contact->email) { return trans('texts.email_error_invalid_contact_email'); } elseif ($invitation->contact->trashed()) { return trans('texts.email_error_inactive_contact'); @@ -180,7 +162,7 @@ class ContactMailer extends Mailer 'account' => $account, 'client' => $client, 'invitation' => $invitation, - 'amount' => $invoice->getRequestedAmount() + 'amount' => $invoice->getRequestedAmount(), ]; // Let the client know they'll be billed later @@ -230,6 +212,7 @@ class ContactMailer extends Mailer /** * @param int $length + * * @return string */ protected function generatePassword($length = 9) @@ -241,14 +224,14 @@ class ContactMailer extends Mailer ]; $all = ''; $password = ''; - foreach($sets as $set) - { + foreach ($sets as $set) { $password .= $set[array_rand(str_split($set))]; $all .= $set; } $all = str_split($all); - for($i = 0; $i < $length - count($sets); $i++) + for ($i = 0; $i < $length - count($sets); $i++) { $password .= $all[array_rand($all)]; + } $password = str_shuffle($password); return $password; @@ -338,10 +321,9 @@ class ContactMailer extends Mailer $data = [ 'client' => $name, 'amount' => Utils::formatMoney($amount, DEFAULT_CURRENCY, DEFAULT_COUNTRY), - 'license' => $license + 'license' => $license, ]; $this->sendTo($email, CONTACT_EMAIL, CONTACT_NAME, $subject, $view, $data); } - } diff --git a/app/Ninja/Mailers/Mailer.php b/app/Ninja/Mailers/Mailer.php index 5451653473de..5b4d34c23302 100644 --- a/app/Ninja/Mailers/Mailer.php +++ b/app/Ninja/Mailers/Mailer.php @@ -1,12 +1,14 @@ -subject($subject); // Optionally BCC the email - if (!empty($data['bccEmail'])) { + if (! empty($data['bccEmail'])) { $message->bcc($data['bccEmail']); } // Attach the PDF to the email - if (!empty($data['pdfString']) && !empty($data['pdfFileName'])) { + if (! empty($data['pdfString']) && ! empty($data['pdfFileName'])) { $message->attachData($data['pdfString'], $data['pdfFileName']); } // Attach documents to the email - if (!empty($data['documents'])){ - foreach($data['documents'] as $document){ + if (! empty($data['documents'])) { + foreach ($data['documents'] as $document) { $message->attachData($document['data'], $document['name']); } } @@ -79,6 +82,7 @@ class Mailer /** * @param $response * @param $data + * * @return bool */ private function handleSuccess($response, $data) @@ -94,7 +98,7 @@ class Mailer $messageId = $json->MessageID; } - $notes = isset($data['notes']) ? $data['notes']: false; + $notes = isset($data['notes']) ? $data['notes'] : false; $invoice->markInvitationSent($invitation, $messageId, true, $notes); } @@ -103,6 +107,7 @@ class Mailer /** * @param $exception + * * @return string */ private function handleFailure($exception) @@ -114,8 +119,11 @@ class Mailer $error = trans('texts.postmark_error', ['link' => link_to('https://status.postmarkapp.com/')]); Utils::logError($error); - // TODO throw the exception once all emails are sent using the queue - return $error; + if (config('queue.default') === 'sync') { + return $error; + } else { + throw $exception; + } } $response = $response->getBody()->getContents(); @@ -129,7 +137,7 @@ class Mailer $invitation = $data['invitation']; $invitation->email_error = $emailError; $invitation->save(); - } elseif ( ! Utils::isNinjaProd()) { + } elseif (! Utils::isNinjaProd()) { Utils::logError(Utils::getErrorString($exception)); } diff --git a/app/Ninja/Mailers/UserMailer.php b/app/Ninja/Mailers/UserMailer.php index 2508a7f93f74..c509bd66afcb 100644 --- a/app/Ninja/Mailers/UserMailer.php +++ b/app/Ninja/Mailers/UserMailer.php @@ -1,5 +1,6 @@ -email) { + if (! $user->email) { return; } @@ -38,7 +39,7 @@ class UserMailer extends Mailer } /** - * @param User $user + * @param User $user * @param Invoice $invoice * @param $notificationType * @param Payment|null $payment @@ -48,8 +49,7 @@ class UserMailer extends Mailer Invoice $invoice, $notificationType, Payment $payment = null - ) - { + ) { if (! $user->email || $user->cannot('view', $invoice)) { return; } @@ -59,6 +59,12 @@ class UserMailer extends Mailer $account = $user->account; $client = $invoice->client; + if ($account->hasMultipleAccounts()) { + $link = url(sprintf('/account/%s?redirect_to=%s', $account->account_key, $invoice->present()->path)); + } else { + $link = $invoice->present()->url; + } + $data = [ 'entityType' => $entityType, 'clientName' => $client->getDisplayName(), @@ -66,7 +72,7 @@ class UserMailer extends Mailer 'userName' => $user->getDisplayName(), 'invoiceAmount' => $account->formatMoney($invoice->getRequestedAmount(), $client), 'invoiceNumber' => $invoice->invoice_number, - 'invoiceLink' => SITE_URL."/{$entityType}s/{$invoice->public_id}", + 'invoiceLink' => $link, 'account' => $account, ]; @@ -77,7 +83,7 @@ class UserMailer extends Mailer $subject = trans("texts.notification_{$entityType}_{$notificationType}_subject", [ 'invoice' => $invoice->invoice_number, - 'client' => $client->getDisplayName() + 'client' => $client->getDisplayName(), ]); $this->sendTo($user->email, CONTACT_EMAIL, CONTACT_NAME, $subject, $view, $data); @@ -93,7 +99,7 @@ class UserMailer extends Mailer $invoice = $invitation->invoice; $entityType = $invoice->getEntityType(); - if (!$user->email) { + if (! $user->email) { return; } @@ -112,7 +118,7 @@ class UserMailer extends Mailer public function sendSecurityCode($user, $code) { - if (!$user->email) { + if (! $user->email) { return; } diff --git a/app/Ninja/Notifications/PushFactory.php b/app/Ninja/Notifications/PushFactory.php index 6e69ac80bb7a..1fa973fa5706 100644 --- a/app/Ninja/Notifications/PushFactory.php +++ b/app/Ninja/Notifications/PushFactory.php @@ -6,9 +6,8 @@ use Davibennun\LaravelPushNotification\Facades\PushNotification; use Illuminate\Support\Facades\Log; /** - * Class PushFactory + * Class PushFactory. */ - class PushFactory { /** @@ -19,11 +18,10 @@ class PushFactory } /** - * customMessage function + * customMessage function. * * Send a message with a nested custom payload to perform additional trickery within application * - * @access public * * @param $token * @param $message @@ -40,48 +38,44 @@ class PushFactory } /** - * message function + * message function. * * Send a plain text only message to a single device. * - * @access public * * @param $token - device token * @param $message - user specific message + * @param mixed $device * * @return void */ - public function message($token, $message, $device) { try { PushNotification::app($device) ->to($token) ->send($message); - } - catch(\Exception $e) { + } catch (\Exception $e) { Log::error($e->getMessage()); } - } /** - * getFeedback function + * getFeedback function. * * Returns an array of expired/invalid tokens to be removed from iOS PUSH notifications. * * We need to run this once ~ 24hrs * - * @access public * - * @param string $token - A valid token (can be any valid token) + * @param string $token - A valid token (can be any valid token) * @param string $message - Nil value for message - * @param string $device - Type of device the message is being pushed to. + * @param string $device - Type of device the message is being pushed to. + * * @return array */ - public function getFeedback($token, $message = '', $device) + public function getFeedback($token, $message, $device) { - $feedback = PushNotification::app($device) ->to($token) ->send($message); diff --git a/app/Ninja/PaymentDrivers/AuthorizeNetAIMPaymentDriver.php b/app/Ninja/PaymentDrivers/AuthorizeNetAIMPaymentDriver.php index 00ba9421ce03..9bec8c2426bb 100644 --- a/app/Ninja/PaymentDrivers/AuthorizeNetAIMPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/AuthorizeNetAIMPaymentDriver.php @@ -1,4 +1,6 @@ -accountGateway->gateway; - if ( ! $this->meetsGatewayTypeLimits($this->gatewayType)) { + if (! $this->meetsGatewayTypeLimits($this->gatewayType)) { // The customer must have hacked the URL Session::flash('error', trans('texts.limits_not_met')); + return redirect()->to('view/' . $this->invitation->invitation_key); } @@ -136,6 +139,7 @@ class BasePaymentDriver $this->completeOnsitePurchase(); if ($redirectUrl = session('redirect_url:' . $this->invitation->invitation_key)) { $separator = strpos($redirectUrl, '?') === false ? '?' : '&'; + return redirect()->to($redirectUrl . $separator . 'invoice_id=' . $this->invoice()->public_id); } else { Session::flash('message', trans('texts.applied_payment')); @@ -162,7 +166,6 @@ class BasePaymentDriver 'currencyCode' => $this->client()->getCurrencyCode(), 'account' => $this->account(), 'sourceId' => $sourceId, - 'clientFontUrl' => $this->account()->getFontsUrl(), 'tokenize' => $this->tokenize(), 'transactionToken' => $this->createTransactionToken(), ]; @@ -201,14 +204,13 @@ class BasePaymentDriver $rules = []; if ($this->isGatewayType(GATEWAY_TYPE_CREDIT_CARD)) { - $rules = array_merge($rules, [ 'first_name' => 'required', 'last_name' => 'required', ]); // TODO check this is always true - if ( ! $this->tokenize()) { + if (! $this->tokenize()) { $rules = array_merge($rules, [ 'card_number' => 'required', 'expiration_month' => 'required', @@ -254,15 +256,16 @@ class BasePaymentDriver // load or create token if ($this->isGatewayType(GATEWAY_TYPE_TOKEN)) { - if ( ! $paymentMethod) { + if (! $paymentMethod) { $paymentMethod = PaymentMethod::clientId($this->client()->id) ->wherePublicId($this->sourceId) ->firstOrFail(); } - if ( ! $this->meetsGatewayTypeLimits($paymentMethod->payment_type->gateway_type_id)) { + if (! $this->meetsGatewayTypeLimits($paymentMethod->payment_type->gateway_type_id)) { // The customer must have hacked the URL Session::flash('error', trans('texts.limits_not_met')); + return redirect()->to('view/' . $this->invitation->invitation_key); } } else { @@ -270,9 +273,10 @@ class BasePaymentDriver $paymentMethod = $this->createToken(); } - if ( ! $this->meetsGatewayTypeLimits($this->gatewayType)) { + if (! $this->meetsGatewayTypeLimits($this->gatewayType)) { // The customer must have hacked the URL Session::flash('error', trans('texts.limits_not_met')); + return redirect()->to('view/' . $this->invitation->invitation_key); } } @@ -318,17 +322,17 @@ class BasePaymentDriver private function updateClient() { - if ( ! $this->isGatewayType(GATEWAY_TYPE_CREDIT_CARD)) { + if (! $this->isGatewayType(GATEWAY_TYPE_CREDIT_CARD)) { return; } // update the contact info - if ( ! $this->contact()->getFullName()) { + if (! $this->contact()->getFullName()) { $this->contact()->first_name = $this->input['first_name']; $this->contact()->last_name = $this->input['last_name']; } - if ( ! $this->contact()->email) { + if (! $this->contact()->email) { $this->contact()->email = $this->input['email']; } @@ -336,7 +340,7 @@ class BasePaymentDriver $this->contact()->save(); } - if ( ! $this->accountGateway->show_address || ! $this->accountGateway->update_address) { + if (! $this->accountGateway->show_address || ! $this->accountGateway->update_address) { return; } @@ -365,7 +369,7 @@ class BasePaymentDriver 'description' => trans('texts.' . $invoice->getEntityType()) . " {$invoice->invoice_number}", 'transactionId' => $invoice->invoice_number, 'transactionType' => 'Purchase', - 'ip' => Request::ip() + 'ip' => Request::ip(), ]; if ($paymentMethod) { @@ -418,7 +422,7 @@ class BasePaymentDriver 'shippingCity' => $input['city'], 'shippingState' => $input['state'], 'shippingPostcode' => $input['postal_code'], - 'shippingCountry' => $country->iso_3166_2 + 'shippingCountry' => $country->iso_3166_2, ]); } @@ -459,7 +463,7 @@ class BasePaymentDriver return true; } - if ( ! $this->handles(GATEWAY_TYPE_TOKEN)) { + if (! $this->handles(GATEWAY_TYPE_TOKEN)) { return false; } @@ -489,7 +493,7 @@ class BasePaymentDriver return $this->customer; } - if ( ! $clientId) { + if (! $clientId) { $clientId = $this->client()->id; } @@ -529,7 +533,7 @@ class BasePaymentDriver { $account = $this->account(); - if ( ! $customer = $this->customer()) { + if (! $customer = $this->customer()) { $customer = new AccountGatewayToken(); $customer->account_id = $account->id; $customer->contact_id = $this->invitation->contact_id; @@ -595,7 +599,6 @@ class BasePaymentDriver public function deleteToken() { - } public function createPayment($ref = false, $paymentMethod = null) @@ -655,11 +658,11 @@ class BasePaymentDriver } } - if (!empty($plan)) { + if (! empty($plan)) { $account = Account::with('users')->find($invoice->client->public_id); $company = $account->company; - if( + if ( $company->plan != $plan || DateTime::createFromFormat('Y-m-d', $account->company->plan_expires) <= date_create('-7 days') ) { @@ -744,7 +747,7 @@ class BasePaymentDriver $amount = $payment->getCompletedAmount(); } - if ( ! $amount) { + if (! $amount) { return false; } @@ -793,20 +796,19 @@ class BasePaymentDriver $ref = array_get($this->input, 'token') ?: $this->invitation->transaction_reference; if (method_exists($this->gateway(), 'completePurchase')) { - $details = $this->paymentDetails(); $response = $this->gateway()->completePurchase($details)->send(); $ref = $response->getTransactionReference() ?: $ref; if ($response->isCancelled()) { return false; - } elseif ( ! $response->isSuccessful()) { + } elseif (! $response->isSuccessful()) { throw new Exception($response->getMessage()); } } // check invoice still has balance - if ( ! floatval($this->invoice()->balance)) { + if (! floatval($this->invoice()->balance)) { throw new Exception(trans('texts.payment_error_code', ['code' => 'NB'])); } @@ -822,7 +824,7 @@ class BasePaymentDriver public function tokenLinks() { - if ( ! $this->customer()) { + if (! $this->customer()) { return []; } @@ -834,7 +836,7 @@ class BasePaymentDriver continue; } - if ( ! $this->meetsGatewayTypeLimits($paymentMethod->payment_type->gateway_type_id)) { + if (! $this->meetsGatewayTypeLimits($paymentMethod->payment_type->gateway_type_id)) { continue; } @@ -870,14 +872,14 @@ class BasePaymentDriver continue; } - if ( ! $this->meetsGatewayTypeLimits($gatewayTypeId)) { + if (! $this->meetsGatewayTypeLimits($gatewayTypeId)) { continue; } $gatewayTypeAlias = GatewayType::getAliasFromId($gatewayTypeId); if ($gatewayTypeId == GATEWAY_TYPE_CUSTOM) { - $url = "javascript:showCustomModal();"; + $url = 'javascript:showCustomModal();'; $label = e($this->accountGateway->getConfigField('name')); } else { $url = $this->paymentUrl($gatewayTypeAlias); @@ -896,7 +898,7 @@ class BasePaymentDriver protected function meetsGatewayTypeLimits($gatewayTypeId) { - if ( !$gatewayTypeId ) { + if (! $gatewayTypeId) { return true; } @@ -910,7 +912,7 @@ class BasePaymentDriver return false; } - if ($accountGatewaySettings->max_limit !== null && $invoice->balance > $accountGatewaySettings->max_limit) { + if ($accountGatewaySettings->max_limit !== null && $invoice->balance > $accountGatewaySettings->max_limit) { return false; } } @@ -937,7 +939,8 @@ class BasePaymentDriver return $url; } - protected function parseCardType($cardName) { + protected function parseCardType($cardName) + { $cardTypes = [ 'visa' => PAYMENT_TYPE_VISA, 'americanexpress' => PAYMENT_TYPE_AMERICAN_EXPRESS, @@ -952,7 +955,7 @@ class BasePaymentDriver 'laser' => PAYMENT_TYPE_LASER, 'maestro' => PAYMENT_TYPE_MAESTRO, 'solo' => PAYMENT_TYPE_SOLO, - 'switch' => PAYMENT_TYPE_SWITCH + 'switch' => PAYMENT_TYPE_SWITCH, ]; $cardName = strtolower(str_replace([' ', '-', '_'], '', $cardName)); @@ -962,7 +965,7 @@ class BasePaymentDriver $cardName = $matches[1]; } - if (!empty($cardTypes[$cardName])) { + if (! empty($cardTypes[$cardName])) { return $cardTypes[$cardName]; } else { return PAYMENT_TYPE_CREDIT_CARD_OTHER; diff --git a/app/Ninja/PaymentDrivers/BitPayPaymentDriver.php b/app/Ninja/PaymentDrivers/BitPayPaymentDriver.php index df1821acdb96..47c3213a1116 100644 --- a/app/Ninja/PaymentDrivers/BitPayPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/BitPayPaymentDriver.php @@ -1,12 +1,13 @@ -send() ->getData(); - return ($customer instanceof Customer); + return $customer instanceof Customer; } protected function paymentDetails($paymentMethod = false) @@ -74,7 +76,7 @@ class BraintreePaymentDriver extends BasePaymentDriver $data['ButtonSource'] = 'InvoiceNinja_SP'; } - if ( ! $paymentMethod && ! empty($this->input['sourceToken'])) { + if (! $paymentMethod && ! empty($this->input['sourceToken'])) { $data['token'] = $this->input['sourceToken']; } @@ -121,7 +123,7 @@ class BraintreePaymentDriver extends BasePaymentDriver 'company' => $this->client()->name, 'email' => $this->contact()->email, 'phone' => $this->contact()->phone, - 'website' => $this->client()->website + 'website' => $this->client()->website, ]; } @@ -157,7 +159,7 @@ class BraintreePaymentDriver extends BasePaymentDriver parent::removePaymentMethod($paymentMethod); $response = $this->gateway()->deletePaymentMethod([ - 'token' => $paymentMethod->source_reference + 'token' => $paymentMethod->source_reference, ])->send(); if ($response->isSuccessful()) { @@ -169,7 +171,7 @@ class BraintreePaymentDriver extends BasePaymentDriver protected function attemptVoidPayment($response, $payment, $amount) { - if ( ! parent::attemptVoidPayment($response, $payment, $amount)) { + if (! parent::attemptVoidPayment($response, $payment, $amount)) { return false; } diff --git a/app/Ninja/PaymentDrivers/CheckoutComPaymentDriver.php b/app/Ninja/PaymentDrivers/CheckoutComPaymentDriver.php index ede0b678234b..47eed79ab921 100644 --- a/app/Ninja/PaymentDrivers/CheckoutComPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/CheckoutComPaymentDriver.php @@ -1,4 +1,6 @@ -gateway()->purchase([ 'amount' => $this->invoice()->getRequestedAmount(), - 'currency' => $this->client()->getCurrencyCode() + 'currency' => $this->client()->getCurrencyCode(), ])->send(); if ($response->isRedirect()) { @@ -31,5 +33,4 @@ class CheckoutComPaymentDriver extends BasePaymentDriver return $data; } - } diff --git a/app/Ninja/PaymentDrivers/CustomPaymentDriver.php b/app/Ninja/PaymentDrivers/CustomPaymentDriver.php index 1dcbc7095b1e..a09d7e129f33 100644 --- a/app/Ninja/PaymentDrivers/CustomPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/CustomPaymentDriver.php @@ -1,12 +1,13 @@ -isCancelled()) { return false; - } elseif ( ! $response->isSuccessful()) { + } elseif (! $response->isSuccessful()) { throw new Exception($response->getMessage()); } return $this->createPayment($response->getTransactionReference()); } - } diff --git a/app/Ninja/PaymentDrivers/PayFastPaymentDriver.php b/app/Ninja/PaymentDrivers/PayFastPaymentDriver.php index 6768de7b2df8..6016afe39458 100644 --- a/app/Ninja/PaymentDrivers/PayFastPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/PayFastPaymentDriver.php @@ -1,4 +1,6 @@ - Request::query('pt') + 'token' => Request::query('pt'), ]); } } diff --git a/app/Ninja/PaymentDrivers/PayPalExpressPaymentDriver.php b/app/Ninja/PaymentDrivers/PayPalExpressPaymentDriver.php index 74f98635e27f..ac3d0c847b24 100644 --- a/app/Ninja/PaymentDrivers/PayPalExpressPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/PayPalExpressPaymentDriver.php @@ -1,12 +1,13 @@ -accountGateway && $this->accountGateway->getAchEnabled()) { @@ -60,14 +62,14 @@ class StripePaymentDriver extends BasePaymentDriver ->fetchCustomer(['customerReference' => $customer->token]) ->send(); - if ( ! $response->isSuccessful()) { + if (! $response->isSuccessful()) { return false; } $this->tokenResponse = $response->getData(); // import Stripe tokens created before payment methods table was added - if ( ! count($customer->payment_methods)) { + if (! count($customer->payment_methods)) { if ($paymentMethod = $this->createPaymentMethod($customer)) { $customer->default_payment_method_id = $paymentMethod->id; $customer->save(); @@ -94,12 +96,12 @@ class StripePaymentDriver extends BasePaymentDriver // Stripe complains if the email field is set unset($data['email']); - if ( ! empty($this->input['sourceToken'])) { + if (! empty($this->input['sourceToken'])) { $data['token'] = $this->input['sourceToken']; unset($data['card']); } - if ( ! empty($this->input['plaidPublicToken'])) { + if (! empty($this->input['plaidPublicToken'])) { $data['plaidPublicToken'] = $this->input['plaidPublicToken']; $data['plaidAccountId'] = $this->input['plaidAccountId']; unset($data['card']); @@ -116,7 +118,7 @@ class StripePaymentDriver extends BasePaymentDriver $data = $this->paymentDetails(); $data['description'] = $client->getDisplayName(); - if ( ! empty($data['plaidPublicToken'])) { + if (! empty($data['plaidPublicToken'])) { $plaidResult = $this->getPlaidToken($data['plaidPublicToken'], $data['plaidAccountId']); unset($data['plaidPublicToken']); unset($data['plaidAccountId']); @@ -153,18 +155,18 @@ class StripePaymentDriver extends BasePaymentDriver $data = $this->tokenResponse; $source = false; - if (!empty($data['object']) && ($data['object'] == 'card' || $data['object'] == 'bank_account')) { + if (! empty($data['object']) && ($data['object'] == 'card' || $data['object'] == 'bank_account')) { $source = $data; - } elseif (!empty($data['object']) && $data['object'] == 'customer') { - $sources = !empty($data['sources']) ? $data['sources'] : $data['cards']; + } elseif (! empty($data['object']) && $data['object'] == 'customer') { + $sources = ! empty($data['sources']) ? $data['sources'] : $data['cards']; $source = reset($sources['data']); - } elseif (!empty($data['source'])) { + } elseif (! empty($data['source'])) { $source = $data['source']; - } elseif (!empty($data['card'])) { + } elseif (! empty($data['card'])) { $source = $data['card']; } - if ( ! $source) { + if (! $source) { return false; } @@ -174,12 +176,9 @@ class StripePaymentDriver extends BasePaymentDriver // For older users the Stripe account may just have the customer token but not the card version // In that case we'd use GATEWAY_TYPE_TOKEN even though we're creating the credit card if ($this->isGatewayType(GATEWAY_TYPE_CREDIT_CARD) || $this->isGatewayType(GATEWAY_TYPE_TOKEN)) { - $paymentMethod->expiration = $source['exp_year'] . '-' . $source['exp_month'] . '-01'; $paymentMethod->payment_type_id = $this->parseCardType($source['brand']); - } elseif ($this->isGatewayType(GATEWAY_TYPE_BANK_TRANSFER)) { - $paymentMethod->routing_number = $source['routing_number']; $paymentMethod->payment_type_id = PAYMENT_TYPE_ACH; $paymentMethod->status = $source['status']; @@ -189,7 +188,6 @@ class StripePaymentDriver extends BasePaymentDriver $paymentMethod->currency_id = $currency->id; $paymentMethod->setRelation('currency', $currency); } - } return $paymentMethod; @@ -208,13 +206,13 @@ class StripePaymentDriver extends BasePaymentDriver { parent::removePaymentMethod($paymentMethod); - if ( ! $paymentMethod->relationLoaded('account_gateway_token')) { + if (! $paymentMethod->relationLoaded('account_gateway_token')) { $paymentMethod->load('account_gateway_token'); } $response = $this->gateway()->deleteCard([ 'customerReference' => $paymentMethod->account_gateway_token->token, - 'cardReference' => $paymentMethod->source_reference + 'cardReference' => $paymentMethod->source_reference, ])->send(); if ($response->isSuccessful()) { @@ -229,36 +227,37 @@ class StripePaymentDriver extends BasePaymentDriver $clientId = $this->accountGateway->getPlaidClientId(); $secret = $this->accountGateway->getPlaidSecret(); - if (!$clientId) { + if (! $clientId) { throw new Exception('plaid client id not set'); // TODO use text strings } - if (!$secret) { + if (! $secret) { throw new Exception('plaid secret not set'); } try { $subdomain = $this->accountGateway->getPlaidEnvironment() == 'production' ? 'api' : 'tartan'; - $response = (new \GuzzleHttp\Client(['base_uri'=>"https://{$subdomain}.plaid.com"]))->request( + $response = (new \GuzzleHttp\Client(['base_uri' => "https://{$subdomain}.plaid.com"]))->request( 'POST', 'exchange_token', [ 'allow_redirects' => false, - 'headers' => ['content-type' => 'application/x-www-form-urlencoded'], + 'headers' => ['content-type' => 'application/x-www-form-urlencoded'], 'body' => http_build_query([ 'client_id' => $clientId, 'secret' => $secret, 'public_token' => $publicToken, 'account_id' => $accountId, - ]) + ]), ] ); + return json_decode($response->getBody(), true); } catch (\GuzzleHttp\Exception\BadResponseException $e) { $response = $e->getResponse(); $body = json_decode($response->getBody(), true); - if ($body && !empty($body['message'])) { + if ($body && ! empty($body['message'])) { throw new Exception($body['message']); } else { throw new Exception($e->getMessage()); @@ -288,7 +287,7 @@ class StripePaymentDriver extends BasePaymentDriver $paymentMethod->status = PAYMENT_METHOD_STATUS_VERIFIED; $paymentMethod->save(); - if ( ! $customer->default_payment_method_id) { + if (! $customer->default_payment_method_id) { $customer->default_payment_method_id = $paymentMethod->id; $customer->save(); } @@ -300,13 +299,13 @@ class StripePaymentDriver extends BasePaymentDriver { $apiKey = $this->accountGateway->getConfig()->apiKey; - if (!$apiKey) { + if (! $apiKey) { return 'No API key set'; } - try{ + try { $options = [ - 'headers' => ['content-type' => 'application/x-www-form-urlencoded'], + 'headers' => ['content-type' => 'application/x-www-form-urlencoded'], 'auth' => [$apiKey, ''], ]; @@ -314,11 +313,12 @@ class StripePaymentDriver extends BasePaymentDriver $options['body'] = $body; } - $response = (new \GuzzleHttp\Client(['base_uri'=>'https://api.stripe.com/v1/']))->request( + $response = (new \GuzzleHttp\Client(['base_uri' => 'https://api.stripe.com/v1/']))->request( $method, $url, $options ); + return json_decode($response->getBody(), true); } catch (\GuzzleHttp\Exception\BadResponseException $e) { $response = $e->getResponse(); @@ -335,16 +335,16 @@ class StripePaymentDriver extends BasePaymentDriver public function handleWebHook($input) { $eventId = array_get($input, 'id'); - $eventType= array_get($input, 'type'); + $eventType = array_get($input, 'type'); $accountGateway = $this->accountGateway; $accountId = $accountGateway->account_id; - if (!$eventId) { + if (! $eventId) { throw new Exception('Missing event id'); } - if (!$eventType) { + if (! $eventType) { throw new Exception('Missing event type'); } @@ -357,14 +357,14 @@ class StripePaymentDriver extends BasePaymentDriver 'customer.bank_account.deleted', ]; - if (!in_array($eventType, $supportedEvents)) { + if (! in_array($eventType, $supportedEvents)) { return ['message' => 'Ignoring event']; } // Fetch the event directly from Stripe for security $eventDetails = $this->makeStripeCall('GET', 'events/'.$eventId); - if (is_string($eventDetails) || !$eventDetails) { + if (is_string($eventDetails) || ! $eventDetails) { return false; } @@ -372,7 +372,7 @@ class StripePaymentDriver extends BasePaymentDriver return false; } - if (!$eventDetails['pending_webhooks']) { + if (! $eventDetails['pending_webhooks']) { return false; } @@ -382,12 +382,12 @@ class StripePaymentDriver extends BasePaymentDriver $payment = Payment::scope(false, $accountId)->where('transaction_reference', '=', $transactionRef)->first(); - if (!$payment) { + if (! $payment) { return false; } if ($eventType == 'charge.failed') { - if (!$payment->isFailed()) { + if (! $payment->isFailed()) { $payment->markFailed($charge['failure_message']); $userMailer = app('App\Ninja\Mailers\UserMailer'); @@ -398,13 +398,13 @@ class StripePaymentDriver extends BasePaymentDriver } elseif ($eventType == 'charge.refunded') { $payment->recordRefund($charge['amount_refunded'] / 100 - $payment->refunded); } - } elseif($eventType == 'customer.source.updated' || $eventType == 'customer.source.deleted' || $eventType == 'customer.bank_account.deleted') { + } elseif ($eventType == 'customer.source.updated' || $eventType == 'customer.source.deleted' || $eventType == 'customer.bank_account.deleted') { $source = $eventDetails['data']['object']; $sourceRef = $source['id']; $paymentMethod = PaymentMethod::scope(false, $accountId)->where('source_reference', '=', $sourceRef)->first(); - if (!$paymentMethod) { + if (! $paymentMethod) { return false; } diff --git a/app/Ninja/PaymentDrivers/TwoCheckoutPaymentDriver.php b/app/Ninja/PaymentDrivers/TwoCheckoutPaymentDriver.php index 005611d4a034..fca754ac79a8 100644 --- a/app/Ninja/PaymentDrivers/TwoCheckoutPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/TwoCheckoutPaymentDriver.php @@ -1,4 +1,6 @@ -createPayment($input['order_number']); } - } diff --git a/app/Ninja/PaymentDrivers/WePayPaymentDriver.php b/app/Ninja/PaymentDrivers/WePayPaymentDriver.php index 755c0397620b..1ebdc69e79e9 100644 --- a/app/Ninja/PaymentDrivers/WePayPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/WePayPaymentDriver.php @@ -1,18 +1,20 @@ -accountGateway && $this->accountGateway->getAchEnabled()) { @@ -132,7 +134,7 @@ class WePayPaymentDriver extends BasePaymentDriver $paymentMethod->bank_name = $source->bank_name; $paymentMethod->source_reference = $source->payment_bank_id; - switch($source->state) { + switch ($source->state) { case 'new': case 'pending': $paymentMethod->status = 'new'; @@ -187,7 +189,7 @@ class WePayPaymentDriver extends BasePaymentDriver protected function attemptVoidPayment($response, $payment, $amount) { - if ( ! parent::attemptVoidPayment($response, $payment, $amount)) { + if (! parent::attemptVoidPayment($response, $payment, $amount)) { return false; } @@ -207,14 +209,14 @@ class WePayPaymentDriver extends BasePaymentDriver } } - if (!isset($objectType)) { + if (! isset($objectType)) { throw new Exception('Could not find object id parameter'); } if ($objectType == 'credit_card') { $paymentMethod = PaymentMethod::scope(false, $accountId)->where('source_reference', '=', $objectId)->first(); - if (!$paymentMethod) { + if (! $paymentMethod) { throw new Exception('Unknown payment method'); } @@ -255,7 +257,7 @@ class WePayPaymentDriver extends BasePaymentDriver } elseif ($objectType == 'checkout') { $payment = Payment::scope(false, $accountId)->where('transaction_reference', '=', $objectId)->first(); - if (!$payment) { + if (! $payment) { throw new Exception('Unknown payment'); } @@ -266,7 +268,7 @@ class WePayPaymentDriver extends BasePaymentDriver if ($checkout->state == 'refunded') { $payment->recordRefund(); - } elseif (!empty($checkout->refund) && !empty($checkout->refund->amount_refunded) && ($checkout->refund->amount_refunded - $payment->refunded) > 0) { + } elseif (! empty($checkout->refund) && ! empty($checkout->refund->amount_refunded) && ($checkout->refund->amount_refunded - $payment->refunded) > 0) { $payment->recordRefund($checkout->refund->amount_refunded - $payment->refunded); } @@ -283,5 +285,4 @@ class WePayPaymentDriver extends BasePaymentDriver return 'Ignoring event'; } } - } diff --git a/app/Ninja/Presenters/AccountPresenter.php b/app/Ninja/Presenters/AccountPresenter.php index 7c6c0d0fb32b..8dce6bdcd1b1 100644 --- a/app/Ninja/Presenters/AccountPresenter.php +++ b/app/Ninja/Presenters/AccountPresenter.php @@ -1,16 +1,19 @@ -entity->getCurrencyId(); $currency = Utils::getFromCache($currencyId, 'currencies'); + return $currency->code; } @@ -110,4 +114,39 @@ class AccountPresenter extends Presenter return $data; } + + public function dateRangeOptions() + { + $yearStart = Carbon::parse($this->entity->financialYearStart() ?: date('Y') . '-01-01'); + $month = $yearStart->month - 1; + $year = $yearStart->year; + $lastYear = $year - 1; + + $str = '{ + "' . trans('texts.last_7_days') . '": [moment().subtract(6, "days"), moment()], + "' . trans('texts.last_30_days') . '": [moment().subtract(29, "days"), moment()], + "' . trans('texts.this_month') . '": [moment().startOf("month"), moment().endOf("month")], + "' . trans('texts.last_month') . '": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")], + "' . trans('texts.this_year') . '": [moment().date(1).month(' . $month . ').year(' . $year . '), moment()], + "' . trans('texts.last_year') . '": [moment().date(1).month(' . $month . ').year(' . $lastYear . '), moment().date(1).month(' . $month . ').year(' . $year . ').subtract(1, "day")], + }'; + + return $str; + } + + public function taxRateOptions() + { + $rates = TaxRate::scope()->orderBy('name')->get(); + $options = []; + + foreach ($rates as $rate) { + $name = $rate->name . ' ' . ($rate->rate + 0) . '%'; + if ($rate->is_inclusive) { + $name .= ' - ' . trans('texts.inclusive'); + } + $options[($rate->is_inclusive ? '1 ' : '0 ') . $rate->rate . ' ' . $rate->name] = $name; + } + + return $options; + } } diff --git a/app/Ninja/Presenters/ActivityPresenter.php b/app/Ninja/Presenters/ActivityPresenter.php new file mode 100644 index 000000000000..6978ce8695b0 --- /dev/null +++ b/app/Ninja/Presenters/ActivityPresenter.php @@ -0,0 +1,39 @@ +entity->created_at)); + } + + public function createdAtDate() + { + return Utils::dateToString($this->entity->created_at); + } + + public function user() + { + if ($this->entity->is_system) { + return '' . trans('texts.system') . ''; + } else { + return $this->entity->user->getDisplayName(); + } + } + + public function notes() + { + if ($this->entity->notes) { + return trans('texts.notes_' . $this->entity->notes); + } elseif (in_array($this->entity->activity_type_id, [ACTIVITY_TYPE_EMAIL_INVOICE, ACTIVITY_TYPE_EMAIL_QUOTE])) { + return trans('texts.initial_email'); + } else { + return ''; + } + } +} diff --git a/app/Ninja/Presenters/ClientPresenter.php b/app/Ninja/Presenters/ClientPresenter.php index f4c8adeb051b..5493b3751c0c 100644 --- a/app/Ninja/Presenters/ClientPresenter.php +++ b/app/Ninja/Presenters/ClientPresenter.php @@ -1,8 +1,9 @@ -entity->country ? $this->entity->country->name : ''; @@ -23,4 +24,15 @@ class ClientPresenter extends EntityPresenter { return $account->formatMoney($client->paid_to_date, $client); } + + public function paymentTerms() + { + $client = $this->entity; + + if (! $client->payment_terms) { + return ''; + } + + return sprintf('%s: %s %s', trans('texts.payment_terms'), trans('texts.payment_terms_net'), $client->defaultDaysDue()); + } } diff --git a/app/Ninja/Presenters/CompanyPresenter.php b/app/Ninja/Presenters/CompanyPresenter.php index 46ba7ab9f51d..7160d5d850ab 100644 --- a/app/Ninja/Presenters/CompanyPresenter.php +++ b/app/Ninja/Presenters/CompanyPresenter.php @@ -1,29 +1,30 @@ -entity->hasActivePromo()) { + if (! $this->entity->hasActivePromo()) { return ''; } return trans('texts.promo_message', [ 'expires' => $this->entity->promo_expires->format('M dS, Y'), - 'amount' => (int)($this->discount * 100) . '%' + 'amount' => (int) ($this->discount * 100) . '%', ]); } public function discountMessage() { - if ( ! $this->entity->hasActiveDiscount()) { + if (! $this->entity->hasActiveDiscount()) { return ''; } return trans('texts.discount_message', [ 'expires' => $this->entity->discount_expires->format('M dS, Y'), - 'amount' => (int)($this->discount * 100) . '%' + 'amount' => (int) ($this->discount * 100) . '%', ]); } - } diff --git a/app/Ninja/Presenters/CreditPresenter.php b/app/Ninja/Presenters/CreditPresenter.php index 8bcafe58d74c..2a2ee78f270c 100644 --- a/app/Ninja/Presenters/CreditPresenter.php +++ b/app/Ninja/Presenters/CreditPresenter.php @@ -1,9 +1,11 @@ -path()); + } + + public function path() { $type = Utils::pluralizeEntityType($this->entity->getEntityType()); $id = $this->entity->public_id; - $link = sprintf('/%s/%s', $type, $id); - return URL::to($link); + return sprintf('/%s/%s', $type, $id); } public function editUrl() @@ -23,7 +29,7 @@ class EntityPresenter extends Presenter return $this->url() . '/edit'; } - public function statusLabel() + public function statusLabel($label = false) { $class = $text = ''; @@ -35,7 +41,7 @@ class EntityPresenter extends Presenter $label = trans('texts.archived'); } else { $class = $this->entity->statusClass(); - $label = $this->entity->statusLabel(); + $label = $label ?: $this->entity->statusLabel(); } return "{$label}"; diff --git a/app/Ninja/Presenters/ExpensePresenter.php b/app/Ninja/Presenters/ExpensePresenter.php index d014374a72f7..9f8ac4c5506b 100644 --- a/app/Ninja/Presenters/ExpensePresenter.php +++ b/app/Ninja/Presenters/ExpensePresenter.php @@ -1,14 +1,15 @@ -entity->expense_category ? $this->entity->expense_category->name : ''; } - } diff --git a/app/Ninja/Presenters/InvoiceItemPresenter.php b/app/Ninja/Presenters/InvoiceItemPresenter.php index 67150df771ca..daa898602610 100644 --- a/app/Ninja/Presenters/InvoiceItemPresenter.php +++ b/app/Ninja/Presenters/InvoiceItemPresenter.php @@ -1,4 +1,6 @@ -entity->client ? $this->entity->client->getDisplayName() : ''; @@ -47,7 +50,7 @@ class InvoicePresenter extends EntityPresenter { public function age() { - if ( ! $this->entity->due_date || $this->entity->date_date == '0000-00-00') { + if (! $this->entity->due_date || $this->entity->date_date == '0000-00-00') { return 0; } @@ -100,7 +103,7 @@ class InvoicePresenter extends EntityPresenter { // https://schema.org/PaymentStatusType public function paymentStatus() { - if ( ! $this->entity->balance) { + if (! $this->entity->balance) { return 'PaymentComplete'; } elseif ($this->entity->isOverdue()) { return 'PaymentPastDue'; @@ -120,6 +123,7 @@ class InvoicePresenter extends EntityPresenter { } else { $status = $this->entity->invoice_status ? $this->entity->invoice_status->name : 'draft'; $status = strtolower($status); + return trans("texts.status_{$status}"); } } @@ -138,12 +142,14 @@ class InvoicePresenter extends EntityPresenter { { $frequency = $this->entity->frequency ? $this->entity->frequency->name : ''; $frequency = strtolower($frequency); + return trans('texts.freq_'.$frequency); } public function email() { $client = $this->entity->client; + return count($client->contacts) ? $client->contacts[0]->email : ''; } @@ -152,7 +158,7 @@ class InvoicePresenter extends EntityPresenter { $client = $this->entity->client; $paymentMethod = $client->defaultPaymentMethod(); - if ( ! $paymentMethod) { + if (! $paymentMethod) { return false; } @@ -205,7 +211,7 @@ class InvoicePresenter extends EntityPresenter { $actions = [ ['url' => 'javascript:onCloneClick()', 'label' => trans("texts.clone_{$entityType}")], ['url' => url("{$entityType}s/{$entityType}_history/{$invoice->public_id}"), 'label' => trans('texts.view_history')], - DropdownButton::DIVIDER + DropdownButton::DIVIDER, ]; if ($entityType == ENTITY_QUOTE) { @@ -219,7 +225,7 @@ class InvoicePresenter extends EntityPresenter { $actions[] = ['url' => url("quotes/{$invoice->quote_id}/edit"), 'label' => trans('texts.view_quote')]; } - if (!$invoice->is_recurring && $invoice->balance > 0) { + if (!$invoice->deleted_at && ! $invoice->is_recurring && $invoice->balance > 0) { $actions[] = ['url' => 'javascript:submitBulkAction("markPaid")', 'label' => trans('texts.mark_paid')]; $actions[] = ['url' => 'javascript:onPaymentClick()', 'label' => trans('texts.enter_payment')]; } @@ -237,8 +243,12 @@ class InvoicePresenter extends EntityPresenter { $actions[] = DropdownButton::DIVIDER; } - $actions[] = ['url' => 'javascript:onArchiveClick()', 'label' => trans("texts.archive_{$entityType}")]; - $actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans("texts.delete_{$entityType}")]; + if (! $invoice->trashed()) { + $actions[] = ['url' => 'javascript:onArchiveClick()', 'label' => trans("texts.archive_{$entityType}")]; + } + if (! $invoice->is_deleted) { + $actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans("texts.delete_{$entityType}")]; + } return $actions; } diff --git a/app/Ninja/Presenters/PaymentPresenter.php b/app/Ninja/Presenters/PaymentPresenter.php index 29f15189f2b8..a2c15c478ce5 100644 --- a/app/Ninja/Presenters/PaymentPresenter.php +++ b/app/Ninja/Presenters/PaymentPresenter.php @@ -1,15 +1,27 @@ -entity->amount, $this->entity->client->currency_id); } + public function completedAmount() + { + return Utils::formatMoney($this->entity->getCompletedAmount(), $this->entity->client->currency_id); + } + + public function currencySymbol() + { + return Utils::getFromCache($this->entity->currency_id ? $this->entity->currency_id : DEFAULT_CURRENCY, 'currencies')->symbol; + } + public function client() { return $this->entity->client ? $this->entity->client->getDisplayName() : ''; @@ -30,7 +42,7 @@ class PaymentPresenter extends EntityPresenter { if ($this->entity->account_gateway) { return $this->entity->account_gateway->gateway->name; } elseif ($this->entity->payment_type) { - return $this->entity->payment_type->name; + return trans('texts.payment_type_' . $this->entity->payment_type->name); } } } diff --git a/app/Ninja/Presenters/ProductPresenter.php b/app/Ninja/Presenters/ProductPresenter.php index 786e61cba75c..8d6091f06c9d 100644 --- a/app/Ninja/Presenters/ProductPresenter.php +++ b/app/Ninja/Presenters/ProductPresenter.php @@ -1,4 +1,6 @@ -account->getCurrencyId(); - if ( ! isset($this->totals[$currencyId][$dimension])) { + if (! isset($this->totals[$currencyId][$dimension])) { $this->totals[$currencyId][$dimension] = []; } - if ( ! isset($this->totals[$currencyId][$dimension][$field])) { + if (! isset($this->totals[$currencyId][$dimension][$field])) { $this->totals[$currencyId][$dimension][$field] = 0; } @@ -66,9 +65,8 @@ class AbstractReport } if (strpos($field, 'date') !== false) { - //$class[] = 'group-date-monthyear'; $class[] = 'group-date-' . (isset($this->options['group_dates_by']) ? $this->options['group_dates_by'] : 'monthyear'); - } elseif (in_array($field, ['client', 'method'])) { + } elseif (in_array($field, ['client', 'vendor', 'product', 'method', 'category'])) { $class[] = 'group-letter-100'; } elseif (in_array($field, ['amount', 'paid', 'balance'])) { $class[] = 'group-number-50'; diff --git a/app/Ninja/Reports/AgingReport.php b/app/Ninja/Reports/AgingReport.php index aaf87c47d07d..a7d1213d9c96 100644 --- a/app/Ninja/Reports/AgingReport.php +++ b/app/Ninja/Reports/AgingReport.php @@ -2,8 +2,8 @@ namespace App\Ninja\Reports; -use Auth; use App\Models\Client; +use Auth; class AgingReport extends AbstractReport { @@ -24,7 +24,7 @@ class AgingReport extends AbstractReport $clients = Client::scope() ->withArchived() ->with('contacts') - ->with(['invoices' => function($query) { + ->with(['invoices' => function ($query) { $query->invoices() ->whereIsPublic(true) ->withArchived() @@ -36,7 +36,6 @@ class AgingReport extends AbstractReport foreach ($clients->get() as $client) { foreach ($client->invoices as $invoice) { - $this->data[] = [ $this->isExport ? $client->getDisplayName() : $client->present()->link, $this->isExport ? $invoice->invoice_number : $invoice->present()->link, diff --git a/app/Ninja/Reports/ClientReport.php b/app/Ninja/Reports/ClientReport.php index a511def1258e..b0f12f63ea90 100644 --- a/app/Ninja/Reports/ClientReport.php +++ b/app/Ninja/Reports/ClientReport.php @@ -2,8 +2,8 @@ namespace App\Ninja\Reports; -use Auth; use App\Models\Client; +use Auth; class ClientReport extends AbstractReport { @@ -21,7 +21,7 @@ class ClientReport extends AbstractReport $clients = Client::scope() ->withArchived() ->with('contacts') - ->with(['invoices' => function($query) { + ->with(['invoices' => function ($query) { $query->where('invoice_date', '>=', $this->startDate) ->where('invoice_date', '<=', $this->endDate) ->where('invoice_type_id', '=', INVOICE_TYPE_STANDARD) @@ -42,7 +42,7 @@ class ClientReport extends AbstractReport $this->isExport ? $client->getDisplayName() : $client->present()->link, $account->formatMoney($amount, $client), $account->formatMoney($paid, $client), - $account->formatMoney($amount - $paid, $client) + $account->formatMoney($amount - $paid, $client), ]; $this->addToTotals($client->currency_id, 'amount', $amount); diff --git a/app/Ninja/Reports/ExpenseReport.php b/app/Ninja/Reports/ExpenseReport.php index 80e1dbf68d1f..880845f07555 100644 --- a/app/Ninja/Reports/ExpenseReport.php +++ b/app/Ninja/Reports/ExpenseReport.php @@ -2,9 +2,9 @@ namespace App\Ninja\Reports; +use App\Models\Expense; use Auth; use Utils; -use App\Models\Expense; class ExpenseReport extends AbstractReport { @@ -13,7 +13,7 @@ class ExpenseReport extends AbstractReport 'client', 'date', 'category', - 'expense_amount', + 'amount', ]; public function run() @@ -32,7 +32,7 @@ class ExpenseReport extends AbstractReport $this->data[] = [ $expense->vendor ? ($this->isExport ? $expense->vendor->name : $expense->vendor->present()->link) : '', $expense->client ? ($this->isExport ? $expense->client->getDisplayName() : $expense->client->present()->link) : '', - $expense->present()->expense_date, + $this->isExport ? $expense->present()->expense_date : link_to($expense->present()->url, $expense->present()->expense_date), $expense->present()->category, Utils::formatMoney($amount, $expense->currency_id), ]; diff --git a/app/Ninja/Reports/InvoiceDetailsReport.php b/app/Ninja/Reports/InvoiceDetailsReport.php deleted file mode 100644 index 4a100a16ca07..000000000000 --- a/app/Ninja/Reports/InvoiceDetailsReport.php +++ /dev/null @@ -1,61 +0,0 @@ -account; - $status = $this->options['invoice_status']; - - $clients = Client::scope() - ->withArchived() - ->with('contacts') - ->with(['invoices' => function($query) use ($status) { - if ($status == 'draft') { - $query->whereIsPublic(false); - } elseif ($status == 'unpaid' || $status == 'paid') { - $query->whereIsPublic(true); - } - $query->invoices() - ->withArchived() - ->where('invoice_date', '>=', $this->startDate) - ->where('invoice_date', '<=', $this->endDate) - ->with(['invoice_items']); - }]); - - foreach ($clients->get() as $client) { - foreach ($client->invoices as $invoice) { - foreach ($invoice->invoice_items as $item) { - $this->data[] = [ - $this->isExport ? $client->getDisplayName() : $client->present()->link, - $this->isExport ? $invoice->invoice_number : $invoice->present()->link, - $invoice->present()->invoice_date, - $item->product_key, - $item->qty, - $account->formatMoney($item->cost, $client), - ]; - } - - //$this->addToTotals($client->currency_id, 'paid', $payment ? $payment->getCompletedAmount() : 0); - //$this->addToTotals($client->currency_id, 'amount', $invoice->amount); - //$this->addToTotals($client->currency_id, 'balance', $invoice->balance); - } - } - } -} diff --git a/app/Ninja/Reports/InvoiceReport.php b/app/Ninja/Reports/InvoiceReport.php index b9c1c1f0286e..908e01e96a55 100644 --- a/app/Ninja/Reports/InvoiceReport.php +++ b/app/Ninja/Reports/InvoiceReport.php @@ -2,8 +2,8 @@ namespace App\Ninja\Reports; -use Auth; use App\Models\Client; +use Auth; class InvoiceReport extends AbstractReport { @@ -14,7 +14,7 @@ class InvoiceReport extends AbstractReport 'amount', 'payment_date', 'paid', - 'method' + 'method', ]; public function run() @@ -25,7 +25,7 @@ class InvoiceReport extends AbstractReport $clients = Client::scope() ->withArchived() ->with('contacts') - ->with(['invoices' => function($query) use ($status) { + ->with(['invoices' => function ($query) use ($status) { if ($status == 'draft') { $query->whereIsPublic(false); } elseif ($status == 'unpaid' || $status == 'paid') { @@ -35,8 +35,8 @@ class InvoiceReport extends AbstractReport ->withArchived() ->where('invoice_date', '>=', $this->startDate) ->where('invoice_date', '<=', $this->endDate) - ->with(['payments' => function($query) { - $query->withArchived() + ->with(['payments' => function ($query) { + $query->withArchived() ->excludeFailed() ->with('payment_type', 'account_gateway.gateway'); }, 'invoice_items']); @@ -44,10 +44,9 @@ class InvoiceReport extends AbstractReport foreach ($clients->get() as $client) { foreach ($client->invoices as $invoice) { - $payments = count($invoice->payments) ? $invoice->payments : [false]; foreach ($payments as $payment) { - if ( ! $payment && $status == 'paid') { + if (! $payment && $status == 'paid') { continue; } elseif ($payment && $status == 'unpaid') { continue; diff --git a/app/Ninja/Reports/PaymentReport.php b/app/Ninja/Reports/PaymentReport.php index 7521af2e3eb4..5df24a1d1659 100644 --- a/app/Ninja/Reports/PaymentReport.php +++ b/app/Ninja/Reports/PaymentReport.php @@ -2,8 +2,8 @@ namespace App\Ninja\Reports; -use Auth; use App\Models\Payment; +use Auth; class PaymentReport extends AbstractReport { @@ -24,10 +24,10 @@ class PaymentReport extends AbstractReport $payments = Payment::scope() ->withArchived() ->excludeFailed() - ->whereHas('client', function($query) { + ->whereHas('client', function ($query) { $query->where('is_deleted', '=', false); }) - ->whereHas('invoice', function($query) { + ->whereHas('invoice', function ($query) { $query->where('is_deleted', '=', false); }) ->with('client.contacts', 'invoice', 'payment_type', 'account_gateway.gateway') diff --git a/app/Ninja/Reports/ProductReport.php b/app/Ninja/Reports/ProductReport.php index c611f9a20198..19bb5c1fcc81 100644 --- a/app/Ninja/Reports/ProductReport.php +++ b/app/Ninja/Reports/ProductReport.php @@ -2,8 +2,8 @@ namespace App\Ninja\Reports; -use Auth; use App\Models\Client; +use Auth; class ProductReport extends AbstractReport { @@ -11,44 +11,50 @@ class ProductReport extends AbstractReport 'client', 'invoice_number', 'invoice_date', - 'quantity', 'product', + 'qty', + 'cost', + //'tax_rate1', + //'tax_rate2', ]; public function run() { $account = Auth::user()->account; + $status = $this->options['invoice_status']; $clients = Client::scope() - ->withTrashed() + ->withArchived() ->with('contacts') - ->where('is_deleted', '=', false) - ->with(['invoices' => function($query) { - $query->where('invoice_date', '>=', $this->startDate) + ->with(['invoices' => function ($query) use ($status) { + if ($status == 'draft') { + $query->whereIsPublic(false); + } elseif ($status == 'unpaid' || $status == 'paid') { + $query->whereIsPublic(true); + } + $query->invoices() + ->withArchived() + ->where('invoice_date', '>=', $this->startDate) ->where('invoice_date', '<=', $this->endDate) - ->where('is_deleted', '=', false) - ->where('is_recurring', '=', false) - ->where('invoice_type_id', '=', INVOICE_TYPE_STANDARD) - ->with(['invoice_items']) - ->withTrashed(); + ->with(['invoice_items']); }]); foreach ($clients->get() as $client) { foreach ($client->invoices as $invoice) { - - foreach ($invoice->invoice_items as $invoiceItem) { + foreach ($invoice->invoice_items as $item) { $this->data[] = [ $this->isExport ? $client->getDisplayName() : $client->present()->link, $this->isExport ? $invoice->invoice_number : $invoice->present()->link, $invoice->present()->invoice_date, - round($invoiceItem->qty, 2), - $invoiceItem->product_key, + $item->product_key, + $item->qty, + $account->formatMoney($item->cost, $client), ]; - //$reportTotals = $this->addToTotals($reportTotals, $client->currency_id, 'paid', $payment ? $payment->amount : 0); } - //$reportTotals = $this->addToTotals($reportTotals, $client->currency_id, 'amount', $invoice->amount); - //$reportTotals = $this->addToTotals($reportTotals, $client->currency_id, 'balance', $invoice->balance); + //$this->addToTotals($client->currency_id, 'paid', $payment ? $payment->getCompletedAmount() : 0); + //$this->addToTotals($client->currency_id, 'amount', $invoice->amount); + //$this->addToTotals($client->currency_id, 'balance', $invoice->balance); } } } diff --git a/app/Ninja/Reports/ProfitAndLossReport.php b/app/Ninja/Reports/ProfitAndLossReport.php index 23c6e10f534e..919c57153792 100644 --- a/app/Ninja/Reports/ProfitAndLossReport.php +++ b/app/Ninja/Reports/ProfitAndLossReport.php @@ -2,9 +2,9 @@ namespace App\Ninja\Reports; -use Auth; -use App\Models\Payment; use App\Models\Expense; +use App\Models\Payment; +use Auth; class ProfitAndLossReport extends AbstractReport { @@ -42,7 +42,6 @@ class ProfitAndLossReport extends AbstractReport $this->addToTotals($client->currency_id, 'profit', $payment->getCompletedAmount(), $payment->present()->month); } - $expenses = Expense::scope() ->with('client.contacts') ->withArchived() @@ -64,7 +63,6 @@ class ProfitAndLossReport extends AbstractReport $this->addToTotals($expense->expense_currency_id, 'profit', $expense->amount * -1, $expense->present()->month); } - //$this->addToTotals($client->currency_id, 'paid', $payment ? $payment->getCompletedAmount() : 0); //$this->addToTotals($client->currency_id, 'amount', $invoice->amount); //$this->addToTotals($client->currency_id, 'balance', $invoice->balance); diff --git a/app/Ninja/Reports/TaskReport.php b/app/Ninja/Reports/TaskReport.php index 4d7b7398b7ce..803f799a2a6f 100644 --- a/app/Ninja/Reports/TaskReport.php +++ b/app/Ninja/Reports/TaskReport.php @@ -2,9 +2,8 @@ namespace App\Ninja\Reports; -use Auth; -use Utils; use App\Models\Task; +use Utils; class TaskReport extends AbstractReport { diff --git a/app/Ninja/Repositories/AccountGatewayRepository.php b/app/Ninja/Repositories/AccountGatewayRepository.php index 03b41be7e92c..f338ccb316cf 100644 --- a/app/Ninja/Repositories/AccountGatewayRepository.php +++ b/app/Ninja/Repositories/AccountGatewayRepository.php @@ -1,4 +1,6 @@ -save(); $user = new User(); - if (!$firstName && !$lastName && !$email && !$password) { + if (! $firstName && ! $lastName && ! $email && ! $password) { $user->password = str_random(RANDOM_KEY_LENGTH); $user->username = str_random(RANDOM_KEY_LENGTH); } else { $user->first_name = $firstName; $user->last_name = $lastName; $user->email = $user->username = $email; - if (!$password) { + if (! $password) { $password = str_random(RANDOM_KEY_LENGTH); } $user->password = bcrypt($password); } - $user->confirmed = !Utils::isNinja(); - $user->registered = !Utils::isNinja() || $email; + $user->confirmed = ! Utils::isNinja(); + $user->registered = ! Utils::isNinja() || $email; - if (!$user->confirmed) { + if (! $user->confirmed) { $user->confirmation_code = str_random(RANDOM_KEY_LENGTH); } @@ -116,7 +118,7 @@ class AccountRepository } else { $clients = Client::scope() ->where('user_id', '=', $user->id) - ->with(['contacts', 'invoices' => function($query) use ($user) { + ->with(['contacts', 'invoices' => function ($query) use ($user) { $query->where('user_id', '=', $user->id); }])->get(); } @@ -185,11 +187,11 @@ class AccountRepository foreach ($entityTypes as $entityType) { $features[] = [ "new_{$entityType}", - Utils::pluralizeEntityType($entityType) . '/create' + Utils::pluralizeEntityType($entityType) . '/create', ]; $features[] = [ 'list_' . Utils::pluralizeEntityType($entityType), - Utils::pluralizeEntityType($entityType) + Utils::pluralizeEntityType($entityType), ]; } @@ -208,7 +210,7 @@ class AccountRepository $settings = array_merge(Account::$basicSettings, Account::$advancedSettings); - if ( ! Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { $settings[] = ACCOUNT_SYSTEM_SETTINGS; } @@ -223,7 +225,7 @@ class AccountRepository $data[] = [ 'value' => trans('texts.' . $feature[0]), 'tokens' => trans('texts.' . $feature[0]), - 'url' => URL::to($feature[1]) + 'url' => URL::to($feature[1]), ]; } @@ -384,7 +386,7 @@ class AccountRepository ->first(); $clientExists = $client ? true : false; - if (!$client) { + if (! $client) { $client = new Client(); $client->public_id = $account->id; $client->account_id = $ninjaAccount->id; @@ -436,11 +438,12 @@ class AccountRepository public function updateUserFromOauth($user, $firstName, $lastName, $email, $providerId, $oauthUserId) { - if (!$user->registered) { + if (! $user->registered) { $rules = ['email' => 'email|required|unique:users,email,'.$user->id.',id']; $validator = Validator::make(['email' => $email], $rules); if ($validator->fails()) { $messages = $validator->messages(); + return $messages->first('email'); } @@ -505,9 +508,22 @@ class AccountRepository } } + public function findUser($user, $accountKey) + { + $users = $this->findUsers($user, 'account'); + + foreach ($users as $user) { + if ($accountKey && hash_equals($user->account->account_key, $accountKey)) { + return $user; + } + } + + return false; + } + public function findUserAccounts($userId1, $userId2 = false) { - if (!Schema::hasTable('user_accounts')) { + if (! Schema::hasTable('user_accounts')) { return false; } @@ -530,12 +546,12 @@ class AccountRepository public function getUserAccounts($record, $with = null) { - if (!$record) { + if (! $record) { return false; } $userIds = []; - for ($i=1; $i<=5; $i++) { + for ($i = 1; $i <= 5; $i++) { $field = "user_id$i"; if ($record->$field) { $userIds[] = $record->$field; @@ -554,7 +570,7 @@ class AccountRepository public function prepareUsersData($record) { - if (!$record) { + if (! $record) { return false; } @@ -576,18 +592,20 @@ class AccountRepository return $data; } - public function loadAccounts($userId) { + public function loadAccounts($userId) + { $record = self::findUserAccounts($userId); + return self::prepareUsersData($record); } - public function associateAccounts($userId1, $userId2) { - + public function associateAccounts($userId1, $userId2) + { $record = self::findUserAccounts($userId1, $userId2); if ($record) { foreach ([$userId1, $userId2] as $userId) { - if (!$record->hasUserId($userId)) { + if (! $record->hasUserId($userId)) { $record->setUserId($userId); } } @@ -603,9 +621,9 @@ class AccountRepository // Pick the primary user foreach ($users as $user) { - if (!$user->public_id) { + if (! $user->public_id) { $useAsPrimary = false; - if(empty($primaryUser)) { + if (empty($primaryUser)) { $useAsPrimary = true; } @@ -618,7 +636,7 @@ class AccountRepository $planLevel = 2; } - if (!$useAsPrimary && ( + if (! $useAsPrimary && ( $planLevel > $primaryUserPlanLevel || ($planLevel == $primaryUserPlanLevel && $planDetails['expires'] > $primaryUserPlanExpires) )) { @@ -626,7 +644,7 @@ class AccountRepository } } - if ($useAsPrimary) { + if ($useAsPrimary) { $primaryUser = $user; $primaryUserPlanLevel = $planLevel; if ($planDetails) { @@ -637,7 +655,7 @@ class AccountRepository } // Merge other companies into the primary user's company - if (!empty($primaryUser)) { + if (! empty($primaryUser)) { foreach ($users as $user) { if ($user == $primaryUser || $user->public_id) { continue; @@ -656,7 +674,8 @@ class AccountRepository return $users; } - public function unlinkAccount($account) { + public function unlinkAccount($account) + { foreach ($account->users as $user) { if ($userAccount = self::findUserAccounts($user->id)) { $userAccount->removeUserId($user->id); @@ -665,7 +684,8 @@ class AccountRepository } } - public function unlinkUser($userAccountId, $userId) { + public function unlinkUser($userAccountId, $userId) + { $userAccount = UserAccount::whereId($userAccountId)->first(); if ($userAccount->hasUserId($userId)) { $userAccount->removeUserId($userId); @@ -674,7 +694,7 @@ class AccountRepository $user = User::whereId($userId)->first(); - if (!$user->public_id && $user->account->company->accounts->count() > 1) { + if (! $user->public_id && $user->account->hasMultipleAccounts()) { $company = Company::create(); $company->save(); $user->account->company_id = $company->id; diff --git a/app/Ninja/Repositories/ActivityRepository.php b/app/Ninja/Repositories/ActivityRepository.php index 6a1b1a1740f1..e8538a988ed6 100644 --- a/app/Ninja/Repositories/ActivityRepository.php +++ b/app/Ninja/Repositories/ActivityRepository.php @@ -1,12 +1,14 @@ -bank_accounts()->save($bankAccount); foreach ($input['bank_accounts'] as $data) { - if ( ! isset($data['include']) || ! filter_var($data['include'], FILTER_VALIDATE_BOOLEAN)) { + if (! isset($data['include']) || ! filter_var($data['include'], FILTER_VALIDATE_BOOLEAN)) { continue; } diff --git a/app/Ninja/Repositories/BaseRepository.php b/app/Ninja/Repositories/BaseRepository.php index 71d8c1b9fbdc..39c9cb76efc6 100644 --- a/app/Ninja/Repositories/BaseRepository.php +++ b/app/Ninja/Repositories/BaseRepository.php @@ -1,10 +1,12 @@ -getClassName(); + return new $className(); } /** * @param $entity * @param $type + * * @return string */ private function getEventClass($entity, $type) @@ -58,7 +62,7 @@ class BaseRepository */ public function restore($entity) { - if ( ! $entity->trashed()) { + if (! $entity->trashed()) { return; } @@ -102,11 +106,12 @@ class BaseRepository /** * @param $ids * @param $action + * * @return int */ public function bulk($ids, $action) { - if ( ! $ids ) { + if (! $ids) { return 0; } @@ -123,6 +128,7 @@ class BaseRepository /** * @param $ids + * * @return mixed */ public function findByPublicIds($ids) @@ -132,6 +138,7 @@ class BaseRepository /** * @param $ids + * * @return mixed */ public function findByPublicIdsWithTrashed($ids) @@ -155,7 +162,7 @@ class BaseRepository $query->orWhere(function ($query) use ($table) { $query->whereNotNull($table . '.deleted_at'); - if ( ! in_array($table, ['users'])) { + if (! in_array($table, ['users'])) { $query->where($table . '.is_deleted', '=', 0); } }); diff --git a/app/Ninja/Repositories/ClientRepository.php b/app/Ninja/Repositories/ClientRepository.php index 5156298e453b..f2c3d19a1fcc 100644 --- a/app/Ninja/Repositories/ClientRepository.php +++ b/app/Ninja/Repositories/ClientRepository.php @@ -1,12 +1,14 @@ -account->client_number_counter && empty($data['id_number'])) { $data['id_number'] = Auth::user()->account->getNextNumber(); @@ -92,7 +94,7 @@ class ClientRepository extends BaseRepository // convert currency code to id if (isset($data['currency_code'])) { $currencyCode = strtolower($data['currency_code']); - $currency = Cache::get('currencies')->filter(function($item) use ($currencyCode) { + $currency = Cache::get('currencies')->filter(function ($item) use ($currencyCode) { return strtolower($item->code) == $currencyCode; })->first(); if ($currency) { @@ -128,15 +130,15 @@ class ClientRepository extends BaseRepository $first = false; } - if ( ! $client->wasRecentlyCreated) { + if (! $client->wasRecentlyCreated) { foreach ($client->contacts as $contact) { - if (!in_array($contact->public_id, $contactIds)) { + if (! in_array($contact->public_id, $contactIds)) { $contact->delete(); } } } - if (!$publicId || $publicId == '-1') { + if (! $publicId || $publicId == '-1') { event(new ClientWasCreated($client)); } else { event(new ClientWasUpdated($client)); @@ -158,7 +160,7 @@ class ClientRepository extends BaseRepository foreach ($clients as $client) { $map[$client->id] = $client; - if ( ! $client->name) { + if (! $client->name) { continue; } @@ -173,7 +175,7 @@ class ClientRepository extends BaseRepository $contacts = Contact::scope()->get(['client_id', 'first_name', 'last_name', 'public_id']); foreach ($contacts as $contact) { - if ( ! $contact->getFullName() || ! isset($map[$contact->client_id])) { + if (! $contact->getFullName() || ! isset($map[$contact->client_id])) { continue; } @@ -187,5 +189,4 @@ class ClientRepository extends BaseRepository return ($clientId && isset($map[$clientId])) ? $map[$clientId] : null; } - } diff --git a/app/Ninja/Repositories/ContactRepository.php b/app/Ninja/Repositories/ContactRepository.php index 6f157c1c40b8..51a30bec46d4 100644 --- a/app/Ninja/Repositories/ContactRepository.php +++ b/app/Ninja/Repositories/ContactRepository.php @@ -1,4 +1,6 @@ -send_invoice = true; $contact->client_id = $data['client_id']; @@ -23,4 +25,4 @@ class ContactRepository extends BaseRepository return $contact; } -} \ No newline at end of file +} diff --git a/app/Ninja/Repositories/CreditRepository.php b/app/Ninja/Repositories/CreditRepository.php index f7f4637ca3a0..adf89a709a38 100644 --- a/app/Ninja/Repositories/CreditRepository.php +++ b/app/Ninja/Repositories/CreditRepository.php @@ -1,9 +1,11 @@ -addColumn('credit_date', function ($model) { return Utils::fromSqlDate($model->credit_date); }) - ->addColumn('amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }) - ->addColumn('balance', function ($model) { return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); }) + ->addColumn('credit_date', function ($model) { + return Utils::fromSqlDate($model->credit_date); + }) + ->addColumn('amount', function ($model) { + return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); + }) + ->addColumn('balance', function ($model) { + return Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); + }) ->make(); return $table; @@ -88,18 +96,19 @@ class CreditRepository extends BaseRepository $publicId = isset($data['public_id']) ? $data['public_id'] : false; if ($credit) { - // do nothing + $credit->balance = Utils::parseFloat($input['balance']); } elseif ($publicId) { $credit = Credit::scope($publicId)->firstOrFail(); + $credit->balance = Utils::parseFloat($input['balance']); \Log::warning('Entity not set in credit repo save'); } else { $credit = Credit::createNew(); + $credit->balance = Utils::parseFloat($input['amount']); $credit->client_id = Client::getPrivateId($input['client']); } $credit->credit_date = Utils::toSqlDate($input['credit_date']); $credit->amount = Utils::parseFloat($input['amount']); - $credit->balance = Utils::parseFloat($input['amount']); $credit->private_notes = trim($input['private_notes']); $credit->save(); diff --git a/app/Ninja/Repositories/DashboardRepository.php b/app/Ninja/Repositories/DashboardRepository.php index 27524cf6625f..e1fce0310cf3 100644 --- a/app/Ninja/Repositories/DashboardRepository.php +++ b/app/Ninja/Repositories/DashboardRepository.php @@ -1,12 +1,14 @@ -data = $records; $record->label = trans("texts.{$entityType}s"); $record->lineTension = 0; @@ -102,11 +107,11 @@ class DashboardRepository } } - $data = new stdClass; + $data = new stdClass(); $data->labels = $labels; $data->datasets = $datasets; - $response = new stdClass; + $response = new stdClass(); $response->data = $data; $response->totals = $totals; @@ -115,7 +120,7 @@ class DashboardRepository private function rawChartData($entityType, $account, $groupBy, $startDate, $endDate, $currencyId) { - if ( ! in_array($groupBy, ['DAYOFYEAR', 'WEEK', 'MONTH'])) { + if (! in_array($groupBy, ['DAYOFYEAR', 'WEEK', 'MONTH'])) { return []; } @@ -177,10 +182,10 @@ class DashboardRepository ->where('invoices.is_public', '=', true) ->where('invoices.invoice_type_id', '=', INVOICE_TYPE_STANDARD); - if (!$viewAll){ - $metrics = $metrics->where(function($query) use($userId){ + if (! $viewAll) { + $metrics = $metrics->where(function ($query) use ($userId) { $query->where('invoices.user_id', '=', $userId); - $query->orwhere(function($query) use($userId){ + $query->orwhere(function ($query) use ($userId) { $query->where('invoices.user_id', '=', null); $query->where('clients.user_id', '=', $userId); }); @@ -207,14 +212,14 @@ class DashboardRepository ->where('payments.is_deleted', '=', false) ->whereNotIn('payments.payment_status_id', [PAYMENT_STATUS_VOIDED, PAYMENT_STATUS_FAILED]); - if (!$viewAll){ + if (! $viewAll) { $paidToDate->where('invoices.user_id', '=', $userId); } if ($startDate) { $paidToDate->where('payments.payment_date', '>=', $startDate); - } elseif ($account->financial_year_start) { - $paidToDate->where('payments.payment_date', '>=', $account->financialYearStart()); + } elseif ($startDate = $account->financialYearStart()) { + //$paidToDate->where('payments.payment_date', '>=', $startDate); } return $paidToDate->groupBy('payments.account_id') @@ -240,12 +245,12 @@ class DashboardRepository ->where('invoices.invoice_type_id', '=', INVOICE_TYPE_STANDARD) ->where('invoices.is_recurring', '=', false); - if (!$viewAll){ + if (! $viewAll) { $averageInvoice->where('invoices.user_id', '=', $userId); } - if ($account->financial_year_start) { - $averageInvoice->where('invoices.invoice_date', '>=', $account->financialYearStart()); + if ($startDate = $account->financialYearStart()) { + //$averageInvoice->where('invoices.invoice_date', '>=', $startDate); } return $averageInvoice->groupBy('accounts.id') @@ -267,7 +272,7 @@ class DashboardRepository ->groupBy('accounts.id') ->groupBy(DB::raw('CASE WHEN '.DB::getQueryGrammar()->wrap('clients.currency_id', true).' IS NULL THEN CASE WHEN '.DB::getQueryGrammar()->wrap('accounts.currency_id', true).' IS NULL THEN 1 ELSE '.DB::getQueryGrammar()->wrap('accounts.currency_id', true).' END ELSE '.DB::getQueryGrammar()->wrap('clients.currency_id', true).' END')); - if (!$viewAll) { + if (! $viewAll) { $balances->where('clients.user_id', '=', $userId); } @@ -279,7 +284,7 @@ class DashboardRepository $activities = Activity::where('activities.account_id', '=', $accountId) ->where('activities.activity_type_id', '>', 0); - if (!$viewAll){ + if (! $viewAll) { $activities = $activities->where('activities.user_id', '=', $userId); } @@ -306,7 +311,7 @@ class DashboardRepository ->where('contacts.is_primary', '=', true) ->where('invoices.due_date', '<', date('Y-m-d')); - if (!$viewAll){ + if (! $viewAll) { $pastDue = $pastDue->where('invoices.user_id', '=', $userId); } @@ -331,10 +336,13 @@ class DashboardRepository ->where('invoices.is_deleted', '=', false) ->where('invoices.is_public', '=', true) ->where('contacts.is_primary', '=', true) - ->where('invoices.due_date', '>=', date('Y-m-d')) + ->where(function($query) { + $query->where('invoices.due_date', '>=', date('Y-m-d')) + ->orWhereNull('invoices.due_date'); + }) ->orderBy('invoices.due_date', 'asc'); - if (!$viewAll){ + if (! $viewAll) { $upcoming = $upcoming->where('invoices.user_id', '=', $userId); } @@ -357,7 +365,7 @@ class DashboardRepository ->where('contacts.is_primary', '=', true) ->whereNotIn('payments.payment_status_id', [PAYMENT_STATUS_VOIDED, PAYMENT_STATUS_FAILED]); - if (!$viewAll){ + if (! $viewAll) { $payments = $payments->where('payments.user_id', '=', $userId); } @@ -367,7 +375,7 @@ class DashboardRepository ->get(); } - public function expenses($accountId, $userId, $viewAll) + public function expenses($account, $userId, $viewAll) { $amountField = DB::getQueryGrammar()->wrap('expenses.amount', true); $taxRate1Field = DB::getQueryGrammar()->wrap('expenses.tax_rate1', true); @@ -377,17 +385,21 @@ class DashboardRepository "SUM({$amountField} + ({$amountField} * {$taxRate1Field} / 100) + ({$amountField} * {$taxRate2Field} / 100)) as value," .DB::getQueryGrammar()->wrap('expenses.expense_currency_id', true).' as currency_id' ); - $paidToDate = DB::table('accounts') + $expenses = DB::table('accounts') ->select($select) ->leftJoin('expenses', 'accounts.id', '=', 'expenses.account_id') - ->where('accounts.id', '=', $accountId) + ->where('accounts.id', '=', $account->id) ->where('expenses.is_deleted', '=', false); - if (!$viewAll){ - $paidToDate = $paidToDate->where('expenses.user_id', '=', $userId); + if (! $viewAll) { + $expenses = $expenses->where('expenses.user_id', '=', $userId); } - return $paidToDate->groupBy('accounts.id') + if ($startDate = $account->financialYearStart()) { + //$expenses->where('expenses.expense_date', '>=', $startDate); + } + + return $expenses->groupBy('accounts.id') ->groupBy('expenses.expense_currency_id') ->get(); } diff --git a/app/Ninja/Repositories/DocumentRepository.php b/app/Ninja/Repositories/DocumentRepository.php index 2a950a7726e8..cd575ddcf382 100644 --- a/app/Ninja/Repositories/DocumentRepository.php +++ b/app/Ninja/Repositories/DocumentRepository.php @@ -1,10 +1,12 @@ -getClientOriginalExtension()); - if(empty(Document::$types[$extension]) && !empty(Document::$extraExtensions[$extension])){ + if (empty(Document::$types[$extension]) && ! empty(Document::$extraExtensions[$extension])) { $documentType = Document::$extraExtensions[$extension]; - } - else{ + } else { $documentType = $extension; } - if(empty(Document::$types[$documentType])){ + if (empty(Document::$types[$documentType])) { return 'Unsupported file type'; } @@ -71,7 +72,7 @@ class DocumentRepository extends BaseRepository $name = $uploaded->getClientOriginalName(); $size = filesize($filePath); - if($size/1000 > MAX_DOCUMENT_SIZE){ + if ($size / 1000 > MAX_DOCUMENT_SIZE) { return 'File too large'; } @@ -87,28 +88,28 @@ class DocumentRepository extends BaseRepository $document->fill($data); $disk = $document->getDisk(); - if(!$disk->exists($filename)){// Have we already stored the same file + if (! $disk->exists($filename)) {// Have we already stored the same file $stream = fopen($filePath, 'r'); - $disk->getDriver()->putStream($filename, $stream, ['mimetype'=>$documentTypeData['mime']]); + $disk->getDriver()->putStream($filename, $stream, ['mimetype' => $documentTypeData['mime']]); fclose($stream); } // This is an image; check if we need to create a preview - if(in_array($documentType, ['jpeg','png','gif','bmp','tiff','psd'])){ + if (in_array($documentType, ['jpeg', 'png', 'gif', 'bmp', 'tiff', 'psd'])) { $makePreview = false; $imageSize = getimagesize($filePath); $width = $imageSize[0]; $height = $imageSize[1]; $imgManagerConfig = []; - if(in_array($documentType, ['gif','bmp','tiff','psd'])){ + if (in_array($documentType, ['gif', 'bmp', 'tiff', 'psd'])) { // Needs to be converted $makePreview = true; - } else if($width > DOCUMENT_PREVIEW_SIZE || $height > DOCUMENT_PREVIEW_SIZE){ + } elseif ($width > DOCUMENT_PREVIEW_SIZE || $height > DOCUMENT_PREVIEW_SIZE) { $makePreview = true; } - if(in_array($documentType,['bmp','tiff','psd'])){ - if(!class_exists('Imagick')){ + if (in_array($documentType, ['bmp', 'tiff', 'psd'])) { + if (! class_exists('Imagick')) { // Cant't read this $makePreview = false; } else { @@ -116,24 +117,24 @@ class DocumentRepository extends BaseRepository } } - if($makePreview){ + if ($makePreview) { $previewType = 'jpeg'; - if(in_array($documentType, ['png','gif','tiff','psd'])){ + if (in_array($documentType, ['png', 'gif', 'tiff', 'psd'])) { // Has transparency $previewType = 'png'; } $document->preview = \Auth::user()->account->account_key.'/'.$hash.'.'.$documentType.'.x'.DOCUMENT_PREVIEW_SIZE.'.'.$previewType; - if(!$disk->exists($document->preview)){ + if (! $disk->exists($document->preview)) { // We haven't created a preview yet $imgManager = new ImageManager($imgManagerConfig); $img = $imgManager->make($filePath); - if($width <= DOCUMENT_PREVIEW_SIZE && $height <= DOCUMENT_PREVIEW_SIZE){ + if ($width <= DOCUMENT_PREVIEW_SIZE && $height <= DOCUMENT_PREVIEW_SIZE) { $previewWidth = $width; $previewHeight = $height; - } else if($width > $height) { + } elseif ($width > $height) { $previewWidth = DOCUMENT_PREVIEW_SIZE; $previewHeight = $height * DOCUMENT_PREVIEW_SIZE / $width; } else { @@ -146,11 +147,10 @@ class DocumentRepository extends BaseRepository $previewContent = (string) $img->encode($previewType); $disk->put($document->preview, $previewContent); $base64 = base64_encode($previewContent); - } - else{ + } else { $base64 = base64_encode($disk->get($document->preview)); } - }else{ + } else { $base64 = base64_encode(file_get_contents($filePath)); } } @@ -161,7 +161,7 @@ class DocumentRepository extends BaseRepository $document->hash = $hash; $document->name = substr($name, -255); - if(!empty($imageSize)){ + if (! empty($imageSize)) { $document->width = $imageSize[0]; $document->height = $imageSize[1]; } @@ -169,8 +169,8 @@ class DocumentRepository extends BaseRepository $document->save(); $doc_array = $document->toArray(); - if(!empty($base64)){ - $mime = Document::$types[!empty($previewType)?$previewType:$documentType]['mime']; + if (! empty($base64)) { + $mime = Document::$types[! empty($previewType) ? $previewType : $documentType]['mime']; $doc_array['base64'] = 'data:'.$mime.';base64,'.$base64; } @@ -179,8 +179,7 @@ class DocumentRepository extends BaseRepository public function getClientDatatable($contactId, $entityType, $search) { - - $query = DB::table('invitations') + $query = DB::table('invitations') ->join('accounts', 'accounts.id', '=', 'invitations.account_id') ->join('invoices', 'invoices.id', '=', 'invitations.invoice_id') ->join('documents', 'documents.invoice_id', '=', 'invitations.invoice_id') @@ -213,7 +212,7 @@ class DocumentRepository extends BaseRepository return link_to( '/client/documents/'.$model->invitation_key.'/'.$model->public_id.'/'.$model->name, $model->name, - ['target'=>'_blank'] + ['target' => '_blank'] )->toHtml(); }) ->addColumn('document_date', function ($model) { diff --git a/app/Ninja/Repositories/ExpenseCategoryRepository.php b/app/Ninja/Repositories/ExpenseCategoryRepository.php index a9224b4266a5..8ef629a17487 100644 --- a/app/Ninja/Repositories/ExpenseCategoryRepository.php +++ b/app/Ninja/Repositories/ExpenseCategoryRepository.php @@ -1,9 +1,10 @@ -orWhere('expenses.invoice_id', '>', 0); - if ( ! in_array(EXPENSE_STATUS_PAID, $statuses)) { + if (! in_array(EXPENSE_STATUS_PAID, $statuses)) { $query->where('invoices.balance', '>', 0); } } @@ -123,7 +125,8 @@ class ExpenseRepository extends BaseRepository $query->where('expenses.public_notes', 'like', '%'.$filter.'%') ->orWhere('clients.name', 'like', '%'.$filter.'%') ->orWhere('vendors.name', 'like', '%'.$filter.'%') - ->orWhere('expense_categories.name', 'like', '%'.$filter.'%');; + ->orWhere('expense_categories.name', 'like', '%'.$filter.'%'); + ; }); } @@ -158,10 +161,10 @@ class ExpenseRepository extends BaseRepository $expense->should_be_invoiced = isset($input['should_be_invoiced']) && floatval($input['should_be_invoiced']) || $expense->client_id ? true : false; - if ( ! $expense->expense_currency_id) { + if (! $expense->expense_currency_id) { $expense->expense_currency_id = \Auth::user()->account->getCurrencyId(); } - if ( ! $expense->invoice_currency_id) { + if (! $expense->invoice_currency_id) { $expense->invoice_currency_id = \Auth::user()->account->getCurrencyId(); } @@ -174,12 +177,13 @@ class ExpenseRepository extends BaseRepository $expense->save(); // Documents - $document_ids = !empty($input['document_ids'])?array_map('intval', $input['document_ids']):[];; - foreach ($document_ids as $document_id){ + $document_ids = ! empty($input['document_ids']) ? array_map('intval', $input['document_ids']) : []; + ; + foreach ($document_ids as $document_id) { // check document completed upload before user submitted form if ($document_id) { $document = Document::scope($document_id)->first(); - if($document && Auth::user()->can('edit', $document)){ + if ($document && Auth::user()->can('edit', $document)) { $document->invoice_id = null; $document->expense_id = $expense->id; $document->save(); @@ -188,9 +192,9 @@ class ExpenseRepository extends BaseRepository } // prevent loading all of the documents if we don't have to - if ( ! $expense->wasRecentlyCreated) { - foreach ($expense->documents as $document){ - if ( ! in_array($document->public_id, $document_ids)){ + if (! $expense->wasRecentlyCreated) { + foreach ($expense->documents as $document) { + if (! in_array($document->public_id, $document_ids)) { // Not checking permissions; deleting a document is just editing the invoice $document->delete(); } diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index 2527a601e7a7..6169835bc5e4 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -1,19 +1,21 @@ -orWhere('invoice_status_id', '=', $status); } + if (in_array(INVOICE_STATUS_UNPAID, $statuses)) { + $query->orWhere(function ($query) use ($statuses) { + $query->where('invoices.balance', '>', 0) + ->where('invoices.is_public', '=', true); + }); + } if (in_array(INVOICE_STATUS_OVERDUE, $statuses)) { $query->orWhere(function ($query) use ($statuses) { $query->where('invoices.balance', '>', 0) @@ -209,10 +217,18 @@ class InvoiceRepository extends BaseRepository ); $table = \Datatable::query($query) - ->addColumn('frequency', function ($model) { return $model->frequency; }) - ->addColumn('start_date', function ($model) { return Utils::fromSqlDate($model->start_date); }) - ->addColumn('end_date', function ($model) { return Utils::fromSqlDate($model->end_date); }) - ->addColumn('amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }) + ->addColumn('frequency', function ($model) { + return $model->frequency; + }) + ->addColumn('start_date', function ($model) { + return Utils::fromSqlDate($model->start_date); + }) + ->addColumn('end_date', function ($model) { + return Utils::fromSqlDate($model->end_date); + }) + ->addColumn('amount', function ($model) { + return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); + }) ->addColumn('client_enable_auto_bill', function ($model) { if ($model->client_enable_auto_bill) { return trans('texts.enabled') . ' - '.trans('texts.disable').''; @@ -260,28 +276,37 @@ class InvoiceRepository extends BaseRepository ); $table = \Datatable::query($query) - ->addColumn('invoice_number', function ($model) use ($entityType) { return link_to('/view/'.$model->invitation_key, $model->invoice_number)->toHtml(); }) - ->addColumn('invoice_date', function ($model) { return Utils::fromSqlDate($model->invoice_date); }) - ->addColumn('amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }); + ->addColumn('invoice_number', function ($model) use ($entityType) { + return link_to('/view/'.$model->invitation_key, $model->invoice_number)->toHtml(); + }) + ->addColumn('invoice_date', function ($model) { + return Utils::fromSqlDate($model->invoice_date); + }) + ->addColumn('amount', function ($model) { + return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); + }); if ($entityType == ENTITY_INVOICE) { $table->addColumn('balance', function ($model) { return $model->partial > 0 ? trans('texts.partial_remaining', [ 'partial' => Utils::formatMoney($model->partial, $model->currency_id, $model->country_id), - 'balance' => Utils::formatMoney($model->balance, $model->currency_id, $model->country_id) + 'balance' => Utils::formatMoney($model->balance, $model->currency_id, $model->country_id), ]) : Utils::formatMoney($model->balance, $model->currency_id, $model->country_id); }); } - return $table->addColumn('due_date', function ($model) { return Utils::fromSqlDate($model->due_date); }) + return $table->addColumn('due_date', function ($model) { + return Utils::fromSqlDate($model->due_date); + }) ->make(); } /** - * @param array $data + * @param array $data * @param Invoice|null $invoice + * * @return Invoice|mixed */ public function save(array $data, Invoice $invoice = null) @@ -290,7 +315,7 @@ class InvoiceRepository extends BaseRepository $account = \Auth::user()->account; $publicId = isset($data['public_id']) ? $data['public_id'] : false; - $isNew = !$publicId || $publicId == '-1'; + $isNew = ! $publicId || $publicId == '-1'; if ($invoice) { // do nothing @@ -310,8 +335,11 @@ class InvoiceRepository extends BaseRepository if (isset($data['has_expenses']) && filter_var($data['has_expenses'], FILTER_VALIDATE_BOOLEAN)) { $invoice->has_expenses = true; } - if ($account->payment_terms != 0) { - $invoice->due_date = $account->defaultDueDate(); + + // set the default due date + if ($entityType == ENTITY_INVOICE) { + $client = Client::scope()->whereId($data['client_id'])->first(); + $invoice->due_date = $account->defaultDueDate($client); } } else { $invoice = Invoice::scope($publicId)->firstOrFail(); @@ -326,7 +354,7 @@ class InvoiceRepository extends BaseRepository if (isset($data['is_public']) && filter_var($data['is_public'], FILTER_VALIDATE_BOOLEAN)) { $invoice->is_public = true; - if ( ! $invoice->isSent()) { + if (! $invoice->isSent()) { $invoice->invoice_status_id = INVOICE_STATUS_SENT; } } @@ -344,7 +372,7 @@ class InvoiceRepository extends BaseRepository $account->save(); } - if (!empty($data['invoice_number']) && !$invoice->is_recurring) { + if (! empty($data['invoice_number']) && ! $invoice->is_recurring) { $invoice->invoice_number = trim($data['invoice_number']); } @@ -360,8 +388,8 @@ class InvoiceRepository extends BaseRepository $invoice->invoice_date = Utils::toSqlDate($data['invoice_date']); } - if(isset($data['invoice_status_id'])) { - if($data['invoice_status_id'] == 0) { + if (isset($data['invoice_status_id'])) { + if ($data['invoice_status_id'] == 0) { $data['invoice_status_id'] = INVOICE_STATUS_DRAFT; } $invoice->invoice_status_id = $data['invoice_status_id']; @@ -378,7 +406,7 @@ class InvoiceRepository extends BaseRepository $invoice->client_enable_auto_bill = isset($data['client_enable_auto_bill']) && $data['client_enable_auto_bill'] ? true : false; $invoice->auto_bill = array_get($data, 'auto_bill_id') ?: array_get($data, 'auto_bill', AUTO_BILL_OFF); - if ($invoice->auto_bill < AUTO_BILL_OFF || $invoice->auto_bill > AUTO_BILL_ALWAYS ) { + if ($invoice->auto_bill < AUTO_BILL_OFF || $invoice->auto_bill > AUTO_BILL_ALWAYS) { $invoice->auto_bill = AUTO_BILL_OFF; } @@ -388,7 +416,7 @@ class InvoiceRepository extends BaseRepository $invoice->due_date = $data['due_date']; } } else { - if (!empty($data['due_date']) || !empty($data['due_date_sql'])) { + if (! empty($data['due_date']) || ! empty($data['due_date_sql'])) { $invoice->due_date = isset($data['due_date_sql']) ? $data['due_date_sql'] : Utils::toSqlDate($data['due_date']); } $invoice->frequency_id = 0; @@ -404,11 +432,11 @@ class InvoiceRepository extends BaseRepository $invoice->terms = ''; } - $invoice->invoice_footer = (isset($data['invoice_footer']) && trim($data['invoice_footer'])) ? trim($data['invoice_footer']) : (!$publicId && $account->invoice_footer ? $account->invoice_footer : ''); - $invoice->public_notes = isset($data['public_notes']) ? trim($data['public_notes']) : null; + $invoice->invoice_footer = (isset($data['invoice_footer']) && trim($data['invoice_footer'])) ? trim($data['invoice_footer']) : (! $publicId && $account->invoice_footer ? $account->invoice_footer : ''); + $invoice->public_notes = isset($data['public_notes']) ? trim($data['public_notes']) : ''; // process date variables if not recurring - if(!$invoice->is_recurring) { + if (! $invoice->is_recurring) { $invoice->terms = Utils::processVariables($invoice->terms); $invoice->invoice_footer = Utils::processVariables($invoice->invoice_footer); $invoice->public_notes = Utils::processVariables($invoice->public_notes); @@ -431,7 +459,7 @@ class InvoiceRepository extends BaseRepository foreach ($data['invoice_items'] as $item) { $item = (array) $item; - if (!$item['cost'] && !$item['product_key'] && !$item['notes']) { + if (! $item['cost'] && ! $item['product_key'] && ! $item['notes']) { continue; } @@ -450,9 +478,9 @@ class InvoiceRepository extends BaseRepository if ($invoice->discount > 0) { if ($invoice->is_amount_discount) { - $lineTotal -= round(($lineTotal/$total) * $invoice->discount, 2); + $lineTotal -= round(($lineTotal / $total) * $invoice->discount, 2); } else { - $lineTotal -= round($lineTotal * ($invoice->discount/100), 2); + $lineTotal -= round($lineTotal * ($invoice->discount / 100), 2); } } @@ -470,7 +498,7 @@ class InvoiceRepository extends BaseRepository if ($invoice->is_amount_discount) { $total -= $invoice->discount; } else { - $discount = round($total * ($invoice->discount/100), 2); + $discount = round($total * ($invoice->discount / 100), 2); $total -= $discount; } } @@ -509,10 +537,10 @@ class InvoiceRepository extends BaseRepository $total += $itemTax; // custom fields not charged taxes - if ($invoice->custom_value1 && !$invoice->custom_taxes1) { + if ($invoice->custom_value1 && ! $invoice->custom_taxes1) { $total += $invoice->custom_value1; } - if ($invoice->custom_value2 && !$invoice->custom_taxes2) { + if ($invoice->custom_value2 && ! $invoice->custom_taxes2) { $total += $invoice->custom_value2; } @@ -523,7 +551,7 @@ class InvoiceRepository extends BaseRepository } if (isset($data['partial'])) { - $invoice->partial = max(0,min(round(Utils::parseFloat($data['partial']), 2), $invoice->balance)); + $invoice->partial = max(0, min(round(Utils::parseFloat($data['partial']), 2), $invoice->balance)); } $invoice->amount = $total; @@ -533,16 +561,15 @@ class InvoiceRepository extends BaseRepository $invoice->invoice_items()->forceDelete(); } - if ( ! empty($data['document_ids'])) { + if (! empty($data['document_ids'])) { $document_ids = array_map('intval', $data['document_ids']); - foreach ($document_ids as $document_id){ + foreach ($document_ids as $document_id) { $document = Document::scope($document_id)->first(); - if($document && Auth::user()->can('edit', $document)){ - - if($document->invoice_id && $document->invoice_id != $invoice->id){ + if ($document && Auth::user()->can('edit', $document)) { + if ($document->invoice_id && $document->invoice_id != $invoice->id) { // From a clone $document = $document->cloneDocument(); - $document_ids[] = $document->public_id;// Don't remove this document + $document_ids[] = $document->public_id; // Don't remove this document } $document->invoice_id = $invoice->id; @@ -551,12 +578,12 @@ class InvoiceRepository extends BaseRepository } } - if ( ! $invoice->wasRecentlyCreated) { - foreach ($invoice->documents as $document){ - if(!in_array($document->public_id, $document_ids)){ + if (! $invoice->wasRecentlyCreated) { + foreach ($invoice->documents as $document) { + if (! in_array($document->public_id, $document_ids)) { // Removed // Not checking permissions; deleting a document is just editing the invoice - if($document->invoice_id == $invoice->id){ + if ($document->invoice_id == $invoice->id) { // Make sure the document isn't on a clone $document->delete(); } @@ -574,7 +601,7 @@ class InvoiceRepository extends BaseRepository $task = false; if (isset($item['task_public_id']) && $item['task_public_id']) { $task = Task::scope($item['task_public_id'])->where('invoice_id', '=', null)->firstOrFail(); - if(Auth::user()->can('edit', $task)){ + if (Auth::user()->can('edit', $task)) { $task->invoice_id = $invoice->id; $task->client_id = $invoice->client_id; $task->save(); @@ -584,7 +611,7 @@ class InvoiceRepository extends BaseRepository $expense = false; if (isset($item['expense_public_id']) && $item['expense_public_id']) { $expense = Expense::scope($item['expense_public_id'])->where('invoice_id', '=', null)->firstOrFail(); - if(Auth::user()->can('edit', $expense)){ + if (Auth::user()->can('edit', $expense)) { $expense->invoice_id = $invoice->id; $expense->client_id = $invoice->client_id; $expense->save(); @@ -594,18 +621,19 @@ class InvoiceRepository extends BaseRepository if ($productKey = trim($item['product_key'])) { if (\Auth::user()->account->update_products && ! $invoice->has_tasks && ! $invoice->has_expenses) { $product = Product::findProductByKey($productKey); - if (!$product) { + if (! $product) { if (Auth::user()->can('create', ENTITY_PRODUCT)) { $product = Product::createNew(); $product->product_key = trim($item['product_key']); - } - else{ + } else { $product = null; } } if ($product && (Auth::user()->can('edit', $product))) { $product->notes = ($task || $expense) ? '' : $item['notes']; $product->cost = $expense ? 0 : $item['cost']; + $product->custom_value1 = isset($item['custom_value1']) ? $item['custom_value1'] : null; + $product->custom_value2 = isset($item['custom_value2']) ? $item['custom_value2'] : null; $product->save(); } } @@ -641,7 +669,8 @@ class InvoiceRepository extends BaseRepository /** * @param Invoice $invoice - * @param null $quotePublicId + * @param null $quotePublicId + * * @return mixed */ public function cloneInvoice(Invoice $invoice, $quotePublicId = null) @@ -669,6 +698,7 @@ class InvoiceRepository extends BaseRepository } $clone->invoice_number = $invoiceNumber ?: $account->getNextNumber($clone); $clone->invoice_date = date_create()->format('Y-m-d'); + $clone->due_date = $account->defaultDueDate($invoice->client); foreach ([ 'client_id', @@ -782,7 +812,7 @@ class InvoiceRepository extends BaseRepository */ public function markPaid(Invoice $invoice) { - if ( ! $invoice->canBePaid()) { + if (! $invoice->canBePaid()) { return; } @@ -799,26 +829,30 @@ class InvoiceRepository extends BaseRepository /** * @param $invitationKey + * * @return Invitation|bool */ public function findInvoiceByInvitation($invitationKey) { + // check for extra params at end of value (from website feature) + list($invitationKey) = explode('&', $invitationKey); + /** @var \App\Models\Invitation $invitation */ $invitation = Invitation::where('invitation_key', '=', $invitationKey)->first(); - if (!$invitation) { + if (! $invitation) { return false; } $invoice = $invitation->invoice; - if (!$invoice || $invoice->is_deleted) { + if (! $invoice || $invoice->is_deleted) { return false; } $invoice->load('user', 'invoice_items', 'documents', 'invoice_design', 'account.country', 'client.contacts', 'client.country'); $client = $invoice->client; - if (!$client || $client->is_deleted) { + if (! $client || $client->is_deleted) { return false; } @@ -827,6 +861,8 @@ class InvoiceRepository extends BaseRepository /** * @param $clientId + * @param mixed $entityType + * * @return mixed */ public function findOpenInvoices($clientId, $entityType = false) @@ -851,6 +887,7 @@ class InvoiceRepository extends BaseRepository /** * @param Invoice $recurInvoice + * * @return mixed */ public function createRecurringInvoice(Invoice $recurInvoice) @@ -861,11 +898,11 @@ class InvoiceRepository extends BaseRepository return false; } - if (!$recurInvoice->user->confirmed) { + if (! $recurInvoice->user->confirmed) { return false; } - if (!$recurInvoice->shouldSendToday()) { + if (! $recurInvoice->shouldSendToday()) { return false; } @@ -929,7 +966,7 @@ class InvoiceRepository extends BaseRepository $recurInvoice->last_sent_date = date('Y-m-d'); $recurInvoice->save(); - if ($recurInvoice->getAutoBillEnabled() && !$recurInvoice->account->auto_bill_on_due_date) { + if ($recurInvoice->getAutoBillEnabled() && ! $recurInvoice->account->auto_bill_on_due_date) { // autoBillInvoice will check for ACH, so we're not checking here if ($this->paymentService->autoBillInvoice($invoice)) { // update the invoice reference to match its actual state @@ -943,13 +980,14 @@ class InvoiceRepository extends BaseRepository /** * @param Account $account + * * @return mixed */ public function findNeedingReminding(Account $account) { $dates = []; - for ($i=1; $i<=3; $i++) { + for ($i = 1; $i <= 3; $i++) { if ($date = $account->getReminderDate($i)) { $field = $account->{"field_reminder{$i}"} == REMINDER_FIELD_DUE_DATE ? 'due_date' : 'invoice_date'; $dates[] = "$field = '$date'"; diff --git a/app/Ninja/Repositories/NinjaRepository.php b/app/Ninja/Repositories/NinjaRepository.php index d1dc7abede6e..20921ce07934 100644 --- a/app/Ninja/Repositories/NinjaRepository.php +++ b/app/Ninja/Repositories/NinjaRepository.php @@ -1,4 +1,6 @@ -first(); - if (!$account) { + if (! $account) { return; } $company = $account->company; - $company->plan = !empty($data['plan']) && $data['plan'] != PLAN_FREE?$data['plan']:null; - $company->plan_term = !empty($data['plan_term'])?$data['plan_term']:null; - $company->plan_paid = !empty($data['plan_paid'])?$data['plan_paid']:null; - $company->plan_started = !empty($data['plan_started'])?$data['plan_started']:null; - $company->plan_expires = !empty($data['plan_expires'])?$data['plan_expires']:null; + $company->plan = ! empty($data['plan']) && $data['plan'] != PLAN_FREE ? $data['plan'] : null; + $company->plan_term = ! empty($data['plan_term']) ? $data['plan_term'] : null; + $company->plan_paid = ! empty($data['plan_paid']) ? $data['plan_paid'] : null; + $company->plan_started = ! empty($data['plan_started']) ? $data['plan_started'] : null; + $company->plan_expires = ! empty($data['plan_expires']) ? $data['plan_expires'] : null; $company->save(); } diff --git a/app/Ninja/Repositories/PaymentRepository.php b/app/Ninja/Repositories/PaymentRepository.php index b6f37de72420..84b0c440b380 100644 --- a/app/Ninja/Repositories/PaymentRepository.php +++ b/app/Ninja/Repositories/PaymentRepository.php @@ -1,10 +1,12 @@ -transaction_reference = trim($input['transaction_reference']); } - if (!$publicId) { + if (! $publicId) { $clientId = $input['client_id']; $amount = Utils::parseFloat($input['amount']); @@ -193,7 +195,7 @@ class PaymentRepository extends BaseRepository $remaining = $amount; foreach ($credits as $credit) { $remaining -= $credit->apply($remaining); - if ( ! $remaining) { + if (! $remaining) { break; } } diff --git a/app/Ninja/Repositories/PaymentTermRepository.php b/app/Ninja/Repositories/PaymentTermRepository.php index bde31c20a81d..5562f68524a7 100644 --- a/app/Ninja/Repositories/PaymentTermRepository.php +++ b/app/Ninja/Repositories/PaymentTermRepository.php @@ -1,4 +1,6 @@ -where('payment_terms.account_id', '=', $accountId) + ->where('payment_terms.account_id', '=', $accountId) ->where('payment_terms.deleted_at', '=', null) ->select('payment_terms.public_id', 'payment_terms.name', 'payment_terms.num_days', 'payment_terms.deleted_at'); } diff --git a/app/Ninja/Repositories/ProductRepository.php b/app/Ninja/Repositories/ProductRepository.php index 6500124c513a..3e01d885669b 100644 --- a/app/Ninja/Repositories/ProductRepository.php +++ b/app/Ninja/Repositories/ProductRepository.php @@ -1,7 +1,9 @@ -leftJoin('tax_rates', function($join) { + ->leftJoin('tax_rates', function ($join) { $join->on('tax_rates.id', '=', 'products.default_tax_rate_id') ->whereNull('tax_rates.deleted_at'); }) @@ -80,7 +82,7 @@ class ProductRepository extends BaseRepository ->get(); foreach ($products as $product) { - if ( ! $product->product_key) { + if (! $product->product_key) { continue; } @@ -95,6 +97,4 @@ class ProductRepository extends BaseRepository return ($productId && isset($map[$productId])) ? $map[$productId] : null; } - - } diff --git a/app/Ninja/Repositories/ProjectRepository.php b/app/Ninja/Repositories/ProjectRepository.php index 64ba210ba3a9..8e1bedb5b14e 100644 --- a/app/Ninja/Repositories/ProjectRepository.php +++ b/app/Ninja/Repositories/ProjectRepository.php @@ -1,9 +1,10 @@ - 0, 'pro' => 0, - 'enterprise' => 0 + 'enterprise' => 0, ]; foreach ($accounts as $account) { diff --git a/app/Ninja/Repositories/TaskRepository.php b/app/Ninja/Repositories/TaskRepository.php index 579ef71e684c..e0dbc298ad24 100644 --- a/app/Ninja/Repositories/TaskRepository.php +++ b/app/Ninja/Repositories/TaskRepository.php @@ -1,10 +1,12 @@ -orWhere('tasks.invoice_id', '>', 0); - if ( ! in_array(TASK_STATUS_PAID, $statuses)) { + if (! in_array(TASK_STATUS_PAID, $statuses)) { $query->where('invoices.balance', '>', 0); } } @@ -137,11 +139,11 @@ class TaskRepository extends BaseRepository if ($data['action'] == 'start') { $task->is_running = true; $timeLog[] = [strtotime('now'), false]; - } else if ($data['action'] == 'resume') { + } elseif ($data['action'] == 'resume') { $task->is_running = true; $timeLog[] = [strtotime('now'), false]; - } else if ($data['action'] == 'stop' && $task->is_running) { - $timeLog[count($timeLog)-1][1] = time(); + } elseif ($data['action'] == 'stop' && $task->is_running) { + $timeLog[count($timeLog) - 1][1] = time(); $task->is_running = false; } } @@ -151,5 +153,4 @@ class TaskRepository extends BaseRepository return $task; } - } diff --git a/app/Ninja/Repositories/TaxRateRepository.php b/app/Ninja/Repositories/TaxRateRepository.php index 52f229afd9af..d16973941b50 100644 --- a/app/Ninja/Repositories/TaxRateRepository.php +++ b/app/Ninja/Repositories/TaxRateRepository.php @@ -1,8 +1,10 @@ -where('account_tokens.user_id', '=', $userId) - ->whereNull('account_tokens.deleted_at');; + ->whereNull('account_tokens.deleted_at'); + ; return $query->select('account_tokens.public_id', 'account_tokens.name', 'account_tokens.token', 'account_tokens.public_id', 'account_tokens.deleted_at'); } diff --git a/app/Ninja/Repositories/UserRepository.php b/app/Ninja/Repositories/UserRepository.php index 0d634aaed99b..3e9e3182c0dd 100644 --- a/app/Ninja/Repositories/UserRepository.php +++ b/app/Ninja/Repositories/UserRepository.php @@ -1,8 +1,8 @@ -send_invoice = true; $contact->vendor_id = $data['vendor_id']; @@ -24,4 +26,4 @@ class VendorContactRepository extends BaseRepository return $contact; } -} \ No newline at end of file +} diff --git a/app/Ninja/Repositories/VendorRepository.php b/app/Ninja/Repositories/VendorRepository.php index b64716fe7b63..0b5364841753 100644 --- a/app/Ninja/Repositories/VendorRepository.php +++ b/app/Ninja/Repositories/VendorRepository.php @@ -1,8 +1,10 @@ -with('vendor_contacts')->firstOrFail(); @@ -82,19 +84,19 @@ class VendorRepository extends BaseRepository $vendor->fill($data); $vendor->save(); - $first = true; - $vendorcontacts = isset($data['vendor_contact']) ? [$data['vendor_contact']] : $data['vendor_contacts']; - $vendorcontactIds = []; + $first = true; + $vendorcontacts = isset($data['vendor_contact']) ? [$data['vendor_contact']] : $data['vendor_contacts']; + $vendorcontactIds = []; foreach ($vendorcontacts as $vendorcontact) { - $vendorcontact = $vendor->addVendorContact($vendorcontact, $first); + $vendorcontact = $vendor->addVendorContact($vendorcontact, $first); $vendorcontactIds[] = $vendorcontact->public_id; - $first = false; + $first = false; } - if ( ! $vendor->wasRecentlyCreated) { + if (! $vendor->wasRecentlyCreated) { foreach ($vendor->vendor_contacts as $contact) { - if (!in_array($contact->public_id, $vendorcontactIds)) { + if (! in_array($contact->public_id, $vendorcontactIds)) { $contact->delete(); } } diff --git a/app/Ninja/Serializers/ArraySerializer.php b/app/Ninja/Serializers/ArraySerializer.php index a759ffc9e69c..071e697ce18a 100644 --- a/app/Ninja/Serializers/ArraySerializer.php +++ b/app/Ninja/Serializers/ArraySerializer.php @@ -1,15 +1,18 @@ - $account_token->name, - 'token' => $account_token->token + 'token' => $account_token->token, ]; } -} \ No newline at end of file +} diff --git a/app/Ninja/Transformers/AccountTransformer.php b/app/Ninja/Transformers/AccountTransformer.php index 434d9e7e3aeb..2dcecfe002c7 100644 --- a/app/Ninja/Transformers/AccountTransformer.php +++ b/app/Ninja/Transformers/AccountTransformer.php @@ -1,9 +1,11 @@ -serializer); + return $this->includeCollection($account->expense_categories, $transformer, 'expense_categories'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeProjects(Account $account) { $transformer = new ProjectTransformer($account, $this->serializer); + return $this->includeCollection($account->projects, $transformer, 'projects'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeUsers(Account $account) { $transformer = new UserTransformer($account, $this->serializer); + return $this->includeCollection($account->users, $transformer, 'users'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeClients(Account $account) { $transformer = new ClientTransformer($account, $this->serializer); + return $this->includeCollection($account->clients, $transformer, 'clients'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeInvoices(Account $account) { $transformer = new InvoiceTransformer($account, $this->serializer); + return $this->includeCollection($account->invoices, $transformer, 'invoices'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeProducts(Account $account) { $transformer = new ProductTransformer($account, $this->serializer); + return $this->includeCollection($account->products, $transformer, 'products'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includeTaxRates(Account $account) { $transformer = new TaxRateTransformer($account, $this->serializer); + return $this->includeCollection($account->tax_rates, $transformer, 'taxRates'); } /** * @param Account $account + * * @return \League\Fractal\Resource\Collection */ public function includePayments(Account $account) { $transformer = new PaymentTransformer($account, $this->serializer); + return $this->includeCollection($account->payments, $transformer, 'payments'); } /** * @param Account $account - * @return array + * * @throws \Laracasts\Presenter\Exceptions\PresenterException + * + * @return array */ public function transform(Account $account) { diff --git a/app/Ninja/Transformers/ActivityTransformer.php b/app/Ninja/Transformers/ActivityTransformer.php index 44a5a712b472..5c0ea3e3ab41 100644 --- a/app/Ninja/Transformers/ActivityTransformer.php +++ b/app/Ninja/Transformers/ActivityTransformer.php @@ -1,22 +1,24 @@ - $this->getTimestamp($activity->updated_at), 'expense_id' => $activity->expense_id ? $activity->expense->public_id : null, 'is_system' => $activity->is_system ? (bool) $activity->is_system : null, - 'contact_id' => $activity->contact_id ? $activity->contact->public_id : null + 'contact_id' => $activity->contact_id ? $activity->contact->public_id : null, ]; } } diff --git a/app/Ninja/Transformers/ClientTransformer.php b/app/Ninja/Transformers/ClientTransformer.php index 67239fa9b28d..2986eb73c1fb 100644 --- a/app/Ninja/Transformers/ClientTransformer.php +++ b/app/Ninja/Transformers/ClientTransformer.php @@ -1,42 +1,42 @@ -account, $this->serializer); + return $this->includeCollection($client->contacts, $transformer, ENTITY_CONTACT); } /** * @param Client $client + * * @return \League\Fractal\Resource\Collection */ public function includeInvoices(Client $client) { $transformer = new InvoiceTransformer($this->account, $this->serializer, $client); + return $this->includeCollection($client->invoices, $transformer, ENTITY_INVOICE); } /** * @param Client $client + * * @return \League\Fractal\Resource\Collection */ public function includeCredits(Client $client) { $transformer = new CreditTransformer($this->account, $this->serializer); + return $this->includeCollection($client->credits, $transformer, ENTITY_CREDIT); } /** * @param Client $client + * * @return \League\Fractal\Resource\Collection */ public function includeExpenses(Client $client) { $transformer = new ExpenseTransformer($this->account, $this->serializer); + return $this->includeCollection($client->expenses, $transformer, ENTITY_EXPENSE); } - /** * @param Client $client + * * @return array */ public function transform(Client $client) @@ -125,4 +133,4 @@ class ClientTransformer extends EntityTransformer 'custom_value2' => $client->custom_value2, ]); } -} \ No newline at end of file +} diff --git a/app/Ninja/Transformers/ContactTransformer.php b/app/Ninja/Transformers/ContactTransformer.php index 279658979ef3..4fd72ffde690 100644 --- a/app/Ninja/Transformers/ContactTransformer.php +++ b/app/Ninja/Transformers/ContactTransformer.php @@ -1,14 +1,17 @@ - $credit->private_notes, ]); } -} \ No newline at end of file +} diff --git a/app/Ninja/Transformers/DocumentTransformer.php b/app/Ninja/Transformers/DocumentTransformer.php index 2a9ac2abbc30..99ee24a6d1f2 100644 --- a/app/Ninja/Transformers/DocumentTransformer.php +++ b/app/Ninja/Transformers/DocumentTransformer.php @@ -1,4 +1,6 @@ -getDefaults($document), [ 'id' => (int) $document->public_id, 'name' => $document->name, - 'type' => $document->type, + 'type' => $document->type, 'invoice_id' => isset($document->invoice->public_id) ? (int) $document->invoice->public_id : null, 'expense_id' => isset($document->expense->public_id) ? (int) $document->expense->public_id : null, 'updated_at' => $this->getTimestamp($document->updated_at), diff --git a/app/Ninja/Transformers/EntityTransformer.php b/app/Ninja/Transformers/EntityTransformer.php index e40225af275e..4be378e72fc2 100644 --- a/app/Ninja/Transformers/EntityTransformer.php +++ b/app/Ninja/Transformers/EntityTransformer.php @@ -1,7 +1,9 @@ -getDefaults($expenseCategory), [ diff --git a/app/Ninja/Transformers/ExpenseTransformer.php b/app/Ninja/Transformers/ExpenseTransformer.php index 953eac338aee..0937f25f45f6 100644 --- a/app/Ninja/Transformers/ExpenseTransformer.php +++ b/app/Ninja/Transformers/ExpenseTransformer.php @@ -1,4 +1,6 @@ -account, $this->serializer); + return $this->includeCollection($invoice->invoice_items, $transformer, ENTITY_INVOICE_ITEM); } public function includeInvitations(Invoice $invoice) { $transformer = new InvitationTransformer($this->account, $this->serializer); + return $this->includeCollection($invoice->invitations, $transformer, ENTITY_INVITATION); } public function includePayments(Invoice $invoice) { $transformer = new PaymentTransformer($this->account, $this->serializer, $invoice); + return $this->includeCollection($invoice->payments, $transformer, ENTITY_PAYMENT); } public function includeClient(Invoice $invoice) { $transformer = new ClientTransformer($this->account, $this->serializer); + return $this->includeItem($invoice->client, $transformer, ENTITY_CLIENT); } public function includeExpenses(Invoice $invoice) { $transformer = new ExpenseTransformer($this->account, $this->serializer); + return $this->includeCollection($invoice->expenses, $transformer, ENTITY_EXPENSE); } public function includeDocuments(Invoice $invoice) { $transformer = new DocumentTransformer($this->account, $this->serializer); + return $this->includeCollection($invoice->documents, $transformer, ENTITY_DOCUMENT); } - public function transform(Invoice $invoice) { return array_merge($this->getDefaults($invoice), [ @@ -85,7 +90,7 @@ class InvoiceTransformer extends EntityTransformer 'updated_at' => $this->getTimestamp($invoice->updated_at), 'archived_at' => $this->getTimestamp($invoice->deleted_at), 'invoice_number' => $invoice->invoice_number, - 'discount' => (double) $invoice->discount, + 'discount' => (float) $invoice->discount, 'po_number' => $invoice->po_number, 'invoice_date' => $invoice->invoice_date, 'due_date' => $invoice->due_date, diff --git a/app/Ninja/Transformers/PaymentTransformer.php b/app/Ninja/Transformers/PaymentTransformer.php index ce8826a6c7ac..81e014de4b66 100644 --- a/app/Ninja/Transformers/PaymentTransformer.php +++ b/app/Ninja/Transformers/PaymentTransformer.php @@ -1,21 +1,22 @@ -account, $this->serializer); + return $this->includeItem($payment->invoice, $transformer, 'invoice'); } public function includeClient(Payment $payment) { $transformer = new ClientTransformer($this->account, $this->serializer); + return $this->includeItem($payment->client, $transformer, 'client'); } diff --git a/app/Ninja/Transformers/ProductTransformer.php b/app/Ninja/Transformers/ProductTransformer.php index 00a0a7c06281..fd7e47c039c5 100644 --- a/app/Ninja/Transformers/ProductTransformer.php +++ b/app/Ninja/Transformers/ProductTransformer.php @@ -1,24 +1,24 @@ -getDefaults($product), [ @@ -27,8 +27,8 @@ class ProductTransformer extends EntityTransformer 'notes' => $product->notes, 'cost' => $product->cost, 'qty' => $product->qty, - 'default_tax_rate_id' =>$product->default_tax_rate_id, - 'updated_at' =>$this->getTimestamp($product->updated_at), + 'default_tax_rate_id' => $product->default_tax_rate_id, + 'updated_at' => $this->getTimestamp($product->updated_at), 'archived_at' => $this->getTimestamp($product->deleted_at), ]); } diff --git a/app/Ninja/Transformers/ProjectTransformer.php b/app/Ninja/Transformers/ProjectTransformer.php index e17b3cafcd3f..ae2a1acb92f6 100644 --- a/app/Ninja/Transformers/ProjectTransformer.php +++ b/app/Ninja/Transformers/ProjectTransformer.php @@ -1,22 +1,22 @@ -getDefaults($project), [ diff --git a/app/Ninja/Transformers/TaskTransformer.php b/app/Ninja/Transformers/TaskTransformer.php index 24acd0d977e6..d7c695588e36 100644 --- a/app/Ninja/Transformers/TaskTransformer.php +++ b/app/Ninja/Transformers/TaskTransformer.php @@ -1,35 +1,35 @@ -client) { $transformer = new ClientTransformer($this->account, $this->serializer); + return $this->includeItem($task->client, $transformer, 'client'); } else { return null; diff --git a/app/Ninja/Transformers/TaxRateTransformer.php b/app/Ninja/Transformers/TaxRateTransformer.php index 07b8aa565ad0..8e3bf57e69c0 100644 --- a/app/Ninja/Transformers/TaxRateTransformer.php +++ b/app/Ninja/Transformers/TaxRateTransformer.php @@ -1,23 +1,23 @@ -getDefaults($taxRate), [ diff --git a/app/Ninja/Transformers/UserAccountTransformer.php b/app/Ninja/Transformers/UserAccountTransformer.php index 0009b250e4c2..57a8a9f65214 100644 --- a/app/Ninja/Transformers/UserAccountTransformer.php +++ b/app/Ninja/Transformers/UserAccountTransformer.php @@ -1,12 +1,14 @@ -account, $this->serializer); + return $this->includeItem($user, $transformer, 'user'); } diff --git a/app/Ninja/Transformers/UserTransformer.php b/app/Ninja/Transformers/UserTransformer.php index a22308f096da..af2de116f801 100644 --- a/app/Ninja/Transformers/UserTransformer.php +++ b/app/Ninja/Transformers/UserTransformer.php @@ -1,4 +1,6 @@ - (int) $user->getOriginal('permissions'), ]; } -} \ No newline at end of file +} diff --git a/app/Ninja/Transformers/VendorContactTransformer.php b/app/Ninja/Transformers/VendorContactTransformer.php index b06981475fb3..1374e1c0f48f 100644 --- a/app/Ninja/Transformers/VendorContactTransformer.php +++ b/app/Ninja/Transformers/VendorContactTransformer.php @@ -1,4 +1,6 @@ - $contact->phone, ]); } -} \ No newline at end of file +} diff --git a/app/Ninja/Transformers/VendorTransformer.php b/app/Ninja/Transformers/VendorTransformer.php index 81eb6f5d51be..ed44cd4c42cc 100644 --- a/app/Ninja/Transformers/VendorTransformer.php +++ b/app/Ninja/Transformers/VendorTransformer.php @@ -1,4 +1,6 @@ -account, $this->serializer); + return $this->includeCollection($vendor->vendor_contacts, $transformer, ENTITY_CONTACT); } public function includeInvoices(Vendor $vendor) { $transformer = new InvoiceTransformer($this->account, $this->serializer); + return $this->includeCollection($vendor->invoices, $transformer, ENTITY_INVOICE); } public function includeExpenses(Vendor $vendor) { $transformer = new ExpenseTransformer($this->account, $this->serializer); + return $this->includeCollection($vendor->expenses, $transformer, ENTITY_EXPENSE); } @@ -82,7 +85,7 @@ class VendorTransformer extends EntityTransformer 'is_deleted' => (bool) $vendor->is_deleted, 'vat_number' => $vendor->vat_number, 'id_number' => $vendor->id_number, - 'currency_id' => (int) $vendor->currency_id + 'currency_id' => (int) $vendor->currency_id, ]); } -} \ No newline at end of file +} diff --git a/app/Policies/AccountGatewayPolicy.php b/app/Policies/AccountGatewayPolicy.php index 0cfd2951367a..4a6388b22688 100644 --- a/app/Policies/AccountGatewayPolicy.php +++ b/app/Policies/AccountGatewayPolicy.php @@ -5,25 +5,29 @@ namespace App\Policies; use App\Models\User; /** - * Class AccountGatewayPolicy + * Class AccountGatewayPolicy. */ class AccountGatewayPolicy extends EntityPolicy { - /** * @param User $user * @param $item + * * @return bool */ - public static function edit(User $user, $item) { + public static function edit(User $user, $item) + { return $user->hasPermission('admin'); } /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->hasPermission('admin'); } } diff --git a/app/Policies/BankAccountPolicy.php b/app/Policies/BankAccountPolicy.php index 9c8e6794dc57..335c14e21d02 100644 --- a/app/Policies/BankAccountPolicy.php +++ b/app/Policies/BankAccountPolicy.php @@ -5,24 +5,29 @@ namespace App\Policies; use App\Models\User; /** - * Class BankAccountPolicy + * Class BankAccountPolicy. */ class BankAccountPolicy extends EntityPolicy { /** * @param User $user * @param $item + * * @return bool */ - public static function edit(User $user, $item) { + public static function edit(User $user, $item) + { return $user->hasPermission('admin'); } /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->hasPermission('admin'); } } diff --git a/app/Policies/ClientPolicy.php b/app/Policies/ClientPolicy.php index 4610c139fbfa..c33343a576fa 100644 --- a/app/Policies/ClientPolicy.php +++ b/app/Policies/ClientPolicy.php @@ -2,4 +2,6 @@ namespace App\Policies; -class ClientPolicy extends EntityPolicy {} \ No newline at end of file +class ClientPolicy extends EntityPolicy +{ +} diff --git a/app/Policies/CreditPolicy.php b/app/Policies/CreditPolicy.php index 539bc7e51889..6699810023f9 100644 --- a/app/Policies/CreditPolicy.php +++ b/app/Policies/CreditPolicy.php @@ -2,4 +2,6 @@ namespace App\Policies; -class CreditPolicy extends EntityPolicy {} \ No newline at end of file +class CreditPolicy extends EntityPolicy +{ +} diff --git a/app/Policies/DocumentPolicy.php b/app/Policies/DocumentPolicy.php index abb440800412..1a668c77b24d 100644 --- a/app/Policies/DocumentPolicy.php +++ b/app/Policies/DocumentPolicy.php @@ -5,22 +5,25 @@ namespace App\Policies; use App\Models\User; /** - * Class DocumentPolicy + * Class DocumentPolicy. */ class DocumentPolicy extends EntityPolicy { /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ public static function create(User $user, $item) { - return !empty($user); + return ! empty($user); } /** - * @param User $user + * @param User $user * @param Document $document + * * @return bool */ public static function view(User $user, $document) @@ -32,6 +35,7 @@ class DocumentPolicy extends EntityPolicy if ($document->expense->invoice) { return $user->can('view', $document->expense->invoice); } + return $user->can('view', $document->expense); } if ($document->invoice) { diff --git a/app/Policies/EntityPolicy.php b/app/Policies/EntityPolicy.php index e2fa9af8e6de..19e2cf5ac97e 100644 --- a/app/Policies/EntityPolicy.php +++ b/app/Policies/EntityPolicy.php @@ -6,18 +6,21 @@ use App\Models\User; use Illuminate\Auth\Access\HandlesAuthorization; /** - * Class EntityPolicy + * Class EntityPolicy. */ class EntityPolicy { use HandlesAuthorization; /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { - if ( ! static::checkModuleEnabled($user, $item)) { + public static function create(User $user, $item) + { + if (! static::checkModuleEnabled($user, $item)) { return false; } @@ -30,8 +33,9 @@ class EntityPolicy * * @return bool */ - public static function edit(User $user, $item) { - if ( ! static::checkModuleEnabled($user, $item)) { + public static function edit(User $user, $item) + { + if (! static::checkModuleEnabled($user, $item)) { return false; } @@ -44,8 +48,9 @@ class EntityPolicy * * @return bool */ - public static function view(User $user, $item) { - if ( ! static::checkModuleEnabled($user, $item)) { + public static function view(User $user, $item) + { + if (! static::checkModuleEnabled($user, $item)) { return false; } @@ -55,18 +60,22 @@ class EntityPolicy /** * @param User $user * @param $ownerUserId + * * @return bool */ - public static function viewByOwner(User $user, $ownerUserId) { + public static function viewByOwner(User $user, $ownerUserId) + { return $user->hasPermission('view_all') || $user->id == $ownerUserId; } /** * @param User $user * @param $ownerUserId + * * @return bool */ - public static function editByOwner(User $user, $ownerUserId) { + public static function editByOwner(User $user, $ownerUserId) + { return $user->hasPermission('edit_all') || $user->id == $ownerUserId; } diff --git a/app/Policies/ExpenseCategoryPolicy.php b/app/Policies/ExpenseCategoryPolicy.php index 2eeb3d7e968b..da7b9f09487f 100644 --- a/app/Policies/ExpenseCategoryPolicy.php +++ b/app/Policies/ExpenseCategoryPolicy.php @@ -6,12 +6,14 @@ use App\Models\User; class ExpenseCategoryPolicy extends EntityPolicy { - /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->is_admin; } @@ -21,7 +23,8 @@ class ExpenseCategoryPolicy extends EntityPolicy * * @return bool */ - public static function edit(User $user, $item) { + public static function edit(User $user, $item) + { return $user->is_admin; } @@ -31,26 +34,30 @@ class ExpenseCategoryPolicy extends EntityPolicy * * @return bool */ - public static function view(User $user, $item) { + public static function view(User $user, $item) + { return true; } /** * @param User $user * @param $ownerUserId + * * @return bool */ - public static function viewByOwner(User$user, $ownerUserId) { + public static function viewByOwner(User $user, $ownerUserId) + { return true; } /** * @param User $user * @param $ownerUserId + * * @return bool */ - public static function editByOwner(User $user, $ownerUserId) { + public static function editByOwner(User $user, $ownerUserId) + { return $user->is_admin; } - } diff --git a/app/Policies/ExpensePolicy.php b/app/Policies/ExpensePolicy.php index 92a22ac5807f..cbf9bf9b6011 100644 --- a/app/Policies/ExpensePolicy.php +++ b/app/Policies/ExpensePolicy.php @@ -7,15 +7,17 @@ use App\Models\User; class ExpensePolicy extends EntityPolicy { /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { - if ( ! parent::create($user, $item)) { + public static function create(User $user, $item) + { + if (! parent::create($user, $item)) { return false; } return $user->hasFeature(FEATURE_EXPENSES); } - } diff --git a/app/Policies/GenericEntityPolicy.php b/app/Policies/GenericEntityPolicy.php index e2afc039e45c..24cfad36178d 100644 --- a/app/Policies/GenericEntityPolicy.php +++ b/app/Policies/GenericEntityPolicy.php @@ -2,14 +2,13 @@ namespace App\Policies; - -use Utils; use App\Models\User; -use Illuminate\Support\Str; use Illuminate\Auth\Access\HandlesAuthorization; +use Illuminate\Support\Str; +use Utils; /** - * Class GenericEntityPolicy + * Class GenericEntityPolicy. */ class GenericEntityPolicy { @@ -19,9 +18,11 @@ class GenericEntityPolicy * @param User $user * @param $entityType * @param $ownerUserId + * * @return bool|mixed */ - public static function editByOwner(User $user, $entityType, $ownerUserId) { + public static function editByOwner(User $user, $entityType, $ownerUserId) + { $className = static::className($entityType); if (method_exists($className, 'editByOwner')) { return call_user_func([$className, 'editByOwner'], $user, $ownerUserId); @@ -34,9 +35,12 @@ class GenericEntityPolicy * @param User $user * @param $entityTypee * @param $ownerUserId + * @param mixed $entityType + * * @return bool|mixed */ - public static function viewByOwner(User $user, $entityType, $ownerUserId) { + public static function viewByOwner(User $user, $entityType, $ownerUserId) + { $className = static::className($entityType); if (method_exists($className, 'viewByOwner')) { return call_user_func([$className, 'viewByOwner'], $user, $ownerUserId); @@ -48,9 +52,11 @@ class GenericEntityPolicy /** * @param User $user * @param $entityType + * * @return bool|mixed */ - public static function create(User $user, $entityType) { + public static function create(User $user, $entityType) + { $className = static::className($entityType); if (method_exists($className, 'create')) { return call_user_func([$className, 'create'], $user, $entityType); @@ -62,9 +68,11 @@ class GenericEntityPolicy /** * @param User $user * @param $entityType + * * @return bool|mixed */ - public static function view(User $user, $entityType) { + public static function view(User $user, $entityType) + { $className = static::className($entityType); if (method_exists($className, 'view')) { return call_user_func([$className, 'view'], $user, $entityType); @@ -75,14 +83,14 @@ class GenericEntityPolicy private static function className($entityType) { - if ( ! Utils::isNinjaProd()) { + if (! Utils::isNinjaProd()) { if ($module = \Module::find($entityType)) { return "Modules\\{$module->getName()}\\Policies\\{$module->getName()}Policy"; } } $studly = Str::studly($entityType); + return "App\\Policies\\{$studly}Policy"; } - } diff --git a/app/Policies/InvoicePolicy.php b/app/Policies/InvoicePolicy.php index aa72b4c0533c..f06b147d083f 100644 --- a/app/Policies/InvoicePolicy.php +++ b/app/Policies/InvoicePolicy.php @@ -2,4 +2,6 @@ namespace App\Policies; -class InvoicePolicy extends EntityPolicy {} +class InvoicePolicy extends EntityPolicy +{ +} diff --git a/app/Policies/PaymentPolicy.php b/app/Policies/PaymentPolicy.php index e9c3fc582a3f..97763936b1b4 100644 --- a/app/Policies/PaymentPolicy.php +++ b/app/Policies/PaymentPolicy.php @@ -2,4 +2,6 @@ namespace App\Policies; -class PaymentPolicy extends EntityPolicy {} \ No newline at end of file +class PaymentPolicy extends EntityPolicy +{ +} diff --git a/app/Policies/PaymentTermPolicy.php b/app/Policies/PaymentTermPolicy.php index e1ee2e494bdd..b1b9c12a44e3 100644 --- a/app/Policies/PaymentTermPolicy.php +++ b/app/Policies/PaymentTermPolicy.php @@ -5,25 +5,29 @@ namespace App\Policies; use App\Models\User; /** - * Class PaymentTermPolicy + * Class PaymentTermPolicy. */ class PaymentTermPolicy extends EntityPolicy { - /** * @param User $user * @param $item + * * @return mixed */ - public static function edit(User $user, $item) { + public static function edit(User $user, $item) + { return $user->hasPermission('admin'); } /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->hasPermission('admin'); } } diff --git a/app/Policies/ProductPolicy.php b/app/Policies/ProductPolicy.php index 23ce11fc7570..6c40ebc7e15e 100644 --- a/app/Policies/ProductPolicy.php +++ b/app/Policies/ProductPolicy.php @@ -2,12 +2,9 @@ namespace App\Policies; -use App\Models\User; - /** - * Class ProductPolicy + * Class ProductPolicy. */ class ProductPolicy extends EntityPolicy { - } diff --git a/app/Policies/ProjectPolicy.php b/app/Policies/ProjectPolicy.php index a88d3a37902a..9f8ddd666d36 100644 --- a/app/Policies/ProjectPolicy.php +++ b/app/Policies/ProjectPolicy.php @@ -2,9 +2,6 @@ namespace App\Policies; -use App\Models\User; - class ProjectPolicy extends EntityPolicy { - } diff --git a/app/Policies/QuotePolicy.php b/app/Policies/QuotePolicy.php index 6d1920d16c95..55b39ddd46bd 100644 --- a/app/Policies/QuotePolicy.php +++ b/app/Policies/QuotePolicy.php @@ -7,15 +7,17 @@ use App\Models\User; class QuotePolicy extends EntityPolicy { /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { - if ( ! parent::create($user, $item)) { + public static function create(User $user, $item) + { + if (! parent::create($user, $item)) { return false; } return $user->hasFeature(FEATURE_QUOTES); } - } diff --git a/app/Policies/RecurringInvoicePolicy.php b/app/Policies/RecurringInvoicePolicy.php index 85e7037f886f..20113fb0a669 100644 --- a/app/Policies/RecurringInvoicePolicy.php +++ b/app/Policies/RecurringInvoicePolicy.php @@ -2,4 +2,6 @@ namespace App\Policies; -class RecurringInvoicePolicy extends EntityPolicy {} +class RecurringInvoicePolicy extends EntityPolicy +{ +} diff --git a/app/Policies/TaskPolicy.php b/app/Policies/TaskPolicy.php index aa0a2ef76239..a5d635090250 100644 --- a/app/Policies/TaskPolicy.php +++ b/app/Policies/TaskPolicy.php @@ -7,15 +7,17 @@ use App\Models\User; class TaskPolicy extends EntityPolicy { /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { - if ( ! parent::create($user, $item)) { + public static function create(User $user, $item) + { + if (! parent::create($user, $item)) { return false; } return $user->hasFeature(FEATURE_TASKS); } - } diff --git a/app/Policies/TaxRatePolicy.php b/app/Policies/TaxRatePolicy.php index 5f70694890fa..0cfb4596346c 100644 --- a/app/Policies/TaxRatePolicy.php +++ b/app/Policies/TaxRatePolicy.php @@ -9,17 +9,22 @@ class TaxRatePolicy extends EntityPolicy /** * @param User $user * @param $item + * * @return bool */ - public static function edit(User $user, $item) { + public static function edit(User $user, $item) + { return $user->hasPermission('admin'); } /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->hasPermission('admin'); } } diff --git a/app/Policies/TokenPolicy.php b/app/Policies/TokenPolicy.php index 419a288262cb..c620e5889cf8 100644 --- a/app/Policies/TokenPolicy.php +++ b/app/Policies/TokenPolicy.php @@ -4,12 +4,15 @@ namespace App\Policies; use App\Models\User; -class TokenPolicy extends EntityPolicy { - public static function edit(User $user, $item) { +class TokenPolicy extends EntityPolicy +{ + public static function edit(User $user, $item) + { return $user->hasPermission('admin'); } - public static function create(User $user, $item) { + public static function create(User $user, $item) + { return $user->hasPermission('admin'); } } diff --git a/app/Policies/VendorPolicy.php b/app/Policies/VendorPolicy.php index f806ae826048..0e679b3de355 100644 --- a/app/Policies/VendorPolicy.php +++ b/app/Policies/VendorPolicy.php @@ -7,15 +7,17 @@ use App\Models\User; class VendorPolicy extends EntityPolicy { /** - * @param User $user + * @param User $user + * @param mixed $item + * * @return bool */ - public static function create(User $user, $item) { - if ( ! parent::create($user, $item)) { + public static function create(User $user, $item) + { + if (! parent::create($user, $item)) { return false; } return $user->hasFeature(FEATURE_EXPENSES); } - } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 1a0a7751d62c..5f1d5dad7a81 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,66 +1,66 @@ -'.$title.''; }); - Form::macro('tab_link', function($url, $text, $active = false) { + Form::macro('tab_link', function ($url, $text, $active = false) { $class = $active ? ' class="active"' : ''; + return ''.$text.''; }); - Form::macro('menu_link', function($type) { + Form::macro('menu_link', function ($type) { $types = $type.'s'; $Type = ucfirst($type); $Types = ucfirst($types); - $class = ( Request::is($types) || Request::is('*'.$type.'*')) && !Request::is('*settings*') ? ' active' : ''; + $class = (Request::is($types) || Request::is('*'.$type.'*')) && ! Request::is('*settings*') ? ' active' : ''; return '

'; }); - Form::macro('flatButton', function($label, $color) { + Form::macro('flatButton', function ($label, $color) { return ''; }); - Form::macro('emailViewButton', function($link = '#', $entityType = ENTITY_INVOICE) { + Form::macro('emailViewButton', function ($link = '#', $entityType = ENTITY_INVOICE) { return view('partials.email_button') ->with([ 'link' => $link, @@ -70,7 +70,7 @@ class AppServiceProvider extends ServiceProvider ->render(); }); - Form::macro('emailPaymentButton', function($link = '#') { + Form::macro('emailPaymentButton', function ($link = '#') { return view('partials.email_button') ->with([ 'link' => $link, @@ -80,7 +80,7 @@ class AppServiceProvider extends ServiceProvider ->render(); }); - Form::macro('breadcrumbs', function($status = false) { + Form::macro('breadcrumbs', function ($status = false) { $str = ''; }); - Form::macro('human_filesize', function($bytes, $decimals = 1) { - $size = ['B','kB','MB','GB','TB','PB','EB','ZB','YB']; + Form::macro('human_filesize', function ($bytes, $decimals = 1) { + $size = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; $factor = floor((strlen($bytes) - 1) / 3); - if($factor == 0)$decimals=0;// There aren't fractional bytes + if ($factor == 0) { + $decimals = 0; + }// There aren't fractional bytes return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . ' ' . @$size[$factor]; }); - Validator::extend('positive', function($attribute, $value, $parameters) { + Validator::extend('positive', function ($attribute, $value, $parameters) { return Utils::parseFloat($value) >= 0; }); - Validator::extend('has_credit', function($attribute, $value, $parameters) { + Validator::extend('has_credit', function ($attribute, $value, $parameters) { $publicClientId = $parameters[0]; $amount = $parameters[1]; @@ -151,13 +153,13 @@ class AppServiceProvider extends ServiceProvider }); // check that the time log elements don't overlap - Validator::extend('time_log', function($attribute, $value, $parameters) { + Validator::extend('time_log', function ($attribute, $value, $parameters) { $lastTime = 0; $value = json_decode($value); array_multisort($value); foreach ($value as $timeLog) { list($startTime, $endTime) = $timeLog; - if (!$endTime) { + if (! $endTime) { continue; } if ($startTime < $lastTime || $startTime > $endTime) { @@ -168,56 +170,44 @@ class AppServiceProvider extends ServiceProvider } $lastTime = max($lastTime, $endTime); } + return true; }); - Validator::extend('has_counter', function($attribute, $value, $parameters) { - return !$value || strstr($value, '{$counter}'); + Validator::extend('has_counter', function ($attribute, $value, $parameters) { + return ! $value || strstr($value, '{$counter}'); }); - Validator::extend('valid_contacts', function($attribute, $value, $parameters) { - foreach ($value as $contact) { - $validator = Validator::make($contact, [ - 'email' => 'email|required_without:first_name', - 'first_name' => 'required_without:email', - ]); - if ($validator->fails()) { - return false; - } - } - return true; - }); - - Validator::extend('valid_invoice_items', function($attribute, $value, $parameters) { + Validator::extend('valid_invoice_items', function ($attribute, $value, $parameters) { $total = 0; foreach ($value as $item) { - $qty = !empty($item['qty']) ? $item['qty'] : 1; - $cost = !empty($item['cost']) ? $item['cost'] : 1; + $qty = ! empty($item['qty']) ? $item['qty'] : 1; + $cost = ! empty($item['cost']) ? $item['cost'] : 1; $total += $qty * $cost; } + return $total <= MAX_INVOICE_AMOUNT; }); - Validator::extend('valid_subdomain', function($attribute, $value, $parameters) { - return ! in_array($value, ['www', 'app', 'mail', 'admin', 'blog', 'user', 'contact', 'payment', 'payments', 'billing', 'invoice', 'business', 'owner', 'info', 'ninja', 'docs', 'doc', 'documents', 'download']); - }); - } - - /** - * Register any application services. - * - * This service provider is a great spot to register your various container - * bindings with the application. As you can see, we are registering our - * "Registrar" implementation here. You can add your own bindings too! - * - * @return void - */ - public function register() - { - $this->app->bind( - 'Illuminate\Contracts\Auth\Registrar', - 'App\Services\Registrar' - ); - } + Validator::extend('valid_subdomain', function ($attribute, $value, $parameters) { + return ! in_array($value, ['www', 'app', 'mail', 'admin', 'blog', 'user', 'contact', 'payment', 'payments', 'billing', 'invoice', 'business', 'owner', 'info', 'ninja', 'docs', 'doc', 'documents', 'download']); + }); + } + /** + * Register any application services. + * + * This service provider is a great spot to register your various container + * bindings with the application. As you can see, we are registering our + * "Registrar" implementation here. You can add your own bindings too! + * + * @return void + */ + public function register() + { + $this->app->bind( + 'Illuminate\Contracts\Auth\Registrar', + 'App\Services\Registrar' + ); + } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 05a9ec98b8ef..1a45fd1e4b22 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -34,12 +34,13 @@ class AuthServiceProvider extends ServiceProvider /** * Register any application authentication / authorization services. * - * @param \Illuminate\Contracts\Auth\Access\Gate $gate + * @param \Illuminate\Contracts\Auth\Access\Gate $gate + * * @return void */ public function boot(GateContract $gate) { - foreach (get_class_methods(new \App\Policies\GenericEntityPolicy) as $method) { + foreach (get_class_methods(new \App\Policies\GenericEntityPolicy()) as $method) { $gate->define($method, "App\Policies\GenericEntityPolicy@{$method}"); } diff --git a/app/Providers/BusServiceProvider.php b/app/Providers/BusServiceProvider.php index d0833ff18c82..16898864997c 100644 --- a/app/Providers/BusServiceProvider.php +++ b/app/Providers/BusServiceProvider.php @@ -1,17 +1,20 @@ -composer( [ 'header', - 'tasks.edit' + 'tasks.edit', ], 'App\Http\ViewComposers\AppLanguageComposer' ); view()->composer( [ - 'public.header' + 'public.header', ], 'App\Http\ViewComposers\ClientPortalHeaderComposer' ); @@ -47,6 +47,5 @@ class ComposerServiceProvider extends ServiceProvider */ public function register() { - } } diff --git a/app/Providers/ConfigServiceProvider.php b/app/Providers/ConfigServiceProvider.php index 739564c6eff6..55c4608da378 100644 --- a/app/Providers/ConfigServiceProvider.php +++ b/app/Providers/ConfigServiceProvider.php @@ -1,21 +1,21 @@ - [ @@ -158,53 +160,53 @@ class EventServiceProvider extends ServiceProvider { 'App\Events\TaskWasCreated' => [ 'App\Listeners\ActivityListener@createdTask', ], - 'App\Events\TaskWasUpdated' => [ + 'App\Events\TaskWasUpdated' => [ 'App\Listeners\ActivityListener@updatedTask', ], - 'App\Events\TaskWasRestored' => [ + 'App\Events\TaskWasRestored' => [ 'App\Listeners\ActivityListener@restoredTask', ], - 'App\Events\TaskWasArchived' => [ + 'App\Events\TaskWasArchived' => [ 'App\Listeners\ActivityListener@archivedTask', ], - 'App\Events\TaskWasDeleted' => [ + 'App\Events\TaskWasDeleted' => [ 'App\Listeners\ActivityListener@deletedTask', ], - // Expense events + // Expense events 'App\Events\ExpenseWasCreated' => [ 'App\Listeners\ActivityListener@createdExpense', ], - 'App\Events\ExpenseWasUpdated' => [ + 'App\Events\ExpenseWasUpdated' => [ 'App\Listeners\ActivityListener@updatedExpense', ], - 'App\Events\ExpenseWasRestored' => [ + 'App\Events\ExpenseWasRestored' => [ 'App\Listeners\ActivityListener@restoredExpense', ], - 'App\Events\ExpenseWasArchived' => [ + 'App\Events\ExpenseWasArchived' => [ 'App\Listeners\ActivityListener@archivedExpense', ], - 'App\Events\ExpenseWasDeleted' => [ + 'App\Events\ExpenseWasDeleted' => [ 'App\Listeners\ActivityListener@deletedExpense', ], // Update events \Codedge\Updater\Events\UpdateAvailable::class => [ - \Codedge\Updater\Listeners\SendUpdateAvailableNotification::class + \Codedge\Updater\Listeners\SendUpdateAvailableNotification::class, ], - ]; + ]; - /** - * Register any other events for your application. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function boot(DispatcherContract $events) - { - parent::boot($events); - - // - } + /** + * Register any other events for your application. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * + * @return void + */ + public function boot(DispatcherContract $events) + { + parent::boot($events); + // + } } diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 6bc0e304dd0c..ccbd59cd67ee 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -1,15 +1,16 @@ - SOCIAL_GOOGLE, 2 => SOCIAL_FACEBOOK, 3 => SOCIAL_GITHUB, - 4 => SOCIAL_LINKEDIN + 4 => SOCIAL_LINKEDIN, ]; /** @@ -45,16 +47,17 @@ class AuthService /** * @param $provider * @param $hasCode + * * @return \Illuminate\Http\RedirectResponse */ public function execute($provider, $hasCode) { - if (!$hasCode) { + if (! $hasCode) { return $this->getAuthorization($provider); } $socialiteUser = Socialite::driver($provider)->user(); - $providerId = AuthService::getProviderId($provider); + $providerId = self::getProviderId($provider); if (Auth::check()) { $user = Auth::user(); @@ -66,11 +69,12 @@ class AuthService $result = $this->accountRepo->updateUserFromOauth($user, $name[0], $name[1], $email, $providerId, $oauthUserId); if ($result === true) { - if (!$isRegistered) { + if (! $isRegistered) { Session::flash('warning', trans('texts.success_message')); Session::flash('onReady', 'handleSignedUp();'); } else { Session::flash('message', trans('texts.updated_settings')); + return redirect()->to('/settings/' . ACCOUNT_USER_DETAILS); } } else { @@ -82,16 +86,19 @@ class AuthService event(new UserLoggedIn()); } else { Session::flash('error', trans('texts.invalid_credentials')); + return redirect()->to('login'); } } $redirectTo = Input::get('redirect_to') ?: 'dashboard'; + return redirect()->to($redirectTo); } /** * @param $provider + * * @return mixed */ private function getAuthorization($provider) @@ -101,19 +108,21 @@ class AuthService /** * @param $provider + * * @return mixed */ public static function getProviderId($provider) { - return array_search(strtolower($provider), array_map('strtolower', AuthService::$providers)); + return array_search(strtolower($provider), array_map('strtolower', self::$providers)); } /** * @param $providerId + * * @return mixed|string */ public static function getProviderName($providerId) { - return $providerId ? AuthService::$providers[$providerId] : ''; + return $providerId ? self::$providers[$providerId] : ''; } } diff --git a/app/Services/BankAccountService.php b/app/Services/BankAccountService.php index cae345fdac5f..825e1e12e453 100644 --- a/app/Services/BankAccountService.php +++ b/app/Services/BankAccountService.php @@ -1,20 +1,22 @@ -getExpenses(); $vendorMap = $this->createVendorMap(); @@ -245,7 +253,7 @@ class BankAccountService extends BaseService return $vendorMap; } - public function importExpenses($bankId = 0, $input) + public function importExpenses($bankId, $input) { $vendorMap = $this->createVendorMap(); $countVendors = 0; @@ -287,7 +295,7 @@ class BankAccountService extends BaseService return trans('texts.imported_expenses', [ 'count_vendors' => $countVendors, - 'count_expenses' => $countExpenses + 'count_expenses' => $countExpenses, ]); } diff --git a/app/Services/BaseService.php b/app/Services/BaseService.php index 5bc2314518aa..50ac60faa64e 100644 --- a/app/Services/BaseService.php +++ b/app/Services/BaseService.php @@ -1,10 +1,12 @@ -creditRepo->find($clientPublicId, $search); - if(!Utils::hasPermission('view_all')){ + if (! Utils::hasPermission('view_all')) { $query->where('credits.user_id', '=', Auth::user()->id); } diff --git a/app/Services/DatatableService.php b/app/Services/DatatableService.php index b9ddc20c5297..44fa83bf3f82 100644 --- a/app/Services/DatatableService.php +++ b/app/Services/DatatableService.php @@ -1,21 +1,25 @@ -addColumn('checkbox', function ($model) { $can_edit = Auth::user()->hasPermission('edit_all') || (isset($model->user_id) && Auth::user()->id == $model->user_id); - return !$can_edit?'':''; }); } @@ -53,7 +57,7 @@ class DatatableService /** * @param EntityDatatable $datatable - * @param Table $table + * @param Table $table */ private function createDropdown(EntityDatatable $datatable, $table) { @@ -74,12 +78,12 @@ class DatatableService $dropdown_contents = ''; $lastIsDivider = false; - if (!$model->deleted_at || $model->deleted_at == '0000-00-00') { + if (! $model->deleted_at || $model->deleted_at == '0000-00-00') { foreach ($datatable->actions() as $action) { if (count($action)) { // if show function isn't set default to true if (count($action) == 2) { - $action[] = function() { + $action[] = function () { return true; }; } @@ -92,7 +96,7 @@ class DatatableService $urlVal = $url($model); $urlStr = is_string($urlVal) ? $urlVal : $urlVal['url']; $attributes = ''; - if (!empty($urlVal['attributes'])) { + if (! empty($urlVal['attributes'])) { $attributes = ' '.$urlVal['attributes']; } @@ -101,17 +105,17 @@ class DatatableService $lastIsDivider = false; } } - } elseif ( ! $lastIsDivider) { + } elseif (! $lastIsDivider) { $dropdown_contents .= '
  • '; $lastIsDivider = true; } } - if ( ! $hasAction) { + if (! $hasAction) { return ''; } - if ( $can_edit && ! $lastIsDivider) { + if ($can_edit && ! $lastIsDivider) { $dropdown_contents .= '
  • '; } @@ -119,17 +123,17 @@ class DatatableService $dropdown_contents .= "
  • entityType}('archive', {$model->public_id})\">" . mtrans($datatable->entityType, "archive_{$datatable->entityType}") . '
  • '; } - } else if($can_edit) { + } elseif ($can_edit) { $dropdown_contents .= "
  • entityType}('restore', {$model->public_id})\">" . mtrans($datatable->entityType, "restore_{$datatable->entityType}") . '
  • '; } - if (property_exists($model, 'is_deleted') && !$model->is_deleted && $can_edit) { + if (property_exists($model, 'is_deleted') && ! $model->is_deleted && $can_edit) { $dropdown_contents .= "
  • entityType}('delete', {$model->public_id})\">" . mtrans($datatable->entityType, "delete_{$datatable->entityType}") . '
  • '; } - if (!empty($dropdown_contents)) { + if (! empty($dropdown_contents)) { $str .= '',p=document.getElementsByClassName(l.container);p.length?s=p[0]:(s=document.createElement("div"),s.className=l.container,s.innerHTML=d);var f,m=function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},g=function(t,e){t=String(t).replace(/[^0-9a-f]/gi,""),t.length<6&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),e=e||0;for(var n="#",i=0;i<3;i++){var o=parseInt(t.substr(2*i,2),16);o=Math.round(Math.min(Math.max(0,o+o*e),255)).toString(16),n+=("00"+o).substr(o.length)}return n},b={previousWindowKeyDown:null,previousActiveElement:null,previousBodyPadding:null},v=function(){if("undefined"!=typeof document&&!document.getElementsByClassName(l.container).length){document.body.appendChild(s);var t=y(),e=k(t,l.input),n=k(t,l.file),i=t.querySelector("."+l.range+" input"),o=k(t,l.select),r=t.querySelector("."+l.checkbox+" input"),c=k(t,l.textarea);return e.oninput=function(){a.resetValidationError()},e.onkeydown=function(t){setTimeout(function(){13===t.keyCode&&(t.stopPropagation(),a.clickConfirm())},0)},n.onchange=function(){a.resetValidationError()},i.oninput=function(){a.resetValidationError(),i.previousSibling.value=i.value},i.onchange=function(){a.resetValidationError(),i.previousSibling.value=i.value},o.onchange=function(){a.resetValidationError()},r.onchange=function(){a.resetValidationError()},c.oninput=function(){a.resetValidationError()},t}},M=function(t){return s.querySelector("."+t)},y=function(){return document.body.querySelector("."+l.modal)||v()},A=function(){var t=y();return t.querySelectorAll("."+l.icon)},z=function(){return M(l.spacer)},_=function(){return M(l.progresssteps)},T=function(){return M(l.validationerror)},w=function(){return M(l.confirm)},C=function(){return M(l.cancel)},O=function(){return M(l.close)},N=function(t){var e=[w(),C()];return t&&e.reverse(),e.concat(Array.prototype.slice.call(y().querySelectorAll("button:not([class^="+r+"]), input:not([type=hidden]), textarea, select")))},S=function(t,e){return t.classList.contains(e)},x=function(t){if(t.focus(),"file"!==t.type){var e=t.value;t.value="",t.value=e}},L=function(t,e){if(t&&e){var n=e.split(/\s+/);n.forEach(function(e){t.classList.add(e)})}},D=function(t,e){if(t&&e){var n=e.split(/\s+/);n.forEach(function(e){t.classList.remove(e)})}},k=function(t,e){for(var n=0;n");var d;if(t.text||t.html){if("object"==typeof t.html)if(o.innerHTML="",0 in t.html)for(d=0;d in t.html;d++)o.appendChild(t.html[d].cloneNode(!0));else o.appendChild(t.html.cloneNode(!0));else o.innerHTML=t.html||t.text.split("\n").join("
    ");q(o)}else W(o);t.showCloseButton?q(c):W(c),e.className=l.modal,t.customClass&&L(e,t.customClass);var p=_(),f=parseInt(null===t.currentProgressStep?a.getQueueStep():t.currentProgressStep,10);t.progressSteps.length?(q(p),E(p),f>=t.progressSteps.length,t.progressSteps.forEach(function(e,n){var i=document.createElement("li");if(L(i,l.progresscircle),i.innerHTML=e,n===f&&L(i,l.activeprogressstep),p.appendChild(i),n!==t.progressSteps.length-1){var o=document.createElement("li");L(o,l.progressline),o.style.width=t.progressStepsDistance,p.appendChild(o)}})):W(p);var m=A();for(d=0;d1?e[1].length:0}function c(t,e){t.classList?t.classList.add(e):t.className+=" "+e}function l(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")}function u(t,e){return t.classList?t.classList.contains(e):new RegExp("\\b"+e+"\\b").test(t.className)}function h(){var t=void 0!==window.pageXOffset,e="CSS1Compat"===(document.compatMode||""),n=t?window.pageXOffset:e?document.documentElement.scrollLeft:document.body.scrollLeft,i=t?window.pageYOffset:e?document.documentElement.scrollTop:document.body.scrollTop;return{x:n,y:i}}function d(){return window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"}}function p(t,e){return 100/(e-t)}function f(t,e){return 100*e/(t[1]-t[0])}function m(t,e){return f(t,t[0]<0?e+Math.abs(t[0]):e-t[0])}function g(t,e){return e*(t[1]-t[0])/100+t[0]}function b(t,e){for(var n=1;t>=e[n];)n+=1;return n}function v(t,e,n){if(n>=t.slice(-1)[0])return 100;var i,o,a,s,r=b(n,t);return i=t[r-1],o=t[r],a=e[r-1],s=e[r],a+m([i,o],n)/p(a,s)}function M(t,e,n){if(n>=100)return t.slice(-1)[0];var i,o,a,s,r=b(n,e);return i=t[r-1],o=t[r],a=e[r-1],s=e[r],g([i,o],(n-a)*p(a,s))}function y(t,n,i,o){if(100===o)return o;var a,s,r=b(o,t);return i?(a=t[r-1],s=t[r],o-a>(s-a)/2?s:a):n[r-1]?t[r-1]+e(o-t[r-1],n[r-1]):o}function A(t,e,n){var o;if("number"==typeof e&&(e=[e]),"[object Array]"!==Object.prototype.toString.call(e))throw new Error("noUiSlider: 'range' contains invalid value.");if(o="min"===t?0:"max"===t?100:parseFloat(t),!i(o)||!i(e[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");n.xPct.push(o),n.xVal.push(e[0]),o?n.xSteps.push(!isNaN(e[1])&&e[1]):isNaN(e[1])||(n.xSteps[0]=e[1])}function z(t,e,n){return!e||void(n.xSteps[t]=f([n.xVal[t],n.xVal[t+1]],e)/p(n.xPct[t],n.xPct[t+1]))}function _(t,e,n,i){this.xPct=[],this.xVal=[],this.xSteps=[i||!1],this.xNumSteps=[!1],this.snap=e,this.direction=n;var o,a=[];for(o in t)t.hasOwnProperty(o)&&a.push([t[o],o]);for(a.length&&"object"==typeof a[0][0]?a.sort(function(t,e){return t[0][0]-e[0][0]}):a.sort(function(t,e){return t[0]-e[0]}),o=0;o2)throw new Error("noUiSlider: 'start' option is incorrect.");t.handles=e.length,t.start=e}function O(t,e){if(t.snap=e,"boolean"!=typeof e)throw new Error("noUiSlider: 'snap' option must be a boolean.")}function N(t,e){if(t.animate=e,"boolean"!=typeof e)throw new Error("noUiSlider: 'animate' option must be a boolean.")}function S(t,e){if(t.animationDuration=e,"number"!=typeof e)throw new Error("noUiSlider: 'animationDuration' option must be a number.")}function x(t,e){if("lower"===e&&1===t.handles)t.connect=1;else if("upper"===e&&1===t.handles)t.connect=2;else if(e===!0&&2===t.handles)t.connect=3;else{if(e!==!1)throw new Error("noUiSlider: 'connect' option doesn't match handle count.");t.connect=0}}function L(t,e){switch(e){case"horizontal":t.ort=0;break;case"vertical":t.ort=1;break;default:throw new Error("noUiSlider: 'orientation' option is invalid.")}}function D(t,e){if(!i(e))throw new Error("noUiSlider: 'margin' option must be numeric.");if(0!==e&&(t.margin=t.spectrum.getMargin(e),!t.margin))throw new Error("noUiSlider: 'margin' option is only supported on linear sliders.")}function k(t,e){if(!i(e))throw new Error("noUiSlider: 'limit' option must be numeric.");if(t.limit=t.spectrum.getMargin(e),!t.limit)throw new Error("noUiSlider: 'limit' option is only supported on linear sliders.")}function q(t,e){switch(e){case"ltr":t.dir=0;break;case"rtl":t.dir=1,t.connect=[0,2,1,3][t.connect];break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function W(t,e){if("string"!=typeof e)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var n=e.indexOf("tap")>=0,i=e.indexOf("drag")>=0,o=e.indexOf("fixed")>=0,a=e.indexOf("snap")>=0,s=e.indexOf("hover")>=0;if(i&&!t.connect)throw new Error("noUiSlider: 'drag' behaviour must be used with 'connect': true.");t.events={tap:n||a,drag:i,fixed:o,snap:a,hover:s}}function E(t,e){var n;if(e!==!1)if(e===!0)for(t.tooltips=[],n=0;n100&&(i-=o-100),[a(i),a(o)]):[i,o]}function m(t,e){t.preventDefault();var n,i,o=0===t.type.indexOf("touch"),a=0===t.type.indexOf("mouse"),s=0===t.type.indexOf("pointer"),r=t;return 0===t.type.indexOf("MSPointer")&&(s=!0),o&&(n=t.changedTouches[0].pageX,i=t.changedTouches[0].pageY),e=e||h(),(a||s)&&(n=t.clientX+e.x,i=t.clientY+e.y),r.pageOffset=e,r.points=[n,i],r.cursor=a||s,r}function g(t,e){var n=document.createElement("div"),o=document.createElement("div"),a=[i.cssClasses.handleLower,i.cssClasses.handleUpper];return t&&a.reverse(),c(o,i.cssClasses.handle),c(o,a[e]),c(n,i.cssClasses.origin),n.appendChild(o),n}function b(t,e,n){switch(t){case 1:c(e,i.cssClasses.connect),c(n[0],i.cssClasses.background);break;case 3:c(n[1],i.cssClasses.background);case 2:c(n[0],i.cssClasses.connect);case 0:c(e,i.cssClasses.background)}}function v(t,e,n){var i,o=[];for(i=0;i-1?1:"steps"===n?2:0,!a&&l&&(g=0),c===A&&u||(s[p.toFixed(5)]=[c,g]),h=p}}),Z.direction=a,s}function T(t,e,n){function o(t,e){var n=e===i.cssClasses.value,o=n?d:p,a=n?u:h;return e+" "+o[i.ort]+" "+a[t]}function a(t,e,n){return'class="'+o(n[1],e)+'" style="'+i.style+": "+t+'%"'}function s(t,o){Z.direction&&(t=100-t),o[1]=o[1]&&e?e(o[0],o[1]):o[1],l+="
    ",o[1]&&(l+="
    "+n.to(o[0])+"
    ")}var r=document.createElement("div"),l="",u=[i.cssClasses.valueNormal,i.cssClasses.valueLarge,i.cssClasses.valueSub],h=[i.cssClasses.markerNormal,i.cssClasses.markerLarge,i.cssClasses.markerSub],d=[i.cssClasses.valueHorizontal,i.cssClasses.valueVertical],p=[i.cssClasses.markerHorizontal,i.cssClasses.markerVertical];return c(r,i.cssClasses.pips),c(r,0===i.ort?i.cssClasses.pipsHorizontal:i.cssClasses.pipsVertical),Object.keys(t).forEach(function(e){s(e,t[e])}),r.innerHTML=l,r}function w(t){var e=t.mode,n=t.density||1,i=t.filter||!1,o=t.values||!1,a=t.stepped||!1,s=z(e,o,a),r=_(n,e,s),c=t.format||{to:Math.round};return G.appendChild(T(r,i,c))}function C(){var t=V.getBoundingClientRect(),e="offset"+["Width","Height"][i.ort];return 0===i.ort?t.width||V[e]:t.height||V[e]}function O(t,e,n){var o;for(o=0;o1)&&((!o.hover||!e.buttons)&&(e.calcPoint=e.points[i.ort],void n(e,o)))))},s=[];return t.split(" ").forEach(function(t){e.addEventListener(t,a,!1),s.push([t,a])}),s}function x(t,e){if(navigator.appVersion.indexOf("MSIE 9")===-1&&0===t.buttons&&0!==e.buttonsProperty)return L(t,e);var n,i,o=e.handles||Y,a=!1,s=100*(t.calcPoint-e.start)/e.baseSize,r=o[0]===Y[0]?0:1;if(n=f(s,e.positions,o.length>1),a=B(o[0],n[r],1===o.length),o.length>1){if(a=B(o[1],n[r?0:1],!1)||a)for(i=0;i1&&c(G,i.cssClasses.drag);var r=function(){return!1};document.body.noUiListener=r,document.body.addEventListener("selectstart",r,!1)}void 0!==e.handleNumber&&O("start",e.handleNumber)}function q(t){var e,a,s=t.calcPoint,r=0;return t.stopPropagation(),Y.forEach(function(t){r+=n(t)[i.style]}),e=s1&&(e=o?Math.max(e,s):Math.min(e,r)),n!==!1&&i.limit&&Y.length>1&&(e=o?Math.min(e,u):Math.max(e,h)),e=Z.getStep(e),e=a(e),e!==Q[o]&&(window.requestAnimationFrame?window.requestAnimationFrame(function(){t.style[i.style]=e+"%"}):t.style[i.style]=e+"%",t.previousSibling||(l(t,i.cssClasses.stacking),e>50&&c(t,i.cssClasses.stacking)),Q[o]=e,tt[o]=Z.fromStepping(e),O("update",o),!0)}function I(t,e){var n,o,a;for(i.limit&&(t+=1),n=0;n1&&r.reverse(),i.animate&&Q[0]!==-1&&o(G,i.cssClasses.tap,i.animationDuration),n=Y.length>1?3:1,1===r.length&&(n=1),I(n,r),a=0;a=n[1]?n[2]:n[0]||!1;return[c,a]});return N(t)}function j(t,e){et[t]=et[t]||[],et[t].push(e),"update"===t.split(".")[0]&&Y.forEach(function(t,e){O("update",e)})}function U(t){var e=t&&t.split(".")[0],n=e&&t.substring(e.length);Object.keys(et).forEach(function(t){var i=t.split(".")[0],o=t.substring(i.length);e&&e!==i||n&&n!==o||delete et[t]})}function $(t,e){var n=R(),o=P({start:[0,0],margin:t.margin,limit:t.limit,step:void 0===t.step?i.singleStep:t.step,range:t.range,animate:t.animate,snap:void 0===t.snap?i.snap:t.snap});["margin","limit","range","animate"].forEach(function(e){void 0!==t[e]&&(i[e]=t[e])}),o.spectrum.direction=Z.direction,Z=o.spectrum,Q=[-1,-1],X(t.start||n,e)}var V,Y,J,K=d(),G=e,Q=[-1,-1],Z=i.spectrum,tt=[],et={};if(G.noUiSlider)throw new Error("Slider was already initialized.");return V=M(i.dir,i.ort,G),Y=v(i.handles,i.dir,V),b(i.connect,G,Y),i.pips&&w(i.pips),i.tooltips&&A(),J={destroy:F,steps:H,on:j,off:U,get:R,set:X,updateOptions:$,options:p,target:G,pips:w},E(i.events),J}function F(t,e){if(!t.nodeName)throw new Error("noUiSlider.create requires a single element.");var n=P(e,t),i=R(t,n,e);return i.set(n.start),t.noUiSlider=i,i}_.prototype.getMargin=function(t){return 2===this.xPct.length&&f(this.xVal,t)},_.prototype.toStepping=function(t){return t=v(this.xVal,this.xPct,t),this.direction&&(t=100-t),t},_.prototype.fromStepping=function(t){return this.direction&&(t=100-t),M(this.xVal,this.xPct,t)},_.prototype.getStep=function(t){return this.direction&&(t=100-t),t=y(this.xPct,this.xSteps,this.snap,t),this.direction&&(t=100-t),t},_.prototype.getApplicableStep=function(t){var e=b(t,this.xPct),n=100===t?2:1;return[this.xNumSteps[e-2],this.xVal[e-n],this.xNumSteps[e-n]]},_.prototype.convert=function(t){return this.getStep(this.toStepping(t))};var H={to:function(t){return void 0!==t&&t.toFixed(2)},from:Number};return{create:F}}),function(t,e,n){function i(t,e,n){return t.addEventListener?void t.addEventListener(e,n,!1):void t.attachEvent("on"+e,n)}function o(t){if("keypress"==t.type){var e=String.fromCharCode(t.which);return t.shiftKey||(e=e.toLowerCase()),e}return b[t.which]?b[t.which]:v[t.which]?v[t.which]:String.fromCharCode(t.which).toLowerCase()}function a(t,e){return t.sort().join(",")===e.sort().join(",")}function s(t){var e=[];return t.shiftKey&&e.push("shift"),t.altKey&&e.push("alt"),t.ctrlKey&&e.push("ctrl"),t.metaKey&&e.push("meta"),e}function r(t){return t.preventDefault?void t.preventDefault():void(t.returnValue=!1)}function c(t){return t.stopPropagation?void t.stopPropagation():void(t.cancelBubble=!0)}function l(t){return"shift"==t||"ctrl"==t||"alt"==t||"meta"==t}function u(){if(!g){g={};for(var t in b)t>95&&t<112||b.hasOwnProperty(t)&&(g[b[t]]=t)}return g}function h(t,e,n){return n||(n=u()[t]?"keydown":"keypress"),"keypress"==n&&e.length&&(n="keydown"),n}function d(t){return"+"===t?["+"]:(t=t.replace(/\+{2}/g,"+plus"),t.split("+"))}function p(t,e){var n,i,o,a=[];for(n=d(t),o=0;o1?void g(t,s,e,n):(a=p(t,n),v._callbacks[a.key]=v._callbacks[a.key]||[],u(a.key,a.modifiers,{type:a.action},i,t,o),void v._callbacks[a.key][i?"unshift":"push"]({callback:e,modifiers:a.modifiers,action:a.action,seq:i,level:o,combo:t}))}var v=this;if(t=t||e,!(v instanceof m))return new m(t);v.target=t,v._callbacks={},v._directMap={};var M,y={},A=!1,z=!1,_=!1;v._handleKey=function(t,e,i){var o,a=u(t,e,i),s={},r=0,c=!1;for(o=0;o":".","?":"/","|":"\\"},y={option:"alt",command:"meta","return":"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},A=1;A<20;++A)b[111+A]="f"+A;for(A=0;A<=9;++A)b[A+96]=A;m.prototype.bind=function(t,e,n){var i=this;return t=t instanceof Array?t:[t],i._bindMultiple.call(i,t,e,n),i},m.prototype.unbind=function(t,e){var n=this;return n.bind.call(n,t,function(){},e)},m.prototype.trigger=function(t,e){var n=this;return n._directMap[t+":"+e]&&n._directMap[t+":"+e]({},t),n},m.prototype.reset=function(){var t=this;return t._callbacks={},t._directMap={},t},m.prototype.stopCallback=function(t,e){var n=this;return!((" "+e.className+" ").indexOf(" mousetrap ")>-1)&&(!f(e,n.target)&&("INPUT"==e.tagName||"SELECT"==e.tagName||"TEXTAREA"==e.tagName||e.isContentEditable))},m.prototype.handleKey=function(){var t=this;return t._handleKey.apply(t,arguments)},m.addKeycodes=function(t){for(var e in t)t.hasOwnProperty(e)&&(b[e]=t[e]);g=null},m.init=function(){var t=m(e);for(var n in t)"_"!==n.charAt(0)&&(m[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n))},m.init(),t.Mousetrap=m,"undefined"!=typeof module&&module.exports&&(module.exports=m),"function"==typeof define&&define.amd&&define(function(){return m})}}("undefined"!=typeof window?window:null,"undefined"!=typeof window?document:null),function(t){"use strict";function e(){}function n(t,e){var n,i,o,a;for(this.list=t,this.options=e=e||{},n=0,a=["sort","shouldSort","verbose","tokenize"],i=a.length;n0)for(e={item:l[t].item},i=0;iy.maxPatternLength)return v=t.match(new RegExp(this.pattern.replace(s,"|"))),M=!!v,{isMatch:M,score:M?.5:1};for(o=y.location,i=t.length,a=y.threshold,r=t.indexOf(this.pattern,o),r!=-1&&(a=Math.min(this._bitapScore(0,r),a),r=t.lastIndexOf(this.pattern,o+this.patternLen),r!=-1&&(a=Math.min(this._bitapScore(0,r),a))),r=-1,g=1,b=[],u=this.patternLen+i,e=0;e=h;n--)if(m=this.patternAlphabet[t.charAt(n-1)],0===e?p[n]=(p[n+1]<<1|1)&m:p[n]=(p[n+1]<<1|1)&m|((f[n+1]|f[n])<<1|1)|f[n+1],p[n]&this.matchmask&&(g=this._bitapScore(e,n-1),g<=a)){if(a=g,r=n-1,b.push(r),!(r>o))break;h=Math.max(1,2*o-r)}if(this._bitapScore(e+1,o)>a)break;f=p}return{isMatch:r>=0,score:0===g?.001:g}},"object"==typeof exports?module.exports=n:"function"==typeof define&&define.amd?define(function(){return n}):t.Fuse=n}(this),!function(t){"use strict";var e=function(e,n){this.options=t.extend({},t.fn.combobox.defaults,n),this.$source=t(e),this.$container=this.setup(),this.$element=this.$container.find("input[type=text]"),this.$target=this.$container.find("input[type=hidden]"),this.$button=this.$container.find(".dropdown-toggle"),this.$menu=t(this.options.menu).appendTo("body"),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.shown=!1,this.selected=!1,this.refresh(),this.transferAttributes(),this.listen()};e.prototype={constructor:e,setup:function(){var e=t(this.options.template);return this.$source.before(e),this.$source.hide(),e},parse:function(){var e=this,n={},i=[],o=!1,a="";return this.$source.find("option").each(function(){var s=t(this);return""===s.val()?void(e.options.placeholder=s.text()):(n[s.text()]=s.val(),i.push(s.text()),void(s.prop("selected")&&(o=s.text(),a=s.val())))}),this.map=n,o&&(this.$element.val(o),this.$target.val(a),this.$container.addClass("combobox-selected"),this.selected=!0),i},transferAttributes:function(){this.options.placeholder=this.$source.attr("data-placeholder")||this.options.placeholder,this.$element.attr("placeholder",this.options.placeholder),this.$target.prop("name",this.$source.prop("name")),this.$target.val(this.$source.val()),this.$source.removeAttr("name"),this.$element.attr("required",this.$source.attr("required")),this.$element.attr("rel",this.$source.attr("rel")),this.$element.attr("title",this.$source.attr("title")),this.$element.attr("class",this.$source.attr("class")),this.$element.attr("tabindex",this.$source.attr("tabindex")),this.$source.removeAttr("tabindex"),this.$source.removeAttr("required")},setSelected:function(){this.selected=!0},select:function(){var t=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(t)),this.$target.val(this.map[t]),this.$source.val(this.map[t]),this.$element.trigger("change"),this.$target.trigger("change"),this.$source.trigger("change"),this.$container.addClass("combobox-selected"),this.selected=!0,this.hide()},updater:function(t){return t},show:function(){var e=t.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:e.top+e.height,left:e.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){return this.query=this.$element.val(),this.process(this.source)},process:function(e){var n=this;return e=t.grep(e,function(t){return n.matcher(t)}),e=this.sorter(e),e.length?this.render(e.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(t){return~t.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(t){for(var e,n=[],i=[],o=[];e=t.shift();)e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?i.push(e):o.push(e):n.push(e); -return n.concat(i,o)},highlighter:function(t){var e=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return t.replace(new RegExp("("+e+")","ig"),function(t,e){return""+e+""})},render:function(e){var n=this;return e=t(e).map(function(e,i){return e=t(n.options.item).attr("data-value",i),e.find("a").html(n.highlighter(i)),e[0]}),e.first().addClass("active"),this.$menu.html(e),this},next:function(e){var n=this.$menu.find(".active").removeClass("active"),i=n.next();i.length||(i=t(this.$menu.find("li")[0])),i.addClass("active")},prev:function(t){var e=this.$menu.find(".active").removeClass("active"),n=e.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},toggle:function(){this.$container.hasClass("combobox-selected")?(this.clearTarget(),this.triggerChange(),this.clearElement()):this.shown?this.hide():(this.clearElement(),this.lookup()),this.$element.trigger("change"),this.$target.trigger("change"),this.$source.trigger("change")},clearElement:function(){this.$element.val("").focus()},clearTarget:function(){this.$source.val(""),this.$target.val(""),this.$container.removeClass("combobox-selected"),this.selected=!1},triggerChange:function(){this.$source.trigger("change")},refresh:function(){this.source=this.parse(),this.options.items=this.source.length},listen:function(){this.$element.on("focus",t.proxy(this.focus,this)).on("blur",t.proxy(this.blur,this)).on("keypress",t.proxy(this.keypress,this)).on("keyup",t.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",t.proxy(this.keydown,this)),this.$menu.on("click",t.proxy(this.click,this)).on("mouseenter","li",t.proxy(this.mouseenter,this)).on("mouseleave","li",t.proxy(this.mouseleave,this)),this.$button.on("click",t.proxy(this.toggle,this))},eventSupported:function(t){var e=t in this.$element;return e||(this.$element.setAttribute(t,"return;"),e="function"==typeof this.$element[t]),e},move:function(t){if(this.shown){switch(t.keyCode){case 9:case 13:case 27:t.preventDefault();break;case 38:t.preventDefault(),this.prev();break;case 40:t.preventDefault(),this.next()}t.stopPropagation()}},keydown:function(e){this.suppressKeyPressRepeat=~t.inArray(e.keyCode,[40,38,9,13,27]),this.move(e)},keypress:function(t){this.suppressKeyPressRepeat||this.move(t)},keyup:function(t){switch(t.keyCode){case 40:case 39:case 38:case 37:case 36:case 35:case 33:case 34:case 16:case 17:case 18:case 20:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.clearTarget(),this.lookup()}t.stopPropagation(),t.preventDefault()},focus:function(t){this.focused=!0},blur:function(t){var e=this;this.focused=!1;var n=this.$element.val();this.selected||""===n||(this.$element.val(""),this.$source.val("").trigger("change"),this.$target.val("").trigger("change")),!this.mousedover&&this.shown&&setTimeout(function(){e.hide()},200)},click:function(t){t.stopPropagation(),t.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(e){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),t(e.currentTarget).addClass("active")},mouseleave:function(t){this.mousedover=!1}},t.fn.combobox=function(n){return this.each(function(){var i=t(this),o=i.data("combobox"),a="object"==typeof n&&n;o||i.data("combobox",o=new e(this,a)),"string"==typeof n&&o[n]()})},t.fn.combobox.defaults={template:'
    ',menu:'',item:'
  • '},t.fn.combobox.Constructor=e}(window.jQuery);var isOpera=!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0,isFirefox="undefined"!=typeof InstallTrigger,isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,isEdge=navigator.userAgent.indexOf("Edge/")>=0,isChrome=!!window.chrome&&!isOpera&&!isEdge,isChromium=isChrome&&navigator.userAgent.indexOf("Chromium")>=0,isChrome48=isChrome&&navigator.userAgent.indexOf("Chrome/48")>=0,isIE=!!document.documentMode,isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),refreshTimer;$.fn.dataTableExt&&($.extend($.fn.dataTableExt.oStdClasses,{sWrapper:"dataTables_wrapper form-inline"}),$.fn.dataTableExt.oApi.fnPagingInfo=function(t){return{iStart:t._iDisplayStart,iEnd:t.fnDisplayEnd(),iLength:t._iDisplayLength,iTotal:t.fnRecordsTotal(),iFilteredTotal:t.fnRecordsDisplay(),iPage:t._iDisplayLength===-1?0:Math.ceil(t._iDisplayStart/t._iDisplayLength),iTotalPages:t._iDisplayLength===-1?0:Math.ceil(t.fnRecordsDisplay()/t._iDisplayLength)}},$.extend($.fn.dataTableExt.oPagination,{bootstrap:{fnInit:function(t,e,n){var i=(t.oLanguage.oPaginate,function(e){e.preventDefault(),t.oApi._fnPageChange(t,e.data.action)&&n(t)});$(e).addClass("pagination").append('');var o=$("a",e);$(o[0]).bind("click.DT",{action:"previous"},i),$(o[1]).bind("click.DT",{action:"next"},i)},fnUpdate:function(t,e){var n,i,o,a,s,r,c=5,l=t.oInstance.fnPagingInfo(),u=t.aanFeatures.p,h=Math.floor(c/2);for(l.iTotalPages=l.iTotalPages-h?(s=l.iTotalPages-c+1,r=l.iTotalPages):(s=l.iPage-h+1,r=s+c-1),n=0,i=u.length;n'+o+"").insertBefore($("li:last",u[n])[0]).bind("click",function(n){n.preventDefault(),t._iDisplayStart=(parseInt($("a",this).text(),10)-1)*l.iLength,e(t)});0===l.iPage?$("li:first",u[n]).addClass("disabled"):$("li:first",u[n]).removeClass("disabled"),l.iPage===l.iTotalPages-1||0===l.iTotalPages?$("li:last",u[n]).addClass("disabled"):$("li:last",u[n]).removeClass("disabled")}}}})),$.fn.DataTable.TableTools&&($.extend(!0,$.fn.DataTable.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn",disabled:"disabled"},collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info modal"},select:{row:"active"}}),$.extend(!0,$.fn.DataTable.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}})),$(function(){$.ajaxSetup({headers:{"X-CSRF-TOKEN":$('meta[name="csrf-token"]').attr("content")}})});var BASE64_MARKER=";base64,";window.ko&&(ko.bindingHandlers.dropdown={init:function(t,e,n){var i=n().dropdownOptions||{},o=ko.utils.unwrapObservable(e()),a=o&&o.public_id?o.public_id():o&&o.id?o.id():!!o&&o;a&&$(t).val(a),$(t).combobox(i)},update:function(t,e){var n=ko.utils.unwrapObservable(e()),i=n&&n.public_id?n.public_id():n&&n.id?n.id():!!n&&n;i?($(t).val(i),$(t).combobox("refresh")):($(t).combobox("clearTarget"),$(t).combobox("clearElement"))}},ko.bindingHandlers.combobox={init:function(t,e,n){var i=n().dropdownOptions||{},o=ko.utils.unwrapObservable(e()),a=o&&o.public_id?o.public_id():o&&o.id?o.id():!!o&&o;a&&$(t).val(a),$(t).combobox(i),ko.utils.registerEventHandler(t,"change",function(){var n=e();n($(t).val())})},update:function(t,e){var n=ko.utils.unwrapObservable(e()),i=n&&n.public_id?n.public_id():n&&n.id?n.id():!!n&&n;i?($(t).val(i),$(t).combobox("refresh")):($(t).combobox("clearTarget"),$(t).combobox("clearElement"))}},ko.bindingHandlers.datePicker={init:function(t,e,n){var i=ko.utils.unwrapObservable(e());i&&$(t).datepicker("update",i),$(t).change(function(){var n=e();n($(t).val())})},update:function(t,e){var n=ko.utils.unwrapObservable(e());n&&$(t).datepicker("update",n)}},ko.bindingHandlers.placeholder={init:function(t,e,n){var i=e();ko.applyBindingsToNode(t,{attr:{placeholder:i}})}},ko.bindingHandlers.tooltip={init:function(t,e){var n=ko.utils.unwrapObservable(e()),i={};ko.utils.extend(i,ko.bindingHandlers.tooltip.options),ko.utils.extend(i,n),$(t).tooltip(i),ko.utils.domNodeDisposal.addDisposeCallback(t,function(){$(t).tooltip("destroy")})},options:{placement:"bottom",trigger:"hover"}},ko.bindingHandlers.typeahead={init:function(t,e,n,i,o){var a=$(t),s=n();a.typeahead({highlight:!0,minLength:0},{name:"data",display:s.key,limit:50,source:searchData(s.items,s.key)}).on("typeahead:change",function(t,n,i){var o=e();o(n)})},update:function(t,e){var n=ko.utils.unwrapObservable(e());n&&$(t).typeahead("val",n)}});var CONSTS={};CONSTS.INVOICE_STATUS_DRAFT=1,CONSTS.INVOICE_STATUS_SENT=2,CONSTS.INVOICE_STATUS_VIEWED=3,CONSTS.INVOICE_STATUS_APPROVED=4,CONSTS.INVOICE_STATUS_PARTIAL=5,CONSTS.INVOICE_STATUS_PAID=6,$.fn.datepicker.defaults.autoclose=!0,$.fn.datepicker.defaults.todayHighlight=!0,window.alert=function(){var t=window.alert;return function(e){window.alert=t,e&&0===e.indexOf("DataTables warning")?void 0:t(e)}}();var NINJA=NINJA||{};NINJA.TEMPLATES={CLEAN:"1",BOLD:"2",MODERN:"3",NORMAL:"4",BUSINESS:"5",CREATIVE:"6",ELEGANT:"7",HIPSTER:"8",PLAYFUL:"9",PHOTO:"10"},NINJA.decodeJavascript=function(t,e){var n=t.account,i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",o={accountName:n.name||" ",accountLogo:!isEdge&&window.accountLogo?window.accountLogo:i,accountDetails:NINJA.accountDetails(t),accountAddress:NINJA.accountAddress(t),invoiceDetails:NINJA.invoiceDetails(t),invoiceDetailsHeight:16*NINJA.invoiceDetails(t).length+16,invoiceLineItems:t.is_statement?NINJA.statementLines(t):NINJA.invoiceLines(t),invoiceLineItemColumns:t.is_statement?NINJA.statementColumns(t):NINJA.invoiceColumns(t),invoiceDocuments:isEdge?[]:NINJA.invoiceDocuments(t),quantityWidth:NINJA.quantityWidth(t),taxWidth:NINJA.taxWidth(t),clientDetails:NINJA.clientDetails(t),notesAndTerms:NINJA.notesAndTerms(t),subtotals:t.is_statement?NINJA.statementSubtotals(t):NINJA.subtotals(t),subtotalsHeight:16*NINJA.subtotals(t).length+16,subtotalsWithoutBalance:NINJA.subtotals(t,!0),subtotalsBalance:NINJA.subtotalsBalance(t),balanceDue:formatMoneyInvoice(t.balance_amount,t),invoiceFooter:NINJA.invoiceFooter(t),invoiceNumber:t.invoice_number||" ",entityType:t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.quote:invoiceLabels.invoice,entityTypeUC:(t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.quote:invoiceLabels.invoice).toUpperCase(),entityTaxType:t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.tax_quote:invoiceLabels.tax_invoice,fontSize:NINJA.fontSize,fontSizeLarger:NINJA.fontSize+1,fontSizeLargest:NINJA.fontSize+2,fontSizeSmaller:NINJA.fontSize-1,bodyFont:NINJA.bodyFont,headerFont:NINJA.headerFont};for(var a in o){if(["quantityWidth","taxWidth"].indexOf(a)>=0){var s=new RegExp('"\\$'+a+'",',"g");r=o[a]}else{var s=new RegExp('"\\$'+a+'"',"g"),r=JSON.stringify(o[a]);r=doubleDollarSign(r)}e=e.replace(s,r)}var s=new RegExp('"\\$\\w*?Label(UC)?(:)?(\\?)?"',"g"),c=e.match(s);if(c)for(var l=0;l0&&"balance_due"==field?field="partial_due":t.is_quote&&("due_date"==field?field="valid_until":field=field.replace("invoice","quote"));var d=invoiceLabels[field];u.indexOf("UC")>=0&&(d=d.toUpperCase()),u.indexOf(":")>=0&&(d+=":")}else d=" ";e=e.replace(u,'"'+d+'"')}var s=new RegExp('"\\$[a-z][\\w\\.]*?[Value]?"',"g"),c=e.match(s);if(c)for(var l=0;l=0)){endsWith(u,'Value"')?field=u.substring(2,u.indexOf("Value")):field=u.substring(2,u.length-1),field=toSnakeCase(field);var h=getDescendantProp(t,field)||" ";h=doubleDollarSign(h),e=e.replace(u,'"'+h+'"')}}return e},NINJA.notesAndTerms=function(t){var e=[];return t.public_notes&&(e.push({stack:[{text:t.is_recurring?processVariables(t.public_notes):t.public_notes,style:["notes"]}]}),e.push({text:" "})),t.terms&&(e.push({text:invoiceLabels.terms,style:["termsLabel"]}),e.push({stack:[{text:t.is_recurring?processVariables(t.terms):t.terms,style:["terms"]}]})),NINJA.prepareDataList(e,"notesAndTerms")},NINJA.statementColumns=function(t){return["22%","22%","22%","17%","17%"]},NINJA.statementLines=function(t){var e=[[]];e[0].push({text:invoiceLabels.invoice_number,style:["tableHeader","invoiceNumberTableHeader"]}),e[0].push({text:invoiceLabels.invoice_date,style:["tableHeader","invoiceDateTableHeader"]}),e[0].push({text:invoiceLabels.due_date,style:["tableHeader","dueDateTableHeader"]}),e[0].push({text:invoiceLabels.total,style:["tableHeader","totalTableHeader"]}),e[0].push({text:invoiceLabels.balance,style:["tableHeader","balanceTableHeader"]});for(var n=0;n1?i:t},NINJA.parseRegExp=function(t,e,n,i){for(var o=new RegExp(e,"gm"),a=[],s=0;s1?a:t},NINJA.parseRegExpLine=function(t,e,n,i){for(var o=[],a=0;match=e.exec(t);){match.index>a&&o.push(t.substring(a,match.index));var s={};s.text=match[1],s=n(s),o.push(s),a=match.index+match[0].length}return o.length?(a"+e+""})},render:function(e){var n=this;return e=t(e).map(function(e,i){return e=t(n.options.item).attr("data-value",i),e.find("a").html(n.highlighter(i)),e[0]}),e.first().addClass("active"),this.$menu.html(e),this},next:function(e){var n=this.$menu.find(".active").removeClass("active"),i=n.next();i.length||(i=t(this.$menu.find("li")[0])),i.addClass("active")},prev:function(t){var e=this.$menu.find(".active").removeClass("active"),n=e.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},toggle:function(){this.$container.hasClass("combobox-selected")?(this.clearTarget(),this.triggerChange(),this.clearElement()):this.shown?this.hide():(this.clearElement(),this.lookup()),this.$element.trigger("change"),this.$target.trigger("change"),this.$source.trigger("change")},clearElement:function(){this.$element.val("").focus()},clearTarget:function(){this.$source.val(""),this.$target.val(""),this.$container.removeClass("combobox-selected"),this.selected=!1},triggerChange:function(){this.$source.trigger("change")},refresh:function(){this.source=this.parse(),this.options.items=this.source.length},listen:function(){this.$element.on("focus",t.proxy(this.focus,this)).on("blur",t.proxy(this.blur,this)).on("keypress",t.proxy(this.keypress,this)).on("keyup",t.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",t.proxy(this.keydown,this)),this.$menu.on("click",t.proxy(this.click,this)).on("mouseenter","li",t.proxy(this.mouseenter,this)).on("mouseleave","li",t.proxy(this.mouseleave,this)),this.$button.on("click",t.proxy(this.toggle,this))},eventSupported:function(t){var e=t in this.$element;return e||(this.$element.setAttribute(t,"return;"),e="function"==typeof this.$element[t]),e},move:function(t){if(this.shown){switch(t.keyCode){case 9:case 13:case 27:t.preventDefault();break;case 38:t.preventDefault(),this.prev();break;case 40:t.preventDefault(),this.next()}t.stopPropagation()}},keydown:function(e){this.suppressKeyPressRepeat=~t.inArray(e.keyCode,[40,38,9,13,27]),this.move(e)},keypress:function(t){this.suppressKeyPressRepeat||this.move(t)},keyup:function(t){switch(t.keyCode){case 40:case 39:case 38:case 37:case 36:case 35:case 33:case 34:case 16:case 17:case 18:case 20:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.clearTarget(),this.lookup()}t.stopPropagation(),t.preventDefault()},focus:function(t){this.focused=!0},blur:function(t){var e=this;this.focused=!1;var n=this.$element.val();this.selected||""===n||(this.$element.val(""),this.$source.val("").trigger("change"),this.$target.val("").trigger("change")),!this.mousedover&&this.shown&&setTimeout(function(){e.hide()},200)},click:function(t){t.stopPropagation(),t.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(e){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),t(e.currentTarget).addClass("active")},mouseleave:function(t){this.mousedover=!1}},t.fn.combobox=function(n){return this.each(function(){var i=t(this),o=i.data("combobox"),a="object"==typeof n&&n;o||i.data("combobox",o=new e(this,a)),"string"==typeof n&&o[n]()})},t.fn.combobox.defaults={template:'
    ',menu:'',item:'
  • '},t.fn.combobox.Constructor=e}(window.jQuery);var isOpera=!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0,isFirefox="undefined"!=typeof InstallTrigger,isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,isEdge=navigator.userAgent.indexOf("Edge/")>=0,isChrome=!!window.chrome&&!isOpera&&!isEdge,isChromium=isChrome&&navigator.userAgent.indexOf("Chromium")>=0,isChrome48=isChrome&&navigator.userAgent.indexOf("Chrome/48")>=0,isIE=!!document.documentMode,isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),refreshTimer;$.fn.dataTableExt&&($.extend($.fn.dataTableExt.oStdClasses,{sWrapper:"dataTables_wrapper form-inline"}),$.fn.dataTableExt.oApi.fnPagingInfo=function(t){return{iStart:t._iDisplayStart,iEnd:t.fnDisplayEnd(),iLength:t._iDisplayLength,iTotal:t.fnRecordsTotal(),iFilteredTotal:t.fnRecordsDisplay(),iPage:t._iDisplayLength===-1?0:Math.ceil(t._iDisplayStart/t._iDisplayLength),iTotalPages:t._iDisplayLength===-1?0:Math.ceil(t.fnRecordsDisplay()/t._iDisplayLength)}},$.extend($.fn.dataTableExt.oPagination,{bootstrap:{fnInit:function(t,e,n){var i=(t.oLanguage.oPaginate,function(e){e.preventDefault(),t.oApi._fnPageChange(t,e.data.action)&&n(t)});$(e).addClass("pagination").append('');var o=$("a",e);$(o[0]).bind("click.DT",{action:"previous"},i),$(o[1]).bind("click.DT",{action:"next"},i)},fnUpdate:function(t,e){var n,i,o,a,s,r,c=5,l=t.oInstance.fnPagingInfo(),u=t.aanFeatures.p,h=Math.floor(c/2);for(l.iTotalPages=l.iTotalPages-h?(s=l.iTotalPages-c+1,r=l.iTotalPages):(s=l.iPage-h+1,r=s+c-1),n=0,i=u.length;n'+o+"").insertBefore($("li:last",u[n])[0]).bind("click",function(n){n.preventDefault(),t._iDisplayStart=(parseInt($("a",this).text(),10)-1)*l.iLength,e(t)});0===l.iPage?$("li:first",u[n]).addClass("disabled"):$("li:first",u[n]).removeClass("disabled"),l.iPage===l.iTotalPages-1||0===l.iTotalPages?$("li:last",u[n]).addClass("disabled"):$("li:last",u[n]).removeClass("disabled")}}}})),$.fn.DataTable.TableTools&&($.extend(!0,$.fn.DataTable.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn",disabled:"disabled"},collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info modal"},select:{row:"active"}}),$.extend(!0,$.fn.DataTable.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}})),$(function(){$.ajaxSetup({headers:{"X-CSRF-TOKEN":$('meta[name="csrf-token"]').attr("content")}})});var BASE64_MARKER=";base64,";window.ko&&(ko.bindingHandlers.dropdown={init:function(t,e,n){var i=n().dropdownOptions||{},o=ko.utils.unwrapObservable(e()),a=o&&o.public_id?o.public_id():o&&o.id?o.id():!!o&&o;a&&$(t).val(a),$(t).combobox(i)},update:function(t,e){var n=ko.utils.unwrapObservable(e()),i=n&&n.public_id?n.public_id():n&&n.id?n.id():!!n&&n;i?($(t).val(i),$(t).combobox("refresh")):($(t).combobox("clearTarget"),$(t).combobox("clearElement"))}},ko.bindingHandlers.combobox={init:function(t,e,n){var i=n().dropdownOptions||{},o=ko.utils.unwrapObservable(e()),a=o&&o.public_id?o.public_id():o&&o.id?o.id():!!o&&o;a&&$(t).val(a),$(t).combobox(i),ko.utils.registerEventHandler(t,"change",function(){var n=e();n($(t).val())})},update:function(t,e){var n=ko.utils.unwrapObservable(e()),i=n&&n.public_id?n.public_id():n&&n.id?n.id():!!n&&n;i?($(t).val(i),$(t).combobox("refresh")):($(t).combobox("clearTarget"),$(t).combobox("clearElement"))}},ko.bindingHandlers.datePicker={init:function(t,e,n){var i=ko.utils.unwrapObservable(e());i&&$(t).datepicker("update",i),$(t).change(function(){var n=e();n($(t).val())})},update:function(t,e){var n=ko.utils.unwrapObservable(e());n&&$(t).datepicker("update",n)}},ko.bindingHandlers.placeholder={init:function(t,e,n){var i=e();ko.applyBindingsToNode(t,{attr:{placeholder:i}})}},ko.bindingHandlers.tooltip={init:function(t,e){var n=ko.utils.unwrapObservable(e()),i={};ko.utils.extend(i,ko.bindingHandlers.tooltip.options),ko.utils.extend(i,n),$(t).tooltip(i),ko.utils.domNodeDisposal.addDisposeCallback(t,function(){$(t).tooltip("destroy")})},options:{placement:"bottom",trigger:"hover"}},ko.bindingHandlers.typeahead={init:function(t,e,n,i,o){var a=$(t),s=n();a.typeahead({highlight:!0,minLength:0},{name:"data",display:s.key,limit:50,source:searchData(s.items,s.key)}).on("typeahead:change",function(t,n,i){var o=e();o(n)})},update:function(t,e){var n=ko.utils.unwrapObservable(e());n&&$(t).typeahead("val",n)}});var CONSTS={};CONSTS.INVOICE_STATUS_DRAFT=1,CONSTS.INVOICE_STATUS_SENT=2,CONSTS.INVOICE_STATUS_VIEWED=3,CONSTS.INVOICE_STATUS_APPROVED=4,CONSTS.INVOICE_STATUS_PARTIAL=5,CONSTS.INVOICE_STATUS_PAID=6,$.fn.datepicker.defaults.autoclose=!0,$.fn.datepicker.defaults.todayHighlight=!0,window.alert=function(){var t=window.alert;return function(e){window.alert=t,e&&0===e.indexOf("DataTables warning")?void 0:t(e)}}();var NINJA=NINJA||{};NINJA.TEMPLATES={CLEAN:"1",BOLD:"2",MODERN:"3",NORMAL:"4",BUSINESS:"5",CREATIVE:"6",ELEGANT:"7",HIPSTER:"8",PLAYFUL:"9",PHOTO:"10"},NINJA.decodeJavascript=function(t,e){var n=t.account,i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",o={accountName:n.name||" ",accountLogo:!isEdge&&window.accountLogo?window.accountLogo:i,accountDetails:NINJA.accountDetails(t),accountAddress:NINJA.accountAddress(t),invoiceDetails:NINJA.invoiceDetails(t),invoiceDetailsHeight:16*NINJA.invoiceDetails(t).length+16,invoiceLineItems:t.is_statement?NINJA.statementLines(t):NINJA.invoiceLines(t),invoiceLineItemColumns:t.is_statement?NINJA.statementColumns(t):NINJA.invoiceColumns(t),invoiceDocuments:isEdge?[]:NINJA.invoiceDocuments(t),quantityWidth:NINJA.quantityWidth(t),taxWidth:NINJA.taxWidth(t),clientDetails:NINJA.clientDetails(t),notesAndTerms:NINJA.notesAndTerms(t),subtotals:t.is_statement?NINJA.statementSubtotals(t):NINJA.subtotals(t),subtotalsHeight:16*NINJA.subtotals(t).length+16,subtotalsWithoutBalance:t.is_statement?[[]]:NINJA.subtotals(t,!0),subtotalsBalance:NINJA.subtotalsBalance(t),balanceDue:formatMoneyInvoice(t.balance_amount,t),invoiceFooter:NINJA.invoiceFooter(t),invoiceNumber:t.invoice_number||" ",entityType:t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.quote:invoiceLabels.invoice,entityTypeUC:(t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.quote:invoiceLabels.invoice).toUpperCase(),entityTaxType:t.is_statement?invoiceLabels.statement:t.is_quote?invoiceLabels.tax_quote:invoiceLabels.tax_invoice,fontSize:NINJA.fontSize,fontSizeLarger:NINJA.fontSize+1,fontSizeLargest:NINJA.fontSize+2,fontSizeSmaller:NINJA.fontSize-1,bodyFont:NINJA.bodyFont,headerFont:NINJA.headerFont};for(var a in o){if(["quantityWidth","taxWidth"].indexOf(a)>=0){var s=new RegExp('"\\$'+a+'",',"g");r=o[a]}else{var s=new RegExp('"\\$'+a+'"',"g"),r=JSON.stringify(o[a]);r=doubleDollarSign(r)}e=e.replace(s,r)}var s=new RegExp('"\\$\\w*?Label(UC)?(:)?(\\?)?"',"g"),c=e.match(s);if(c)for(var l=0;l0&&"balance_due"==field?field="partial_due":t.is_quote&&("due_date"==field?field="valid_until":field=field.replace("invoice","quote")),t.is_statement&&("your_invoice"==field?field="your_statement":"invoice_issued_to"==field?field="statement_issued_to":"invoice_to"==field&&(field="statement_to"));var d=invoiceLabels[field];u.indexOf("UC")>=0&&(d=d.toUpperCase()),u.indexOf(":")>=0&&(d+=":")}else d=" ";e=e.replace(u,'"'+d+'"')}var s=new RegExp('"\\$[a-z][\\w\\.]*?[Value]?"',"g"),c=e.match(s);if(c)for(var l=0;l=0)){endsWith(u,'Value"')?field=u.substring(2,u.indexOf("Value")):field=u.substring(2,u.length-1),field=toSnakeCase(field);var h=getDescendantProp(t,field)||" ";h=doubleDollarSign(h),e=e.replace(u,'"'+h+'"')}}return e},NINJA.notesAndTerms=function(t){var e=[];return t.public_notes&&(e.push({stack:[{text:t.is_recurring?processVariables(t.public_notes):t.public_notes,style:["notes"]}]}),e.push({text:" "})),t.terms&&(e.push({text:invoiceLabels.terms,style:["termsLabel"]}),e.push({stack:[{text:t.is_recurring?processVariables(t.terms):t.terms,style:["terms"]}]})),NINJA.prepareDataList(e,"notesAndTerms")},NINJA.statementColumns=function(t){return["22%","22%","22%","17%","17%"]},NINJA.statementLines=function(t){var e=[[]];e[0].push({text:invoiceLabels.invoice_number,style:["tableHeader","itemTableHeader"]}),e[0].push({text:invoiceLabels.invoice_date,style:["tableHeader","invoiceDateTableHeader"]}),e[0].push({text:invoiceLabels.due_date,style:["tableHeader","dueDateTableHeader"]}),e[0].push({text:invoiceLabels.total,style:["tableHeader","totalTableHeader"]}),e[0].push({text:invoiceLabels.balance,style:["tableHeader","balanceTableHeader"]});for(var n=0;n1?i:t},NINJA.parseRegExp=function(t,e,n,i){for(var o=new RegExp(e,"gm"),a=[],s=0;s1?a:t},NINJA.parseRegExpLine=function(t,e,n,i){for(var o=[],a=0;match=e.exec(t);){match.index>a&&o.push(t.substring(a,match.index));var s={};s.text=match[1],s=n(s),o.push(s),a=match.index+match[0].length}return o.length?(a"," ","+","~","excess","unquoted","nodeNameSelector","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","targets","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","padding","border","expanded","unit","propHooks","eased","step","linear","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","rclass","classes","clazz","finalValue","proceed","toggleClass","stateVal","classNames","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","comma","open","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","isLocal","processData","contentType","accepts","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","noConflict","focusable","element","isTabIndexNotNaN","mapName","img","datepicker_getZindex","isNaN","Datepicker","_curInst","_keyEvent","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","en","dpDiv","datepicker_bindHover","datepicker_handleMouseover","_isDisabledDatepicker","datepicker_instActive","inline","datepicker_extendRemove","spinner_modifier","previous","_refresh","_trigger","ui","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","scrollParent","includeHidden","excludeStaticParent","overflowRegex","uniqueId","uuid","removeUniqueId","dataName","tabbable","isTabIndexNaN","outerWidth","reduce","side","innerWidth","innerHeight","outerHeight","ie","navigator","userAgent","disableSelection","eventType","enableSelection","plugin","proto","plugins","instance","allowDisconnected","widget_uuid","widget_slice","widget","fullName","existingConstructor","basePrototype","proxiedPrototype","Widget","_createWidget","_proto","_childConstructors","_super","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","child","childPrototype","bridge","inputIndex","inputLength","isMethodCall","methodValue","_init","defaultElement","create","eventNamespace","bindings","hoverable","_on","destroy","_getCreateOptions","_create","_getCreateEventData","_destroy","curOption","_setOptions","_setOption","suppressDisabledCheck","delegateElement","handlerProxy","_off","_delay","_hoverable","_focusable","focusout","defaultEffect","effect","hasOptions","effectName","effects","mouseHandled","mouseup","cancel","distance","_mouseInit","that","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","_mouseDrag","_mouseStop","abs","getOffsets","offsets","rpercent","parseCss","property","getDimensions","cachedScrollbarWidth","supportsOffsetFractions","rhorizontal","rvertical","roffset","_position","scrollbarWidth","w1","w2","innerDiv","clientWidth","getScrollInfo","within","isDocument","hasOverflowX","scrollWidth","hasOverflowY","getWithinInfo","withinElement","of","atOffset","targetWidth","targetHeight","targetOffset","basePosition","dimensions","scrollInfo","collision","at","horizontalOffset","verticalOffset","collisionPosition","elemWidth","elemHeight","marginLeft","marginTop","collisionWidth","collisionHeight","myOffset","my","right","bottom","feedback","horizontal","vertical","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","flip","newOverLeft","offsetLeft","newOverTop","offsetTop","flipfit","testElement","testElementParent","testElementStyle","background","collapsible","heightStyle","icons","activeHeader","activate","beforeActivate","hideProps","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","showProps","prevShow","prevHide","_processPanels","panel","_createIcons","_destroyIcons","_activate","_setupEvents","_keydown","altKey","ctrlKey","currentIndex","toFocus","_eventHandler","_panelKeyDown","refresh","prevHeaders","prevPanels","panels","maxHeight","_findActive","headerId","panelId","aria-selected","aria-expanded","aria-hidden","keydown","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","adjust","down","submenu","items","menus","role","activeMenu","mousedown .ui-menu-item","click .ui-menu-item","mouseenter .ui-menu-item","previousFilter","mouseleave .ui-menu","keepActiveItem","collapseAll","_closeOnDocumentClick","character","skip","previousPage","nextPage","_move","collapse","filterTimer","_filterMenuItems","icon","submenus","menu","submenuCarat","_isDivider","_itemRole","listbox","nested","focused","_scrollIntoView","_close","_startOpening","borderTop","scroll","elementHeight","itemHeight","_hasScroll","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","direction","escapedCharacter","regex","autoFocus","minLength","requestIndex","pending","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isInput","isMultiLine","valueMethod","isNewMenu","_value","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_change","_initSource","_appendTo","mousedown","menuElement","menufocus","label","liveRegion","menuselect","aria-live","aria-relevant","array","request","autocomplete","equalValues","menuVisible","modifierKey","shiftKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","escapeRegex","messages","noResults","message","lastActive","baseClasses","typeClasses","formResetHandler","radioGroup","radios","primary","secondary","_determineButtonType","hasTitle","buttonElement","toggleButton","activeClass","keyup","_resetButton","ancestor","labelSelector","isDisabled","multipleIcons","buttonClasses","buttons","rtl","allButtons","existingButtons","markerClassName","maxRows","_widgetDatepicker","setDefaults","_attachDatepicker","inst","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_get","_showDatepicker","alt","title","_lastInput","_hideDatepicker","findMax","maxI","date","names","setMonth","setDate","getDay","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","scrollX","scrollY","_dialogInst","_dialogInput","_pos","clientHeight","blockUI","_destroyDatepicker","$target","_enableDatepicker","cursor","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","chr","_possibleChars","lastVal","parseDate","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","cols","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","min","postProcess","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","getDate","_notifyChange","_selectMonthYear","_selectDate","formatDate","noWeekends","day","checkDate","getTime","format","iFormat","dim","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","minSize","digits","getName","shortNames","longNames","k","pair","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","output","dates","_restrictMinMax","_determineDate","offsetNumeric","offsetString","newDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","noChange","clear","origMonth","origYear","startDate","selectDay","selectMonth","selectYear","maxDraw","gotoDate","controls","buttonPanel","dow","row","group","selectedDate","cornerClass","calender","daysInMonth","leadDays","curRows","numRows","printDate","dRow","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","monthHtml","onChange","minMax","curYear","curMonth","yearSplit","minYear","maxYear","initialized","otherArgs","mouse","addClasses","axis","connectToSortable","containment","cursorAt","grid","helper","iframeFix","refreshPositions","revert","revertDuration","scope","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","drag","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","o","_blurActiveElement","_getHandle","_blockFrames","iframeBlocks","_unblockFrames","handleElement","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","_normalizeRightBottom","dragStart","margins","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","drop","dragStop","helperIsFunction","helperProportions","_isRootNode","tagName","po","scrollIsRootNode","isUserScrollable","c","ce","relativeContainer","d","mod","constrainPosition","co","cancelHelperRemoval","draggable","uiSortable","sortables","sortable","isOver","_storedCSS","placeholder","_helper","innermostIntersecting","_intersectsWith","containerCache","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$t","$o","ts","bs","ls","x1","x2","y1","y2","snapping","release","snapItem","_zIndex","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","minHeight","resize","_num","_isNumber","hname","_aspectRatio","originalElement","_proportionallyResizeElements","resizable","elementIsWrapper","marginBottom","originalResizeStyle","_proportionallyResize","se","sw","ne","nw","_renderAxis","padPos","padWrapper","_handles","resizing","wrapper","exp","capture","curleft","curtop","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","smp","dx","dy","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","pr","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","Infinity","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dw","dh","cw","ch","_getPaddingPlusBorderDimensions","borders","paddings","prel","outerDimensions","elementOffset","cs","sp","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","cp","pRatio","cop","continueResize","ho","_store","os","op","delta","_alsoResize","sum","gridX","gridY","ox","oy","newWidth","newHeight","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoOpen","closeOnEscape","dialogClass","modal","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_destroyOverlay","_focusedElement","_untrackInstance","_hide","isOpen","moveToTop","_moveToTop","silent","moved","zIndicies","zIndexMax","_focusTabbable","_size","_createOverlay","overlay","_show","_makeFocusTarget","uiDialogButtonPane","uiDialogTitlebarClose","_keepFocus","checkFocus","isActive","tabbables","aria-describedby","uiDialogTitle","uiDialogTitlebar","_title","aria-labelledby","uiButtonSet","_createButtons","buttonOptions","showText","filteredUi","resizeHandles","_minHeight","_trackingInstances","instances","exists","isVisible","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","isOpening","overlays","accept","greedy","hoverClass","tolerance","deactivate","out","over","proportions","isover","isout","_addToManager","droppables","_splice","_deactivate","_over","_out","_drop","custom","childrenIntersection","droppable","intersect","isOverAxis","reference","toleranceMode","absolute","default","droppablesLoop","greedyChild","parentInstance","intersects","dataSpace","clamp","allowEmpty","propTypes","def","stringParse","color","rgba","_rgba","stringParsers","parser","re","spaceName","space","spaces","colors","transparent","hue2rgb","stepHooks","rplusequals","execResult","Color","green","blue","alpha","red","hsla","hue","saturation","lightness","byte","degrees","supportElem","backgroundColor","from","same","localCache","isCache","_space","used","transition","other","startColor","startValue","endValue","blend","opaque","rgb","toRgbaString","toHslaString","toHexString","includeAlpha","local","vtype","_hsla","hook","colorInit","borderColor","aqua","black","fuchsia","gray","lime","maroon","navy","olive","purple","silver","teal","white","yellow","getElementStyles","styleDifference","oldStyle","newStyle","shorthandStyles","classAnimationActions","borderBottom","borderLeft","borderRight","borderWidth","setAttr","animateClass","applyClassChange","baseClass","allAnimations","action","styleInfo","dfd","switchClass","_normalizeArguments","standardAnimationOption","restore","setMode","mode","getBaseline","origin","createWrapper","fontSize","removeWrapper","setTransition","factor","cssUnit","effectMethod","baseEasings","pow","Sine","Circ","sqrt","Elastic","sin","Back","Bounce","pow2","bounce","easeIn","blind","rpositivemotion","ref","ref2","motion","upAnim","downAnim","times","anims","queuelen","clip","vert","explode","childComplete","pieces","rows","cells","animComplete","mx","fade","fold","horizFirst","widthFirst","animation1","animation2","highlight","backgroundImage","baseline","props0","props1","props2","cProps","vProps","hProps","zero","c_original","toRef","puff","pulsate","showhide","animateTo","shake","positiveMotion","slide","transfer","targetFixed","fixTop","fixLeft","endPosition","startPosition","oldValue","_constrainedValue","aria-valuemin","valueDiv","_refreshValue","newValue","indeterminate","_percentage","percentage","overlayDiv","aria-valuemax","aria-valuenow","autoRefresh","selecting","unselected","unselecting","selectees","dragged","$this","$element","startselected","opos","selectee","doSelect","hit","selectmenuId","ids","_drawButton","_drawMenu","aria-autocomplete","aria-owns","aria-haspopup","_setText","_resizeButton","_buttonEvents","menuItems","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","range","menuWidget","currentOptgroup","li","getSelection","removeAllRanges","addRange","rangeCount","getRangeAt","createRange","_selectFocusedItem","oldIndex","aria-activedescendant","orientation","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","_valueMin","_handleEvents","normValue","closestHandle","allowed","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_start","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","newVal","otherVal","newValues","vals","_values","valsLength","valModStep","alignValue","remainder","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","receive","update","_isOverAxis","_isFloating","floating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","itemElement","intersection","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","_getItemsAsjQuery","connected","res","attribute","expression","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","verticalDirection","_getDragVerticalDirection","horizontalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","addItems","queries","targetData","_queries","queriesLength","toleranceElement","refreshContainers","dist","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","counter","delayEvent","delayedTriggers","_inst","sender","culture","up","incremental","numberFormat","spin","_draw","_events","mousewheel","spinning","_spin","mousewheelTimer","mousedown .ui-spinner-button","_repeat","mouseup .ui-spinner-button","mouseenter .ui-spinner-button","mouseleave .ui-spinner-button","uiSpinner","_uiSpinnerHtml","_buttonHtml","steps","_adjustValue","_increment","_precision","precision","_precisionOf","decimal","aboveMin","prevValue","_parse","_format","Globalize","isValid","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pageDown","beforeLoad","_isLocal","anchor","anchorUrl","locationUrl","decodeURIComponent","running","_processTabs","_initialActive","tabs","anchors","locationHash","tab","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","constrain","lastTabIndex","_setupDisabled","_setupHeightStyle","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","aria-controls","oldTab","newTab","_getIndex","_ajaxSettings","tooltipClass","track","_addDescribedBy","describedby","_removeDescribedBy","tooltips","_disable","tooltipData","_updateContent","_enable","blurEvent","contentOption","positionOption","tooltip","delayedShow","a11yContent","_find","_tooltip","mousemove","fakeEvent","_removeTooltip","closing","hiding","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","emulateTransitionEnd","called","$el","bsTransitionEnd","Plugin","Alert","dismiss","VERSION","TRANSITION_DURATION","removeElement","$parent","alert","Constructor","Button","setState","DEFAULTS","isLoading","loadingText","resetText","changed","$btn","Carousel","pause","cycle","$indicators","paused","sliding","$active","$items","keyboard","getItemIndex","getItemForDirection","activeIndex","itemIndex","$next","isCycling","fallback","slideEvent","$nextIndicator","slidEvent","carousel","clickHandler","slideIndex","$carousel","getTargetFromTrigger","$trigger","Collapse","transitioning","getParent","addAriaAndCollapsedClass","dimension","hasWidth","activesData","actives","startEvent","scrollSize","clearMenus","backdrop","Dropdown","dropdown","_relatedTarget","Modal","$body","$backdrop","isShown","remote","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","escape","adjustBackdrop","adjustDialog","enforceFocus","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","paddingLeft","bodyIsOverflowing","paddingRight","measureScrollbar","bodyPad","scrollDiv","showEvent","Tooltip","hoverState","placement","template","viewport","getOptions","$viewport","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","defaults","$tip","inDom","tip","tipId","getUID","setContent","autoToken","autoPlace","getPosition","actualWidth","actualHeight","orgPlacement","$container","containerDim","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","isHorizontal","arrow","getTitle","$e","isBody","elRect","elOffset","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","$arrow","toggleEnabled","Popover","getContent","popover","ScrollSpy","process","$scrollElement","activeTarget","getScrollHeight","offsetMethod","offsetBase","$href","maxScroll","scrollspy","$spy","Tab","$ul","$previous","hideEvent","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetBottom","initializing","colliderTop","colliderHeight","getPinnedOffset","affix","affixType","require","dataTable","_fnHungarianMap","newKey","hungarian","_hungarianMap","_fnCamelToHungarian","user","hungarianKey","_fnLanguageCompat","DataTable","oLanguage","zeroRecords","sZeroRecords","sEmptyTable","_fnMap","sLoadingRecords","sInfoThousands","sThousands","sDecimal","_addNumericSort","_fnCompatOpts","_fnCompatMap","searchCols","aoSearchCols","ien","models","oSearch","_fnCompatCols","_fnBrowserDetect","browser","oBrowser","bScrollOversize","bScrollbarLeft","_fnReduce","inc","isSet","_fnAddColumn","oSettings","nTh","oDefaults","column","iCol","aoColumns","oCol","oColumn","sTitle","aDataSort","mData","aoPreSearchCols","_fnColumnOptions","oOptions","oClasses","sWidthOrig","mDataProp","sType","_sManualType","sClass","iDataSort","mDataSrc","_fnGetObjectDataFn","mRender","attrTest","_bAttrSrc","fnGetData","rowData","meta","innerData","fnSetData","_fnSetObjectDataFn","_rowReadObject","oFeatures","bSort","bSortable","sSortableNone","bAsc","asSorting","bDesc","sSortingClass","sSortableAsc","sSortingClassJUI","sSortJUIAscAllowed","sSortableDesc","sSortJUIDescAllowed","sSortable","sSortJUI","_fnAdjustColumnSizing","bAutoWidth","_fnCalculateColumnWidths","iLen","sWidth","oScroll","sY","sX","_fnScrollDraw","_fnCallbackFire","_fnVisibleToColumnIndex","iMatch","aiVis","_fnGetColumns","_fnColumnIndexToVisible","iPos","_fnVisbleColumns","sParam","_fnColumnTypes","jen","ken","detectedType","aoData","ext","detect","_fnGetCellData","_fnApplyColumnDefs","aoColDefs","aoCols","jLen","kLen","aTargets","_fnAddData","aDataIn","nTr","anTds","iRow","oData","oRow","_aData","_fnSetCellData","aiDisplayMaster","bDeferRender","_fnCreateTr","_fnAddTr","trs","_fnGetRowElements","_fnNodeToDataIndex","_DT_RowIndex","_fnNodeToColumnIndex","anCells","rowIdx","colIdx","draw","iDraw","defaultContent","sDefaultContent","cellData","iDrawError","_fnLog","_fnSplitObjNotation","mSource","fetchData","arrayNotation","funcNotation","innerSrc","__reArray","__reFn","setData","aLast","_fnGetDataMaster","_pluck","_fnClearTable","aiDisplay","_fnDeleteIndex","iTarget","iTargetIndex","_fnInvalidate","cellWrite","cell","_aSortData","_aFilterData","_fnRowAttributes","tds","objectRead","cellProcess","_setter","nTrIn","nTd","sCellType","bVisible","fnCreatedCell","oInstance","DT_RowId","DT_RowClass","__rowc","_unique","DT_RowData","_fnBuildHead","nTHead","nTFoot","createHeader","iTabIndex","sTableId","_fnSortAttachListener","_fnRenderer","_fnDetectHeader","aoHeader","sHeaderTH","sFooterTH","aoFooter","nTf","_fnDrawHead","aoSource","bIncludeHidden","nLocalTr","iRowspan","iColspan","aoLocal","aApplied","iColumns","_fnDraw","aPreDraw","_fnProcessingDisplay","anRows","iRowCount","asStripeClasses","iStripes","oLang","aoOpenRows","iInitDisplayStart","bServerSide","_fnDataSource","bDrawing","_iDisplayStart","fnRecordsDisplay","iDisplayStart","iDisplayEnd","fnDisplayEnd","bDeferLoading","bDestroying","_fnAjaxUpdate","iStart","iEnd","iDataIndex","nRow","sStripe","_sRowStripe","sZero","fnRecordsTotal","valign","colSpan","sRowEmpty","nTBody","bSorted","bFiltered","_fnReDraw","holdPosition","bFilter","_fnSort","_fnFilterComplete","oPreviousSearch","_drawHold","_fnAddOptionsHtml","nTable","holding","sWrapper","sNoFooter","nHolding","nTableWrapper","nTableReinsertBefore","featureNode","cOption","nNewNode","cNext","sAttr","aDom","sDom","sJUIHeader","sJUIFooter","aSplit","bPaginate","bLengthChange","_fnFeatureHtmlLength","_fnFeatureHtmlFilter","bProcessing","_fnFeatureHtmlProcessing","_fnFeatureHtmlTable","bInfo","_fnFeatureHtmlInfo","_fnFeatureHtmlPaginate","feature","aoFeatures","cFeature","fnInit","aanFeatures","aLayout","nThead","nCell","iColShifted","iColumn","bUnique","nTrs","fnShiftCol","_fnGetUniqueThs","nHeader","aReturn","bSortCellsTop","_fnBuildAjax","ajaxData","newData","baseAjax","sError","oApi","sServerMethod","thrown","log","oAjaxData","fnServerData","sAjaxSource","bAjaxDataGet","_fnAjaxParameters","_fnAjaxUpdateDraw","dataProp","columnSearch","preSearch","preColSearch","_fnSortFlatten","displayStart","displayLength","_iDisplayLength","sSearch","bRegex","sName","searchable","bSearchable","orderable","legacy","compat","modern","recordsTotal","recordsFiltered","_iRecordsTotal","_iRecordsDisplay","_fnAjaxDataSrc","_bInitComplete","_fnInitComplete","dataSrc","sAjaxDataProp","aaData","tableId","language","previousSearch","sFilterInput","f","sFilter","searchFn","bSmart","bCaseInsensitive","searchDelay","jqFilter","sSearchPlaceholder","_fnThrottle","ev","oInput","iForce","oPrevSearch","aoPrevSearch","fnSaveFilter","oFilter","fnRegex","bEscapeRegex","_fnFilter","_fnFilterColumn","_fnFilterCustom","displayRows","searchStr","smart","caseInsensitive","rpSearch","_fnFilterCreateSearch","invalidated","prevSearch","displayMaster","_fnFilterData","_sFilterRow","_fnEscapeRegex","word","sVal","_re_escape_regex","filterData","fomatters","wasInvalidated","__filter_div","__filter_div_textContent","_fnSearchToCamel","_fnSearchToHung","tid","sInfo","aoDrawCallback","_fnUpdateInfo","sInfoEmpty","sInfoFiltered","sInfoPostFix","_fnInfoMacros","fnInfoCallback","formatter","fnFormatNumber","vis","_fnInitialise","iAjaxStart","bInitialised","_fnStringToCss","aData","_fnLengthChange","_fnLengthOverflow","aLengthMenu","d2","lengths","sLengthSelect","sLength","sLengthMenu","sPaginationType","pager","redraw","sPaging","visRecords","fnUpdate","_fnPageChange","records","sProcessing","captionSide","_captionSide","headerClone","footerClone","_div","scroller","sScrollWrapper","sScrollHead","sScrollHeadInner","box-sizing","sXInner","sScrollBody","sScrollFoot","sScrollFootInner","scrollHead","scrollBody","scrollFoot","nScrollHead","nScrollBody","nScrollFoot","headerTrgEls","footerTrgEls","headerSrcEls","footerSrcEls","headerCopy","footerCopy","correction","sanityWidth","scrollXInner","barWidth","iBarWidth","divHeader","divHeaderStyle","divHeaderInner","divHeaderInnerStyle","divHeaderTable","divBodyEl","divBody","divBodyStyle","divFooter","divFooterInner","divFooterTable","tableEl","tableStyle","ie67","headerWidths","footerWidths","headerContent","zeroOut","nSizer","_fnApplyToChildren","bCollapse","nToSize","iExtra","iOuterWidth","bScrolling","an1","an2","nNode1","nNode2","columnIdx","visibleColumns","headerCells","tableWidthAttr","tableContainer","userInputs","_fnConvertToWidth","tmpTable","_fnGetWidestNode","sContentPadding","_fnScrollingWidthAdjust","_reszEvt","sInstance","freq","frequency","_fnGetMaxLenString","maxIdx","__re_html_remove","_fnScrollBarWidth","__scrollbarWidth","inner","outer","srcCol","aSort","fixed","aaSortingFixed","fixedObj","nestedSort","pre","aaSorting","post","_idx","sortCol","aiOrig","oExtSort","formatters","_fnSortData","dataA","dataB","_fnSortAria","nextSort","oAria","sSortAscending","sSortDescending","_fnSortListener","nextSortIdx","sorting","bSortMulti","sortIdx","attachTo","_fnBindAction","_fnSortingClasses","oldSort","aLastSort","sortClass","sSortColumn","bSortClasses","customData","customSort","sSortDataType","_fnSaveState","bStateSave","oSavedState","fnStateSaveCallback","_fnLoadState","oInit","fnStateLoadCallback","abStateLoad","iStateDuration","oLoadedState","_fnSettingsFromNode","level","tn","console","sErrMode","errMode","mappedName","_fnExtend","extender","breakRefs","_fnCallbackReg","sStore","callbackArr","renderer","host","_numbers","numbers","extPagination","numbers_length","half","_range","DT_el","decimalPlace","__numericReplace","num-fmt","_re_formatted_numeric","html-num","_re_html","html-num-fmt","_ext","_fnExternApiFunc","iApiIndex","internal","_Api","_api_register","_api_registerPlural","_re_dic","_re_new_lines","_re_date_start","_re_date_end","_empty","_intVal","integer","isFinite","_numToDecimal","decimalPoint","formatted","strType","_isHtml","_htmlNumeric","_stripHtml","prop2","_pluck_order","_removeEmpty","again","knew","sSelector","oOpts","api","fnAddData","flatten","fnAdjustColumnSizing","bRedraw","fnClearTable","fnClose","fnDeleteRow","fnDestroy","fnDraw","fnFilter","sInput","bShowGlobal","fnGetNodes","fnGetPosition","columnVisible","fnIsOpen","fnOpen","mHtml","fnPageChange","mAction","fnSetColumnVis","bShow","fnSettings","fnSort","aaSort","fnSortListener","nNode","fnCallback","listener","mRow","bAction","fnVersionCheck","_that","emptyInit","sId","bInitHandedOff","allSettings","bRetrieve","bDestroy","sDestroyWidth","iDisplayLength","fnDrawCallback","fnServerParams","fnStateSaveParams","fnStateLoadParams","fnStateLoaded","fnRowCallback","fnCreatedRow","fnHeaderCallback","fnFooterCallback","fnInitComplete","fnPreDrawCallback","bJQueryUI","oJUIClasses","sTable","iDeferLoading","sUrl","sStripeOdd","sStripeEven","stripeClasses","rowOne","asDestroyStripes","aoColumnsInit","anThs","aoColumnDefs","oDef","sortedColumns","captions","__apiStruct","__arrayProto","_toSettings","mixed","jq","tables","ctxSettings","Api","ctx","iterator","alwaysNew","apiInst","_selector_row_indexes","apiSelector","lastIndexOf","pluck","reduceRight","to$","toJQuery","__dt_wrapper","struct","methodScoping","struc","methodExt","propExt","register","heir","registerPlural","pluralName","singularName","__table_selector","resetPaging","info","recordsDisplay","__reload","_selector_run","selectorType","_selector_opts","_selector_first","displayFiltered","__row_selector","selInt","thatIdx","newRows","modRows","__details_add","klass","addRow","created","_details","_detailsShow","__details_remove","__details_display","__details_events","drawEvent","colvisEvent","destroyEvent","_emp","_child_obj","_child_mth","__re_column_selector","__columnData","r1","r2","__column_selector","visColumns","__setColumnVis","recalc","calc","__cell_selector","allCells","fnSelector","rowSelector","columnSelector","caseInsen","versionCheck","iThis","iThat","aThis","aThat","isDataTable","fnIsDataTable","fnTables","util","throttle","camelToHungarian","jqRows","jqTable","jqTbody","jqWrapper","bJUI","sSortIcon","sSortJUIWrapper","bScrollCollapse","toFormat","sessionStorage","localStorage","getItem","pathname","setItem","oPaginate","sFirst","sLast","sNext","sPrevious","sScrollX","sScrollXInner","sScrollY","aoRowCallback","aoHeaderCallback","aoFooterCallback","aoRowCreatedCallback","aoPreDrawCallback","aoInitComplete","aoStateSaveParams","aoStateLoadParams","aoStateLoaded","aoStateSave","aoStateLoad","aoServerParams","aoDestroyCallback","paginate","oPlugins","pageButton","sVersion","afnFiltering","aTypes","ofnSearch","oSort","afnSortData","oStdClasses","oPagination","sPageButton","sPageButtonActive","sPageButtonDisabled","sSortAsc","sSortDesc","sSortJUIAsc","sSortJUIDesc","_stateDefault","_sortIcon","_headerFooter","full","simple_numbers","full_numbers","btnDisplay","btnClass","attach","data-dt-idx","activeEl","re1","re2","date-pre","html-pre","string-pre","string-asc","string-desc","jqueryui","render","number","thousands","negative","intPart","floatPart","_fnCalculateEnd","dataTableSettings","dataTableExt","sIconClassFirst","sIconClassLast","sIconClassPrevious","sIconClassNext","fnPagingInfo","iLength","iTotal","iFilteredTotal","iPage","iTotalPages","bs_normal","nPaging","fnClickHandler","iListLength","oPaging","an","iHalf","bs_two_button","fnCallbackDraw","sAppend","sPagePrevDisabled","sPageNextDisabled","nPrevious","nNext","bs_four_button","sPageFirst","sPagePrevious","sPageNext","sPageLast","nFirst","nPrev","nLast","bs_full","iStartButton","iEndButton","iPageCount","iFullNumbersShowPages","iPageCountHalf","iPages","iCurrentPage","sList","hasChildNodes","TableTools","print","oTags","liner","A","eval","K","C","ko","z","G","M","N","O","H","ba","ca","fa","lb","U","gb","da","controlsDescendantBindings","aa","Q","__proto__","MouseEvents","propertychange","mb","hb","ma","ib","ya","la","Y","Sa","na","ra","sa","Oa","Fa","removeNode","ec","R","Bb","ea","Db","ta","kc","Sb","Ea","eb","B","u","ja","ha","createEvent","dispatchEvent","initEvent","fireEvent","ua","Xa","Vb","Cb","mergeAttributes","Tb","ic","mc","nc","oa","ob","fc","Ya","gc","includeFields","D","submitter","L","cleanExternalData","1","8","9","Ab","Qa","clean","innerShiv","Va","xb","Rb","cc","Na","Hb","Ib","Ga","throttleEvaluation","read","rateLimit","Ma","equalityComparer","boolean","Fb","za","Qb","sb","F","V","notifySubscribers","qb","jb","ia","bb","Ka","Wb","tb","zb","Kb","pa","P","E","hc","Ha","ub","Yb","T","trackArrayChanges","removeAll","destroyAll","kb","I","Aa","sparse","subscribe","nb","wa","disposeWhenNodeIsRemoved","disposeWhen","Da","owner","ga","deferEvaluation","$b","Number","Boolean","ab","Gb","__ko__hasDomDataOptionValue__","Pa","X","unknown","in","return","typeof","W","Ra","qa","getBindingHandler","preprocess","valueAccessors","bc","va","ol","yb","rb","Xb","lc","wb","J","Nb","nodeHasBindings","getBindings","getBindingsString","parseBindingsString","getBindingAccessors","preprocessNode","shouldBindDescendants","pb","Eb","$data","$parents","$root","$rawData","Jb","createChildContext","$parentContext","xa","Lb","fb","Ca","Pb","uniqueName","checkedValue","__ko__cssValue","foreach","vb","as","includeDestroyed","afterAdd","beforeRemove","afterRender","beforeMove","afterMove","templateEngine","Ja","hasfocus","__ko_hasfocusUpdating","__ko_hasfocusLastValue","multiple","Ua","selectedOptions","Ob","renderTemplateSource","createJavaScriptEvaluatorBlock","makeTemplateSource","Z","renderTemplate","isTemplateRewritten","allowTemplateRewriting","rewriteTemplate","Za","Ub","dc","Mb","$a","Ba","previousSibling","Wa","Ta","jc","$index","ifnot","dontLimitMoves","S","Ia","ka","Zb","La","ac","tmpl","koBindingContext","templateOptions","fragments","addTemplate","ko_code","ko_with","mapping","getType","ignore","include","observe","mappedProperties","copiedProperties","utils","arrayGetDistinctValues","unwrapObservable","isMapped","dependentObservable","isWriteableObservable","arrayRemoveItem","__DO","observable","isObservable","observableArray","mappedRemove","mappedRemoveAll","arrayIndexOf","mappedDestroy","mappedDestroyAll","mappedIndexOf","mappedGet","mappedCreate","compareArrays","arrayChanged","arrayForEach","arrayMap","fromJS","fromJSON","parseJson","updateFromJS","updateFromJSON","toJS","resetDefaultOptions","visitModel","stringifyJson","defaultOptions","visitedObjects","parentName","ITEMKEY","INDEXKEY","LISTKEY","PARENTKEY","DRAGKEY","dataGet","domData","dataSet","hasNestedSortableFix","addMetaDataAfterRender","prepareTemplateOptions","valueAccessor","actualAfterRender","bindingHandlers","updateIndexFromDestroyedItems","unwrapped","stripTemplateWhitespace","templateSource","templateElement","templateSources","domElement","allBindingsAccessor","startActual","updateActual","connectClass","allowDrop","shouldAdd","toggleDomNodeCssClass","createTimeout","dragItem","sourceParent","targetParent","targetIndex","parentEl","sourceParentNode","cancelDrop","processAllDeferredBindingUpdates","isEnabled","domNodeDisposal","addDisposeCallback","draggableOptions","previousUnderscore","ArrayProto","ObjProto","FuncProto","nativeIsArray","nativeKeys","nativeBind","_wrapped","createCallback","argCount","accumulator","iteratee","identity","isObject","forEach","collect","currentKey","reduceError","foldl","inject","memo","TypeError","foldr","predicate","some","negate","any","invoke","isFunc","where","findWhere","lastComputed","shuffle","rand","shuffled","sample","guard","sortBy","criteria","behavior","groupBy","indexBy","countBy","sortedIndex","low","mid","partition","pass","take","initial","rest","tail","compact","shallow","strict","isArguments","without","difference","uniq","isSorted","isBoolean","seen","union","argsLength","Ctor","bound","boundArgs","bindAll","memoize","hasher","address","later","leading","trailing","debounce","immediate","timestamp","callNow","compose","pairs","functions","methods","pick","omit","tap","interceptor","aStack","bStack","aCtor","bCtor","isEqual","isEmpty","isString","isElement","isNumber","isNull","isUndefined","constant","accum","escapeMap","&","<","\"","'","`","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","unescape","idCounter","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","oldSettings","chain","_chain","mixin","UTCDate","UTC","UTCToday","isUTCEquals","date1","date2","getUTCFullYear","getUTCMonth","getUTCDate","alias","opts_from_el","re_lower","inkey","opts_from_locale","locale_opts","DateArray","extras","new_array","_process_options","viewDate","defaultViewDate","focusDate","isInline","component","hasInput","picker","DPGlobal","_buildEvents","_attachEvents","viewMode","startView","calendarWeeks","_allow_update","setStartDate","_o","setEndDate","endDate","setDaysOfWeekDisabled","daysOfWeekDisabled","setDatesDisabled","datesDisabled","fillDow","fillMonths","showMode","minViewMode","multidate","multidateSeparator","weekStart","weekEnd","parseFormat","_local_to_utc","_zero_time","plc","_plc","showOnFocus","_secondaryEvents","_applyEvents","evs","_unapplyEvents","_focused_from","place","mousedown touchstart","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","altdate","local_date","_utc_to_local","ix","enableOnReadonly","msMaxTouchPoints","disableTouchKeyboard","forceParse","setValue","utc","getTimezoneOffset","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","setUTCDates","setUTCDate","getFormattedDate","updateNavArrows","calendarWidth","calendarHeight","visualPadding","windowWidth","windowHeight","appendOffset","parentsZindex","itemZIndex","top_overflow","bottom_overflow","yorient","oldDates","fromArgs","fill","dowCnt","daysMin","monthsShort","setRange","getClassNames","todayHighlight","getUTCDay","startYear","startMonth","endMonth","todaytxt","cleartxt","todayBtn","clearBtn","prevMonth","getDaysInMonth","nextMonth","clsName","ws","yth","calWeek","beforeShowMonth","moDate","yearCont","modes","navStep","moveMonth","moveYear","setUTCMonth","setUTCFullYear","_toggle_multidate","toggleActive","new_month","new_date","mag","dateWithinRange","newViewDate","dateChanged","keyboardNavigation","DateRangePicker","inputs","datepickerPlugin","dateUpdated","pickers","updateDates","updateRanges","updating","dp","internal_return","elopts","xopts","locopts","ropts","days","daysShort","navFnc","isLeapYear","validParts","nonpunctuation","separators","match_part","part_re","filtered","setters_order","setters_map","yyyy","yy","fparts","cnt","_date","DD","MM","mm","seps","headTemplate","contTemplate","footTemplate","de","nl","fr","it","no","es","sv","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","__slice","__hasProp","__extends","ctor","__super__","_callbacks","emit","callbacks","_i","_len","removeListener","removeAllListeners","elementOptions","_ref","previewTemplate","clickableElements","listeners","files","querySelector","dropzone","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","previewsContainer","getElement","clickable","getElements","resolveOption","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","maxFiles","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","renameFilename","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","messageElement","span","getFallbackForm","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","trgHeight","trgWidth","classList","dragstart","dragend","dragenter","dragover","dragleave","paste","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","_results","previewElement","_renameFilename","filesize","_removeLink","_this","UPLOADING","confirm","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","setupHiddenFileInput","hiddenFileInput","addFile","URL","webkitURL","updateTotalUploadProgress","efct","dataTransfer","effectAllowed","_error","dropEffect","clickableElement","evt","elementInside","removeAllFiles","activeFiles","totalBytes","totalBytesSent","totalUploadProgress","upload","_getParamName","existingFallback","fields","fieldsString","getFallback","setupEventListeners","elementListeners","_results1","removeEventListeners","cancelUpload","cutoff","selectedSize","selectedUnit","units","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","entry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","errorHandler","readEntries","createReader","entries","fullPath","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","canvas","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","uploadFile","formData","handleError","headerName","headerValue","inputName","inputType","progressObj","updateProgress","_l","_len3","_m","_ref4","_ref5","allFilesFinished","loaded","_finished","onprogress","Accept","Cache-Control","X-Requested-With","FormData","hasAttribute","submitRequest","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","Blob","rejectedItem","question","rejected","baseMimeType","validType","ACCEPTED","PROCESSING","ey","ih","iw","py","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sh","vertSquashRatio","poll","rem","createEventObject","_autoDiscoverFunction","a0","isMsie","isBlankString","escapeRegExChars","isJQuery","toStr","reverseArgs","getIdGenerator","templatify","WWW","build","www","defaultClassNames","buildCss","buildHtml","buildSelectors","hint","boxShadow","verticalAlign","inputWithNoHint","ltr","dataset","suggestion","selectable","EventBus","deprecationMap","cursorchange","deprecatedType","EventEmitter","splitter","bindContext","sync","onAsync","onSync","syncFlush","asyncFlush","getFlush","nextTick","flush","cancelled","getNextTick","nextTickFn","setImmediate","getRegex","patterns","caseSensitive","wordsOnly","regexStr","escapedPatterns","hightlightTextNode","textNode","patternNode","wrapperNode","splitText","traverse","childNode","TEXT_NODE_TYPE","Input","$hint","query","queryWhenFocused","$overflowHelper","buildOverflowHelper","_checkLanguageDirection","setHint","getHint","clearHint","clearHintIfInvalid","whiteSpace","fontFamily","fontStyle","fontVariant","wordSpacing","textIndent","textRendering","textTransform","areQueriesEquivalent","normalizeQuery","withModifier","specialKeyCodeMap","27","37","39","13","38","40","_onBlur","resetInputValue","_onFocus","_onKeydown","keyName","_managePreventDefault","_shouldTrigger","_onInput","_setQuery","getInputValue","areEquivalent","hasDifferentWhitespace","onBlur","onFocus","onKeydown","onInput","getLangDir","getQuery","setQuery","setInputValue","hasQueryChangedSinceLastFocus","valIsPrefixOfHint","hasOverflow","constraint","isCursorAtEnd","valueLength","selectionStart","moveStart","Dataset","templates","notFound","isValidName","nameGenerator","limit","displayFn","getDisplayFn","displayKey","getTemplates","__ttAdapter","_resetLastSuggestion","suggestionTemplate","extractData","_overwrite","suggestions","_renderSuggestions","_renderPending","_renderNotFound","_append","$lastSuggestion","_appendSuggestions","$fragment","_getSuggestionsFragment","_getHeader","_getFooter","_injectQuery","_query","syncCalled","rendered","Menu","initializeDataset","oDataset","$node","datasets","_onSelectableClick","_onRendered","_allDatasetsEmpty","_onCleared","isDatasetEmpty","_getSelectables","_removeCursor","$selectable","getActiveSelectable","_ensureVisible","elTop","elBottom","nodeScrollTop","nodeHeight","onSelectableClick","setLanguageDirection","selectableRelativeToCursor","$selectables","$oldCursor","newIndex","setCursor","getSelectableData","getTopSelectable","updateDataset","isValidUpdate","clearDataset","destroyDataset","DefaultMenu","Typeahead","onFocused","onBlurred","onEnterKeyed","onTabKeyed","onEscKeyed","onUpKeyed","onDownKeyed","onLeftKeyed","onRightKeyed","onQueryChanged","onWhitespaceChanged","eventBus","_hacks","_onSelectableClicked","_onAsyncRequested","_onAsyncCanceled","_onAsyncReceived","_onDatasetRendered","_onDatasetCleared","_onLangDirChanged","$menu","hasActive","_updateHint","_onFocused","_minLengthMet","_onBlurred","_onEnterKeyed","_onTabKeyed","_onEscKeyed","_onUpKeyed","moveCursor","_onDownKeyed","_onLeftKeyed","_onRightKeyed","_onQueryChanged","_onWhitespaceChanged","_openIfActive","escapedQuery","frontMatchRegEx","setVal","getVal","$candidate","payload","cancelMove","ttEach","$els","typeahead","buildHintFromInput","getBackgroundStyles","spellcheck","prepInput","backgroundAttachment","backgroundOrigin","backgroundPosition","backgroundRepeat","backgroundSize","$wrapper","$elOrNull","initialize","defaultHint","defaultMenu","MenuConstructor","defs","nativeMap","checkPrecision","checkCurrencyFormat","lib","currency","neg","symbol","thousand","grouping","unformat","unformatted","power","usePrecision","formatMoney","formats","useFormat","formatColumn","padAfterSymbol","maxLength","fVal","accounting","oldAccounting","paletteTemplate","tooltipFormat","tiny","tinycolor","toHsl","equals","formattedString","swatchStyle","rgbaSupport","toRgbString","toFilter","hideAll","spectrums","instanceOptions","defaultOpts","move","spectrum","applyOptions","showPaletteOnly","showPalette","palette","paletteArray","paletteLookup","flat","showInput","showAlpha","showButtons","showInitial","containerClassName","reflow","palletElementClick","updateOriginalInput","IE","shouldReplace","boundElement","replacer","clearButton","updateSelectionPaletteFromStorage","offsetElement","textInput","setFromTextInput","cancelButton","cancelText","clearText","chooseButton","chooseText","alphaSlider","dragX","dragY","currentAlpha","alphaWidth","slider","currentHue","slideHeight","dragger","shiftMovementDirection","oldDragX","currentSaturation","dragWidth","oldDragY","dragHeight","currentValue","furtherFromX","setSaturation","initialColor","updateUI","currentPreferredFormat","preferredFormat","addColorToSelectionPalette","paletteEvent","paletteContainer","initialColorContainer","localStorageKey","oldPalette","selectionPalette","showSelectionPalette","maxSelectionSize","getUniqueSelectionPalette","drawPalette","currentColor","drawInitial","colorOnShow","draggingClass","ok","colorHasChanged","clickoutFiresChange","ignoreFormatChange","newColor","newHsv","toHsv","fromRatio","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","toRgb","realAlpha","gradient","alphaSliderInner","gradientType","alphaSlideHelper","slideHelper","dragHelper","dragHelperHeight","alphaX","alphaSlideHelperWidth","slideY","slideHelperHeight","fireCallback","hasChanged","slideWidth","getOffset","spect","optionName","optionValue","theme","markup","isInputTypeColor","inputTypeColorSupport","replaceInput","replacerClassName","extraY","onmove","onstart","onstop","prevent","touches","hasTouch","rightclick","duringDragEvents","throttler","colorInput","gradientFix","dataID","loadOpts","localization","palettes","processNativeColorInputs","inputToRGB","roundA","mathRound","_tc_id","tinyCounter","getAlpha","setAlpha","boundAlpha","hsv","rgbToHsv","toHsvString","hsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHex8","rgbaToHex","toHex8String","toPercentageRgb","bound01","toPercentageRgbString","toName","hexNames","secondColor","hex8String","secondHex8String","formatSet","hasAlphaAndFormatNotSet","formatWithAlpha","stringInputToObject","rgbToRgb","convertToPercentage","hsvToRgb","hslToRgb","mathMin","mathMax","math","pad2","convertDecimalToHex","flipped","isOnePointZero","processPercent","isPercentage","clamp01","parseIntFromHex","convertHexToDecimal","trimLeft","trimRight","named","hex8","hex6","hex3","mathRandom","color1","color2","desaturate","saturate","greyscale","lighten","darken","complement","triad","tetrad","splitcomplement","analogous","slices","monochromatic","modification","readability","brightnessA","brightnessB","colorDiff","brightness","readable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","score","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","moment","utils_hooks__hooks","hookCallback","setHookCallback","isObjectEmpty","isDate","hasOwnProp","create_utc__createUTC","locale","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","getParsingFlags","_pf","valid__isValid","_isValid","flags","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","isFrozen","valid__createInvalid","NaN","copyConfig","_isAMomentObject","_f","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","array1","array2","dontConvert","lengthDiff","diffs","warn","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","locale_set__set","_config","_ordinalParseLenient","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","locale_calendar__calendar","mom","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relative__relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","aliases","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","makeGetSet","keepTime","get_set__set","get_set__get","stringGet","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","addFormatToken","padded","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","units_month__handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","monthsParse","getSetMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","getIsLeapYear","createDate","ms","setFullYear","createUTCDate","firstWeekOffset","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","day_of_week__handleStrictParse","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","oldLocale","locales","globalLocale","_abbr","locale_locales__getSetGlobalLocale","locale_locales__getLocale","defineLocale","baseConfig","abbr","parentLocale","updateLocale","locale_locales__listLocales","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","allowTime","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","local__createLocal","gg","parsedInput","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","configFromObject","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","quarters","weeks","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunk","chunkOffset","cloneWithOffset","model","setTime","getDateOffset","getSetOffset","keepLocalTime","localAdjust","matchShortOffset","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","dur","isAdding","getCalendarFormat","myMoment","moment_calendar__calendar","sod","startOf","calendarFormat","calendar","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","wholeMonthDiff","moment_format__toISOString","toISOString","toDate","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","moment_valid__isValid","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","preParsePostFormat","lists__get","listMonthsImpl","listWeekdaysImpl","localeSorted","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","monthsFromDays","monthsToDays","daysToMonths","duration_as__valueOf","makeAs","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeRounding","roundingFunction","duration_humanize__getSetRelativeTimeThreshold","threshold","withSuffix","iso_string__toISOString","iso_string__abs","asSeconds","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","hh","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","ordinalParse","meridiemParse","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","zone","isDSTShifted","momentPrototype","prototype__proto","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","invalid","relativeTimeRounding","relativeTimeThreshold","_moment","charCodeToInt","unpackBase60","whole","fractional","multiplier","arrayToInt","intToUntil","mapIndices","indices","unpack","untils","abbrs","Zone","packedString","normalizeName","addZone","packed","normalized","zones","getZone","caller","link","links","getNames","addLink","normal0","normal1","loadData","tz","dataVersion","zoneExists","didShowError","logError","needsOffset","abbrWrap","_z","resetZoneWrap","momentVersion","major","minor","unpacked","_index","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","_zones","_links","_names","defaultZone","setDefault","ES6Promise","objectOrFunction","setScheduler","scheduleFn","customSchedulerFn","setAsap","asapFn","asap","useNextTick","useVertxTimer","vertxNext","useSetTimeout","useMutationObserver","iterations","observer","BrowserMutationObserver","characterData","useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","globalSetTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","_arguments","PROMISE_ID","makePromise","_state","invokeCallback","_result","_resolve","selfFulfillment","cannotReturnOwn","getThen","GET_THEN_ERROR","tryThen","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_reject","_label","handleOwnThenable","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","then$$","publishRejection","_onerror","publish","PENDING","_subscribers","subscribers","settled","detail","ErrorObject","tryCatch","TRY_CATCH_ERROR","hasCallback","succeeded","failed","initializePromise","resolver","nextId","Enumerator","_instanceConstructor","_input","_remaining","_enumerate","validationError","race","needsResolver","needsNew","Promise","polyfill","promiseToString","cast","_isArray","scheduleFlush","browserWindow","browserGlobal","MutationObserver","WebKitMutationObserver","isWorker","Uint8ClampedArray","importScripts","_eachEntry","resolve$$","_then","_settledAt","_willSettleAt","enumerator","_setScheduler","_setAsap","_asap","catch","Sweetalert2","fixScrollbar","states","previousBodyPadding","undoScrollbar","iOSfix","iOS","MSStream","swalClasses","iosfix","undoIOSfix","modalDependant","modalParams","extraParams","inputValidator","emailRegex","setParameters","getModal","setFocus","increment","focusableElements","getFocusableElements","focusCancel","handleKeyDown","$targetElement","btnIndex","stopEventPropagation","fireClick","$cancelButton","$confirmButton","allowEscapeKey","sweetAlert","closeModal","getInput","getChildByClass","inputAutoTrim","focusInput","showLoaderOnConfirm","showLoading","preConfirm","preConfirmValue","hideLoading","showValidationError","onButtonEvent","confirmBtn","getConfirmButton","cancelBtn","getCancelButton","targetedConfirm","targetedCancel","buttonsStyling","colorLuminance","confirmButtonColor","cancelButtonColor","inputValue","disableInput","enableInput","$buttons","onclick","onmouseover","onmouseout","onmousedown","getCloseButton","sweetContainer","allowOutsideClick","reverseButtons","previousWindowKeyDown","onkeydown","borderLeftColor","borderRightColor","enableLoading","getSpacer","loading","disableLoading","showConfirmButton","showCancelButton","enableButtons","disableButtons","enableConfirmButton","disableConfirmButton","radiosContainer","recalculateHeight","prevState","getValidationError","inputerror","resetValidationError","getProgressSteps","progressSteps","setProgressSteps","showProgressSteps","hideProgressSteps","inputTypes","inputClass","inputContainer","attrName","inputAttributes","populateInputOptions","inputPlaceholder","rangeInput","rangeOutput","inputOptions","radioInput","radioLabel","radioLabelSpan","checkboxInput","textarea","openModal","onOpen","swal2Observer","childList","subtree","swalPrefix","iconTypes","defaultParams","customClass","confirmButtonText","confirmButtonClass","cancelButtonText","cancelButtonClass","showCloseButton","imageWidth","imageHeight","imageClass","currentProgressStep","progressStepsDistance","sweetHTML","progresssteps","warning","validationerror","spacer","existingSweetContainers","lum","previousActiveElement","oninput","clickConfirm","onchange","elementByClass","getIcons","getClientRects","removeStyleProperty","removeProperty","MouseEvent","mevt","view","bubbles","cancelable","animationEndEvent","testEl","WebkitAnimation","OAnimation","msAnimation","resetPrevState","$title","$content","$confirmBtn","$cancelBtn","$closeButton","progressStepsContainer","getQueueStep","circle","progresscircle","activeprogressstep","line","progressline","iconType","$icon","$customImage","styled","noanimation","onComplete","swalCloseEventFinished","resetQueue","queueResult","insertQueueStep","deleteQueueStep","$successIcon","$errorIcon","$warningIcon","hideModalAndResetState","clickCancel","userParams","resetDefaults","swal","noUiSlider","rect","pageOffset","getPageOffset","addClassFor","asArray","countDecimals","numStr","supportPageOffset","isCSS1Compat","compatMode","getActions","pointerEnabled","msPointerEnabled","subRangeRatio","fromPercentage","toPercentage","getJ","toStepping","xVal","xPct","fromStepping","getStep","xSteps","handleEntryPoint","handleStepPoint","Spectrum","singleStep","xNumSteps","ordered","testStep","testRange","testStart","testSnap","testAnimate","testAnimationDuration","animationDuration","testConnect","connect","testOrientation","ort","testMargin","getMargin","testLimit","testDirection","testBehaviour","testTooltips","testFormat","testCssPrefix","cssPrefix","testCssClasses","cssClasses","testOptions","tests","defaultFormatter","behaviour","handleLower","handleUpper","stacking","pips","pipsHorizontal","pipsVertical","marker","markerHorizontal","markerVertical","markerNormal","markerLarge","markerSub","valueHorizontal","valueVertical","valueNormal","valueLarge","valueSub","closure","getPositions","delimit","fixEvent","touch","pointer","changedTouches","points","classModifier","addConnection","addHandles","nrHandles","addSlider","addTooltip","tips","scope_Handles","bindEvent","getGroup","stepped","scope_Spectrum","spread","generateSpread","density","safeIncrement","originalSpectrumDirection","indexes","firstInRange","lastInRange","ignoreFirst","ignoreLast","prevPct","newPct","pctDifference","pctPos","realSteps","stepsize","addMarking","filterFunc","getClasses","orientationClasses","valueOrientationClasses","markerOrientationClasses","sizeClasses","valueSizeClasses","markerSizeClasses","getTags","addSpread","scope_Target","baseSize","scope_Base","handleNumber","scope_Locations","scope_Events","targetEvent","scope_Self","valueGet","inSliderOrder","scope_Values","actions","calcPoint","appVersion","buttonsProperty","positions","proposal","setHandle","noUiListener","noUiListeners","documentLeave","moveEvent","endEvent","outEvent","noLimitOption","lowerMargin","upperMargin","lowerLimit","upperLimit","requestAnimationFrame","setValues","valueSet","fireSetEvent","retour","getCurrentStep","getApplicableStep","stepDecimals","decrement","namespacedEvent","tEvent","tNamespace","updateOptions","optionsToUpdate","newOptions","convert","_addEvent","_characterFromEvent","_MAP","_KEYCODE_MAP","_modifiersMatch","modifiers1","modifiers2","_eventModifiers","modifiers","_preventDefault","_stopPropagation","_isModifier","_getReverseMap","_REVERSE_MAP","_pickBestAction","_keysFromString","combination","_getKeyInfo","_SPECIAL_ALIASES","_SHIFT_MAP","_belongsTo","Mousetrap","targetElement","_resetSequences","doNotReset","activeSequences","_sequenceLevels","_nextExpectedAction","_getMatches","sequenceName","seq","deleteCombo","combo","deleteSequence","_fireCallback","sequence","stopCallback","_handleKeyEvent","_ignoreNextKeyup","handleKey","_resetSequenceTimer","_resetTimer","_bindSequence","_increaseSequence","nextAction","_callbackAndReset","isFinal","wrappedCallback","_bindSingle","_directMap","_ignoreNextKeypress","_handleKey","maxLevel","processedSequenceCallback","ignoreThisKeypress","_bindMultiple","combinations","16","17","18","20","32","33","34","35","36","45","46","91","93","224","106","107","109","110","111","186","187","188","189","190","191","192","219","220","221","222","!","@","#","%","^","(",")",":","?","|","command","plus","platform","isContentEditable","addKeycodes","documentMousetrap","deepValue","firstSegment","dotIndex","BitapSearcher","maxPatternLength","patternLen","matchmask","patternAlphabet","_calculatePatternAlphabet","MULTI_CHAR_REGEX","shouldSort","sortFn","getFn","verbose","resultMap","_prepareSearchers","_startSearch","_computeScore","_sort","tokenSearchers","fullSeacher","listLen","keysLen","_analyze","entity","words","scores","tokenSearchersLen","existingResult","averageScore","finalScore","scoresLen","mainSearchResult","tokenSearcher","termScores","tokenSearchResult","isMatch","totalScore","currScore","scoreLen","replaceValue","getItemAtIndex","resultItem","includeVal","mask","_bitapScore","errors","accuracy","proximity","textLen","bestLoc","binMin","binMid","binMax","bitArr","lastBitArr","charMatch","locations","isMatched","Combobox","$source","$button","sorter","highlighter","shown","transferAttributes","listen","selectedValue","setSelected","updater","lookup","beginswith","clearTarget","triggerChange","clearElement","eventSupported","isSupported","mousedover","isOpera","opera","isFirefox","InstallTrigger","isSafari","HTMLElement","isChrome","chrome","isChromium","isChrome48","isIE","isMobile","bootstrap","X-CSRF-TOKEN","dropdownOptions","registerEventHandler","datePicker","underlyingObservable","applyBindingsToNode","viewModel","bindingContext","allBindings","datum","CONSTS","INVOICE_STATUS_DRAFT","INVOICE_STATUS_SENT","INVOICE_STATUS_VIEWED","INVOICE_STATUS_APPROVED","INVOICE_STATUS_PARTIAL","INVOICE_STATUS_PAID","nativeAlert","TEMPLATES","CLEAN","BOLD","MODERN","NORMAL","BUSINESS","CREATIVE","ELEGANT","HIPSTER","PLAYFUL","PHOTO","blankImage","accountName","accountLogo","accountDetails","accountAddress","invoiceDetails","invoiceDetailsHeight","invoiceLineItems","statementLines","invoiceLines","invoiceLineItemColumns","statementColumns","invoiceColumns","invoiceDocuments","quantityWidth","taxWidth","clientDetails","notesAndTerms","subtotals","statementSubtotals","subtotalsHeight","subtotalsWithoutBalance","subtotalsBalance","balanceDue","invoiceFooter","invoiceNumber","entityType","invoiceLabels","statement","is_quote","quote","entityTypeUC","entityTaxType","tax_quote","tax_invoice","fontSizeLarger","fontSizeLargest","fontSizeSmaller","headerFont","regExp","public_notes","is_recurring","terms","prepareDataList","invoice_date","due_date","date_format","prepareDataTable","invoice_settings","custom_invoice_item_label1","custom_invoice_item_label2","hide_quantity","show_item_taxes","invoice_footer","shownItem","hideQuantity","showItemTaxes","description","unit_cost","quantity","tax","line_total","notes","productKey","tax1","tax2","include_item_taxes_inline","rowStyle","addDoc","vfs","stackItem","invoice_embed_documents","documents","expenses","expense","balance_due","prepareDataPairs","hideBalance","subtotal","custom_invoice_label1","adjustment","custom_invoice_label2","taxRate","taxStr","paid","hide_paid_to_date","paid_to_date","isPartial","partial_due","invoice_fields","account_fields1","renderClientOrAccountField","account_fields2","renderInvoiceField","quote_number","po_number","statement_date","quote_date","valid_until","custom_text_value1","custom_invoice_text_label1","custom_text_value2","custom_invoice_text_label2","id_number","vat_number","address1","address2","cityStatePostal","postal_code","country","swap_postal_code","postalCityState","clientEmail","phone","custom_client_label1","custom_client_label2","website","work_email","work_phone","custom_label1","custom_label2","client_fields","getPrimaryColor","defaultColor","getSecondaryColor","section","processItem","newRow","isBlank","groupText","rules","rule","parseRegExp","regExpStr","parseRegExpLine"],"mappings":"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oFACA,sQACA,6DACA,uEACA,uPACA,kPACA,8mBACA,m4BACA,64BACA,+CACA,+UACA,+ZACA,oaACA,kaACA,8ZACA,waACA,2aACA,uaACA,qZACA,waACA,ibACA,6aACA,kaACA,4DACA,gzBACA,6FACA,kYACA,qnBACA,uHACA,kNACA,wWACA,oFACA,4OACA,oEACA,g6BACA,2xBACA,0vBACA,mTACA,qEACA,8DACA,0SACA,k5CACA,ylBACA,yGACA,gDACA,yuBACA,yQACA,2xBACA,gZACA,27BACA,u2BACA,07BACA,mPACA,kFACA,m6BACA,q4BACA,6mBACA,uQACA,y2BACA,iuBACA,qvCACA,qfACA,wGACA,4CACA,wFACA,i2CACA,06BACA,yJACA,i7BACA,2oBACA,2tBACA,ioBACA,ugBACA,ioBACA,oqBACA,wuBACA,owBACA,+KACA,g4BACA,4kCACA,45BACA,6DACA,sIACA,wmCACA,qRACA,gJACA,8NACA,wEACA,2hBACA,0mBACA,62BACA,6jBACA,wPACA,woBACA,6oBACA,kuCACA,yjBACA,mkBACA,y3CACA,g5BACA,84CACA,uzBACA,o4BACA,2QACA,w6BACA,w6BACA,26BACA,2jBACA,6CACA,4xBACA,iHACA,sGACA,qiBACA,0OACA,wNACA,gEACA,2zBACA,wuBACA,0QACA,+XACA,ouBACA,m8BACA,kOACA,8uBACA,4JACA,uvBACA,ovBACA,w3BACA,w7CACA,oNACA,6FACA,2kBACA,01BACA,goCACA,+xBACA,smCACA,m3BACA,gwBACA,2EACA,uFACA,wEACA,okBACA,4DACA,y8BACA,kiBACA,2CACA,2CACA,+aACA,4CACA,g2BACA,yCACA,2VACA,ouBACA,kdACA,4ZACA,4XACA,mPACA,gXACA,8DACA,gvBACA,6CACA,y1BACA,qZACA,4DACA,kFACA,sdACA,qoBACA,oIACA,sHACA,oHACA,+6BACA,+FACA,2CACA,iOACA,u4BACA,m5BACA,iIACA,4cACA,mmBACA,+cACA,siCACA,gHACA,qEACA,23BACA,uCACA,kcACA,+IACA,6CACA,gEACA,sfACA,mdACA,uIACA,yLACA,iTACA,+cACA,qFACA,yFACA,4xBACA,ueACA,8cACA,4cACA,kZACA,sIACA,8FACA,6YACA,4EACA,+dACA,+OACA,gNACA,iJACA,8dACA,+RACA,+OACA,uZACA,oqBACA,4DACA,6FACA,0mBACA,0fACA,mdACA,+cACA,0fACA,udACA,o1CACA,0xBACA,+uBACA,uFACA,otBACA,+0CACA,kcACA,mCACA,qcACA,01BACA,61BACA,uIACA,i2BACA,s2BACA,wFACA,kJACA,k5BACA,itBACA,6JACA,g2BACA,gJACA,2zBACA,s4BACA,ynBACA,quBACA,gBACA,s4BACA,+1CACA,qBACA,wBACA,0BACA,0BACA,0BACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBACA,2BACA,2BACA,2BACA,2BACA,2BACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,mBACA,mBACA,gmCACA,8pBACA,q2BACA,g6CACA,0tBACA,22BACA,i2BACA,ymCACA,+0BACA,s5BACA,4tBACA,w4BACA,4yBACA,ksCACA,ouBACA,+iBACA,gxBACA,i1CACA,uoCACA,6/BACA,w/BACA,seACA,ooCACA,sjBACA,0nCACA,0zBACA,i/BACA,6fACA,4gBACA,6wBACA,4tBACA,4xBACA,8zBACA,kwBACA,g1BACA,uxBACA,+fACA,+/BACA,uxBACA,gBACA,+DACA,8BACA,0BACA,0CACA,4CACA,2CACA,gFACA,+CACA,kDACA,2zBACA,gBACA,s4BACA,6xBACA,s4BACA,oaACA,sEACA,4BACA,gLACA,2DACA,0CACA,8YACA,8BACA,iEACA,+CACA,oDACA,yCACA,yEACA,4DACA,kDACA,yCACA,6CACA,0EACA,mFACA,oDACA,8EACA,4FACA,2BACA,0CACA,8BACA,kCACA,4LACA,8CACA,6BACA,0FACA,2BACA,4BACA;AAEAI,OACA,+BACA,+BACA,gCACA,8BACA,iCACA,6BACA,mCACA,oCACA,iCACA,iCACA,oCACA,mCACA,mCACA,0CACA,qCACA,oCACA,sCACA,oCACA,yCACA,mCACA,oCACA,mCACA,8BACA,gCACA,6BACA,kCACA,8BACA,8BACA,8BACA,kCACA,mCACA,kCACA,gCACA,gCACA,oCACA,gCACA,gCACA,qBACA,oCACA,qCACA,8BACA,uBACA,4BACA,2BACA,8BACA,mCACA,oCACA,mCACA,sCACA,mCACA,sCACA,yCACA,yCACA,oCACA,oCACA,qCACA,sCACA,mCACA,kCACA,sDACA,+DACA,gDACA,4CACA,4CACA,wCACA,4CACA,gCACA,mCACA,sCACA,yCACA,6BACA,kCACA,wBACA,6BACA,8BACA,mCACA,mCACA,oCACA,kDACA,0CACA,qCACA,kCACA,sBACA,uCACA,yCACA,0BACA,iDACA,iCACA,qCACA,6BACA,kCACA,qCACA,mCACA,kCACA,8BACA,mCACA,6BACA,wCACA,iCACA,0CACA,qCACA,qCACA,gCACA,uCACA,mCACA,kCACA,kCACA,2CACA,wBACA,sCACA,yCACA,kCACA,wBACA,wBACA,+BACA,0BACA,+BACA,8BACA,6BACA,gCACA,6BACA,+BACA,qBACA,wBACA,yBACA,+BACA,0BACA,gCACA,uBACA,+BACA,wBACA,2BACA,+BACA,wBACA,mCACA,8BACA,iBACA,2BACA,kBACA,mBACA,2BACA,mBACA,mCACA,iCACA,6BACA,mCACA,8BACA,iCACA,qCACA,0CACA,6CACA,mCACA,sCACA,oCACA,yCACA,iCACA,oCACA,qBACA,oBACA,sBACA,qBACA,0BACA,gBACA,kBACA,kBACA,iBACA,sBACA,cACA,wBACA,mBACA,cACA,oBACA,eACA,iCACA,oCACA,+BACA,+BACA,oBACA,yBACA,mCACA,mCACA,kCACA,gCACA,gCACA,kCACA,+BACA,gCACA,kCACA,mCACA,yBACA,qBACA,gCACA,6BACA,uBACA,8BACA,0BACA,6BACA,4BACA,8BACA,oCACA,6BACA,mCACA,+BACA,0BACA,oCAKAtkB,IC9+BA,SAAApiK,E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","file":"built.js","sourcesContent":["// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\nvar isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\nvar isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+\nvar isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;\nvar isEdge = navigator.userAgent.indexOf('Edge/') >= 0;\nvar isChrome = !!window.chrome && !isOpera && !isEdge; // Chrome 1+\nvar isChromium = isChrome && navigator.userAgent.indexOf('Chromium') >= 0;\n// https://code.google.com/p/chromium/issues/detail?id=574648\nvar isChrome48 = isChrome && navigator.userAgent.indexOf('Chrome/48') >= 0;\nvar isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6\nvar isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\nvar refreshTimer;\nfunction generatePDF(invoice, javascript, force, cb) {\n if (!invoice || !javascript) {\n return;\n }\n //console.log('== generatePDF - force: %s', force);\n if (force) {\n refreshTimer = null;\n } else {\n if (refreshTimer) {\n clearTimeout(refreshTimer);\n }\n refreshTimer = setTimeout(function() {\n generatePDF(invoice, javascript, true, cb);\n }, 500);\n return;\n }\n\n invoice = calculateAmounts(invoice);\n var pdfDoc = GetPdfMake(invoice, javascript, cb);\n\n if (cb) {\n pdfDoc.getDataUrl(cb);\n }\n\n return pdfDoc;\n}\n\nfunction copyObject(orig) {\n if (!orig) return false;\n return JSON.parse(JSON.stringify(orig));\n}\n\n/* Handle converting variables in the invoices (ie, MONTH+1) */\nfunction processVariables(str) {\n if (!str) return '';\n var variables = ['MONTH','QUARTER','YEAR'];\n for (var i=0; i 1) {\n offset = match.split('+')[1];\n } else if (match.split('-').length > 1) {\n offset = parseInt(match.split('-')[1]) * -1;\n }\n str = str.replace(match, getDatePart(variable, offset));\n }\n }\n\n return str;\n}\n\nfunction getDatePart(part, offset) {\n offset = parseInt(offset);\n if (!offset) {\n offset = 0;\n }\n if (part == 'MONTH') {\n return getMonth(offset);\n } else if (part == 'QUARTER') {\n return getQuarter(offset);\n } else if (part == 'YEAR') {\n return getYear(offset);\n }\n}\n\nfunction getMonth(offset) {\n var today = new Date();\n var months = [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ];\n var month = today.getMonth();\n month = parseInt(month) + offset;\n month = month % 12;\n if (month < 0) {\n month += 12;\n }\n return months[month];\n}\n\nfunction getYear(offset) {\n var today = new Date();\n var year = today.getFullYear();\n return parseInt(year) + offset;\n}\n\nfunction getQuarter(offset) {\n var today = new Date();\n var quarter = Math.floor((today.getMonth() + 3) / 3);\n quarter += offset;\n quarter = quarter % 4;\n if (quarter == 0) {\n quarter = 4;\n }\n return 'Q' + quarter;\n}\n\n\n/* Default class modification */\nif ($.fn.dataTableExt) {\n $.extend( $.fn.dataTableExt.oStdClasses, {\n \"sWrapper\": \"dataTables_wrapper form-inline\"\n } );\n\n\n /* API method to get paging information */\n $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )\n {\n return {\n \"iStart\": oSettings._iDisplayStart,\n \"iEnd\": oSettings.fnDisplayEnd(),\n \"iLength\": oSettings._iDisplayLength,\n \"iTotal\": oSettings.fnRecordsTotal(),\n \"iFilteredTotal\": oSettings.fnRecordsDisplay(),\n \"iPage\": oSettings._iDisplayLength === -1 ?\n 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),\n \"iTotalPages\": oSettings._iDisplayLength === -1 ?\n 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )\n };\n };\n\n\n /* Bootstrap style pagination control */\n $.extend( $.fn.dataTableExt.oPagination, {\n \"bootstrap\": {\n \"fnInit\": function( oSettings, nPaging, fnDraw ) {\n var oLang = oSettings.oLanguage.oPaginate;\n var fnClickHandler = function ( e ) {\n e.preventDefault();\n if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {\n fnDraw( oSettings );\n }\n };\n\n $(nPaging).addClass('pagination').append(\n '
      '+\n '
    • «
    • '+\n '
    • »
    • '+\n '
    '\n );\n var els = $('a', nPaging);\n $(els[0]).bind( 'click.DT', { action: \"previous\" }, fnClickHandler );\n $(els[1]).bind( 'click.DT', { action: \"next\" }, fnClickHandler );\n },\n\n \"fnUpdate\": function ( oSettings, fnDraw ) {\n var iListLength = 5;\n var oPaging = oSettings.oInstance.fnPagingInfo();\n var an = oSettings.aanFeatures.p;\n var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);\n\n if ( oPaging.iTotalPages < iListLength) {\n iStart = 1;\n iEnd = oPaging.iTotalPages;\n }\n else if ( oPaging.iPage <= iHalf ) {\n iStart = 1;\n iEnd = iListLength;\n } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {\n iStart = oPaging.iTotalPages - iListLength + 1;\n iEnd = oPaging.iTotalPages;\n } else {\n iStart = oPaging.iPage - iHalf + 1;\n iEnd = iStart + iListLength - 1;\n }\n\n for ( i=0, ien=an.length ; i'+j+'')\n .insertBefore( $('li:last', an[i])[0] )\n .bind('click', function (e) {\n e.preventDefault();\n oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;\n fnDraw( oSettings );\n } );\n }\n\n // Add / remove disabled classes from the static elements\n if ( oPaging.iPage === 0 ) {\n $('li:first', an[i]).addClass('disabled');\n } else {\n $('li:first', an[i]).removeClass('disabled');\n }\n\n if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {\n $('li:last', an[i]).addClass('disabled');\n } else {\n $('li:last', an[i]).removeClass('disabled');\n }\n }\n }\n }\n } );\n}\n\n/*\n * TableTools Bootstrap compatibility\n * Required TableTools 2.1+\n */\nif ( $.fn.DataTable.TableTools ) {\n // Set the classes that TableTools uses to something suitable for Bootstrap\n $.extend( true, $.fn.DataTable.TableTools.classes, {\n \"container\": \"DTTT btn-group\",\n \"buttons\": {\n \"normal\": \"btn\",\n \"disabled\": \"disabled\"\n },\n \"collection\": {\n \"container\": \"DTTT_dropdown dropdown-menu\",\n \"buttons\": {\n \"normal\": \"\",\n \"disabled\": \"disabled\"\n }\n },\n \"print\": {\n \"info\": \"DTTT_print_info modal\"\n },\n \"select\": {\n \"row\": \"active\"\n }\n } );\n\n // Have the collection use a bootstrap compatible dropdown\n $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, {\n \"collection\": {\n \"container\": \"ul\",\n \"button\": \"li\",\n \"liner\": \"a\"\n }\n } );\n}\n\n\nfunction isStorageSupported() {\n try {\n return 'localStorage' in window && window['localStorage'] !== null;\n } catch (e) {\n return false;\n }\n}\n\nfunction isValidEmailAddress(emailAddress) {\n var pattern = new RegExp(/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i);\n return pattern.test(emailAddress);\n};\n\n$(function() {\n $.ajaxSetup({\n headers: {\n 'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n }\n });\n});\n\n\nfunction enableHoverClick($combobox, $entityId, url) {\n /*\n $combobox.mouseleave(function() {\n $combobox.css('text-decoration','none');\n }).on('mouseenter', function(e) {\n setAsLink($combobox, $combobox.closest('.combobox-container').hasClass('combobox-selected'));\n }).on('focusout mouseleave', function(e) {\n setAsLink($combobox, false);\n }).on('click', function() {\n var clientId = $entityId.val();\n if ($(combobox).closest('.combobox-container').hasClass('combobox-selected')) {\n if (parseInt(clientId) > 0) {\n window.open(url + '/' + clientId, '_blank');\n } else {\n $('#myModal').modal('show');\n }\n };\n });\n */\n}\n\nfunction setAsLink($input, enable) {\n if (enable) {\n $input.css('text-decoration','underline');\n $input.css('cursor','pointer');\n } else {\n $input.css('text-decoration','none');\n $input.css('cursor','text');\n }\n}\n\nfunction setComboboxValue($combobox, id, name) {\n $combobox.find('input').val(id);\n $combobox.find('input.form-control').val(name);\n if (id && name) {\n $combobox.find('select').combobox('setSelected');\n $combobox.find('.combobox-container').addClass('combobox-selected');\n } else {\n $combobox.find('.combobox-container').removeClass('combobox-selected');\n }\n}\n\n\nvar BASE64_MARKER = ';base64,';\nfunction convertDataURIToBinary(dataURI) {\n var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;\n var base64 = dataURI.substring(base64Index);\n return base64DecToArr(base64);\n}\n\nif (window.ko) {\n ko.bindingHandlers.dropdown = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var options = allBindingsAccessor().dropdownOptions|| {};\n var value = ko.utils.unwrapObservable(valueAccessor());\n var id = (value && value.public_id) ? value.public_id() : (value && value.id) ? value.id() : value ? value : false;\n if (id) $(element).val(id);\n //console.log(\"combo-init: %s\", id);\n $(element).combobox(options);\n\n /*\n ko.utils.registerEventHandler(element, \"change\", function () {\n console.log(\"change: %s\", $(element).val());\n //var\n valueAccessor($(element).val());\n //$(element).combobox('refresh');\n });\n */\n },\n update: function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n var id = (value && value.public_id) ? value.public_id() : (value && value.id) ? value.id() : value ? value : false;\n //console.log(\"combo-update: %s\", id);\n if (id) {\n $(element).val(id);\n $(element).combobox('refresh');\n } else {\n $(element).combobox('clearTarget');\n $(element).combobox('clearElement');\n }\n }\n };\n\n ko.bindingHandlers.combobox = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var options = allBindingsAccessor().dropdownOptions|| {};\n var value = ko.utils.unwrapObservable(valueAccessor());\n var id = (value && value.public_id) ? value.public_id() : (value && value.id) ? value.id() : value ? value : false;\n if (id) $(element).val(id);\n $(element).combobox(options);\n\n ko.utils.registerEventHandler(element, \"change\", function () {\n var value = valueAccessor();\n value($(element).val());\n });\n },\n update: function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n var id = (value && value.public_id) ? value.public_id() : (value && value.id) ? value.id() : value ? value : false;\n if (id) {\n $(element).val(id);\n $(element).combobox('refresh');\n } else {\n $(element).combobox('clearTarget');\n $(element).combobox('clearElement');\n }\n }\n };\n\n ko.bindingHandlers.datePicker = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n if (value) $(element).datepicker('update', value);\n $(element).change(function() {\n var value = valueAccessor();\n value($(element).val());\n })\n },\n update: function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n if (value) $(element).datepicker('update', value);\n }\n };\n\n ko.bindingHandlers.placeholder = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var underlyingObservable = valueAccessor();\n ko.applyBindingsToNode(element, { attr: { placeholder: underlyingObservable } } );\n }\n };\n\n ko.bindingHandlers.tooltip = {\n init: function(element, valueAccessor) {\n var local = ko.utils.unwrapObservable(valueAccessor()),\n options = {};\n\n ko.utils.extend(options, ko.bindingHandlers.tooltip.options);\n ko.utils.extend(options, local);\n\n $(element).tooltip(options);\n\n ko.utils.domNodeDisposal.addDisposeCallback(element, function() {\n $(element).tooltip(\"destroy\");\n });\n },\n options: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n };\n\n ko.bindingHandlers.typeahead = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var $element = $(element);\n var allBindings = allBindingsAccessor();\n\n $element.typeahead({\n highlight: true,\n minLength: 0,\n },\n {\n name: 'data',\n display: allBindings.key,\n limit: 50,\n source: searchData(allBindings.items, allBindings.key)\n }).on('typeahead:change', function(element, datum, name) {\n var value = valueAccessor();\n value(datum);\n });\n },\n\n update: function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n if (value) {\n $(element).typeahead('val', value);\n }\n }\n };\n}\n\nfunction getContactDisplayName(contact)\n{\n if (contact.first_name || contact.last_name) {\n return (contact.first_name || '') + ' ' + (contact.last_name || '');\n } else {\n return contact.email;\n }\n}\n\nfunction getClientDisplayName(client)\n{\n var contact = client.contacts ? client.contacts[0] : false;\n if (client.name) {\n return client.name;\n } else if (contact) {\n return getContactDisplayName(contact);\n }\n return '';\n}\n\nfunction populateInvoiceComboboxes(clientId, invoiceId) {\n var clientMap = {};\n var invoiceMap = {};\n var invoicesForClientMap = {};\n var $clientSelect = $('select#client');\n\n for (var i=0; i 1) {\n concatStr += ', ';\n } else if (i < data.length -1) {\n concatStr += ' ';\n }\n }\n return data.length ? concatStr : \"\";\n}\n\nfunction calculateAmounts(invoice) {\n var total = 0;\n var hasTaxes = false;\n var taxes = {};\n invoice.has_product_key = false;\n\n // Bold designs currently breaks w/o the product column\n if (invoice.invoice_design_id == 2) {\n invoice.has_product_key = true;\n }\n\n // sum line item\n for (var i=0; i 64 && nChr < 91 ?\n nChr - 65\n : nChr > 96 && nChr < 123 ?\n nChr - 71\n : nChr > 47 && nChr < 58 ?\n nChr + 4\n : nChr === 43 ?\n 62\n : nChr === 47 ?\n 63\n :\n 0;\n\n}\n\nfunction base64DecToArr (sBase64, nBlocksSize) {\n\n var\n sB64Enc = sBase64.replace(/[^A-Za-z0-9\\+\\/]/g, \"\"), nInLen = sB64Enc.length,\n nOutLen = nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize : nInLen * 3 + 1 >> 2, taBytes = new Uint8Array(nOutLen);\n\n for (var nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3;\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\n taBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\n }\n nUint24 = 0;\n\n }\n }\n\n return taBytes;\n}\n\n/* Base64 string to array encoding */\n\nfunction uint6ToB64 (nUint6) {\n\n return nUint6 < 26 ?\n nUint6 + 65\n : nUint6 < 52 ?\n nUint6 + 71\n : nUint6 < 62 ?\n nUint6 - 4\n : nUint6 === 62 ?\n 43\n : nUint6 === 63 ?\n 47\n :\n 65;\n\n}\n\nfunction base64EncArr (aBytes) {\n\n var nMod3 = 2, sB64Enc = \"\";\n\n for (var nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\n nMod3 = nIdx % 3;\n if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\n sB64Enc += String.fromCharCode(uint6ToB64(nUint24 >>> 18 & 63), uint6ToB64(nUint24 >>> 12 & 63), uint6ToB64(nUint24 >>> 6 & 63), uint6ToB64(nUint24 & 63));\n nUint24 = 0;\n }\n }\n\n return sB64Enc.substr(0, sB64Enc.length - 2 + nMod3) + (nMod3 === 2 ? '' : nMod3 === 1 ? '=' : '==');\n\n}\n\n/* UTF-8 array to DOMString and vice versa */\n\nfunction UTF8ArrToStr (aBytes) {\n\n var sView = \"\";\n\n for (var nPart, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\n nPart = aBytes[nIdx];\n sView += String.fromCharCode(\n nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\n /* (nPart - 252 << 32) is not possible in ECMAScript! So...: */\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\n : /* nPart < 127 ? */ /* one byte */\n nPart\n );\n }\n\n return sView;\n\n}\n\nfunction strToUTF8Arr (sDOMStr) {\n\n var aBytes, nChr, nStrLen = sDOMStr.length, nArrLen = 0;\n\n /* mapping... */\n\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\n nChr = sDOMStr.charCodeAt(nMapIdx);\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\n }\n\n aBytes = new Uint8Array(nArrLen);\n\n /* transcription... */\n\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\n nChr = sDOMStr.charCodeAt(nChrIdx);\n if (nChr < 128) {\n /* one byte */\n aBytes[nIdx++] = nChr;\n } else if (nChr < 0x800) {\n /* two bytes */\n aBytes[nIdx++] = 192 + (nChr >>> 6);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x10000) {\n /* three bytes */\n aBytes[nIdx++] = 224 + (nChr >>> 12);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x200000) {\n /* four bytes */\n aBytes[nIdx++] = 240 + (nChr >>> 18);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else if (nChr < 0x4000000) {\n /* five bytes */\n aBytes[nIdx++] = 248 + (nChr >>> 24);\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n } else /* if (nChr <= 0x7fffffff) */ {\n /* six bytes */\n aBytes[nIdx++] = 252 + /* (nChr >>> 32) is not possible in ECMAScript! So...: */ (nChr / 1073741824);\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\n aBytes[nIdx++] = 128 + (nChr & 63);\n }\n }\n\n return aBytes;\n\n}\n\n\n\nfunction hexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)}\nfunction hexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)}\nfunction hexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)}\nfunction cutHex(h) {return (h.charAt(0)==\"#\") ? h.substring(1,7):h}\nfunction setDocHexColor(doc, hex) {\n var r = hexToR(hex);\n var g = hexToG(hex);\n var b = hexToB(hex);\n return doc.setTextColor(r, g, b);\n}\nfunction setDocHexFill(doc, hex) {\n var r = hexToR(hex);\n var g = hexToG(hex);\n var b = hexToB(hex);\n return doc.setFillColor(r, g, b);\n}\nfunction setDocHexDraw(doc, hex) {\n var r = hexToR(hex);\n var g = hexToG(hex);\n var b = hexToB(hex);\n return doc.setDrawColor(r, g, b);\n}\n\nfunction toggleDatePicker(field) {\n $('#'+field).datepicker('show');\n}\n\nfunction roundToTwo(num, toString) {\n var val = +(Math.round(num + \"e+2\") + \"e-2\");\n return toString ? val.toFixed(2) : (val || 0);\n}\n\nfunction roundToFour(num, toString) {\n var val = +(Math.round(num + \"e+4\") + \"e-4\");\n return toString ? val.toFixed(4) : (val || 0);\n}\n\nfunction truncate(str, length) {\n return (str && str.length > length) ? (str.substr(0, length-1) + '...') : str;\n}\n\n// http://stackoverflow.com/questions/280634/endswith-in-javascript\nfunction endsWith(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n}\n\n// http://codeaid.net/javascript/convert-seconds-to-hours-minutes-and-seconds-%28javascript%29\nfunction secondsToTime(secs)\n{\n secs = Math.round(secs);\n var hours = Math.floor(secs / (60 * 60));\n\n var divisor_for_minutes = secs % (60 * 60);\n var minutes = Math.floor(divisor_for_minutes / 60);\n\n var divisor_for_seconds = divisor_for_minutes % 60;\n var seconds = Math.ceil(divisor_for_seconds);\n\n var obj = {\n \"h\": hours,\n \"m\": minutes,\n \"s\": seconds\n };\n return obj;\n}\n\nfunction twoDigits(value) {\n if (value < 10) {\n return '0' + value;\n }\n return value;\n}\n\nfunction toSnakeCase(str) {\n if (!str) return '';\n return str.replace(/([A-Z])/g, function($1){return \"_\"+$1.toLowerCase();});\n}\n\n// https://coderwall.com/p/iprsng/convert-snake-case-to-camelcase\nfunction snakeToCamel(s){\n return s.replace(/_([a-z])/g, function (g) { return g[1].toUpperCase(); });\n}\n\nfunction getDescendantProp(obj, desc) {\n var arr = desc.split(\".\");\n while(arr.length && (obj = obj[arr.shift()]));\n return obj;\n}\n\nfunction doubleDollarSign(str) {\n if (!str) return '';\n if (!str.replace) return str;\n return str.replace(/\\$/g, '\\$\\$\\$');\n}\n\nfunction truncate(string, length){\n if (string.length > length) {\n return string.substring(0, length) + '...';\n } else {\n return string;\n }\n};\n\n// Show/hide the 'Select' option in the datalists\nfunction actionListHandler() {\n $('tbody tr .tr-action').closest('tr').mouseover(function() {\n $(this).closest('tr').find('.tr-action').show();\n $(this).closest('tr').find('.tr-status').hide();\n }).mouseout(function() {\n $dropdown = $(this).closest('tr').find('.tr-action');\n if (!$dropdown.hasClass('open')) {\n $dropdown.hide();\n $(this).closest('tr').find('.tr-status').show();\n }\n });\n}\n\nfunction loadImages(selector) {\n $(selector + ' img').each(function(index, item) {\n var src = $(item).attr('data-src');\n $(item).attr('src', src);\n $(item).attr('data-src', src);\n });\n}\n\n// http://stackoverflow.com/questions/4810841/how-can-i-pretty-print-json-using-javascript\nfunction prettyJson(json) {\n if (typeof json != 'string') {\n json = JSON.stringify(json, undefined, 2);\n }\n json = json.replace(/&/g, '&').replace(//g, '>');\n return json.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function (match) {\n var cls = 'number';\n if (/^\"/.test(match)) {\n if (/:$/.test(match)) {\n cls = 'key';\n } else {\n cls = 'string';\n }\n } else if (/true|false/.test(match)) {\n cls = 'boolean';\n } else if (/null/.test(match)) {\n cls = 'null';\n }\n match = snakeToCamel(match);\n return '' + match + '';\n });\n}\n\nfunction searchData(data, key, fuzzy) {\n return function findMatches(q, cb) {\n var matches, substringRegex;\n if (fuzzy) {\n var options = {\n keys: [key],\n }\n var fuse = new Fuse(data, options);\n matches = fuse.search(q);\n } else {\n matches = [];\n substrRegex = new RegExp(escapeRegExp(q), 'i');\n $.each(data, function(i, obj) {\n if (substrRegex.test(obj[key])) {\n matches.push(obj);\n }\n });\n }\n cb(matches);\n }\n};\n\nfunction escapeRegExp(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\nfunction firstJSONError(json) {\n for (var key in json) {\n if ( ! json.hasOwnProperty(key)) {\n continue;\n }\n var item = json[key];\n for (var subKey in item) {\n if ( ! item.hasOwnProperty(subKey)) {\n continue;\n }\n return item[subKey];\n }\n }\n return false;\n}\n","var NINJA = NINJA || {};\n\nNINJA.TEMPLATES = {\n CLEAN: \"1\",\n BOLD:\"2\",\n MODERN: \"3\",\n NORMAL:\"4\",\n BUSINESS:\"5\",\n CREATIVE:\"6\",\n ELEGANT:\"7\",\n HIPSTER:\"8\",\n PLAYFUL:\"9\",\n PHOTO:\"10\"\n};\n\nfunction GetPdfMake(invoice, javascript, callback) {\n\n javascript = NINJA.decodeJavascript(invoice, javascript);\n\n function jsonCallBack(key, val) {\n\n // handle custom functions\n if (typeof val === 'string') {\n if (val.indexOf('$firstAndLast') === 0) {\n var parts = val.split(':');\n return function (i, node) {\n return (i === 0 || i === node.table.body.length) ? parseFloat(parts[1]) : 0;\n };\n } else if (val.indexOf('$none') === 0) {\n return function (i, node) {\n return 0;\n };\n } else if (val.indexOf('$notFirstAndLastColumn') === 0) {\n var parts = val.split(':');\n return function (i, node) {\n return (i === 0 || i === node.table.widths.length) ? 0 : parseFloat(parts[1]);\n };\n } else if (val.indexOf('$notFirst') === 0) {\n var parts = val.split(':');\n return function (i, node) {\n return i === 0 ? 0 : parseFloat(parts[1]);\n };\n } else if (val.indexOf('$amount') === 0) {\n var parts = val.split(':');\n return function (i, node) {\n return parseFloat(parts[1]);\n };\n } else if (val.indexOf('$primaryColor') === 0) {\n var parts = val.split(':');\n return NINJA.primaryColor || parts[1];\n } else if (val.indexOf('$secondaryColor') === 0) {\n var parts = val.split(':');\n return NINJA.secondaryColor || parts[1];\n }\n }\n\n // determine whether or not to show the header/footer\n if (invoice.features.customize_invoice_design) {\n if (key === 'header') {\n return function(page, pages) {\n return page === 1 || invoice.account.all_pages_header == '1' ? val : '';\n }\n } else if (key === 'footer') {\n return function(page, pages) {\n return page === pages || invoice.account.all_pages_footer == '1' ? val : '';\n }\n }\n }\n\n // check for markdown\n if (key === 'text') {\n val = NINJA.parseMarkdownText(val, true);\n }\n\n /*\n if (key === 'stack') {\n val = NINJA.parseMarkdownStack(val);\n val = NINJA.parseMarkdownText(val, false);\n }\n */\n\n return val;\n }\n\n // Add ninja logo to the footer\n var dd = JSON.parse(javascript, jsonCallBack);\n var designId = invoice.invoice_design_id;\n if (!invoice.features.remove_created_by && ! isEdge) {\n var footer = (typeof dd.footer === 'function') ? dd.footer() : dd.footer;\n if (footer) {\n if (footer.hasOwnProperty('columns')) {\n footer.columns.push({image: logoImages.imageLogo1, alignment: 'right', width: 130, margin: [0, 0, 0, 0]})\n } else {\n var foundColumns;\n for (var i=0; i= 0) {\n var regExp = new RegExp('\"\\\\$'+key+'\",', 'g');\n val = json[key];\n } else {\n var regExp = new RegExp('\"\\\\$'+key+'\"', 'g');\n var val = JSON.stringify(json[key]);\n val = doubleDollarSign(val);\n }\n javascript = javascript.replace(regExp, val);\n }\n\n // search/replace labels\n var regExp = new RegExp('\"\\\\$\\\\\\w*?Label(UC)?(:)?(\\\\\\?)?\"', 'g');\n var matches = javascript.match(regExp);\n\n if (matches) {\n for (var i=0; i 0 && field == 'balance_due') {\n field = 'partial_due';\n } else if (invoice.is_quote) {\n if (field == 'due_date') {\n field = 'valid_until';\n } else {\n field = field.replace('invoice', 'quote');\n }\n }\n var label = invoiceLabels[field];\n if (match.indexOf('UC') >= 0) {\n label = label.toUpperCase();\n }\n if (match.indexOf(':') >= 0) {\n label = label + ':';\n }\n } else {\n label = ' ';\n }\n javascript = javascript.replace(match, '\"'+label+'\"');\n }\n }\n\n // search/replace values\n var regExp = new RegExp('\"\\\\$[a-z][\\\\\\w\\\\\\.]*?[Value]?\"', 'g');\n var matches = javascript.match(regExp);\n\n if (matches) {\n for (var i=0; i= 0) {\n continue;\n }\n\n // legacy style had 'Value' at the end\n if (endsWith(match, 'Value\"')) {\n field = match.substring(2, match.indexOf('Value'));\n } else {\n field = match.substring(2, match.length - 1);\n }\n field = toSnakeCase(field);\n\n var value = getDescendantProp(invoice, field) || ' ';\n value = doubleDollarSign(value);\n javascript = javascript.replace(match, '\"'+value+'\"');\n }\n }\n\n return javascript;\n}\n\n\nNINJA.notesAndTerms = function(invoice)\n{\n var data = [];\n\n if (invoice.public_notes) {\n data.push({stack:[{text: invoice.is_recurring ? processVariables(invoice.public_notes) : invoice.public_notes, style: ['notes']}]});\n data.push({text:' '});\n }\n\n if (invoice.terms) {\n data.push({text:invoiceLabels.terms, style: ['termsLabel']});\n data.push({stack:[{text: invoice.is_recurring ? processVariables(invoice.terms) : invoice.terms, style: ['terms']}]});\n }\n\n return NINJA.prepareDataList(data, 'notesAndTerms');\n}\n\nNINJA.statementColumns = function(invoice)\n{\n return [\"22%\", \"22%\", \"22%\", \"17%\", \"17%\"];\n}\n\nNINJA.statementLines = function(invoice)\n{\n var grid = [[]];\n grid[0].push({text: invoiceLabels.invoice_number, style: ['tableHeader', 'invoiceNumberTableHeader']});\n grid[0].push({text: invoiceLabels.invoice_date, style: ['tableHeader', 'invoiceDateTableHeader']});\n grid[0].push({text: invoiceLabels.due_date, style: ['tableHeader', 'dueDateTableHeader']});\n grid[0].push({text: invoiceLabels.total, style: ['tableHeader', 'totalTableHeader']});\n grid[0].push({text: invoiceLabels.balance, style: ['tableHeader', 'balanceTableHeader']});\n\n for (var i = 0; i < invoice.invoice_items.length; i++) {\n var item = invoice.invoice_items[i];\n var row = [];\n grid.push([\n {text: item.invoice_number, style:['invoiceNumber']},\n {text: item.invoice_date && item.invoice_date != '0000-00-00' ? moment(item.invoice_date).format(invoice.date_format) : ' ', style:['invoiceDate']},\n {text: item.due_date && item.due_date != '0000-00-00' ? moment(item.due_date).format(invoice.date_format) : ' ', style:['dueDate']},\n {text: formatMoneyInvoice(item.amount, invoice), style:['subtotals']},\n {text: formatMoneyInvoice(item.balance, invoice), style:['lineTotal']},\n ]);\n }\n\n return NINJA.prepareDataTable(grid, 'invoiceItems');\n}\n\nNINJA.invoiceColumns = function(invoice)\n{\n var account = invoice.account;\n var columns = [];\n\n if (invoice.has_product_key) {\n columns.push(\"15%\");\n }\n\n columns.push(\"*\")\n\n if (invoice.features.invoice_settings && account.custom_invoice_item_label1) {\n columns.push(\"10%\");\n }\n if (invoice.features.invoice_settings && account.custom_invoice_item_label2) {\n columns.push(\"10%\");\n }\n\n var count = 3;\n if (account.hide_quantity == '1') {\n count -= 2;\n }\n if (account.show_item_taxes == '1') {\n count++;\n }\n for (var i=0; i 1 ? parts : val;\n}\n\n/*\nNINJA.parseMarkdownStack = function(val)\n{\n if (val.length == 1) {\n var item = val[0];\n var line = item.hasOwnProperty('text') ? item.text : item;\n\n if (typeof line === 'string') {\n line = [line];\n }\n\n var regExp = '^\\\\\\* (.*[\\r\\n|\\n|\\r]?)';\n var formatter = function(data) {\n return {\"ul\": [data.text]};\n }\n\n val = NINJA.parseRegExp(line, regExp, formatter, false);\n }\n\n return val;\n}\n*/\n\nNINJA.parseRegExp = function(val, regExpStr, formatter, groupText)\n{\n var regExp = new RegExp(regExpStr, 'gm');\n var parts = [];\n\n for (var i=0; i 1 ? parts : val;\n}\n\nNINJA.parseRegExpLine = function(line, regExp, formatter, groupText)\n{\n var parts = [];\n var lastIndex = 0;\n\n while (match = regExp.exec(line)) {\n if (match.index > lastIndex) {\n parts.push(line.substring(lastIndex, match.index));\n }\n var data = {};\n data.text = match[1];\n data = formatter(data);\n parts.push(data);\n lastIndex = match.index + match[0].length;\n }\n\n if (parts.length) {\n if (lastIndex < line.length) {\n parts.push(line.substring(lastIndex));\n }\n return parts;\n }\n\n return line;\n}\n","/*!\n * Bootstrap v3.3.1 (http://getbootstrap.com)\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.1\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.1\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.1'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.1\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state = state + 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked') && this.$element.hasClass('active')) changed = false\n else $parent.find('.active').removeClass('active')\n }\n if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n }\n\n if (changed) this.$element.toggleClass('active')\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.1\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused =\n this.sliding =\n this.interval =\n this.$active =\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var delta = direction == 'prev' ? -1 : 1\n var activeIndex = this.getItemIndex(active)\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var fallback = type == 'next' ? 'first' : 'last'\n var that = this\n\n if (!$next.length) {\n if (!this.options.wrap) return\n $next = this.$element.find('.item')[fallback]()\n }\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.1\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $(this.options.trigger).filter('[href=\"#' + element.id + '\"], [data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true,\n trigger: '[data-toggle=\"collapse\"]'\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && option == 'show') options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.1\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.1'\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $('
    ').insertAfter($(this)).on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger('shown.bs.dropdown', relatedTarget)\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.divider):visible a'\n var $items = $parent.find('[role=\"menu\"]' + desc + ', [role=\"listbox\"]' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\n })\n }\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '[role=\"menu\"]', Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '[role=\"listbox\"]', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.1\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$backdrop =\n this.isShown = null\n this.scrollbarWidth = 0\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n if (that.options.backdrop) that.adjustBackdrop()\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element\n .addClass('in')\n .attr('aria-hidden', false)\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$element.find('.modal-dialog') // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .attr('aria-hidden', true)\n .off('click.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $('
    ')\n .prependTo(this.$element)\n .on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus.call(this.$element[0])\n : this.hide.call(this)\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n if (this.options.backdrop) this.adjustBackdrop()\n this.adjustDialog()\n }\n\n Modal.prototype.adjustBackdrop = function () {\n this.$backdrop\n .css('height', 0)\n .css('height', this.$element[0].scrollHeight)\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', '')\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.1\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type =\n this.options =\n this.enabled =\n this.timeout =\n this.hoverState =\n this.$element = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
    ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (self && self.$tip && self.$tip.is(':visible')) {\n self.hoverState = 'in'\n return\n }\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var $container = this.options.container ? $(this.options.container) : this.$element.parent()\n var containerDim = this.getPosition($container)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top = offset.top + marginTop\n offset.left = offset.left + marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {\n this.arrow()\n .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = this.tip()\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n return (this.$tip = this.$tip || $(this.options.template))\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n var selector = options && options.selector\n\n if (!data && option == 'destroy') return\n if (selector) {\n if (!data) $this.data('bs.tooltip', (data = {}))\n if (!data[selector]) data[selector] = new Tooltip(this, options)\n } else {\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n }\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.1\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

    '\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n Popover.prototype.tip = function () {\n if (!this.$tip) this.$tip = $(this.options.template)\n return this.$tip\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n var selector = options && options.selector\n\n if (!data && option == 'destroy') return\n if (selector) {\n if (!data) $this.data('bs.popover', (data = {}))\n if (!data[selector]) data[selector] = new Popover(this, options)\n } else {\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n }\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.1\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n var process = $.proxy(this.process, this)\n\n this.$body = $('body')\n this.$scrollElement = $(element).is('body') ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', process)\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.1'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n var self = this\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n self.offsets.push(this[0])\n self.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (!offsets[i + 1] || scrollTop <= offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.1\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n this.element = $(element)\n }\n\n Tab.VERSION = '3.3.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu')) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.1\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed =\n this.unpin =\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.1'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && colliderTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = $('body').height()\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/*!\n * jQuery JavaScript Library v1.11.3\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:19Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \"
    a\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
    \", \"
    \" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
    \" ],\n\t\ttr: [ 2, \"\", \"
    \" ],\n\t\tcol: [ 2, \"\", \"
    \" ],\n\t\ttd: [ 3, \"\", \"
    \" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
    \", \"
    \" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
    \" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \" + - + + + + + + + +@stop + +@section('footer') + @if (Utils::isNinja() || ! Utils::isWhiteLabel()) +

    + Facebook + Twitter + GitHub +

    + +

    + © {{ date('Y') }} Invoice Ninja
    +

    + @endif +@stop diff --git a/resources/views/expenses/edit.blade.php b/resources/views/expenses/edit.blade.php index 414778efbcfc..c07103a3d4e4 100644 --- a/resources/views/expenses/edit.blade.php +++ b/resources/views/expenses/edit.blade.php @@ -21,6 +21,7 @@ ->method($method) !!}
    {!! Former::text('action') !!} + {!! Former::text('data')->data_bind('value: ko.mapping.toJSON(model)') !!}
    @if ($expense) @@ -306,9 +307,8 @@ @else // otherwise create blank model window.model = new ViewModel({!! $expense !!}); - - ko.applyBindings(model); @endif + ko.applyBindings(model); @if (!$expense && $clientPublicId) onClientChange(); @@ -386,6 +386,11 @@ self.convert_currency = ko.observable({{ ($expense && $expense->isExchanged()) ? 'true' : 'false' }}); self.apply_taxes = ko.observable({{ ($expense && ($expense->tax_name1 || $expense->tax_name2)) ? 'true' : 'false' }}); + self.account_currency_id = ko.observable({{ $account->getCurrencyId() }}); + self.client_id = ko.observable({{ $clientPublicId }}); + self.vendor_id = ko.observable({{ $vendorPublicId }}); + self.expense_category_id = ko.observable({{ $categoryPublicId }}); + self.mapping = { 'documents': { create: function(options) { @@ -398,11 +403,6 @@ ko.mapping.fromJS(data, self.mapping, this); } - self.account_currency_id = ko.observable({{ $account->getCurrencyId() }}); - self.client_id = ko.observable({{ $clientPublicId }}); - self.vendor_id = ko.observable({{ $vendorPublicId }}); - self.expense_category_id = ko.observable({{ $categoryPublicId }}); - self.convertedAmount = ko.computed({ read: function () { return roundToTwo(self.amount() * self.exchange_rate()).toFixed(2); diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index 16aed7a92d22..8aa75b3d0f1f 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -225,6 +225,12 @@ } $(function() { + // auto-logout after 8 hours + window.setTimeout(function() { + window.location = '{{ URL::to('/logout?reason=inactivity') }}'; + }, {{ 1000 * env('AUTO_LOGOUT_SECONDS', (60 * 60 * 8)) }}); + + // auto-hide status alerts window.setTimeout(function() { $(".alert-hide").fadeOut(); }, 3000); @@ -506,21 +512,20 @@ || Auth::user()->can('create', substr($option, 0, -1))) @include('partials.navigation_option') @endif - @endforeach - @if ( ! Utils::isNinjaProd()) - @foreach (Module::all() as $module) - @include('partials.navigation_option', [ - 'option' => $module->getAlias(), - 'icon' => $module->get('icon', 'th-large'), - ]) @endforeach - @endif - @if (Auth::user()->is_admin) - @include('partials.navigation_option', ['option' => 'reports']) - @endif - @include('partials.navigation_option', ['option' => 'settings']) -
  • -
  • - @if (Utils::isNinja()) + @if (Auth::user()->account->hasMultipleAccounts()) +
    {!! trans('texts.email_alias_message') !!}
    + @elseif (Utils::isNinja())
    {{ trans('texts.trial_message') }}
    @endif
    diff --git a/resources/views/invited/dashboard.blade.php b/resources/views/invited/dashboard.blade.php index 2a43740f8761..d434995679c5 100644 --- a/resources/views/invited/dashboard.blade.php +++ b/resources/views/invited/dashboard.blade.php @@ -12,58 +12,246 @@ min-height: 700px; } - div.row { - padding-top: 2em; - padding-bottom: 2em; + #main-row { + background: #fff; + line-height: 1.5; + position: relative; + margin-top: 50px; + margin-bottom: 50px; + } + + #main-row > div { + padding: 25px; + position: static; + } + + @media (max-width: 991px) { + #contact-details { + text-align: center; + } + } + + @media (min-width: 992px) { + #main-row, + #account-row { + display: flex; + align-items: center; + } + + #main-row { + margin-top: 100px; + margin-bottom: 100px; + } + } + + #main-row h3 { + font-weight: 700; + color: #424343; + margin-top: 0; + margin-bottom: 30px; + } + + #main-row, + #main-row a, + #account-row, + #account-row a { + color: #838181; + } + + #main-row .amount-label { + color: #868787; + font-size: 21px; + font-weight: 300; + } + + #main-row .amount { + color: #222; + font-size: 30px; + font-weight: 700; + line-height: 1.1; + } + + #main-row .amount-col { + padding: 40px 20px; + } + + @media (min-width: 1200px) { + #main-row .amount { + font-size: 38px; + } + + #main-row > div { + padding: 60px; + } + } + + #main-row .amount, + #main-row .amount-label { + position: relative; + z-index: 9; + } + + .amount-col .inner { + text-align: center; + } + + #main-row i { + width: 56px; + height: 56px; + border-radius: 50%; + background-color: #42d165; + position: absolute; + top: -20px; + margin-left: -28px; + text-align: center; + padding: 13px; + z-index: 9; + } + + #main-row i img { + height: 30px; + } + + #total-invoiced-col:before, + #paidtodate-col:before, + #balance-col:before { + content: ''; + background: #dbd9d9; + width: 1px; + position: absolute; + height: 100%; + top: 0; + margin-left: -20px; + } + + #total-invoiced-col:before { + width: 67px; + background: transparent; + background: -webkit-linear-gradient(0deg, #f8f8f8 0%, #ffffff 100%); + background: -moz-linear-gradient(0deg, #f8f8f8 0%, #ffffff 100%); + background: -o-linear-gradient(0deg, #f8f8f8 0%, #ffffff 100%); + background: -ms-linear-gradient(0deg, #f8f8f8 0%, #ffffff 100%); + background: linear-gradient(90deg, #f8f8f8 0%, #ffffff 100%); + } + + @media (max-width: 991px) { + #main-row .amount-col { + position: relative; + } + + #total-invoiced-col:before, + #paidtodate-col:before, + #balance-col:before { + width: 100%; + top: auto; + height: 1px; + margin-top: -40px; + } + + #main-row i { + left: -20px; + top: 50%; + margin-top: -28px; + margin-left: 0; + } + + #total-invoiced-col:before { + background: -webkit-linear-gradient(270deg, #f8f8f8 0%, #ffffff 100%); + background: -moz-linear-gradient(270deg, #f8f8f8 0%, #ffffff 100%); + background: -o-linear-gradient(270deg, #f8f8f8 0%, #ffffff 100%); + background: -ms-linear-gradient(270deg, #f8f8f8 0%, #ffffff 100%); + background: linear-gradient(180deg, #f8f8f8 0%, #ffffff 100%); + + height: 50px; + } + } + + @media (max-width: 815px) { + #main-row i { + left: 30px; + } + } + + @media (max-width: 400px) { + #main-row i { + display: none + } + } + + .invoices-from { + color: #424343; + font-weight: 700; + letter-spacing: 1px; + font-size: 13px; + text-transform: uppercase; } div.logo img { - max-width:300px; - max-height:200px; + max-width: 100%; + max-height: 75px; } - div.address-details { - color: #666666; - font-size: 15px; - line-height: 1.8em; + #account-row > div { + padding: 20px 50px 20px 110px; } - div.col-md-4-left { - padding-left: 15px; - padding-right: 6px; - } - div.col-md-4-center { - padding-left: 6px; - padding-right: 6px; - } - div.col-md-4-right { - padding-left: 6px; - padding-right: 15px; + #account-row .invoices-from { + padding-left: 0; } - div.well { - background-color: white; - color: #0b4d78; - text-transform: uppercase; - text-align: center; - font-weight: 600; - padding-top: 40px; - padding-bottom: 40px; + #account-row .phone-web-details { + padding-right: 0; } - div.well .fa { - color: green; - font-size: 18px; - margin-bottom: 6px; + #account-row .phone-web-details .inner { + text-align: right; } - div.well .amount { - margin-top: 10px; - font-size: 32px; - font-weight: 300; - color: black; + #account-row > div:before { + content: ''; + border-left: 1px solid #dbd9d9; + position: absolute; + height: 100%; + top: 0; + margin-left: -80px; } + #account-row .logo { + padding-left: 70px; + } + + #account-row .invoices-from:before { + content: none; + } + + @media (max-width: 1199px) { + #account-row .logo, + #account-row > div { + padding-left: 40px; + padding-right: 5px; + } + + #account-row > div:before { + margin-left: -25px; + } + } + + @media (max-width: 991px) { + #account-row, + #account-row .phone-web-details .inner { + text-align: center; + } + + #account-row > div { + padding: 15px 30px !important; + } + + #account-row > div:before { + content: none; + } + } + + table.dataTable thead > tr > th, table.invoice-table thead > tr > th { background-color: {{ $color }} !important; } @@ -92,8 +280,98 @@
    -
    - +
    + + + diff --git a/resources/views/partials/system_settings.blade.php b/resources/views/partials/system_settings.blade.php index d03493bee6d5..30b38eb77e7b 100644 --- a/resources/views/partials/system_settings.blade.php +++ b/resources/views/partials/system_settings.blade.php @@ -45,7 +45,8 @@ ->value(isset($_ENV['MAIL_HOST']) ? $_ENV['MAIL_HOST'] : '') !!} {!! Former::text('mail[port]')->label('Port') ->value(isset($_ENV['MAIL_PORT']) ? $_ENV['MAIL_PORT'] : '587') !!} - {!! Former::select('mail[encryption]')->label('Encryption')->options(['tls' => 'TLS', 'ssl' => 'SSL']) + {!! Former::select('mail[encryption]')->label('Encryption') + ->options(['tls' => 'TLS', 'ssl' => 'SSL', '' => 'None']) ->value(isset($_ENV['MAIL_ENCRYPTION']) ? $_ENV['MAIL_ENCRYPTION'] : 'tls') !!} {!! Former::password('mail[password]')->label('Password') ->value(isset($_ENV['MAIL_PASSWORD']) ? $_ENV['MAIL_PASSWORD'] : '') !!} diff --git a/resources/views/partials/warn_session.blade.php b/resources/views/partials/warn_session.blade.php index 43a31f471420..2a1b575a8152 100644 --- a/resources/views/partials/warn_session.blade.php +++ b/resources/views/partials/warn_session.blade.php @@ -36,4 +36,4 @@ startWarnSessionTimeout(); } }); - \ No newline at end of file + diff --git a/resources/views/partials/white_label.blade.php b/resources/views/partials/white_label.blade.php index e8de823cab51..7a6e7973ae1a 100644 --- a/resources/views/partials/white_label.blade.php +++ b/resources/views/partials/white_label.blade.php @@ -84,8 +84,7 @@ } function buyProduct(affiliateKey, productId) { - window.open('{{ Utils::isNinjaDev() ? '' : NINJA_APP_URL }}/license?affiliate_key=' + affiliateKey + '&product_id=' + productId + '&return_url=' + window.location); - //window.open('{{ Utils::isNinjaDev() ? '' : NINJA_APP_URL }}/buy_now/?account_key={{ env('NINJA_LICENSE_ACCOUNT_KEY') }}&product_id=' + productId + '&contact_key={{ Auth::user()->primaryAccount()->account_key }}' + '&return_url=' + window.location); + window.open('{{ Utils::isNinjaDev() ? '' : NINJA_APP_URL }}/buy_now/?account_key=AsFmBAeLXF0IKf7tmi0eiyZfmWW9hxMT&product_id=' + productId + '&contact_key={{ Auth::user()->primaryAccount()->account_key }}' + '&return_url=' + window.location); } function showApplyLicense() { diff --git a/resources/views/payments/credit_card.blade.php b/resources/views/payments/credit_card.blade.php index 3f118d9d733c..96327b360ac5 100644 --- a/resources/views/payments/credit_card.blade.php +++ b/resources/views/payments/credit_card.blade.php @@ -3,7 +3,17 @@ @section('head') @parent + + + + @@ -155,102 +202,111 @@

     
     

    @endif -

    {{ trans('texts.billing_method') }}

    -
    -
    - @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) -
    - @else - {!! Former::text(!empty($tokenize) ? '' : 'card_number') - ->id('card_number') - ->placeholder(trans('texts.card_number')) - ->autocomplete('cc-number') - ->label('') !!} - @endif -
    -
    - @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) -
    - @else - {!! Former::text(!empty($tokenize) ? '' : 'cvv') - ->id('cvv') - ->placeholder(trans('texts.cvv')) - ->autocomplete('off') - ->label('') !!} - @endif -
    -
    -
    -
    - @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) -
    - @else - {!! Former::select(!empty($tokenize) ? '' : 'expiration_month') - ->id('expiration_month') - ->autocomplete('cc-exp-month') - ->placeholder(trans('texts.expiration_month')) - ->addOption('01 - January', '1') - ->addOption('02 - February', '2') - ->addOption('03 - March', '3') - ->addOption('04 - April', '4') - ->addOption('05 - May', '5') - ->addOption('06 - June', '6') - ->addOption('07 - July', '7') - ->addOption('08 - August', '8') - ->addOption('09 - September', '9') - ->addOption('10 - October', '10') - ->addOption('11 - November', '11') - ->addOption('12 - December', '12')->label('') - !!} - @endif -
    -
    - @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) -
    - @else - {!! Former::select(!empty($tokenize) ? '' : 'expiration_year') - ->id('expiration_year') - ->autocomplete('cc-exp-year') - ->placeholder(trans('texts.expiration_year')) - ->addOption('2016', '2016') - ->addOption('2017', '2017') - ->addOption('2018', '2018') - ->addOption('2019', '2019') - ->addOption('2020', '2020') - ->addOption('2021', '2021') - ->addOption('2022', '2022') - ->addOption('2023', '2023') - ->addOption('2024', '2024') - ->addOption('2025', '2025') - ->addOption('2026', '2026')->label('') - !!} - @endif -
    -
    -
    -
    - @if (isset($amount) && $client && $account->showTokenCheckbox($storageGateway/* will contain gateway id */)) - selectTokenCheckbox() ? 'CHECKED' : '' }} value="1" style="margin-left:0px; vertical-align:top"> - - - @if ($storageGateway == GATEWAY_STRIPE) - {!! trans('texts.token_billing_secure', ['link' => link_to('https://stripe.com/', 'Stripe.com', ['target' => '_blank'])]) !!} - @elseif ($storageGateway == GATEWAY_BRAINTREE) - {!! trans('texts.token_billing_secure', ['link' => link_to('https://www.braintreepayments.com/', 'Braintree', ['target' => '_blank'])]) !!} - @endif - - @endif -
    +
    -
    - @if (isset($acceptedCreditCardTypes)) -
    +

    + {{ trans('texts.billing_method') }} + @if (isset($acceptedCreditCardTypes)) +   @foreach ($acceptedCreditCardTypes as $card) - {{ $card['alt'] }} + {{ $card['alt'] }} @endforeach + @endif +
    +

    + +
    +
    + @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) +
    + @else + {!! Former::text(!empty($tokenize) ? '' : 'card_number') + ->id('card_number') + ->placeholder(trans('texts.card_number')) + ->autocomplete('cc-number') + ->label('') !!} + @endif
    - @endif +
    +
    +
    + @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) +
    + @else + {!! Former::select(!empty($tokenize) ? '' : 'expiration_month') + ->id('expiration_month') + ->autocomplete('cc-exp-month') + ->placeholder(trans('texts.expiration_month')) + ->addOption('01 - January', '1') + ->addOption('02 - February', '2') + ->addOption('03 - March', '3') + ->addOption('04 - April', '4') + ->addOption('05 - May', '5') + ->addOption('06 - June', '6') + ->addOption('07 - July', '7') + ->addOption('08 - August', '8') + ->addOption('09 - September', '9') + ->addOption('10 - October', '10') + ->addOption('11 - November', '11') + ->addOption('12 - December', '12')->label('') + !!} + @endif +
    +
    + @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) +
    + @else + {!! Former::select(!empty($tokenize) ? '' : 'expiration_year') + ->id('expiration_year') + ->autocomplete('cc-exp-year') + ->placeholder(trans('texts.expiration_year')) + ->addOption('2016', '2016') + ->addOption('2017', '2017') + ->addOption('2018', '2018') + ->addOption('2019', '2019') + ->addOption('2020', '2020') + ->addOption('2021', '2021') + ->addOption('2022', '2022') + ->addOption('2023', '2023') + ->addOption('2024', '2024') + ->addOption('2025', '2025') + ->addOption('2026', '2026')->label('') + !!} + @endif +
    +
    + @if ($accountGateway->gateway_id == GATEWAY_BRAINTREE) +
    + @else + {!! Former::text(!empty($tokenize) ? '' : 'cvv') + ->id('cvv') + ->placeholder(trans('texts.cvv')) + ->autocomplete('off') + ->label('') !!} + @endif +
    +
    + +
    + +
    + @if (isset($amount) && $client && $account->showTokenCheckbox($storageGateway/* will contain gateway id */)) + selectTokenCheckbox() ? 'CHECKED' : '' }} value="1" style="margin-left:0px; vertical-align:top"> + + + @if ($storageGateway == GATEWAY_STRIPE) + {!! trans('texts.token_billing_secure', ['link' => link_to('https://stripe.com/', 'Stripe.com', ['target' => '_blank'])]) !!} + @elseif ($storageGateway == GATEWAY_BRAINTREE) + {!! trans('texts.token_billing_secure', ['link' => link_to('https://www.braintreepayments.com/', 'Braintree', ['target' => '_blank'])]) !!} + @endif + + @endif +
    +
    +
    +
    +
    diff --git a/resources/views/payments/edit.blade.php b/resources/views/payments/edit.blade.php index 004f439057e9..22fdc235a1f3 100644 --- a/resources/views/payments/edit.blade.php +++ b/resources/views/payments/edit.blade.php @@ -26,6 +26,10 @@ @if ($payment) {!! Former::populate($payment) !!} + @else + @if ($account->payment_type_id) + {!! Former::populateField('payment_type_id', $account->payment_type_id) !!} + @endif @endif @@ -40,8 +44,8 @@
    @if ($payment) - {!! Former::plaintext()->label('client')->value($payment->client->getDisplayName()) !!} - {!! Former::plaintext()->label('invoice')->value($payment->invoice->getDisplayName()) !!} + {!! Former::plaintext()->label('client')->value($payment->client->present()->link) !!} + {!! Former::plaintext()->label('invoice')->value($payment->invoice->present()->link) !!} {!! Former::plaintext()->label('amount')->value($payment->present()->amount) !!} @else {!! Former::select('client')->addOption('', '')->addGroupClass('client-select') !!} @@ -92,6 +96,8 @@ + @include('partials/refund_payment') + {!! Former::close() !!} @@ -65,14 +70,15 @@ @if (!isset($account) || !$account->hasFeature(FEATURE_WHITE_LABEL)) {{-- Per our license, please do not remove or modify this link. --}} - + @endif
    -
    +
    {!! Former::select('invoice_status')->label('status') ->addOption(trans('texts.all'), 'all') ->addOption(trans('texts.draft'), 'draft') @@ -221,6 +216,11 @@
  •  
    + + + + +
    +
    +
    + @yield('body') +
    +
    +
    +
    + {{ trans('texts.reports_help') }} +
    +
    @@ -238,7 +238,7 @@ var sumColumns = []; @foreach ($columns as $column) - sumColumns.push("{{ in_array($column, ['amount', 'paid', 'balance']) ? trans("texts.{$column}") : false }}"); + sumColumns.push("{{ in_array($column, ['amount', 'paid', 'balance', 'cost']) ? trans("texts.{$column}") : false }}"); @endforeach $(function() { @@ -256,7 +256,7 @@ } else { $('#dateField').fadeOut(); } - if (val == '{{ ENTITY_INVOICE }}' || val == 'invoice_details') { + if (val == '{{ ENTITY_INVOICE }}' || val == '{{ ENTITY_PRODUCT }}') { $('#statusField').fadeIn(); } else { $('#statusField').fadeOut(); diff --git a/resources/views/reports/d3.blade.php b/resources/views/reports/d3.blade.php index 1954a9b9f907..16b90ce4efec 100644 --- a/resources/views/reports/d3.blade.php +++ b/resources/views/reports/d3.blade.php @@ -4,7 +4,7 @@ @parent @include('money_script') - + @@ -39,8 +39,8 @@ View

    Total

    -

    Balance

    -

    Age

    +

    Balance

    +

    Age

    @@ -62,10 +62,10 @@ // store data as JSON var data = {!! $clients !!}; - _.each(data, function(client) { - _.each(client.invoices, function(invoice) { - _.each(invoice.invoice_items, function(invoice_item) { - invoice_item.invoice = invoice; + _.each(data, function(client) { + _.each(client.invoices, function(invoice) { + _.each(invoice.invoice_items, function(invoice_item) { + invoice_item.invoice = invoice; }); }); }); @@ -75,26 +75,26 @@ var invoices = _.flatten(_.pluck(clients, 'invoices')); // remove quotes and recurring invoices - invoices = _.filter(invoices, function(invoice) { - return !parseInt(invoice.is_quote) && !invoice.is_recurring; - }); + invoices = _.filter(invoices, function(invoice) { + return !parseInt(invoice.is_quote) && !invoice.is_recurring; + }); var products = _.flatten(_.pluck(invoices, 'invoice_items')); products = d3.nest() .key(function(d) { return d.product_key; }) .sortKeys(d3.ascending) - .rollup(function(d) { return { - amount: d3.sum(d, function(g) { - return g.qty * g.cost; + .rollup(function(d) { return { + amount: d3.sum(d, function(g) { + return g.qty * g.cost; }), - paid: d3.sum(d, function(g) { - return g.invoice && g.invoice.invoice_status_id == 5 ? (g.qty * g.cost) : 0; + paid: d3.sum(d, function(g) { + return g.invoice && g.invoice.invoice_status_id == {{ INVOICE_STATUS_PAID }} ? (g.qty * g.cost) : 0; + }), + age: d3.mean(d, function(g) { + return calculateInvoiceAge(g.invoice) || null; }), - age: d3.mean(d, function(g) { - return calculateInvoiceAge(g.invoice) || null; - }), }}) - .entries(products); + .entries(products); // create standardized display properties _.each(clients, function(client) { @@ -102,10 +102,10 @@ client.displayTotal = +client.paid_to_date + +client.balance; client.displayBalance = +client.balance; client.displayPercent = (+client.paid_to_date / (+client.paid_to_date + +client.balance)).toFixed(2); - var oldestInvoice = _.max(client.invoices, function(invoice) { return calculateInvoiceAge(invoice) }); + var oldestInvoice = _.max(client.invoices, function(invoice) { return calculateInvoiceAge(invoice) }); client.displayAge = oldestInvoice ? calculateInvoiceAge(oldestInvoice) : -1; - }); - + }); + _.each(invoices, function(invoice) { invoice.displayName = invoice.invoice_number; invoice.displayTotal = +invoice.amount; @@ -125,7 +125,7 @@ //console.log(JSON.stringify(clients)); //console.log(JSON.stringify(invoices)); //console.log(JSON.stringify(products)); - + var arc = d3.svg.arc() .innerRadius(function(d) { return d.r }) .outerRadius(function(d) { return d.r - 8 }) @@ -193,8 +193,8 @@ d3.select("#tooltipTitle").text(truncate(d.displayName, 18)); d3.select("#tooltipTotal").text(formatMoney(d.displayTotal)); - d3.select("#tooltipBalance").text(formatMoney(d.displayBalance)); - d3.select("#tooltipAge").text(pluralize('? day', parseInt(Math.max(0, d.displayAge)))); + d3.select("#tooltipBalance").text(formatMoney(d.displayBalance)); + d3.select("#tooltipAge").text(pluralize('? day', parseInt(Math.max(0, d.displayAge)))); if (groupBy == "products" || !d.public_id) { d3.select("#tooltip a").classed("hidden", true); @@ -205,11 +205,11 @@ }); svg.on("click", function() { - visibleTooltip = false; + visibleTooltip = false; d3.select("#tooltip") .classed("hidden", true); }); - + node.append("circle") .attr("fill", "#ffffff") .attr("r", function(d) { return d.r }); @@ -237,15 +237,15 @@ d3.selectAll("path.animate-grow") .transition() .delay(function(d, i) { return (Math.random() * 500) }) - .duration(1000) + .duration(1000) .call(arcTween, 5); d3.selectAll("path.animate-fade") .transition() - .duration(1000) - .style("fill", function(d, i) { + .duration(1000) + .style("fill", function(d, i) { return 'red'; - }); + }); selection.exit().remove(); } @@ -256,7 +256,7 @@ function arcTween(transition, newAngle) { transition.attrTween("d", function(d) { var interpolate = d3.interpolate( 0, 360 * d.displayPercent * Math.PI/180 ); - return function(t) { + return function(t) { d.endAngle = interpolate(t); return arc(d); }; @@ -273,7 +273,7 @@ @else var date = new Date().getTime() - (dayInSeconds * Math.random() * 100); @endif - + return parseInt((new Date().getTime() - date) / dayInSeconds); } @@ -296,4 +296,4 @@ -@stop \ No newline at end of file +@stop diff --git a/resources/views/tasks/edit.blade.php b/resources/views/tasks/edit.blade.php index 2cbf979fc781..4486a5c55d0b 100644 --- a/resources/views/tasks/edit.blade.php +++ b/resources/views/tasks/edit.blade.php @@ -62,7 +62,7 @@ ->label(trans('texts.project')) !!} @endif - {!! Former::textarea('description')->rows(3) !!} + {!! Former::textarea('description')->rows(4) !!} @if ($task) @@ -197,7 +197,7 @@ lang: '{{ $appLanguage }}', lazyInit: true, validateOnBlur: false, - step: 30, + step: {{ env('TASK_TIME_STEP', 15) }}, format: '{{ $datetimeFormat }}', formatDate: '{{ $account->getMomentDateFormat() }}', formatTime: '{{ $account->military_time ? 'H:mm' : 'h:mm A' }}', diff --git a/tests/acceptance/InvoiceCest.php b/tests/acceptance/InvoiceCest.php index 1637726bd54d..dc1794f7404c 100644 --- a/tests/acceptance/InvoiceCest.php +++ b/tests/acceptance/InvoiceCest.php @@ -15,10 +15,11 @@ class InvoiceCest $this->faker = Factory::create(); } - /* + public function createInvoice(AcceptanceTester $I) { $clientEmail = $this->faker->safeEmail; + $itemTaxName = 'TAX_21'; $I->wantTo('create an invoice'); @@ -27,23 +28,37 @@ class InvoiceCest $I->click('Save'); $I->see($clientEmail); + $clientId = $I->grabFromCurrentUrl('~clients/(\d+)~'); + + $I->amOnPage('/tax_rates/create'); + $I->fillField(['name' => 'name'], $itemTaxName); + $I->fillField(['name' => 'rate'], 21); + $I->click('Save'); + $I->see($itemTaxName); + $I->amOnPage('/invoices/create'); $invoiceNumber = $I->grabAttributeFrom('#invoice_number', 'value'); + // check tax and discount rounding $I->selectDropdown($I, $clientEmail, '.client_select .dropdown-toggle'); $I->selectDataPicker($I, '#invoice_date'); $I->selectDataPicker($I, '#due_date', '+ 15 day'); $I->fillField('#po_number', rand(100, 200)); - $I->fillField('#discount', rand(0, 20)); - - $this->fillItems($I); + $I->fillField('#discount', 15); + $I->selectOption('#taxRateSelect1', $itemTaxName . ' 21%'); + $this->fillItem($I, 1, 'Item', 'Notes', 64.50, 3); $I->click('#saveButton'); $I->wait(1); $I->see($invoiceNumber); + $I->see('199.01'); + + $I->amOnPage("/clients/{$clientId}#invoices"); + $I->see('199.01'); } + /* public function editInvoice(AcceptanceTester $I) { $I->wantTo('edit an invoice'); @@ -78,6 +93,7 @@ class InvoiceCest } } */ + public function createRecurringInvoice(AcceptanceTester $I) { $clientEmail = $this->faker->safeEmail; @@ -98,7 +114,7 @@ class InvoiceCest $this->fillItems($I); $I->executeJS("submitAction('email')"); - $I->wait(2); + $I->wait(3); $I->see($clientEmail); $I->click('#lastSent'); @@ -117,7 +133,7 @@ class InvoiceCest $invoiceNumber = $I->grabAttributeFrom('#invoice_number', 'value'); $I->executeJS('submitAction()'); - $I->wait(1); + $I->wait(3); $I->see($invoiceNumber); } @@ -143,18 +159,24 @@ class InvoiceCest private function fillItems(AcceptanceTester $I, $max = 2) { - for ($i = 1; $i <= $max; $i++) { - $row_selector = sprintf('table.invoice-table tbody tr:nth-child(%d) ', $i); + for ($row = 1; $row <= $max; $row++) { - $product_key = $this->faker->text(10); - $description = $this->faker->text(80); - $unit_cost = $this->faker->randomFloat(2, 0, 100); - $quantity = $this->faker->randomDigitNotNull; + $product = $this->faker->text(10); + $description = $this->faker->text(80); + $cost = $this->faker->randomFloat(2, 0, 100); + $quantity = $this->faker->randomDigitNotNull; - $I->fillField($row_selector.'#product_key', $product_key); - $I->fillField($row_selector.'textarea', $description); - $I->fillField($row_selector.'td:nth-child(4) input', $unit_cost); - $I->fillField($row_selector.'td:nth-child(5) input', $quantity); + $this->fillItem($I, $row, $product, $description, $cost, $quantity); } } + + private function fillItem(AcceptanceTester $I, $row, $product, $description, $cost, $quantity) + { + $row_selector = sprintf('table.invoice-table tbody tr:nth-child(%d) ', $row); + + $I->fillField($row_selector.'#product_key', $product); + $I->fillField($row_selector.'textarea', $description); + $I->fillField($row_selector.'td:nth-child(4) input', $cost); + $I->fillField($row_selector.'td:nth-child(5) input', $quantity); + } } diff --git a/tests/acceptance/OnlinePaymentCest.php b/tests/acceptance/OnlinePaymentCest.php index c8510146f42f..7edf0aad1936 100644 --- a/tests/acceptance/OnlinePaymentCest.php +++ b/tests/acceptance/OnlinePaymentCest.php @@ -96,8 +96,7 @@ class OnlinePaymentCest $I->fillField('table.invoice-table tbody tr:nth-child(1) #product_key', $productKey); $I->click('table.invoice-table tbody tr:nth-child(1) .tt-selectable'); $I->selectOption('#auto_bill', 3); - $I->executeJS('model.invoice().is_public(true);'); - $I->executeJS('preparePdfData(\'email\');'); + $I->executeJS('onConfirmEmailClick()'); $I->wait(4); $I->see("$0.00"); diff --git a/tests/acceptance/PaymentCest.php b/tests/acceptance/PaymentCest.php index be87de835412..d5e3c293b007 100644 --- a/tests/acceptance/PaymentCest.php +++ b/tests/acceptance/PaymentCest.php @@ -43,7 +43,7 @@ class PaymentCest $I->fillField('table.invoice-table tbody tr:nth-child(1) #product_key', $productKey); $I->click('table.invoice-table tbody tr:nth-child(1) .tt-selectable'); $I->click('Mark Sent'); - $I->wait(1); + $I->wait(2); $I->see($clientEmail); $I->amOnPage('/payments/create');