@@ -4,7 +4,19 @@ UNRELEASED CHANGES:
|
||||
|
||||
RELEASED VERSIONS:
|
||||
|
||||
v0.3.0 - 2017-07-04
|
||||
-------------------
|
||||
|
||||
New features:
|
||||
* Add supprort for organizing people into tags (equires `bower update` for dev environment).
|
||||
* Add ability to filter contacts per tags on the contact list.
|
||||
|
||||
Improvements:
|
||||
* Fix import translation key on the import reports.
|
||||
* Settings' sidebar now has better icons.
|
||||
|
||||
v0.2.1 - 2017-07-02
|
||||
-------------------
|
||||
|
||||
Improvements:
|
||||
* Update the design of the latest actions on the dashboard.
|
||||
|
||||
@@ -199,6 +199,16 @@ class Account extends Model
|
||||
return $this->hasMany(ImportJobReport::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the tags records associated with the contact.
|
||||
*
|
||||
* @return HasMany
|
||||
*/
|
||||
public function tags()
|
||||
{
|
||||
return $this->hasMany('App\Tag')->orderBy('name', 'asc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the account can be downgraded, based on a set of rules
|
||||
*
|
||||
|
||||
@@ -58,6 +58,7 @@ class CalculateStatistics extends Command
|
||||
}
|
||||
$statistic->number_of_accounts_with_more_than_one_user = $number_of_accounts_with_more_than_one_user;
|
||||
$statistic->number_of_import_jobs = DB::table('import_jobs')->count();
|
||||
$statistic->number_of_tags = DB::table('tags')->count();
|
||||
$statistic->save();
|
||||
}
|
||||
}
|
||||
|
||||
+25
-1
@@ -5,11 +5,11 @@ namespace App;
|
||||
use Auth;
|
||||
use Carbon\Carbon;
|
||||
use App\Helpers\DateHelper;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Contact extends Model
|
||||
@@ -162,6 +162,16 @@ class Contact extends Model
|
||||
return $this->hasMany('App\Task');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the tags records associated with the contact.
|
||||
*
|
||||
* @return HasMany
|
||||
*/
|
||||
public function tags()
|
||||
{
|
||||
return $this->belongsToMany('App\Tag')->withPivot('account_id')->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort the contacts according a given criteria
|
||||
* @param Builder $builder
|
||||
@@ -916,4 +926,18 @@ class Contact extends Model
|
||||
return $this->debts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of tags as a string to populate the tags form
|
||||
*/
|
||||
public function getTagsAsString()
|
||||
{
|
||||
$tags = array();
|
||||
|
||||
foreach ($this->tags as $tag) {
|
||||
array_push($tags, $tag->name);
|
||||
}
|
||||
|
||||
return implode(',', $tags);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\People;
|
||||
|
||||
use App\Contact;
|
||||
use App\Tag;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\People\TagsRequest;
|
||||
|
||||
class TagsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param GiftsRequest $request
|
||||
* @param Contact $contact
|
||||
* @param Gift $gift
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(TagsRequest $request, Contact $contact)
|
||||
{
|
||||
if (auth()->user()->account_id != $contact->account_id) {
|
||||
return response()->json(array('status' => 'no'));
|
||||
}
|
||||
|
||||
$tags = explode(',', $request->input('tags'));
|
||||
|
||||
// if we receive an empty string, that means all tags have been removed.
|
||||
if ($request->input('tags') == '') {
|
||||
$contact->tags()->detach();
|
||||
return response()->json(array('status' => 'no', 'tags' => ''));
|
||||
}
|
||||
|
||||
$tagsIDs = array();
|
||||
$tagsWithIdAndSlug = array();
|
||||
foreach ($tags as $tag) {
|
||||
$tag = auth()->user()->account->tags()->firstOrCreate([
|
||||
'name' => $tag
|
||||
]);
|
||||
|
||||
$tag->name_slug = str_slug($tag->name);
|
||||
$tag->save();
|
||||
|
||||
$tagsIDs[$tag->id] = ['account_id' => auth()->user()->account_id];
|
||||
|
||||
// this is passed back in json to JS
|
||||
array_push($tagsWithIdAndSlug, [
|
||||
'id' => $tag->id,
|
||||
'slug' => $tag->name_slug
|
||||
]);
|
||||
}
|
||||
|
||||
$contact->tags()->sync($tagsIDs);
|
||||
|
||||
$response = array(
|
||||
'status' => 'yes',
|
||||
'tags' => $tagsWithIdAndSlug,
|
||||
);
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
||||
|
||||
use Auth;
|
||||
use App\Note;
|
||||
use App\Tag;
|
||||
use Validator;
|
||||
use App\Contact;
|
||||
use App\Reminder;
|
||||
@@ -29,10 +30,25 @@ class PeopleController extends Controller
|
||||
$user->updateContactViewPreference($sort);
|
||||
}
|
||||
|
||||
$contacts = $user->account->contacts()->sortedBy($sort)->get();
|
||||
$tag = null;
|
||||
|
||||
if ($request->get('tags')) {
|
||||
$tag = Tag::where('name_slug', $request->get('tags'))->first();
|
||||
|
||||
if (is_null($tag)) {
|
||||
return redirect()->route('people.index');
|
||||
}
|
||||
|
||||
$contacts = $user->account->contacts()->whereHas('tags', function ($query) use ($tag) {
|
||||
$query->where('id', $tag->id);
|
||||
})->sortedBy($sort)->get();
|
||||
} else {
|
||||
$contacts = $user->account->contacts()->sortedBy($sort)->get();
|
||||
}
|
||||
|
||||
return view('people.index')
|
||||
->withContacts($contacts);
|
||||
->withContacts($contacts)
|
||||
->withTag($tag);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\User;
|
||||
use Carbon\Carbon;
|
||||
use App\Invitation;
|
||||
use App\ImportJob;
|
||||
use App\Tag;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Helpers\RandomHelper;
|
||||
use App\Jobs\SendNewUserAlert;
|
||||
@@ -367,4 +368,28 @@ class SettingsController extends Controller
|
||||
return redirect('/settings/users')
|
||||
->with('success', trans('settings.users_list_delete_success'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the list of tags for this account
|
||||
*/
|
||||
public function tags()
|
||||
{
|
||||
return view('settings.tags');
|
||||
}
|
||||
|
||||
public function deleteTag(Request $request, $tagId)
|
||||
{
|
||||
$tag = Tag::findOrFail($tagId);
|
||||
|
||||
if ($tag->account_id != auth()->user()->account_id) {
|
||||
return redirect('/');
|
||||
}
|
||||
|
||||
$tag->contacts()->detach();
|
||||
|
||||
$tag->delete();
|
||||
|
||||
return redirect('/settings/tags')
|
||||
->with('success', trans('settings.tags_list_delete_success'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\People;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class TagsRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -35,6 +35,9 @@ Route::group(['middleware' => 'auth'], function () {
|
||||
Route::get('/people/{contact}/work/edit', ['as' => '.edit', 'uses' => 'PeopleController@editWork'])->name('.work.edit');
|
||||
Route::post('/people/{contact}/work/update', 'PeopleController@updateWork')->name('.work.update');
|
||||
|
||||
// Tags
|
||||
Route::post('/people/{contact}/tags/update', 'People\\TagsController@update')->name('.tags.update');
|
||||
|
||||
// Notes
|
||||
Route::get('/people/{contact}/notes/add', 'People\\NotesController@create')->name('.notes.add');
|
||||
Route::post('/people/{contact}/notes/store', 'People\\NotesController@store')->name('.notes.store');
|
||||
@@ -126,5 +129,9 @@ Route::group(['middleware' => 'auth'], function () {
|
||||
Route::get('/settings/subscriptions/downgrade', 'Settings\\SubscriptionsController@downgrade')->name('.subscriptions.downgrade');
|
||||
Route::post('/settings/subscriptions/downgrade', 'Settings\\SubscriptionsController@processDowngrade');
|
||||
|
||||
Route::get('/settings/tags', 'SettingsController@tags')->name('.tags');
|
||||
Route::get('/settings/tags/add', 'SettingsController@addUser')->name('.tags.add');
|
||||
Route::get('/settings/tags/{user}/delete', ['as' => '.tags.delete', 'uses' => 'SettingsController@deleteTag']);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Tag extends Model
|
||||
{
|
||||
/**
|
||||
* The attributes that aren't mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $guarded = ['id'];
|
||||
|
||||
/**
|
||||
* Get the account record associated with the debt.
|
||||
*/
|
||||
public function account()
|
||||
{
|
||||
return $this->belongsTo('App\Account');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the contact record associated with the debt.
|
||||
*/
|
||||
public function contacts()
|
||||
{
|
||||
return $this->belongsToMany('App\Contact')->withPivot('account_id')->withTimestamps();
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -13,10 +13,10 @@
|
||||
"animate.css": "^3.5.2",
|
||||
"octicons": "^4.3.0",
|
||||
"hint.css": "hint-css#^2.3.2",
|
||||
"trix": "^0.9.9",
|
||||
"font-awesome": "fontawesome#^4.7.0",
|
||||
"list.js": "^1.5.0",
|
||||
"typeahead.js": "^0.11.1",
|
||||
"jQuery": "^3.2.1"
|
||||
"jQuery": "^3.2.1",
|
||||
"jquery.tagsinput": "jquery-tags-input#^1.3.6"
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -88,5 +88,5 @@ return [
|
||||
| should not change this setting yourself.
|
||||
|
|
||||
*/
|
||||
'app_version' => '0.2.1',
|
||||
'app_version' => '0.3.0',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateTagsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('tags', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->integer('account_id');
|
||||
$table->string('name');
|
||||
$table->string('name_slug');
|
||||
$table->mediumText('description')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
Schema::create('contact_tag', function (Blueprint $table) {
|
||||
$table->integer('contact_id');
|
||||
$table->integer('tag_id');
|
||||
$table->integer('account_id');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddTagsToStatistics extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('statistics', function ($table) {
|
||||
$table->integer('number_of_tags')->after('number_of_accounts_with_more_than_one_user')->nullable();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,9 @@ elixir((mix) => {
|
||||
mix.copy('resources/assets/js/stripe_js.js', 'public/js');
|
||||
mix.copy('resources/vendor/jquery/dist/jquery.min.js', 'resources/assets/js/vendors/');
|
||||
mix.copy('resources/vendor/typeahead.js/dist/typeahead.bundle.min.js', 'resources/assets/js/vendors/');
|
||||
mix.copy('resources/vendor/jquery.tagsinput/src/jquery.tagsinput.js', 'public/js');
|
||||
mix.copy('resources/vendor/jquery.tagsinput/src/jquery.tagsinput.js', 'public/js');
|
||||
mix.copy('resources/assets/js/tags.js', 'public/js');
|
||||
|
||||
mix.sass('app.scss')
|
||||
.webpack([
|
||||
|
||||
+214
-315
@@ -2962,9 +2962,9 @@ input[type="checkbox"].disabled {
|
||||
}
|
||||
}
|
||||
|
||||
/*! Hint.css - v2.5.0 - 2017-04-23
|
||||
/*! Hint.css - v2.4.1 - 2016-11-08
|
||||
* http://kushagragour.in/lab/hint/
|
||||
* Copyright (c) 2017 Kushagra Gour */
|
||||
* Copyright (c) 2016 Kushagra Gour */
|
||||
[class*=hint--] {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -2978,13 +2978,16 @@ input[type="checkbox"].disabled {
|
||||
opacity: 0;
|
||||
z-index: 1000000;
|
||||
pointer-events: none;
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
-webkit-transition-delay: 0s;
|
||||
transition-delay: 0s;
|
||||
}
|
||||
|
||||
[class*=hint--]:hover:after, [class*=hint--]:hover:before {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
-webkit-transition-delay: .1s;
|
||||
transition-delay: .1s;
|
||||
}
|
||||
|
||||
@@ -3384,325 +3387,75 @@ input[type="checkbox"].disabled {
|
||||
}
|
||||
|
||||
.hint--no-animate:after, .hint--no-animate:before {
|
||||
-webkit-transition-duration: 0s;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
.hint--bounce:after, .hint--bounce:before {
|
||||
-webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24), -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
}
|
||||
|
||||
/*
|
||||
Trix 0.9.10
|
||||
Copyright © 2016 Basecamp, LLC
|
||||
http://trix-editor.org/*/
|
||||
trix-editor {
|
||||
color: #111;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
margin: 0;
|
||||
padding: 4px 8px;
|
||||
min-height: 54px;
|
||||
outline: none;
|
||||
div.tagsinput {
|
||||
border: 1px solid #CCC;
|
||||
background: #FFF;
|
||||
padding: 5px;
|
||||
width: 300px;
|
||||
height: 100px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
trix-toolbar * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group {
|
||||
display: inline-block;
|
||||
font-size: 0;
|
||||
margin: 0 8px 4px 0;
|
||||
border: 1px solid #bbb;
|
||||
border-top-color: #ccc;
|
||||
border-bottom-color: #888;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button, trix-toolbar .button_group input[type=button] {
|
||||
position: relative;
|
||||
font-size: 0;
|
||||
margin: 0;
|
||||
height: 28px;
|
||||
width: 40px;
|
||||
background: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button::before, trix-toolbar .button_group input[type=button]::before {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
opacity: .6;
|
||||
content: "";
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.active, trix-toolbar .button_group input[type=button].active {
|
||||
background: #cbeefa;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.active::before, trix-toolbar .button_group input[type=button].active::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button:disabled::before, trix-toolbar .button_group input[type=button]:disabled::before {
|
||||
opacity: .125;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button:not(:first-child), trix-toolbar .button_group input[type=button]:not(:first-child) {
|
||||
border-left: 1px solid #ccc;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 12px 8px;
|
||||
line-height: 12px;
|
||||
background: #fff;
|
||||
box-shadow: 0 0.3rem 1rem #ccc;
|
||||
border-top: 2px solid #888;
|
||||
border-radius: 5px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=button] {
|
||||
font-size: 12px;
|
||||
height: 24px;
|
||||
width: 50px;
|
||||
padding: 1px 8px 0 8px;
|
||||
width: auto;
|
||||
opacity: .6;
|
||||
-webkit-appearance: none;
|
||||
-webkit-border-radius: 0;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=url], trix-toolbar .dialogs .dialog input[type=text] {
|
||||
display: inline-block;
|
||||
height: 26px;
|
||||
font-size: 12px;
|
||||
padding: 0 8px;
|
||||
margin: 0 8px 0 0;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #bbb;
|
||||
background-color: #fff;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=url].validate:invalid, trix-toolbar .dialogs .dialog input[type=text].validate:invalid {
|
||||
box-shadow: #F00 0px 0px 1.5px 1px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog {
|
||||
min-width: 300px;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog .button_group {
|
||||
max-width: 110px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog input[type=url] {
|
||||
div.tagsinput span.tag {
|
||||
border: 1px solid #a5d24a;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: calc(100% - 120px);
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.bold::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M15.6%2011.8c1-.7%201.6-1.8%201.6-2.8a4%204%200%200%200-4-4H7v14h7c2%200%203.7-1.7%203.7-3.8%200-1.5-.8-2.8-2-3.4zM10%207.5h3a1.5%201.5%200%200%201%200%203h-3v-3zm3.5%209H10v-3h3.5a1.5%201.5%200%200%201%200%203z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.italic::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M10%205v3h2.2l-3.4%208H6v3h8v-3h-2.2l3.4-8H18V5h-8z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.link::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M9.88%2013.7a4.3%204.3%200%200%201%200-6.07l3.37-3.37a4.26%204.26%200%200%201%206.07%200%204.3%204.3%200%200%201%200%206.06l-1.96%201.72a.9.9%200%200%201-1.3-1.3l1.97-1.7a2.46%202.46%200%200%200-3.48-3.5l-3.38%203.38a2.46%202.46%200%200%200%200%203.48.9.9%200%200%201-1.3%201.3z%22%2F%3E%3Cpath%20d%3D%22M4.25%2019.46a4.3%204.3%200%200%201%200-6.07l1.93-1.9a.9.9%200%200%201%201.3%201.27l-1.93%201.9a2.46%202.46%200%200%200%203.48%203.5l3.37-3.4c.96-.95.96-2.5%200-3.47a.9.9%200%200%201%201.3-1.28%204.3%204.3%200%200%201%200%206.06l-3.38%203.38a4.26%204.26%200%200%201-6.07%200z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.strike::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.73%2014l.28.14c.3.15.5.3.6.44.1.14.2.3.2.5%200%20.3-.1.56-.4.75-.3.2-.75.3-1.4.3a13.52%2013.52%200%200%201-5-1.18v3.38a10.64%2010.64%200%200%200%204.86.88%209.5%209.5%200%200%200%203.28-.5c.93-.34%201.64-.9%202.14-1.54s.74-1.45.74-2.32c0-.25%200-.5-.05-.74h-5.2zm-5.5-4c-.08-.34-.12-.7-.12-1.1%200-1.3.6-2.3%201.6-3.02a7.75%207.75%200%200%201%204.4-1.08c1.6%200%203.3.34%205%201l-1.3%202.93c-1.47-.6-2.73-.9-3.8-.9-.55%200-.96.08-1.2.26a.7.7%200%200%200-.38.6c0%20.2.16.5.48.7.18.1.54.3%201.06.5h-5.7zM3%2013h18v-2H3v2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.quote::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M6%2017h3l2-4V7H5v6h3zm8%200h3l2-4V7h-6v6h3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.heading-1::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12%209v3H9v7H6v-7H3V9h9zM8%204h14v3h-6v12h-3V7H8V4z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.code::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.2%2012L15%2015.2l1.4%201.4L21%2012l-4.6-4.6L15%208.8l3.2%203.2zM5.8%2012L9%208.8%207.6%207.4%203%2012l4.6%204.6L9%2015.2%205.8%2012z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.bullets::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%204a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm4%203h14v-2H8v2zm0-6h14v-2H8v2zm0-8v2h14V5H8z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.numbers::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M2%2017h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1%203h1.8L2%2013v1h3v-1H3.2L5%2011v-1H2v1zm5-6v2h14V5H7zm0%2014h14v-2H7v2zm0-6h14v-2H7v2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.nesting-level.decrease::before, trix-toolbar .button_group button.block-level.decrease::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-8.3-.3l2.8%203L6%2014l-2.3-2%202-2-1.3-1.5L1%2012l.7.7zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.nesting-level.increase::before, trix-toolbar .button_group button.block-level.increase::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-7-1l-2%202.2%201.4%201.4L6%2012l-.8-.7-2.8-2.8L1%2010l2%202zm0-7v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.undo::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.5%208c-2.6%200-5%201-7%202.6L2%207v9h9l-3.6-3.6A8%208%200%200%201%2020%2016l2.4-.8a10.5%2010.5%200%200%200-10-7.2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.redo::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.4%2010.6a10.5%2010.5%200%200%200-17%204.6L4%2016a8%208%200%200%201%2012.6-3.6L13%2016h9V7l-3.6%203.6z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-editor [data-trix-mutable=true] {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
trix-editor [data-trix-mutable=true] img {
|
||||
box-shadow: 0 0 0 2px highlight;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
right: -12px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 24px;
|
||||
line-height: 22px;
|
||||
font-size: 0;
|
||||
color: black;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
text-decoration: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid #bbb;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
background: #cde69c;
|
||||
color: #638421;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
font-family: helvetica;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove:after {
|
||||
content: '×';
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
opacity: 0.6;
|
||||
div.tagsinput span.tag a {
|
||||
font-weight: 700;
|
||||
color: #82ad2b;
|
||||
text-decoration: none;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove:hover:after {
|
||||
opacity: 1;
|
||||
div.tagsinput input {
|
||||
width: 80px;
|
||||
margin: 0 5px 5px 0;
|
||||
font-family: helvetica;
|
||||
font-size: 13px;
|
||||
border: 1px solid transparent;
|
||||
padding: 5px;
|
||||
background: 0 0;
|
||||
color: #000;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
trix-editor .attachment .caption.caption-editing textarea {
|
||||
div.tagsinput div {
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.tags_clear {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
line-height: 13px;
|
||||
text-align: center;
|
||||
border: none;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.trix-content h1 {
|
||||
font-size: 1.6em;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.trix-content blockquote {
|
||||
margin: 0 0 0 5px;
|
||||
padding: 0 0 0 10px;
|
||||
border-left: 5px solid #ccc;
|
||||
}
|
||||
|
||||
.trix-content pre {
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
white-space: pre-wrap;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.trix-content ul, .trix-content ol, .trix-content li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.trix-content ul li, .trix-content ol li, .trix-content li li {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.trix-content img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.trix-content a[data-trix-attachment] {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.trix-content a[data-trix-attachment]:hover, .trix-content a[data-trix-attachment]:visited:hover {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.trix-content .attachment {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.trix-content .attachment.attachment-file {
|
||||
color: #333;
|
||||
line-height: 30px;
|
||||
padding: 0 16px;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.trix-content .attachment .caption {
|
||||
display: block;
|
||||
margin: 4px auto 0 auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.trix-content .attachment .caption .size:before {
|
||||
content: ' · ';
|
||||
.not_valid {
|
||||
background: #FBD8DB !important;
|
||||
color: #90111A !important;
|
||||
}
|
||||
|
||||
table.dataTable {
|
||||
@@ -7710,6 +7463,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #eee;
|
||||
background-image: -webkit-linear-gradient(#fcfcfc, #eee);
|
||||
background-image: linear-gradient(#fcfcfc, #eee);
|
||||
border: 1px solid #d5d5d5;
|
||||
border-radius: 3px;
|
||||
@@ -7722,6 +7476,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn:hover {
|
||||
background-color: #ddd;
|
||||
background-image: -webkit-linear-gradient(#eee, #ddd);
|
||||
background-image: linear-gradient(#eee, #ddd);
|
||||
border-color: #ccc;
|
||||
color: #333;
|
||||
@@ -7730,6 +7485,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-primary {
|
||||
background-color: #60b044;
|
||||
background-image: -webkit-linear-gradient(#8add6d, #60b044);
|
||||
background-image: linear-gradient(#8add6d, #60b044);
|
||||
border-color: #5ca941;
|
||||
color: #fff;
|
||||
@@ -7738,6 +7494,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #569e3d;
|
||||
background-image: -webkit-linear-gradient(#79d858, #569e3d);
|
||||
background-image: linear-gradient(#79d858, #569e3d);
|
||||
border-color: #4a993e;
|
||||
color: #fff;
|
||||
@@ -7749,6 +7506,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-danger:hover {
|
||||
background-color: #b33630;
|
||||
background-image: -webkit-linear-gradient(#dc5f59, #b33630);
|
||||
background-image: linear-gradient(#dc5f59, #b33630);
|
||||
border-color: #cd504a;
|
||||
color: #fff;
|
||||
@@ -8053,12 +7811,6 @@ header .main-cta {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.people-list #search-list .search {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.people-list .sidebar .sidebar-cta {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
@@ -8079,11 +7831,27 @@ header .main-cta {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.people-list .sidebar li .number-contacts-per-tag {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.people-list .list {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.people-list .clear-filter {
|
||||
border: 1px solid #eee;
|
||||
position: relative;
|
||||
padding: 6px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.people-list .clear-filter a {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.people-list .people-list-item {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 10px;
|
||||
@@ -8165,16 +7933,6 @@ header .main-cta {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-name {
|
||||
display: inline-block;
|
||||
margin-right: -9999px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100% - 198px);
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information {
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
@@ -8183,6 +7941,10 @@ header .main-cta {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information span {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@@ -8214,6 +7976,7 @@ header .main-cta {
|
||||
background-color: #f9f9fb;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information {
|
||||
@@ -8266,6 +8029,7 @@ header .main-cta {
|
||||
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary {
|
||||
padding-left: 100px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary li:not(:last-child) {
|
||||
@@ -8279,6 +8043,39 @@ header .main-cta {
|
||||
margin-left: 14px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm {
|
||||
padding-left: 100px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm #tags_tagsinput {
|
||||
height: 40px !important;
|
||||
min-height: 40px !important;
|
||||
width: 370px !important;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm .tagsFormActions {
|
||||
display: inline;
|
||||
position: relative;
|
||||
top: -17px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .tags {
|
||||
padding: 0;
|
||||
padding-left: 100px;
|
||||
list-style: none;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .tags li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.people-show .pagehead .edit-information {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
@@ -8657,13 +8454,35 @@ header .main-cta {
|
||||
.people-list .people-list-mobile li {
|
||||
padding: 6px 0;
|
||||
}
|
||||
.people-list .people-list-item .people-list-item-information {
|
||||
display: none;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information {
|
||||
margin-bottom: 20px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information h2 {
|
||||
padding-left: 80px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information h2 span {
|
||||
display: none;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm {
|
||||
display: block;
|
||||
margin-top: 40px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm #tags_tagsinput {
|
||||
width: 100% !important;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm .tagsFormActions {
|
||||
display: block;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary {
|
||||
padding-left: 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary li {
|
||||
display: block;
|
||||
margin-right: 0;
|
||||
@@ -8672,6 +8491,14 @@ header .main-cta {
|
||||
content: '';
|
||||
margin-left: 0;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .avatar {
|
||||
height: 67px;
|
||||
width: 67px;
|
||||
padding-top: 11px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .tags {
|
||||
padding-left: 80px;
|
||||
}
|
||||
.people-show .pagehead .edit-information {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
@@ -9034,10 +8861,19 @@ header .main-cta {
|
||||
background-color: #f7fbfc;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li.selected i {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li a {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li i {
|
||||
margin-right: 5px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.settings h3 {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
font-size: 20px;
|
||||
@@ -9256,6 +9092,15 @@ header .main-cta {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.settings .tags-list .tags-list-contact-number {
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.settings .tags-list .actions {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
@@ -9304,6 +9149,51 @@ header .main-cta {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
|
||||
.pretty-tag {
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding: 0 10px 0 19px;
|
||||
position: relative;
|
||||
margin: 0 10px 0 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.2s;
|
||||
}
|
||||
|
||||
.pretty-tag::before {
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: inset 0 1px rgba(0, 0, 0, 0.25);
|
||||
content: '';
|
||||
height: 6px;
|
||||
left: 7px;
|
||||
position: absolute;
|
||||
width: 6px;
|
||||
top: 9px;
|
||||
}
|
||||
|
||||
.pretty-tag:hover {
|
||||
background-color: #0366d6;
|
||||
}
|
||||
|
||||
.pretty-tag:hover a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pretty-tag a {
|
||||
text-decoration: none;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.pretty-tag a:hover {
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #323b43;
|
||||
}
|
||||
@@ -9417,6 +9307,8 @@ input:disabled {
|
||||
.btn {
|
||||
color: #24292e;
|
||||
background-color: #eff3f6;
|
||||
background-image: -webkit-linear-gradient(270deg, #fafbfc 0%, #eff3f6 90%);
|
||||
background-image: -webkit-linear-gradient(top, #fafbfc 0%, #eff3f6 90%);
|
||||
background-image: linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%);
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -9445,6 +9337,8 @@ input:disabled {
|
||||
.btn:hover, .btn:visited {
|
||||
text-decoration: none;
|
||||
background-color: #e6ebf1;
|
||||
background-image: -webkit-linear-gradient(270deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-image: -webkit-linear-gradient(top, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-image: linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-position: 0 -0.5em;
|
||||
background-repeat: repeat-x;
|
||||
@@ -9459,17 +9353,22 @@ input:disabled {
|
||||
}
|
||||
|
||||
.btn:disabled {
|
||||
background-image: -webkit-linear-gradient(top, #63b175 0%, #61986e 90%);
|
||||
background-image: linear-gradient(-180deg, #63b175 0%, #61986e 90%);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
background-image: -webkit-linear-gradient(270deg, #34d058 0%, #28a745 90%);
|
||||
background-image: -webkit-linear-gradient(top, #34d058 0%, #28a745 90%);
|
||||
background-image: linear-gradient(-180deg, #34d058 0%, #28a745 90%);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #269f42;
|
||||
background-image: -webkit-linear-gradient(270deg, #2fcb53 0%, #269f42 90%);
|
||||
background-image: -webkit-linear-gradient(top, #2fcb53 0%, #269f42 90%);
|
||||
background-image: linear-gradient(-180deg, #2fcb53 0%, #269f42 90%);
|
||||
background-position: 0 -0.5em;
|
||||
border-color: rgba(27, 31, 35, 0.5);
|
||||
File diff suppressed because one or more lines are too long
@@ -123,7 +123,7 @@ eval("/* (ignored) *///# sourceMappingURL=data:application/json;charset=utf-8;ba
|
||||
/* 9 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
eval("\n/**\n * First we will load all of this project's JavaScript dependencies which\n * include Vue and Vue Resource. This gives a great starting point for\n * building robust, powerful web applications using Vue and Laravel.\n */\n\n__webpack_require__(1);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\n//Vue.component('example', require('./components/people/dashboard/kids.vue'));\n\nvar app = new Vue({\n el: '#app',\n\n data: {\n activities_description_show: false,\n reminders_frequency: 'once',\n accept_invite_user: false,\n },\n methods: {\n },\n});\n\n$(document).ready(function() {\n} );\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9yZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcz84YjY3Il0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBGaXJzdCB3ZSB3aWxsIGxvYWQgYWxsIG9mIHRoaXMgcHJvamVjdCdzIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzIHdoaWNoXG4gKiBpbmNsdWRlIFZ1ZSBhbmQgVnVlIFJlc291cmNlLiBUaGlzIGdpdmVzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yXG4gKiBidWlsZGluZyByb2J1c3QsIHBvd2VyZnVsIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgVnVlIGFuZCBMYXJhdmVsLlxuICovXG5cbnJlcXVpcmUoJy4vYm9vdHN0cmFwJyk7XG5cbi8qKlxuICogTmV4dCwgd2Ugd2lsbCBjcmVhdGUgYSBmcmVzaCBWdWUgYXBwbGljYXRpb24gaW5zdGFuY2UgYW5kIGF0dGFjaCBpdCB0b1xuICogdGhlIHBhZ2UuIFRoZW4sIHlvdSBtYXkgYmVnaW4gYWRkaW5nIGNvbXBvbmVudHMgdG8gdGhpcyBhcHBsaWNhdGlvblxuICogb3IgY3VzdG9taXplIHRoZSBKYXZhU2NyaXB0IHNjYWZmb2xkaW5nIHRvIGZpdCB5b3VyIHVuaXF1ZSBuZWVkcy5cbiAqL1xuXG4vL1Z1ZS5jb21wb25lbnQoJ2V4YW1wbGUnLCByZXF1aXJlKCcuL2NvbXBvbmVudHMvcGVvcGxlL2Rhc2hib2FyZC9raWRzLnZ1ZScpKTtcblxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XG4gICAgZWw6ICcjYXBwJyxcblxuICAgIGRhdGE6IHtcbiAgICAgIGFjdGl2aXRpZXNfZGVzY3JpcHRpb25fc2hvdzogZmFsc2UsXG4gICAgICByZW1pbmRlcnNfZnJlcXVlbmN5OiAnb25jZScsXG4gICAgICBhY2NlcHRfaW52aXRlX3VzZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgIH0sXG59KTtcblxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG59ICk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gcmVzb3VyY2VzL2Fzc2V0cy9qcy9hcHAuanMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7QUFDQTs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=");
|
||||
eval("\n/**\n * First we will load all of this project's JavaScript dependencies which\n * include Vue and Vue Resource. This gives a great starting point for\n * building robust, powerful web applications using Vue and Laravel.\n */\n\n__webpack_require__(1);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\n//Vue.component('example', require('./components/people/dashboard/kids.vue'));\n\nvar app = new Vue({\n el: '#app',\n\n data: {\n activities_description_show: false,\n reminders_frequency: 'once',\n accept_invite_user: false,\n },\n methods: {\n },\n});\n\n// jQuery-Tags-Input for the tags on the contact\n$(document).ready(function() {\n} );\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9yZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcz84YjY3Il0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBGaXJzdCB3ZSB3aWxsIGxvYWQgYWxsIG9mIHRoaXMgcHJvamVjdCdzIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzIHdoaWNoXG4gKiBpbmNsdWRlIFZ1ZSBhbmQgVnVlIFJlc291cmNlLiBUaGlzIGdpdmVzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yXG4gKiBidWlsZGluZyByb2J1c3QsIHBvd2VyZnVsIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgVnVlIGFuZCBMYXJhdmVsLlxuICovXG5cbnJlcXVpcmUoJy4vYm9vdHN0cmFwJyk7XG5cbi8qKlxuICogTmV4dCwgd2Ugd2lsbCBjcmVhdGUgYSBmcmVzaCBWdWUgYXBwbGljYXRpb24gaW5zdGFuY2UgYW5kIGF0dGFjaCBpdCB0b1xuICogdGhlIHBhZ2UuIFRoZW4sIHlvdSBtYXkgYmVnaW4gYWRkaW5nIGNvbXBvbmVudHMgdG8gdGhpcyBhcHBsaWNhdGlvblxuICogb3IgY3VzdG9taXplIHRoZSBKYXZhU2NyaXB0IHNjYWZmb2xkaW5nIHRvIGZpdCB5b3VyIHVuaXF1ZSBuZWVkcy5cbiAqL1xuXG4vL1Z1ZS5jb21wb25lbnQoJ2V4YW1wbGUnLCByZXF1aXJlKCcuL2NvbXBvbmVudHMvcGVvcGxlL2Rhc2hib2FyZC9raWRzLnZ1ZScpKTtcblxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XG4gICAgZWw6ICcjYXBwJyxcblxuICAgIGRhdGE6IHtcbiAgICAgIGFjdGl2aXRpZXNfZGVzY3JpcHRpb25fc2hvdzogZmFsc2UsXG4gICAgICByZW1pbmRlcnNfZnJlcXVlbmN5OiAnb25jZScsXG4gICAgICBhY2NlcHRfaW52aXRlX3VzZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgIH0sXG59KTtcblxuLy8galF1ZXJ5LVRhZ3MtSW5wdXQgZm9yIHRoZSB0YWdzIG9uIHRoZSBjb250YWN0XG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbn0gKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyByZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7QUFPQTtBQUNBOzs7Ozs7Ozs7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=");
|
||||
|
||||
/***/ }
|
||||
/******/ ]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"css/app.css": "css/app-48dea24f08.css",
|
||||
"js/app.js": "js/app-6d25e34006.js"
|
||||
"css/app.css": "css/app-f87feda446.css",
|
||||
"js/app.js": "js/app-734718f1b0.js"
|
||||
}
|
||||
Vendored
+214
-315
@@ -2962,9 +2962,9 @@ input[type="checkbox"].disabled {
|
||||
}
|
||||
}
|
||||
|
||||
/*! Hint.css - v2.5.0 - 2017-04-23
|
||||
/*! Hint.css - v2.4.1 - 2016-11-08
|
||||
* http://kushagragour.in/lab/hint/
|
||||
* Copyright (c) 2017 Kushagra Gour */
|
||||
* Copyright (c) 2016 Kushagra Gour */
|
||||
[class*=hint--] {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -2978,13 +2978,16 @@ input[type="checkbox"].disabled {
|
||||
opacity: 0;
|
||||
z-index: 1000000;
|
||||
pointer-events: none;
|
||||
-webkit-transition: .3s ease;
|
||||
transition: .3s ease;
|
||||
-webkit-transition-delay: 0s;
|
||||
transition-delay: 0s;
|
||||
}
|
||||
|
||||
[class*=hint--]:hover:after, [class*=hint--]:hover:before {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
-webkit-transition-delay: .1s;
|
||||
transition-delay: .1s;
|
||||
}
|
||||
|
||||
@@ -3384,325 +3387,75 @@ input[type="checkbox"].disabled {
|
||||
}
|
||||
|
||||
.hint--no-animate:after, .hint--no-animate:before {
|
||||
-webkit-transition-duration: 0s;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
.hint--bounce:after, .hint--bounce:before {
|
||||
-webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24), -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
||||
}
|
||||
|
||||
/*
|
||||
Trix 0.9.10
|
||||
Copyright © 2016 Basecamp, LLC
|
||||
http://trix-editor.org/*/
|
||||
trix-editor {
|
||||
color: #111;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
margin: 0;
|
||||
padding: 4px 8px;
|
||||
min-height: 54px;
|
||||
outline: none;
|
||||
div.tagsinput {
|
||||
border: 1px solid #CCC;
|
||||
background: #FFF;
|
||||
padding: 5px;
|
||||
width: 300px;
|
||||
height: 100px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
trix-toolbar * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group {
|
||||
display: inline-block;
|
||||
font-size: 0;
|
||||
margin: 0 8px 4px 0;
|
||||
border: 1px solid #bbb;
|
||||
border-top-color: #ccc;
|
||||
border-bottom-color: #888;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button, trix-toolbar .button_group input[type=button] {
|
||||
position: relative;
|
||||
font-size: 0;
|
||||
margin: 0;
|
||||
height: 28px;
|
||||
width: 40px;
|
||||
background: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button::before, trix-toolbar .button_group input[type=button]::before {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
opacity: .6;
|
||||
content: "";
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.active, trix-toolbar .button_group input[type=button].active {
|
||||
background: #cbeefa;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.active::before, trix-toolbar .button_group input[type=button].active::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button:disabled::before, trix-toolbar .button_group input[type=button]:disabled::before {
|
||||
opacity: .125;
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button:not(:first-child), trix-toolbar .button_group input[type=button]:not(:first-child) {
|
||||
border-left: 1px solid #ccc;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 12px 8px;
|
||||
line-height: 12px;
|
||||
background: #fff;
|
||||
box-shadow: 0 0.3rem 1rem #ccc;
|
||||
border-top: 2px solid #888;
|
||||
border-radius: 5px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=button] {
|
||||
font-size: 12px;
|
||||
height: 24px;
|
||||
width: 50px;
|
||||
padding: 1px 8px 0 8px;
|
||||
width: auto;
|
||||
opacity: .6;
|
||||
-webkit-appearance: none;
|
||||
-webkit-border-radius: 0;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=url], trix-toolbar .dialogs .dialog input[type=text] {
|
||||
display: inline-block;
|
||||
height: 26px;
|
||||
font-size: 12px;
|
||||
padding: 0 8px;
|
||||
margin: 0 8px 0 0;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #bbb;
|
||||
background-color: #fff;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog input[type=url].validate:invalid, trix-toolbar .dialogs .dialog input[type=text].validate:invalid {
|
||||
box-shadow: #F00 0px 0px 1.5px 1px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog {
|
||||
min-width: 300px;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog .button_group {
|
||||
max-width: 110px;
|
||||
}
|
||||
|
||||
trix-toolbar .dialogs .dialog.link_dialog input[type=url] {
|
||||
div.tagsinput span.tag {
|
||||
border: 1px solid #a5d24a;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: calc(100% - 120px);
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.bold::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M15.6%2011.8c1-.7%201.6-1.8%201.6-2.8a4%204%200%200%200-4-4H7v14h7c2%200%203.7-1.7%203.7-3.8%200-1.5-.8-2.8-2-3.4zM10%207.5h3a1.5%201.5%200%200%201%200%203h-3v-3zm3.5%209H10v-3h3.5a1.5%201.5%200%200%201%200%203z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.italic::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M10%205v3h2.2l-3.4%208H6v3h8v-3h-2.2l3.4-8H18V5h-8z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.link::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M9.88%2013.7a4.3%204.3%200%200%201%200-6.07l3.37-3.37a4.26%204.26%200%200%201%206.07%200%204.3%204.3%200%200%201%200%206.06l-1.96%201.72a.9.9%200%200%201-1.3-1.3l1.97-1.7a2.46%202.46%200%200%200-3.48-3.5l-3.38%203.38a2.46%202.46%200%200%200%200%203.48.9.9%200%200%201-1.3%201.3z%22%2F%3E%3Cpath%20d%3D%22M4.25%2019.46a4.3%204.3%200%200%201%200-6.07l1.93-1.9a.9.9%200%200%201%201.3%201.27l-1.93%201.9a2.46%202.46%200%200%200%203.48%203.5l3.37-3.4c.96-.95.96-2.5%200-3.47a.9.9%200%200%201%201.3-1.28%204.3%204.3%200%200%201%200%206.06l-3.38%203.38a4.26%204.26%200%200%201-6.07%200z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.strike::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.73%2014l.28.14c.3.15.5.3.6.44.1.14.2.3.2.5%200%20.3-.1.56-.4.75-.3.2-.75.3-1.4.3a13.52%2013.52%200%200%201-5-1.18v3.38a10.64%2010.64%200%200%200%204.86.88%209.5%209.5%200%200%200%203.28-.5c.93-.34%201.64-.9%202.14-1.54s.74-1.45.74-2.32c0-.25%200-.5-.05-.74h-5.2zm-5.5-4c-.08-.34-.12-.7-.12-1.1%200-1.3.6-2.3%201.6-3.02a7.75%207.75%200%200%201%204.4-1.08c1.6%200%203.3.34%205%201l-1.3%202.93c-1.47-.6-2.73-.9-3.8-.9-.55%200-.96.08-1.2.26a.7.7%200%200%200-.38.6c0%20.2.16.5.48.7.18.1.54.3%201.06.5h-5.7zM3%2013h18v-2H3v2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.quote::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M6%2017h3l2-4V7H5v6h3zm8%200h3l2-4V7h-6v6h3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.heading-1::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12%209v3H9v7H6v-7H3V9h9zM8%204h14v3h-6v12h-3V7H8V4z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.code::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.2%2012L15%2015.2l1.4%201.4L21%2012l-4.6-4.6L15%208.8l3.2%203.2zM5.8%2012L9%208.8%207.6%207.4%203%2012l4.6%204.6L9%2015.2%205.8%2012z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.bullets::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%204a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm4%203h14v-2H8v2zm0-6h14v-2H8v2zm0-8v2h14V5H8z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.numbers::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M2%2017h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1%203h1.8L2%2013v1h3v-1H3.2L5%2011v-1H2v1zm5-6v2h14V5H7zm0%2014h14v-2H7v2zm0-6h14v-2H7v2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.nesting-level.decrease::before, trix-toolbar .button_group button.block-level.decrease::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-8.3-.3l2.8%203L6%2014l-2.3-2%202-2-1.3-1.5L1%2012l.7.7zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.nesting-level.increase::before, trix-toolbar .button_group button.block-level.increase::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-7-1l-2%202.2%201.4%201.4L6%2012l-.8-.7-2.8-2.8L1%2010l2%202zm0-7v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.undo::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.5%208c-2.6%200-5%201-7%202.6L2%207v9h9l-3.6-3.6A8%208%200%200%201%2020%2016l2.4-.8a10.5%2010.5%200%200%200-10-7.2z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-toolbar .button_group button.redo::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.4%2010.6a10.5%2010.5%200%200%200-17%204.6L4%2016a8%208%200%200%201%2012.6-3.6L13%2016h9V7l-3.6%203.6z%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
|
||||
trix-editor [data-trix-mutable=true] {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
trix-editor [data-trix-mutable=true] img {
|
||||
box-shadow: 0 0 0 2px highlight;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
right: -12px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 24px;
|
||||
line-height: 22px;
|
||||
font-size: 0;
|
||||
color: black;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
text-decoration: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid #bbb;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
background: #cde69c;
|
||||
color: #638421;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
font-family: helvetica;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove:after {
|
||||
content: '×';
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
opacity: 0.6;
|
||||
div.tagsinput span.tag a {
|
||||
font-weight: 700;
|
||||
color: #82ad2b;
|
||||
text-decoration: none;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
trix-editor .attachment .remove:hover:after {
|
||||
opacity: 1;
|
||||
div.tagsinput input {
|
||||
width: 80px;
|
||||
margin: 0 5px 5px 0;
|
||||
font-family: helvetica;
|
||||
font-size: 13px;
|
||||
border: 1px solid transparent;
|
||||
padding: 5px;
|
||||
background: 0 0;
|
||||
color: #000;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
trix-editor .attachment .caption.caption-editing textarea {
|
||||
div.tagsinput div {
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.tags_clear {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
line-height: 13px;
|
||||
text-align: center;
|
||||
border: none;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.trix-content h1 {
|
||||
font-size: 1.6em;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.trix-content blockquote {
|
||||
margin: 0 0 0 5px;
|
||||
padding: 0 0 0 10px;
|
||||
border-left: 5px solid #ccc;
|
||||
}
|
||||
|
||||
.trix-content pre {
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
white-space: pre-wrap;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.trix-content ul, .trix-content ol, .trix-content li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.trix-content ul li, .trix-content ol li, .trix-content li li {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.trix-content img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.trix-content a[data-trix-attachment] {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.trix-content a[data-trix-attachment]:hover, .trix-content a[data-trix-attachment]:visited:hover {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.trix-content .attachment {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.trix-content .attachment.attachment-file {
|
||||
color: #333;
|
||||
line-height: 30px;
|
||||
padding: 0 16px;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.trix-content .attachment .caption {
|
||||
display: block;
|
||||
margin: 4px auto 0 auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.trix-content .attachment .caption .size:before {
|
||||
content: ' · ';
|
||||
.not_valid {
|
||||
background: #FBD8DB !important;
|
||||
color: #90111A !important;
|
||||
}
|
||||
|
||||
table.dataTable {
|
||||
@@ -7710,6 +7463,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #eee;
|
||||
background-image: -webkit-linear-gradient(#fcfcfc, #eee);
|
||||
background-image: linear-gradient(#fcfcfc, #eee);
|
||||
border: 1px solid #d5d5d5;
|
||||
border-radius: 3px;
|
||||
@@ -7722,6 +7476,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn:hover {
|
||||
background-color: #ddd;
|
||||
background-image: -webkit-linear-gradient(#eee, #ddd);
|
||||
background-image: linear-gradient(#eee, #ddd);
|
||||
border-color: #ccc;
|
||||
color: #333;
|
||||
@@ -7730,6 +7485,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-primary {
|
||||
background-color: #60b044;
|
||||
background-image: -webkit-linear-gradient(#8add6d, #60b044);
|
||||
background-image: linear-gradient(#8add6d, #60b044);
|
||||
border-color: #5ca941;
|
||||
color: #fff;
|
||||
@@ -7738,6 +7494,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #569e3d;
|
||||
background-image: -webkit-linear-gradient(#79d858, #569e3d);
|
||||
background-image: linear-gradient(#79d858, #569e3d);
|
||||
border-color: #4a993e;
|
||||
color: #fff;
|
||||
@@ -7749,6 +7506,7 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:las
|
||||
|
||||
.btn-danger:hover {
|
||||
background-color: #b33630;
|
||||
background-image: -webkit-linear-gradient(#dc5f59, #b33630);
|
||||
background-image: linear-gradient(#dc5f59, #b33630);
|
||||
border-color: #cd504a;
|
||||
color: #fff;
|
||||
@@ -8053,12 +7811,6 @@ header .main-cta {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.people-list #search-list .search {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.people-list .sidebar .sidebar-cta {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
@@ -8079,11 +7831,27 @@ header .main-cta {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.people-list .sidebar li .number-contacts-per-tag {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.people-list .list {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.people-list .clear-filter {
|
||||
border: 1px solid #eee;
|
||||
position: relative;
|
||||
padding: 6px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.people-list .clear-filter a {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.people-list .people-list-item {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 10px;
|
||||
@@ -8165,16 +7933,6 @@ header .main-cta {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-name {
|
||||
display: inline-block;
|
||||
margin-right: -9999px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100% - 198px);
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information {
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
@@ -8183,6 +7941,10 @@ header .main-cta {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.people-list .people-list-item .people-list-item-information span {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@@ -8214,6 +7976,7 @@ header .main-cta {
|
||||
background-color: #f9f9fb;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information {
|
||||
@@ -8266,6 +8029,7 @@ header .main-cta {
|
||||
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary {
|
||||
padding-left: 100px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary li:not(:last-child) {
|
||||
@@ -8279,6 +8043,39 @@ header .main-cta {
|
||||
margin-left: 14px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm {
|
||||
padding-left: 100px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm #tags_tagsinput {
|
||||
height: 40px !important;
|
||||
min-height: 40px !important;
|
||||
width: 370px !important;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information #tagsForm .tagsFormActions {
|
||||
display: inline;
|
||||
position: relative;
|
||||
top: -17px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .tags {
|
||||
padding: 0;
|
||||
padding-left: 100px;
|
||||
list-style: none;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.people-show .pagehead .people-profile-information .tags li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.people-show .pagehead .edit-information {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
@@ -8657,13 +8454,35 @@ header .main-cta {
|
||||
.people-list .people-list-mobile li {
|
||||
padding: 6px 0;
|
||||
}
|
||||
.people-list .people-list-item .people-list-item-information {
|
||||
display: none;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information {
|
||||
margin-bottom: 20px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information h2 {
|
||||
padding-left: 80px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information h2 span {
|
||||
display: none;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm {
|
||||
display: block;
|
||||
margin-top: 40px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm #tags_tagsinput {
|
||||
width: 100% !important;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information #tagsForm .tagsFormActions {
|
||||
display: block;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary {
|
||||
padding-left: 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .profile-detail-summary li {
|
||||
display: block;
|
||||
margin-right: 0;
|
||||
@@ -8672,6 +8491,14 @@ header .main-cta {
|
||||
content: '';
|
||||
margin-left: 0;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .avatar {
|
||||
height: 67px;
|
||||
width: 67px;
|
||||
padding-top: 11px;
|
||||
}
|
||||
.people-show .pagehead .people-profile-information .tags {
|
||||
padding-left: 80px;
|
||||
}
|
||||
.people-show .pagehead .edit-information {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
@@ -9034,10 +8861,19 @@ header .main-cta {
|
||||
background-color: #f7fbfc;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li.selected i {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li a {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.settings .sidebar-menu li i {
|
||||
margin-right: 5px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.settings h3 {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
font-size: 20px;
|
||||
@@ -9256,6 +9092,15 @@ header .main-cta {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.settings .tags-list .tags-list-contact-number {
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.settings .tags-list .actions {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
@@ -9304,6 +9149,51 @@ header .main-cta {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
|
||||
.pretty-tag {
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding: 0 10px 0 19px;
|
||||
position: relative;
|
||||
margin: 0 10px 0 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.2s;
|
||||
}
|
||||
|
||||
.pretty-tag::before {
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: inset 0 1px rgba(0, 0, 0, 0.25);
|
||||
content: '';
|
||||
height: 6px;
|
||||
left: 7px;
|
||||
position: absolute;
|
||||
width: 6px;
|
||||
top: 9px;
|
||||
}
|
||||
|
||||
.pretty-tag:hover {
|
||||
background-color: #0366d6;
|
||||
}
|
||||
|
||||
.pretty-tag:hover a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pretty-tag a {
|
||||
text-decoration: none;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.pretty-tag a:hover {
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #323b43;
|
||||
}
|
||||
@@ -9417,6 +9307,8 @@ input:disabled {
|
||||
.btn {
|
||||
color: #24292e;
|
||||
background-color: #eff3f6;
|
||||
background-image: -webkit-linear-gradient(270deg, #fafbfc 0%, #eff3f6 90%);
|
||||
background-image: -webkit-linear-gradient(top, #fafbfc 0%, #eff3f6 90%);
|
||||
background-image: linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%);
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -9445,6 +9337,8 @@ input:disabled {
|
||||
.btn:hover, .btn:visited {
|
||||
text-decoration: none;
|
||||
background-color: #e6ebf1;
|
||||
background-image: -webkit-linear-gradient(270deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-image: -webkit-linear-gradient(top, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-image: linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-position: 0 -0.5em;
|
||||
background-repeat: repeat-x;
|
||||
@@ -9459,17 +9353,22 @@ input:disabled {
|
||||
}
|
||||
|
||||
.btn:disabled {
|
||||
background-image: -webkit-linear-gradient(top, #63b175 0%, #61986e 90%);
|
||||
background-image: linear-gradient(-180deg, #63b175 0%, #61986e 90%);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
background-image: -webkit-linear-gradient(270deg, #34d058 0%, #28a745 90%);
|
||||
background-image: -webkit-linear-gradient(top, #34d058 0%, #28a745 90%);
|
||||
background-image: linear-gradient(-180deg, #34d058 0%, #28a745 90%);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #269f42;
|
||||
background-image: -webkit-linear-gradient(270deg, #2fcb53 0%, #269f42 90%);
|
||||
background-image: -webkit-linear-gradient(top, #2fcb53 0%, #269f42 90%);
|
||||
background-image: linear-gradient(-180deg, #2fcb53 0%, #269f42 90%);
|
||||
background-position: 0 -0.5em;
|
||||
border-color: rgba(27, 31, 35, 0.5);
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
@@ -123,7 +123,7 @@ eval("/* (ignored) *///# sourceMappingURL=data:application/json;charset=utf-8;ba
|
||||
/* 9 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
eval("\n/**\n * First we will load all of this project's JavaScript dependencies which\n * include Vue and Vue Resource. This gives a great starting point for\n * building robust, powerful web applications using Vue and Laravel.\n */\n\n__webpack_require__(1);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\n//Vue.component('example', require('./components/people/dashboard/kids.vue'));\n\nvar app = new Vue({\n el: '#app',\n\n data: {\n activities_description_show: false,\n reminders_frequency: 'once',\n accept_invite_user: false,\n },\n methods: {\n },\n});\n\n$(document).ready(function() {\n} );\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9yZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcz84YjY3Il0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBGaXJzdCB3ZSB3aWxsIGxvYWQgYWxsIG9mIHRoaXMgcHJvamVjdCdzIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzIHdoaWNoXG4gKiBpbmNsdWRlIFZ1ZSBhbmQgVnVlIFJlc291cmNlLiBUaGlzIGdpdmVzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yXG4gKiBidWlsZGluZyByb2J1c3QsIHBvd2VyZnVsIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgVnVlIGFuZCBMYXJhdmVsLlxuICovXG5cbnJlcXVpcmUoJy4vYm9vdHN0cmFwJyk7XG5cbi8qKlxuICogTmV4dCwgd2Ugd2lsbCBjcmVhdGUgYSBmcmVzaCBWdWUgYXBwbGljYXRpb24gaW5zdGFuY2UgYW5kIGF0dGFjaCBpdCB0b1xuICogdGhlIHBhZ2UuIFRoZW4sIHlvdSBtYXkgYmVnaW4gYWRkaW5nIGNvbXBvbmVudHMgdG8gdGhpcyBhcHBsaWNhdGlvblxuICogb3IgY3VzdG9taXplIHRoZSBKYXZhU2NyaXB0IHNjYWZmb2xkaW5nIHRvIGZpdCB5b3VyIHVuaXF1ZSBuZWVkcy5cbiAqL1xuXG4vL1Z1ZS5jb21wb25lbnQoJ2V4YW1wbGUnLCByZXF1aXJlKCcuL2NvbXBvbmVudHMvcGVvcGxlL2Rhc2hib2FyZC9raWRzLnZ1ZScpKTtcblxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XG4gICAgZWw6ICcjYXBwJyxcblxuICAgIGRhdGE6IHtcbiAgICAgIGFjdGl2aXRpZXNfZGVzY3JpcHRpb25fc2hvdzogZmFsc2UsXG4gICAgICByZW1pbmRlcnNfZnJlcXVlbmN5OiAnb25jZScsXG4gICAgICBhY2NlcHRfaW52aXRlX3VzZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgIH0sXG59KTtcblxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG59ICk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gcmVzb3VyY2VzL2Fzc2V0cy9qcy9hcHAuanMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7QUFDQTs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=");
|
||||
eval("\n/**\n * First we will load all of this project's JavaScript dependencies which\n * include Vue and Vue Resource. This gives a great starting point for\n * building robust, powerful web applications using Vue and Laravel.\n */\n\n__webpack_require__(1);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\n//Vue.component('example', require('./components/people/dashboard/kids.vue'));\n\nvar app = new Vue({\n el: '#app',\n\n data: {\n activities_description_show: false,\n reminders_frequency: 'once',\n accept_invite_user: false,\n },\n methods: {\n },\n});\n\n// jQuery-Tags-Input for the tags on the contact\n$(document).ready(function() {\n} );\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9yZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcz84YjY3Il0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBGaXJzdCB3ZSB3aWxsIGxvYWQgYWxsIG9mIHRoaXMgcHJvamVjdCdzIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzIHdoaWNoXG4gKiBpbmNsdWRlIFZ1ZSBhbmQgVnVlIFJlc291cmNlLiBUaGlzIGdpdmVzIGEgZ3JlYXQgc3RhcnRpbmcgcG9pbnQgZm9yXG4gKiBidWlsZGluZyByb2J1c3QsIHBvd2VyZnVsIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgVnVlIGFuZCBMYXJhdmVsLlxuICovXG5cbnJlcXVpcmUoJy4vYm9vdHN0cmFwJyk7XG5cbi8qKlxuICogTmV4dCwgd2Ugd2lsbCBjcmVhdGUgYSBmcmVzaCBWdWUgYXBwbGljYXRpb24gaW5zdGFuY2UgYW5kIGF0dGFjaCBpdCB0b1xuICogdGhlIHBhZ2UuIFRoZW4sIHlvdSBtYXkgYmVnaW4gYWRkaW5nIGNvbXBvbmVudHMgdG8gdGhpcyBhcHBsaWNhdGlvblxuICogb3IgY3VzdG9taXplIHRoZSBKYXZhU2NyaXB0IHNjYWZmb2xkaW5nIHRvIGZpdCB5b3VyIHVuaXF1ZSBuZWVkcy5cbiAqL1xuXG4vL1Z1ZS5jb21wb25lbnQoJ2V4YW1wbGUnLCByZXF1aXJlKCcuL2NvbXBvbmVudHMvcGVvcGxlL2Rhc2hib2FyZC9raWRzLnZ1ZScpKTtcblxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XG4gICAgZWw6ICcjYXBwJyxcblxuICAgIGRhdGE6IHtcbiAgICAgIGFjdGl2aXRpZXNfZGVzY3JpcHRpb25fc2hvdzogZmFsc2UsXG4gICAgICByZW1pbmRlcnNfZnJlcXVlbmN5OiAnb25jZScsXG4gICAgICBhY2NlcHRfaW52aXRlX3VzZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgIH0sXG59KTtcblxuLy8galF1ZXJ5LVRhZ3MtSW5wdXQgZm9yIHRoZSB0YWdzIG9uIHRoZSBjb250YWN0XG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbn0gKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyByZXNvdXJjZXMvYXNzZXRzL2pzL2FwcC5qcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7QUFPQTtBQUNBOzs7Ozs7Ozs7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=");
|
||||
|
||||
/***/ }
|
||||
/******/ ]);
|
||||
@@ -0,0 +1,390 @@
|
||||
/*
|
||||
|
||||
jQuery Tags Input Plugin 1.3.3
|
||||
|
||||
Copyright (c) 2011 XOXCO, Inc
|
||||
|
||||
Documentation for this plugin lives here:
|
||||
http://xoxco.com/clickable/jquery-tags-input
|
||||
|
||||
Licensed under the MIT license:
|
||||
http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
ben@xoxco.com
|
||||
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var delimiter = new Array();
|
||||
var tags_callbacks = new Array();
|
||||
$.fn.doAutosize = function(o){
|
||||
var minWidth = $(this).data('minwidth'),
|
||||
maxWidth = $(this).data('maxwidth'),
|
||||
val = '',
|
||||
input = $(this),
|
||||
testSubject = $('#'+$(this).data('tester_id'));
|
||||
|
||||
if (val === (val = input.val())) {return;}
|
||||
|
||||
// Enter new content into testSubject
|
||||
var escaped = val.replace(/&/g, '&').replace(/\s/g,' ').replace(/</g, '<').replace(/>/g, '>');
|
||||
testSubject.html(escaped);
|
||||
// Calculate new width + whether to change
|
||||
var testerWidth = testSubject.width(),
|
||||
newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
|
||||
currentWidth = input.width(),
|
||||
isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
|
||||
|| (newWidth > minWidth && newWidth < maxWidth);
|
||||
|
||||
// Animate width
|
||||
if (isValidWidthChange) {
|
||||
input.width(newWidth);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
$.fn.resetAutosize = function(options){
|
||||
// alert(JSON.stringify(options));
|
||||
var minWidth = $(this).data('minwidth') || options.minInputWidth || $(this).width(),
|
||||
maxWidth = $(this).data('maxwidth') || options.maxInputWidth || ($(this).closest('.tagsinput').width() - options.inputPadding),
|
||||
val = '',
|
||||
input = $(this),
|
||||
testSubject = $('<tester/>').css({
|
||||
position: 'absolute',
|
||||
top: -9999,
|
||||
left: -9999,
|
||||
width: 'auto',
|
||||
fontSize: input.css('fontSize'),
|
||||
fontFamily: input.css('fontFamily'),
|
||||
fontWeight: input.css('fontWeight'),
|
||||
letterSpacing: input.css('letterSpacing'),
|
||||
whiteSpace: 'nowrap'
|
||||
}),
|
||||
testerId = $(this).attr('id')+'_autosize_tester';
|
||||
if(! $('#'+testerId).length > 0){
|
||||
testSubject.attr('id', testerId);
|
||||
testSubject.appendTo('body');
|
||||
}
|
||||
|
||||
input.data('minwidth', minWidth);
|
||||
input.data('maxwidth', maxWidth);
|
||||
input.data('tester_id', testerId);
|
||||
input.css('width', minWidth);
|
||||
};
|
||||
|
||||
$.fn.addTag = function(value,options) {
|
||||
options = jQuery.extend({focus:false,callback:true},options);
|
||||
this.each(function() {
|
||||
var id = $(this).attr('id');
|
||||
|
||||
var tagslist = $(this).val().split(delimiter[id]);
|
||||
if (tagslist[0] == '') {
|
||||
tagslist = new Array();
|
||||
}
|
||||
|
||||
value = jQuery.trim(value);
|
||||
|
||||
if (options.unique) {
|
||||
var skipTag = $(this).tagExist(value);
|
||||
if(skipTag == true) {
|
||||
//Marks fake input as not_valid to let styling it
|
||||
$('#'+id+'_tag').addClass('not_valid');
|
||||
}
|
||||
} else {
|
||||
var skipTag = false;
|
||||
}
|
||||
|
||||
if (value !='' && skipTag != true) {
|
||||
$('<span>').addClass('tag').append(
|
||||
$('<span>').text(value).append(' '),
|
||||
$('<a>', {
|
||||
href : '#',
|
||||
title : 'Removing tag',
|
||||
text : 'x'
|
||||
}).click(function () {
|
||||
return $('#' + id).removeTag(escape(value));
|
||||
})
|
||||
).insertBefore('#' + id + '_addTag');
|
||||
|
||||
tagslist.push(value);
|
||||
|
||||
$('#'+id+'_tag').val('');
|
||||
if (options.focus) {
|
||||
$('#'+id+'_tag').focus();
|
||||
} else {
|
||||
$('#'+id+'_tag').blur();
|
||||
}
|
||||
|
||||
$.fn.tagsInput.updateTagsField(this,tagslist);
|
||||
|
||||
if (options.callback && tags_callbacks[id] && tags_callbacks[id]['onAddTag']) {
|
||||
var f = tags_callbacks[id]['onAddTag'];
|
||||
f.call(this, value);
|
||||
}
|
||||
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
|
||||
{
|
||||
var i = tagslist.length;
|
||||
var f = tags_callbacks[id]['onChange'];
|
||||
f.call(this, $(this), tagslist[i-1]);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
$.fn.removeTag = function(value) {
|
||||
value = unescape(value);
|
||||
this.each(function() {
|
||||
var id = $(this).attr('id');
|
||||
|
||||
var old = $(this).val().split(delimiter[id]);
|
||||
|
||||
$('#'+id+'_tagsinput .tag').remove();
|
||||
str = '';
|
||||
for (i=0; i< old.length; i++) {
|
||||
if (old[i]!=value) {
|
||||
str = str + delimiter[id] +old[i];
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.tagsInput.importTags(this,str);
|
||||
|
||||
if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
|
||||
var f = tags_callbacks[id]['onRemoveTag'];
|
||||
f.call(this, value);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
$.fn.tagExist = function(val) {
|
||||
var id = $(this).attr('id');
|
||||
var tagslist = $(this).val().split(delimiter[id]);
|
||||
return (jQuery.inArray(val, tagslist) >= 0); //true when tag exists, false when not
|
||||
};
|
||||
|
||||
// clear all existing tags and import new ones from a string
|
||||
$.fn.importTags = function(str) {
|
||||
var id = $(this).attr('id');
|
||||
$('#'+id+'_tagsinput .tag').remove();
|
||||
$.fn.tagsInput.importTags(this,str);
|
||||
}
|
||||
|
||||
$.fn.tagsInput = function(options) {
|
||||
var settings = jQuery.extend({
|
||||
interactive:true,
|
||||
defaultText:'add a tag',
|
||||
minChars:0,
|
||||
width:'300px',
|
||||
height:'100px',
|
||||
autocomplete: {selectFirst: false },
|
||||
hide:true,
|
||||
delimiter: ',',
|
||||
unique:true,
|
||||
removeWithBackspace:true,
|
||||
placeholderColor:'#666666',
|
||||
autosize: true,
|
||||
comfortZone: 20,
|
||||
inputPadding: 6*2
|
||||
},options);
|
||||
|
||||
var uniqueIdCounter = 0;
|
||||
|
||||
this.each(function() {
|
||||
// If we have already initialized the field, do not do it again
|
||||
if (typeof $(this).attr('data-tagsinput-init') !== 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Mark the field as having been initialized
|
||||
$(this).attr('data-tagsinput-init', true);
|
||||
|
||||
if (settings.hide) {
|
||||
$(this).hide();
|
||||
}
|
||||
var id = $(this).attr('id');
|
||||
if (!id || delimiter[$(this).attr('id')]) {
|
||||
id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id');
|
||||
}
|
||||
|
||||
var data = jQuery.extend({
|
||||
pid:id,
|
||||
real_input: '#'+id,
|
||||
holder: '#'+id+'_tagsinput',
|
||||
input_wrapper: '#'+id+'_addTag',
|
||||
fake_input: '#'+id+'_tag'
|
||||
},settings);
|
||||
|
||||
delimiter[id] = data.delimiter;
|
||||
|
||||
if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
|
||||
tags_callbacks[id] = new Array();
|
||||
tags_callbacks[id]['onAddTag'] = settings.onAddTag;
|
||||
tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
|
||||
tags_callbacks[id]['onChange'] = settings.onChange;
|
||||
}
|
||||
|
||||
var markup = '<div id="'+id+'_tagsinput" class="tagsinput"><div id="'+id+'_addTag">';
|
||||
|
||||
if (settings.interactive) {
|
||||
markup = markup + '<input id="'+id+'_tag" value="" data-default="'+settings.defaultText+'" />';
|
||||
}
|
||||
|
||||
markup = markup + '</div><div class="tags_clear"></div></div>';
|
||||
|
||||
$(markup).insertAfter(this);
|
||||
|
||||
$(data.holder).css('width',settings.width);
|
||||
$(data.holder).css('min-height',settings.height);
|
||||
$(data.holder).css('height',settings.height);
|
||||
|
||||
if ($(data.real_input).val()!='') {
|
||||
$.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
|
||||
}
|
||||
if (settings.interactive) {
|
||||
$(data.fake_input).val($(data.fake_input).attr('data-default'));
|
||||
$(data.fake_input).css('color',settings.placeholderColor);
|
||||
$(data.fake_input).resetAutosize(settings);
|
||||
|
||||
$(data.holder).bind('click',data,function(event) {
|
||||
$(event.data.fake_input).focus();
|
||||
});
|
||||
|
||||
$(data.fake_input).bind('focus',data,function(event) {
|
||||
if ($(event.data.fake_input).val()==$(event.data.fake_input).attr('data-default')) {
|
||||
$(event.data.fake_input).val('');
|
||||
}
|
||||
$(event.data.fake_input).css('color','#000000');
|
||||
});
|
||||
|
||||
if (settings.autocomplete_url != undefined) {
|
||||
autocomplete_options = {source: settings.autocomplete_url};
|
||||
for (attrname in settings.autocomplete) {
|
||||
autocomplete_options[attrname] = settings.autocomplete[attrname];
|
||||
}
|
||||
|
||||
if (jQuery.Autocompleter !== undefined) {
|
||||
$(data.fake_input).autocomplete(settings.autocomplete_url, settings.autocomplete);
|
||||
$(data.fake_input).bind('result',data,function(event,data,formatted) {
|
||||
if (data) {
|
||||
$('#'+id).addTag(data[0] + "",{focus:true,unique:(settings.unique)});
|
||||
}
|
||||
});
|
||||
} else if (jQuery.ui.autocomplete !== undefined) {
|
||||
$(data.fake_input).autocomplete(autocomplete_options);
|
||||
$(data.fake_input).bind('autocompleteselect',data,function(event,ui) {
|
||||
$(event.data.real_input).addTag(ui.item.value,{focus:true,unique:(settings.unique)});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
// if a user tabs out of the field, create a new tag
|
||||
// this is only available if autocomplete is not used.
|
||||
$(data.fake_input).bind('blur',data,function(event) {
|
||||
var d = $(this).attr('data-default');
|
||||
if ($(event.data.fake_input).val()!='' && $(event.data.fake_input).val()!=d) {
|
||||
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
|
||||
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
|
||||
} else {
|
||||
$(event.data.fake_input).val($(event.data.fake_input).attr('data-default'));
|
||||
$(event.data.fake_input).css('color',settings.placeholderColor);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
// if user types a default delimiter like comma,semicolon and then create a new tag
|
||||
$(data.fake_input).bind('keypress',data,function(event) {
|
||||
if (_checkDelimiter(event)) {
|
||||
event.preventDefault();
|
||||
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
|
||||
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
|
||||
$(event.data.fake_input).resetAutosize(settings);
|
||||
return false;
|
||||
} else if (event.data.autosize) {
|
||||
$(event.data.fake_input).doAutosize(settings);
|
||||
|
||||
}
|
||||
});
|
||||
//Delete last tag on backspace
|
||||
data.removeWithBackspace && $(data.fake_input).bind('keydown', function(event)
|
||||
{
|
||||
if(event.keyCode == 8 && $(this).val() == '')
|
||||
{
|
||||
event.preventDefault();
|
||||
var last_tag = $(this).closest('.tagsinput').find('.tag:last').text();
|
||||
var id = $(this).attr('id').replace(/_tag$/, '');
|
||||
last_tag = last_tag.replace(/[\s]+x$/, '');
|
||||
$('#' + id).removeTag(escape(last_tag));
|
||||
$(this).trigger('focus');
|
||||
}
|
||||
});
|
||||
$(data.fake_input).blur();
|
||||
|
||||
//Removes the not_valid class when user changes the value of the fake input
|
||||
if(data.unique) {
|
||||
$(data.fake_input).keydown(function(event){
|
||||
if(event.keyCode == 8 || String.fromCharCode(event.which).match(/\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)) {
|
||||
$(this).removeClass('not_valid');
|
||||
}
|
||||
});
|
||||
}
|
||||
} // if settings.interactive
|
||||
});
|
||||
|
||||
return this;
|
||||
|
||||
};
|
||||
|
||||
$.fn.tagsInput.updateTagsField = function(obj,tagslist) {
|
||||
var id = $(obj).attr('id');
|
||||
$(obj).val(tagslist.join(delimiter[id]));
|
||||
};
|
||||
|
||||
$.fn.tagsInput.importTags = function(obj,val) {
|
||||
$(obj).val('');
|
||||
var id = $(obj).attr('id');
|
||||
var tags = val.split(delimiter[id]);
|
||||
for (i=0; i<tags.length; i++) {
|
||||
$(obj).addTag(tags[i],{focus:false,callback:false});
|
||||
}
|
||||
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
|
||||
{
|
||||
var f = tags_callbacks[id]['onChange'];
|
||||
f.call(obj, obj, tags[i]);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* check delimiter Array
|
||||
* @param event
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
*/
|
||||
var _checkDelimiter = function(event){
|
||||
var found = false;
|
||||
if (event.which == 13) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (typeof event.data.delimiter === 'string') {
|
||||
if (event.which == event.data.delimiter.charCodeAt(0)) {
|
||||
found = true;
|
||||
}
|
||||
} else {
|
||||
$.each(event.data.delimiter, function(index, delimiter) {
|
||||
if (event.which == delimiter.charCodeAt(0)) {
|
||||
found = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,61 @@
|
||||
// Code to manage tags in the contact view
|
||||
|
||||
$('#tags').tagsInput({
|
||||
'maxChars' : 255,
|
||||
});
|
||||
|
||||
$('#tagsForm').hide();
|
||||
|
||||
$('#tagsFormCancel').click( function(e) {
|
||||
$('#tagsForm').hide();
|
||||
$('.tags').toggle();
|
||||
});
|
||||
|
||||
$('#showTagForm').click(function(e) {
|
||||
$('#tagsForm').toggle();
|
||||
$('.tags').toggle();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#tags_tagsinput').keyup(function(e) {
|
||||
if (e.keyCode == 27) {
|
||||
$('#tagsForm').toggle();
|
||||
$('.tags').toggle();
|
||||
}
|
||||
});
|
||||
|
||||
$('#tagsForm').submit(function(e) {
|
||||
|
||||
// gather the list of tags in the input and translating it into a comma
|
||||
// separated string
|
||||
var tags = $.map(
|
||||
$('#tagsForm .tag span'), function(e,i) {
|
||||
return $(e).text().trim();
|
||||
});
|
||||
|
||||
var tagsTring = tags.join(',');
|
||||
|
||||
$.post(
|
||||
$( this ).prop( 'action' ),
|
||||
{
|
||||
"_token": $(this).find( 'input[name=_token]' ).val(),
|
||||
'tags': tagsTring
|
||||
},
|
||||
function( data ) {
|
||||
// success
|
||||
$('#tagsForm').toggle();
|
||||
|
||||
$('.tags-list').empty();
|
||||
|
||||
// add the new tag
|
||||
for (var i = 0; i < data['tags'].length ; i++) {
|
||||
$('.tags-list').append('<li class="pretty-tag"><a href="/people?tags=' + data.tags[i].slug + '">' + data.tags[i].slug + '</a></li>');
|
||||
}
|
||||
|
||||
$('.tags').toggle();
|
||||
},
|
||||
'json'
|
||||
);
|
||||
e.preventDefault();
|
||||
});
|
||||
@@ -27,5 +27,6 @@ const app = new Vue({
|
||||
},
|
||||
});
|
||||
|
||||
// jQuery-Tags-Input for the tags on the contact
|
||||
$(document).ready(function() {
|
||||
} );
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
// Code to manage tags in the contact view
|
||||
|
||||
$('#tags').tagsInput({
|
||||
'maxChars' : 255,
|
||||
});
|
||||
|
||||
$('#tagsForm').hide();
|
||||
|
||||
$('#tagsFormCancel').click( function(e) {
|
||||
$('#tagsForm').hide();
|
||||
$('.tags').toggle();
|
||||
});
|
||||
|
||||
$('#showTagForm').click(function(e) {
|
||||
$('#tagsForm').toggle();
|
||||
$('.tags').toggle();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#tags_tagsinput').keyup(function(e) {
|
||||
if (e.keyCode == 27) {
|
||||
$('#tagsForm').toggle();
|
||||
$('.tags').toggle();
|
||||
}
|
||||
});
|
||||
|
||||
$('#tagsForm').submit(function(e) {
|
||||
|
||||
// gather the list of tags in the input and translating it into a comma
|
||||
// separated string
|
||||
var tags = $.map(
|
||||
$('#tagsForm .tag span'), function(e,i) {
|
||||
return $(e).text().trim();
|
||||
});
|
||||
|
||||
var tagsTring = tags.join(',');
|
||||
|
||||
$.post(
|
||||
$( this ).prop( 'action' ),
|
||||
{
|
||||
"_token": $(this).find( 'input[name=_token]' ).val(),
|
||||
'tags': tagsTring
|
||||
},
|
||||
function( data ) {
|
||||
// success
|
||||
$('#tagsForm').toggle();
|
||||
|
||||
$('.tags-list').empty();
|
||||
|
||||
// add the new tag
|
||||
for (var i = 0; i < data['tags'].length ; i++) {
|
||||
$('.tags-list').append('<li class="pretty-tag"><a href="/people?tags=' + data.tags[i].slug + '">' + data.tags[i].slug + '</a></li>');
|
||||
}
|
||||
|
||||
$('.tags').toggle();
|
||||
},
|
||||
'json'
|
||||
);
|
||||
e.preventDefault();
|
||||
});
|
||||
+4
-4
File diff suppressed because one or more lines are too long
+390
@@ -0,0 +1,390 @@
|
||||
/*
|
||||
|
||||
jQuery Tags Input Plugin 1.3.3
|
||||
|
||||
Copyright (c) 2011 XOXCO, Inc
|
||||
|
||||
Documentation for this plugin lives here:
|
||||
http://xoxco.com/clickable/jquery-tags-input
|
||||
|
||||
Licensed under the MIT license:
|
||||
http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
ben@xoxco.com
|
||||
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var delimiter = new Array();
|
||||
var tags_callbacks = new Array();
|
||||
$.fn.doAutosize = function(o){
|
||||
var minWidth = $(this).data('minwidth'),
|
||||
maxWidth = $(this).data('maxwidth'),
|
||||
val = '',
|
||||
input = $(this),
|
||||
testSubject = $('#'+$(this).data('tester_id'));
|
||||
|
||||
if (val === (val = input.val())) {return;}
|
||||
|
||||
// Enter new content into testSubject
|
||||
var escaped = val.replace(/&/g, '&').replace(/\s/g,' ').replace(/</g, '<').replace(/>/g, '>');
|
||||
testSubject.html(escaped);
|
||||
// Calculate new width + whether to change
|
||||
var testerWidth = testSubject.width(),
|
||||
newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
|
||||
currentWidth = input.width(),
|
||||
isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
|
||||
|| (newWidth > minWidth && newWidth < maxWidth);
|
||||
|
||||
// Animate width
|
||||
if (isValidWidthChange) {
|
||||
input.width(newWidth);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
$.fn.resetAutosize = function(options){
|
||||
// alert(JSON.stringify(options));
|
||||
var minWidth = $(this).data('minwidth') || options.minInputWidth || $(this).width(),
|
||||
maxWidth = $(this).data('maxwidth') || options.maxInputWidth || ($(this).closest('.tagsinput').width() - options.inputPadding),
|
||||
val = '',
|
||||
input = $(this),
|
||||
testSubject = $('<tester/>').css({
|
||||
position: 'absolute',
|
||||
top: -9999,
|
||||
left: -9999,
|
||||
width: 'auto',
|
||||
fontSize: input.css('fontSize'),
|
||||
fontFamily: input.css('fontFamily'),
|
||||
fontWeight: input.css('fontWeight'),
|
||||
letterSpacing: input.css('letterSpacing'),
|
||||
whiteSpace: 'nowrap'
|
||||
}),
|
||||
testerId = $(this).attr('id')+'_autosize_tester';
|
||||
if(! $('#'+testerId).length > 0){
|
||||
testSubject.attr('id', testerId);
|
||||
testSubject.appendTo('body');
|
||||
}
|
||||
|
||||
input.data('minwidth', minWidth);
|
||||
input.data('maxwidth', maxWidth);
|
||||
input.data('tester_id', testerId);
|
||||
input.css('width', minWidth);
|
||||
};
|
||||
|
||||
$.fn.addTag = function(value,options) {
|
||||
options = jQuery.extend({focus:false,callback:true},options);
|
||||
this.each(function() {
|
||||
var id = $(this).attr('id');
|
||||
|
||||
var tagslist = $(this).val().split(delimiter[id]);
|
||||
if (tagslist[0] == '') {
|
||||
tagslist = new Array();
|
||||
}
|
||||
|
||||
value = jQuery.trim(value);
|
||||
|
||||
if (options.unique) {
|
||||
var skipTag = $(this).tagExist(value);
|
||||
if(skipTag == true) {
|
||||
//Marks fake input as not_valid to let styling it
|
||||
$('#'+id+'_tag').addClass('not_valid');
|
||||
}
|
||||
} else {
|
||||
var skipTag = false;
|
||||
}
|
||||
|
||||
if (value !='' && skipTag != true) {
|
||||
$('<span>').addClass('tag').append(
|
||||
$('<span>').text(value).append(' '),
|
||||
$('<a>', {
|
||||
href : '#',
|
||||
title : 'Removing tag',
|
||||
text : 'x'
|
||||
}).click(function () {
|
||||
return $('#' + id).removeTag(escape(value));
|
||||
})
|
||||
).insertBefore('#' + id + '_addTag');
|
||||
|
||||
tagslist.push(value);
|
||||
|
||||
$('#'+id+'_tag').val('');
|
||||
if (options.focus) {
|
||||
$('#'+id+'_tag').focus();
|
||||
} else {
|
||||
$('#'+id+'_tag').blur();
|
||||
}
|
||||
|
||||
$.fn.tagsInput.updateTagsField(this,tagslist);
|
||||
|
||||
if (options.callback && tags_callbacks[id] && tags_callbacks[id]['onAddTag']) {
|
||||
var f = tags_callbacks[id]['onAddTag'];
|
||||
f.call(this, value);
|
||||
}
|
||||
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
|
||||
{
|
||||
var i = tagslist.length;
|
||||
var f = tags_callbacks[id]['onChange'];
|
||||
f.call(this, $(this), tagslist[i-1]);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
$.fn.removeTag = function(value) {
|
||||
value = unescape(value);
|
||||
this.each(function() {
|
||||
var id = $(this).attr('id');
|
||||
|
||||
var old = $(this).val().split(delimiter[id]);
|
||||
|
||||
$('#'+id+'_tagsinput .tag').remove();
|
||||
str = '';
|
||||
for (i=0; i< old.length; i++) {
|
||||
if (old[i]!=value) {
|
||||
str = str + delimiter[id] +old[i];
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.tagsInput.importTags(this,str);
|
||||
|
||||
if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
|
||||
var f = tags_callbacks[id]['onRemoveTag'];
|
||||
f.call(this, value);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
$.fn.tagExist = function(val) {
|
||||
var id = $(this).attr('id');
|
||||
var tagslist = $(this).val().split(delimiter[id]);
|
||||
return (jQuery.inArray(val, tagslist) >= 0); //true when tag exists, false when not
|
||||
};
|
||||
|
||||
// clear all existing tags and import new ones from a string
|
||||
$.fn.importTags = function(str) {
|
||||
var id = $(this).attr('id');
|
||||
$('#'+id+'_tagsinput .tag').remove();
|
||||
$.fn.tagsInput.importTags(this,str);
|
||||
}
|
||||
|
||||
$.fn.tagsInput = function(options) {
|
||||
var settings = jQuery.extend({
|
||||
interactive:true,
|
||||
defaultText:'add a tag',
|
||||
minChars:0,
|
||||
width:'300px',
|
||||
height:'100px',
|
||||
autocomplete: {selectFirst: false },
|
||||
hide:true,
|
||||
delimiter: ',',
|
||||
unique:true,
|
||||
removeWithBackspace:true,
|
||||
placeholderColor:'#666666',
|
||||
autosize: true,
|
||||
comfortZone: 20,
|
||||
inputPadding: 6*2
|
||||
},options);
|
||||
|
||||
var uniqueIdCounter = 0;
|
||||
|
||||
this.each(function() {
|
||||
// If we have already initialized the field, do not do it again
|
||||
if (typeof $(this).attr('data-tagsinput-init') !== 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Mark the field as having been initialized
|
||||
$(this).attr('data-tagsinput-init', true);
|
||||
|
||||
if (settings.hide) {
|
||||
$(this).hide();
|
||||
}
|
||||
var id = $(this).attr('id');
|
||||
if (!id || delimiter[$(this).attr('id')]) {
|
||||
id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id');
|
||||
}
|
||||
|
||||
var data = jQuery.extend({
|
||||
pid:id,
|
||||
real_input: '#'+id,
|
||||
holder: '#'+id+'_tagsinput',
|
||||
input_wrapper: '#'+id+'_addTag',
|
||||
fake_input: '#'+id+'_tag'
|
||||
},settings);
|
||||
|
||||
delimiter[id] = data.delimiter;
|
||||
|
||||
if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
|
||||
tags_callbacks[id] = new Array();
|
||||
tags_callbacks[id]['onAddTag'] = settings.onAddTag;
|
||||
tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
|
||||
tags_callbacks[id]['onChange'] = settings.onChange;
|
||||
}
|
||||
|
||||
var markup = '<div id="'+id+'_tagsinput" class="tagsinput"><div id="'+id+'_addTag">';
|
||||
|
||||
if (settings.interactive) {
|
||||
markup = markup + '<input id="'+id+'_tag" value="" data-default="'+settings.defaultText+'" />';
|
||||
}
|
||||
|
||||
markup = markup + '</div><div class="tags_clear"></div></div>';
|
||||
|
||||
$(markup).insertAfter(this);
|
||||
|
||||
$(data.holder).css('width',settings.width);
|
||||
$(data.holder).css('min-height',settings.height);
|
||||
$(data.holder).css('height',settings.height);
|
||||
|
||||
if ($(data.real_input).val()!='') {
|
||||
$.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
|
||||
}
|
||||
if (settings.interactive) {
|
||||
$(data.fake_input).val($(data.fake_input).attr('data-default'));
|
||||
$(data.fake_input).css('color',settings.placeholderColor);
|
||||
$(data.fake_input).resetAutosize(settings);
|
||||
|
||||
$(data.holder).bind('click',data,function(event) {
|
||||
$(event.data.fake_input).focus();
|
||||
});
|
||||
|
||||
$(data.fake_input).bind('focus',data,function(event) {
|
||||
if ($(event.data.fake_input).val()==$(event.data.fake_input).attr('data-default')) {
|
||||
$(event.data.fake_input).val('');
|
||||
}
|
||||
$(event.data.fake_input).css('color','#000000');
|
||||
});
|
||||
|
||||
if (settings.autocomplete_url != undefined) {
|
||||
autocomplete_options = {source: settings.autocomplete_url};
|
||||
for (attrname in settings.autocomplete) {
|
||||
autocomplete_options[attrname] = settings.autocomplete[attrname];
|
||||
}
|
||||
|
||||
if (jQuery.Autocompleter !== undefined) {
|
||||
$(data.fake_input).autocomplete(settings.autocomplete_url, settings.autocomplete);
|
||||
$(data.fake_input).bind('result',data,function(event,data,formatted) {
|
||||
if (data) {
|
||||
$('#'+id).addTag(data[0] + "",{focus:true,unique:(settings.unique)});
|
||||
}
|
||||
});
|
||||
} else if (jQuery.ui.autocomplete !== undefined) {
|
||||
$(data.fake_input).autocomplete(autocomplete_options);
|
||||
$(data.fake_input).bind('autocompleteselect',data,function(event,ui) {
|
||||
$(event.data.real_input).addTag(ui.item.value,{focus:true,unique:(settings.unique)});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
// if a user tabs out of the field, create a new tag
|
||||
// this is only available if autocomplete is not used.
|
||||
$(data.fake_input).bind('blur',data,function(event) {
|
||||
var d = $(this).attr('data-default');
|
||||
if ($(event.data.fake_input).val()!='' && $(event.data.fake_input).val()!=d) {
|
||||
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
|
||||
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
|
||||
} else {
|
||||
$(event.data.fake_input).val($(event.data.fake_input).attr('data-default'));
|
||||
$(event.data.fake_input).css('color',settings.placeholderColor);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
// if user types a default delimiter like comma,semicolon and then create a new tag
|
||||
$(data.fake_input).bind('keypress',data,function(event) {
|
||||
if (_checkDelimiter(event)) {
|
||||
event.preventDefault();
|
||||
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
|
||||
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
|
||||
$(event.data.fake_input).resetAutosize(settings);
|
||||
return false;
|
||||
} else if (event.data.autosize) {
|
||||
$(event.data.fake_input).doAutosize(settings);
|
||||
|
||||
}
|
||||
});
|
||||
//Delete last tag on backspace
|
||||
data.removeWithBackspace && $(data.fake_input).bind('keydown', function(event)
|
||||
{
|
||||
if(event.keyCode == 8 && $(this).val() == '')
|
||||
{
|
||||
event.preventDefault();
|
||||
var last_tag = $(this).closest('.tagsinput').find('.tag:last').text();
|
||||
var id = $(this).attr('id').replace(/_tag$/, '');
|
||||
last_tag = last_tag.replace(/[\s]+x$/, '');
|
||||
$('#' + id).removeTag(escape(last_tag));
|
||||
$(this).trigger('focus');
|
||||
}
|
||||
});
|
||||
$(data.fake_input).blur();
|
||||
|
||||
//Removes the not_valid class when user changes the value of the fake input
|
||||
if(data.unique) {
|
||||
$(data.fake_input).keydown(function(event){
|
||||
if(event.keyCode == 8 || String.fromCharCode(event.which).match(/\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)) {
|
||||
$(this).removeClass('not_valid');
|
||||
}
|
||||
});
|
||||
}
|
||||
} // if settings.interactive
|
||||
});
|
||||
|
||||
return this;
|
||||
|
||||
};
|
||||
|
||||
$.fn.tagsInput.updateTagsField = function(obj,tagslist) {
|
||||
var id = $(obj).attr('id');
|
||||
$(obj).val(tagslist.join(delimiter[id]));
|
||||
};
|
||||
|
||||
$.fn.tagsInput.importTags = function(obj,val) {
|
||||
$(obj).val('');
|
||||
var id = $(obj).attr('id');
|
||||
var tags = val.split(delimiter[id]);
|
||||
for (i=0; i<tags.length; i++) {
|
||||
$(obj).addTag(tags[i],{focus:false,callback:false});
|
||||
}
|
||||
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
|
||||
{
|
||||
var f = tags_callbacks[id]['onChange'];
|
||||
f.call(obj, obj, tags[i]);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* check delimiter Array
|
||||
* @param event
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
*/
|
||||
var _checkDelimiter = function(event){
|
||||
var found = false;
|
||||
if (event.which == 13) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (typeof event.data.delimiter === 'string') {
|
||||
if (event.which == event.data.delimiter.charCodeAt(0)) {
|
||||
found = true;
|
||||
}
|
||||
} else {
|
||||
$.each(event.data.delimiter, function(index, delimiter) {
|
||||
if (event.which == delimiter.charCodeAt(0)) {
|
||||
found = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
})(jQuery);
|
||||
Vendored
+47
-2
@@ -1,8 +1,8 @@
|
||||
@import "_custom_bootstrap";
|
||||
@import "../../vendor/hint.css/hint.min";
|
||||
|
||||
// Basecamp style editor
|
||||
@import "../../vendor/trix/dist/trix";
|
||||
// Tags for a contact
|
||||
@import "../../vendor/jquery.tagsinput/dist/jquery.tagsinput.min";
|
||||
|
||||
// For the datatables
|
||||
@import "_datatable.min";
|
||||
@@ -72,6 +72,51 @@ $border-color: #dfdfdf;
|
||||
background-color: #d9534f;
|
||||
}
|
||||
|
||||
.pretty-tag {
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding: 0 10px 0 19px;
|
||||
position: relative;
|
||||
margin: 0 10px 0 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.2s;
|
||||
|
||||
&::before {
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: inset 0 1px rgba(0, 0, 0, 0.25);
|
||||
content: '';
|
||||
height: 6px;
|
||||
left: 7px;
|
||||
position: absolute;
|
||||
width: 6px;
|
||||
top: 9px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #0366d6;
|
||||
|
||||
a {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #555;
|
||||
|
||||
&:hover {
|
||||
background-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generic styles
|
||||
body {
|
||||
color: #323b43;
|
||||
|
||||
Vendored
+91
-17
@@ -7,14 +7,6 @@
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#search-list {
|
||||
.search {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
.sidebar-cta {
|
||||
margin-bottom: 20px;
|
||||
@@ -34,6 +26,10 @@
|
||||
left: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.number-contacts-per-tag {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +38,18 @@
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.clear-filter {
|
||||
border: 1px solid #eee;
|
||||
position: relative;
|
||||
padding: 6px;
|
||||
border-radius: 3px;
|
||||
|
||||
a {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.people-list-item {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 10px;
|
||||
@@ -125,15 +133,6 @@
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
.people-list-item-name {
|
||||
display: inline-block;
|
||||
margin-right: -9999px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
width: calc(100% - 198px);
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.people-list-item-information {
|
||||
color: #999;
|
||||
@@ -141,6 +140,10 @@
|
||||
float: right;
|
||||
text-align: right;
|
||||
position: relative;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.people-list-item-information span {
|
||||
@@ -179,6 +182,7 @@
|
||||
background-color: #f9f9fb;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
padding-bottom: 20px;
|
||||
|
||||
.people-profile-information {
|
||||
margin-bottom: 10px;
|
||||
@@ -227,6 +231,7 @@
|
||||
|
||||
.profile-detail-summary {
|
||||
padding-left: 100px;
|
||||
margin-top: 3px;
|
||||
|
||||
li {
|
||||
&:not(:last-child) {
|
||||
@@ -241,6 +246,39 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#tagsForm {
|
||||
padding-left: 100px;
|
||||
position: relative;
|
||||
|
||||
#tags_tagsinput {
|
||||
height: 40px!important;
|
||||
min-height: 40px!important;
|
||||
width: 370px!important;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tagsFormActions {
|
||||
display: inline;
|
||||
position: relative;
|
||||
top: -17px;
|
||||
}
|
||||
}
|
||||
|
||||
.tags {
|
||||
padding: 0;
|
||||
padding-left: 100px;
|
||||
list-style: none;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
margin-top: 8px;
|
||||
|
||||
li {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.edit-information {
|
||||
@@ -642,6 +680,12 @@
|
||||
padding: 6px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.people-list-item {
|
||||
.people-list-item-information {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.people-show {
|
||||
@@ -651,12 +695,32 @@
|
||||
margin-top: 10px;
|
||||
|
||||
h2 {
|
||||
padding-left: 80px;
|
||||
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#tagsForm {
|
||||
display: block;
|
||||
margin-top: 40px;
|
||||
padding-left: 0px;
|
||||
|
||||
#tags_tagsinput {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.tagsFormActions {
|
||||
display: block;
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.profile-detail-summary {
|
||||
padding-left: 0;
|
||||
margin-top: 10px;
|
||||
|
||||
li {
|
||||
display: block;
|
||||
margin-right: 0;
|
||||
@@ -669,6 +733,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.avatar {
|
||||
height: 67px;
|
||||
width: 67px;
|
||||
padding-top: 11px;
|
||||
}
|
||||
|
||||
.tags {
|
||||
padding-left: 80px;
|
||||
}
|
||||
}
|
||||
|
||||
.edit-information {
|
||||
|
||||
Vendored
+20
@@ -18,11 +18,20 @@
|
||||
|
||||
&.selected {
|
||||
background-color: #f7fbfc;
|
||||
|
||||
i {
|
||||
color: green;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
i {
|
||||
margin-right: 5px;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,4 +267,15 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tags-list {
|
||||
.tags-list-contact-number {
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.actions {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ return [
|
||||
'breadcrumb_settings_import' => 'Import',
|
||||
'breadcrumb_settings_import_report' => 'Import report',
|
||||
'breadcrumb_settings_import_upload' => 'Upload',
|
||||
'breadcrumb_settings_tags' => 'Tags',
|
||||
|
||||
'gender_male' => 'Man',
|
||||
'gender_female' => 'Woman',
|
||||
|
||||
@@ -24,6 +24,9 @@ return [
|
||||
'event_create_gift' => 'added a gift',
|
||||
'event_update_gift' => 'updated a gift',
|
||||
|
||||
'blank_title' => 'You don\'t have any activity yet.',
|
||||
'blank_cta' => 'Add contact',
|
||||
|
||||
'tab_last_edited_contacts' => 'Last edited contacts',
|
||||
'tab_whats_coming' => 'What\'s coming',
|
||||
'tab_lastest_actions' => 'Latest actions',
|
||||
|
||||
@@ -14,6 +14,9 @@ return [
|
||||
'people_list_firstnameZA' => 'Sort by first name Z → A',
|
||||
'people_list_lastnameAZ' => 'Sort by last name A → Z',
|
||||
'people_list_lastnameZA' => 'Sort by last name Z → A',
|
||||
'people_list_filter_tag' => 'Showing all the contacts tagged with <span class="pretty-tag">:name</span>',
|
||||
'people_list_clear_filter' => 'Clear filter',
|
||||
'people_list_contacts_per_tags' => '{0} 0 contact|{1,1} 1 contact|{2,*} :count contacts',
|
||||
|
||||
// people add
|
||||
'people_add_title' => 'Add a new person',
|
||||
@@ -284,5 +287,8 @@ return [
|
||||
'debt_add_add_cta' => 'Add debt',
|
||||
'debt_edit_update_cta' => 'Update debt',
|
||||
'debt_edit_success' => 'The debt has been updated successfully',
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you'
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you',
|
||||
|
||||
// tags
|
||||
'tag_edit' => 'Edit tag',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'sidebar_settings_users' => 'Users',
|
||||
'sidebar_settings_subscriptions' => 'Subscription',
|
||||
'sidebar_settings_import' => 'Import data',
|
||||
'sidebar_settings_tags' => 'Tags management',
|
||||
|
||||
'export_title' => 'Export your account data',
|
||||
'export_be_patient' => 'Click the button to start the export. It might take several minutes to process the export - please be patient and do not spam the button.',
|
||||
@@ -117,5 +118,17 @@ return [
|
||||
'import_report_status_skipped' => 'Skipped',
|
||||
'import_vcard_contact_exist' => 'Contact already exists',
|
||||
'import_vcard_contact_no_firstname' => 'No firstname (mandatory)',
|
||||
'import_blank_title' => 'You haven\'t imported any contacts yet.',
|
||||
'import_blank_question' => 'Would you like to import contacts now?',
|
||||
'import_blank_description' => 'We can import vCard files that you can get from Google Contacts or your Contact manager.',
|
||||
'import_blank_cta' => 'Import vCard',
|
||||
|
||||
'tags_list_title' => 'Tags',
|
||||
'tags_list_description' => 'You can organize your contacts by setting up tags. Tags work like folders, but you can add more than one tag to a contact. To add a new tag, add it on the contact itself.',
|
||||
'tags_list_contact_number' => ':count contacts',
|
||||
'tags_list_delete_success' => 'The tag has been successfully with success',
|
||||
'tags_list_delete_confirmation' => 'Are you sure you want to delete the tag? No contacts will be deleted, only the tag.',
|
||||
'tags_blank_title' => 'Tags are a great way of categorizing your contacts.',
|
||||
'tags_blank_description' => 'Tags work like folders, but you can add more than one tag to a contact. Go to a contact and tag a friend, right below the name. Once a contact is tagged, go back here to manage all the tags in your account.',
|
||||
|
||||
];
|
||||
|
||||
@@ -39,6 +39,7 @@ return [
|
||||
'breadcrumb_settings_import' => 'Import',
|
||||
'breadcrumb_settings_import_report' => 'Import report',
|
||||
'breadcrumb_settings_import_upload' => 'Upload',
|
||||
'breadcrumb_settings_tags' => 'Tags',
|
||||
|
||||
'gender_male' => 'Homme',
|
||||
'gender_female' => 'Femme',
|
||||
|
||||
@@ -24,6 +24,9 @@ return [
|
||||
'event_create_gift' => 'added a gift',
|
||||
'event_update_gift' => 'updated a gift',
|
||||
|
||||
'blank_title' => 'Vous n\'avez encore aucune activité.',
|
||||
'blank_cta' => 'Ajoutez un contact',
|
||||
|
||||
'tab_last_edited_contacts' => 'Derniers contacts modifiés',
|
||||
'tab_whats_coming' => 'Prochainement',
|
||||
'tab_lastest_actions' => 'Dernières actions',
|
||||
|
||||
@@ -14,6 +14,9 @@ return [
|
||||
'people_list_firstnameZA' => 'Tri par prénom Z → A',
|
||||
'people_list_lastnameAZ' => 'Tri par nom de famille A → Z',
|
||||
'people_list_lastnameZA' => 'Tri par nom de famille Z → A',
|
||||
'people_list_filter_tag' => 'Showing all the contacts tagged with <span class="pretty-tag">:name</span>',
|
||||
'people_list_clear_filter' => 'Clear filter',
|
||||
'people_list_contacts_per_tags' => '{0} 0 contact|{1,1} 1 contact|{2,*} :count contacts',
|
||||
|
||||
// people add
|
||||
'people_add_title' => 'Ajouter une nouvelle personne',
|
||||
@@ -284,6 +287,9 @@ return [
|
||||
'debt_add_add_cta' => 'Ajouter la dette',
|
||||
'debt_edit_update_cta' => 'Mettre à jour la dette',
|
||||
'debt_edit_success' => 'La dette a été modifiée avec succès',
|
||||
'debts_blank_title' => 'Gérez les dettes que vous devez à :name ou que :name vous doit'
|
||||
'debts_blank_title' => 'Gérez les dettes que vous devez à :name ou que :name vous doit',
|
||||
|
||||
// tags
|
||||
'tag_edit' => 'Edit tag',
|
||||
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'sidebar_settings_users' => 'Utilisateurs',
|
||||
'sidebar_settings_subscriptions' => 'Subscription',
|
||||
'sidebar_settings_import' => 'Import data',
|
||||
'sidebar_settings_tags' => 'Tags management',
|
||||
|
||||
'export_title' => 'Exporter les données de votre compte',
|
||||
'export_be_patient' => 'Cliquez sur le bouton pour commencer l\'export. Cela peut prendre plusieurs minutes pour préparer l\'export - merci d\'être patient et de ne pas spammer le bouton.',
|
||||
@@ -117,4 +118,16 @@ return [
|
||||
'import_report_status_skipped' => 'Skipped',
|
||||
'import_vcard_contact_exist' => 'Contact already exists',
|
||||
'import_vcard_contact_no_firstname' => 'No firstname (mandatory)',
|
||||
'import_blank_title' => 'You haven\'t imported any contacts yet.',
|
||||
'import_blank_question' => 'Would you like to import contacts now?',
|
||||
'import_blank_description' => 'We can import vCard files that you can get from Google Contacts or your Contact manager.',
|
||||
'import_blank_cta' => 'Import vCard',
|
||||
|
||||
'tags_list_title' => 'Tags',
|
||||
'tags_list_description' => 'You can organize your contacts by setting up tags. Tags work like folders, but you can add more than one tag to a contact.',
|
||||
'tags_list_contact_number' => ':count contacts',
|
||||
'tags_list_delete_success' => 'The tag has been successfully with success',
|
||||
'tags_list_delete_confirmation' => 'Are you sure you want to delete the tag? No contacts will be deleted, only the tag.',
|
||||
'tags_blank_title' => 'Tags are a great way of categorizing your contacts.',
|
||||
'tags_blank_description' => 'Tags work like folders, but you can add more than one tag to a contact. Go to a contact and tag a friend, right below the name. Once a contact is tagged, go back here to manage all the tags in your account.',
|
||||
];
|
||||
|
||||
@@ -39,6 +39,7 @@ return [
|
||||
'breadcrumb_settings_import' => 'Import',
|
||||
'breadcrumb_settings_import_report' => 'Import report',
|
||||
'breadcrumb_settings_import_upload' => 'Upload',
|
||||
'breadcrumb_settings_tags' => 'Tags',
|
||||
|
||||
'gender_male' => 'Homem',
|
||||
'gender_female' => 'Mulher',
|
||||
|
||||
@@ -24,6 +24,9 @@ return [
|
||||
'event_create_gift' => 'added a gift',
|
||||
'event_update_gift' => 'updated a gift',
|
||||
|
||||
'blank_title' => 'Você ainda não possui nenhuma atividade.',
|
||||
'blank_cta' => 'Adicionar contato',
|
||||
|
||||
'tab_last_edited_contacts' => 'Últimos contatos editados',
|
||||
'tab_whats_coming' => 'O que está por vir',
|
||||
'tab_lastest_actions' => 'Últimas ações',
|
||||
|
||||
@@ -14,6 +14,9 @@ return [
|
||||
'people_list_firstnameZA' => 'Classificar por primeiro nome Z → A',
|
||||
'people_list_lastnameAZ' => 'Classificar por sobrenome A → Z',
|
||||
'people_list_lastnameZA' => 'Classificar por sobrenome Z → A',
|
||||
'people_list_filter_tag' => 'Showing all the contacts tagged with <span class="pretty-tag">:name</span>',
|
||||
'people_list_clear_filter' => 'Clear filter',
|
||||
'people_list_contacts_per_tags' => '{0} 0 contact|{1,1} 1 contact|{2,*} :count contacts',
|
||||
|
||||
// people add
|
||||
'people_add_title' => 'Adicione uma nova pessoa',
|
||||
@@ -284,5 +287,8 @@ return [
|
||||
'debt_add_add_cta' => 'Adicionar dívida',
|
||||
'debt_edit_update_cta' => 'Update debt',
|
||||
'debt_edit_success' => 'The debt has been updated successfully',
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you'
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you',
|
||||
|
||||
// tags
|
||||
'tag_edit' => 'Edit tag',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'sidebar_settings_users' => 'Users',
|
||||
'sidebar_settings_subscriptions' => 'Subscription',
|
||||
'sidebar_settings_import' => 'Import data',
|
||||
'sidebar_settings_tags' => 'Tags management',
|
||||
|
||||
'export_title' => 'Export your account data',
|
||||
'export_be_patient' => 'Click the button to start the export. It might take several minutes to process the export - please be patient and do not spam the button.',
|
||||
@@ -116,4 +117,16 @@ return [
|
||||
'import_report_status_skipped' => 'Skipped',
|
||||
'import_vcard_contact_exist' => 'Contact already exists',
|
||||
'import_vcard_contact_no_firstname' => 'No firstname (mandatory)',
|
||||
'import_blank_title' => 'You haven\'t imported any contacts yet.',
|
||||
'import_blank_question' => 'Would you like to import contacts now?',
|
||||
'import_blank_description' => 'We can import vCard files that you can get from Google Contacts or your Contact manager.',
|
||||
'import_blank_cta' => 'Import vCard',
|
||||
|
||||
'tags_list_title' => 'Tags',
|
||||
'tags_list_description' => 'You can organize your contacts by setting up tags. Tags work like folders, but you can add more than one tag to a contact.',
|
||||
'tags_list_contact_number' => ':count contacts',
|
||||
'tags_list_delete_success' => 'The tag has been successfully with success',
|
||||
'tags_list_delete_confirmation' => 'Are you sure you want to delete the tag? No contacts will be deleted, only the tag.',
|
||||
'tags_blank_title' => 'Tags are a great way of categorizing your contacts.',
|
||||
'tags_blank_description' => 'Tags work like folders, but you can add more than one tag to a contact. Go to a contact and tag a friend, right below the name. Once a contact is tagged, go back here to manage all the tags in your account.',
|
||||
];
|
||||
|
||||
@@ -39,6 +39,7 @@ return [
|
||||
'breadcrumb_settings_import' => 'Import',
|
||||
'breadcrumb_settings_import_report' => 'Import report',
|
||||
'breadcrumb_settings_import_upload' => 'Upload',
|
||||
'breadcrumb_settings_tags' => 'Tags',
|
||||
|
||||
'gender_male' => 'Мужской',
|
||||
'gender_female' => 'Женский',
|
||||
|
||||
@@ -24,6 +24,9 @@ return [
|
||||
'event_create_gift' => 'added a gift',
|
||||
'event_update_gift' => 'updated a gift',
|
||||
|
||||
'blank_title' => 'У вас пока нет активностей.',
|
||||
'blank_cta' => 'Добавить или изменить контакт',
|
||||
|
||||
'tab_last_edited_contacts' => 'Последние изменённые контакты',
|
||||
'tab_whats_coming' => 'Что предстоит',
|
||||
'tab_lastest_actions' => 'Последние действия',
|
||||
|
||||
@@ -14,6 +14,9 @@ return [
|
||||
'people_list_firstnameZA' => 'Сортировать по имени Я → А',
|
||||
'people_list_lastnameAZ' => 'Сортировать по фамилии А → Я',
|
||||
'people_list_lastnameZA' => 'Сортировать по фамилии Я → А',
|
||||
'people_list_filter_tag' => 'Showing all the contacts tagged with <span class="pretty-tag">:name</span>',
|
||||
'people_list_clear_filter' => 'Clear filter',
|
||||
'people_list_contacts_per_tags' => '{0} 0 contact|{1,1} 1 contact|{2,*} :count contacts',
|
||||
|
||||
// people add
|
||||
'people_add_title' => 'Добавить человека',
|
||||
@@ -284,5 +287,8 @@ return [
|
||||
'debt_add_add_cta' => 'Добавить долг',
|
||||
'debt_edit_update_cta' => 'Update debt',
|
||||
'debt_edit_success' => 'The debt has been updated successfully',
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you'
|
||||
'debts_blank_title' => 'Manage debts you owe to :name or :name owes you',
|
||||
|
||||
// tags
|
||||
'tag_edit' => 'Edit tag',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'sidebar_settings_users' => 'Users',
|
||||
'sidebar_settings_subscriptions' => 'Subscription',
|
||||
'sidebar_settings_import' => 'Import data',
|
||||
'sidebar_settings_tags' => 'Tags management',
|
||||
|
||||
'export_title' => 'Export your account data',
|
||||
'export_be_patient' => 'Click the button to start the export. It might take several minutes to process the export - please be patient and do not spam the button.',
|
||||
@@ -115,4 +116,16 @@ return [
|
||||
'import_report_status_skipped' => 'Skipped',
|
||||
'import_vcard_contact_exist' => 'Contact already exists',
|
||||
'import_vcard_contact_no_firstname' => 'No firstname (mandatory)',
|
||||
'import_blank_title' => 'You haven\'t imported any contacts yet.',
|
||||
'import_blank_question' => 'Would you like to import contacts now?',
|
||||
'import_blank_description' => 'We can import vCard files that you can get from Google Contacts or your Contact manager.',
|
||||
'import_blank_cta' => 'Import vCard',
|
||||
|
||||
'tags_list_title' => 'Tags',
|
||||
'tags_list_description' => 'You can organize your contacts by setting up tags. Tags work like folders, but you can add more than one tag to a contact.',
|
||||
'tags_list_contact_number' => ':count contacts',
|
||||
'tags_list_delete_success' => 'The tag has been successfully with success',
|
||||
'tags_list_delete_confirmation' => 'Are you sure you want to delete the tag? No contacts will be deleted, only the tag.',
|
||||
'tags_blank_title' => 'Tags are a great way of categorizing your contacts.',
|
||||
'tags_blank_description' => 'Tags work like folders, but you can add more than one tag to a contact. Go to a contact and tag a friend, right below the name. Once a contact is tagged, go back here to manage all the tags in your account.',
|
||||
];
|
||||
|
||||
@@ -34,6 +34,10 @@
|
||||
{{-- THE JS FILE OF THE APP --}}
|
||||
<script src="{{ elixir('js/app.js') }}"></script>
|
||||
|
||||
{{-- SPECIFIC TO TAGS --}}
|
||||
<script src="/js/jquery.tagsinput.js"></script>
|
||||
<script src="/js/tags.js"></script>
|
||||
|
||||
{{-- TRACKING SHIT --}}
|
||||
@if(config('app.env') != 'local' && !empty(config('monica.google_analytics_app_id')))
|
||||
<script>
|
||||
|
||||
@@ -29,8 +29,25 @@
|
||||
{{ $contact->getCompleteName(auth()->user()->name_order) }}
|
||||
</h2>
|
||||
|
||||
<ul class="tags">
|
||||
<ul class="tags-list">
|
||||
@foreach ($contact->tags as $tag)
|
||||
<li class="pretty-tag"><a href="/people?tags={{ $tag->name_slug }}">{{ $tag->name }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<li><a href="#" id="showTagForm">{{ trans('people.tag_edit') }}</a></li>
|
||||
</ul>
|
||||
|
||||
<form method="POST" action="/people/{{ $contact->id }}/tags/update" id="tagsForm">
|
||||
{{ csrf_field() }}
|
||||
<input name="tags" id="tags" value="{{ $contact->getTagsAsString() }}" />
|
||||
<div class="tagsFormActions">
|
||||
<button type="submit" class="btn btn-primary">{{ trans('app.update') }}</button>
|
||||
<a href="#" class="btn" id="tagsFormCancel">{{ trans('app.cancel') }}</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ul class="horizontal profile-detail-summary">
|
||||
{{-- Last activity information --}}
|
||||
<li>
|
||||
@if (is_null($contact->getLastActivityDate(Auth::user()->timezone)))
|
||||
{{ trans('people.last_activity_date_empty') }}
|
||||
|
||||
@@ -48,7 +48,14 @@
|
||||
<div class="{{ auth()->user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-12 col-md-9" id="search-list">
|
||||
<div class="col-xs-12 col-md-9">
|
||||
|
||||
@if (! is_null($tag))
|
||||
<p class="clear-filter">
|
||||
{!! trans('people.people_list_filter_tag', ['name' => $tag->name]) !!}
|
||||
<a href="/people">{{ trans('people.people_list_clear_filter') }}</a>
|
||||
</p>
|
||||
@endif
|
||||
|
||||
<ul class="list">
|
||||
|
||||
@@ -107,7 +114,7 @@
|
||||
</span>
|
||||
|
||||
<span class="people-list-item-information">
|
||||
{{ trans_choice('people.people_list_number_kids', $contact->getNumberOfKids(), ['count' => $contact->getNumberOfKids()]) }} <br />
|
||||
{{ trans_choice('people.people_list_number_kids', $contact->getNumberOfKids(), ['count' => $contact->getNumberOfKids()]) }}
|
||||
<span>{{ trans('people.people_list_last_updated') }} {{ \App\Helpers\DateHelper::getShortDate($contact->updated_at) }}</span>
|
||||
</span>
|
||||
</a>
|
||||
@@ -121,6 +128,17 @@
|
||||
<a href="/people/add" class="btn btn-primary sidebar-cta">
|
||||
{{ trans('people.people_list_blank_cta') }}
|
||||
</a>
|
||||
|
||||
<ul>
|
||||
@foreach (auth()->user()->account->tags as $tag)
|
||||
@if ($tag->contacts()->count() > 0)
|
||||
<li>
|
||||
<span class="pretty-tag"><a href="/people?tags={{ $tag->name_slug }}">{{ $tag->name }}</a></span>
|
||||
<span class="number-contacts-per-tag">{{ trans_choice('people.people_list_contacts_per_tags', $tag->contacts()->count(), ['count' => $tag->contacts()->count()]) }}</span>
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@section('title', $contact->getCompleteName(auth()->user()->name_order) )
|
||||
|
||||
@section('content')
|
||||
<div class="people-show">
|
||||
<div class="people-show" data-contact-id="{{ $contact->id }}">
|
||||
{{ csrf_field() }}
|
||||
|
||||
{{-- Breadcrumb --}}
|
||||
|
||||
@@ -3,40 +3,48 @@
|
||||
|
||||
@if (Route::currentRouteName() == 'settings.index')
|
||||
<li class="selected">
|
||||
<i class="fa fa-cog" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-cog" aria-hidden="true"></i>
|
||||
<a href="/settings">{{ trans('settings.sidebar_settings') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (Route::currentRouteName() == 'settings.export')
|
||||
<li class="selected">
|
||||
<i class="fa fa-cloud-download" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings_export') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-cloud-download" aria-hidden="true"></i>
|
||||
<a href="/settings/export">{{ trans('settings.sidebar_settings_export') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (Route::currentRouteName() == 'settings.import')
|
||||
<li class="selected">
|
||||
<i class="fa fa-cloud-upload" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings_import') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-cloud-upload" aria-hidden="true"></i>
|
||||
<a href="/settings/import">{{ trans('settings.sidebar_settings_import') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (Route::currentRouteName() == 'settings.users')
|
||||
<li class="selected">
|
||||
<i class="fa fa-user-circle-o" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings_users') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-user-circle-o" aria-hidden="true"></i>
|
||||
<a href="/settings/users">{{ trans('settings.sidebar_settings_users') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@@ -44,13 +52,27 @@
|
||||
@if (config('monica.requires_subscription'))
|
||||
@if (Route::currentRouteName() == 'settings.subscriptions.index')
|
||||
<li class="selected">
|
||||
<i class="fa fa-money" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings_subscriptions') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-money" aria-hidden="true"></i>
|
||||
<a href="/settings/subscriptions">{{ trans('settings.sidebar_settings_subscriptions') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (Route::currentRouteName() == 'settings.tags')
|
||||
<li class="selected">
|
||||
<i class="fa fa-tags" aria-hidden="true"></i>
|
||||
{{ trans('settings.sidebar_settings_tags') }}
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<i class="fa fa-tags" aria-hidden="true"></i>
|
||||
<a href="/settings/tags">{{ trans('settings.sidebar_settings_tags') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
|
||||
<img src="/img/settings/imports/import.svg">
|
||||
|
||||
<h2>You haven't imported any contacts yet.</h2>
|
||||
<h2>{{ trans('settings.import_blank_title') }}</h2>
|
||||
|
||||
<h3>Would you like to import contacts now?</h3>
|
||||
<h3>{{ trans('settings.import_blank_question') }}</h3>
|
||||
|
||||
<p>We can import vCard files that you can get from Google Contacts or your Contact manager.</p>
|
||||
<p>{{ trans('settings.import_blank_description') }}</p>
|
||||
|
||||
<p class="cta"><a href="/settings/import/upload" class="btn">Import vCard</a></p>
|
||||
<p class="cta"><a href="/settings/import/upload" class="btn">{{ trans('settings.import_blank_cta') }}</a></p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<ul class="report-summary">
|
||||
<li>{{ trans('settings.import_report_date') }}: <span>{{ \App\Helpers\DateHelper::getShortDate($importJob->created_at) }}</span></li>
|
||||
<li>{{ trans('settings.import_report_type') }}: <span>{{ $importJob->type }}</span></li>
|
||||
<li>{{ trans('settings.Number of contacts in the file') }}: <span>{{ $importJob->contacts_found }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts') }}: <span>{{ $importJob->contacts_found }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts_imported') }}: <span>{{ $importJob->contacts_imported }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts_skipped') }}: <span>{{ $importJob->contacts_skipped }}</span></li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="settings">
|
||||
|
||||
{{-- Breadcrumb --}}
|
||||
<div class="breadcrumb">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<ul class="horizontal">
|
||||
<li>
|
||||
<a href="/dashboard">{{ trans('app.breadcrumb_dashboard') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/settings">{{ trans('app.breadcrumb_settings') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ trans('app.breadcrumb_settings_tags') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-xs-12 col-sm-9 tags-list">
|
||||
|
||||
@if (auth()->user()->account->tags->count() == 0)
|
||||
|
||||
<div class="col-xs-12 col-sm-9 blank-screen">
|
||||
|
||||
<img src="/img/settings/tags/tags.png">
|
||||
|
||||
<h2>{{ trans('settings.tags_blank_title') }}</h2>
|
||||
|
||||
<p>{{ trans('settings.tags_blank_description') }}</p>
|
||||
|
||||
</div>
|
||||
|
||||
@else
|
||||
|
||||
<h3 class="with-actions">
|
||||
{{ trans('settings.tags_list_title') }}
|
||||
</h3>
|
||||
|
||||
<p>{{ trans('settings.tags_list_description') }}</p>
|
||||
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<ul class="table">
|
||||
@foreach (auth()->user()->account->tags as $tag)
|
||||
<li class="table-row" data-tag-id="{{ $tag->id }}">
|
||||
<div class="table-cell">
|
||||
{{ $tag->name }}
|
||||
<span class="tags-list-contact-number">({{ trans('settings.tags_list_contact_number', ['count' => $tag->contacts()->count()]) }})</span>
|
||||
</div>
|
||||
<div class="table-cell actions">
|
||||
<a href="/settings/tags/{{ $tag->id }}/delete" onclick="return confirm('{{ trans('settings.tags_list_delete_confirmation') }}')">
|
||||
<i class="fa fa-trash-o" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
Reference in New Issue
Block a user