CINXE.COM
PERSONNEL BY ORGANIZATION | United Nations - CEB
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# "> <head> <meta charset="utf-8" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-MGWZ0VENTT"></script> <script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag("config", "G-MGWZ0VENTT", {"groups":"default","page_placeholder":"PLACEHOLDER_page_location","allow_ad_personalization_signals":false});</script> <link rel="canonical" href="https://unsceb.org/hr-organization" /> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style>div#sliding-popup, div#sliding-popup .eu-cookie-withdraw-banner, .eu-cookie-withdraw-tab {background: #0779bf} div#sliding-popup.eu-cookie-withdraw-wrapper { background: transparent; } #sliding-popup h1, #sliding-popup h2, #sliding-popup h3, #sliding-popup p, #sliding-popup label, #sliding-popup div, .eu-cookie-compliance-more-button, .eu-cookie-compliance-secondary-button, .eu-cookie-withdraw-tab { color: #ffffff;} .eu-cookie-withdraw-tab { border-color: #ffffff;}</style> <link rel="icon" href="/themes/custom/customer/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="alternate" hreflang="en" href="https://unsceb.org/hr-organization" /> <title>PERSONNEL BY ORGANIZATION | United Nations - CEB</title> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_Uz-kK_Ma79YKbbqbRvoo0aX18GRVCp-sqY-6WjXt1KY.css?delta=0&language=en&theme=customer&include=eJxtjEEOQiEMBS-EnyORUiqfWCihrYbb-xcaN67eZCZ5CEyjwIr4gcNO6hTQ1aTTipUlA9_UNrdRA3lCkUeja_rkBgMp_pOp0B2cLTBscUvZG5frz16CwkkJrcn41tIU5UlrRxl09TBhQV0wT41l-QQ-fubwMT1z05NK0K1GPWZQegNRKFD9" /> <link rel="stylesheet" media="all" href="/themes/custom/customer/css/normalize.css?stmpzm" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_Ufi6QFNreGXcANjO-eEIP7GDj-70_BgHBswTI5SJrq4.css?delta=2&language=en&theme=customer&include=eJxtjEEOQiEMBS-EnyORUiqfWCihrYbb-xcaN67eZCZ5CEyjwIr4gcNO6hTQ1aTTipUlA9_UNrdRA3lCkUeja_rkBgMp_pOp0B2cLTBscUvZG5frz16CwkkJrcn41tIU5UlrRxl09TBhQV0wT41l-QQ-fubwMT1z05NK0K1GPWZQegNRKFD9" /> </head> <body class="not-front path-node page-node-type-statistic"> <ul class="skip-link"> <li><a href="#block-mainnavigation">Skip to Menu</a></li> <li><a href="#search-block-form"> Skip to Search</a></li> <li><a href="#main-content">Skip to Main content</a></li> <li><a href="#footer">Skip to Footer</a></li> </ul> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div class="layout-container"> <header class="header" role="banner"> <ul class="skip-link"> <li> <a href="#menu-collapsible">Aller au menu</a> </li> <li> <a href="#search">Aller 脿 la recherche</a> </li> <li> <a href="#main-content">Aller au contenu</a> </li> <li> <a href="#footer">Aller au pied de page</a> </li> </ul> <div class="header-top"> <div class="header-top-container layout-wrapper"> </div> </div> <div class="header-main"> <div class="header-main-container layout-wrapper"> <div class="header-logo"> <div class="site-logo"> <!-- @DEV : h1 on home, a on other pages --> <a href="/"> <img src="/themes/custom/customer/logo.svg" alt="UN System Chief Executives Board for Coordination - logo"> <p> <span>CEB</span>UN System Chief Executives Board for Coordination </p> </a> </div> </div> <div class="header-navigation"> <!-- Path : web/themes/custom/customer/components/collapsible/collapsible.twig --> <div class="js-collapsible -collapsible menu-collapsible " data-collapsible-close="true"> <button type=button class="js-collapsible-cta -collapsible-cta menu-collapsible-cta" aria-controls="menu-content" aria-expanded="false"> <span class="visually-hidden">Menu</span> </button> <div id="menu-content" class="js-collapsible-content -collapsible-content menu-collapsible-content"> <div class="region region-navigation"> <nav role="navigation" aria-labelledby="block-mainnavigation-heading" id="block-mainnavigation" class="block block-menu navigation menu--main"> <h2 class="visually-hidden" id="block-mainnavigation-heading">Main navigation</h2> <ul class="menu"> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="/about">About</button> <ul class="menu"> <li class="menu-item"> <a href="/board-members" class="menu-link" data-drupal-link-system-path="node/3393">Board Members</a> </li> <li class="menu-item"> <a href="/structure" class="menu-link" data-drupal-link-system-path="node/3367">CEB</a> </li> <li class="menu-item"> <a href="/high-level-committee-programmes-hlcp" class="menu-link">HLCP</a> </li> <li class="menu-item"> <a href="/high-level-committee-management-hlcm" class="menu-link">HLCM</a> </li> <li class="menu-item"> <a href="/ceb-secretariat" class="menu-link" title="CEB Secretariat" data-drupal-link-system-path="node/1743">Secretariat</a> </li> <li class="menu-item"> <a href="/faq" class="menu-link" data-drupal-link-system-path="node/12">FAQ</a> </li> <li class="menu-item"> <a href="/meeting" class="menu-link" data-drupal-link-system-path="meeting">Meetings</a> </li> </ul> </li> <li class="menu-item"> <a href="/topics" class="menu-link" data-drupal-link-system-path="node/7">Topics</a> </li> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="/products">Products</button> <ul class="menu"> <li class="menu-item"> <a href="/products?field_product%5B5%5D=5" class="menu-link" data-drupal-link-query="{"field_product":{"5":"5"}}">Common Approaches</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=6" class="menu-link" data-drupal-link-query="{"field_product":{"5":"6"}}">Joint Statements</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=7" class="menu-link" data-drupal-link-query="{"field_product":{"5":"7"}}">Publications</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=8" class="menu-link" data-drupal-link-query="{"field_product":{"5":"8"}}">Toolkits</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=9" class="menu-link" data-drupal-link-query="{"field_product":{"5":"9"}}">UN System Action Plans</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=10" class="menu-link" data-drupal-link-query="{"field_product":{"5":"10"}}">UN System Frameworks</a> </li> <li class="menu-item"> <a href="/products?field_product%5B5%5D=11" class="menu-link" data-drupal-link-query="{"field_product":{"5":"11"}}">UN System Strategies</a> </li> </ul> </li> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="/reports">Reports</button> <ul class="menu"> <li class="menu-item"> <a href="/reports?field_mechanism%5B94%5D=94" class="menu-link" data-drupal-link-query="{"field_mechanism":{"94":"94"}}">CEB Reports</a> </li> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="/reports?field_mechanism%5B96%5D=96">HLCP</button> <ul class="menu"> <li class="menu-item"> <a href="/reports?field_mechanism%5B96%5D=96" class="menu-link" data-drupal-link-query="{"field_mechanism":{"96":"96"}}">HLCP Reports</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B22%5D=22" class="menu-link" data-drupal-link-query="{"field_mechanism":{"22":"22"}}">UN-Energy</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B23%5D=23" class="menu-link" data-drupal-link-query="{"field_mechanism":{"23":"23"}}">UN-Oceans</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B24%5D=24" class="menu-link" data-drupal-link-query="{"field_mechanism":{"24":"24"}}">UN-Water</a> </li> </ul> </li> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="/reports?field_mechanism%5B99%5D=99">HLCM</button> <ul class="menu"> <li class="menu-item"> <a href="/reports?field_mechanism%5B99%5D=99" class="menu-link" data-drupal-link-query="{"field_mechanism":{"99":"99"}}">HLCM Reports</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B103%5D=103" class="menu-link" data-drupal-link-query="{"field_mechanism":{"103":"103"}}">Digital & Technology Network (DTN)</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B92%5D=92" class="menu-link" data-drupal-link-query="{"field_mechanism":{"92":"92"}}">Finance & Budget Network (FBN)</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B93%5D=93" class="menu-link" data-drupal-link-query="{"field_mechanism":{"93":"93"}}">Human Resources Network (HRN)</a> </li> <li class="menu-item"> <a href="/reports?field_mechanism%5B104%5D=104" class="menu-link" data-drupal-link-query="{"field_mechanism":{"104":"104"}}">Procurement Network (PN)</a> </li> </ul> </li> </ul> </li> <li class="menu-item expanded"> <button class="menu-link no-link" type="button" aria-expanded="false" href="">Data</button> <ul class="menu"> <li class="menu-item"> <a href="/human-resources-statistics" class="menu-link" data-drupal-link-system-path="node/13">Human Resources Statistics</a> </li> <li class="menu-item"> <a href="/financial-statistics" class="menu-link" data-drupal-link-system-path="node/28">Finance and Budget Statistics</a> </li> <li class="menu-item"> <a href="/procurement-statistics" class="menu-link" data-drupal-link-system-path="node/5">Procurement Statistics</a> </li> <li class="menu-item"> <a href="/data-download" class="menu-link" data-drupal-link-system-path="node/3654">Download</a> </li> </ul> </li> </ul> </nav> <div class="search-api-page-block-form-search search-api-page-block-form search-form search-block-form container-inline block block-search-api-page block-search-api-page-form-block" data-drupal-selector="search-api-page-block-form-search" id="block-searchapipagesearchblockform"> <!-- Path : web/themes/custom/customer/components/collapsible/collapsible.twig --> <div class="js-collapsible search-collapsible search-collapsible " data-collapsible-close="false"> <button type=button class="js-collapsible-cta search-collapsible-cta search-collapsible-cta" aria-controls="search-content" aria-expanded="false"> <span class="visually-hidden">Search</span> </button> <div id="search-content" class="js-collapsible-content search-collapsible-content search-collapsible-content"> <form action="/hr-organization" method="post" id="search-api-page-block-form-search" accept-charset="UTF-8"> <input autocomplete="off" data-drupal-selector="form-et9ioypmofv1lzlukr0idgi1hy9vysektnwiddqeooi" type="hidden" name="form_build_id" value="form-eT9IOypmOfv1LzLUkR0IdgI1Hy9VYSEKTnwiDdqeOoI" /> <input data-drupal-selector="edit-search-api-page-block-form-search" type="hidden" name="form_id" value="search_api_page_block_form_search" /> <div class="form-wrapper js-form-wrapper" data-drupal-selector="edit-wrapper-keys" id="edit-wrapper-keys"><div class="js-form-item form-item js-form-type-search form-type-search js-form-item-keys form-item-keys form-no-label"> <label for="edit-keys" class="visually-hidden"> Search</label> <input title="Enter the terms you wish to search for." data-drupal-selector="edit-keys" type="search" id="edit-keys" name="keys" value="" size="15" maxlength="128" class="form-search" /> </div> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><button class="search-form__submit button js-form-submit form-submit" data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Search"> Search </button> </div> </div> </form> </div> </div> </div> </div> </div> </div> </div> </div> </div> </header> <main role="main" id="main-content"> <div class="layout-heading"> <div class="region region-heading"> <div id="block-pagetitle" class="block block-core block-page-title-block"> <div class="heading"> <div class="heading-container layout-wrapper"> <div class="block block-system block-system-breadcrumb-block"> <nav role="navigation" aria-labelledby="system-breadcrumb" class="breadcrumb"> <h2 id="system-breadcrumb" class="visually-hidden">Breadcrumb</h2> <ol> <li> <a href="/">Home</a> </li> <li> Data </li> <li> <a href="/human-resources-statistics">Human Resources Statistics</a> </li> </ol> </nav> </div> <div class="heading-content"> <h1 class="page-title"> <span>PERSONNEL BY ORGANIZATION</span> </h1> </div> </div> </div> </div> </div> </div> <div class="content-wrapper "> <div class="layout-content"> <div class="region region-content"> <div data-drupal-messages-fallback class="hidden"></div><div id="block-mainpagecontent" class="block block-system block-system-main-block"> <!-- @DEV : Twig block "class" should be used to add background class ex : bg-white(white and padding)--> <!-- @DEV : Add .bg-A on Related content section --> <!-- @DEV : Add .full-width on Related resources section --> <!-- @DEV : Add .layout-separator on Documents section --> <!-- @DEV : Add .has-teaser on financial and human resources statistics list pages --> <section class="section bg-white"> <div class="paragraph paragraph--type--text paragraph--view-mode--default"> <div class="text-formatted"> <p>The charts below display personnel of the United Nations system by year and by organization/entity. Data includes personnel with staff contracts or on staff appointments for one year or more.</p> <p>The table includes separate entries for certain organs of the UN, the ILO and WHO.</p> <p>Please note, the overall trends are amplified by better reporting systems and an increase in organizations that participate in the UN System. </p> <p><strong>How to Navigate the page</strong></p> <p>Data may be filtered using the spreadsheet at the bottom of the page. All data and charts are available for download at the bottom of this page.</p> </div> </div> <ul class="tags field field--name-field-topics field--type-entity-reference field--label-hidden field__items"> <li class="tags-item type-topics field__item">UN System Statistics</li> </ul> </section> </div> <div id="block-layoutunpersonnelbyorganization" class="block block-block-content block-block-contenta6b43392-9045-4cd1-b94f-8b46bbff386b"> <div class="layout layout--twocol-section layout--twocol-section--50-50"> <div class="layout__region layout__region--first"> <div class="block block-block-content block-block-content9877ec3e-e0a0-4268-8368-cc70bcb4dc6b"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><h5 id="pie-label-1" style="text-align: center; margin-top: 35px; margin-bottom: -30px;">Personnel by Organization</h5> <script> window.addEventListener('load', function() { flexmonster.on("reportchange", () => { var pie_title = "Personnel by Organization"; var rows = flexmonster.getRows(); if(rows[0].uniqueName == 'ENTITY') { pie_title = "Personnel by UN Entity" } var year_filter = flexmonster.getFilter('YEAR'); if(year_filter && year_filter.members.length == 1) { pie_title = pie_title + " in " + ((/\[(.+)\]/).exec(year_filter.members[0]))[1]; } jQuery("#pie-label-1").html(pie_title); }); }); </script></div> </div> </div> <div class="block block-block-content block-block-content8f431bf0-e217-4df8-9083-daf879361890"> <div class="field field--name-field-custom-pie-ceb field--type-flexmonster field--label-hidden field__items"> <div class="field__item"><br><div id='d3_pie_4'></div><br> <div id='pie_text_4'></div></div> </div> </div> <div class="block block-block-content block-block-content63bc60a4-a192-4482-a830-b84e338bbe2b"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><h5 id="bar-label-1" style="text-align: center; margin-top: 10px; margin-bottom: -30px;">Number of Personnel by Year</h5> <div id="year-bar" style="margin-top: 10px; width: 100%; height: 450px;"> </div> <style type="text/css"> </style> <script> window.addEventListener('load', function() { var tooltip = d3.select('body') .append('div') .style('position', 'absolute') .style('font-size', '10px') .style('background', '#fff') .style('padding', '5px') .style('max-width', '160px') .style('z-index', '10'); var margin = {top: 30, right: 50, bottom: 80, left: 50}, width = 545 - margin.left - margin.right, height = 450 - margin.top - margin.bottom; var svg = d3.select("#year-bar") .append("svg") .attr("width", width + margin.left + margin.right) .attr("height", height + margin.top + margin.bottom) .attr("viewBox", "0 0 545 450") .attr("preserveAspectRatio", "xMinYMid") .append("g") .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); /***** RESPONSIVE *****/ var aspect = 1.21; // var container = d3.select("body"); // if body var container = d3.select("#block-mainpagecontent"); // if FLexmonster var targetWidth = container.node().getBoundingClientRect().width; var chart = d3.select('#year-bar').select("svg"); // set d3 bar chart div size document.getElementById("year-bar").style.width = "100%"; if(targetWidth < 700) { chart.attr("width", targetWidth ); chart.attr("height", targetWidth / aspect); document.getElementById("year-bar").style.height = (targetWidth / aspect) + "px"; } else { document.getElementById("year-bar").style.height = "450px"; } d3.select(window) .on("resize.bar", function() { var targetWidthResize = container.node().getBoundingClientRect().width; // if body // var targetWidthResize = container.node().getBoundingClientRect().width; // if Flexmonster if(targetWidthResize < 545) { chart.attr("width", targetWidthResize); chart.attr("height", targetWidthResize / aspect); document.getElementById("year-bar").style.height = (targetWidthResize / aspect) + "px"; } else { chart.attr("width", "545px"); chart.attr("height", "450px"); document.getElementById("year-bar").style.width = "100%"; document.getElementById("year-bar").style.height = "450px"; } }); /***** end of RESPONSIVE *****/ var color = d3.scale.ordinal().range(["#00a3da","#1a9fa0","#f18b06","#ab231d","#792b7b","#e43388","#a0a0a0","#c49b6b","#8cbf41","#bfb948"]); var xScale = d3.scale.ordinal() .rangeRoundBands([0, width], .3); var yScale = d3.scale.linear() .rangeRound([height, 0]); var xAxis = d3.svg.axis() .scale(xScale) .orient("bottom") .innerTickSize([0]); var thousandSep = d3.format(','); var formatter = function(d) { return thousandSep(d); } var yAxis = d3.svg.axis() .scale(yScale) .orient("left") .tickFormat(formatter); var stack = d3.layout.stack(); flexmonster.on('reportcomplete', () => { flexmonster.getData({}, data => { function makeData(din) { var dout = din.data .filter(d => year in d) .reduce((p, d) => { p[d[year]] = p[d[year]] || { year: d[year], value: 0 }; p[d[year]].value += d['v0']; return p; }, {}); var years = flexmonster.getMembers('YEAR').map(d => d.caption); years.forEach(y => { dout[y] = dout[y] || 0; }); return Object.values(dout); } function transitionRects(data) { yScale.domain([0, d3.max(data, d => d.value)]); var years = svg.selectAll(".year") .data(data) .transition() .duration(250) .attr("x", d => xScale(d.year)) .attr("y", d => yScale(d.value)) .attr("height", d => height-yScale(d.value)); svg.selectAll(".y.axis").transition().call(yAxis); d3.selectAll('g.y.axis g.tick') .append("line") .attr("class", "gridline") .attr("x1", 0) .attr("y1", 0) .attr("x2", width) .attr("y2", 0) .style('stroke-width', '0.2') .style('stroke', '#000') .style('shape-rendering', 'crispedges'); } var rows = flexmonster.getRows(); var year = 'r' + rows.findIndex(d => d.uniqueName == 'YEAR'); var groups = flexmonster.getMembers('YEAR').map(d => d.caption); xScale.domain(groups); data = makeData(data); svg.append("g") .attr("class", "x axis") .attr("transform", "translate(0," + height + ")") .call(xAxis) svg.append("g") .attr("class", "y axis") .call(yAxis) .append("text") .attr("y", 6) .attr("dy", "-1em") .attr("dx", "14em") .style("text-anchor", "end"); //.text("NUMBER OF PERSONNEL"); var years = svg.selectAll(".year") .data(data) .enter().append("g") .style("fill", function(d, i) { return color(i); }) .append("rect") .attr("class", "year") .attr("width", xScale.rangeBand()) .attr('style', 'cursor: pointer') .on('mouseover', d => tooltip.style('display', null).html(`${d.year}: ${thousandSep(Math.floor(d.value))}`)) .on('mousemove', d => tooltip.style('top', (d3.event.pageY - 5) + 'px').style('left', (d3.event.pageX + 10) + 'px')) .on('mouseout', d => tooltip.style('display', 'none')) .on('click', d => { if (flexmonster.getFilter('YEAR')) flexmonster.clearFilter('YEAR'); else flexmonster.setFilter('YEAR', {'members': [`year.[${d.year}]`]}); }); transitionRects(data); flexmonster.on('reportchange', () => { flexmonster.getData({}, data => { var data = makeData(data); transitionRects(data); }); svg.selectAll(".axis") .selectAll("text") .style("font-size", "11px") .style("font-family", '"Montserrat", Arial, sans-serif'); }); // add css styles svg.selectAll(".axis") .select("path") .attr("fill", "none") .attr("stroke", "#000") .attr("shape-rendering", "crispEdges"); svg.selectAll(".axis") .selectAll("line") .style("fill", "none") .style("stroke", "#000"); svg.selectAll(".axis") .selectAll("text") .style("font-size", "11px") .style("font-family", '"Montserrat", Arial, sans-serif'); }); }); }); </script></div> </div> </div> </div> <div class="layout__region layout__region--second"> <div class="block block-block-content block-block-content4666210e-6761-4d79-9776-5e45a032d7c6"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><div> <h2 id="org-entity-title" style="margin-top: 30px; margin-bottom: 0; font-size: 1.7em;">UN System</h2> <h3 id="big-total" style="margin-bottom: 0.8em; font-size: 1.2em;"><span>Total number of personnel in 2019: </span><span style="color:#4572a7;"> </span></h3> </div> <div style="margin-top: 30px; margin-bottom: 30px;"><button id="org-button" style="margin: 2px; height:30px; padding: 2px; width: 60px;">All</button><button id="un-button" style="margin: 2px; height:30px; padding: 2px; width: 170px;">UN Secretariat</button></div> <div style="max-height: 740px;overflow-y: auto;font-size:0.8em"> <table class="views-table cols-3" id="pers-by-org" style="font-family: Trebuchet MS; font-size: 12px;"> <thead> <tr> </tr> </thead> <tbody> </tbody> </table> </div> <p> </p> <p id="org-footnote" style="font-size: 0.8em"><i>* Organizations that did not participate in the data collection</i></p> <script> window.addEventListener('load', function() { if(/iPhone|iPod|Android/i.test(navigator.userAgent)) { jQuery("#pers-by-org").css( {"tableLayout": "fixed", "wordWrap": "break-word", "fontSize": "1.6vw"} ); } jQuery('#org-button').click(function() { flexmonster.runQuery({rows: [{ uniqueName: 'ORG' }, {uniqueName: 'ENTITY'}, { uniqueName: 'YEAR'}],columns: [{uniqueName: '[Measures]'}],measures: [{uniqueName: 'STAFF'}]}); flexmonster.clearFilter('ORG'); flexmonster.clearFilter('ENTITY'); jQuery('#org-footnote').html("<i>* Organizations that did not participate in the data collection</i>"); jQuery('#org-entity-title').html('UN System'); }); jQuery('#un-button').click(function() { flexmonster.setFilter('ORG', {members: ['ORG.[UN]']}); flexmonster.setFilter('ENTITY', {'exclude': ['ENTITY.[NA]']}); flexmonster.runQuery({rows: [{ uniqueName: 'ENTITY' }, {uniqueName: 'ORG'}, { uniqueName: 'YEAR'}],columns: [{uniqueName: '[Measures]'}],measures: [{uniqueName: 'STAFF'}]}); jQuery('#org-footnote').html("<i>* Entities for which data was not submitted in the data collection</i>"); jQuery('#pers-by-org thead tr th:nth-child(1)').html('Entity'); jQuery('#org-entity-title').html('UN Secretariat'); }); flexmonster.on('reportchange', () => { flexmonster.getData({}, data => { var head = jQuery('#pers-by-org thead tr'); var table = jQuery("#pers-by-org tbody"); jQuery(head).empty(); jQuery(table).empty(); var rows = flexmonster.getRows(); var year = 'r' + rows.findIndex(d => d.uniqueName == 'YEAR'); var rows = flexmonster.getRows(); var org; if(rows[0].uniqueName === 'ORG'){org = 'r' + rows.findIndex(d => d.uniqueName == 'ORG');} else if(rows[0].uniqueName === 'ENTITY'){org = 'r' + rows.findIndex(d => d.uniqueName == 'ENTITY');} // for UN Secretariat Data var un_data = data.data.filter(d => { return d['r0'] === 'UN' && d['r2'] }); var un_by_years = un_data.map(e => { var obj = {}; ['r2', 'v0'].forEach(k => obj[k] = e[k]) return obj; }); var un_accumulate = un_by_years.reduce((accumulator, cur) => { let year = cur.r2; let f = accumulator.find(e => e.r2 === year) if (f) f.v0 += cur.v0; else accumulator.push(cur); return accumulator; }, []); un_accumulate.sort((a, b) => a.r2 - b.r2); var un_values = {values: {}, org: 'UN' }; un_accumulate.forEach(d => { un_values.values[d.r2] = d.v0; }); var totals = {}; var big_total = 0; var data = data.data .filter(d => year in d && org in d) .reduce((p, d) => { p[d[org]] = p[d[org]] || { values: {}, org: d[org] }; p[d[org]].values[d[year]] = d['v0']; totals[d[year]] = totals[d[year]] || 0; totals[d[year]] += d['v0']; big_total += d['v0']; return p; }, {}); data = Object.values(data); data = data.filter(d => { return d['org'] !== 'UN' }); data.push(un_values); data.sort((a, b) => (a.org > b.org) ? 1 : -1); var years = Object.keys(totals); var selected = years.sort()[years.length-1]; jQuery('#big-total span:nth-child(1)').text('Total number of personnel in ' + selected + ': '); jQuery('#big-total span:nth-child(2)').text(totals[selected].toLocaleString()); jQuery(head).append('<th class="views-field" style="position: sticky; top: -1px;">Organization</th>'); years.forEach(d => { jQuery(head).append(`<th class="views-field" style="text-align: right; position: sticky; top: -1px;">${d}</th>`); }) data.forEach((d, i) => { var row = jQuery(table).append(`<tr class="${i%0?'even':'odd'}"></tr>`); row.append(`<td>${d.org}</td>`); years.forEach(y => { row.append(`<td style="text-align: right;">${(d.values[y]||'0*').toLocaleString()}</td>`) }) }); var row = jQuery(table).append('<tr></tr>'); //row.append(`<td>TOTAL</td><td style="text-align: right;">${big_total.toLocaleString()}</td>`); row.append(`<td style="font-weight: bold;">Total</td>`); years.forEach(d => { row.append(`<td style="text-align: right; font-weight: bold;">${(totals[d]||'0*').toLocaleString()}</td>`) }) }); }); flexmonster.on('reportcomplete', () => { if(/iPhone|iPod|Android/i.test(navigator.userAgent)) { jQuery("#pers-by-org").css( {"tableLayout": "fixed", "wordWrap": "break-word"} ); } flexmonster.getData({}, data => { var head = jQuery('#pers-by-org thead tr'); var table = jQuery("#pers-by-org tbody"); jQuery(head).empty(); jQuery(table).empty(); var rows = flexmonster.getRows(); var year = 'r' + rows.findIndex(d => d.uniqueName == 'YEAR'); var rows = flexmonster.getRows(); var org; if(rows[0].uniqueName === 'ORG'){org = 'r' + rows.findIndex(d => d.uniqueName == 'ORG');} else if(rows[0].uniqueName === 'ENTITY'){org = 'r' + rows.findIndex(d => d.uniqueName == 'ENTITY');} // for UN Secretariat Data var un_data = data.data.filter(d => { return d['r0'] === 'UN' && d['r2'] }); var un_by_years = un_data.map(e => { var obj = {}; ['r2', 'v0'].forEach(k => obj[k] = e[k]) return obj; }); var un_accumulate = un_by_years.reduce((accumulator, cur) => { let year = cur.r2; let f = accumulator.find(e => e.r2 === year) if (f) f.v0 += cur.v0; else accumulator.push(cur); return accumulator; }, []); un_accumulate.sort((a, b) => a.r2 - b.r2); var un_values = {values: {}, org: 'UN' }; un_accumulate.forEach(d => { un_values.values[d.r2] = d.v0; }); var totals = {}; var big_total = 0; var data = data.data .filter(d => year in d && org in d) .reduce((p, d) => { p[d[org]] = p[d[org]] || { values: {}, org: d[org] }; p[d[org]].values[d[year]] = d['v0']; totals[d[year]] = totals[d[year]] || 0; totals[d[year]] += d['v0']; big_total += d['v0']; return p; }, {}); data = Object.values(data); data = data.filter(d => { return d['org'] !== 'UN' }); data.push(un_values); data.sort((a, b) => (a.org > b.org) ? 1 : -1); var years = Object.keys(totals); var selected = years.sort()[years.length-1]; jQuery('#big-total span:nth-child(1)').text('Total number of personnel in ' + selected + ': '); jQuery('#big-total span:nth-child(2)').text(totals[selected].toLocaleString()); jQuery(head).append('<th class="views-field" style="position: sticky; top: -1px;">Organization</th>'); years.forEach(d => { jQuery(head).append(`<th class="views-field" style="text-align: right; position: sticky; top: -1px;">${d}</th>`); }) data.forEach((d, i) => { var row = jQuery(table).append(`<tr class="${i%0?'even':'odd'}"></tr>`); row.append(`<td>${d.org}</td>`); years.forEach(y => { row.append(`<td style="text-align: right;">${(d.values[y]||'0*').toLocaleString()}</td>`) }) }); var row = jQuery(table).append('<tr></tr>'); //row.append(`<td>TOTAL</td><td style="text-align: right;">${big_total.toLocaleString()}</td>`); row.append(`<td>TOTAL</td>`); years.forEach(d => { row.append(`<td style="text-align: right;">${(totals[d]||'0*').toLocaleString()}</td>`) }) }); }); }); </script></div> </div> </div> </div> </div> <div class="layout layout--twocol-section layout--twocol-section--50-50"> </div> <div class="layout layout--onecol"> <div > </div> </div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div class="block block-block-content block-block-contentd0b0b99d-118b-4c93-8c4b-64177298e869"> <div class="field field--name-field-flexmonster-toolbar-ceb field--type-flexmonster field--label-hidden field__items"> <div class="field__item"><br><div id='pageTitle' class='hidden'></div> <div id='pageDetails'></div> <div id='pivotContainer'></div><br></div> </div> </div> <div class="block block-layout-builder block-inline-blockbasic"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><style> .layout--twocol-section--50-50 .layout__region--first { overflow: hidden } </style></div> </div> </div> </div> </div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div class="block block-block-content block-block-content218238b6-31f1-424d-b223-fdedb00bc59c"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><script> window.addEventListener('load', function() { flexmonster.on('reportcomplete', function() { var div = jQuery('<div class="faq-collapsible" style="height: 50px; overflow: hidden; padding-bottom: 60px"></div>'); var exp = jQuery('<button type="button" class="js-collapsible-cta faq-collapsible-cta" id="fm-expand" style="margin-bottom: 30px"><p>I want to explore the data further (advanced filtering) <' + '/' + 'p><' + '/' + 'button>'); setTimeout(() => { var p = jQuery('#pivotContainer'); //var d = jQuery('#pageDetails'); p.parent().append(div); //div.append(exp).append(d).append('<br/>').append(p); div.append(exp).append('<div><p align="justify">Users are advised that changes to the filtering options may limit the graphs functionalities.</p></div>').append('<br/>').append(p); exp.click(function() { if (div.hasClass('is-expanded')) { div.css('height', '50px').toggleClass('is-expanded', false); } else { div.css('height', '650px').toggleClass('is-expanded', true); } }); }, 1000); }); }); </script></div> </div> </div> <div class="block block-block-content block-block-contentd142b41e-a69e-4ccf-8890-89a66fc03c41"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><script> window.addEventListener('load', function() { flexmonster.on('reportcomplete', function() { jQuery('#pivotContainer').parent().hide(); }); }); </script></div> </div> </div> </div> </div> <div class="layout layout--onecol"> <div class="layout__region layout__region--content"> <div class="block block-block-content block-block-contenta8712375-244a-4e78-85da-ac5503a37538"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__items"> <div class="field__item"><p> </p> <div style="margin: 0 auto; display:block; text-align: center;"><button onclick="Drupal.behaviors.d3piecustom4.savePieChart(); saveBar();" style="margin: 2px">Download Charts</button><button onclick="flexmonster.exportTo('csv')" style="margin: 2px">Export (csv)</button><button onclick="flexmonster.exportTo('excel')" style="margin: 2px">Export (excel)</button></div> <p> </p> <script> function saveBar() { var svgString = new XMLSerializer().serializeToString(d3.select("#year-bar").selectAll("svg")[0][0]); var canvas = document.createElement("canvas"); canvas.width = d3.select("#year-bar").selectAll("svg")[0][0].width.baseVal.value; canvas.height = d3.select("#year-bar").selectAll("svg")[0][0].height.baseVal.value var ctx = canvas.getContext("2d"); var DOMURL = self.URL || self.webkitURL || self; var img = new Image(); var svg = new Blob([svgString], { type: "image/svg+xml;charset=utf-8" }); var url = DOMURL.createObjectURL(svg); img.onload = function() { ctx.drawImage(img, 0, 0); var imgURL = canvas.toDataURL("image/png"); DOMURL.revokeObjectURL(imgURL); var dlLink = document.createElement('a'); dlLink.download = "bar_chart.png"; dlLink.href = imgURL; dlLink.dataset.downloadurl = ["image/png", dlLink.download, dlLink.href] .join(':'); document.body.appendChild(dlLink); dlLink.click(); document.body.removeChild(dlLink); } img.src = url; } </script></div> </div> </div> </div> </div> </div> </div> </div> </div> </main> <footer class="footer" id="footer" role="contentinfo"> <div class="footer-container layout-wrapper"> <!-- Path: web/themes/custom/customer/components/back-to-top/back-to-top.twig --> <a class="back-to-top" href="#"> <span class="visually-hidden">Retour haut de page</span> </a> <div class="footer-logo"> <div class="footer-logo-img"> <img src="/themes/custom/customer/logo.svg" alt="UN System Chief Executives Board for Coordination - logo"> </div> <p class="footer-logo-txt"> <span>CEB</span>UN System Chief Executives Board for Coordination </p> </div> <div class="region region-footer"> <nav role="navigation" aria-labelledby="block-footer-heading" id="block-footer" class="block block-menu navigation menu--footer"> <h2 class="visually-hidden" id="block-footer-heading">Footer</h2> <ul class="menu"> <li class="menu-item"> <a href="/copyright" class="menu-link" data-drupal-link-system-path="node/3355">Copyright</a> </li> <li class="menu-item"> <a href="/legal-notice" class="menu-link" data-drupal-link-system-path="node/3354">Legal Notice</a> </li> <li class="menu-item"> <a href="/form/contact" class="menu-link">Contact</a> </li> </ul> </nav> </div> </div> </footer> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/3348","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"google_analytics":{"account":"G-MGWZ0VENTT","trackOutbound":true,"trackMailto":true,"trackTel":true,"trackDownload":true,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip"},"eu_cookie_compliance":{"cookie_policy_version":"1.0.0","popup_enabled":true,"popup_agreed_enabled":false,"popup_hide_agreed":false,"popup_clicking_confirmation":false,"popup_scrolling_confirmation":false,"popup_html_info":"\u003Cdiv aria-labelledby=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv id=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-message\u0022 role=\u0022document\u0022\u003E\n \u003Ch2\u003EWe use cookies on this site to enhance your user experience\u003C\/h2\u003E\n\u003Cp\u003EBy clicking any link on this page you are giving your consent for us to set cookies.\u003C\/p\u003E\n\n \u003C\/div\u003E\n\n \n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-secondary-button\u0022\u003EOK, I agree\u003C\/button\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022decline-button eu-cookie-compliance-default-button\u0022\u003ENo, thanks\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","use_mobile_message":false,"mobile_popup_html_info":"\u003Cdiv aria-labelledby=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv id=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-message\u0022 role=\u0022document\u0022\u003E\n \n \u003C\/div\u003E\n\n \n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-secondary-button\u0022\u003EOK, I agree\u003C\/button\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022decline-button eu-cookie-compliance-default-button\u0022\u003ENo, thanks\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","mobile_breakpoint":768,"popup_html_agreed":false,"popup_use_bare_css":false,"popup_height":"auto","popup_width":"100%","popup_delay":1000,"popup_link":"\/","popup_link_new_window":true,"popup_position":false,"fixed_top_position":true,"popup_language":"en","store_consent":false,"better_support_for_screen_readers":false,"cookie_name":"","reload_page":false,"domain":"","domain_all_sites":null,"popup_eu_only":false,"popup_eu_only_js":false,"cookie_lifetime":100,"cookie_session":0,"set_cookie_session_zero_on_disagree":0,"disagree_do_not_show_popup":false,"method":"opt_in","automatic_cookies_removal":true,"allowed_cookies":"","withdraw_markup":"\u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-tab\u0022\u003EPrivacy settings\u003C\/button\u003E\n\u003Cdiv aria-labelledby=\u0022popup-text\u0022 class=\u0022eu-cookie-withdraw-banner\u0022\u003E\n \u003Cdiv class=\u0022popup-content info eu-cookie-compliance-content\u0022\u003E\n \u003Cdiv id=\u0022popup-text\u0022 class=\u0022eu-cookie-compliance-message\u0022 role=\u0022document\u0022\u003E\n \u003Ch2\u003EWe use cookies on this site to enhance your user experience\u003C\/h2\u003E\n\u003Cp\u003EYou have given your consent for us to set cookies.\u003C\/p\u003E\n\n \u003C\/div\u003E\n \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-buttons\u0022\u003E\n \u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-button \u0022\u003EWithdraw consent\u003C\/button\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\u003C\/div\u003E","withdraw_enabled":false,"reload_options":0,"reload_routes_list":"","withdraw_button_on_info_popup":null,"cookie_categories":[],"cookie_categories_details":[],"enable_save_preferences_button":null,"cookie_value_disagreed":"0","cookie_value_agreed_show_thank_you":"1","cookie_value_agreed":"2","containing_element":"body","settings_tab_enabled":false,"olivero_primary_button_classes":"","olivero_secondary_button_classes":"","close_button_action":"close_banner","open_by_default":true,"modules_allow_popup":true,"hide_the_banner":false,"geoip_match":true},"flexmonster":{"path":"\/modules\/custom\/flexmonster\/js\/flexmonster\/","api_key":"Z7UO-XG5B29-5S1M39-1D0A0W-612G1F-2O285V-0L3C3O-6H0K2A-0D251Z-35","enable_chart_download":0,"flexmonster_chart_title":"PERSONNEL","flexmonster_chart_text":"","data_source":"\/sites\/default\/files\/statistic_files\/HR\/organization.csv","data_source_type":"csv","uniquename_row":"ORG,ENTITY,YEAR","uniquename_column":"STAFF","row_filter":"","filter_top":"","layout":"classic","column_width":"0","flexmonster_toolbar":"0","flexmonster_showchart":"0","flexmonster_chart_type":"column","flexmonster_tabs":"0","d3_pie_custom_4_config_id":"4","d3_pie_custom_4_config_column":"","d3_pie_custom_4_config_width":"520","d3_pie_custom_4_config_height":"500","d3_pie_custom_4_config_scale":"78%","d3_pie_custom_4_config_text":"\u003Cp\u003E\u003C\/p\u003E","d3_pie_custom_4_config_colors":"#00a3da,#1a9fa0,#f18b06,#ab231d,#792b7b,#e43388,#a0a0a0,#c49b6b,#8cbf41,#bfb948,#00a3da,#1a9fa0,#f18b06,#ab231d,#792b7b,#e43388,#a0a0a0,#c49b6b,#8cbf41,#bfb948,#00a3da,#1a9fa0,#f18b06,#ab231d,#792b7b,#e43388,#a0a0a0,#c49b6b,#8cbf41,#bfb948"},"ajaxTrustedUrl":{"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM":true},"user":{"uid":0,"permissionsHash":"b5333c74b5bf81f284549e62cd0720054071e3a6355a98d40b642fe92aa7fe72"}}</script> <script src="/core/assets/vendor/jquery/jquery.min.js?v=3.7.1"></script> <script src="/core/assets/vendor/once/once.min.js?v=1.0.1"></script> <script src="/core/misc/drupalSettingsLoader.js?v=10.4.5"></script> <script src="/core/misc/drupal.js?v=10.4.5"></script> <script src="/core/misc/drupal.init.js?v=10.4.5"></script> <script src="/themes/custom/customer/component/back-to-top/back-to-top.js?stmpzm"></script> <script src="/themes/custom/customer/component/menu/menu.js?stmpzm"></script> <script src="/libraries/fitvids/jquery.fitvids.js?stmpzm"></script> <script src="/themes/custom/customer/js/resize-videos.js?stmpzm"></script> <script src="/themes/custom/ecedi/js/collapsible/collapsible.js?stmpzm"></script> <script src="/themes/custom/ecedi/js/helpers.js?stmpzm"></script> <script src="/modules/contrib/eu_cookie_compliance/js/eu_cookie_compliance.min.js?v=10.4.5" defer></script> <script src="/modules/custom/flexmonster/js/d3/d3.v3.min.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3/d3-scale.v3.min.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3/sankey.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3/d3.chart.min.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3/d3.chart.sankey.min.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3pie/d3pie.min.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/d3_pie_custom_4.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/flexmonster/flexmonster.js?stmpzm"></script> <script src="/modules/custom/flexmonster/js/flexmonster-d3-block.js?stmpzm"></script> <script src="/modules/contrib/google_analytics/js/google_analytics.js?v=10.4.5"></script> </body> </html>