Working on the API

This commit is contained in:
Hillel Coren 2015-11-05 10:44:48 +02:00
parent d0f8ee7797
commit cb243fec0a
7 changed files with 36 additions and 13 deletions

View File

@ -52,7 +52,7 @@ class AccountApiController extends BaseAPIController
$users = $this->accountRepo->findUsers(Auth::user(), 'account.account_tokens');
$resource = new Collection($users, new UserAccountTransformer($request->token_name));
return $this->returnData($resource);
return $this->returnData($resource, 'user_accounts');
}
public function show($accountKey)

View File

@ -16,9 +16,14 @@ class BaseAPIController extends Controller
$this->manager->setSerializer(new ArraySerializer());
}
protected function returnData($resource)
protected function returnData($resource, $class = false)
{
$response = $this->manager->createData($resource)->toArray();
if ($class) {
$response = [$class => $response];
}
$response = json_encode($response, JSON_PRETTY_PRINT);
$headers = Utils::getApiHeaders();

View File

@ -3,27 +3,32 @@
use App\Models\User;
use League\Fractal;
use League\Fractal\TransformerAbstract;
use League\Fractal\Resource\Item;
class UserAccountTransformer extends TransformerAbstract
{
protected $tokenName;
protected $defaultIncludes = [
'user'
];
protected $tokenName;
public function __construct($tokenName)
{
$this->tokenName = $tokenName;
}
public function includeUser(User $user)
{
return $this->item($user, new UserTransformer);
}
public function transform(User $user)
{
return [
'account_key' => $user->account->account_key,
'name' => $user->account->name,
'token' => $user->account->getToken($this->tokenName),
'user' => [
'first_name' => $user->first_name,
'last_name' => $user->last_name,
'email' => $user->email,
]
];
}
}

View File

@ -9,7 +9,7 @@ class UserTransformer extends TransformerAbstract
public function transform(User $user)
{
return [
'id' => (int) $user->id,
'id' => (int) ($user->public_id + 1),
'first_name' => $user->first_name,
'last_name' => $user->last_name,
'email' => $user->email,

View File

@ -50,21 +50,22 @@
<script type="text/javascript">
$(function() {
var {{ $field }}Editor = new Quill('#{{ $field }}Editor', {
var editor = new Quill('#{{ $field }}Editor', {
modules: {
'toolbar': { container: '#{{ $field }}Toolbar' },
'link-tooltip': true
},
theme: 'snow'
});
{{ $field }}Editor.setHTML($('#email_template_{{ $field }}').val());
{{ $field }}Editor.on('text-change', function(delta, source) {
editor.setHTML($('#email_template_{{ $field }}').val());
editor.on('text-change', function(delta, source) {
if (source == 'api') {
return;
}
var html = {{ $field }}Editor.getHTML();
var html = editors['{{ $field }}'].getHTML();
$('#email_template_{{ $field }}').val(html);
refreshPreview();
});
editors['{{ $field }}'] = editor;
});
</script>

View File

@ -12,6 +12,10 @@
}
</style>
<script type="text/javascript">
var editors = [];
</script>
@stop
@section('content')
@ -185,6 +189,7 @@
var fieldName = 'email_' + section + '_' + field;
var value = templates[field][section];
$('#' + fieldName).val(value);
editors[field].setHTML(value);
refreshPreview();
}

View File

@ -1,3 +1,5 @@
<div class="quill-wrapper">
<div id="toolbar-toolbar" class="toolbar ql-toolbar ql-snow">
<div id="{{ $field }}Toolbar" class="toolbar" style="padding-left: 0px">
<span class="ql-format-group">
<select title="Font" class="ql-font">
@ -110,4 +112,9 @@
<option value="justify" label="Justify"></option>
</select>
</span>
<span class="ql-format-group">
<span title="Link" class="ql-format-button ql-link"></span>
</span>
</div>
</div>
</div>