blob: 94dd967cc87719547ed675c3da065e7454c9f2f5 [file] [log] [blame]
<?php
// set states at a root level to reduce typos
$active_state = 'active';
$incubation_state = 'incubating';
$proposed_state = 'proposed';
$inactive_state = 'inactive';
$working_group[] = array(
'title' => 'AsciiDoc',
'logo' => 'wg_asciidoc.svg',
'body' => '<p>The AsciiDoc Working Group drives the standardization, adoption, and evolution of AsciiDoc. This group encourages and shapes the open, collaborative development of the AsciiDoc language and its processors. </p><p>This working group’s website is under development.</p>',
'website' => '',
'charter' => '/org/workinggroups/asciidoc-charter.php',
'faq' => '',
'wgpa' => '/org/workinggroups/wpga/asciidoc-working-group-participation-agreement.pdf',
'wgpa-individual' => '/org/workinggroups/wpga/asciidoc-individual-participation-agreement.pdf',
'mailing-list' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'members' => ''
);
$working_group[] = array(
'title' => 'Cloud Development Tools',
'logo' => 'wg-ecd-tools.svg',
'body' => '<p>The Eclipse Cloud Development (ECD) Tools Working Group will drive the evolution and broad adoption of de facto standards for cloud development tools, including language support, extensions, and developer workspace definition.</p>',
'website' => 'https://ecdtools.eclipse.org/',
'charter' => '/org/workinggroups/eclipse_cloud_development_charter.php',
'faq' => '',
'wgpa' => '/org/workinggroups/wpga/eclipse_cloud_development_tools_participation_agreement.pdf',
'wgpa-individual' => '',
'mailing-list' => 'https://accounts.eclipse.org/mailing-list/ecd-tools-wg',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership/ecdtools',
'style' => 'width:190px;max-height:60px;;',
'members' => 'https://ecdtools.eclipse.org/#members'
);
$working_group[] = array(
'title' => 'Jakarta EE',
'logo' => 'wg_jakarta.png',
'body' => '<p>The Jakarta EE Working Group enables Java ecosystem players to collaborate on advancing enterprise Java technologies in the cloud. This initiative focuses on cultivating the business interests associated with Eclipse Enterprise for Java (EE4J) technologies.</p>',
'website' => 'https://jakarta.ee/',
'charter' => '/org/workinggroups/jakarta_ee_charter.php',
'faq' => '/org/workinggroups/jakarta_ee_faq.php',
'wgpa' => '/org/workinggroups/wpga/jakarta_ee_working_group_participation_agreement.pdf',
'wgpa-individual' => '/org/workinggroups/wpga/jakarta_ee_individual_working_group_participation_agreement.pdf',
'mailing-list' => 'https://accounts.eclipse.org/mailing-list/jakarta.ee-wg',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership/jakarta-ee',
'style' => 'max-width:180px;max-height:60px',
'members' => 'https://jakarta.ee/membership/members/'
);
$working_group[] = array(
'title' => 'openPASS',
'logo' => 'wg_openpass.png',
'body' => '<p>The openPASS Working Group promotes a collaborative and innovative ecosystem by offering tools, systems, and adapters for a standardized, openly-available and vendor-neutral platform for traffic scenario simulation.</p>',
'website' => 'https://openpass.eclipse.org/',
'charter' => '/org/workinggroups/openpasswg_charter.php',
'wgpa' => '/org/workinggroups/wpga/openpass_working_group_participation_agreement.pdf',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/openpass-wg',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-width:115px;max-height:46px',
'members' => ''
);
$working_group[] = array(
'title' => 'GEMOC RC',
'logo' => 'wg_gemoc-rc.png',
'body' => '<p>The GEMOC Research Consortium is an open and collaborative initiative which supports the development, coordination, and dissemination of the research efforts on the use and globalization of modeling languages.</p>',
'website' => 'http://gemoc.org',
'wgpa' => '',
'charter' => '/org/workinggroups/gemoc_rc_charter.php',
'mailing-list' => 'https://accounts.eclipse.org/mailing-list/gemoc-rc',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-height:48px',
'members' => ''
);
$working_group[] = array(
'title' => 'OS.bea',
'logo' => 'wg_os-bea.png',
'body' => '<p>The OS.bea Working Group fosters and supports an open, collaborative, and innovative ecosystem by providing tools, systems, and adapters for the standardized, openly-available, and vendor-neutral Open Standard Business Platform (OSBP). This initiative helps support OS.bea-related Eclipse projects that develop related software components and provides the resources for managing their quality and maturity throughout the components’ lifecycle.</p>',
'website' => 'https://projects.eclipse.org/projects/technology.osbp',
// 'wgpa' => '/org/workinggroups/wpga/eclipse_osbea_working_group_participation_agreement.pdf',
'charter' => '/org/workinggroups/osbea_wg_charter.php',
'mailing-list' => 'https://accounts.eclipse.org/mailing-list/osbp-dev',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'Capella IC',
'logo' => 'wg_capella.png',
'body' => '<p>The Capella Industry Consortium is dedicated to developing the ecosystem around the Capella project with vendor-neutral and open governance. Capella is an open Model-Based Systems Engineering (MBSE) solution which offers methodological guidance, intuitive model editing, and viewing capabilities for Systems, Software, and Hardware Architects. The Capella IC provides its members with a place to foster collaborations, share investment and best practices and leverage open innovation to co-develop new MBSE capabilities.</p>',
'website' => 'https://www.polarsys.org/capella/industry-consortium.html',
'wgpa' => '',
'charter' => '/org/workinggroups/capellaic_charter.php',
'mailing-list' => 'https://dev.polarsys.org/mailman/listinfo/capella-ic',
'wiki' => 'https://wiki.polarsys.org/Capella_IC',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'LocationTech',
'logo' => 'wg_locationtech.png',
'body' => '<p>The LocationTech Working Group is dedicated to developing advanced location-aware technologies by providing a collaborative environment for stakeholders to jointly develop Big Geospatial Data processing and visualization components, tools, and frameworks. LocationTech manages the quality and maturity of tools and components and establishes sustainable commercial services and ecosystems around them.</p>',
'website' => 'https://www.locationtech.org/',
'wgpa' => '',
'charter' => '/org/workinggroups/locationtech_charter.php',
'mailing-list' => 'https://www.locationtech.org/mailman/listinfo/location-iwg',
'wiki' => 'http://wiki.eclipse.org/Location',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'Science',
'logo' => 'wg_science.png',
'body' => '<p>The Science Working Group represents a collaborative effort involving industry, academia, and government with the purpose of developing reusable open source software for scientific research.</p>',
'website' => 'https://science.eclipse.org/',
'wgpa' => '',
'charter' => '/org/workinggroups/science_charter.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/science-iwg',
'wiki' => 'https://wiki.eclipse.org/Science_IWG',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-width:90px;max-height:60px',
'members' => 'https://science.eclipse.org/membership/'
);
$working_group[] = array(
'title' => 'Internet of Things',
'logo' => 'wg_iot.svg',
'body' => '<p>The Eclipse IoT Working Group enables collaboration on the development of open source implementations of IoT standards and protocols, frameworks and services used by IoT solutions, and tools for IoT developers for commercial-grade IoT.</p>',
'website' => 'http://iot.eclipse.org/',
'wgpa' => '/org/workinggroups/wpga/eclipse_iot_working_group_participation_agreement.pdf',
'charter' => '/org/workinggroups/iotwg_charter.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/m2m-iwg',
'wiki' => 'http://wiki.eclipse.org/Machine-to-Machine',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership/iot',
'style' => 'width:135px;max-height:55px;',
'members' => 'https://iot.eclipse.org/membership/members/'
);
$working_group[] = array(
'title' => 'Polarsys',
'logo' => 'wg_polarsys.png',
'body' => '<p>PolarSys is an Eclipse Working Group created by large industry players and by tools providers to collaborate on the creation and support of Open Source tools for the development of embedded systems.</p>',
'website' => 'http://www.polarsys.org/',
'wgpa' => '',
'charter' => '/org/workinggroups/polarsys_charter.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/polarsys-iwg',
'wiki' => 'http://wiki.eclipse.org/Polarsys',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'openMDM',
'logo' => 'mdm_logo.gif',
'body' => '<p>The openMDM Working Group fosters and supports an open and innovative eco-system providing tools and systems, qualification kits and adapters for standardized and vendor independent management of measurement data in accordance with the ASAM ODS standard.</p>',
'website' => 'http://www.openmdm.org/',
'wgpa' => '/org/workinggroups/wpga/openmdm_working_group_participation_agreement.pdf',
'charter' => '/org/workinggroups/mdmwg_charter.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/open-measured-data-wg',
'wiki' => 'http://www.openmdm.org',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'members' => 'https://www.openmdm.org/members'
);
$working_group[] = array(
'title' => 'Mobile (Pulsar)',
'logo' => 'wg_pulsar.gif',
'body' => '<p>Pulsar is a tools integration platform for the mobile developer. It makes it easy to get the tools and handset SDKs you need for developing mobile applications.</p>',
'website' => '/pulsar/',
'wgpa' => '',
'charter' => '/org/workinggroups/mobilewg.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/mobile-iwg',
'wiki' => 'http://wiki.eclipse.org/EMIWG',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'Eclipse SOA Initiative',
'logo' => 'wg_soa.gif',
'body' => '<p>The goal of "Eclipse SOA Initiative", will be to define, implement and promote a common Equinox-based SOA platform including both design time and runtime components.</p>',
'website' => '/org/workinggroups/soawg.php',
'wgpa' => '',
'charter' => '/org/workinggroups/mobilewg.php',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/soa-iwg',
'type' => $inactive_state,
'join' => '',
'members' => ''
);
$working_group[] = array(
'title' => 'Edge Native',
'logo' => 'wg-edge-native.svg',
'body' => '<p>The Eclipse Edge Native Working Group drives the adoption of Edge Computing technologies. It provides services like vendor-neutral marketing to the Eclipse Edge Native ecosystem and defines licensing and intellectual property flows that encourage the community to open collaboration. </p>',
'website' => 'https://edgenative.eclipse.org/',
'wgpa' => '/org/workinggroups/wpga/eclipse_edge_working_group_participation_agreement.pdf',
'charter' => '/org/workinggroups/eclipse_edge_charter.php',
'mailing-list' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'width:220px;max-height:77px;',
'members' => 'https://edgenative.eclipse.org/#members'
);
$working_group[] = array(
'title' => 'Sparkplug',
'logo' => 'wg-sparkplug.svg',
'body' => '<p>The Eclipse Sparkplug Working Group drives the evolution and broad adoption of the Eclipse Sparkplug protocol and related technologies that enable the creation of open, collaborative, and interoperable Industrial IoT solutions, and a framework for supporting Industry 4.0.</p>',
'website' => 'https://sparkplug.eclipse.org/',
'wgpa' => '/org/workinggroups/wpga/sparkplug_working_group_participation_agreement.pdf',
'charter' => '/org/workinggroups/eclipse_sparkplug_charter.php',
'mailing-list' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'members' => 'https://sparkplug.eclipse.org/#members'
);
$working_group[] = array(
'title' => 'openGENESIS',
'logo' => 'wg-opengenesis-logo.svg',
'body' => '<p>Before deployment onto public roads, artificial intelligence (AI) must be proven safe and roadworthy. The openGENESIS Working Group aims to foster, support and provide knowledge, methods, and tools for the assessment of AI used in autonomous driving applications.</p>',
'website' => 'https://wiki.eclipse.org/OpenGENESIS_WG',
'wiki' => 'https://wiki.eclipse.org/OpenGENESIS_WG',
'charter' => '/org/workinggroups/opengenesis_charter.php',
'wgpa' => '/org/workinggroups/wpga/opengenesis_working_group_participation_agreement.pdf',
'mailing-list' => '',
'join' => 'https://accounts.eclipse.org/contact/membership',
'type' => $active_state,
'members' => ''
);
$working_group[] = array(
'title' => 'OpenADx',
'logo' => 'wg-openadx.png',
'body' => '<p>The OpenADx Working Group is centered around the autonomous driving toolchain and aims to bring transparency and better integration capabilities into the autonomous driving tool space.</p>',
'website' => 'https://openadx.eclipse.org',
'charter' => '/org/workinggroups/openadx_charter.php',
'wgpa' => '/org/workinggroups/wpga/openadx_working_group_participation_agreement.pdf',
'mailing-list' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-width:135px;max-height:54px',
'members' => 'https://openadx.eclipse.org/members/'
);
$working_group[] = array(
'title' => 'openMobility',
'logo' => 'wg_openmobility.png',
'body' => '<p>The openMobility Working Group drives the evolution and broad adoption of mobility modelling and simulation technologies.</p>',
'website' => 'https://openmobility.eclipse.org/',
'charter' => '/org/workinggroups/openmobility_charter.php',
'wgpa' => '/org/workinggroups/wpga/openmobility_working_group_participation_agreement.pdf',
'mailing-list' => 'https://dev.eclipse.org/mailman/listinfo/openmobility',
'wiki' => 'https://wiki.eclipse.org/OpenMobility',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'members' => 'https://openmobility.eclipse.org/members/'
);
$working_group[] = array(
'title' => 'OpenHW Group',
'logo' => 'wg_openhw.svg',
'body' => '<p>The OpenHW Group provides an infrastructure for hosting high quality open-source HW developments in line with industry best practices. </p>',
'website' => 'https://www.openhwgroup.org/',
'charter' => '',
'wgpa' => '',
'mailing-list' => 'https://mailchi.mp/77bbac3766fb/openhwgroup',
'wiki' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'members' => 'https://www.openhwgroup.org/membership/members/'
);
$working_group[] = array(
'title' => 'Tangle EE',
'logo' => 'wg_tangle-ee.svg',
'body' => '<p>The Tangle EE Working Group drives the adoption of IOTA\'s underlying network, the Tangle, and explores key IOTA use case areas including decentralized identity, data integrity and feeless payments.</p>',
'website' => 'https://tangle.ee',
'charter' => '/org/workinggroups/tangle_ee_charter.php',
'wgpa' => '/org/workinggroups/wpga/tangle_ee_working_group_participation_agreement.pdf',
'mailing-list' => '',
'wiki' => '',
'type' => $active_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-width:180px;max-height:70px',
'members' => 'https://tangle.ee/members'
);
$working_group[] = array(
'title' => 'MicroProfile',
'logo' => 'wg_microprofile.png',
'body' => '<p>The MicroProfile Working Group drives the evolution and broad adoption of technologies related to the <a href="https://microprofile.io" >MicroProfile Project</a>. MicroProfile is an open forum that optimizes Enterprise Java for a cloud-native microservice architecture by innovating across multiple implementations and collaborating on common areas of interest with a goal of standardization. </p>',
'website' => 'https://microprofile.io/',
'charter' => '/org/workinggroups/microprofile-charter.php',
'wgpa' => '/org/workinggroups/wpga/microprofile-working-group-participation-agreement.pdf',
'wgpa-individual' => '/org/workinggroups/wpga/microprofile-working-group-participation-agreement-individual.pdf',
'mailing-list' => '',
'wiki' => '',
'type' => $proposed_state,
'join' => 'https://accounts.eclipse.org/contact/membership',
'style' => 'max-width:200px;',
'members' => ''
);
function clean_css_identifier($identifier, $filter = array(' ' => '-', '_' => '-', '/' => '-', '[' => '-', ']' => '')) {
// By default, we filter using Drupal's coding standards.
$identifier = strtr($identifier, $filter);
// Valid characters in a CSS identifier are:
// - the hyphen (U+002D)
// - a-z (U+0030 - U+0039)
// - A-Z (U+0041 - U+005A)
// - the underscore (U+005F)
// - 0-9 (U+0061 - U+007A)
// - ISO 10646 characters U+00A1 and higher
// We strip out any character not in the above list.
return preg_replace('/[^\x{002D}\x{0030}-\x{0039}\x{0041}-\x{005A}\x{005F}\x{0061}-\x{007A}\x{00A1}-\x{FFFF}]/u', '', $identifier);
}
function wg_types_links($working_group = array()) {
global $active_state, $incubation_state, $proposed_state, $inactive_state;
$links = array(
'all' => '<li><a style="width:150px;" class="wg-btn" data-wg="wg-all-item" role="button">All</a></li>'
);
foreach ($working_group as $g) {
if (!empty($g['type']) && $g['type'] === $inactive_state) {
continue;
}
if ($g['type'] === $active_state) {
$links[$active_state] = '<li><a style="width:150px;" class="wg-btn" data-wg="wg-active-item" role="button">Active</a></li>';
}
if ($g['type'] === $incubation_state) {
$links[$incubation_state] = '<li><a style="width:150px;" class="wg-btn" data-wg="wg-incubating-item" role="button">Incubating</a></li>';
}
if ($g['type'] === $proposed_state) {
$links[$proposed_state] = '<li><a style="width:150px;" class="wg-btn" data-wg="wg-proposed-item" role="button">Proposed</a></li>';
}
}
if (count($links) <= 2) {
return '';
}
return '<ul class="dropdown-menu wg-links">' . implode(" ", $links) . '</ul>';
}
function wg_output($working_group = array()){
global $active_state, $incubation_state, $proposed_state, $inactive_state;
//Re-order list alphabetically
//php array sort does appear to work but can't be certain it's sorting on title key
usort($working_group, "compare_wg_array_by_title");
ob_start();
foreach($working_group as $g):
if (!empty($g['type']) && $g['type'] === $inactive_state) {
continue;
}
$logo = '<i style="width:43px;height:43px;" data-feather="file-text" stroke-width="1"></i>';
if (!empty($g['logo'])) {
$styles = "max-width:150px;max-height:60px;";
// fixes issues w/ flex and unset height/width on svg items
if (strpos($g['logo'], '.svg')) {
$styles = "width:150px; max-height:60px;";
}
if (!empty($g['style'])) {
$styles = $g['style'];
}
$logo = '<img style="'. $styles .'" src="assets/images/'.$g['logo'].'" alt="Logo for '.$g['title'].'" class="img-responsive center-block"/>';
}
$body = $g["body"];
if (!empty($g['website'])) {
$len = strlen($body);
$body = substr($body, 0, $len - 4) . " <a class=\"hidden-xs\" href=\"" . $g['website'] . "\">Learn more</a>" . substr($body, -4);
}
$type = array(
'class' => "background-secondary",
'text' => "Active"
);
if ($g['type'] === $incubation_state) {
$type = array(
'class' => "background-light-grey",
'text' => "Incubating"
);
}
if ($g['type'] === $proposed_state) {
$type = array(
'class' => "background-primary",
'text' => "Proposed"
);
}
?>
<div class="col-xs-24 col-sm-12 margin-bottom-20 wg-item wg-<?php print strtolower($type['text']); ?>-item" data-mh="wg-tile">
<div class="bordered-box bordered-box-light flex-column">
<div class="box-header clearfix">
<div class="col-xs-24 col-sm-16 box-header-logo vertical-align justify-left-desktop" data-mh="wg-heading">
<?php if (empty($g['logo'])): ?>
<h3 class="vertical-align margin-top-0 margin-bottom-0">
<?php endif; ?>
<?php if (!empty($g['website'])): ?>
<a href="<?php print $g['website'];?>">
<?php else: ?>
<span>
<?php endif; ?>
<?php print $logo; ?>
<?php if (empty($g['logo'])): ?>
<?php print $g['title'];?></h3>
<?php endif; ?>
<?php if (!empty($g['website'])): ?>
</a>
<?php else: ?>
<span>
<?php endif; ?>
<?php if (empty($g['logo'])): ?>
</h3>
<?php endif; ?>
</div>
<div class="col-xs-24 col-sm-8 fw-700 vertical-align" data-mh="wg-heading">
Status: <?php print $type['text']; ?>
</div>
</div>
<div class="flex-grow flex-column padding-30">
<?php if(!empty($g['body'])):?>
<div class="flex-grow"><?php print $body;?></div>
<?php endif; ?>
<div class="row">
<div class="col-xs-24 col-sm-16 match-height-item-by-row">
<h4>Resources:</h4>
<ul class="padding-left-20">
<?php if(!empty($g['charter'])):?>
<li><a href="<?php print $g['charter'];?>">Working Group Charter</a></li>
<?php endif; ?>
<?php if(!empty($g['wgpa'])):?>
<li><a href="<?php print $g['wgpa'];?>">Participation Agreement (For organizations)</a></li>
<?php endif; ?>
<?php if(!empty($g['wgpa-individual'])):?>
<li><a href="<?php print $g['wgpa-individual'];?>">Participation Agreement (For individuals)</a></li>
<?php endif; ?>
<?php if(!empty($g['members'])):?>
<li><a href="<?php print $g['members'];?>">Working Group Members</a></li>
<?php endif; ?>
</ul>
</div>
<div class="col-xs-24 col-sm-8 vertical-align justify-left-mobile match-height-item-by-row">
<div class="flex-column" style="height:100%">
<?php if (!empty($g['join']) || !empty($g['website'])): ?>
<p class="flex-grow" aria-hidden="true"></p>
<p>
<?php if (!empty($g['join'])): ?>
<a href="<?php print $g['join'];?>" class="btn btn-primary padding-10 big">Join now</a>
<?php endif; ?>
<?php if (!empty($g['website'])): ?>
<a href="<?php print $g['website'];?>" class="visible-xs margin-top-20 btn btn-primary padding-10 big">Learn more</a>
<?php endif; ?>
</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
endforeach;
return ob_get_clean();
}
/**
* usort callback function sort array by title key
*
*/
function compare_wg_array_by_title($a, $b){
return strcasecmp($a['title'],$b['title']);
}