Sfoglia il codice sorgente

group view changes

master
Daniel 2 anni fa
parent
commit
ffba232ad5
9 ha cambiato i file con 40 aggiunte e 23 eliminazioni
  1. +1
    -0
      src/client/app/js/app/core/Dict.js
  2. +1
    -5
      src/client/app/js/app/state/GroupDetail.js
  3. +1
    -1
      src/client/app/js/app/state/GroupMemberManagement.js
  4. +2
    -6
      src/client/app/js/app/state/GroupMembers.js
  5. +2
    -2
      src/client/app/tmpl/group-detail.html
  6. +1
    -1
      src/client/app/tmpl/group-members.html
  7. +3
    -3
      src/client/app/tmpl/group-nav.html
  8. +21
    -2
      src/server/server/control/TB_Server_Control_Team.php
  9. +8
    -3
      src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Profile.php

+ 1
- 0
src/client/app/js/app/core/Dict.js Vedi File

@@ -57,6 +57,7 @@ app.core.Dict = {
"GROUP_CONFIGURATION" : "Gruppeneinstellung", "GROUP_CONFIGURATION" : "Gruppeneinstellung",
"DETAILS" : "Details", "DETAILS" : "Details",
"MEMBERS" : "Mitglieder", "MEMBERS" : "Mitglieder",
"ADMINS" : "Administratoren",
"INVITATION" : "Einladung", "INVITATION" : "Einladung",
"STATS" : "Statistik", "STATS" : "Statistik",
"TEAM_DETAIL_TEAMNAME_PLACEHOLDER" : "Bitte gib deinem Firmen-/Gruppennamen ein", "TEAM_DETAIL_TEAMNAME_PLACEHOLDER" : "Bitte gib deinem Firmen-/Gruppennamen ein",


+ 1
- 5
src/client/app/js/app/state/GroupDetail.js Vedi File

@@ -67,10 +67,6 @@ app.state.GroupDetail = function()
{ {
member = new app.model.Profile( res.members[ mi ] ); member = new app.model.Profile( res.members[ mi ] );
members.push( member ); members.push( member );
if ( member.getId() == app.model.SessionUser.getProfileId() )
{
currentProfile = member;
}
} }
app.core.View.setContent( app.core.View.setContent(
@@ -79,7 +75,7 @@ app.state.GroupDetail = function()
{ {
members : members, members : members,
group : group, group : group,
currentProfile : currentProfile
currentProfile : app.model.SessionUser.getUserProfile()
} ) } )
); );


+ 1
- 1
src/client/app/js/app/state/GroupMemberManagement.js Vedi File

@@ -147,7 +147,7 @@ app.state.GroupMemberManagement = function()
app.core.Rpc.call( app.core.Rpc.call(
'Team', 'Team',
'getDetails', 'getDetails',
{ teamId : groupId, includeEmails : true },
{ teamId : groupId, includeEmails : true, includeMembers: true },
function( res ) function( res )
{ {


+ 2
- 6
src/client/app/js/app/state/GroupMembers.js Vedi File

@@ -19,7 +19,7 @@ app.state.GroupMembers = function()
app.core.Rpc.call( app.core.Rpc.call(
'Team', 'Team',
'getDetails', 'getDetails',
{ teamId : groupId },
{ teamId : groupId, includeMembers: true, adminsOnly: true },
function( res ) function( res )
{ {
@@ -32,10 +32,6 @@ app.state.GroupMembers = function()
{ {
member = new app.model.Profile( res.members[ mi ] ); member = new app.model.Profile( res.members[ mi ] );
members.push( member ); members.push( member );
if ( member.getId() == app.model.SessionUser.getProfileId() )
{
currentProfile = member;
}
} }
app.core.View.setContent( app.core.View.setContent(
@@ -44,7 +40,7 @@ app.state.GroupMembers = function()
{ {
members : members, members : members,
group : group, group : group,
currentProfile : currentProfile
currentProfile : app.model.SessionUser.getUserProfile()
} ) } )
); );


+ 2
- 2
src/client/app/tmpl/group-detail.html Vedi File

@@ -48,7 +48,7 @@
<div class="card-footer"> <div class="card-footer">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<% if ( currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<% if ( null !== currentProfile && currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<button type="button" <button type="button"
data-id="btn-edit-group" data-id="btn-edit-group"
class="btn btn-sm btn-primary"> class="btn btn-sm btn-primary">
@@ -60,7 +60,7 @@
<%= _lc( 'BTN_EDIT_GROUP_PHOTO' ) %> <%= _lc( 'BTN_EDIT_GROUP_PHOTO' ) %>
</button> </button>
<% } %> <% } %>
<% if ( currentProfile.isOwnerOfGroup( group.getId() ) ) { %>
<% if ( null !== currentProfile && currentProfile.isOwnerOfGroup( group.getId() ) ) { %>
<button type="button" <button type="button"
data-id="btn-delete-group" data-id="btn-delete-group"
class="float-right btn btn-sm btn-danger"> class="float-right btn btn-sm btn-danger">


+ 1
- 1
src/client/app/tmpl/group-members.html Vedi File

@@ -19,7 +19,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="group-members-header"> <div class="group-members-header">
<i class="fas fa-users"></i> <%= _lc( 'MEMBERS' ) %> (<%= members.length %>)
<i class="fas fa-users"></i> <%= _lc( 'ADMINS' ) %> (<%= members.length %>)
</div> </div>
<div class="group-members-content"> <div class="group-members-content">
<div class="table-responsive"> <div class="table-responsive">


+ 3
- 3
src/client/app/tmpl/group-nav.html Vedi File

@@ -9,10 +9,10 @@
<li class="nav-item"> <li class="nav-item">
<a class="nav-link <%= ( activeTab == 'members' ) ? 'active' : '' %>" <a class="nav-link <%= ( activeTab == 'members' ) ? 'active' : '' %>"
href="#/group/<%= group.getId() %>/members"> href="#/group/<%= group.getId() %>/members">
<%= _lc( 'MEMBERS' ) %>
<%= _lc( 'ADMINS' ) %>
</a> </a>
</li> </li>
<% if ( currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<% if ( null !== currentProfile && currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link <%= ( activeTab == 'invite' ) ? 'active' : '' %>" <a class="nav-link <%= ( activeTab == 'invite' ) ? 'active' : '' %>"
href="#/group/<%= group.getId() %>/invite"> href="#/group/<%= group.getId() %>/invite">
@@ -20,7 +20,7 @@
</a> </a>
</li> </li>
<% } %> <% } %>
<% if ( currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<% if ( null !== currentProfile && currentProfile.isAdminOfGroup( group.getId() ) ) { %>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link <%= ( activeTab == 'setting' ) ? 'active' : '' %>" <a class="nav-link <%= ( activeTab == 'setting' ) ? 'active' : '' %>"
href="#/group/<%= group.getId() %>/setting"> href="#/group/<%= group.getId() %>/setting">


+ 21
- 2
src/server/server/control/TB_Server_Control_Team.php Vedi File

@@ -81,6 +81,8 @@ class TB_Server_Control_Team {
$teamId = $params->get( 'teamId' ); $teamId = $params->get( 'teamId' );
$includeEmail = $params->get( 'includeEmails' ); $includeEmail = $params->get( 'includeEmails' );
$adminsOnly = $params->get( 'adminsOnly' );
$includeMembers = $params->get( 'includeMembers' );
$members = array(); $members = array();
$sessionProfile = TB_Server_Core_Session::get()->getProfile(); $sessionProfile = TB_Server_Core_Session::get()->getProfile();
@@ -89,6 +91,10 @@ class TB_Server_Control_Team {
throw new \Exception( 'Cannot access team with id: ' . $teamId ); throw new \Exception( 'Cannot access team with id: ' . $teamId );
} }
if ($includeMembers && !$adminsOnly && !$sessionProfile->isAdminOfTeam($teamId)) {
throw new \Exception( 'User is not admin of team with id: ' . $teamId );
}
$team = TB_Shared_Ent_TeamData_Team::get( $teamId ); $team = TB_Shared_Ent_TeamData_Team::get( $teamId );
if ( !($team instanceof TB_Shared_Ent_TeamData_Team ) ) if ( !($team instanceof TB_Shared_Ent_TeamData_Team ) )
@@ -97,10 +103,23 @@ class TB_Server_Control_Team {
return $resp; return $resp;
} }
$members = TB_Shared_Ent_TeamData_Profile::getProfilesByTeamId( $team->id );
$filteredMembers = [];
if ($includeMembers) {
$members = TB_Shared_Ent_TeamData_Profile::getProfilesByTeamId( $team->id );
/** @var TB_Shared_Ent_TeamData_Profile $member */
foreach ($members as $member) {
if ($adminsOnly) {
if ($member->isAdminOfTeam($teamId)) {
$filteredMembers[] = $member;
}
} else {
$filteredMembers[] = $member;
}
}
}
$resp->addData( 'team', $team ); $resp->addData( 'team', $team );
$resp->addData( 'members', $members );
$resp->addData( 'members', $filteredMembers );
if ( $includeEmail ) if ( $includeEmail )
{ {


+ 8
- 3
src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Profile.php Vedi File

@@ -37,6 +37,10 @@ class TB_Shared_Ent_TeamData_Profile extends Francis_Db_Row {
const ROLE_COTRAINER = 'cotrainer'; const ROLE_COTRAINER = 'cotrainer';
const ROLE_PLAYER = 'player'; const ROLE_PLAYER = 'player';
const STATUS_NOT_APPROVED = 'not_approved';
const STATUS_ACTIVE = 'active';
const STATUS_INACTIVE = 'inactive';
// Enums // Enums
const GENDER_MALE = 'male'; const GENDER_MALE = 'male';
const GENDER_FEMALE = 'female'; const GENDER_FEMALE = 'female';
@@ -436,12 +440,13 @@ class TB_Shared_Ent_TeamData_Profile extends Francis_Db_Row {
{ {
$teamsJson = array(); $teamsJson = array();
} }
array_push( $teamsJson, array(
$teamsJson[] = array(
'team_id' => $teamId, 'team_id' => $teamId,
'role' => TB_Shared_Ent_TeamData_Profile::ROLE_PLAYER, 'role' => TB_Shared_Ent_TeamData_Profile::ROLE_PLAYER,
'is_anonymous' => 0, 'is_anonymous' => 0,
'join_dt' => TB_Server_Utils_Helper::getUTCNowDateTime()
));
'join_dt' => TB_Server_Utils_Helper::getUTCNowDateTime(),
'status' => self::STATUS_NOT_APPROVED
);
$this->teams_js = $teamsJson; $this->teams_js = $teamsJson;
} }


Caricamento…
Annulla
Salva