Improved organization list view with actives, idles and aways.
This commit is contained in:
parent
5bd6e2c600
commit
0f9e3c4ae8
6 changed files with 228 additions and 30 deletions
|
@ -135,6 +135,21 @@ public class Federation extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the away organizations.
|
||||||
|
*
|
||||||
|
* @return the away organizations
|
||||||
|
*/
|
||||||
|
public Organizations getAwayOrganizations()
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = this.organizations.filterAwayFor(getTechnicalName());
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the contact email.
|
* Gets the contact email.
|
||||||
*
|
*
|
||||||
|
@ -220,6 +235,21 @@ public class Federation extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the idle organizations.
|
||||||
|
*
|
||||||
|
* @return the idle organizations
|
||||||
|
*/
|
||||||
|
public Organizations getIdleOrganizations()
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = this.organizations.getIdles();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public PropertyChecks getInputChecks()
|
public PropertyChecks getInputChecks()
|
||||||
{
|
{
|
||||||
return this.inputChecks;
|
return this.inputChecks;
|
||||||
|
@ -339,6 +369,21 @@ public class Federation extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member organizations.
|
||||||
|
*
|
||||||
|
* @return the member organizations
|
||||||
|
*/
|
||||||
|
public Organizations getMemberOrganizations()
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = this.organizations.filterMemberFor(getTechnicalName());
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the metric month values all.
|
* Gets the metric month values all.
|
||||||
*
|
*
|
||||||
|
|
|
@ -86,6 +86,28 @@ public class Organization extends PathPropertyList
|
||||||
this.crawlJournal = new CrawlJournal();
|
this.crawlJournal = new CrawlJournal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the service active count.
|
||||||
|
*
|
||||||
|
* @return the service active count
|
||||||
|
*/
|
||||||
|
public int getActiveServiceCount()
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
result = 0;
|
||||||
|
for (Service service : this.services)
|
||||||
|
{
|
||||||
|
if (service.isActive())
|
||||||
|
{
|
||||||
|
result += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the active services.
|
* Gets the active services.
|
||||||
*
|
*
|
||||||
|
@ -109,28 +131,6 @@ public class Organization extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the service active count.
|
|
||||||
*
|
|
||||||
* @return the service active count
|
|
||||||
*/
|
|
||||||
public int getActiveServiceCount()
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = 0;
|
|
||||||
for (Service service : this.services)
|
|
||||||
{
|
|
||||||
if (service.isActive())
|
|
||||||
{
|
|
||||||
result += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the age.
|
* Gets the age.
|
||||||
*
|
*
|
||||||
|
@ -1074,6 +1074,29 @@ public class Organization extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is idle.
|
||||||
|
*
|
||||||
|
* @return true, if is idle
|
||||||
|
*/
|
||||||
|
public boolean isIdle()
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
|
||||||
|
Status status = getStatus();
|
||||||
|
if ((status == null) || (status == Status.IDLE))
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if is valid.
|
* Checks if is valid.
|
||||||
*
|
*
|
||||||
|
|
|
@ -36,6 +36,29 @@ public class Organizations extends ArrayList<Organization>
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter active.
|
||||||
|
*
|
||||||
|
* @return the organizations
|
||||||
|
*/
|
||||||
|
public Organizations filterActive()
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = new Organizations();
|
||||||
|
|
||||||
|
for (Organization organization : this)
|
||||||
|
{
|
||||||
|
if (organization.isActive())
|
||||||
|
{
|
||||||
|
result.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter member of.
|
* Filter member of.
|
||||||
*
|
*
|
||||||
|
@ -51,7 +74,32 @@ public class Organizations extends ArrayList<Organization>
|
||||||
|
|
||||||
for (Organization organization : this)
|
for (Organization organization : this)
|
||||||
{
|
{
|
||||||
if ((!organization.isAway()) && (!organization.isAwayFor(entityName)))
|
if ((organization.isActive()) && (!organization.isAwayFor(entityName)))
|
||||||
|
{
|
||||||
|
result.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter away for.
|
||||||
|
*
|
||||||
|
* @param entityName
|
||||||
|
* the entity name
|
||||||
|
* @return the organizations
|
||||||
|
*/
|
||||||
|
public Organizations filterAwayFor(final String entityName)
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = new Organizations();
|
||||||
|
|
||||||
|
for (Organization organization : this)
|
||||||
|
{
|
||||||
|
if ((organization.isAway()) || (organization.isAwayFor(entityName)))
|
||||||
{
|
{
|
||||||
result.add(organization);
|
result.add(organization);
|
||||||
}
|
}
|
||||||
|
@ -109,6 +157,31 @@ public class Organizations extends ArrayList<Organization>
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter member for.
|
||||||
|
*
|
||||||
|
* @param entityName
|
||||||
|
* the entity name
|
||||||
|
* @return the organizations
|
||||||
|
*/
|
||||||
|
public Organizations filterMemberFor(final String entityName)
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = new Organizations();
|
||||||
|
|
||||||
|
for (Organization organization : this)
|
||||||
|
{
|
||||||
|
if ((!organization.isAway()) && (!organization.isAwayFor(entityName)))
|
||||||
|
{
|
||||||
|
result.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the active service count.
|
* Gets the active service count.
|
||||||
*
|
*
|
||||||
|
@ -128,6 +201,29 @@ public class Organizations extends ArrayList<Organization>
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the idles.
|
||||||
|
*
|
||||||
|
* @return the idles
|
||||||
|
*/
|
||||||
|
public Organizations getIdles()
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = new Organizations();
|
||||||
|
|
||||||
|
for (Organization organization : this)
|
||||||
|
{
|
||||||
|
if (organization.isIdle())
|
||||||
|
{
|
||||||
|
result.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the service count.
|
* Gets the service count.
|
||||||
*
|
*
|
||||||
|
|
|
@ -78,7 +78,8 @@ public class FederationOrganizationsPage
|
||||||
TagDataManager data = new TagDataManager();
|
TagDataManager data = new TagDataManager();
|
||||||
|
|
||||||
data.setContent("federationHeaderView", FederationHeaderView.htmlize(federation));
|
data.setContent("federationHeaderView", FederationHeaderView.htmlize(federation));
|
||||||
data.setContent("organizationListView", OrganizationListView.htmlize(federation.getActiveOrganizations()));
|
|
||||||
|
data.setContent("organizationListView", OrganizationListView.htmlize(federation.getMemberOrganizations(), federation.getAwayOrganizations()));
|
||||||
|
|
||||||
String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/federationOrganizations.xhtml", data).toString();
|
String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/federationOrganizations.xhtml", data).toString();
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ import fr.devinsy.statoolinfos.core.Organization;
|
||||||
import fr.devinsy.statoolinfos.core.Organizations;
|
import fr.devinsy.statoolinfos.core.Organizations;
|
||||||
import fr.devinsy.statoolinfos.core.StatoolInfosException;
|
import fr.devinsy.statoolinfos.core.StatoolInfosException;
|
||||||
import fr.devinsy.statoolinfos.core.StatoolInfosUtils;
|
import fr.devinsy.statoolinfos.core.StatoolInfosUtils;
|
||||||
|
import fr.devinsy.strings.StringList;
|
||||||
import fr.devinsy.xidyn.XidynException;
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
||||||
|
@ -52,7 +53,7 @@ public class OrganizationListView
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* Signals that an I/O exception has occurred.
|
* Signals that an I/O exception has occurred.
|
||||||
*/
|
*/
|
||||||
public static String htmlize(final Organizations organizations) throws StatoolInfosException, IOException
|
public static String htmlize(final Organizations organizations, final Organizations aways) throws StatoolInfosException, IOException
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -60,8 +61,9 @@ public class OrganizationListView
|
||||||
{
|
{
|
||||||
TagDataManager data = new TagDataManager();
|
TagDataManager data = new TagDataManager();
|
||||||
|
|
||||||
data.setContent("organizationCount", organizations.size());
|
Organizations actives = organizations.filterActive();
|
||||||
data.setContent("serviceCount", organizations.getActiveServiceCount());
|
data.setContent("organizationCount", actives.size());
|
||||||
|
data.setContent("serviceCount", actives.getActiveServiceCount());
|
||||||
|
|
||||||
String monthLabel = LocalDate.now().minusMonths(1).format(DateTimeFormatter.ofPattern("MMMM yyyy")).replace(" ", " ");
|
String monthLabel = LocalDate.now().minusMonths(1).format(DateTimeFormatter.ofPattern("MMMM yyyy")).replace(" ", " ");
|
||||||
data.setContent("monthLabel", monthLabel);
|
data.setContent("monthLabel", monthLabel);
|
||||||
|
@ -69,7 +71,7 @@ public class OrganizationListView
|
||||||
data.setAttribute("visitCountHeaderColumn", "title", monthLabel);
|
data.setAttribute("visitCountHeaderColumn", "title", monthLabel);
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (Organization organization : organizations.sortByReverseServiceCount())
|
for (Organization organization : actives.sortByReverseServiceCount())
|
||||||
{
|
{
|
||||||
data.setAttribute("organizationListLine", index, "organizationListLineNameLink", "href", organization.getTechnicalName() + ".xhtml");
|
data.setAttribute("organizationListLine", index, "organizationListLineNameLink", "href", organization.getTechnicalName() + ".xhtml");
|
||||||
data.setAttribute("organizationListLine", index, "organizationListLineLogo", "src", organization.getLogoFileName());
|
data.setAttribute("organizationListLine", index, "organizationListLineLogo", "src", organization.getLogoFileName());
|
||||||
|
@ -91,6 +93,35 @@ public class OrganizationListView
|
||||||
index += 1;
|
index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Organizations idles = organizations.getIdles();
|
||||||
|
if (idles.isEmpty())
|
||||||
|
{
|
||||||
|
data.setContent("idleMembers", "aucun.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringList buffer = new StringList();
|
||||||
|
for (Organization idle : idles)
|
||||||
|
{
|
||||||
|
buffer.add(String.format("<a href=\"%s\" style=\"text-decoration: none;\">%s</a>", idle.getTechnicalName() + ".xhtml", idle.getName()));
|
||||||
|
}
|
||||||
|
data.setContent("idleMembers", buffer.toString("", ", ", "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aways.isEmpty())
|
||||||
|
{
|
||||||
|
data.setContent("awayMembers", "aucun.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringList buffer = new StringList();
|
||||||
|
for (Organization away : aways)
|
||||||
|
{
|
||||||
|
buffer.add(String.format("<a href=\"%s\" style=\"text-decoration: none;\">%s</a>", away.getTechnicalName() + ".xhtml", away.getName()));
|
||||||
|
}
|
||||||
|
data.setContent("awayMembers", buffer.toString("", ", ", "."));
|
||||||
|
}
|
||||||
|
|
||||||
String page = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/organizationListView.xhtml", data).toString();
|
String page = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/organizationListView.xhtml", data).toString();
|
||||||
|
|
||||||
result = XidynUtils.extractBodyContent(page);
|
result = XidynUtils.extractBodyContent(page);
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
<body>
|
<body>
|
||||||
<div class="center_table" style="width: 900px;">
|
<div class="center_table" style="width: 900px;">
|
||||||
<br/>
|
<br/>
|
||||||
<div class="center">Nombre de membres : <span id="organizationCount">n/a</span></div>
|
<div class="center">Nombre de membres actifs : <span id="organizationCount">n/a</span></div>
|
||||||
<div class="center">Nombre de services : <span id="serviceCount">n/a</span></div>
|
<div class="center">Nombre de services acfifs : <span id="serviceCount">n/a</span></div>
|
||||||
<table id="organizations" class="table_classic left">
|
<table id="organizations" class="table_classic left">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -43,6 +43,8 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div id="month_asterisk">(*) chiffres de <span id="monthLabel">n/a</span></div>
|
<div id="month_asterisk">(*) chiffres de <span id="monthLabel">n/a</span></div>
|
||||||
|
<div id="idleMembersZone" class="left">Membres en sommeil : <span id="idleMembers">n/a</span></div>
|
||||||
|
<div id="awayMembersZone" class="left">Anciens membres : <span id="awayMembers">n/a</span></div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function()
|
$(document).ready(function()
|
||||||
|
|
Loading…
Reference in a new issue