Skip to content

Commit

Permalink
more detailed user profile in admin
Browse files Browse the repository at this point in the history
  • Loading branch information
kenyasue committed Mar 18, 2014
1 parent 1cdedb5 commit be497b4
Show file tree
Hide file tree
Showing 4 changed files with 312 additions and 8 deletions.
18 changes: 14 additions & 4 deletions src/Spika/Controller/Web/Admin/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,19 @@ public function connect(Application $app)
$self->setVariables();

$user = $self->app['spikadb']->findUserById($id,false);

return $self->render('admin/userForm.twig', array(

$contact = $self->app['spikadb']->getContactsByUserId($id);
$contacted = $self->app['spikadb']->getContactedByUserId($id);
$group = $self->app['spikadb']->getGroupsByUserId($id);

return $self->render('admin/userProfile.twig', array(
'mode' => 'view',
'statusList' => $self->userStatusList,
'genderList' => $self->userGenderList,
'formValues' => $user
'formValues' => $user,
'contacts' => $contact,
'contacted' => $contacted,
'groups' => $group,
));

})->before($app['adminBeforeTokenChecker']);
Expand Down Expand Up @@ -443,6 +450,7 @@ public function validate($request,$editmode = false,$userId = ""){
}

if($editmode){

// check name is unique
$check = $this->app['spikadb']->findUserByName($formValues['name']);
if(isset($check['_id']) && $check['_id'] != $userId){
Expand All @@ -456,7 +464,9 @@ public function validate($request,$editmode = false,$userId = ""){
$this->setErrorAlert($this->language['messageValidationErrorUserEmailNotUnique']);
$validationResult = false;
}

}else{

// check name is unique
$check = $this->app['spikadb']->findUserByName($formValues['name']);
if(isset($check['_id'])){
Expand All @@ -470,9 +480,9 @@ public function validate($request,$editmode = false,$userId = ""){
$this->setErrorAlert($this->language['messageValidationErrorUserEmailNotUnique']);
$validationResult = false;
}

}


if($request->files->has("file")){

$file = $request->files->get("file");
Expand Down
3 changes: 3 additions & 0 deletions src/Spika/Db/DbInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,8 @@ public function findAllUsersWithPagingWithCriteria($offect,$count,$criteria);
public function findUserCountWithCriteria($criteria);
public function findAllGroupsWithPagingWithCriteria($offect,$count,$criteria);
public function findGroupCountWithCriteria($criteria);
public function getContactsByUserId($userId);
public function getContactedByUserId($userId);
public function getGroupsByUserId($userId);

}
22 changes: 18 additions & 4 deletions src/Spika/Db/MySql.php
Original file line number Diff line number Diff line change
Expand Up @@ -2043,13 +2043,27 @@ public function findAllGroupsWithPagingWithCriteria($offset,$count,$criteria){
}

public function findGroupCountWithCriteria($criteria){

$query = "select count(*) as count from `group` where 1 = 1 {$criteria} ";

$result = $this->DB->fetchColumn($query);

return $result;

}

public function getContactsByUserId($userId){
$query = "select * from user where _id in (select user_id from user_contact where user_id = ?)";
$users = $this->DB->fetchAll($query,array($userId));
return $users;
}

public function getContactedByUserId($userId){
$query = "select * from user where _id in (select user_id from user_contact where contact_user_id = ?)";
$users = $this->DB->fetchAll($query,array($userId));
return $users;
}

public function getGroupsByUserId($userId){
$query = "select * from `group` where _id in (select group_id from user_group where user_id = ?)";
$groups = $this->DB->fetchAll($query,array($userId));
return $groups;
}

}
277 changes: 277 additions & 0 deletions src/Spika/Views/admin/userProfile.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,277 @@
{% extends "admin/adminBase.twig" %}

{% block content %}


<div class="row">
<div class="col-lg-12">
<h1 class="page-header">
{{lang.labelViewUser}}
</h1>
</div>
</div>

<div class="row">
<div class="col-lg-8">

{% include "admin/alerts.twig" %}

<ul class="nav nav-tabs">
<li class="active"><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#contacts" data-toggle="tab">Contacts</a></li>
<li><a href="#contacted" data-toggle="tab">Contacted</a></li>
<li><a href="#groups" data-toggle="tab">Groups</a></li>
</ul>

<div class="tab-content">

<div class="tab-pane active" id="profile">

<div class="panel panel-default">
<div class="panel-heading">
{{lang.labelpicture}}
</div>
<div class="panel-body">
{% if formValues.avatar_thumb_file_id != '' %}
<img class="img-thumbnail" src="{{ROOT_URL}}/api/filedownloader?file={{formValues.avatar_thumb_file_id}}" width="120" />
{% else %}
<img class="img-thumbnail" src="http://dummyimage.com/120x120/e2e2e2/7a7a7a&text=nopicture" width="120"/>
{% endif %}

{% if formValues.avatar_file_id != '' %}
<img class="img-thumbnail" src="{{ROOT_URL}}/api/filedownloader?file={{formValues.avatar_file_id}}" width="640"/>
{% else %}
<img class="img-thumbnail" src="http://dummyimage.com/640x640/e2e2e2/7a7a7a&text=nopicture" width="640"/>
{% endif %}
</div>
</div>

<div class="form-group">
<label>{{lang.formUserName}}</label>
<div class="well">{{formValues.name}}</div>
</div>

<div class="form-group">
<label>{{lang.formUserEmail}}</label>
<div class="well">{{formValues.email}}</div>

</div>

<div class="form-group">
<label>{{lang.formUserPassword}}</label>
<div class="well">{% if formValues.password != "" %}Yes{% else %}No{% endif %}</div>
</div>

<div class="form-group">
<label>{{lang.formUserAbout}}</label>
<div class="well">{{formValues.about}}</div>
</div>

<div class="form-group">
<label>{{lang.formUserStatus}}</label>
<div class="well">{{formValues.online_status}}</div>
</div>

<div class="form-group">
<label>{{lang.formMaxContacts}}</label>
<div class="well">{{formValues.max_contact_count}}</div>
</div>

<div class="form-group">
<label>{{lang.formMaxFavorites}}</label>
<div class="well">{{formValues.max_favorite_count}}</div>
</div>

<div class="form-group">
<label>{{lang.formBirthday}}</label>
<div class="well">{{formValues.birthday|date('Y.m.d')}}</div>
</div>


<div class="form-group">
<label>{{lang.formGender}}</label>
<div class="well">{{formValues.gender}}</div>
</div>

<div class="form-group">
<label>{{lang.formToken}}</label>
<div class="well">{{formValues.token}}</div>
</div>
<div class="form-group">
<label>{{lang.formIosToken}}</label>
<div class="well">{{formValues.ios_push_token}}</div>
</div>
<div class="form-group">
<label>{{lang.formAndroidToken}}</label>
<div class="well">{{formValues.android_push_token}}</div>
</div>
<div class="form-group">
<label>{{lang.formLastLogin}}</label>
<div class="well">{{formValues.last_login|date('Y.m.d H:i:s')}}</div>
</div>
<div class="form-group">
<label>{{lang.labelCreated}}</label>
<div class="well">{{formValues.created|date('Y.m.d H:i:s')}}</div>
</div>
<div class="form-group">
<label>{{lang.labelModified}}</label>
<div class="well">{{formValues.modified|date('Y.m.d H:i:s')}}</div>
</div>
</div>

<div class="tab-pane" id="contacts">

<table class="table table-striped">

<thead>
<tr>
<th>#</th>
<th>{{lang.formUserAvatar}}</th>
<th>{{lang.formUserName}}</th>
<th>{{lang.formUserEmail}}</th>
<th class="text-right">{{lang.labelCreated}}</th>
<th width="100px"></th>
</tr>
</thead>
<tbody>

{% for user in contacts %}

<tr>
<td>{{user._id}}</td>
<td>
{% if user.avatar_thumb_file_id != '' %}
<img class="img-thumbnail" src="{{ROOT_URL}}/api/filedownloader?file={{user.avatar_thumb_file_id}}" width="60"/>
{% else %}
<img class="img-thumbnail" src="http://dummyimage.com/60x60/e2e2e2/7a7a7a&text=nopicture" width="60"/>
{% endif %}
</td>
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td class="text-right">{{user.created}}</td>
<td class="text-right">

</td>

</tr>

{% endfor %}

</tbody>
</table>
</div>

<div class="tab-pane" id="contacted">


<table class="table table-striped">

<thead>
<tr>
<th>#</th>
<th>{{lang.formUserAvatar}}</th>
<th>{{lang.formUserName}}</th>
<th>{{lang.formUserEmail}}</th>
<th class="text-right">{{lang.labelCreated}}</th>
<th width="100px"></th>
</tr>
</thead>
<tbody>

{% for user in contacted %}

<tr>
<td>{{user._id}}</td>
<td>
{% if user.avatar_thumb_file_id != '' %}
<img class="img-thumbnail" src="{{ROOT_URL}}/api/filedownloader?file={{user.avatar_thumb_file_id}}" width="60"/>
{% else %}
<img class="img-thumbnail" src="http://dummyimage.com/60x60/e2e2e2/7a7a7a&text=nopicture" width="60"/>
{% endif %}
</td>
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td class="text-right">{{user.created}}</td>
<td class="text-right">



</td>

</tr>

{% endfor %}

</tbody>
</table>


</div>

<div class="tab-pane" id="groups">


<table class="table table-striped">

<thead>
<tr>
<th>#</th>
<th>{{lang.formGroupAvatar}}</th>
<th>{{lang.formGroupCategory}}</th>
<th>{{lang.formGroupName}}</th>
<th>{{lang.labelCreated}}</th>
<th></th>
</tr>
</thead>
<tbody>

{% for group in groups %}

<tr>
<td>{{group._id}}</td>
<td>
{% if group.avatar_thumb_file_id != '' %}
<img class="img-thumbnail" src="{{ROOT_URL}}/api/filedownloader?file={{group.avatar_thumb_file_id}}" width="60"/>
{% else %}
<img class="img-thumbnail" src="http://dummyimage.com/60x60/e2e2e2/7a7a7a&text=nopicture" width="60"/>

{% endif %}
</td>
<td>
{% if categoryList[group.category_id] is defined %}
{{categoryList[group.category_id].title}}
{% endif %}
</td>
<td>{{group.name}}</td>
<td>{{group.created}}</td>
<td>



</td>
</tr>

{% endfor %}

</tbody>
</table>

</div>

</div>






</div>

<div id="chatWindow" class="col-lg-4">

</div>
</div>

</script>

{% endblock %}

0 comments on commit be497b4

Please sign in to comment.