1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-18 09:04:35 +01:00

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
contact@invoiceninja.com 2014-03-17 11:32:38 +02:00
commit 7d20c583c7
43 changed files with 1843 additions and 2233 deletions

View File

@ -1,5 +1,5 @@
Attribution Assurance License Attribution Assurance License
Copyright (c) 2013 by Hillel Coren Copyright (c) 2014 by Hillel Coren
http://www.hillelcoren.com http://www.hillelcoren.com
All Rights Reserved All Rights Reserved

View File

@ -65,7 +65,7 @@ return array(
| |
*/ */
'key' => 'a2jfy6HtBEdNtJnRSOC7vIM3UVhxZ1BB', 'key' => '',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -214,7 +214,7 @@ return array(
'Typography' => 'Bootstrapper\Typography', 'Typography' => 'Bootstrapper\Typography',
'Confide' => 'Zizaco\Confide\ConfideFacade', 'Confide' => 'Zizaco\Confide\ConfideFacade',
'Former' => 'Former\Facades\Former', 'Former' => 'Former\Facades\Former',
'Datatable' => 'Chumper\Datatable\Facades\Datatable', 'Datatable' => 'Chumper\Datatable\Facades\DatatableFacade',
'Omnipay' => 'Omnipay\Omnipay', 'Omnipay' => 'Omnipay\Omnipay',
'CreditCard' => 'Omnipay\Common\CreditCard', 'CreditCard' => 'Omnipay\Common\CreditCard',
'Image' => 'Intervention\Image\Facades\Image', 'Image' => 'Intervention\Image\Facades\Image',

View File

@ -111,7 +111,7 @@ return array(
| table, otherwise they will not be able to login after the payment. | table, otherwise they will not be able to login after the payment.
| |
*/ */
'signup_email' => true, 'signup_email' => false,
'signup_confirm' => true, 'signup_confirm' => false,
); );

View File

@ -1,16 +1,19 @@
<?php <?php
use ninja\repositories\AccountRepository; use ninja\repositories\AccountRepository;
use ninja\mailers\UserMailer as Mailer;
class AccountController extends \BaseController { class AccountController extends \BaseController {
protected $accountRepo; protected $accountRepo;
protected $mailer;
public function __construct(AccountRepository $accountRepo) public function __construct(AccountRepository $accountRepo, Mailer $mailer)
{ {
parent::__construct(); parent::__construct();
$this->accountRepo = $accountRepo; $this->accountRepo = $accountRepo;
$this->mailer = $mailer;
} }
public function getStarted() public function getStarted()
@ -60,7 +63,7 @@ class AccountController extends \BaseController {
public function setTrashVisible($entityType, $visible) public function setTrashVisible($entityType, $visible)
{ {
Session::put('show_trash', $visible == 'true'); Session::put('show_trash', $visible == 'true');
return Redirect::to("{$entityType}s"); return Redirect::to("{$entityType}s");
} }
@ -450,7 +453,7 @@ class AccountController extends \BaseController {
if ($validator->fails()) if ($validator->fails())
{ {
return Redirect::to('company/settings') return Redirect::to('company/payments')
->withErrors($validator) ->withErrors($validator)
->withInput(); ->withInput();
} }
@ -571,11 +574,14 @@ class AccountController extends \BaseController {
$user->first_name = trim(Input::get('new_first_name')); $user->first_name = trim(Input::get('new_first_name'));
$user->last_name = trim(Input::get('new_last_name')); $user->last_name = trim(Input::get('new_last_name'));
$user->email = trim(strtolower(Input::get('new_email'))); $user->email = trim(strtolower(Input::get('new_email')));
$user->username = $user->email;
$user->password = trim(Input::get('new_password')); $user->password = trim(Input::get('new_password'));
$user->password_confirmation = trim(Input::get('new_password')); $user->password_confirmation = trim(Input::get('new_password'));
$user->registered = true; $user->registered = true;
$user->amend(); $user->amend();
$this->mailer->sendConfirmation($user);
$activities = Activity::scope()->get(); $activities = Activity::scope()->get();
foreach ($activities as $activity) foreach ($activities as $activity)
{ {

View File

@ -1,8 +1,18 @@
<?php <?php
use ninja\mailers\Mailer;
class HomeController extends BaseController { class HomeController extends BaseController {
protected $layout = 'master'; protected $layout = 'master';
protected $mailer;
public function __construct(Mailer $mailer)
{
parent::__construct();
$this->mailer = $mailer;
}
public function showWelcome() public function showWelcome()
{ {
@ -19,6 +29,29 @@ class HomeController extends BaseController {
return View::make('contact_us'); return View::make('contact_us');
} }
public function showTerms()
{
return View::make('terms');
}
public function doContactUs()
{
$email = Input::get('email');
$name = Input::get('name');
$message = Input::get('message');
$data = [
'name' => $name,
'email' => $email,
'text' => $message
];
$this->mailer->sendTo('contact@invoiceninja.com', 'contact@invoiceninja.com', 'Invoice Ninja Feedback', 'contact', $data);
Session::flash('message', 'Successfully sent message');
return Redirect::to('/contact');
}
public function showComingSoon() public function showComingSoon()
{ {
return View::make('coming_soon'); return View::make('coming_soon');

View File

@ -253,7 +253,9 @@ class InvoiceController extends \BaseController {
$invoice = $input->invoice; $invoice = $input->invoice;
if ($errors = $this->invoiceRepo->getErrors($invoice)) if ($errors = $this->invoiceRepo->getErrors($invoice))
{ {
Session::flash('error', 'Please make sure to select a client and correct any errors');
return Redirect::to('invoices/create') return Redirect::to('invoices/create')
->withInput()->withErrors($errors); ->withInput()->withErrors($errors);
} }

View File

@ -21,6 +21,7 @@ class AddSupportForInvoiceDesigns extends Migration {
DB::table('invoice_designs')->insert(['name' => 'Clean']); DB::table('invoice_designs')->insert(['name' => 'Clean']);
DB::table('invoice_designs')->insert(['name' => 'Bold']); DB::table('invoice_designs')->insert(['name' => 'Bold']);
DB::table('invoice_designs')->insert(['name' => 'Modern']); DB::table('invoice_designs')->insert(['name' => 'Modern']);
DB::table('invoice_designs')->insert(['name' => 'Plain']);
Schema::table('invoices', function($table) Schema::table('invoices', function($table)
{ {

View File

@ -27,7 +27,8 @@ class Utils
'url' => Input::get('url', Request::url()), 'url' => Input::get('url', Request::url()),
'user_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '', 'user_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
'ip' => Request::getClientIp(), 'ip' => Request::getClientIp(),
'count' => Session::get('error_count', 0) 'count' => Session::get('error_count', 0),
'input' => Input::all()
]; ];
Log::error('\n'.$error, $data); Log::error('\n'.$error, $data);

View File

@ -54,10 +54,10 @@ class Invoice extends EntityModel
public function hidePrivateFields() public function hidePrivateFields()
{ {
$this->setVisible(['invoice_number', 'discount', 'po_number', 'invoice_date', 'due_date', 'terms', 'public_notes', 'amount', 'balance', 'invoice_items', 'client', 'tax_name', 'tax_rate', 'account']); $this->setVisible(['invoice_number', 'discount', 'po_number', 'invoice_date', 'due_date', 'terms', 'public_notes', 'amount', 'balance', 'invoice_items', 'client', 'tax_name', 'tax_rate', 'account', 'invoice_design_id']);
$this->client->setVisible(['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'work_phone', 'payment_terms', 'contacts', 'country', 'currency_id' ]); $this->client->setVisible(['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'work_phone', 'payment_terms', 'contacts', 'country', 'currency_id' ]);
$this->account->setVisible(['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country', 'currency_id']); $this->account->setVisible(['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'work_phone', 'work_email', 'country', 'currency_id']);
foreach ($this->invoice_items as $invoiceItem) foreach ($this->invoice_items as $invoiceItem)
{ {

View File

@ -2,7 +2,7 @@
use Mail; use Mail;
abstract class Mailer { class Mailer {
public function sendTo($toEmail, $fromEmail, $subject, $view, $data = []) public function sendTo($toEmail, $fromEmail, $subject, $view, $data = [])
{ {

View File

@ -8,6 +8,23 @@ use Utils;
class UserMailer extends Mailer { class UserMailer extends Mailer {
public function sendConfirmation(User $user)
{
if (!$user->email)
{
return;
}
$view = 'confirm';
$subject = 'Invoice Ninja Account Confirmation';
$data = [
'user' => $user
];
$this->sendTo($user->email, CONTACT_EMAIL, $subject, $view, $data);
}
public function sendNotification(User $user, Invoice $invoice, $type, Payment $payment = null) public function sendNotification(User $user, Invoice $invoice, $type, Payment $payment = null)
{ {
if (!$user->email) if (!$user->email)

View File

@ -93,7 +93,7 @@ class InvoiceRepository
$invoice = (array) $input; $invoice = (array) $input;
$invoiceId = isset($invoice['public_id']) && $invoice['public_id'] ? Invoice::getPrivateId($invoice['public_id']) : null; $invoiceId = isset($invoice['public_id']) && $invoice['public_id'] ? Invoice::getPrivateId($invoice['public_id']) : null;
$rules = ['invoice_number' => 'unique:invoices,invoice_number,' . $invoiceId . ',id,account_id,' . \Auth::user()->account_id]; $rules = ['invoice_number' => 'required|unique:invoices,invoice_number,' . $invoiceId . ',id,account_id,' . \Auth::user()->account_id];
if ($invoice['is_recurring'] && $invoice['start_date'] && $invoice['end_date']) if ($invoice['is_recurring'] && $invoice['start_date'] && $invoice['end_date'])
{ {
@ -127,7 +127,7 @@ class InvoiceRepository
$invoice->invoice_date = Utils::toSqlDate($data['invoice_date']); $invoice->invoice_date = Utils::toSqlDate($data['invoice_date']);
$invoice->due_date = Utils::toSqlDate($data['due_date']); $invoice->due_date = Utils::toSqlDate($data['due_date']);
$invoice->is_recurring = $data['is_recurring']; $invoice->is_recurring = $data['is_recurring'] ? true : false;
$invoice->frequency_id = $data['frequency_id'] ? $data['frequency_id'] : 0; $invoice->frequency_id = $data['frequency_id'] ? $data['frequency_id'] : 0;
$invoice->start_date = Utils::toSqlDate($data['start_date']); $invoice->start_date = Utils::toSqlDate($data['start_date']);
$invoice->end_date = Utils::toSqlDate($data['end_date']); $invoice->end_date = Utils::toSqlDate($data['end_date']);

View File

@ -56,8 +56,10 @@ Route::get('/send_emails', function() {
Route::get('/', 'HomeController@showWelcome'); Route::get('/', 'HomeController@showWelcome');
Route::get('/rocksteady', 'HomeController@showWelcome'); Route::get('/rocksteady', 'HomeController@showWelcome');
Route::get('/about_us', 'HomeController@showAboutUs'); Route::get('/about', 'HomeController@showAboutUs');
Route::get('/contact_us', 'HomeController@showContactUs'); Route::get('/terms', 'HomeController@showTerms');
Route::get('/contact', 'HomeController@showContactUs');
Route::post('/contact', 'HomeController@doContactUs');
Route::get('log_error', 'HomeController@logError'); Route::get('log_error', 'HomeController@logError');
Route::post('get_started', 'AccountController@getStarted'); Route::post('get_started', 'AccountController@getStarted');

View File

@ -9,184 +9,132 @@
@stop @stop
@section('body') @section('body')
{{ Form::open(array('url' => 'get_started', 'id' => 'startForm')) }}
{{ Form::hidden('guest_key') }}
{{ Form::close() }}
<script> <script>
$(document).ready(function () {
var $window = $(window); $(document).ready(function () {
$('section[data-type="background"]').each(function () { if (isStorageSupported()) {
var $bgobj = $(this); $('[name="guest_key"]').val(localStorage.getItem('guest_key'));
$(window).scroll(function () { }
var yPos = -($window.scrollTop() / $bgobj.data('speed')); });
var coords = '50% ' + yPos + 'px';
$bgobj.css({ backgroundPosition: coords }); function isStorageSupported() {
}); try {
}); return 'localStorage' in window && window['localStorage'] !== null;
}); } catch (e) {
</script> return false;
<div class="navbar" style="margin-bottom:0px"> }
<div class="container"> }
<div class="navbar-inner">
<a class="brand" href="#"><img src= function getStarted() {
"images/invoiceninja-logo.png"></a> $('#startForm').submit();
<ul class="navbar-list"> }
<li>{{ link_to('login', Auth::check() ? 'Continue' : 'Login' ) }}</li>
</ul> </script>
<div class="navbar" style="margin-bottom:0px">
<div class="container">
<div class="navbar-inner">
<a class="brand" href="#"><img src=
"images/invoiceninja-logo.png"></a>
<ul class="navbar-list">
<li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<section class="hero3" data-speed="2" data-type="background"> <section class="hero3" data-speed="2" data-type="background">
<div class="container"> <div class="container">
<div class="caption"> <div class="caption">
<h1>WHY INVOICE NINJA? <h1>WHY INVOICE NINJA?
</h1> </h1>
</div> </div>
</div> </div>
</section> </section>
<section class="about center"> <section class="about center">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-8 col-md-offset-2"> <div class="col-md-8 col-md-offset-2">
<h2>This is a really nice headline about the app.</h2> <h2>Open Source Platform</h2>
<p>Donec id elit non mi porta gravida at eget metus. <p>Free yourself from online invoicing platforms with high monthly fees and limited functionality. Being open source allows us fast app development, security audits by the open-course community, and we can keep it <span style="color:#2299c0"><strong>FREE!</strong></span></p>
Fusce dapibus, tellus ac cursus commodo, tortor mauris </div>
condimentum nibh, ut fermentum massa justo sit amet </div>
risus. Etiam porta sem malesuada magna mollis euismod. </div>
Donec sed odio dui.</p> </section>
</div>
</div>
</div>
</section>
<section class="about white-bg">
<div class="container">
<div class="row">
<div class="col-md-5">
<div class="screendump">
</div>
</div>
<div class="col-md-7">
<h2>This is a really nice headline about the app.</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
</div>
</div>
</section>
<section class="about">
<div class="container">
<div class="row">
<div class="col-md-7">
<h2>This is a really nice headline about the app.</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
<div class="col-md-5">
<div class="screendump">
</div>
</div>
</div>
</div>
</section>
<section class="about white-bg">
<div class="container">
<div class="row">
<div class="col-md-5">
<div class="screendump">
</div>
</div>
<div class="col-md-7">
<h2>This is a really nice headline about the app.</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
</div>
</div>
</section>
<section class="about">
<div class="container">
<div class="row">
<div class="col-md-7">
<h2>This is a really nice headline about the app.</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
<div class="col-md-5">
<div class="screendump">
</div>
</div>
</div>
</div>
</section>
<section class="about center white-bg">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>This is a really nice headline about the app.</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
</div>
</div>
</section>
<section class="upper-footer">
<div class="container">
<div class="row">
<div class="col-md-3 center-block">
<a href="#">
<div class="cta">
<h2 onclick="getStarted()">Invoice Now <span>+</span></h2>
</div>
</a>
</div>
</div>
</div>
</section>
<footer> <section class="about white-bg">
<div class="navbar" style="margin-bottom:0px"> <div class="container">
<div class="container"> <div class="row">
<div class="social"> <div class="col-md-5">
<div class="screendump">
<img src="images/about1.jpg">
</div>
</div>
<div class="col-md-7">
<h2>Live PDF Creation</h2>
<p><strong>Look professional from day #1.</strong> Select one of our beautiful invoice templates to suit your company identity, switch between designs in real time to preview invoices & email them to clients with one click. The live preview PDF function was designed for an efficient and hassle-free experience, and its awesome!
</p>
</div>
</div>
</div>
</section>
<section class="about">
<div class="container">
<div class="row">
<div class="col-md-7">
<h2>Online Payments</h2>
<p><strong>Authorize.net, Beanstream, PayPal?</strong> InvoiceNinja supports the most popular online payment gateways! If you need help integrating a third party gateway we dont yet support, please contact us! Were happy to help! If you need assistance of want to learn more about online payment solutions, contact us!</p>
</div>
<div class="col-md-5">
<div class="screendump">
<img src="images/about2.jpg">
</div>
</div>
</div>
</div>
</section>
<!--
<section class="about center white-bg">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Info about the company/story</h2>
<p>Donec id elit non mi porta gravida at eget metus.
Fusce dapibus, tellus ac cursus commodo, tortor mauris
condimentum nibh, ut fermentum massa justo sit amet
risus. Etiam porta sem malesuada magna mollis euismod.
Donec sed odio dui.</p>
</div>
</div>
</div>
</section>
-->
<section class="upper-footer">
<div class="container">
<div class="row">
<div class="col-md-3 center-block">
<a href="#">
<div class="cta">
<h2 onclick="getStarted()">Invoice Now <span>+</span></h2>
</div>
</a>
</div>
</div>
</div>
</section>
<footer>
<div class="navbar" style="margin-bottom:0px">
<div class="container">
<div class="social">
<!-- <!--
<a href="http://twitter.com/eas_id"><span class= <a href="http://twitter.com/eas_id"><span class=
"socicon">c</span></a> "socicon">c</span></a>
@ -201,7 +149,9 @@
<div class="navbar-inner"> <div class="navbar-inner">
<ul class="navbar-list"> <ul class="navbar-list">
<li>{{ link_to('login', Auth::check() ? 'Continue' : 'Login' ) }}</li> <li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul> </ul>
<!-- <!--
@ -217,4 +167,4 @@
</div> </div>
</footer><script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script> </footer><script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script>
@stop @stop

View File

@ -1,6 +1,7 @@
@extends('master') @extends('master')
@section('head') @section('head')
<link href="{{ asset('vendor/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('css/bootstrap.splash.css') }}" rel="stylesheet" type="text/css"/> <link href="{{ asset('css/bootstrap.splash.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('css/splash.css') }}" rel="stylesheet" type="text/css"/> <link href="{{ asset('css/splash.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('images/apple-touch-icon-114x114-precomposed.png') }}" rel="apple-touch-icon-precomposed" sizes="114x114"> <link href="{{ asset('images/apple-touch-icon-114x114-precomposed.png') }}" rel="apple-touch-icon-precomposed" sizes="114x114">
@ -10,18 +11,206 @@
@section('body') @section('body')
{{ Form::open(array('url' => 'get_started', 'id' => 'startForm')) }}
{{ Form::hidden('guest_key') }}
{{ Form::close() }}
<script>
$(document).ready(function () {
if (isStorageSupported()) {
$('[name="guest_key"]').val(localStorage.getItem('guest_key'));
}
$("#feedbackSubmit").click(function() {
//clear any errors
contactForm.clearErrors();
//do a little client-side validation -- check that each field has a value and e-mail field is in proper format
var hasErrors = false;
$('.feedbackForm input,textarea').each(function() {
if (!$(this).val()) {
hasErrors = true;
contactForm.addError($(this));
}
});
var $email = $('#email');
if (!contactForm.isValidEmail($email.val())) {
hasErrors = true;
contactForm.addError($email);
}
//if there are any errors return without sending e-mail
if (hasErrors) {
return false;
}
});
});
//namespace as not to pollute global namespace
var contactForm = {
isValidEmail: function (email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
},
clearErrors: function () {
$('#emailAlert').remove();
$('.feedbackForm .help-block').hide();
$('.feedbackForm .form-group').removeClass('has-error');
},
addError: function ($input) {
$input.siblings('.help-block').show();
$input.parent('.form-group').addClass('has-error');
},
addAjaxMessage: function(msg, isError) {
$("#feedbackSubmit").after('<div id="emailAlert" class="alert alert-' + (isError ? 'danger' : 'success') + '" style="margin-top: 5px;">' + $('<div/>').text(msg).html() + '</div>');
}
};
function isStorageSupported() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
function getStarted() {
$('#startForm').submit();
}
</script>
<div class="navbar" style="margin-bottom:0px"> <div class="navbar" style="margin-bottom:0px">
<div class="container"> <div class="container">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="#"><img src= <a class="brand" href="/"><img src=
"images/invoiceninja-logo.png"></a> "images/invoiceninja-logo.png"></a>
<ul class="navbar-list"> <ul class="navbar-list">
<li>{{ link_to('login', Auth::check() ? 'Continue' : 'Login' ) }}</li> <li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<section class="hero4" data-speed="2" data-type="background">
<div class="container">
<div class="caption">
<h1>Contact us
</h1>
</div>
</div>
</section>
<section class="about contact">
<div class="container">
<div id="contact_form" class="row">
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
@if (Session::has('error'))
<div class="alert alert-danger">{{ Session::get('error') }}</div>
@endif
<div class="row">
<div class="col-md-7">
<h2>Have a question or just want to say hi?</h2>
<p>Fill in the form below and we'll get back to you as soon as possible (within 24 hours). Hope to hear from you.</p>
{{ Former::open('contact')->addClass('feedbackForm') }}
<div class="form-group">
<input type="text" class="form-control" id="name" name="name" placeholder="Name">
<span class="help-block" style="display: none;">Please enter your name.</span>
</div>
<div class="form-group">
<input type="email" class="form-control" id="email" name="email" placeholder="Email Address">
<span class="help-block" style="display: none;">Please enter a valid e-mail address.</span>
</div>
<div class="form-group">
<textarea rows="10" cols="100" class="form-control" id="message" name="message" placeholder="Message"></textarea>
<span class="help-block" style="display: none;">Please enter a message.</span>
</div>
<div class="row">
<div class="col-md-5">
<button type="submit" id="feedbackSubmit" class="btn btn-primary btn-lg">Send Message <span class="glyphicon glyphicon-send"></span></button>
</div>
</div>
{{ Former::close() }}
</div>
<div class="col-md-4 col-md-offset-1 address">
<h2>Other ways to reach us</h2>
<p><span class="glyphicon glyphicon-send"></span><a href="mailto:contact@invoiceninja.com">contact@invoiceninja.com</a></p>
<p><span class="glyphicon glyphicon-earphone"></span>(800) 763-1948</p>
<p><span class="github"></span><div style="padding-top:10px"> &nbsp;&nbsp;<a href="https://github.com/hillelcoren/invoice-ninja" target="_blank">GitHub Project</a></div></p>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="upper-footer white-bg">
<div class="container">
<div class="row">
<div class="col-md-3 center-block">
<a href="#">
<div class="cta">
<h2 onclick="getStarted()">Invoice Now <span>+</span></h2>
</div>
</a>
</div>
</div>
</div>
</section>
<footer>
<div class="navbar" style="margin-bottom:0px">
<div class="container">
<div class="social">
<!--
<a href="http://twitter.com/eas_id"><span class=
"socicon">c</span></a>
-->
<a href=
"http://facebook.com/invoiceninja" target="_blank"><span class=
"socicon">b</span></a> <a href=
"http://twitter.com/invoiceninja" target="_blank"><span class=
"socicon">a</span></a>
<p>Copyright © 2014 InvoiceNinja. All rights reserved.</p>
</div>
<div class="navbar-inner">
<ul class="navbar-list">
<li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul>
<!--
<ul class="navbar-list">
<li><a href="#">For developers</a></li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Terms &amp; Conditions</a></li>
<li><a href="#">Our Blog</a></li>
</ul>
-->
</div>
</div>
</div>
</footer><script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script>
@stop @stop

View File

@ -0,0 +1,6 @@
{{ Lang::get('confide::confide.email.account_confirmation.subject') }}
{{ Lang::get('confide::confide.email.account_confirmation.body') }}
{{{ URL::to("user/confirm/{$user->confirmation_code}") }}}
{{ Lang::get('confide::confide.email.account_confirmation.farewell') }}

View File

@ -0,0 +1,3 @@
Name: {{ $name }}<br/>
Email: {{ $email }}<p/>
Message: {{ $text }}

View File

@ -0,0 +1,4 @@
Name: {{ $name }}
Email: {{ $email }}
Message: {{ $text }}

View File

@ -12,7 +12,7 @@
To view your client invoice click the link below: <br/> To view your client invoice click the link below: <br/>
{{ $invoiceLink }} <p/> {{ $invoiceLink }} <p/>
To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/settings">click here</a>. To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/notifications">click here</a>.
</body> </body>
</html> </html>

View File

@ -6,4 +6,4 @@ A payment of {{ $paymentAmount }} was made by client {{ $clientName }} towards i
To view your client invoice click the link below: To view your client invoice click the link below:
{{ $invoiceLink }} {{ $invoiceLink }}
To adjust your email notification settings please visit http://www.invoiceninja.com/company/settings To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications

View File

@ -9,7 +9,7 @@
The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.<p/> The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.<p/>
To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/settings">click here</a>.<p/> To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/notifications">click here</a>.<p/>
</body> </body>
</html> </html>

View File

@ -2,4 +2,4 @@ Dear {{ $userName }},
The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}. The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.
To adjust your email notification settings visit this link http://www.invoiceninja.com/company/settings To adjust your email notification settings visit this link http://www.invoiceninja.com/company/notifications

View File

@ -9,7 +9,7 @@
The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.<p/> The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.<p/>
To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/settings">click here</a>.<p/> To adjust your email notification settings please <a href="http://www.invoiceninja.com/company/notifications">click here</a>.<p/>
</body> </body>
</html> </html>

View File

@ -2,4 +2,4 @@ Dear {{ $userName }},
The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount }}. The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount }}.
To adjust your email notification settings visit this link http://www.invoiceninja.com/company/settings To adjust your email notification settings visit this link http://www.invoiceninja.com/company/notifications

View File

@ -217,7 +217,7 @@
<h4 class="modal-title" id="myModalLabel">Sign up</h4> <h4 class="modal-title" id="myModalLabel">Sign up</h4>
</div> </div>
<div style="background-color: #fff; padding-right:20px" id="signUpDiv" onkeyup="validateSignUp()" onkeydown="checkForEnter(event)"> <div style="background-color: #fff; padding-right:20px" id="signUpDiv" onkeyup="validateSignUp()" onclick="validateSignUp()" onkeydown="checkForEnter(event)">
<br/> <br/>
{{ Former::open('signup/submit')->addClass('signUpForm') }} {{ Former::open('signup/submit')->addClass('signUpForm') }}
@ -232,11 +232,16 @@
{{ Former::text('new_first_name')->label('First name') }} {{ Former::text('new_first_name')->label('First name') }}
{{ Former::text('new_last_name')->label('Last name') }} {{ Former::text('new_last_name')->label('Last name') }}
{{ Former::text('new_email')->label('Email') }} {{ Former::text('new_email')->label('Email') }}
{{ Former::password('new_password')->label('Password') }} {{ Former::password('new_password')->label('Password') }}
{{ Former::checkbox('terms_checkbox')->label(' ')->text('I agree to the Invoice Ninja <a href="'.URL::to('terms').'" target="_blank">Terms of Service</a>') }}
{{ Former::close() }} {{ Former::close() }}
<center><div id="errorTaken" style="display:none">&nbsp;<br/>The email address is already regiestered</div></center> <center><div id="errorTaken" style="display:none">&nbsp;<br/>The email address is already regiestered</div></center>
<br/> <br/>
</div> </div>
<div style="padding-left:40px;padding-right:40px;display:none;min-height:130px" id="working"> <div style="padding-left:40px;padding-right:40px;display:none;min-height:130px" id="working">
@ -255,8 +260,8 @@
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px"> <div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
<button type="button" class="btn btn-default" data-dismiss="modal">Close <i class="glyphicon glyphicon-remove-circle"></i></button> <button type="button" class="btn btn-default" data-dismiss="modal">Close <i class="glyphicon glyphicon-remove-circle"></i></button>
<button type="button" class="btn btn-primary" id="saveSignUpButton" onclick="validateServerSignUp()">Save <i class="glyphicon glyphicon-floppy-disk"></i></button> <button type="button" class="btn btn-primary" id="saveSignUpButton" onclick="validateServerSignUp()" disabled>Save <i class="glyphicon glyphicon-floppy-disk"></i></button>
</div> </div>
</div> </div>
</div> </div>
@ -285,7 +290,11 @@
</div> </div>
@endif @endif
@if ($_SERVER['SERVER_NAME'] != 'www.invoiceninja.com')
<div class="container">Powered by <a href="https://www.invoiceninja.com/" target="_blank">InvoiceNinja.com</a></div>
@endif
<p>&nbsp;</p>
</body> </body>
@ -319,6 +328,13 @@
} }
} }
}); });
if (!$('#terms_checkbox').is(':checked')) {
isFormValid = false;
}
$('#saveSignUpButton').prop('disabled', !isFormValid);
return isFormValid; return isFormValid;
} }

View File

@ -30,7 +30,7 @@
<div class="form-group"> <div class="form-group">
<label for="client" class="control-label col-lg-4 col-sm-4">Client</label> <label for="client" class="control-label col-lg-4 col-sm-4">Client</label>
<div class="col-lg-8 col-sm-8" style="padding-top: 7px"> <div class="col-lg-8 col-sm-8" style="padding-top: 7px">
<a id="editClientLink" class="pointer" data-bind="click: $root.showClientForm">{{ $client->getDisplayName() }}</a> <a id="editClientLink" class="pointer" data-bind="click: $root.showClientForm, text: getClientDisplayName(ko.toJS(client()))"></a>
</div> </div>
</div> </div>
<div style="display:none"> <div style="display:none">
@ -63,16 +63,16 @@
<div class="col-md-4" id="col_2"> <div class="col-md-4" id="col_2">
<div data-bind="visible: !is_recurring()"> <div data-bind="visible: !is_recurring()">
{{ Former::text('invoice_date')->data_bind("datePicker: invoice_date, valueUpdate: 'afterkeydown'") {{ Former::text('invoice_date')->data_bind("datePicker: invoice_date, valueUpdate: 'afterkeydown'")
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar"></i>') }} ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar" onclick="toggleDatePicker(\'invoice_date\')"></i>') }}
{{ Former::text('due_date')->data_bind("datePicker: due_date, valueUpdate: 'afterkeydown'") {{ Former::text('due_date')->data_bind("datePicker: due_date, valueUpdate: 'afterkeydown'")
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar"></i>') }} ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar" onclick="toggleDatePicker(\'due_date\')"></i>') }}
</div> </div>
<div data-bind="visible: is_recurring" style="display: none"> <div data-bind="visible: is_recurring" style="display: none">
{{ Former::select('frequency_id')->label('How often')->options($frequencies)->data_bind("value: frequency_id") }} {{ Former::select('frequency_id')->label('How often')->options($frequencies)->data_bind("value: frequency_id") }}
{{ Former::text('start_date')->data_bind("datePicker: start_date, valueUpdate: 'afterkeydown'") {{ Former::text('start_date')->data_bind("datePicker: start_date, valueUpdate: 'afterkeydown'")
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar"></i>') }} ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar" onclick="toggleDatePicker(\'start_date\')"></i>') }}
{{ Former::text('end_date')->data_bind("datePicker: end_date, valueUpdate: 'afterkeydown'") {{ Former::text('end_date')->data_bind("datePicker: end_date, valueUpdate: 'afterkeydown'")
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar"></i>') }} ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar" onclick="toggleDatePicker(\'end_date\')"></i>') }}
</div> </div>
@if ($invoice && $invoice->recurring_invoice_id) @if ($invoice && $invoice->recurring_invoice_id)
<div class="pull-right" style="padding-top: 6px"> <div class="pull-right" style="padding-top: 6px">
@ -138,7 +138,7 @@
<td> <td>
<input onkeyup="onItemChange()" data-bind="value: prettyQty, valueUpdate: 'afterkeydown'" style="text-align: right" class="form-control"//> <input onkeyup="onItemChange()" data-bind="value: prettyQty, valueUpdate: 'afterkeydown'" style="text-align: right" class="form-control"//>
</td> </td>
<td style="display:none;vertical-align:middle" data-bind="visible: $root.invoice_item_taxes.show"> <td style="display:none;" data-bind="visible: $root.invoice_item_taxes.show">
<select class="form-control" style="width:100%" data-bind="value: tax, options: $root.tax_rates, optionsText: 'displayName'"></select> <select class="form-control" style="width:100%" data-bind="value: tax, options: $root.tax_rates, optionsText: 'displayName'"></select>
</td> </td>
<td style="text-align:right;padding-top:9px !important"> <td style="text-align:right;padding-top:9px !important">
@ -176,9 +176,9 @@
<tr style="display:none" data-bind="visible: $root.invoice_taxes.show"> <tr style="display:none" data-bind="visible: $root.invoice_taxes.show">
<td class="hide-border" colspan="3"/> <td class="hide-border" colspan="3"/>
<td style="display:none" class="hide-border" data-bind="visible: $root.invoice_item_taxes.show"/> <td style="display:none" class="hide-border" data-bind="visible: $root.invoice_item_taxes.show"/>
<td style="vertical-align: middle">Tax</td> <td>Tax</td>
<td style="min-width:120px"><select class="form-control" style="width:100%" data-bind="value: tax, options: $root.tax_rates, optionsText: 'displayName'"></select></td> <td style="min-width:120px"><select class="form-control" style="width:100%" data-bind="value: tax, options: $root.tax_rates, optionsText: 'displayName'"></select></td>
<td style="vertical-align: middle; text-align: right"><span data-bind="text: totals.taxAmount"/></td> <td style="text-align: right"><span data-bind="text: totals.taxAmount"/></td>
</tr> </tr>
<tr> <tr>
<td class="hide-border" colspan="3"/> <td class="hide-border" colspan="3"/>
@ -217,9 +217,9 @@
@if (!$invoice || (!$invoice->trashed() && !$invoice->client->trashed())) @if (!$invoice || (!$invoice->trashed() && !$invoice->client->trashed()))
@if ($invoice) @if ($invoice)
<div id="primaryActions" style="text-align:left" data-bind="css: $root.enable.save" class="btn-group"> <div id="primaryActions" style="text-align:left" class="btn-group">
<button class="btn-success btn" type="button" data-bind="css: $root.enable.save">Save Invoice</button> <button class="btn-success btn" type="button">Save Invoice</button>
<button class="btn-success btn dropdown-toggle" type="button" data-toggle="dropdown" data-bind="css: $root.enable.save"> <button class="btn-success btn dropdown-toggle" type="button" data-toggle="dropdown">
<span class="caret"></span> <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
@ -255,10 +255,10 @@
) )
, array('id'=>'primaryActions', 'style'=>'text-align:left', 'data-bind'=>'css: $root.enable.save'))->split(); --}} , array('id'=>'primaryActions', 'style'=>'text-align:left', 'data-bind'=>'css: $root.enable.save'))->split(); --}}
@else @else
{{ Button::success_submit('Save Invoice', array('data-bind'=>'css: $root.enable.save', 'id' => 'saveButton')) }} {{ Button::success_submit('Save Invoice', array('id' => 'saveButton')) }}
@endif @endif
{{ Button::normal('Email Invoice', array('id' => 'email_button', 'onclick' => 'onEmailClick()', 'data-bind' => 'css: $root.enable.email'))->append_with_icon('send'); }} {{ Button::normal('Email Invoice', array('id' => 'email_button', 'onclick' => 'onEmailClick()'))->append_with_icon('send'); }}
@if ($invoice) @if ($invoice)
{{ Button::primary('Enter Payment', array('onclick' => 'onPaymentClick()'))->append_with_icon('usd'); }} {{ Button::primary('Enter Payment', array('onclick' => 'onPaymentClick()'))->append_with_icon('usd'); }}
@ -416,9 +416,16 @@
<div style="background-color: #fff; padding-left: 16px; padding-right: 16px"> <div style="background-color: #fff; padding-left: 16px; padding-right: 16px">
&nbsp; &nbsp;
<p>Recurring invoices are automatically sent.</p> <p>Automatically send clients the same invoices weekly, bi-monthly, monthly, quarterly or annually. </p>
<p>Use :MONTH, :QUARTER or :YEAR for dynamic dates. </p>
<p>Basic math works as well. ie, :MONTH-1. </p> <p>Use :MONTH, :QUARTER or :YEAR for dynamic dates. Basic math works as well, for example :MONTH-1.</p>
<p>Examples of dynamic invoice variables:</p>
<ul>
<li>"Gym membership for the month of :MONTH" => "Gym membership for the month of July"</li>
<li>":YEAR+1 yearly subscription" => "2014 Yearly Subscription"</li>
<li>"Retainer payment for :QUARTER+1" => "Retainer payment for Q2"</li>
</ul>
&nbsp; &nbsp;
</div> </div>
@ -579,6 +586,10 @@
return invoice; return invoice;
} }
function toggleDatePicker(field) {
$('#'+field).datepicker('show');
}
/* /*
function refreshPDF() { function refreshPDF() {
setTimeout(function() { setTimeout(function() {
@ -589,13 +600,15 @@
var isRefreshing = false; var isRefreshing = false;
var needsRefresh = false; var needsRefresh = false;
function refreshPDF() { function getPDFString() {
var invoice = createInvoiceModel(); var invoice = createInvoiceModel();
var doc = generatePDF(invoice); var doc = generatePDF(invoice);
if (!doc) return; if (!doc) return;
var string = doc.output('datauristring'); return doc.output('datauristring');
}
function refreshPDF() {
if (isFirefox || (isChrome && !isChromium)) { if (isFirefox || (isChrome && !isChromium)) {
var string = getPDFString();
$('#theFrame').attr('src', string).show(); $('#theFrame').attr('src', string).show();
} else { } else {
if (isRefreshing) { if (isRefreshing) {
@ -603,7 +616,7 @@
return; return;
} }
isRefreshing = true; isRefreshing = true;
var string = getPDFString();
var pdfAsArray = convertDataURIToBinary(string); var pdfAsArray = convertDataURIToBinary(string);
PDFJS.getDocument(pdfAsArray).then(function getPdfHelloWorld(pdf) { PDFJS.getDocument(pdfAsArray).then(function getPdfHelloWorld(pdf) {
@ -650,6 +663,39 @@
$('.main_form').submit(); $('.main_form').submit();
} }
function isSaveValid() {
var isValid = false;
for (var i=0; i<self.invoice().client().contacts().length; i++) {
var contact = self.invoice().client().contacts()[i];
if (isValidEmailAddress(contact.email())) {
isValid = true;
} else {
isValid = false;
break;
}
}
return isValid;
}
function isEmailValid() {
var isValid = false;
var sendTo = false;
var client = self.invoice().client();
for (var i=0; i<client.contacts().length; i++) {
var contact = client.contacts()[i];
if (isValidEmailAddress(contact.email())) {
isValid = true;
if (contact.send_invoice() || client.contacts().length == 1) {
sendTo = true;
}
} else {
isValid = false;
break;
}
}
return (isValid && sendTo)
}
function onCloneClick() { function onCloneClick() {
$('#action').val('clone'); $('#action').val('clone');
$('.main_form').submit(); $('.main_form').submit();
@ -684,9 +730,6 @@
} }
event.preventDefault(); event.preventDefault();
if (model.enable.save() != 'enabled') {
return;
}
$('.main_form').submit(); $('.main_form').submit();
return false; return false;
@ -893,40 +936,6 @@
$('#invoice_number').focus(); $('#invoice_number').focus();
} }
self.enable = {};
self.enable.save = ko.computed(function() {
var isValid = false;
for (var i=0; i<self.invoice().client().contacts().length; i++) {
var contact = self.invoice().client().contacts()[i];
if (isValidEmailAddress(contact.email())) {
isValid = true;
} else {
isValid = false;
break;
}
}
return isValid ? "enabled" : "disabled";
});
self.enable.email = ko.computed(function() {
var isValid = false;
var sendTo = false;
var client = self.invoice().client();
for (var i=0; i<client.contacts().length; i++) {
var contact = client.contacts()[i];
if (isValidEmailAddress(contact.email())) {
isValid = true;
if (contact.send_invoice() || client.contacts().length == 1) {
sendTo = true;
}
} else {
isValid = false;
break;
}
}
return isValid && sendTo ? "enabled" : "disabled";
});
self.clientLinkText = ko.computed(function() { self.clientLinkText = ko.computed(function() {
if (self.invoice().client().public_id()) if (self.invoice().client().public_id())
{ {
@ -954,7 +963,7 @@
self.discount = ko.observable(''); self.discount = ko.observable('');
self.frequency_id = ko.observable(''); self.frequency_id = ko.observable('');
//self.currency_id = ko.observable({{ $client && $client->currency_id ? $client->currency_id : Session::get(SESSION_CURRENCY) }}); //self.currency_id = ko.observable({{ $client && $client->currency_id ? $client->currency_id : Session::get(SESSION_CURRENCY) }});
self.terms = ko.observable(wordWrapText('{{ str_replace(["\r\n","\r","\n"], '\n', $account->invoice_terms) }}', 340)); self.terms = ko.observable(wordWrapText('{{ str_replace(["\r\n","\r","\n"], '\n', $account->invoice_terms) }}', 300));
self.set_default_terms = ko.observable(false); self.set_default_terms = ko.observable(false);
self.public_notes = ko.observable(''); self.public_notes = ko.observable('');
self.po_number = ko.observable(''); self.po_number = ko.observable('');
@ -1027,7 +1036,7 @@
return this.terms(); return this.terms();
}, },
write: function(value) { write: function(value) {
value = wordWrapText(value, 340); value = wordWrapText(value, 300);
self.terms(value); self.terms(value);
$('#terms').height(value.split('\n').length * 36); $('#terms').height(value.split('\n').length * 36);
}, },
@ -1041,7 +1050,7 @@
return this.public_notes(); return this.public_notes();
}, },
write: function(value) { write: function(value) {
value = wordWrapText(value, 340); value = wordWrapText(value, 300);
self.public_notes(value); self.public_notes(value);
$('#public_notes').height(value.split('\n').length * 36); $('#public_notes').height(value.split('\n').length * 36);
}, },
@ -1337,7 +1346,7 @@
return this.notes(); return this.notes();
}, },
write: function(value) { write: function(value) {
value = wordWrapText(value); value = wordWrapText(value, 235);
self.notes(value); self.notes(value);
onItemChange(); onItemChange();
}, },

View File

@ -45,16 +45,22 @@
<body> <body>
@if (App::environment() == ENV_PRODUCTION) @if (App::environment() == ENV_PRODUCTION)
<script> <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46031341-1'); ga('create', 'UA-46031341-1');
ga('send', 'pageview'); ga('send', 'pageview');
</script> </script>
@else
<style>
.navbar {
background-color: #006600 !important;
}
</style>
@endif @endif
@yield('body') @yield('body')

View File

@ -16,16 +16,6 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
var $window = $(window);
$('section[data-type="background"]').each(function () {
var $bgobj = $(this);
$(window).scroll(function () {
var yPos = -($window.scrollTop() / $bgobj.data('speed'));
var coords = '50% ' + yPos + 'px';
$bgobj.css({ backgroundPosition: coords });
});
});
if (isStorageSupported()) { if (isStorageSupported()) {
$('[name="guest_key"]').val(localStorage.getItem('guest_key')); $('[name="guest_key"]').val(localStorage.getItem('guest_key'));
} }
@ -48,10 +38,12 @@
<div class="navbar" style="margin-bottom:0px"> <div class="navbar" style="margin-bottom:0px">
<div class="container"> <div class="container">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="#"><img src= <a class="brand" href="/"><img src=
"images/invoiceninja-logo.png"></a> "images/invoiceninja-logo.png"></a>
<ul class="navbar-list"> <ul class="navbar-list">
<li>{{ link_to('login', Auth::check() ? 'Continue' : 'Login' ) }}</li> <li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -182,7 +174,9 @@
<div class="navbar-inner"> <div class="navbar-inner">
<ul class="navbar-list"> <ul class="navbar-list">
<li>{{ link_to('login', Auth::check() ? 'Continue' : 'Login' ) }}</li> <li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul> </ul>
<!-- <!--

210
app/views/terms.blade.php Normal file
View File

@ -0,0 +1,210 @@
@extends('master')
@section('head')
<link href="{{ asset('css/bootstrap.splash.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('css/splash.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('images/apple-touch-icon-114x114-precomposed.png') }}" rel="apple-touch-icon-precomposed" sizes="114x114">
<link href="{{ asset('images/apple-touch-icon-72x72-precomposed.png') }}" rel="apple-touch-icon-precomposed" sizes="72x72">
<link href="{{ asset('images/apple-touch-icon-57x57-precomposed.png') }}" rel="apple-touch-icon-precomposed">
@stop
@section('body')
<div class="navbar" style="margin-bottom:0px">
<div class="container">
<div class="navbar-inner">
<a class="brand" href="#"><img src=
"images/invoiceninja-logo.png"></a>
<ul class="navbar-list">
<li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul>
</div>
</div>
</div>
</div>
<section class="hero3" data-speed="2" data-type="background">
<div class="container">
<div class="caption">
<h1>Terms of Service & Conditions of Use
</h1>
</div>
</div>
</section>
<section class="about center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<p>Invoice Ninja LLC provides this website and services under the following terms of service and conditions of use. By utilizing the invoiceNinja.com website you are agreeing to the following terms of service & conditions of use. You must be of legal age of majority to enter into a binding agreement to use invoiceninja.com. If you do not agree to the below terms & conditions, do not use invoiceninja.com. </p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Definitions</h2>
<p>Invoiceninja.com users who access invoiceninja.com services are defined as “User Accounts. User Account clients who use access invoiceninja.com services to view and/or pay invoices are defined as “Clients. The wording “data” and “content” are used interchangeably. </p></div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Responsibility</h2>
<p>User Accounts must ensure the confidentiality of usernames and passwords used to access their account. User Accounts are responsible for all activity occurring under their account including all laws relating to data, privacy, personal information, international copyright and trademark laws.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Data Ownership</h2>
<p>The User Accounts owns all data generated in their invoiceninja.com account. Invoiceninja.com will not modify or distribute User Account data. Invoiceninja.com will store and access data solely for the purpose of providing services to User Accounts.</p>
<p>User Accounts are responsible for their data. Invoiceninja.com has no responsibility or liability for User Account data or Client experience. User Accounts are responsible for any loss or damage a User Account may cause to their Clients or other people. Although we have no obligation to do so, if deemed legally necessary invoiceninja.com has absolute discretion to remove or edit User Account data without notice or penalty.</p>
<p>Invoiceninja.com does not own User Account data, but we do reserve the right to use User Account data as necessary to operate invoiceninja.com and improve User Account services.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Copyright & Trademarks</h2>
<p>User Accounts are responsible that company logos, graphics, and content uploaded to invoiceninja.com do not infringe on international copyright & trademark law.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Open Source License</h2>
<p>Invoiceninja.com is an open source application and invoiceninja.com source code is governed by international attribution assurances licensing: <a href="https://github.com/hillelcoren/invoice-ninja/blob/master/LICENSE" target="_blank">https://github.com/hillelcoren/invoice-ninja/blob/master/LICENSE</a>.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>User Account Limited License </h2>
<p>Invoiceninja.com grants User Accounts & Clients a limited license to access the invoiceninja.com services such as User Account creation and all invoiceninja.om services, and Client services such as viewing invoices, downloading invoices, and printing invoices. This limited license may be revoked if deemed legally necessary without notice or penalty.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Use of Emailing Services</h2>
<p>Keep it legal and clean. Any User Account emailing invoices data, hyper-links, or other material that is unlawful, libelous, defamatory, pornographic, harassing, invasive, fraudulent or otherwise objectionable will be deactivated.</p>
<p>Content that would constitute criminal offense or create legal liability, violate copyright, trademark, or intellectual property will be deleted or provided to legal authorities.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Security</h2>
<p>Invoiceninja.com does not store or obtain credit card or sensitive financial data in any form. Responsibility for Third-Party Material User Account may utilize hyper-linking to third-party web sites. Invoiceninja.com takes no responsibility for third party content.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Limited Liability</h2>
<p>User Accounts and Clients agree to indemnify, defend, and hold invoiceninja.com, its directors or employees harmless against any and all liability and cost as a result of using invoiceninja.com. User Accounts and Clients shall not assert any claim or allegation of any nature whatsoever against invoiceninja.com, its directors or employees. </p>
<p>Invoiceninja.com shall not be liable for damages of any kind, including but not limited to loss of site use, loss of profits or loss of data, tort or otherwise, arising out of or in any way connected with the use of or inability to use invoicenin.com.</p>
<p>You shall defend, indemnify and hold harmless invoiceninja.com from any loss, damages, liabilities, expenses, claims and proceedings arising out of your use of invoiceninja.com.</p>
</div>
</div>
</div>
</section>
<section class="center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>Availability</h2>
<p>Invoiceninja.com uses third party hosting that strives to ensure maximum uptime. However, invoiceninja.com cannot guarantee uninterrupted access invoiceninja.com. Invoiceninja.com reserves the right to interrupt access to invoiceninja.com for the sake of forming maintenance, updates, and security requirements.</p>
</div>
</div>
</div>
</section>
<p>&nbsp;</p>
<p>&nbsp;</p>
<footer>
<div class="navbar" style="margin-bottom:0px">
<div class="container">
<div class="social">
<!--
<a href="http://twitter.com/eas_id"><span class=
"socicon">c</span></a>
-->
<a href=
"http://facebook.com/invoiceninja" target="_blank"><span class=
"socicon">b</span></a> <a href=
"http://twitter.com/invoiceninja" target="_blank"><span class=
"socicon">a</span></a>
<p>Copyright © 2014 InvoiceNinja. All rights reserved.</p>
</div>
<div class="navbar-inner">
<ul class="navbar-list">
<li>{{ link_to('about', 'About Us' ) }}</li>
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
</ul>
<!--
<ul class="navbar-list">
<li><a href="#">For developers</a></li>
<li><a href="#">Jobs</a></li>
<li><a href="#">Terms &amp; Conditions</a></li>
<li><a href="#">Our Blog</a></li>
</ul>
-->
</div>
</div>
</div>
</footer><script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script>
@stop

View File

@ -10,7 +10,7 @@
"zizaco/confide": "3.1.x", "zizaco/confide": "3.1.x",
"anahkiasen/former": "dev-master", "anahkiasen/former": "dev-master",
"barryvdh/laravel-debugbar": "dev-master", "barryvdh/laravel-debugbar": "dev-master",
"chumper/datatable": "dev-master", "chumper/datatable": "2.x",
"omnipay/omnipay": "2.x", "omnipay/omnipay": "2.x",
"intervention/image": "dev-master", "intervention/image": "dev-master",
"webpatser/laravel-countries": "dev-master", "webpatser/laravel-countries": "dev-master",

297
composer.lock generated
View File

@ -3,7 +3,7 @@
"This file locks the dependencies of your project to a known state", "This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
], ],
"hash": "3630c03bc1f8da2e4855eb259f430c71", "hash": "b306f3209c9e8e892376f06c452c16d8",
"packages": [ "packages": [
{ {
"name": "anahkiasen/former", "name": "anahkiasen/former",
@ -107,12 +107,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Anahkiasen/rocketeer.git", "url": "https://github.com/Anahkiasen/rocketeer.git",
"reference": "f25f73671938cf8a29b11c3c8b773e47f78663ff" "reference": "c0ecd5773611c65256fbc7e1dea4e3780a19c743"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Anahkiasen/rocketeer/zipball/f25f73671938cf8a29b11c3c8b773e47f78663ff", "url": "https://api.github.com/repos/Anahkiasen/rocketeer/zipball/c0ecd5773611c65256fbc7e1dea4e3780a19c743",
"reference": "f25f73671938cf8a29b11c3c8b773e47f78663ff", "reference": "c0ecd5773611c65256fbc7e1dea4e3780a19c743",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -143,14 +143,14 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-develop": "1.2-dev" "dev-develop": "1.3-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Rocketeer\\": [ "Rocketeer\\": [
"src/Rocketeer", "src/Rocketeer",
"tests/" "tests"
] ]
} }
}, },
@ -170,7 +170,7 @@
"laravel", "laravel",
"ssh" "ssh"
], ],
"time": "2014-02-21 18:34:20" "time": "2014-03-10 14:56:07"
}, },
{ {
"name": "anahkiasen/underscore-php", "name": "anahkiasen/underscore-php",
@ -221,18 +221,18 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git", "url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "7ffde7c3627e18760a2713cd0260472436fe488c" "reference": "e94bed1e6276dab47699179dceee694bb6713606"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/7ffde7c3627e18760a2713cd0260472436fe488c", "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/e94bed1e6276dab47699179dceee694bb6713606",
"reference": "7ffde7c3627e18760a2713cd0260472436fe488c", "reference": "e94bed1e6276dab47699179dceee694bb6713606",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/filesystem": "~4.0", "illuminate/filesystem": "~4.0",
"illuminate/support": "~4.0", "illuminate/support": "~4.0",
"maximebf/debugbar": "~1.9", "maximebf/debugbar": "1.9.x",
"php": ">=5.3.0", "php": ">=5.3.0",
"symfony/finder": "~2.3" "symfony/finder": "~2.3"
}, },
@ -260,20 +260,20 @@
"profiler", "profiler",
"webprofiler" "webprofiler"
], ],
"time": "2014-02-24 15:47:08" "time": "2014-03-07 14:52:36"
}, },
{ {
"name": "chumper/datatable", "name": "chumper/datatable",
"version": "dev-master", "version": "2.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Chumper/Datatable.git", "url": "https://github.com/Chumper/Datatable.git",
"reference": "c3aa3f189a8b75efdb049210d39898cc9a8caafe" "reference": "0252085dc04db6e511bf3ac833fd11150d8e6a2b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Chumper/Datatable/zipball/c3aa3f189a8b75efdb049210d39898cc9a8caafe", "url": "https://api.github.com/repos/Chumper/Datatable/zipball/0252085dc04db6e511bf3ac833fd11150d8e6a2b",
"reference": "c3aa3f189a8b75efdb049210d39898cc9a8caafe", "reference": "0252085dc04db6e511bf3ac833fd11150d8e6a2b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -312,7 +312,7 @@
"jquery", "jquery",
"laravel" "laravel"
], ],
"time": "2014-02-23 17:47:19" "time": "2014-03-10 20:12:28"
}, },
{ {
"name": "classpreloader/classpreloader", "name": "classpreloader/classpreloader",
@ -367,12 +367,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Codeception/Codeception.git", "url": "https://github.com/Codeception/Codeception.git",
"reference": "57072cb9dbf23dfd7f2806de61e54ccc57cbbdef" "reference": "23d5bf8e5976ac43a8b17450369023a30dcefafa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/57072cb9dbf23dfd7f2806de61e54ccc57cbbdef", "url": "https://api.github.com/repos/Codeception/Codeception/zipball/23d5bf8e5976ac43a8b17450369023a30dcefafa",
"reference": "57072cb9dbf23dfd7f2806de61e54ccc57cbbdef", "reference": "23d5bf8e5976ac43a8b17450369023a30dcefafa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -387,6 +387,7 @@
"symfony/yaml": "~2.3" "symfony/yaml": "~2.3"
}, },
"require-dev": { "require-dev": {
"codeception/specify": "*",
"facebook/php-sdk": "3.*", "facebook/php-sdk": "3.*",
"videlalvaro/php-amqplib": "*" "videlalvaro/php-amqplib": "*"
}, },
@ -422,7 +423,7 @@
"functional testing", "functional testing",
"unit testing" "unit testing"
], ],
"time": "2014-02-24 23:38:17" "time": "2014-03-07 03:54:31"
}, },
{ {
"name": "d11wtq/boris", "name": "d11wtq/boris",
@ -859,12 +860,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Intervention/image.git", "url": "https://github.com/Intervention/image.git",
"reference": "18f50ac4317d82ecfe88b6b1ed46d071478c5022" "reference": "68352b3ffc76bee1979d411eba6f0136fe9b5630"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/18f50ac4317d82ecfe88b6b1ed46d071478c5022", "url": "https://api.github.com/repos/Intervention/image/zipball/68352b3ffc76bee1979d411eba6f0136fe9b5630",
"reference": "18f50ac4317d82ecfe88b6b1ed46d071478c5022", "reference": "68352b3ffc76bee1979d411eba6f0136fe9b5630",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -901,7 +902,7 @@
"thumbnail", "thumbnail",
"watermark" "watermark"
], ],
"time": "2014-02-20 15:58:24" "time": "2014-02-28 10:26:09"
}, },
{ {
"name": "ircmaxell/password-compat", "name": "ircmaxell/password-compat",
@ -1136,12 +1137,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "f7935afc541fc15324efc8538c60866e593ee447" "reference": "cdfd959d4bf48404a0c46985da801d46c67c6391"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/f7935afc541fc15324efc8538c60866e593ee447", "url": "https://api.github.com/repos/laravel/framework/zipball/cdfd959d4bf48404a0c46985da801d46c67c6391",
"reference": "f7935afc541fc15324efc8538c60866e593ee447", "reference": "cdfd959d4bf48404a0c46985da801d46c67c6391",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1204,7 +1205,7 @@
"iron-io/iron_mq": "1.5.*", "iron-io/iron_mq": "1.5.*",
"mockery/mockery": "0.9.*", "mockery/mockery": "0.9.*",
"pda/pheanstalk": "2.1.*", "pda/pheanstalk": "2.1.*",
"phpunit/phpunit": "3.7.*" "phpunit/phpunit": "4.0.*"
}, },
"suggest": { "suggest": {
"doctrine/dbal": "Allow renaming columns and dropping SQLite columns." "doctrine/dbal": "Allow renaming columns and dropping SQLite columns."
@ -1245,7 +1246,7 @@
"framework", "framework",
"laravel" "laravel"
], ],
"time": "2014-02-25 22:33:32" "time": "2014-03-10 20:05:42"
}, },
{ {
"name": "laravelbook/ardent", "name": "laravelbook/ardent",
@ -1308,21 +1309,22 @@
}, },
{ {
"name": "maximebf/debugbar", "name": "maximebf/debugbar",
"version": "1.9.4", "version": "1.9.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/maximebf/php-debugbar.git", "url": "https://github.com/maximebf/php-debugbar.git",
"reference": "5bbb3bc78b3e9ee0c4cc8c3619171ea16f0fb51f" "reference": "d076e51b3a28dccbb1b2683c8abb303551e17d27"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/5bbb3bc78b3e9ee0c4cc8c3619171ea16f0fb51f", "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/d076e51b3a28dccbb1b2683c8abb303551e17d27",
"reference": "5bbb3bc78b3e9ee0c4cc8c3619171ea16f0fb51f", "reference": "d076e51b3a28dccbb1b2683c8abb303551e17d27",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"psr/log": "~1.0" "psr/log": "~1.0",
"raveren/kint": "0.9"
}, },
"require-dev": { "require-dev": {
"php": ">=5.3.0" "php": ">=5.3.0"
@ -1354,7 +1356,7 @@
"keywords": [ "keywords": [
"debug" "debug"
], ],
"time": "2014-02-14 16:30:44" "time": "2014-03-04 17:18:45"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
@ -1362,12 +1364,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "7085f3e424dfbaba98461a433f6c55fec3229355" "reference": "dc75a998d83ebb285b94b1a6fd96644b457ed33c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/7085f3e424dfbaba98461a433f6c55fec3229355", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/dc75a998d83ebb285b94b1a6fd96644b457ed33c",
"reference": "7085f3e424dfbaba98461a433f6c55fec3229355", "reference": "dc75a998d83ebb285b94b1a6fd96644b457ed33c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1375,8 +1377,8 @@
"psr/log": "~1.0" "psr/log": "~1.0"
}, },
"require-dev": { "require-dev": {
"aws/aws-sdk-php": "~2.4.8", "aws/aws-sdk-php": "~2.4, >2.4.8",
"doctrine/couchdb": "dev-master", "doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0", "graylog2/gelf-php": "~1.0",
"phpunit/phpunit": "~3.7.0", "phpunit/phpunit": "~3.7.0",
"raven/raven": "~0.5", "raven/raven": "~0.5",
@ -1389,6 +1391,7 @@
"ext-mongo": "Allow sending log messages to a MongoDB server", "ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"raven/raven": "Allow sending log messages to a Sentry server", "raven/raven": "Allow sending log messages to a Sentry server",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server" "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
}, },
"type": "library", "type": "library",
@ -1421,7 +1424,7 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"time": "2014-02-25 22:48:41" "time": "2014-03-09 20:51:48"
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
@ -3113,12 +3116,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/orchestral/testbench.git", "url": "https://github.com/orchestral/testbench.git",
"reference": "425d887bc5357dc2929da4887c8a13b3ba67a17e" "reference": "5582dc10637678a0a9f723fa6e2f181f6bc2d786"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/orchestral/testbench/zipball/425d887bc5357dc2929da4887c8a13b3ba67a17e", "url": "https://api.github.com/repos/orchestral/testbench/zipball/5582dc10637678a0a9f723fa6e2f181f6bc2d786",
"reference": "425d887bc5357dc2929da4887c8a13b3ba67a17e", "reference": "5582dc10637678a0a9f723fa6e2f181f6bc2d786",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3132,8 +3135,8 @@
} }
}, },
"autoload": { "autoload": {
"psr-0": { "psr-4": {
"Orchestra\\Testbench": "src/" "Orchestra\\Testbench\\": "src/Testbench/"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -3152,20 +3155,20 @@
"keywords": [ "keywords": [
"laravel" "laravel"
], ],
"time": "2014-02-19 14:52:34" "time": "2014-03-03 04:47:07"
}, },
{ {
"name": "patchwork/utf8", "name": "patchwork/utf8",
"version": "v1.1.18", "version": "v1.1.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nicolas-grekas/Patchwork-UTF8.git", "url": "https://github.com/nicolas-grekas/Patchwork-UTF8.git",
"reference": "66a936cc633fe13378c91f81030d5193be968480" "reference": "aea0de833cba7cf2c25239be71f2787edaee36d5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nicolas-grekas/Patchwork-UTF8/zipball/66a936cc633fe13378c91f81030d5193be968480", "url": "https://api.github.com/repos/nicolas-grekas/Patchwork-UTF8/zipball/aea0de833cba7cf2c25239be71f2787edaee36d5",
"reference": "66a936cc633fe13378c91f81030d5193be968480", "reference": "aea0de833cba7cf2c25239be71f2787edaee36d5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3203,7 +3206,7 @@
"utf-8", "utf-8",
"utf8" "utf8"
], ],
"time": "2014-02-02 17:09:49" "time": "2014-03-01 20:01:07"
}, },
{ {
"name": "patricktalmadge/bootstrapper", "name": "patricktalmadge/bootstrapper",
@ -3211,12 +3214,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/patricktalmadge/bootstrapper.git", "url": "https://github.com/patricktalmadge/bootstrapper.git",
"reference": "c0cee9c65ea063b0817e0c5f788371bbcbbf7d71" "reference": "53c5e7c0b70210ac34f298d3cf7831b2bfbeb8eb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/patricktalmadge/bootstrapper/zipball/c0cee9c65ea063b0817e0c5f788371bbcbbf7d71", "url": "https://api.github.com/repos/patricktalmadge/bootstrapper/zipball/53c5e7c0b70210ac34f298d3cf7831b2bfbeb8eb",
"reference": "c0cee9c65ea063b0817e0c5f788371bbcbbf7d71", "reference": "53c5e7c0b70210ac34f298d3cf7831b2bfbeb8eb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3258,7 +3261,7 @@
"bootstrap", "bootstrap",
"laravel" "laravel"
], ],
"time": "2014-02-24 10:46:34" "time": "2014-03-07 22:01:49"
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
@ -3266,12 +3269,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpseclib/phpseclib.git", "url": "https://github.com/phpseclib/phpseclib.git",
"reference": "76c9692908a6c25601df2db373043fcbb335332e" "reference": "5dcc63ef6ca720b1617cff33b445d9b318c9ad03"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/76c9692908a6c25601df2db373043fcbb335332e", "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/5dcc63ef6ca720b1617cff33b445d9b318c9ad03",
"reference": "76c9692908a6c25601df2db373043fcbb335332e", "reference": "5dcc63ef6ca720b1617cff33b445d9b318c9ad03",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3296,7 +3299,8 @@
"Crypt": "phpseclib/", "Crypt": "phpseclib/",
"File": "phpseclib/", "File": "phpseclib/",
"Math": "phpseclib/", "Math": "phpseclib/",
"Net": "phpseclib/" "Net": "phpseclib/",
"System": "phpseclib/"
}, },
"files": [ "files": [
"phpseclib/Crypt/Random.php" "phpseclib/Crypt/Random.php"
@ -3352,26 +3356,26 @@
"x.509", "x.509",
"x509" "x509"
], ],
"time": "2014-02-23 01:03:22" "time": "2014-03-06 11:05:11"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "1.2.x-dev", "version": "1.2.13",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "69e55e68481cf708a6db43aff0b504e31402fe27" "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/69e55e68481cf708a6db43aff0b504e31402fe27", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/466e7cd2554b4e264c9e3f31216d25ac0e5f3d94",
"reference": "69e55e68481cf708a6db43aff0b504e31402fe27", "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=5.3.3",
"phpunit/php-file-iterator": ">=1.3.0@stable", "phpunit/php-file-iterator": ">=1.3.0@stable",
"phpunit/php-text-template": ">=1.2.0@stable", "phpunit/php-text-template": ">=1.1.1@stable",
"phpunit/php-token-stream": ">=1.1.3@stable" "phpunit/php-token-stream": ">=1.1.3@stable"
}, },
"require-dev": { "require-dev": {
@ -3413,11 +3417,11 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2014-02-25 03:34:05" "time": "2013-09-10 08:14:32"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
"version": "dev-master", "version": "1.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
@ -3462,16 +3466,16 @@
}, },
{ {
"name": "phpunit/php-text-template", "name": "phpunit/php-text-template",
"version": "dev-master", "version": "1.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git", "url": "https://github.com/sebastianbergmann/php-text-template.git",
"reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5180896f51c5b3648ac946b05f9ec02be78a0b23",
"reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3502,11 +3506,11 @@
"keywords": [ "keywords": [
"template" "template"
], ],
"time": "2014-01-30 17:20:04" "time": "2012-10-31 18:15:28"
}, },
{ {
"name": "phpunit/php-timer", "name": "phpunit/php-timer",
"version": "dev-master", "version": "1.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git", "url": "https://github.com/sebastianbergmann/php-timer.git",
@ -3554,12 +3558,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git", "url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "292f4d5772dad5a12775be69f4a8dd663b20f103" "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/292f4d5772dad5a12775be69f4a8dd663b20f103", "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32",
"reference": "292f4d5772dad5a12775be69f4a8dd663b20f103", "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3596,7 +3600,7 @@
"keywords": [ "keywords": [
"tokenizer" "tokenizer"
], ],
"time": "2013-10-21 14:03:39" "time": "2014-03-03 05:10:30"
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
@ -3604,12 +3608,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "2752cbb9ea5bd84c2811b34b6953f76965ec7a2f" "reference": "4dbc3ab5de25a9ffd07796519f9f7f4aaddc37e0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2752cbb9ea5bd84c2811b34b6953f76965ec7a2f", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4dbc3ab5de25a9ffd07796519f9f7f4aaddc37e0",
"reference": "2752cbb9ea5bd84c2811b34b6953f76965ec7a2f", "reference": "4dbc3ab5de25a9ffd07796519f9f7f4aaddc37e0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3619,9 +3623,9 @@
"ext-spl": "*", "ext-spl": "*",
"php": ">=5.3.3", "php": ">=5.3.3",
"phpunit/php-code-coverage": "~1.2.1", "phpunit/php-code-coverage": "~1.2.1",
"phpunit/php-file-iterator": ">=1.3.1", "phpunit/php-file-iterator": "~1.3.1",
"phpunit/php-text-template": ">=1.1.1", "phpunit/php-text-template": "~1.1.1",
"phpunit/php-timer": ">=1.0.4", "phpunit/php-timer": "~1.0.4",
"phpunit/phpunit-mock-objects": "~1.2.0", "phpunit/phpunit-mock-objects": "~1.2.0",
"symfony/yaml": "~2.0" "symfony/yaml": "~2.0"
}, },
@ -3632,7 +3636,7 @@
"ext-json": "*", "ext-json": "*",
"ext-simplexml": "*", "ext-simplexml": "*",
"ext-tokenizer": "*", "ext-tokenizer": "*",
"phpunit/php-invoker": ">=1.1.0,<1.2.0" "phpunit/php-invoker": "~1.1"
}, },
"bin": [ "bin": [
"composer/bin/phpunit" "composer/bin/phpunit"
@ -3670,7 +3674,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2014-02-25 03:47:29" "time": "2014-03-05 12:52:24"
}, },
{ {
"name": "phpunit/phpunit-mock-objects", "name": "phpunit/phpunit-mock-objects",
@ -3819,6 +3823,52 @@
], ],
"time": "2014-01-18 15:33:09" "time": "2014-01-18 15:33:09"
}, },
{
"name": "raveren/kint",
"version": "v0.9",
"source": {
"type": "git",
"url": "https://github.com/raveren/kint.git",
"reference": "ada810111ced4e3a926b4040da9b86442e43b613"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/raveren/kint/zipball/ada810111ced4e3a926b4040da9b86442e43b613",
"reference": "ada810111ced4e3a926b4040da9b86442e43b613",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"type": "library",
"autoload": {
"files": [
"Kint.class.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Rokas Šleinius",
"homepage": "https://github.com/raveren"
},
{
"name": "Contributors",
"homepage": "https://github.com/raveren/kint/contributors"
}
],
"description": "Kint - debugging helper for PHP developers",
"homepage": "https://github.com/raveren/kint",
"keywords": [
"debug",
"kint",
"php"
],
"time": "2013-08-12 22:46:16"
},
{ {
"name": "stack/builder", "name": "stack/builder",
"version": "dev-master", "version": "dev-master",
@ -3980,12 +4030,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Console.git", "url": "https://github.com/symfony/Console.git",
"reference": "43717a2ba9a8695dac525b928134d1b6d620f13a" "reference": "ef20f1f58d7f693ee888353962bd2db336e3bbcb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/43717a2ba9a8695dac525b928134d1b6d620f13a", "url": "https://api.github.com/repos/symfony/Console/zipball/ef20f1f58d7f693ee888353962bd2db336e3bbcb",
"reference": "43717a2ba9a8695dac525b928134d1b6d620f13a", "reference": "ef20f1f58d7f693ee888353962bd2db336e3bbcb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4026,7 +4076,7 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-18 15:41:06" "time": "2014-03-01 17:35:04"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
@ -4035,12 +4085,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/CssSelector.git", "url": "https://github.com/symfony/CssSelector.git",
"reference": "ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7" "reference": "76ce933792a3b4fcb8ea9b017081327c2dc3c65b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7", "url": "https://api.github.com/repos/symfony/CssSelector/zipball/76ce933792a3b4fcb8ea9b017081327c2dc3c65b",
"reference": "ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7", "reference": "76ce933792a3b4fcb8ea9b017081327c2dc3c65b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4079,7 +4129,7 @@
], ],
"description": "Symfony CssSelector Component", "description": "Symfony CssSelector Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-11 13:52:09" "time": "2014-03-01 17:35:04"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
@ -4088,12 +4138,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Debug.git", "url": "https://github.com/symfony/Debug.git",
"reference": "23b5f4fcad883679d9a6e1cbc568247fe606d8ee" "reference": "412b76458b60a645a9daacdd49f57d704c84c4d4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Debug/zipball/23b5f4fcad883679d9a6e1cbc568247fe606d8ee", "url": "https://api.github.com/repos/symfony/Debug/zipball/412b76458b60a645a9daacdd49f57d704c84c4d4",
"reference": "23b5f4fcad883679d9a6e1cbc568247fe606d8ee", "reference": "412b76458b60a645a9daacdd49f57d704c84c4d4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4136,7 +4186,7 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-11 13:52:09" "time": "2014-03-01 17:35:04"
}, },
{ {
"name": "symfony/dom-crawler", "name": "symfony/dom-crawler",
@ -4145,12 +4195,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/DomCrawler.git", "url": "https://github.com/symfony/DomCrawler.git",
"reference": "f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19" "reference": "4bebef4fd60f15e3fc58f684550beae1f9162f30"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19", "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/4bebef4fd60f15e3fc58f684550beae1f9162f30",
"reference": "f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19", "reference": "4bebef4fd60f15e3fc58f684550beae1f9162f30",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4191,7 +4241,7 @@
], ],
"description": "Symfony DomCrawler Component", "description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-18 15:41:06" "time": "2014-03-01 17:35:04"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
@ -4305,12 +4355,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Finder.git", "url": "https://github.com/symfony/Finder.git",
"reference": "d712f4a26737300b4d7546705a4fb15feeb3e96f" "reference": "ab301c7d21f536c34ab6c2c79dba8d465104c518"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/d712f4a26737300b4d7546705a4fb15feeb3e96f", "url": "https://api.github.com/repos/symfony/Finder/zipball/ab301c7d21f536c34ab6c2c79dba8d465104c518",
"reference": "d712f4a26737300b4d7546705a4fb15feeb3e96f", "reference": "ab301c7d21f536c34ab6c2c79dba8d465104c518",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4345,7 +4395,7 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-24 16:20:54" "time": "2014-03-01 17:35:04"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
@ -4354,12 +4404,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/HttpFoundation.git", "url": "https://github.com/symfony/HttpFoundation.git",
"reference": "cdee7c84ba8b2a8aafa1c055f5cb4f640d81c129" "reference": "97052d99f8eea42975ef21e3dba01cb550913157"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/cdee7c84ba8b2a8aafa1c055f5cb4f640d81c129", "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/97052d99f8eea42975ef21e3dba01cb550913157",
"reference": "cdee7c84ba8b2a8aafa1c055f5cb4f640d81c129", "reference": "97052d99f8eea42975ef21e3dba01cb550913157",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4397,7 +4447,7 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-11 15:39:28" "time": "2014-03-04 07:36:26"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
@ -4406,12 +4456,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/HttpKernel.git", "url": "https://github.com/symfony/HttpKernel.git",
"reference": "1e1a8e4f1040d744086e9bdaa979f015789b4af6" "reference": "2b803c45c454751c503a7d4f15fce4aa4a9e4686"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/1e1a8e4f1040d744086e9bdaa979f015789b4af6", "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/2b803c45c454751c503a7d4f15fce4aa4a9e4686",
"reference": "1e1a8e4f1040d744086e9bdaa979f015789b4af6", "reference": "2b803c45c454751c503a7d4f15fce4aa4a9e4686",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4470,7 +4520,7 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-12 21:00:41" "time": "2014-03-04 17:06:29"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
@ -4653,12 +4703,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Yaml.git", "url": "https://github.com/symfony/Yaml.git",
"reference": "e49a47d60348665261f6e279ba383241deb73cab" "reference": "6194137af5f12fbcfc0cb21e269f47542b8beb47"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/e49a47d60348665261f6e279ba383241deb73cab", "url": "https://api.github.com/repos/symfony/Yaml/zipball/6194137af5f12fbcfc0cb21e269f47542b8beb47",
"reference": "e49a47d60348665261f6e279ba383241deb73cab", "reference": "6194137af5f12fbcfc0cb21e269f47542b8beb47",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4693,7 +4743,7 @@
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2014-02-24 16:21:51" "time": "2014-03-03 12:53:01"
}, },
{ {
"name": "webpatser/laravel-countries", "name": "webpatser/laravel-countries",
@ -4701,12 +4751,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webpatser/laravel-countries.git", "url": "https://github.com/webpatser/laravel-countries.git",
"reference": "b38d62c3559011b3f34bb4059bcd52ec54907512" "reference": "0631c1c6211303990561185cea280c9965c1a5a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webpatser/laravel-countries/zipball/b38d62c3559011b3f34bb4059bcd52ec54907512", "url": "https://api.github.com/repos/webpatser/laravel-countries/zipball/0631c1c6211303990561185cea280c9965c1a5a9",
"reference": "b38d62c3559011b3f34bb4059bcd52ec54907512", "reference": "0631c1c6211303990561185cea280c9965c1a5a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4745,7 +4795,7 @@
"iso_3166_3", "iso_3166_3",
"laravel" "laravel"
], ],
"time": "2014-01-11 14:44:54" "time": "2014-03-02 11:42:11"
}, },
{ {
"name": "zizaco/confide", "name": "zizaco/confide",
@ -4820,7 +4870,6 @@
"patricktalmadge/bootstrapper": 20, "patricktalmadge/bootstrapper": 20,
"anahkiasen/former": 20, "anahkiasen/former": 20,
"barryvdh/laravel-debugbar": 20, "barryvdh/laravel-debugbar": 20,
"chumper/datatable": 20,
"intervention/image": 20, "intervention/image": 20,
"webpatser/laravel-countries": 20, "webpatser/laravel-countries": 20,
"anahkiasen/rocketeer": 20, "anahkiasen/rocketeer": 20,

View File

@ -5,7 +5,7 @@ body {
.center-block { margin: 0 auto!; float: none; } .center-block { margin: 0 auto!; float: none; }
h1, h2 { h1, h2, .btn {
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
font-weight: 900; font-weight: 900;
line-height: 1.1; line-height: 1.1;
@ -18,7 +18,7 @@ font-size: 45px;
h2 { h2 {
font-size: 20px; font-size: 20px;
} }
a, a .cta h2, .socicon { a, a .cta h2, .socicon, .btn {
-webkit-transition: all 0.3s ease-in-out; -webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out;
@ -34,6 +34,8 @@ text-decoration: none;
.navbar { .navbar {
background: #2e2b2b; background: #2e2b2b;
padding: 30px 0; padding: 30px 0;
border: none;
border-radius: 0;
} }
ul.navbar-list { ul.navbar-list {
float: right; float: right;
@ -135,24 +137,35 @@ a .cta:hover span {
background-image: url(/images/hero-bg-3.jpg); background-image: url(/images/hero-bg-3.jpg);
padding: 150px 0; padding: 150px 0;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: bottom center; background-position: center center;
background-size: cover; background-size: cover;
} }
.hero2 h1, .hero3 h1 { .hero4 {
text-align: center;
background-image: url(/images/hero-bg-4.jpg);
padding: 150px 0;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}
.hero2 h1, .hero3 h1, .hero4 h1 {
color: #fff; color: #fff;
margin: 0; margin: 0;
} }
.background { .background {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: top center; background-position: center center;
background-attachment: fixed; background-attachment: static;
background-size: cover; background-size: cover;
min-height: 500px; min-height: 500px;
} }
section.features, section.upper-footer { section.features, section.upper-footer {
margin: 60px 0; margin: 60px 0;
} }
section.upper-footer.white-bg {
margin: 0;
padding: 60px 0;
}
section.features .col-md-3 .box{ section.features .col-md-3 .box{
padding: 20px; padding: 20px;
background: #ebbe09; background: #ebbe09;
@ -173,6 +186,7 @@ margin-top: -20px;
text-align: left; text-align: left;
} }
section.blue { section.blue {
display: none;
background: #2299c0; background: #2299c0;
color: #fff; color: #fff;
} }
@ -201,6 +215,108 @@ section.about { padding: 70px 0; }
section.about h2 { margin: 0 0 25px 0; font-size: 25px; text-transform:none;} section.about h2 { margin: 0 0 25px 0; font-size: 25px; text-transform:none;}
section.about .screendump { background-color:#ccc; height:220px;} section.about .screendump { background-color:#ccc; height:220px;}
section.contact .address .glyphicon {
background: #edd71e;
height: 40px;
width: 40px;
line-height: 40px;
text-align: center;
border-radius: 50px;
color: #1a1818;
margin-right: 15px;
}
section.contact .address p {
margin-bottom: 20px;
}
section.contact .address span.push {
margin-left: 55px;
line-height: 25px;
}
section.contact .form-control {
display: block;
width: 100%;
height: 40px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: none;
border-radius: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
section.contact textarea.form-control {
height: auto;
}
.btn-primary {
color: #fff;
background-color: #2299c0;
border: none;
text-align: center;
border-radius: 0;
height: 63px;
line-height: 63px;
padding: 0;
width: 100%;
text-align: center;
}
.btn-primary:hover {background-color: #2299c0;}
section.contact button span.glyphicon {
background-color: transparent;
color: #fff;
float: right;
}
section.contact .btn span.glyphicon {
background-color: #1e84a5;
height: 63px;
line-height: 63px;
width: 63px;
margin-top: -1px;
-webkit-transition: all 0.1s ease-in-out;
-moz-transition: all 0.1s ease-in-out;
-o-transition: all 0.1s ease-in-out;
transition: all 0.1s ease-in-out;
}
section.contact .btn:hover span.glyphicon {
font-size: 25px;
}
section.contact textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {
border-color: rgba(0, 0, 0, 0.8);
outline: 0;
outline: thin dotted \9;
/* IE6-9 */
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0), 0 0 8px rgba(0,0,0,.2) !important;
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0), 0 0 8px rgba(0,0,0,.2) !important;
box-shadow: inset 0 1px 1px rgba(0,0,0,0), 0 0 8px rgba(0,0,0,.2) !important;
}
section.contact address { display: inline-block;}
footer .navbar-inner { footer .navbar-inner {
float: right; float: right;
} }
@ -284,7 +400,7 @@ margin-bottom: 10px;
@media (max-width: 768px) { @media (max-width: 768px) {
h1 { h1 {
font-size: 30px; font-size: 30px;
} }
@ -311,7 +427,7 @@ margin-bottom: 10px;
margin-bottom: 10px; margin-bottom: 10px;
text-align: center; text-align: center;
} }
.hero2, .hero3 { .hero2, .hero3, .hero4 {
padding: 50px 0; padding: 50px 0;
} }
@ -326,6 +442,9 @@ margin-bottom: 10px;
section.features, section.upper-footer { section.features, section.upper-footer {
margin: 30px 0; margin: 30px 0;
} }
section.upper-footer.white-bg {
padding: 30px 0;
}
section.features .col-md-3 .box{ section.features .col-md-3 .box{
margin-bottom: 10px; margin-bottom: 10px;
@ -346,6 +465,20 @@ section.about {
padding: 30px 0; padding: 30px 0;
text-align: center; text-align: center;
} }
section.about.contact {
padding: 30px 0 0 0;
}
section.contact .address {margin: 0;}
section.contact .address p {text-align:center;}
section.contact .address .glyphicon {
display:block;
margin: 0 auto 7px auto;
float: none;
}
section.contact .address span.push {
margin-left: 0;
}
section.contact .btn { margin-bottom: 5px; }
section.about p { section.about p {
margin-bottom: 0; margin-bottom: 0;
margin-top: 10px; margin-top: 10px;
@ -361,6 +494,12 @@ section.about.white-bg .screendump {
section.about h2 { section.about h2 {
margin: 0 0 15px 0; margin: 0 0 15px 0;
} }
#contact_form {
margin: 0;
}
#feedbackForm {
margin-top: 15px;
}
footer .navbar-inner { footer .navbar-inner {
float: none; float: none;
} }
@ -374,9 +513,21 @@ footer .social {
footer .social .socicon { footer .social .socicon {
margin-right: 8px; margin-right: 8px;
} }
} }
.github {
background-image: url('../images/GitHub.png');
background-size: contain;
background-repeat: no-repeat;
width: 40px;
height: 40px;
display: inline-block;
margin-right: 10px;
float: left;
}
@font-face { @font-face {
font-family: 'socicon'; font-family: 'socicon';

View File

@ -60,7 +60,7 @@ min-height: 40px;
table.dataTable { border-radius: 3px; border-collapse: collapse; table.dataTable { border-radius: 3px; border-collapse: collapse;
/*border-spacing: 0;*/} /*border-spacing: 0;*/}
table.dataTable thead > tr > th, table.invoice-table thead > tr > th { table.dataTable thead > tr > th, table.invoice-table thead > tr > th {
background: #e37329 !important; background-color: #e37329 !important;
color:#fff; color:#fff;
} }
th:first-child { th:first-child {
@ -591,7 +591,6 @@ color: #fff;
background-color: #08273c; background-color: #08273c;
border-color: #08273c; border-color: #08273c;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a { .navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #ecf0f1; color: #ecf0f1;

BIN
public/images/GitHub.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

BIN
public/images/about1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
public/images/about1@2x.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
public/images/about2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
public/images/about2@2x.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
public/images/hero-bg-4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because it is too large Load Diff