Commit 6c40e432 authored by Bart Boone's avatar Bart Boone 🤞🏼

Merge branch 'dev' into 'staging'

Dev

See merge request !48
parents ee547fc1 ba169bab
Pipeline #1420 failed with stages
in 122 minutes and 1 second
......@@ -36,7 +36,7 @@ public interface IGebruikersService
/// <summary>
/// Als de persoon met gegeven <paramref name="gelieerdePersoonID"/> nog geen account heeft, wordt er een
/// account voor gemaakt. Aan die account worden dan de meegegeven <paramref name="gebruikersRecht"/>
/// gekoppeld. Gebruikersrechten zijn standaard 14 maanden geldig.
/// gekoppeld. Gebruikersrechten zijn standaard geldig tot 1 november in het volgende werkjaar.
/// </summary>
/// <param name="gelieerdePersoonID">ID van gelieerde persoon die rechten moet krijgen</param>
/// <param name="gebruikersRecht">Rechten die de account moet krijgen. Mag leeg zijn. Bestaande
......
......@@ -80,7 +80,7 @@ protected virtual void Dispose(bool disposing)
private readonly IRepositoryProvider _repositoryProvider;
private readonly IRepository<GebruikersRechtV2> _rechtenRepo;
private readonly IRepository<GelieerdePersoon> _gelieerdePersonenRepo;
private readonly IRepository<Persoon> _personenRepo;
private readonly IRepository<Persoon> _personenRepo;
// Managers voor niet-triviale businesslogica
......@@ -147,13 +147,6 @@ public void RechtenToekennen(int gelieerdePersoonId, GebruikersRecht gebruikersR
var gelieerdePersoon = _gelieerdePersonenRepo.ByID(gelieerdePersoonId);
//Gav.Check(gelieerdePersoon);
if (gebruikersRecht == null)
{
// Als er geen gebruikersrechten meegegeven zijn, dan geven we de gelieerde persoon
// rechten 'geen' op zijn eigen groep.
gebruikersRecht = new GebruikersRecht();
}
var p = gelieerdePersoon.Persoon;
if (p.AdNummer == null)
......@@ -166,10 +159,22 @@ public void RechtenToekennen(int gelieerdePersoonId, GebruikersRecht gebruikersR
throw FaultExceptionHelper.FoutNummer(FoutNummer.EMailVerplicht, Resources.EmailOntbreekt);
}
// Zolang de gebruikersrechten niet gemplementeerd zijn, mogen er geen rechten toegekend worden.
// Anders verschijnen zelfs gebruikers met enkel Permissies.Geen in het GAV-overzicht, en dat is verwarrend.
// Ook zouden die mensen mee de herinnering krijgen om hun rechten te verlengen, maar ze kunnen niet op GAP.
// TODO (zie o.a. #3171)
if (gebruikersRecht == null)
{
gebruikersRecht = new GebruikersRecht();
}
//if (gebruikersRecht != null)
//{
_gebruikersRechtenMgr.ToekennenOfWijzigen(gelieerdePersoon.Persoon, gelieerdePersoon.Groep,
gebruikersRecht.PersoonsPermissies, gebruikersRecht.GroepsPermissies, gebruikersRecht.AfdelingsPermissies,
gebruikersRecht.IedereenPermissies);
//}
#if KIPDORP
using (var tx = new TransactionScope())
......@@ -209,8 +214,8 @@ public void RechtenAfnemen(int persoonID, int[] groepIDs)
var teExpirenRechten =
(from g in persoon.GebruikersRechtV2
where (g.VervalDatum == null || g.VervalDatum >= DateTime.Today) && groepIDs.Contains(g.Groep.ID)
select g).ToList();
where (g.VervalDatum == null || g.VervalDatum >= DateTime.Today) && groepIDs.Contains(g.Groep.ID)
select g).ToList();
foreach (var gr in teExpirenRechten)
{
......@@ -235,14 +240,14 @@ public string VerzekeringsUrlGet(int groepID)
}
var ik = (from p in _personenRepo.Select()
where p.AdNummer == adNummer
select p).First();
where p.AdNummer == adNummer
select p).First();
if (ik != null)
{
mijnGp = (from gp in ik.GelieerdePersoon
where gp.Groep.ID == groepID
select gp).FirstOrDefault();
where gp.Groep.ID == groepID
select gp).FirstOrDefault();
}
......@@ -262,17 +267,17 @@ public string VerzekeringsUrlGet(int groepID)
where gr.Groep.ID == groepID
select gr.Groep.Code).First().Replace(';', ',');
string email =
mijnGp.Communicatie.Where(comm => comm.CommunicatieType.ID == (int) CommunicatieTypeEnum.Email)
mijnGp.Communicatie.Where(comm => comm.CommunicatieType.ID == (int)CommunicatieTypeEnum.Email)
.OrderByDescending(comm => comm.Voorkeur)
.Select(comm => comm.Nummer).FirstOrDefault();
if (email == null)
{
throw new FaultException<FoutNummerFault>(new FoutNummerFault
{
Bericht = Resources.EmailOntbreekt,
FoutNummer = FoutNummer.EMailVerplicht
});
{
Bericht = Resources.EmailOntbreekt,
FoutNummer = FoutNummer.EMailVerplicht
});
}
email = email.Replace(';', ',');
......@@ -306,8 +311,8 @@ public string VerzekeringsUrlGet(int groepID)
}
var lps = (from gp in ik.GelieerdePersoon
where gp.Groep.ID == groepID
select gp).ToList();
where gp.Groep.ID == groepID
select gp).ToList();
var leden = lps.SelectMany(gp => gp.Lid).ToList();
if (!leden.Any())
{
......@@ -334,11 +339,11 @@ public GebruikersDetail DetailsOphalen(int adNummer, bool aanMaken)
mijnAdNummer));
}
var persoon = (from p in _personenRepo.Select()
where p.AdNummer == adNummer
select p).FirstOrDefault();
where p.AdNummer == adNummer
select p).FirstOrDefault();
var ik = (from p in _personenRepo.Select()
where p.AdNummer == mijnAdNummer
select p).FirstOrDefault();
where p.AdNummer == mijnAdNummer
select p).FirstOrDefault();
if (persoon == null && aanMaken)
{
......
......@@ -626,7 +626,7 @@ public CommunicatieDetail CommunicatieVormOphalen(int commvormID)
/// <param name="ID">CommunicatieVormID</param>
/// <param name="waarde">Nieuw nummer</param>
/// <remarks>
/// Dit wordt aangeroepen vanuit Chiro.Gap.WebApp/Scripts/jquery-persoons-fiche.js
/// Dit wordt aangeroepen vanuit Chiro.Gap.WebApp/Scripts/jquery-persoonsfiche.js
/// </remarks>
public void NummerCommunicatieVormWijzigen(int ID, string waarde)
{
......
......@@ -3,6 +3,7 @@
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<Use64BitIISExpress />
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
......@@ -302,7 +303,7 @@
<Content Include="Scripts\Modules\GroepModule.js" />
<Content Include="Scripts\Modules\PersoonModule.js" />
<Content Include="Scripts\jquery-overzicht-leden.js" />
<Content Include="Scripts\jquery-persoons-fiche.js" />
<Content Include="Scripts\jquery-persoonsfiche.js" />
<Content Include="Content\jquery.dataTables_themeroller.css" />
<Content Include="Scripts\jquery\jquery-ui-1.10.2.custom.min.js" />
<Content Include="Scripts\jquery-uitstap.js" />
......
#header #settingsmenu, #topNavigatie, .mededelingen, .opzij, button, #footer, #commLeeg, td:nth-child(3), td:nth-child(4),td:nth-child(5),#livetest, #terug {
#header #settingsmenu, #topNavigatie, .mededelingen, .opzij, button, #footer, #commLeeg, td:nth-child(3), td:nth-child(4), td:nth-child(5), #livetest, #terug {
display: none;
}
#handleidingTitel {
display: none;
}
#helpmenu {
display: none;
}
......@@ -6,7 +14,7 @@ table tr:nth-child(even) {
background: #D3D3D3;
}
table, h1, h3, #PersoonsInformatie{
table, h1, h3, #PersoonsInformatie {
margin-top: 0;
margin-left: 0;
margin-right: 0;
......@@ -15,10 +23,10 @@ table, h1, h3, #PersoonsInformatie{
}
.page {
width: 100%;
width: 100%;
}
a,a:link, a:hover, a:visited,span{
a, a:link, a:hover, a:visited, span {
text-decoration: none;
color: #000000;
}
......@@ -49,7 +49,7 @@ public GebruikersRechtController(IVeelGebruikt veelGebruikt, ServiceHelper servi
public ActionResult AanGpToekennen(int groepID, int id)
{
ServiceHelper.CallService<IGebruikersService>(
svc => svc.RechtenToekennen(id, new GebruikersRecht {GroepsPermissies = Permissies.Bewerken, IedereenPermissies = Permissies.Bewerken}));
svc => svc.RechtenToekennen(id, new GebruikersRecht { GroepsPermissies = Permissies.Bewerken, IedereenPermissies = Permissies.Bewerken }));
return RedirectToAction("Bewerken", new { Controller = "Personen", id });
}
......@@ -65,7 +65,7 @@ public ActionResult VanGpAfnemen(int groepID, int id)
// Bepaal PersoonID.
var persoonID = ServiceHelper.CallService<IGelieerdePersonenService, int>(svc => svc.PersoonIDGet(id));
ServiceHelper.CallService<IGebruikersService>(svc => svc.RechtenAfnemen(persoonID, new[] {groepID}));
ServiceHelper.CallService<IGebruikersService>(svc => svc.RechtenAfnemen(persoonID, new[] { groepID }));
return RedirectToAction("Bewerken", new { Controller = "Personen", id });
}
......@@ -101,7 +101,7 @@ public ActionResult AanmakenOfVerlengen(int groepID, int id)
{
GroepsPermissies = Permissies.Bewerken,
IedereenPermissies = Permissies.Bewerken
}));
}));
return RedirectToAction("Index");
}
......@@ -116,21 +116,48 @@ public ActionResult AanmakenOfVerlengen(int groepID, int id)
public ActionResult Intrekken(int groepID, int id)
{
ServiceHelper.CallService<IGebruikersService>(
gs => gs.RechtenAfnemen(id, new[] {groepID}));
gs => gs.RechtenAfnemen(id, new[] { groepID }));
return RedirectToAction("Index");
}
///// <summary>
///// Maakt een login voor de gelieerde persoon met gelieerdepersoonID <paramref name="id"/>.
///// Kent geen rechten toe.
///// </summary>
///// <param name="groepID">ID van groep waarin we werken (eigenlijk irrelevant)</param>
///// <param name="id">GelieerdePersoonID van persoon die een gebruiker moet krijgen</param>
///// <returns>Een redirect naar de details van de gegeven gelieerdepersoon</returns>
//public ActionResult LoginMaken(int groepID, int id)
//{
// // TODO (#5706): beletten dat we een Chirologin maken als het mailadres verdacht is
// ServiceHelper.CallService<IGebruikersService>(svc => svc.RechtenToekennen(id, null));
// return RedirectToAction("Bewerken", "Personen", new { groepID, id });
//}
/// <summary>
/// Maakt een login voor de gelieerde persoon met gelieerdepersoonID <paramref name="id"/>.
/// Maakt een login voor de gelieerde persoon met gelieerdepersoonID <paramref name="id"/>,
/// op voorwaarde dat het mailadres niet verdacht is.
/// Kent geen rechten toe.
/// </summary>
/// <param name="groepID">ID van groep waarin we werken (eigenlijk irrelevant)</param>
/// <param name="id">GelieerdePersoonID van persoon die een gebruiker moet krijgen</param>
/// <param name="commVormID">ID van het primaire mailadres</param>
/// <returns>Een redirect naar de details van de gegeven gelieerdepersoon</returns>
public ActionResult LoginMaken(int groepID, int id)
public ActionResult LoginMaken(int groepID, int id, int commVormID)
{
ServiceHelper.CallService<IGebruikersService>(svc => svc.RechtenToekennen(id, null));
return RedirectToAction("Bewerken", "Personen", new { groepID, id });
// TODO (#5706): beletten dat we een Chirologin maken als het mailadres verdacht is
var comm_info = ServiceHelper.CallService<IGelieerdePersonenService, CommunicatieInfo>(l => l.CommunicatieVormOphalen(commVormID));
if (!comm_info.IsVerdacht)
{
ServiceHelper.CallService<IGebruikersService>(svc => svc.RechtenToekennen(id, null));
return RedirectToAction("Bewerken", "Personen", new { groepID, id });
}
else
{
TempData["fout"] = "Voor Chirologins moet het primair mailadres een persoonlijk n juist adres zijn. Hier is het mailadres als verdacht gemarkeerd, dus is het waarschijnlijk van een van de ouders, of het is fout ingevuld. Verbeter het en probeer opnieuw.";
return RedirectToAction("Bewerken", "Personen", new { groepID, id });
}
}
/// <summary>
......
......@@ -39,7 +39,7 @@
namespace Chiro.Gap.WebApp.Controllers
{
// Om te zorgen dat het terugkeren naar de vorige lijst en dergelijke werkt in samenwerking met het opvragen van subsets
// (categorien of zo), hebben we steeds een default (categorie, ...) die aangeeft dat alle personen moeten worden meegegeven
// (categorieën of zo), hebben we steeds een default (categorie, ...) die aangeeft dat alle personen moeten worden meegegeven
/// <summary>
/// Controller voor weergave en beheer van alle personen die gelieerd zijn aan de groep
......@@ -121,7 +121,7 @@ public ActionResult List([RouteValue]int groepID, [RouteValue]int id)
ServiceHelper.CallService<IGelieerdePersonenService, IList<PersoonDetail>>
(g => g.OphalenUitCategorieMetLidInfo(categorieID, out totaal));
// Ga in het lijstje met categorien na welke er geselecteerd werd, zodat we de naam in de paginatitel kunnen zetten
// Ga in het lijstje met categorieën na welke er geselecteerd werd, zodat we de naam in de paginatitel kunnen zetten
String naam = (from c in model.GroepsCategorieen
where c.ID == categorieID
select c).First().Naam;
......@@ -290,7 +290,7 @@ public ActionResult Nieuw(int groepID)
/// <summary>
/// Gebruikt de ingevulde gegevens om een nieuwe persoon aan te maken,
/// wordt (indirect) opgeroepen vanuit jquery-persoons-fiche.js via bewaarGegevens!!
/// wordt (indirect) opgeroepen vanuit jquery-persoonsfiche.js via bewaarGegevens!!
/// </summary>
/// <param name="model">Het ingevulde model</param>
/// <param name="groepID">ID van de groep waaraan de nieuwe persoon gelieerd moet worden</param>
......@@ -588,7 +588,7 @@ public ActionResult Bewerken(int id, int groepID)
}
else
{
model.Titel = model.PersoonLidGebruikersInfo.PersoonDetail.VolledigeNaam + " ()";
model.Titel = model.PersoonLidGebruikersInfo.PersoonDetail.VolledigeNaam + " ()";
return View("OverledenPersoon", model);
}
}
......@@ -909,7 +909,7 @@ public ActionResult Verhuizen(int id, int aanvragerID, int groepID)
// Onderstaande mapping mapt het gezin naar PersoonsAdresInfo, waarin enkel
// informatie van het adres zit. (De andere gezinsleden worden nu nog genegeerd.)
// Ze negeert het adrestype van het gezin.
model.PersoonsAdresInfo = MappingHelper.Map<GezinInfo, PersoonsAdresInfo>(a);
model.PersoonsAdresInfo = MappingHelper.Map<GezinInfo, PersoonsAdresInfo>(a);
// Als het adres buitenlands is, dan moeten we de woonplaats nog eens overnemen in
// WoonPlaatsBuitenland. Dat is nodig voor de AdresBewerkenControl, die een beetje
......@@ -1085,7 +1085,7 @@ public ActionResult AdresVerwijderen(int id, int gelieerdePersoonID, int groepID
}
/// <summary>
/// Vraagt aan de services om de link tussen een adres en ��n of meerdere personen te verwijderen
/// Vraagt aan de services om de link tussen een adres en één of meerdere personen te verwijderen
/// </summary>
/// <param name="model">Het model met de ingevulde gegevens</param>
/// <param name="groepID">ID van de groep die de bewerking uitvoert</param>
......@@ -1305,7 +1305,7 @@ public ActionResult NieuweCommVorm(NieuweCommVormModel model, int groepID, int i
communicatieDetail.CommunicatieTypeValidatie = communicatieType.Validatie;
communicatieDetail.CommunicatieTypeVoorbeeld = communicatieType.Voorbeeld;
var validator = new CommunicatieVormValidator();
var validator = new CommunicatieVormValidator();
// De validatie van de vorm van telefoonnrs, e-mailadressen,... kan niet automatisch;
// dat doen we eerst.
......@@ -1341,11 +1341,11 @@ public ActionResult NieuweCommVorm(NieuweCommVormModel model, int groepID, int i
// we eerst naar het (beperktere) CommunicatieInfo
var commInfo = new CommunicatieInfo();
MappingHelper.Map(model.NieuweCommVorm, commInfo);
MappingHelper.Map(model.NieuweCommVorm, commInfo);
ServiceHelper.CallService<IGelieerdePersonenService>(l => l.CommunicatieVormToevoegen(id, commInfo));
// Cache clearen, want mogelijk is er nu een probleem gecreerd.
// Cache clearen, want mogelijk is er nu een probleem gecreëerd.
VeelGebruikt.LedenProblemenResetten(groepID);
return RedirectToAction("Bewerken", new { id = id });
......@@ -1449,11 +1449,11 @@ public ActionResult CommVormBewerken(CommVormModel model, int gelieerdePersoonID
// Om bloat over de lijn te vermijden: downgraden naar minimale info
var commInfo = new CommunicatieInfo();
MappingHelper.Map(model.NieuweCommVorm, commInfo);
MappingHelper.Map(model.NieuweCommVorm, commInfo);
ServiceHelper.CallService<IGelieerdePersonenService>(l => l.CommunicatieVormAanpassen(commInfo));
// Cache clearen, want mogelijk is er nu een probleem opgelost of gecreerd.
// Cache clearen, want mogelijk is er nu een probleem opgelost of gecreëerd.
VeelGebruikt.LedenProblemenResetten(groepID);
return RedirectToAction("Bewerken", new { id = gelieerdePersoonID });
......@@ -1469,7 +1469,7 @@ public ActionResult SetDefaultEmail(int id, int groepID, int communicationId)
#endregion commvormen
#region categorien
#region categorieën
/// <summary>
/// Haalt een gelieerde persoon uit een categorie.
......@@ -1516,30 +1516,34 @@ public ActionResult CategorieToevoegenAanLijst(int groepID)
{
var model = new CategorieModel();
BaseModelInit(model, groepID);
model.Titel = "Toevoegen aan categorie";
model.Categorieen = ServiceHelper.CallService<IGroepenService, IEnumerable<CategorieInfo>>(l => l.CategorieenOphalen(groepID));
if (model.Categorieen.Any())
{
// Titel is enkel nuttig als we hier nog iets kunnen doen
model.Titel = "Toevoegen aan categorie";
object value;
TempData.TryGetValue("list", out value);
model.GelieerdePersoonIDs = (List<int>)value;
var persoonsnamen = ServiceHelper.CallService<IGelieerdePersonenService, IEnumerable<PersoonInfo>>(l => l.InfosOphalen(model.GelieerdePersoonIDs));
model.GelieerdePersoonNamen = persoonsnamen.Select(e => e.VoorNaam + " " + e.Naam).ToList();
return View("CategorieToevoegenAanLijst", model);
}
else
{
TempData["fout"] = Resources.GeenCategorieenFout;
return TerugNaarVorigeLijst();
}
// Altijd gewoon die view tonen, niet de VorigeLijst met een foutmelding boven. Als ze categorieën willen gebruiken, moeten ze toch naar een ander tabblad.
// En op deze manier haalt de foutmelding op de persoonsfiche niet heel de personen- of ledenlijst op (zie #5636).
return View("CategorieToevoegenAanLijst", model);
}
/// <summary>
/// Koppelt de gelieerde personen bepaald door <paramref name="model"/>.GelieerdePersonenIDs aan de
/// categorien met ID's <paramref name="model"/>.GeselecteerdeCategorieIDs
/// categorieën met ID's <paramref name="model"/>.GeselecteerdeCategorieIDs
/// </summary>
/// <param name="model"><c>CategorieModel</c> met ID's van gelieerde personen en categorien</param>
/// <param name="model"><c>CategorieModel</c> met ID's van gelieerde personen en categorieën</param>
/// <param name="groepID">Bepaalt de groep waarin de gebruiker nu werkt</param>
/// <returns>Als 1 persoon aan een categorie toegekend moet worden, wordt geredirect naar de
/// details van die persoon. Anders krijg je de laatst opgroepen lijst.</returns>
......@@ -1559,7 +1563,7 @@ public ActionResult CategorieToevoegenAanLijst(CategorieModel model, int groepID
}
}
#endregion categorien
#endregion categorieën
#region abonnementen
/// <summary>
......@@ -1759,7 +1763,7 @@ public JsonResult NummerWijzigen(int groepID, IntStringModel wijziging)
ServiceHelper.CallService<IGelieerdePersonenService>(
svc => svc.NummerCommunicatieVormWijzigen(wijziging.ID, wijziging.Waarde));
// Cache clearen, want mogelijk is er nu een probleem opgelost of gecreerd.
// Cache clearen, want mogelijk is er nu een probleem opgelost of gecreëerd.
VeelGebruikt.LedenProblemenResetten(groepID);
return Json(null);
......
......@@ -56,7 +56,7 @@
{
%>
<p>Je groep werd niet gevonden. Misschien is je gebruikersrecht vervallen? Vraag aan een collega-GAV om je
gebruikersrecht te verlengen, of <a href='http://www.chiro.be/eloket/aansluitingen-chirogroepen'>contacteer het secretariaat.</a></p>
gebruikersrecht te verlengen, of <a href='https://chiro.be/login-aanvragen'>contacteer het secretariaat.</a></p>
<%
}
%>
......
......@@ -38,14 +38,14 @@
<th>Actie</th>
</tr>
<%
foreach (var gebr in Model.GebruikersDetails.Where(det => det.VervalDatum >= DateTime.Now))
foreach (var gebr in Model.GebruikersDetails.Where(det => det.VervalDatum >= DateTime.Now && det.GebruikersRecht.GroepsPermissies != Chiro.Gap.Domain.Permissies.Geen))
{
%>
<tr>
<td><%:gebr.Login %></td>
<td><%=gebr.PersoonID > 0 ? Html.ActionLink(String.Format("{0} {1}", gebr.VoorNaam, gebr.FamilieNaam), "Bewerken", new { Controller = "Personen", id = gebr.GelieerdePersoonID}).ToHtmlString() : "(onbekend)" %></td>
<td><%:gebr.VervalDatum == null ? "nooit" : ((DateTime)gebr.VervalDatum).ToString("d") %></td>
<!-- Dit tonene we nog niet, zie #3645
<!-- Dit tonen we nog niet, zie #3645
<td><%=Html.Permissie(gebr.GebruikersRecht.PersoonsPermissies) %></td>
<td><%=Html.Permissie(gebr.GebruikersRecht.GroepsPermissies) %></td>
<td><%=Html.Permissie(gebr.GebruikersRecht.AfdelingsPermissies) %></td>
......@@ -77,5 +77,4 @@
<p>TIP: Je kunt een gebruiker bijmaken door op een personenfiche op &lsquo;gebruikersrecht toekennen&rsquo; te klikken. Het e-mailadres van die persoon moet wel ingevuld zijn, anders kan het wachtwoord natuurlijk niet doorgemaild worden.</p>
</asp:Content>
</asp:Content>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<%@ Import Namespace="Chiro.Gap.WebApp.Models" %>
<%@ Import Namespace="Chiro.Gap.Domain" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<%
<%
/*
* Copyright 2008-2013 the GAP developers. See the NOTICE file at the
* top-level directory of this distribution, and at
......@@ -23,7 +23,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
%>
%>
<script src="<%= ResolveUrl("~/Scripts/Modules/GroepModule.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
......@@ -32,81 +32,87 @@
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div id="extraInfoDialog" hidden>
<img src="<%= ResolveUrl("~/Content/images/loading.gif")%>" />
</div>
<ul id="groep_Menu">
<li><%=Html.ActionLink("Algemene groepsinfo", "Index")%></li>
<%
if ((Model.Detail.Niveau & Niveau.Groep) != 0)
{ // Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
<% if ((Model.Detail.Niveau & Niveau.Groep) != 0)
{ // Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
%>
<li><%=Html.ActionLink("Afdelingen dit werkjaar", "Afdelingen")%></li>
<%} %>
<li><%=Html.ActionLink("Categorieën", "Categorieen")%></li>
<li><%=Html.ActionLink("Categorien", "Categorieen")%></li>
<li><%=Html.ActionLink("Functies", "Functies")%></li>
</ul>
<% if ((Model.Detail.Niveau & Niveau.Groep) != 0) {
// Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
<% if ((Model.Detail.Niveau & Niveau.Groep) != 0)
{
// Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
%>
<fieldset id="groep_afdelingen">
<legend>Afdelingen</legend>
<div class="Foutmelding" id="errors" hidden></div>
<h3>Afdelingen beschikbaar in het huidige werkjaar</h3>
<%=Html.ValidationSummary()%>
<table>
<tr>
<th>Afdeling</th>
<th>Afkorting</th>
<th>Offici&euml;le afdeling</th>
<th>Geslacht</th>
<th>Van</th>
<th>Tot</th>
<th class="center">Actie</th>
</tr>
<% foreach (var ai in Model.Detail.Afdelingen.OrderByDescending(afd => afd.GeboorteJaarVan)) { %>
<tr>
<td><%=ai.AfdelingNaam %><input value="<%=ai.AfdelingsJaarID %>" readonly hidden/></td>
<td><%=ai.AfdelingAfkorting %></td>
<td><%=ai.OfficieleAfdelingNaam %></td>
<td>
<%=(ai.Geslacht == GeslachtsType.Gemengd) ? "Gemengd" : "" %>
<%=(ai.Geslacht == GeslachtsType.Man) ? "Jongens" : "" %>
<%=(ai.Geslacht == GeslachtsType.Vrouw) ? "Meisjes" : "" %>
</td>
<td><%=ai.GeboorteJaarVan %></td>
<td><%=ai.GeboorteJaarTot %></td>
<td>
<div class="groep_bewerkAfdeling ui-icon ui-icon-pencil" title="Bewerken" style="cursor:pointer"></div>
<div class="afdelingjaarVerwijderen ui-icon ui-icon-circle-minus" title="Verwijderen uit huidig werkjaar" style="cursor: pointer"></div>
</td>
</tr>
<% } %>
</table>
<% if (Model.NonActieveAfdelingen.Any()) { %>
<h3>Overige afdelingen (niet geactiveerd in dit werkjaar)</h3>
<table>
<tr>
<th>Afdeling</th>
<th>Afkorting</th>
<th class="center">Actie</th>
<th></th>
</tr>
<% foreach (var ai in Model.NonActieveAfdelingen) { %>
<tr>
<td><%=ai.Naam %><input value="<%=ai.ID %>" readonly hidden/></td>
<td><%=ai.Afkorting %></td>
<td><button id="activeer<%=ai.ID%>" class="afdActiveren">Activeren</button></td>
<td><div class="afdelingVerwijderen ui-icon ui-icon-circle-minus" title="Verwijderen" style="cursor: pointer"></div></td>
</tr>
<% } %>
</table>
<%} %>
<fieldset id="groep_afdelingen">
<legend>Afdelingen</legend>
<div class="Foutmelding" id="errors" hidden></div>
<h3>Afdelingen beschikbaar in het huidige werkjaar</h3>
<%=Html.ValidationSummary()%>
<table>
<tr>
<th>Afdeling</th>
<th>Afkorting</th>
<th>Offici&euml;le afdeling</th>
<th>Geslacht</th>
<th>Van</th>
<th>Tot</th>
<th class="center">Actie</th>
</tr>
<% foreach (var ai in Model.Detail.Afdelingen.OrderByDescending(afd => afd.GeboorteJaarVan))
{ %>
<tr>
<td><%=ai.AfdelingNaam %><input value="<%=ai.AfdelingsJaarID %>" readonly hidden /></td>
<td><%=ai.AfdelingAfkorting %></td>
<td><%=ai.OfficieleAfdelingNaam %></td>
<td>
<%=(ai.Geslacht == GeslachtsType.Gemengd) ? "Gemengd" : "" %>
<%=(ai.Geslacht == GeslachtsType.Man) ? "Jongens" : "" %>
<%=(ai.Geslacht == GeslachtsType.Vrouw) ? "Meisjes" : "" %>
</td>
<td><%=ai.GeboorteJaarVan %></td>
<td><%=ai.GeboorteJaarTot %></td>
<td>
<div class="groep_bewerkAfdeling ui-icon ui-icon-pencil" title="Bewerken" style="cursor: pointer"></div>
<div class="afdelingjaarVerwijderen ui-icon ui-icon-circle-minus" title="Verwijderen uit huidig werkjaar" style="cursor: pointer"></div>
</td>
</tr>
<% } %>
</table>
<% if (Model.NonActieveAfdelingen.Any())
{ %>
<h3>Overige afdelingen (niet geactiveerd in dit werkjaar)</h3>
<table>
<tr>
<th>Afdeling</th>
<th>Afkorting</th>
<th class="center">Actie</th>
<th></th>
</tr>
<% foreach (var ai in Model.NonActieveAfdelingen)
{ %>
<tr>
<td><%=ai.Naam %><input value="<%=ai.ID %>" readonly hidden /></td>
<td><%=ai.Afkorting %></td>
<td>
<button id="activeer<%=ai.ID%>" class="afdActiveren">Activeren</button></td>
<td>
<div class="afdelingVerwijderen ui-icon ui-icon-circle-minus" title="Verwijderen" style="cursor: pointer"></div>
</td>
</tr>
<% } %>
</table>
<%} %>
<button id="groep_afdelingen_nieuw">Nieuwe afdeling</button>
</fieldset>
</fieldset>
<% } %>
</asp:Content>
......@@ -4,7 +4,7 @@
<%@ Import Namespace="Chiro.Gap.WebApp.Models" %>
<%@ Import Namespace="Chiro.Gap.Domain" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<%
<%
/*
* Copyright 2008-2013 the GAP developers. See the NOTICE file at the
* top-level directory of this distribution, and at
......@@ -23,7 +23,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
%>
%>
<script src="<%= ResolveUrl("~/Scripts/Modules/GroepModule.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
......@@ -32,41 +32,43 @@
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div id="extraInfoDialog" hidden>
<img src="<%= ResolveUrl("~/Content/images/loading.gif")%>" />
</div>
<ul id="groep_Menu">
<li><%=Html.ActionLink("Algemene groepsinfo", "Index")%></li>
<%
if ((Model.Detail.Niveau & Niveau.Groep) != 0)
{ // Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
<% if ((Model.Detail.Niveau & Niveau.Groep) != 0)
{ // Afdelingen enkel tonen voor Chirogroepen (niet voor kadergroepen of satellieten)
%>
<li><%=Html.ActionLink("Afdelingen dit werkjaar", "Afdelingen")%></li>
<%} %>
<li><%=Html.ActionLink("Categorieën", "Categorieen")%></li>
<li><%=Html.ActionLink("Functies", "Functies")%></li>
<li><%=Html.ActionLink("Categorien", "Categorieen")%></li>
</ul>
<fieldset id="groep_categorieen">
<legend>Categorie&euml;n voor ingeschreven en niet-ingeschreven personen</legend>
<table>
<thead>
<th>Categorie</th>
<fieldset id="groep_categorieen">
<legend>Categorie&euml;n voor ingeschreven en niet-ingeschreven personen</legend>
<table>
<thead>
<th>Categorie</th>
<th>Code</th>
<th></th>
</thead>
<tbody>
<% foreach (var cat in Model.Detail.Categorieen.OrderBy(cat => cat.Code)) { %>
<tr>
<td><%=cat.Naam%><input value="<%=cat.ID %>" hidden/></td>
<td><%=cat.Code %></td>
<td><div class="categorieVerwijderen ui-icon ui-icon-circle-minus" title="Verwijderen" style="cursor: pointer"></div></td>
</tr>
<% } %>