5 Commits

4 changed files with 72 additions and 3 deletions

View File

@@ -189,6 +189,13 @@ function bindOrganisationButtons(el, options) {
var options = { var options = {
ajax: { ajax: {
url: site.uri.public + '/api/organisations', url: site.uri.public + '/api/organisations',
data: function (params) {
return {
filters: {
info : params.term
}
};
},
processResults: function (data) { processResults: function (data) {
var items = data.rows.filter((i) => i.slug != organisation_slug); var items = data.rows.filter((i) => i.slug != organisation_slug);
return { return {

View File

@@ -255,7 +255,7 @@ class OrganisationController extends SimpleController
// Check if name or slug already exists // Check if name or slug already exists
if ( if (
isset($data['name']) && isset($data['name']) &&
$data['name'] != $organisation->name && strtolower($data['name']) != strtolower($organisation->name) &&
$classMapper->getClassMapping('organisation')::findUnique($data['name'], 'name') $classMapper->getClassMapping('organisation')::findUnique($data['name'], 'name')
) { ) {
$ms->addMessageTranslated('danger', 'ORGANISATION.NAME.IN_USE', $data); $ms->addMessageTranslated('danger', 'ORGANISATION.NAME.IN_USE', $data);

View File

@@ -311,6 +311,14 @@ class OrganisationPermissions extends BaseSeed
]); ]);
} }
$roleUserAdmin = Role::where('slug', 'user-admin')->first();
if ($roleSiteAdmin) {
$roleSiteAdmin->permissions()->syncWithoutDetaching([
$permissions['view_user_field']->id,
$permissions['update_user_field']->id,
]);
}
$roleGroupAdmin = Role::where('slug', 'group-admin')->first(); $roleGroupAdmin = Role::where('slug', 'group-admin')->first();
if ($roleGroupAdmin) { if ($roleGroupAdmin) {
$roleGroupAdmin->permissions()->sync([ $roleGroupAdmin->permissions()->sync([

View File

@@ -12,7 +12,7 @@ namespace UserFrosting\Sprinkle\Organisations\Sprunje;
use Illuminate\Database\Schema\Builder; use Illuminate\Database\Schema\Builder;
use UserFrosting\Sprinkle\Core\Facades\Translator; use UserFrosting\Sprinkle\Core\Facades\Translator;
use UserFrosting\Sprinkle\Core\Sprunje\Sprunje; use UserFrosting\Sprinkle\Core\Sprunje\Sprunje;
use UserFrosting\Sprinkle\Admin\Sprunje\UserSprunje as UFUserSprunje; use UserFrosting\Sprinkle\UFTweaks\Sprunje\UserSprunje as UFUserSprunje;
/** /**
* UserSprunje. * UserSprunje.
@@ -29,8 +29,10 @@ class UserSprunje extends UFUserSprunje
'last_activity', 'last_activity',
'status', 'status',
]; ];
protected $sortable = [ protected $sortable = [
'name', 'name',
'organisations',
'last_activity', 'last_activity',
'status', 'status',
]; ];
@@ -56,6 +58,7 @@ class UserSprunje extends UFUserSprunje
*/ */
protected function sortOrganisations($query, $direction) protected function sortOrganisations($query, $direction)
{ {
$query = $query->addSelect('organisations.name');
$query->orderBy('organisations.name', $direction); $query->orderBy('organisations.name', $direction);
return $this; return $this;
@@ -75,13 +78,64 @@ class UserSprunje extends UFUserSprunje
$values = explode($this->orSeparator, $value); $values = explode($this->orSeparator, $value);
$query->where(function ($query) use ($values) { $query->where(function ($query) use ($values) {
foreach ($values as $value) { foreach ($values as $value) {
$query->orLike('organisations.name', $value); $likeValue = '%' . mb_strtolower($value) . '%';
$query->orWhereRaw('LOWER(organisations.name) LIKE ?', $likeValue);
} }
}); });
return $this; return $this;
} }
/**
* Sort based on last activity time.
*
* @param Builder $query
* @param string $direction
*
* @return self
*/
protected function sortLastActivity($query, $direction)
{
$query = $query->addSelect('activities.occurred_at');
$query->orderBy('activities.occurred_at', $direction);
return $this;
}
/**
* Sort based on last name.
*
* @param Builder $query
* @param string $direction
*
* @return self
*/
protected function sortName($query, $direction)
{
$query = $query->addSelect('last_name');
$query = $query->addSelect('first_name');
$query->orderBy('last_name', $direction)->orderBy('first_name', $direction);
return $this;
}
/**
* Sort active, unactivated, disabled.
*
* @param Builder $query
* @param string $direction
*
* @return self
*/
protected function sortStatus($query, $direction)
{
$query = $query->addSelect('flag_enabled');
$query = $query->addSelect('flag_verified');
$query->orderBy('flag_enabled', $direction)->orderBy('flag_verified', $direction);
return $this;
}
/** /**
* Get the unpaginated count of items (before filtering) in this query. * Get the unpaginated count of items (before filtering) in this query.
* *