CINXE.COM

ORCID

<!DOCTYPE html> <html class="no-js oldie" lang="en"> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://orcid.org/0000-0003-3307-5386","20210224093315","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1614159195"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"/> <title>ORCID</title> <meta name="description" content=""> <meta name="author" content="ORCID"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta property="og:title" content="Michael Piotrowski (0000-0003-3307-5386)"> <meta property="og:description" content="ORCID record for Michael Piotrowski. ORCID provides an identifier for individuals to use with their name as they engage in research, scholarship, and innovation activities."> <meta property="og:image" content="https://web.archive.org/web/20210224093315im_/https://orcid.org/static/release-1.294.8_patch_1/img/orcid-og-image.png"> <!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//web.archive.org/web/20210224093315/http://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-17492803-4', 'auto', {'legacyCookieDomain': 'orcid.org'}); // Replace with your property ID. ga('set', 'anonymizeIp', true); //Anonymize user IP ga('send', 'pageview'); </script> <!-- End Google Analytics --> <script type="text/javascript"> window.resourceBasePath = "//web.archive.org/web/20210224093315/http://orcid.org/static/release-1.294.8_patch_1" var orcidVar = {}; orcidVar.orcidId = '0000-0003-3307-5386'; orcidVar.lastModified = 'Feb 9, 2021 9:42:01 AM'; orcidVar.orcidIdHash = ''; orcidVar.realOrcidId = ''; orcidVar.resetParams = ''; orcidVar.emailToReactivate = ''; orcidVar.isPasswordConfirmationRequired = false; orcidVar.providerId = ''; orcidVar.features = JSON.parse("{\"NEW_FOOTER\":true,\"ENABLE_RECORD_CREATE_ENDPOINT\":false,\"AFFILIATION_SEARCH\":true,\"LAST_MOD\":true,\"VERBOSE_NOTIFICATIONS\":true,\"ORCID_ANGULAR_MY_ORCID\":false,\"ADD_WORKS_WITH_EXTERNAL_ID\":true,\"HTTPS_IDS\":true,\"WIDE_GRID\":true,\"DIALOG_PRIVACY_OPTION\":true,\"ENABLE_HEADER2\":true,\"TWO_FA_DEACTIVATE_EMAIL\":true,\"LANG_AR\":true,\"GROUPING_SUGGESTIONS\":true,\"WORKS_FAILURE_DEBUG\":true,\"PUB_API_DEFAULT_TO_V3\":true,\"SELF_SERVICE_ORG_IDS\":true,\"RE_LOGGIN_ALERT\":true,\"ENABLE_PROMOTION_OF_CHOSEN_ORGS\":true,\"V2_DISABLE_RELEASE_CANDIDATES\":true,\"AFFILIATION_ORG_ID\":true,\"MEMBER_API_DEFAULT_TO_V3\":true,\"DISABLE_BADGES\":false,\"ORCID_ANGULAR_SEARCH\":true,\"ID_TOKEN_24_HOURS_LIFESPAN\":true,\"MANUAL_WORK_GROUPING\":true,\"ORCID_ANGULAR_SIGNIN\":true,\"OPENID_SIMPLE_SUBJECT\":true,\"ORCID_ANGULAR_INBOX\":false,\"EMAIL_STATUS_DROPDOWN_OPTION\":false,\"SURVEY\":false,\"SEARCH_RESULTS_AFFILIATIONS\":true,\"ENABLE_USER_MENU\":true,\"SF_ENABLE_OPP_ORG_RECORD_TYPES\":true,\"SPAM_BUTTON\":false,\"NEW_INFO_SITE\":true,\"HOTJAR\":true,\"RESET_PASSWORD_EMAIL\":true,\"EX_ID_RESOLVER\":true,\"GROUP_AFFILIATIONS\":false,\"WORKS_PAGINATION\":true,\"TWO_FACTOR_AUTHENTICATION\":true,\"REVOKE_TOKEN_ON_CODE_REUSE\":true,\"HIDE_UNVERIFIED_EMAILS\":true,\"RESEARCH_RESOURCE\":true,\"DISABLE_RECAPTCHA\":false,\"USER_OBO\":true}"); orcidVar.oauthUserId = ""; orcidVar.firstName = ""; orcidVar.lastName = ""; orcidVar.emailId = ""; orcidVar.linkRequest = ""; orcidVar.loginId = ""; orcidVar.developerToolsEnabled = false; </script> <!-- Hotjar --> <script> (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:1220063,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://web.archive.org/web/20210224093315/https://static.hotjar.com/c/hotjar-','.js?sv='); </script> <!-- End Hotjar --> <!-- OrcidGA --> <script> var OrcidGA = function() { this.buildClientString = function(clientGroupName, clientName) { return clientGroupName + ' - ' + clientName }; this.gaPush = function(trackArray) { /* * window.ga is blocked by Ghostery and disconnect.me * window.gaGlobal is blocked by uBlock */ if(window.ga && window.gaGlobal) { if(typeof trackArray === 'function') { ga(trackArray); } else { //Anonymize IP for each hit per //https://developers.google.com/analytics/devguides/collection/analyticsjs/ip-anonymization if(trackArray[5] == undefined) { ga(trackArray[0], trackArray[1], trackArray[2], trackArray[3], trackArray[4], {'anonymizeIp': true}); } else { ga(trackArray[0], trackArray[1], trackArray[2], trackArray[3], trackArray[4], trackArray[5], {'anonymizeIp': true}); } //console.log("_gap.push for " + trackArray); } setTimeout(function(){ if(!ga.create) { // if it's a function and _gap isn't available run (typically only // on dev) console.log("no _gap.push for " + trackArray); if (typeof trackArray === 'function') trackArray(); } }, 200); } else { //console.log("no _gap.push for " + trackArray); if (typeof trackArray === 'function') trackArray(); } }; // Delays are async functions used to make sure event track que has cleared // See // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gaq // // Additionally adding in delay: // http://support.google.com/analytics/answer/1136920?hl=en this.gaFormSumbitDelay = function($el) { if (!$el instanceof jQuery) { $el = $(el); } this.gaPush(function() { console.log("_gap.push executing $el.submit()"); setTimeout(function() { $el.submit(); }, 100); }); return false; }; this.windowLocationHrefDelay = function(url) { this.gaPush(function() { console.log("_gap.push has executing window.location.href " + url); setTimeout(function() { window.location.href = url; }, 100); }); return false; }; }; var orcidGA = new OrcidGA(); </script> <!-- End OrcidGA --> <link rel="stylesheet" href="//web.archive.org/web/20210224093315cs_/http://orcid.org/static/release-1.294.8_patch_1/css/spinner.css"/> <link rel="shortcut icon" href="//web.archive.org/web/20210224093315im_/http://orcid.org/static/release-1.294.8_patch_1/img/favicon.ico"/> <link rel="apple-touch-icon" href="//web.archive.org/web/20210224093315im_/http://orcid.org/static/release-1.294.8_patch_1/img/apple-touch-icon.png"/> <style type="text/css"> /* Allow angular.js to be loaded in body, hiding cloaked elements until templates compile. The !important is important given that there may be other selectors that are more specific or come later and might alter display. */ [ng\:cloak], [ng-cloak], .ng-cloak { display: none !important; } </style> <!-- ***************************************************** --> <!-- Ng2 Templates - BEGIN --> <script type="text/ng-template" id="modal-ng2-template"> <div [hidden]="!showModal" > <div class="popover-ng2-bck" (click)="closeModal('clickOutside')"></div> <div class="popover-ng2-content" id="colorbox" role="dialog" tabindex="-1" [ngStyle]="{ 'height': this.elementHeight + 'px', 'left': 'calc(50% - ' + this.elementWidth/2 + 'px)', 'top': 'calc(50% - ' + this.elementHeight/2 + 'px)', 'width': this.elementWidth + 'px' }" > <div id="cboxWrapper" [ngStyle]="{ 'height': this.elementHeight + 'px', 'width': this.elementWidth + 'px' }" > <div> <div id="cboxTopLeft" style="float: left;"></div> <div id="cboxTopCenter" style="float: left;" [ngStyle]="{ 'width': this.elementWidth + 'px' }" ></div> <div id="cboxTopRight" style="float: left;"></div> </div> <div style="clear: left;"> <div id="cboxMiddleLeft" style="float: left;" [ngStyle]="{ 'height': this.elementHeight + 'px' }" ></div> <div id="cboxContent" style="float: left;" [ngStyle]="{ 'height': this.elementHeight + 'px', 'width': this.elementWidth + 'px' }" > <div id="cboxLoadedContent" style=" overflow: auto;" [ngStyle]="{ 'height': this.elementHeight + 'px', 'width': this.elementWidth + 'px' }" > <div class="lightbox-container"> <div class="orcidCloseButtonModal" *ngIf="disableclickoutside" (click)="closeModal()"> <img src="{{assetsPath}}/img/svg/close-24px.svg" aria-label="Close modal"/> </div> <ng-content></ng-content> </div> </div> </div> </div> </div> </div> </div> </script><script type="text/ng-template" id="ext-id-popover-ng2-template"> <span *ngIf="relationship && relationship == 'part-of'" class='italic'>Part of </span><span>{{type | uppercase}}: </span> <span *ngIf="value && !url">{{value}}</span> <a *ngIf="value && url" rel="noopener noreferrer" href="{{url}}" class="truncate-anchor-peer-review inline" target="orcid.blank" (mouseenter)="showAffiliationExtIdPopOver(putCode)" (mouseleave)="hideAffiliationExtIdPopOver(putCode)">{{value}}</a> <div *ngIf="url" class="popover-pos"> <div class="popover-help-container"> <div class="popover bottom" [ngClass]="{'block' : displayAffiliationExtIdPopOver[putCode] == true}"> <div class="arrow"></div> <div class="popover-content"> <a href="{{url}}" target="orcid.blank" rel="noopener noreferrer" class="ng-binding">{{url}}</a> </div> </div> </div> </div> </script> <!-- Ng2 Templates - END --> <!-- ***************************************************** --> </head> <body class="wide-grid"> <div id="skip-link"> <a href="#main" class="a11yLinks">Skip to main content</a> </div> <style type="text/css"> .a11yLinks { position: absolute !important; } .a11yLinks:not(:focus) { clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px); overflow: hidden; height: 1px; } </style> <root-cmp role="presentation"> <style type="text/css"> body, html { height: 100%; } .app-loading { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; } </style> <noscript> <div class="alert alert-banner"> For full functionality of this site it is necessary to enable JavaScript. Here are the <a href="https://web.archive.org/web/20210224093315/http://www.enable-javascript.com/" target="common.browser-checks.instructionhowtoadd"> instructions for enabling JavaScript in your web browser</a>.<br> ORCID uses cookies to improve your experience and to help us understand how you use our websites. <a href="https://web.archive.org/web/20210224093315/https://orcid.org/privacy-policy#TrackingTechnology" target="common.cookies.learn_more"> Learn more about how we use cookies</a>. </div> <style type="text/css"> .app-loading { display: none; } </style> </noscript> <div class="app-loading"> <!--[if ! lte IE 9]><!--> <i class="spin green x8" style="line-height: 0px;" id="spinner"><img src="//web.archive.org/web/20210224093315im_/http://orcid.org/static/release-1.294.8_patch_1/img/svg/refresh-curve-arrows.svg" class="spinner flip" width="85" height="85"/></i> <!--<![endif]--> <!--[if lte IE 9]> <img src="//orcid.org/static/release-1.294.8_patch_1/img/spin-big.gif" class="spinner" width="85" height ="85"/> <![endif]--> </div> </root-cmp> <script type="text/ng-template" id="alert-banner-ng2-template"> <div id="test-warn-div" class="alert alert-banner" *ngIf="showTestSiteNotification"> <p><strong>Warning! {{baseDomainRemoveProtocol}} is a test website.</strong>&nbsp;<a href="https://web.archive.org/web/20210224093315/https://orcid.org" target="orcid.org">orcid.org</a> is the official website. Sandbox only sends email messages to <a href="https://web.archive.org/web/20210224093315/https://mailinator.com">mailinator.com</a> email addresses, see Sandbox FAQ for <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006972573" target="common.js.domain.warn.more_information"> more information</a></p> <button *ngIf="dismissTestSiteNotificationAllowed" (click)="dismissTestSiteNotification()" id="test-warn-dismiss" class="btn btn-primary">Dismiss</button> </div> <div id="cookie-alert" class="alert alert-banner" *ngIf="showCookieNotification"> <p><span *ngIf="!cookiesEnabled">For full functionality of this site, please enable browser cookies.</span> ORCID uses cookies to improve your experience and to help us understand how you use our websites. <a href="{{getBaseUri()}}/privacy-policy#TrackingTechnology" target="common.cookies.learn_more"> Learn more about how we use cookies</a>.</p> <button (click)="dismissCookieNotification()" class="btn btn-primary">Dismiss</button> </div> </script> <alert-banner-ng2></alert-banner-ng2> <!--OAUTH SCREEN HEADER--> <!--NON-OAUTH HEADER--> <!--hide header if oauth login--> <script type="text/ng-template" id="language-ng2-template"> <form role="presentation" action="#" > <select *ngIf="languages" name="language-codes" id="language-codes" [(ngModel)]="language" (ngModelChange)="selectedLanguage()" aria-label="language menu" role="navigation" > <option *ngFor="let languageOpt of languages" [value]="languageOpt.value" [selected]="languageOpt.value == language.value" > {{languageOpt.label}} </option> </select> </form> </script><script type="text/ng-template" id="user-menu-template"> <div class="form-group " role="presentation"> <div class="search-container" role="navigation" aria-label="user menu" (mouseleave)="state = false"> <a *ngIf="!userInfo" class="top-menu-button hide-on-mobile" href="{{getBaseUri()}}/signin"> {{'Sign in'| uppercase }}/{{'Register'| uppercase }} </a> <div *ngIf="userInfo && nameForm" class="top-menu-button" (click)="state = !state" (keyup.enter)="state = !state" tabindex="0" > <img src="{{assetsPath + '/img/svg/profile-icon.svg'}}" role="presentation"> <div class="name" *ngIf="!isMobile"> <ng-container *ngIf="displayFullName()"> {{nameForm?.creditName?.value}} </ng-container> <ng-container *ngIf="displayPublishedName()"> {{nameForm?.givenNames?.value}} {{nameForm?.familyName?.value}} </ng-container> </div> <div class="more blue" [ngClass]="{'less' : state}" *ngIf="!isMobile"> </div> </div> <div class="top-menu" *ngIf="state && userInfo && nameForm"> <a class="top-menu-header" href="{{getBaseUri()}}/my-orcid"> <img src="{{assetsPath + '/img/svg/profile-icon.svg'}}" role="presentation"> <div> <div class="name"> <ng-container *ngIf="displayFullName()"> {{nameForm?.creditName?.value}} </ng-container> <ng-container *ngIf="displayPublishedName()"> {{nameForm?.givenNames?.value}} {{nameForm?.familyName?.value}} </ng-container> </div> <div class="my-profile"> View my ORCID record </div> </div> </a> <div class="division"></div> <div class="top-menu-items"> <a href="{{getBaseUri()}}/inbox" class="top-menu-item"> <img src="{{assetsPath + '/img/svg/baseline-inbox-24px.svg'}}"> {{'Inbox' }} <span *ngIf="getUnreadCount > 0">({{getUnreadCount}})</span> </a> <a class="top-menu-item" href="{{getBaseUri()}}/account"> <img src="{{assetsPath + '/img/svg/baseline-settings-20px.svg'}}"> {{'Account Settings' }} </a> <a class="top-menu-item" *ngIf="(userInfo['IN_DELEGATION_MODE'] == 'false' || userInfo['DELEGATED_BY_ADMIN'] == 'true') && userInfo['MEMBER_MENU']=='true'" href="{{getBaseUri()}}/group/developer-tools"> <img src="{{assetsPath + '/img/svg/baseline-code-24px.svg'}}"> {{'Developer tools' }} </a> <a class="top-menu-item" *ngIf="(userInfo['IN_DELEGATION_MODE'] == 'false' || userInfo['DELEGATED_BY_ADMIN'] == 'true') && userInfo['MEMBER_MENU']!='true'" href="{{getBaseUri()}}/developer-tools"> <img src="{{assetsPath + '/img/svg/baseline-code-24px.svg'}}"> {{'Developer tools' }} </a> <a class="top-menu-item" *ngIf="userInfo['SELF_SERVICE_MENU']" href="{{getBaseUri()}}/self-service"> <img src="{{assetsPath + '/img/svg/baseline-build-24px.svg'}}"> {{'Member Tools' }} </a> <a class="top-menu-item" *ngIf="userInfo['ADMIN_MENU']" href="{{getBaseUri()}}/manage-members" > <img src="{{assetsPath + '/img/svg/baseline-group-24px.svg'}}"> {{'Manage members' }} </a> <a class="top-menu-item" *ngIf="userInfo['ADMIN_MENU']" href="{{getBaseUri()}}/admin-actions"> <img src="{{assetsPath + '/img/svg/baseline-verified_user-24px.svg'}}"> {{'Admin page'}} </a> <a class="top-menu-item" href="{{getBaseUri()}}/signout"> <img src="{{assetsPath + '/img/svg/baseline-exit_to_app-24px.svg'}}"> {{'Sign out' }} </a> </div> </script><script type="text/ng-template" id="header2-ng2-template"> <div class="new-menu header2" > <div *ngIf="!isOauth && mobileMenu"> <div class="container"> <div class="logo-search-bar"> <div class="logo" aria-label="ORCID logo" role="banner" aria-label="orcid logo"> <a href="{{aboutUri}}"><img *ngIf="assetsPath != null" src="{{assetsPath + '/img/orcid-logo.svg'}}" alt="ORCID logo" /></a> <div class="slogan">Connecting Research and Researchers</div> <div class="menu-control"> <user-menu *ngIf="isMobile && !openMobileMenu"></user-menu> <language-ng2 *ngIf="openMobileMenu"></language-ng2> <span (click)="toggleMenu()" role="navigation" tabindex="0" aria-label="main menu" [hidden]="!openMobileMenu" style="height: 35px" class="close" alt="close menu"> </span> <img (click)="toggleMenu()" role="navigation" tabindex="0" aria-label="main menu" [hidden]="openMobileMenu" style="height: 35px" src="{{assetsPath + '/img/glyphicon-menu.svg'}}" alt="open menu"/> </div> </div> <div class="search" > <div class="dropdown-menus-container"> <user-menu *ngIf="!isMobile"></user-menu> <language-ng2 *ngIf="!isMobile"></language-ng2> </div> <div class="form-group " role="presentation"> <div class="search-container" role="search"> <div class="input-group" role="presentation"> <input (keyup.enter)="searchSubmit()" [(ngModel)]="headerSearch.searchInput" aria-label="search" class="form-control" name="search" type="text" placeholder="Search"/> <div tabindex="0" role="button" (keyup.enter)="searchSubmit()" (click)="searchSubmit()" aria-label="Search" aria-label="Search" class="input-group-addon" role="presentation"> <span class="glyphicon glyphicon-search" ></span> </div> </div> </div> </div> </div> </div> </div> <div [ngClass]="{'mobile': isMobile}" class="menu-bar" [hidden]="!openMobileMenu && isMobile" (mouseleave)="mouseLeave()" role="navigation" aria-label="main menu"> <!-- Desktop / Tablet menu --> <div class="container container-menu"> <ul class="menu" resize role="presentation" role="menu"> <!-- ABOUT --> <li role="presentation" class="expanded" > <a href="{{aboutUriTemporal}}/what-is-orcid" role="menuitem" >{{'ABOUT '| uppercase }}</a> </li> <!-- FOR RESEARCHERS --> <li role="presentation" class="expanded"> <a href="{{aboutUriTemporal}}/help-getting-started-with-your-orcid/" role="menuitem" >{{'FOR RESEARCHERS '| uppercase }} </a> </li> <!-- Membership --> <li role="presentation" class="expanded"> <a href="{{aboutUriTemporal}}/about-membership" role="menuitem" >{{'MEMBERSHIP '| uppercase }} </a> </li> <!-- DOCUMENTATION --> <li role="presentation" class="expanded"> <a href="{{aboutUriTemporal}}/documentation/" role="menuitem" >{{'DOCUMENTATION '| uppercase }} </a> </li> <!-- RESOURCES --> <li role="presentation" class="expanded"> <a href="{{aboutUriTemporal}}/resources/" role="menuitem" >{{'RESOURCES '| uppercase }} </a> </li> <!-- NEWS & EVENTS --> <li role="presentation" class="expanded"> <a href="{{aboutUriTemporal}}" role="menuitem" >{{'NEWS & EVENTS '| uppercase }} </a> </li> <li role="presentation" class="last leaf " [ngClass]="{'hover': mobileMenu.SIGNIN}" (mouseenter)="menuHandler('SIGNIN', $event)" (focus)="menuHandler('SIGNIN', $event)" (click)="menuHandler('SIGNIN', $event)"> <div class="mobile-menu-sign-in"> <a class="mobile-menu-sign-in-url" *ngIf="!userInfo['REAL_USER_ORCID']" href="{{getBaseUri()}}/signin" role="menuitem">{{'Sign in'| uppercase }}/{{'Register'| uppercase }}</a> <a class="mobile-menu-sign-in-url" *ngIf="userInfo['REAL_USER_ORCID']" href="{{getBaseUri()}}/signout" role="menuitem">{{'Sign out '| uppercase }}</a> </div> </li> </ul> </div> </div> </div> </div> </script> <header2-ng2></header2-ng2> <div class="container" style="min-height: calc(100% - 118px);"> <div id="main" role="main" aria-label="main" class="main header2-main"> <script type="text/ng-template" id="maintenance-message-ng2-template"> <div *ngIf="maintenanceMessage!='' && visible" class="row"> <div class="maintenance-header"> <p [innerHtml]="maintenanceMessage"></p> </div> </div> </script> <maintenance-ng2></maintenance-ng2> <div class="row public-profile"> <div class="col-md-3 lhs left-aside"> <div class="workspace-left workspace-profile"> <script type="text/ng-template" id="id-banner-ng2-template"> <div [ngClass]="(userInfo['IN_DELEGATION_MODE'] == 'true') ? 'id-banner delegation-mode' : 'id-banner'"> <span *ngIf="userInfo['IN_DELEGATION_MODE'] == 'true'" class="delegation-mode-warning">managing record</span> <!-- Name --> <h2 class="full-name"> {{displayName}} </h2> <div class="oid"> <div class="id-banner-header"> <span>ORCID iD</span> </div> <div class="orcid-id-container"> <div class="orcid-id-options"> <div class="orcid-id-info"> <span class="mini-orcid-icon-16"></span> <span id="orcid-id" class="orcid-id-https">{{getBaseUri()}}/{{userInfo['EFFECTIVE_USER_ORCID']}}</span> </div> </div> </div> </div> <switch-user-ng2></switch-user-ng2> </div> </script> <script type="text/ng-template" id="name-ng2-template"> <!-- Name --> <div class="workspace-section" id="names-section"> <div *ngIf="!showEdit" (click)="toggleEdit()"> <div class="row"> <div class="col-md-12"> <div class="workspace-section-title"> <div class="edit-name edit-option popover-help-container" *ngIf="!showEdit" id="open-edit-names"> <div class="glyphicon glyphicon-pencil" aria-label="Edit"> </div> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Edit my version</span> </div> </div> </div> </div> <h2 class="full-name" *ngIf="nameForm && !(isPublicPage)"> <span *ngIf="displayFullName()">{{nameForm?.creditName?.value}} </span> <span *ngIf="displayPublishedName()"> {{nameForm?.givenNames?.value}} <span *ngIf="nameForm?.familyName?.value != null" >{{nameForm?.familyName?.value}}</span> </span> </h2> </div> </div> </div> <!-- Edit Mode --> <div class="names-edit" *ngIf="showEdit == true"> <label for="firstName">First Name</label> <input type="text" [(ngModel)]="nameForm.givenNames.value" (keydown)="setNameFormEnter($event)" class="full-width-input" /> <span class="orcid-error" *ngIf="nameForm?.givenNames?.errors?.length > 0"> <div *ngFor='let error of nameForm.givenNames.errors'>{{error}}</div> </span> <label for="lastName">Last Name</label> <input type="text" [(ngModel)]="nameForm.familyName.value" (keydown)="setNameFormEnter($event)" class="full-width-input" /> <span class="orcid-error" *ngIf="nameForm?.familyName?.errors?.length > 0"> <div *ngFor='let error of nameForm.familyName.errors'>{{error}}</div> </span> <label for="creditName">Published Name</label> <input type="text" [(ngModel)]="nameForm.creditName.value" (keydown)="setNameFormEnter($event)" class="full-width-input" /> <span class="orcid-error" *ngIf="nameForm?.creditName?.errors?.length > 0"> <div *ngFor='let error of nameForm.creditName.errors'>{{error}}</div> </span> <div> <privacy-toggle-ng2 [dataPrivacyObj]="nameForm" (privacyUpdate)="privacyChange($event)" elementId="name-privacy-toggle" privacyNodeName="visibility" ></privacy-toggle-ng2> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006973853"><i class="glyphicon glyphicon-question-sign help-glyphicon" style="width: 14px;"></i></a> </div> <ul class="workspace-section-toolbar clearfix"> <li class="pull-right"> <button class="btn btn-primary" (click)="setNameForm( true )">Save changes</button> </li> <li class="pull-right"> <a class="cancel-option" (click)="cancel()">Cancel</a> </li> </ul> </div> </div> </script><script type="text/ng-template" id="switch-user-ng2-template"> <div class="dropdown id-banner-container" *ngIf="(me || unfilteredLength > 0)"> <a (click)="openMenu($event)" class="id-banner-switch">Switch account<span class="glyphicon glyphicon-chevron-right"></span></a> <ul class="dropdown-menu id-banner-dropdown" *ngIf="isDroppedDown"> <li> <input id="delegators-search" type="text" [(ngModel)]="searchTerm" (change)="search()" placeholder="Search by ORCID iD or name"/> </li> <li *ngIf="me && !searchTerm"> <a (click)="switchUser(me.giverOrcid.path)"> <ul> <li>Switch back to me</li> <li>{{me.giverOrcid.uri}}</li> </ul> </a> </li> <li *ngFor="let delegationDetails of delegators | orderBy:'giverName.value' | slice:0:10"> <a (click)="switchUser(delegationDetails.giverOrcid.path)"> <ul> <li>{{delegationDetails.giverName.value}}</li> <li>{{delegationDetails.giverOrcid.uri}}</li> </ul> </a> </li> <li *ngIf="delegators.length > 10"><a href="{{getBaseUri()}}/delegators?delegates">More...</a></li> </ul> </div> </script> <id-banner-ng2> </id-banner-ng2> <script type="text/ng-template" id="print-record-ng2-template"> <div class="print-orcid-record" *ngIf="!hidePrint"> <div *ngIf="isPublicPage"> <a id="printRecord" (click)="printRecord()"> <span class="glyphicon glyphicon-print"></span> Print view</a> <div class="popover-help-container"> <i class="glyphicon glyphicon-question-sign"></i> <div id="print-help" class="popover bottom"> <div class="arrow"></div> <div class="popover-content"> <p>Open a version of this ORCID record formatted for printing.</p> </div> </div> </div> </div> <div *ngIf="!isPublicPage"> <a id="printRecord" (click)="printRecord()"> <span class="glyphicon glyphicon-print"></span> Public record print view</a> <div class="popover-help-container"> <i class="glyphicon glyphicon-question-sign"></i> <div id="print-help" class="popover bottom"> <div class="arrow"></div> <div class="popover-content"> <p>Open a version of your ORCID record formatted for printing. Only data that is visible to everyone will be printed.</p> </div> </div> </div> </div> </div> </script> <print-record-ng2></print-record-ng2> <!--Person sections--> <script type="text/ng-template" id="public-record-ng2-template"> <ng-container *ngIf="userInfo && userInfo['IS_LOCKED'] === 'false' && personData"> <!-- Other Names --> <div *ngIf="personData.publicGroupedOtherNames && objectKeys(personData.publicGroupedOtherNames).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Also known as</span></li> <li class="right"> <span aria-label="toggle details" (click)="toggleSourcesDisplay('other-names')" class="right toggle" (mouseenter)="showPopover('other-names')" (mouseleave)="hidePopover('other-names')"> <i [ngClass]="(showSources['other-names'] || showSources['other-names'] == 'null')? 'glyphicons collapse_top relative' : 'glyphicons expand relative'"></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['other-names']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['other-names'] == false || showSources['other-names'] == null">Show details</span> <span *ngIf="showSources['other-names']">Hide details</span> </div> </div> </span> </li> </ul> </div> <div id="public-other-names-div" class="public-content"> <ng-container *ngFor="let otherName of objectKeys(personData.publicGroupedOtherNames); let lastName = last;"> <span name="other-name">{{otherName}}</span> <span *ngIf="!lastName && (showSources['other-names'] == false || showSources['other-names'] == null)">, </span> <div *ngIf="showSources['other-names']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngFor="let otherNameSource of personData.publicGroupedOtherNames[otherName]; let lastSource = last;"> <ng-container> <ng-container *ngIf="getOboAssertionDisplayName(otherNameSource.source)"> {{getOboAssertionDisplayName(otherNameSource.source)}} <i>via</i> </ng-container> {{otherNameSource?.source?.sourceName?.content || otherNameSource?.source?.sourceOrcid?.path}} </ng-container> <ng-container *ngIf="otherNameSource.createdDate"> {{otherNameSource.createdDate.value | ajaxTickDateToISO8601 }} </ng-container> <ng-container *ngIf="!lastSource">, </ng-container> </ng-container> </p> </div> </ng-container> </div> </div> <!-- Websites --> <div *ngIf="personData && personData.publicGroupedResearcherUrls && objectKeys(personData.publicGroupedResearcherUrls).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Websites &amp; Social Links</span></li> <li class="right"> <span aria-label="toggle details" (click)="toggleSourcesDisplay('websites')" class="right toggle" (mouseenter)="showPopover('websites')" (mouseleave)="hidePopover('websites')"> <i [ngClass]="(showSources['websites'] || showSources['websites'] == 'null')? 'glyphicons collapse_top' : 'glyphicons expand'" ></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['websites']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['websites'] == false || showSources['websites'] == null">Show details</span> <span *ngIf="showSources['websites']">Hide details</span> </div> </div> </span> </li> </ul> <div id="public-researcher-urls-div" class="public-content"> <ng-container *ngFor="let url of objectKeys(personData.publicGroupedResearcherUrls); let lastUrl = last;"> <a href="{{personData.publicGroupedResearcherUrls[url].content || url}}" target="{{personData.publicGroupedResearcherUrls[url].urlName || url}}" rel="me nofollow noopener noreferrer"> {{personData.publicGroupedResearcherUrls[url][0].urlName || url}} </a> <div *ngIf="showSources['websites']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngFor="let urlSource of personData.publicGroupedResearcherUrls[url]; let lastSource = last;"> <ng-container> <ng-container *ngIf="getOboAssertionDisplayName(urlSource.source)"> {{getOboAssertionDisplayName(urlSource.source)}} <i>via</i> </ng-container> {{urlSource?.source?.sourceName?.content || urlSource?.source?.sourceOrcid?.path}} </ng-container> <ng-container *ngIf="urlSource.createdDate"> {{urlSource.createdDate.value | ajaxTickDateToISO8601 }} </ng-container> <ng-container *ngIf="!lastSource">, </ng-container> </ng-container> </p> </div> <br *ngIf="!lastUrl" /> </ng-container> </div> </div> </div> <!-- Countries --> <div *ngIf="personData.publicGroupedAddresses && objectKeys(personData.publicGroupedAddresses).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Country</span></li> <li class="right"> <span aria-label="toggle details" (click)="toggleSourcesDisplay('countries')" class="right toggle" (mouseenter)="showPopover('countries')" (mouseleave)="hidePopover('countries')"> <i [ngClass]="(showSources['countries'] || showSources['countries'] == 'null')? 'glyphicons collapse_top' : 'glyphicons expand'"></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['countries']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['countries'] == false || showSources['countries'] == null">Show details</span> <span *ngIf="showSources['countries']">Hide details</span> </div> </div> </span> </li> </ul> <div id="public-country-div" class="public-content"> <ng-container *ngFor="let address of objectKeys(personData.publicGroupedAddresses); let lastAddress = last;"> <span name="country">{{personData.countryNames[address]}}</span> <span *ngIf="!lastAddress && (showSources['countries'] == false || showSources['countries'] == null)">, </span> <div *ngIf="showSources['countries']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngFor="let addressSource of personData.publicGroupedAddresses[address]; let lastSource = last;"> <ng-container> <ng-container *ngIf="getOboAssertionDisplayName(addressSource.source)"> {{getOboAssertionDisplayName(addressSource.source)}} <i>via</i> </ng-container> {{addressSource?.source?.sourceName?.content || addressSource?.source?.sourceOrcid?.path}} </ng-container> <ng-container *ngIf="addressSource.createdDate"> {{addressSource.createdDate.value | ajaxTickDateToISO8601 }} </ng-container> <ng-container *ngIf="!lastSource">, </ng-container> </ng-container> </p> </div> </ng-container> </div> </div> </div> <!-- Keywords --> <div *ngIf="personData.publicGroupedKeywords && objectKeys(personData.publicGroupedKeywords).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Keywords</span></li> <li class="right"> <span aria-label="toggle details" (click)="toggleSourcesDisplay('keywords')" class="right toggle" (mouseenter)="showPopover('keywords')" (mouseleave)="hidePopover('keywords')"> <i [ngClass]="(showSources['keywords'] || showSources['keywords'] == 'null')? 'glyphicons collapse_top' : 'glyphicons expand'"></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['keywords']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['keywords'] == false || showSources['keywords'] == null">Show details</span> <span *ngIf="showSources['keywords']">Hide details</span> </div> </div> </span> </li> </ul> <div id="public-keywords-div" class="public-content"> <ng-container *ngFor="let keyword of objectKeys(personData.publicGroupedKeywords); let lastkeyword = last;"> <span name="keywords">{{keyword}}</span> <span *ngIf="!lastkeyword && (showSources['keywords'] == false || showSources['keywords'] == null)">, </span> <div *ngIf="showSources['keywords']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngFor="let keywordSource of personData.publicGroupedKeywords[keyword]; let lastSource = last;"> <ng-container> <ng-container *ngIf="getOboAssertionDisplayName(keywordSource.source)"> {{getOboAssertionDisplayName(keywordSource.source)}} <i>via</i> </ng-container> {{keywordSource?.source?.sourceName?.content || keywordSource?.source?.sourceOrcid?.path}} </ng-container> <ng-container *ngIf="keywordSource.createdDate"> {{keywordSource.createdDate.value | ajaxTickDateToISO8601 }} </ng-container> <ng-container *ngIf="!lastSource">, </ng-container> </ng-container> </p> </div> </ng-container> </div> </div> </div> <!-- External Identifiers --> <div *ngIf="personData.publicGroupedPersonExternalIdentifiers && objectKeys(personData.publicGroupedPersonExternalIdentifiers).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Other IDs</span></li> <li class="right"> <span aria-label="toggle details" (click)="toggleSourcesDisplay('external-identifiers')" class="right toggle" (mouseenter)="showPopover('external-identifiers')" (mouseleave)="hidePopover('external-identifiers')"> <i [ngClass]="(showSources['external-identifiers'] || showSources['external-identifiers'] == 'null')? 'glyphicons collapse_top' : 'glyphicons expand'"></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['external-identifiers']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['external-identifiers'] == false || showSources['external-identifiers'] == null">Show details</span> <span *ngIf="showSources['external-identifiers']">Hide details</span> </div> </div> </span> </li> </ul> <div id="public-external-identifiers-div" class="public-content column"> <ng-container *ngFor="let external of objectKeys(personData.publicGroupedPersonExternalIdentifiers); let lastExternal = last; let firstExternal = first;"> <ng-container *ngFor="let externalIdentifier of personData.publicGroupedPersonExternalIdentifiers[external]; let firstExternalIdentifier = first;"> <ng-container *ngIf="firstExternalIdentifier"> <a href="{{externalIdentifier.url.value}}" rel="noopener noreferrer" target="externalIdentifier.value"> {{externalIdentifier.type}}: {{externalIdentifier.value}} </a> </ng-container> <div *ngIf="showSources['external-identifiers']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngIf="getOboAssertionDisplayName(externalIdentifier.source)"> {{getOboAssertionDisplayName(externalIdentifier.source)}} <i>via</i> </ng-container> {{externalIdentifier?.source?.sourceName?.content }} {{externalIdentifier.createdDate.value | ajaxTickDateToISO8601 }} </p> </div> </ng-container> </ng-container> </div> </div> </div> <!-- Email --> <div *ngIf="personData.publicGroupedEmails && objectKeys(personData.publicGroupedEmails).length > 0" class="workspace-section"> <div class="workspace-section-header"> <ul class="inline-list visible workspace-section-heading"> <li><span class="workspace-section-title">Email</span></li> <li class="right"> <span (click)="toggleSourcesDisplay('emails')" class="right toggle" (mouseenter)="showPopover('emails')" (mouseleave)="hidePopover('emails')"> <i [ngClass]="(showSources['emails'] || showSources['emails'] == 'null')? 'glyphicons collapse_top' : 'glyphicons expand'"></i> <div class="popover top" [ngClass]="{'block' : popoverShowing['emails']}"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="showSources['emails'] == false || showSources['emails'] == null">Show details</span> <span *ngIf="showSources['emails']">Hide details</span> </div> </div> </span> </li> </ul> <div class="public-content" id="public-emails-div"> <ng-container *ngFor="let email of objectKeys(personData.publicGroupedEmails); let lastEmail = last;"> <div name="email">{{email}}</div> <div *ngIf="showSources['emails']" class="source-line separator"> <p><b>Sources:</b><br /> <ng-container *ngFor="let emailSource of personData.publicGroupedEmails[email]; let lastSource = last;"> <ng-container> {{emailSource?.source?.sourceName?.content || emailSource?.source?.sourceOrcid?.path}} </ng-container> <ng-container *ngIf="emailSource.createdDate"> {{emailSource.createdDate.value | ajaxTickDateToISO8601 }} </ng-container> <ng-container *ngIf="!lastSource">, </ng-container> </ng-container> </p> </div> </ng-container> </div> </div> </div> </ng-container> </script> <public-record-ng2></public-record-ng2> </div> </div> <div class="col-md-9 right-aside"> <div class="workspace-right"> <div class="workspace-inner-public workspace-public workspace-accordion"> <script type="text/ng-template" id="bio-ng2-template"> <ng-container *ngIf="userInfo && userInfo.IS_LOCKED === 'true'"> <div class="alert alert-error readme"> <p><b id="error_locked">This ORCID Record is locked</b></p> </div> </ng-container> <ng-container *ngIf="userInfo && !userInfo.PRIMARY_RECORD && userInfo.IS_LOCKED !== 'true' && userInfo.IS_DEACTIVATED === 'true'"> <p class="margin-top-box"><b>No public information available.</b></p> </ng-container> <ng-container *ngIf="userInfo && userInfo.PRIMARY_RECORD && userInfo.IS_LOCKED !== 'true' && userInfo.IS_DEACTIVATED === 'true' "> <div class="alert alert-error readme"> <p><b>This account has been deprecated, please see account&nbsp;<a href="{{baseUrl + '/' + userInfo.PRIMARY_RECORD}}">{{baseUrl + '/' + userInfo.PRIMARY_RECORD}}</a>&nbsp;for the latest information</b></p> </div> </ng-container> <ng-container *ngIf="userInfo && userInfo.IS_LOCKED !== 'true' && userInfo.IS_DEACTIVATED !== 'true'"> <div *ngIf="bio" class="workspace-accordion-content"> <div class="row bottomBuffer"> <div class="col-md-12 col-sm-12 col-xs-12"> <h3 class="workspace-title">Biography</h3> </div> </div> <div class="row bottomBuffer"> <div class="col-md-12 col-sm-12 col-xs-12"> <div class="bio-content">{{bio}}</div> </div> </div> </div> </ng-container> </script> <bio-ng2></bio-ng2> <script type="text/ng-template" id="affiliation-ng2-template"> <div [hidden]="publicView == 'true' && recordLocked"> <!-- EMPLOYMENT --> <div id="workspace-employment" class="workspace-accordion-item workspace-accordion-active" [hidden]="publicView == 'true' && employments.length < 1" role="group" aria-labelledby="affiliationType.employment" aria-describedby="tooltip-helpPopoverEmployment"> <div class="workspace-accordion-header clearfix" role="presentation"> <div class="row" role="banner"> <div class="col-md-6 col-sm-6 col-xs-12 affiliation-heading" role="presentation"> <a (click)="workspaceSrvc.toggleEmployment()" class="toggle-text"> <i role="presentation" class="glyphicon-chevron-down glyphicon x075" [ngClass]="{'glyphicon-chevron-right':workspaceSrvc.displayEmployment==false}"></i> <h2 id="affiliationType.employment" >Employment (<span>{{employments.length}}</span>)</h2> </a> <div role="presentation" *ngIf="!isPublicPage" class="popover-help-container"> <i class="glyphicon glyphicon-question-sign" role="presentation"></i> <div id="employment-help" class="popover bottom" role="presentation"> <div class="arrow" role="presentation"></div> <div class="popover-content" role="tooltip" id="tooltip-helpPopoverEmployment"> <p><strong>Employment</strong> is a formal employment relationship with an organization, e.g. staff, intern, researcher, contractor. Employment can be paid or unpaid.<br> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897694" target="manage_affiliations_settings.helpPopoverEmployment">Learn more</a></p> </div> </div> </div> </div> <div class="col-md-6 col-sm-6 col-xs-12 action-button-bar" *ngIf="workspaceSrvc.displayEmployment" role="presentation"> <div class="menu-container" role="presentation"> <ul class="toggle-menu" role="menu" > <li> <span id="manual_orcid_record_contents.sort" class="glyphicon glyphicon-sort" role="presentation"></span> Sort <ul class="menu-options sort"> <li [ngClass]="{'checked':sortDisplayKeyEmployments=='startDate'}" role="menu-item"> <a (click)="sort('employment', 'startDate', true);" class="action-option manage-button"> Start <span *ngIf="sortDisplayKeyEmployments=='startDate' && sortAscEmployments==false" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortDisplayKeyEmployments=='startDate'}"></span> <span *ngIf="sortDisplayKeyEmployments=='startDate' && sortAscEmployments==true" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortDisplayKeyEmployments=='startDate'}"></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyEmployments=='endDate'}" role="menu-item"> <a (click)="sort('employment', 'endDate', true);" class="action-option manage-button"> End <span *ngIf="sortDisplayKeyEmployments=='endDate' && sortAscEmployments==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyEmployments=='endDate'}" ></span> <span *ngIf="sortDisplayKeyEmployments=='endDate' && sortAscEmployments==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyEmployments=='endDate'}" ></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyEmployments=='title'}" role="menu-item"> <a (click)="sort('employment', 'title', true);" class="action-option manage-button"> Title <span *ngIf="sortDisplayKeyEmployments=='title' && sortAscEmployments==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyEmployments=='title'}" ></span> <span *ngIf="sortDisplayKeyEmployments=='title' && sortAscEmployments==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyEmployments=='title'}" ></span> </a> </li> </ul> </li> </ul> </div> <ul *ngIf="!isPublicPage" class="workspace-bar-menu" role="presentation"> <li class="hidden-xs" role="presentation"> <div class="menu-container" id="add-employment-container" role="presentation"> <ul class="toggle-menu" role="menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('employment')"> <span class="glyphicon glyphicon-plus"></span> Add employment </li> </ul> </div> </li> <li role="presentation" class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a role="menu-item" class="action-option manage-button two-options" (click)="addAffiliationModal('employment')"> <span class="glyphicon glyphicon-plus"></span> Add employment </a> </li> </ul> </div> </div> </div> <div *ngIf="workspaceSrvc.displayEmployment" class="workspace-accordion-content"> <div id="employments-empty" *ngIf="!employments?.length"> <strong> Employment lists organizations where you have been professionally affiliated. <a role="button" (click)="addAffiliationModal('employment')">Add employer.</a> </strong> </div> <ul id="employments-list" *ngIf="employments?.length > 0" class="workspace-affiliations bottom-margin-medium" id="body-employment-list"> <li class="bottom-margin-small workspace-border-box card" *ngFor="let group of (employments | orderByAffiliations: sortKeyEmployments:sortAscEmployments)" [attr.employment-put-code]="group?.defaultAffiliation?.putCode.value"> <div class="work-list-container"> <ul class="sources-edit-list"> <!--Edit sources--> <li *ngIf="editSources[group?.activePutCode]" class="source-header" [ngClass]="{'source-active' : editSources[group?.activePutCode] == true}"> <div class="sources-header"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-6"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 hidden-xs"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-6 right padding-left-fix"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <!--Show/hide details--> <li *ngIf="orgIdsFeatureEnabled" class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.activePutCode] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!--End edit sources--> <ng-container *ngFor="let affiliation of group.affiliations; let index = index; let first = first; let last = last;"> <li *ngIf="group.activePutCode == affiliation.putCode.value || editSources[group.activePutCode] == true"> <div class="row" *ngIf="group.activePutCode == affiliation.putCode?.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <h3 class="workspace-title"> <span>{{affiliation?.affiliationName?.value}}</span>: <span>{{affiliation?.city.value}}</span><span *ngIf="affiliation?.region?.value">, </span><span>{{affiliation?.region?.value}}</span><span *ngIf="affiliation?.countryForDisplay">, </span><span>{{affiliation?.countryForDisplay}}</span> </h3> <div class="info-detail"> <div class="info-date"> <span class="affiliation-date" *ngIf="affiliation?.startDate"> <span *ngIf="affiliation?.startDate.year">{{affiliation?.startDate.year}}</span><span *ngIf="affiliation?.startDate.month">-{{affiliation?.startDate.month}}</span><span *ngIf="affiliation?.startDate.day">-{{affiliation?.startDate.day}}</span> <span *ngIf="affiliation?.startDate && affiliation?.startDate.year && affiliation?.endDate && affiliation?.endDate.year">&nbsp;to&nbsp;</span> <span *ngIf="(affiliation?.startDate && affiliation?.startDate.year) && !(affiliation?.endDate && affiliation?.endDate.year) && affiliation?.affiliationType?.value != 'distinction'">&nbsp;to&nbsp;present</span> <span *ngIf="affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> </span> <span class="affiliation-date" *ngIf="!affiliation?.startDate && affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> <span *ngIf="(affiliation?.startDate || affiliation?.endDate) && (affiliation?.roleTitle?.value || affiliation?.departmentName?.value)"> | </span> <span *ngIf="affiliation?.roleTitle?.value">{{affiliation?.roleTitle?.value}}</span> <span *ngIf="affiliation?.departmentName?.value"> <span *ngIf="affiliation?.roleTitle?.value && !printView">&nbsp;</span>(<span>{{affiliation?.departmentName.value}}</span>) </span> </div><!--info-date--> </div><!--info-detail--> <div class="info-detail" *ngIf="affiliation?.affiliationType?.value"> <span>{{affiliation?.affiliationType?.value | titlecase | dashToSpace}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.activePutCode]"> <!--Show details toggle--> <li class="works-details" *ngIf="!editSources[group.activePutCode]"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(z == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !affiliationService.consistentVis(group) && !editSources[group.activePutCode]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div><!--row--> <!--Identifiers--> <div class="row" *ngIf="group.activePutCode == affiliation.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details clearfix"> <li class="url-work clearfix"> <ul class="id-details clearfix"> <li *ngFor='let extID of affiliation?.affiliationExternalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["-relationship.value", "type.value"]' class="url-popover"> <span *ngIf="affiliation?.affiliationExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="affiliation.putCode.value+i" [activityType]="'affiliation'"></ext-id-popover-ng2> </span> </li> </ul> </li> </ul> </div> </div><!--Identifiers--> <!--More info--> <div class="more-info" *ngIf="moreInfo[group?.activePutCode] && group.activePutCode == affiliation.putCode.value"> <div id="ajax-loader" *ngIf="affiliationService.details[affiliation.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="affiliationService.details[affiliation.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <!--Org id--> <div class="org-ids" *ngIf="affiliation?.orgDisambiguatedId?.value"> <div class="col-md-12"> <strong>Organization identifiers</strong><br> <org-identifier-popover-ng2 [value]="affiliation?.disambiguatedAffiliationSourceId?.value" [putCode]="affiliation?.putCode?.value" [type]="affiliation?.disambiguationSource?.value"></org-identifier-popover-ng2> </div> </div><!--org-ids--> <!--URL--> <div class="col-md-6" *ngIf="affiliationService.details[affiliation.putCode.value]?.url?.value"> <div class="bottomBuffer"> <strong>URL</strong><br> <a href="{{affiliationService.details[affiliation.putCode.value]?.url?.value}}" target="affiliation.url.value" rel="noopener noreferrer">{{affiliationService.details[affiliation.putCode.value]?.url?.value}}</a> </div> </div> </div><!--row--> <!--Created date--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{affiliation?.createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{affiliation?.lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Created date--> </div> <!--content--> </div><!--More info--> <!--Source line--> <div class="row source-line" *ngIf="group.activePutCode == affiliation.putCode.value"> <!--Edit sources--> <!--Source name--> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.activePutCode]"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <!--Preferred source--> <div class="col-md-3 col-sm-3 col-xs-10" *ngIf="editSources[group.activePutCode]"> <div *ngIf="editSources[group.activePutCode]"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value)" *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <!--Edit/delete sources--> <div class="col-md-2 col-sm-2 trash-source" *ngIf="editSources[group.activePutCode]"> <div> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)" title="Delete {{affiliation?.affiliationName?.value}}"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!--Edit sources--> </div> <div *ngIf="group.activePutCode != affiliation.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="swapSources(group, affiliation.putCode.value)"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </a> </div> <div class="col-md-3 col-sm-3 col-xs-10"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value); " *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <!--Action buttons--> <div class="col-md-2 col-sm-2 col-xs-2 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash" title="Delete {{affiliation?.affiliationName?.value}}"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <div class="row source-line" *ngIf="!editSources[group.activePutCode]"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-9"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span> <span *ngIf="group?.affiliations?.length != 1"> (</span><a (click)="showSources(group, $event)" *ngIf="group?.affiliations?.length != 1">of {{group.affiliations.length}}</a><span *ngIf="group?.affiliations?.length != 1">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-3" *ngIf="group.activePutCode == affiliation.putCode.value"> <ul *ngIf="!isPublicPage" class="sources-options" > <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(editSources[group.activePutCode] || group?.affiliations?.length == 1)"> <div class="popover-help-container"> <a (click)="showSources(group,$event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group?.affiliations?.length == 1"> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> </li> </ng-container> </ul> </div> </li> </ul> </div> </div> <!-- EDUCATION AND QUALIFICATION --> <div id="workspace-education" class="workspace-accordion-item workspace-accordion-active" [hidden]="publicView == 'true' && educationsAndQualifications.length < 1" role="group" aria-labelledby="affiliationType.education_qualification" aria-describedby="tooltip-helpPopoverEducationAndQualification"> <div class="workspace-accordion-header clearfix" role="presentation"> <div class="row" role="banner"> <div class="col-md-6 col-sm-6 col-xs-12 affiliation-heading" role="presentation"> <a name='workspace-educations-qualifications'></a> <a (click)="workspaceSrvc.toggleEducation();workspaceSrvc.toggleEducationAndQualification();" class="toggle-text"> <i class="glyphicon-chevron-down glyphicon x075" [ngClass]="{ 'glyphicon-chevron-right': displayEducationAndQualification()==false }"></i> <h2 id="affiliationType.education_qualification">Education and qualifications (<span>{{educationsAndQualifications.length}}</span>)</h2> </a> <div *ngIf="!isPublicPage" class="popover-help-container" role="presentation"> <i class="glyphicon glyphicon-question-sign" role="presentation"></i> <div id="education-qualification-help" class="popover bottom" role="presentation"> <div class="arrow" role="presentation"></div> <div class="popover-content" id="tooltip-helpPopoverEducationAndQualification"> <p><strong>Education</strong> is participation in an academic higher education program to receive an undergraduate, graduate, or other degree.<br> <strong>Qualification</strong> is participation in a professional or vocational accreditation, certification, or training program. Both may be in progress or unfinished.<br> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006973933" target="manage_affiliations_settings.helpPopoverEducationAndQualification">Learn more</a></p> </div> </div> </div> </div> <div class="col-md-6 col-sm-6 col-xs-12 action-button-bar" *ngIf="displayEducationAndQualification()" role="presentation"> <div class="menu-container" role="presentation"> <ul class="toggle-menu" role="menu"> <li> <span class="glyphicon glyphicon-sort"></span> Sort <ul class="menu-options sort"> <li [ngClass]="{'checked':sortDisplayKeyEducations=='startDate'}"> <a (click)="sort('education', 'startDate', true);" class="action-option manage-button"> Start <span *ngIf="sortDisplayKeyEducations=='startDate' && sortAscEducations==false" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortDisplayKeyEducations=='startDate'}"></span> <span *ngIf="sortDisplayKeyEducations=='startDate' && sortAscEducations==true" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortDisplayKeyEducations=='startDate'}"></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyEducations=='endDate'}"> <a (click)="sort('education', 'endDate', true);" class="action-option manage-button"> End <span *ngIf="sortDisplayKeyEducations=='endDate' && sortAscEducations==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyEducations=='endDate'}" ></span> <span *ngIf="sortDisplayKeyEducations=='endDate' && sortAscEducations==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyEducations=='endDate'}" ></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyEducations=='title'}"> <a (click)="sort('education', 'title', true);" class="action-option manage-button"> Title <span *ngIf="sortDisplayKeyEducations=='title' && sortAscEducations==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyEducations=='title'}" ></span> <span *ngIf="sortDisplayKeyEducations=='title' && sortAscEducations==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyEducations=='title'}" ></span> </a> </li> </ul> </li> </ul> </div> <ul *ngIf="!isPublicPage" class="workspace-bar-menu" role="menu"> <li class="hidden-xs"> <div class="menu-container" id="add-education-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('education')"> <span class="glyphicon glyphicon-plus"></span> Add education </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('education')"> <span class="glyphicon glyphicon-plus"></span> Add education </a> </li> </ul> <ul *ngIf="!isPublicPage" class="workspace-bar-menu" role="menu"> <li class="hidden-xs"> <div class="menu-container" id="add-qualification-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('qualification')"> <span class="glyphicon glyphicon-plus"></span> Add qualification </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('qualification')"> <span class="glyphicon glyphicon-plus"></span> Add qualification </a> </li> </ul> </div> </div> </div> <div *ngIf="workspaceSrvc.displayEducation || workspaceSrvc.displayEducationAndQualification" class="workspace-accordion-content"> <div id="educations-distinctions-empty" *ngIf="!educationsAndQualifications?.length && workspaceSrvc?.displayEducationAndQualification"> <strong> Education lists the organizations where you were educated. <a role="button" (click)="addAffiliationModal('education')">Add education</a> or <a role="button" (click)="addAffiliationModal('qualification')">add qualification.</a> </strong> </div> <ul id="educations-distinctions-list" *ngIf="educationsAndQualifications?.length" class="workspace-affiliations bottom-margin-medium" id="body-education-list"> <li class="bottom-margin-small workspace-border-box card ng-scope" *ngFor="let group of (educationsAndQualifications | orderByAffiliations: sortKeyEducations:sortAscEducations)" [attr.education-distinction-put-code]="group?.defaultAffiliation?.putCode.value"> <div class="work-list-container"> <ul class="sources-edit-list"> <!--Edit sources--> <li *ngIf="editSources[group?.activePutCode]" class="source-header" [ngClass]="{'source-active' : editSources[group?.activePutCode] == true}"> <div class="sources-header"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-6"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 hidden-xs"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-6 right padding-left-fix"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <!--Show/hide details--> <li *ngIf="orgIdsFeatureEnabled" class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.activePutCode] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!--End edit sources--> <ng-container *ngFor="let affiliation of group.affiliations; let index = index; let first = first; let last = last;"> <li *ngIf="group.activePutCode == affiliation.putCode.value || editSources[group.activePutCode] == true"> <div class="row" *ngIf="group.activePutCode == affiliation.putCode?.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <h3 class="workspace-title"> <span>{{affiliation?.affiliationName?.value}}</span>: <span>{{affiliation?.city.value}}</span><span *ngIf="affiliation?.region?.value">, </span><span>{{affiliation?.region?.value}}</span><span *ngIf="affiliation?.countryForDisplay">, </span><span>{{affiliation?.countryForDisplay}}</span> </h3> <div class="info-detail"> <div class="info-date"> <span class="affiliation-date" *ngIf="affiliation?.startDate"> <span *ngIf="affiliation?.startDate.year">{{affiliation?.startDate.year}}</span><span *ngIf="affiliation?.startDate.month">-{{affiliation?.startDate.month}}</span><span *ngIf="affiliation?.startDate.day">-{{affiliation?.startDate.day}}</span> <span *ngIf="affiliation?.startDate && affiliation?.startDate.year && affiliation?.endDate && affiliation?.endDate.year">&nbsp;to&nbsp;</span> <span *ngIf="(affiliation?.startDate && affiliation?.startDate.year) && !(affiliation?.endDate && affiliation?.endDate.year) && affiliation?.affiliationType?.value != 'distinction'">&nbsp;to&nbsp;present</span> <span *ngIf="affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> </span> <span class="affiliation-date" *ngIf="!affiliation?.startDate && affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> <span *ngIf="(affiliation?.startDate || affiliation?.endDate) && (affiliation?.roleTitle?.value || affiliation?.departmentName?.value)"> | </span> <span *ngIf="affiliation?.roleTitle?.value">{{affiliation?.roleTitle?.value}}</span> <span *ngIf="affiliation?.departmentName?.value"> <span *ngIf="affiliation?.roleTitle?.value && !printView">&nbsp;</span>(<span>{{affiliation?.departmentName.value}}</span>) </span> </div><!--info-date--> </div><!--info-detail--> <div class="info-detail" *ngIf="affiliation?.affiliationType?.value"> <span>{{affiliation?.affiliationType?.value | titlecase | dashToSpace}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.activePutCode]"> <!--Show details toggle--> <li class="works-details" *ngIf="!editSources[group.activePutCode]"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(z == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !affiliationService.consistentVis(group) && !editSources[group.activePutCode]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div><!--row--> <!--Identifiers--> <div class="row" *ngIf="group.activePutCode == affiliation.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details clearfix"> <li class="url-work clearfix"> <ul class="id-details clearfix"> <li *ngFor='let extID of affiliation?.affiliationExternalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["-relationship.value", "type.value"]' class="url-popover"> <span *ngIf="affiliation?.affiliationExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="affiliation.putCode.value+i" [activityType]="'affiliation'"></ext-id-popover-ng2> </span> </li> </ul> </li> </ul> </div> </div><!--Identifiers--> <!--More info--> <div class="more-info" *ngIf="moreInfo[group?.activePutCode] && group.activePutCode == affiliation.putCode.value"> <div id="ajax-loader" *ngIf="affiliationService.details[affiliation.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="affiliationService.details[affiliation.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <!--Org id--> <div class="org-ids" *ngIf="affiliation?.orgDisambiguatedId?.value"> <div class="col-md-12"> <strong>Organization identifiers</strong><br> <org-identifier-popover-ng2 [value]="affiliation?.disambiguatedAffiliationSourceId?.value" [putCode]="affiliation?.putCode?.value" [type]="affiliation?.disambiguationSource?.value"></org-identifier-popover-ng2> </div> </div><!--org-ids--> <!--URL--> <div class="col-md-6" *ngIf="affiliationService.details[affiliation.putCode.value]?.url?.value"> <div class="bottomBuffer"> <strong>URL</strong><br> <a href="{{affiliationService.details[affiliation.putCode.value]?.url?.value}}" target="affiliation.url.value" rel="noopener noreferrer">{{affiliationService.details[affiliation.putCode.value]?.url?.value}}</a> </div> </div> </div><!--row--> <!--Created date--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{affiliation?.createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{affiliation?.lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Created date--> </div> <!--content--> </div><!--More info--> <!--Source line--> <div class="row source-line" *ngIf="group.activePutCode == affiliation.putCode.value"> <!--Edit sources--> <!--Source name--> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.activePutCode]"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <!--Preferred source--> <div class="col-md-3 col-sm-3 col-xs-10" *ngIf="editSources[group.activePutCode]"> <div *ngIf="editSources[group.activePutCode]"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value)" *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <!--Edit/delete sources--> <div class="col-md-2 col-sm-2 trash-source" *ngIf="editSources[group.activePutCode]"> <div> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)" title="Delete {{affiliation?.affiliationName?.value}}"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!--Edit sources--> </div> <div *ngIf="group.activePutCode != affiliation.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="swapSources(group, affiliation.putCode.value)"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </a> </div> <div class="col-md-3 col-sm-3 col-xs-10"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value); " *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <!--Action buttons--> <div class="col-md-2 col-sm-2 col-xs-2 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash" title="Delete {{affiliation?.affiliationName?.value}}"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <div class="row source-line" *ngIf="!editSources[group.activePutCode]"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-9"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span> <span *ngIf="group?.affiliations?.length != 1"> (</span><a (click)="showSources(group, $event)" *ngIf="group?.affiliations?.length != 1">of {{group.affiliations.length}}</a><span *ngIf="group?.affiliations?.length != 1">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-3" *ngIf="group.activePutCode == affiliation.putCode.value"> <ul *ngIf="!isPublicPage" class="sources-options" > <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(editSources[group.activePutCode] || group?.affiliations?.length == 1)"> <div class="popover-help-container"> <a (click)="showSources(group,$event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group?.affiliations?.length == 1"> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> </li> </ng-container> </ul> </div> </li> </ul> </div> </div> <!-- INVITED POSITION AND DISTINCTION --> <div id="workspace-distinction-invited-position" class="workspace-accordion-item workspace-accordion-active" [hidden]="publicView == 'true' && distinctionsAndInvitedPositions.length < 1" role="group" aria-labelledby="affiliationType.distinction_invited_position" aria-describedby="tooltip-helpPopoverDistinctionAndInvitedPosition"> <div class="workspace-accordion-header clearfix"> <div class="row"> <div class="col-md-6 col-sm-6 col-xs-12 affiliation-heading"> <a name='workspace-distinction-invited-position'></a> <a role="presentation" (click)="workspaceSrvc.toggleDistinctionAndInvitedPosition($event)" class="toggle-text"> <i class="glyphicon-chevron-down glyphicon x075" [ngClass]="{'glyphicon-chevron-right':workspaceSrvc.displayDistinctionAndInvitedPosition==false}"></i> <h2 id="affiliationType.distinction_invited_position">Invited positions and distinctions (<span>{{distinctionsAndInvitedPositions.length}}</span>)</h2> </a> <div role="presentation" *ngIf="!isPublicPage" class="popover-help-container"> <i role="presentation"class="glyphicon glyphicon-question-sign"></i> <div role="presentation"id="distinction-invited-position-help" class="popover bottom"> <div class="arrow" role="presentation"></div> <div id="tooltip-helpPopoverDistinctionAndInvitedPosition" class="popover-content"> <p><strong>Invited position </strong> is an invited non-employment affiliation, e.g. honorary fellow, guest researcher, emeritus professor.<br> <strong>Distinction</strong> is an honorary or other award, distinction, or prize in recognition of your achievements, e.g. trophy, medal, honorary degree.<br> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360008897654" target="manage_affiliations_settings.helpPopoverDistinctionAndInvitedPosition">Learn more</a></p> </div> </div> </div> </div> <div role="presentation" class="col-md-6 col-sm-6 col-xs-12 action-button-bar" *ngIf="workspaceSrvc.displayDistinctionAndInvitedPosition"> <div role="presentation" class="menu-container"> <ul role="presentation"class="toggle-menu"> <li> <span class="glyphicon glyphicon-sort"></span> Sort <ul class="menu-options sort" role="menu"> <li [ngClass]="{'checked':sortDisplayKeyDistinctions=='startDate'}"> <a (click)="sort('distinction_invited_position', 'startDate', true);" class="action-option manage-button"> Start <span *ngIf="sortDisplayKeyDistinctions=='startDate' && sortAscDistinctions==false" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortDisplayKeyDistinctions=='startDate'}"></span> <span *ngIf="sortDisplayKeyDistinctions=='startDate' && sortAscDistinctions==true" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortDisplayKeyDistinctions=='startDate'}"></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyDistinctions=='endDate'}"> <a (click)="sort('distinction_invited_position', 'endDate', true);" class="action-option manage-button"> End <span *ngIf="sortDisplayKeyDistinctions=='endDate' && sortAscDistinctions==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyDistinctions=='endDate'}" ></span> <span *ngIf="sortDisplayKeyDistinctions=='endDate' && sortAscDistinctions==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyDistinctions=='endDate'}" ></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyDistinctions=='title'}"> <a (click)="sort('distinction_invited_position', 'title', true);" class="action-option manage-button"> Title <span *ngIf="sortDisplayKeyDistinctions=='title' && sortAscDistinctions==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyDistinctions=='title'}" ></span> <span *ngIf="sortDisplayKeyDistinctions=='title' && sortAscDistinctions==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyDistinctions=='title'}" ></span> </a> </li> </ul> </li> </ul> </div> <ul *ngIf="!isPublicPage" class="workspace-bar-menu" role="menu"> <li class="hidden-xs"> <div class="menu-container" id="add-distinction-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('distinction')"> <span class="glyphicon glyphicon-plus"></span> Add distinction </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('distinction')"> <span class="glyphicon glyphicon-plus"></span> Add distinction </a> </li> </ul> <ul *ngIf="!isPublicPage" class="workspace-bar-menu" role="menu"> <li class="hidden-xs"> <div class="menu-container" id="add-invited-position-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('invited-position')"> <span class="glyphicon glyphicon-plus"></span> Add invited position </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('invited-position')"> <span class="glyphicon glyphicon-plus"></span> Add invited position </a> </li> </ul> </div> </div> </div> <div *ngIf="workspaceSrvc.displayDistinctionAndInvitedPosition" class="workspace-accordion-content"> <div id="distinction-invited-position-empty" *ngIf="!distinctionsAndInvitedPositions?.length"> <strong> An invited position is an invited non-employment affiliation. A distinction is an honorary or other award, distinction, or prize. <a role="button" (click)="addAffiliationModal('invited-position')">Add invited position</a> or <a role="button" (click)="addAffiliationModal('distinction')">add distinction.</a> </strong> </div> <ul id="distinction-invited-position-list" *ngIf="distinctionsAndInvitedPositions?.length > 0" class="workspace-affiliations bottom-margin-medium" id="body-distinction-list"> <li class="bottom-margin-small workspace-border-box card" *ngFor="let group of (distinctionsAndInvitedPositions | orderByAffiliations: sortKeyDistinctions:sortAscDistinctions)" [attr.distinction-invited-position-put-code]="group?.defaultAffiliation?.putCode.value"> <div class="work-list-container"> <ul class="sources-edit-list"> <!--Edit sources--> <li *ngIf="editSources[group?.activePutCode]" class="source-header" [ngClass]="{'source-active' : editSources[group?.activePutCode] == true}"> <div class="sources-header"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-6"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 hidden-xs"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-6 right padding-left-fix"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <!--Show/hide details--> <li *ngIf="orgIdsFeatureEnabled" class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.activePutCode] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!--End edit sources--> <ng-container *ngFor="let affiliation of group.affiliations; let index = index; let first = first; let last = last;"> <li *ngIf="group.activePutCode == affiliation.putCode.value || editSources[group.activePutCode] == true"> <div class="row" *ngIf="group.activePutCode == affiliation.putCode?.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <h3 class="workspace-title"> <span>{{affiliation?.affiliationName?.value}}</span>: <span>{{affiliation?.city.value}}</span><span *ngIf="affiliation?.region?.value">, </span><span>{{affiliation?.region?.value}}</span><span *ngIf="affiliation?.countryForDisplay">, </span><span>{{affiliation?.countryForDisplay}}</span> </h3> <div class="info-detail"> <div class="info-date"> <span class="affiliation-date" *ngIf="affiliation?.startDate"> <span *ngIf="affiliation?.startDate.year">{{affiliation?.startDate.year}}</span><span *ngIf="affiliation?.startDate.month">-{{affiliation?.startDate.month}}</span><span *ngIf="affiliation?.startDate.day">-{{affiliation?.startDate.day}}</span> <span *ngIf="affiliation?.startDate && affiliation?.startDate.year && affiliation?.endDate && affiliation?.endDate.year">&nbsp;to&nbsp;</span> <span *ngIf="(affiliation?.startDate && affiliation?.startDate.year) && !(affiliation?.endDate && affiliation?.endDate.year) && affiliation?.affiliationType?.value != 'distinction'">&nbsp;to&nbsp;present</span> <span *ngIf="affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> </span> <span class="affiliation-date" *ngIf="!affiliation?.startDate && affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> <span *ngIf="(affiliation?.startDate || affiliation?.endDate) && (affiliation?.roleTitle?.value || affiliation?.departmentName?.value)"> | </span> <span *ngIf="affiliation?.roleTitle?.value">{{affiliation?.roleTitle?.value}}</span> <span *ngIf="affiliation?.departmentName?.value"> <span *ngIf="affiliation?.roleTitle?.value && !printView">&nbsp;</span>(<span>{{affiliation?.departmentName.value}}</span>) </span> </div><!--info-date--> </div><!--info-detail--> <div class="info-detail" *ngIf="affiliation?.affiliationType?.value"> <span>{{affiliation?.affiliationType?.value | titlecase | dashToSpace}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.activePutCode]"> <!--Show details toggle--> <li class="works-details" *ngIf="!editSources[group.activePutCode]"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(z == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !affiliationService.consistentVis(group) && !editSources[group.activePutCode]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div><!--row--> <!--Identifiers--> <div class="row" *ngIf="group.activePutCode == affiliation.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details clearfix"> <li class="url-work clearfix"> <ul class="id-details clearfix"> <li *ngFor='let extID of affiliation?.affiliationExternalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["-relationship.value", "type.value"]' class="url-popover"> <span *ngIf="affiliation?.affiliationExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="affiliation.putCode.value+i" [activityType]="'affiliation'"></ext-id-popover-ng2> </span> </li> </ul> </li> </ul> </div> </div><!--Identifiers--> <!--More info--> <div class="more-info" *ngIf="moreInfo[group?.activePutCode] && group.activePutCode == affiliation.putCode.value"> <div id="ajax-loader" *ngIf="affiliationService.details[affiliation.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="affiliationService.details[affiliation.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <!--Org id--> <div class="org-ids" *ngIf="affiliation?.orgDisambiguatedId?.value"> <div class="col-md-12"> <strong>Organization identifiers</strong><br> <org-identifier-popover-ng2 [value]="affiliation?.disambiguatedAffiliationSourceId?.value" [putCode]="affiliation?.putCode?.value" [type]="affiliation?.disambiguationSource?.value"></org-identifier-popover-ng2> </div> </div><!--org-ids--> <!--URL--> <div class="col-md-6" *ngIf="affiliationService.details[affiliation.putCode.value]?.url?.value"> <div class="bottomBuffer"> <strong>URL</strong><br> <a href="{{affiliationService.details[affiliation.putCode.value]?.url?.value}}" target="affiliation.url.value" rel="noopener noreferrer">{{affiliationService.details[affiliation.putCode.value]?.url?.value}}</a> </div> </div> </div><!--row--> <!--Created date--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{affiliation?.createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{affiliation?.lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Created date--> </div> <!--content--> </div><!--More info--> <!--Source line--> <div class="row source-line" *ngIf="group.activePutCode == affiliation.putCode.value"> <!--Edit sources--> <!--Source name--> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.activePutCode]"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <!--Preferred source--> <div class="col-md-3 col-sm-3 col-xs-10" *ngIf="editSources[group.activePutCode]"> <div *ngIf="editSources[group.activePutCode]"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value)" *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <!--Edit/delete sources--> <div class="col-md-2 col-sm-2 trash-source" *ngIf="editSources[group.activePutCode]"> <div> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)" title="Delete {{affiliation?.affiliationName?.value}}"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!--Edit sources--> </div> <div *ngIf="group.activePutCode != affiliation.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="swapSources(group, affiliation.putCode.value)"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </a> </div> <div class="col-md-3 col-sm-3 col-xs-10"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value); " *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <!--Action buttons--> <div class="col-md-2 col-sm-2 col-xs-2 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash" title="Delete {{affiliation?.affiliationName?.value}}"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <div class="row source-line" *ngIf="!editSources[group.activePutCode]"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-9"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span> <span *ngIf="group?.affiliations?.length != 1"> (</span><a (click)="showSources(group, $event)" *ngIf="group?.affiliations?.length != 1">of {{group.affiliations.length}}</a><span *ngIf="group?.affiliations?.length != 1">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-3" *ngIf="group.activePutCode == affiliation.putCode.value"> <ul *ngIf="!isPublicPage" class="sources-options" > <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(editSources[group.activePutCode] || group?.affiliations?.length == 1)"> <div class="popover-help-container"> <a (click)="showSources(group,$event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group?.affiliations?.length == 1"> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> </li> </ng-container> </ul> </div> </li> </ul> </div> </div> <!-- MEMBERSHIP AND SERVICE --> <div id="workspace-membership-service" class="workspace-accordion-item workspace-accordion-active" [hidden]="publicView == 'true' && membershipsAndServices.length < 1" role="group" aria-labelledby="affiliationType.membership_service" aria-describedby="tooltip-tooltip-helpPopoverMembershipAndService"> <div class="workspace-accordion-header clearfix"> <div class="row"> <div class="col-md-6 col-sm-6 col-xs-12 affiliation-heading"> <a name='workspace-membership-service'></a> <a (click)="workspaceSrvc.toggleMembershipAndService()" class="toggle-text"> <i class="glyphicon-chevron-down glyphicon x075" [ngClass]="{'glyphicon-chevron-right':workspaceSrvc.displayMembershipAndService==false}"></i> <h2 id="affiliationType.membership_service" >Membership and service (<span>{{membershipsAndServices.length}}</span>) </h2> </a> <div *ngIf="!isPublicPage" class="popover-help-container"> <i class="glyphicon glyphicon-question-sign"></i> <div id="membership-service-help" class="popover bottom"> <div class="arrow"></div> <div class="popover-content" id="tooltip-helpPopoverMembershipAndService"> <p><strong>Membership</strong> is membership in a society or association; it does not include honorary memberships and fellowships.<br> <strong>Service</strong> is a significant donation of time, money, or other resource, e.g. volunteer society officer, elected board position, extension work.<br> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360008897694" target="manage_affiliations_settings.helpPopoverMembershipAndService">Learn more</a></p> </div> </div> </div> </div> <div class="col-md-6 col-sm-6 col-xs-12 action-button-bar" *ngIf="workspaceSrvc.displayMembershipAndService"> <div class="menu-container"> <ul class="toggle-menu"> <li> <span class="glyphicon glyphicon-sort"></span> Sort <ul class="menu-options sort"> <li [ngClass]="{'checked':sortDisplayKeyMemberships=='startDate'}"> <a (click)="sort('membership_service', 'startDate', true);" class="action-option manage-button"> Start <span *ngIf="sortDisplayKeyMemberships=='startDate' && sortAscMemberships==false" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortDisplayKeyMemberships=='startDate'}"></span> <span *ngIf="sortDisplayKeyMemberships=='startDate' && sortAscMemberships==true" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortDisplayKeyMemberships=='startDate'}"></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyMemberships=='endDate'}"> <a (click)="sort('membership_service', 'endDate', true);" class="action-option manage-button"> End <span *ngIf="sortDisplayKeyMemberships=='endDate' && sortAscMemberships==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyMemberships=='endDate'}" ></span> <span *ngIf="sortDisplayKeyMemberships=='endDate' && sortAscMemberships==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyMemberships=='endDate'}" ></span> </a> </li> <li [ngClass]="{'checked':sortDisplayKeyMemberships=='title'}"> <a (click)="sort('membership_service', 'title', true);" class="action-option manage-button"> Title <span *ngIf="sortDisplayKeyMemberships=='title' && sortAscMemberships==false" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortDisplayKeyMemberships=='title'}" ></span> <span *ngIf="sortDisplayKeyMemberships=='title' && sortAscMemberships==true" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortDisplayKeyMemberships=='title'}" ></span> </a> </li> </ul> </li> </ul> </div> <ul *ngIf="!isPublicPage" class="workspace-bar-menu"> <li class="hidden-xs"> <div class="menu-container" id="add-membership-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('membership')"> <span class="glyphicon glyphicon-plus"></span> Add membership </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('membership')"> <span class="glyphicon glyphicon-plus"></span> Add membership </a> </li> </ul> <ul *ngIf="!isPublicPage" class="workspace-bar-menu"> <li class="hidden-xs"> <div class="menu-container" id="add-service-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true}" (click)="addAffiliationModal('service')"> <span class="glyphicon glyphicon-plus"></span> Add service </li> </ul> </div> </li> <li class="affiliations-mobile hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button two-options" (click)="addAffiliationModal('service')"> <span class="glyphicon glyphicon-plus"></span> Add service </a> </li> </ul> </div> </div> </div> <div *ngIf="workspaceSrvc.displayMembershipAndService" class="workspace-accordion-content"> <div id="membership-service-empty" *ngIf="!membershipsAndServices?.length"> <strong> Membership is membership in any society or organization. Service is a dedication of time, money, or other resources. <a role="button" (click)="addAffiliationModal('membership')">Add membership</a> or <a role="button" (click)="addAffiliationModal('service')">add service.</a> </strong> </div> <ul id="membership-service-list" *ngIf="membershipsAndServices?.length > 0" class="workspace-affiliations bottom-margin-medium" id="body-membership-list"> <li class="bottom-margin-small workspace-border-box card" *ngFor="let group of (membershipsAndServices | orderByAffiliations: sortKeyMemberships:sortAscMemberships)" [attr.membership-service-put-code]="group?.defaultAffiliation?.putCode.value"> <div class="work-list-container"> <ul class="sources-edit-list"> <!--Edit sources--> <li *ngIf="editSources[group?.activePutCode]" class="source-header" [ngClass]="{'source-active' : editSources[group?.activePutCode] == true}"> <div class="sources-header"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-6"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 hidden-xs"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-6 right padding-left-fix"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <!--Show/hide details--> <li *ngIf="orgIdsFeatureEnabled" class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.activePutCode] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!--End edit sources--> <ng-container *ngFor="let affiliation of group.affiliations; let index = index; let first = first; let last = last;"> <li *ngIf="group.activePutCode == affiliation.putCode.value || editSources[group.activePutCode] == true"> <div class="row" *ngIf="group.activePutCode == affiliation.putCode?.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <h3 class="workspace-title"> <span>{{affiliation?.affiliationName?.value}}</span>: <span>{{affiliation?.city.value}}</span><span *ngIf="affiliation?.region?.value">, </span><span>{{affiliation?.region?.value}}</span><span *ngIf="affiliation?.countryForDisplay">, </span><span>{{affiliation?.countryForDisplay}}</span> </h3> <div class="info-detail"> <div class="info-date"> <span class="affiliation-date" *ngIf="affiliation?.startDate"> <span *ngIf="affiliation?.startDate.year">{{affiliation?.startDate.year}}</span><span *ngIf="affiliation?.startDate.month">-{{affiliation?.startDate.month}}</span><span *ngIf="affiliation?.startDate.day">-{{affiliation?.startDate.day}}</span> <span *ngIf="affiliation?.startDate && affiliation?.startDate.year && affiliation?.endDate && affiliation?.endDate.year">&nbsp;to&nbsp;</span> <span *ngIf="(affiliation?.startDate && affiliation?.startDate.year) && !(affiliation?.endDate && affiliation?.endDate.year) && affiliation?.affiliationType?.value != 'distinction'">&nbsp;to&nbsp;present</span> <span *ngIf="affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> </span> <span class="affiliation-date" *ngIf="!affiliation?.startDate && affiliation?.endDate"> <span *ngIf="affiliation?.endDate.year">{{affiliation?.endDate.year}}</span><span *ngIf="affiliation?.endDate.month">-{{affiliation?.endDate.month}}</span><span *ngIf="affiliation?.endDate.day">-{{affiliation?.endDate.day}}</span> </span> <span *ngIf="(affiliation?.startDate || affiliation?.endDate) && (affiliation?.roleTitle?.value || affiliation?.departmentName?.value)"> | </span> <span *ngIf="affiliation?.roleTitle?.value">{{affiliation?.roleTitle?.value}}</span> <span *ngIf="affiliation?.departmentName?.value"> <span *ngIf="affiliation?.roleTitle?.value && !printView">&nbsp;</span>(<span>{{affiliation?.departmentName.value}}</span>) </span> </div><!--info-date--> </div><!--info-detail--> <div class="info-detail" *ngIf="affiliation?.affiliationType?.value"> <span>{{affiliation?.affiliationType?.value | titlecase | dashToSpace}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.activePutCode]"> <!--Show details toggle--> <li class="works-details" *ngIf="!editSources[group.activePutCode]"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(z == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !affiliationService.consistentVis(group) && !editSources[group.activePutCode]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div><!--row--> <!--Identifiers--> <div class="row" *ngIf="group.activePutCode == affiliation.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details clearfix"> <li class="url-work clearfix"> <ul class="id-details clearfix"> <li *ngFor='let extID of affiliation?.affiliationExternalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["-relationship.value", "type.value"]' class="url-popover"> <span *ngIf="affiliation?.affiliationExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="affiliation.putCode.value+i" [activityType]="'affiliation'"></ext-id-popover-ng2> </span> </li> </ul> </li> </ul> </div> </div><!--Identifiers--> <!--More info--> <div class="more-info" *ngIf="moreInfo[group?.activePutCode] && group.activePutCode == affiliation.putCode.value"> <div id="ajax-loader" *ngIf="affiliationService.details[affiliation.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="affiliationService.details[affiliation.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <!--Org id--> <div class="org-ids" *ngIf="affiliation?.orgDisambiguatedId?.value"> <div class="col-md-12"> <strong>Organization identifiers</strong><br> <org-identifier-popover-ng2 [value]="affiliation?.disambiguatedAffiliationSourceId?.value" [putCode]="affiliation?.putCode?.value" [type]="affiliation?.disambiguationSource?.value"></org-identifier-popover-ng2> </div> </div><!--org-ids--> <!--URL--> <div class="col-md-6" *ngIf="affiliationService.details[affiliation.putCode.value]?.url?.value"> <div class="bottomBuffer"> <strong>URL</strong><br> <a href="{{affiliationService.details[affiliation.putCode.value]?.url?.value}}" target="affiliation.url.value" rel="noopener noreferrer">{{affiliationService.details[affiliation.putCode.value]?.url?.value}}</a> </div> </div> </div><!--row--> <!--Created date--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{affiliation?.createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{affiliation?.lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Created date--> </div> <!--content--> </div><!--More info--> <!--Source line--> <div class="row source-line" *ngIf="group.activePutCode == affiliation.putCode.value"> <!--Edit sources--> <!--Source name--> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.activePutCode]"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <!--Preferred source--> <div class="col-md-3 col-sm-3 col-xs-10" *ngIf="editSources[group.activePutCode]"> <div *ngIf="editSources[group.activePutCode]"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value)" *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <!--Edit/delete sources--> <div class="col-md-2 col-sm-2 trash-source" *ngIf="editSources[group.activePutCode]"> <div> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)" title="Delete {{affiliation?.affiliationName?.value}}"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!--Edit sources--> </div> <div *ngIf="group.activePutCode != affiliation.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="swapSources(group, affiliation.putCode.value)"> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </a> </div> <div class="col-md-3 col-sm-3 col-xs-10"> <span class="glyphicon glyphicon-star" *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"></span><span *ngIf="affiliation.putCode.value == group.defaultAffiliation.putCode.value"> Preferred source</span> <a (click)="makeDefault(group, affiliation, affiliation.putCode.value); " *ngIf="affiliation.putCode.value != group.defaultAffiliation.putCode.value && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <!--Action buttons--> <div class="col-md-2 col-sm-2 col-xs-2 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash" title="Delete {{affiliation?.affiliationName?.value}}"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <div class="row source-line" *ngIf="!editSources[group.activePutCode]"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(affiliation.assertionOriginClientId && affiliation.assertionOriginClientId !== affiliation.source) || (affiliation.assertionOriginOrcid && affiliation.assertionOriginOrcid !== affiliation.source)"> {{affiliation.assertionOriginName || affiliation.assertionOriginOrcid}} <i>via</i> </ng-container> {{(affiliation.sourceName == null || affiliation.sourceName == '') ? affiliation.source : affiliation.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-9"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span> <span *ngIf="group?.affiliations?.length != 1"> (</span><a (click)="showSources(group, $event)" *ngIf="group?.affiliations?.length != 1">of {{group.affiliations.length}}</a><span *ngIf="group?.affiliations?.length != 1">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-3" *ngIf="group.activePutCode == affiliation.putCode.value"> <ul *ngIf="!isPublicPage" class="sources-options" > <li> <div class="popover-help-container"> <!--For activities without backend grouping--> <!--Edit activity pencil icon--> <a aria-label="Edit" *ngIf="userIsSource(affiliation)" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(affiliation)">Edit my version</span> </div> </div> </a> <!--Open to see your versions--> <a *ngIf="!userIsSource(affiliation) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <!--Make a copy enabled--> <a *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditAffiliation(affiliation, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> <span *ngIf="!userIsSource(affiliation) && !group.userVersionPresent && !group.externalIdentifiers.length > 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(editSources[group.activePutCode] || group?.affiliations?.length == 1)"> <div class="popover-help-container"> <a (click)="showSources(group,$event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group?.affiliations?.length == 1"> <div class="popover-help-container"> <a (click)="deleteAffiliation(affiliation)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> </li> </ng-container> </ul> </div> </li> </ul> </div> </div> </div> </script> <affiliation-ng2 publicview="true"></affiliation-ng2> <!-- Funding --> <script type="text/ng-template" id="funding-ng2-template"> <div [hidden]="publicView == 'true' && recordLocked"> <!-- Funding --> <div id="workspace-fundings" class="workspace-accordion-item workspace-accordion-active" [hidden]="publicView == 'true' && groups.length < 1" role="group" aria-labelledby="affiliationType.Funding" aria-describedby="tooltip-helpPopoverFunding"> <div class="workspace-accordion-header clearfix"> <div class="row"> <div class="col-md-4 col-sm-4 col-xs-12 affiliation-heading"> <a (click)="toggleSectionDisplay($event)" class="toggle-text"> <i class="glyphicon-chevron-down glyphicon x075" [ngClass]="{'glyphicon-chevron-right':workspaceSrvc.displayFunding==false}"></i> <h2 id="affiliationType.Funding">Funding (<span>{{groups.length}}</span>)</h2> </a> <div *ngIf="!isPublicPage" class="popover-help-container"> <i class="glyphicon glyphicon-question-sign"></i> <div id="funding-help" class="popover bottom"> <div class="arrow"></div> <div class="popover-content"> <p id="tooltip-helpPopoverFunding">Add information about funding grants you have received. You can do this by importing from other systems, or by adding details manually. <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897214" target="manage_funding_settings.helpPopoverFunding">Learn more</a></p> </div> </div> </div> </div> <div class="col-md-8 col-sm-8 col-xs-12 action-button-bar" *ngIf="workspaceSrvc.displayFunding"> <!-- Sort --> <div class="menu-container"> <ul class="toggle-menu"> <li> <span class="glyphicon glyphicon-sort"></span> Sort <ul class="menu-options sort"> <li [ngClass]="{'checked':sortKey=='date'}"> <a (click)="sort('date');" class="action-option manage-button"> Date <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortKey=='date'}"></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortKey=='date'}"></span> </a> </li> <li [ngClass]="{'checked':sortKey=='title'}"> <a (click)="sort('title');" class="action-option manage-button"> Title <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortKey=='title'}" ></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortKey=='title'}" ></span> </a> </li> <li [ngClass]="{'checked':sortKey=='type'}" *ngIf="!sortHideOption"> <a (click)="sort('type');" class="action-option manage-button"> Type <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortKey=='type'}"></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortKey=='type'}"></span> </a> </li> </ul> </li> </ul> </div> <!--Add funding--> <ul *ngIf="!isPublicPage" class="workspace-bar-menu"> <li class="hidden-xs"> <div class="menu-container" id="add-funding-container"> <ul class="toggle-menu"> <li *ngIf="!noLinkFlag" [ngClass]="{'green-bg' : fundingImportWizard == true}" (click)="addFundingModal()"> <span class="glyphicon glyphicon-plus"></span> Add funding </li> <li *ngIf="noLinkFlag" [ngClass]="{'green-bg' : fundingImportWizard == true}"> <span class="glyphicon glyphicon-plus"></span> Add funding <ul class="menu-options funding"> <!-- Search & Link --> <li *ngIf="noLinkFlag"> <a class="action-option manage-button" (click)="showFundingImportWizard()"> <span class="glyphicon glyphicon-cloud-upload"></span> Search & link </a> </li> <!-- Add Manually --> <li> <a id="add-funding" class="action-option manage-button" (click)="addFundingModal()"> <span class="glyphicon glyphicon-plus"></span> Add manually </a> </li> </ul> </li> </ul> </div> </li> <!-- Mobile Version Workaround --> <!-- Search & Link --> <li *ngIf="noLinkFlag" class="hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button action-funding-mobile" (click)="showFundingImportWizard()"> <span class="glyphicon glyphicon-cloud-upload"></span> Search & link </a> </li> <!-- Add Manually --> <li class="hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button action-funding-mobile" (click)="addFundingModal()"> <span class="glyphicon glyphicon-plus"></span> Add manually </a> </li> </ul> </div> </div> </div> <!-- Funding Import Wizard --> <div *ngIf="fundingImportWizard && workspaceSrvc.displayFunding && !isPublicPage" class="work-import-wizard"> <div class="ie7fix-inner"> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <h1 class="lightbox-title wizard-header">Link Funding</h1> <span (click)="showFundingImportWizard()" class="close-wizard">Hide link funding</span> </div> </div> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <p class="wizard-content"> ORCID works with our member organizations to make it easy to connect your ORCID iD and link to information in their records. Choose one of the link wizards to get started.< </p> </div> </div> <div class="row wizards"> <div class="col-md-12 col-sm-12 col-xs-12"> <div *ngFor="let wtw of fundingImportWizardList"> <strong><a (click)="openImportWizardUrlFilter(getBaseUri() + '/oauth/authorize', wtw)">{{wtw.name}}</a></strong> <br /> <div class="justify"> <p class="wizard-description" [ngClass]="{'ellipsis-on' : wizardDescExpanded[wtw.id] == false || wizardDescExpanded[wtw.id] == null}"> {{wtw.description}} <a (click)="toggleWizardDesc(wtw.id)" *ngIf="wizardDescExpanded[wtw.id]"><span class="glyphicon glyphicon-chevron-right wizard-chevron"></span></a> </p> <a (click)="toggleWizardDesc(wtw.id)" *ngIf="wizardDescExpanded[wtw.id] == false || wizardDescExpanded[wtw.id] == null" class="toggle-wizard-desc"><span class="glyphicon glyphicon-chevron-down wizard-chevron"></span></a> </div> <hr/> </div> </div> </div> </div> </div> <div *ngIf="workspaceSrvc.displayFunding" class="workspace-accordion-content"> <ul *ngIf="groups.length > 0" class="workspace-fundings workspace-body-list bottom-margin-medium" > <li class="bottom-margin-small workspace-border-box card ng-scope" *ngFor="let group of groups"> <div class="work-list-container"> <ul class="sources-edit-list"> <!-- Edit sources --> <li *ngIf="editSources[group.groupId]" class="source-header" [ngClass]="{'source-active' : editSources[group.groupId] == true}"> <div class="sources-header"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-7"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 col-xs-2"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-3 right"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <li class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event);"> <span [ngClass]="(moreInfo[group.groupId] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!-- End edit sources--> <ng-container *ngFor="let funding of group.fundings;let i = index;"> <li *ngIf="group.activePutCode == funding.putCode.value || editSources[group.groupId]"> <!-- active row summary info --> <div class="row" *ngIf="group?.activePutCode == funding.putCode.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <!--Title--> <h3 class="workspace-title"> <span *ngIf="funding.fundingTitle?.title?.value">{{funding.fundingTitle?.title?.value}}</span> </h3> <div class="clear-fix left"> <!--Organization--> <span *ngIf="funding.fundingName?.value">{{funding.fundingName?.value}}</span> (<span *ngIf="funding.city?.value">{{funding.city?.value}}</span><span *ngIf="funding.region.value">, {{funding.region?.value}}</span> <span *ngIf="funding.countryForDisplay">, {{funding.countryForDisplay}}</span>) </div> <div class="info-detail"> <!-- Funding date --> <span class="funding-date" *ngIf="funding.startDate?.year"> <span *ngIf="funding.startDate.year">{{funding.startDate?.year}}</span><span *ngIf="funding.startDate?.month">-{{funding.startDate?.month}}</span><span *ngIf="funding.startDate?.day">-{{funding.startDate?.day}}</span> <span>&nbsp;to&nbsp;</span><span [hidden]="funding.endDate && funding.endDate?.year">present</span> </span> <span *ngIf="funding.endDate"> <span *ngIf="funding.endDate?.year">{{funding.endDate?.year}}</span><span *ngIf="funding.endDate?.month">-{{funding.endDate?.month}}</span><span *ngIf="funding.endDate?.day">-{{funding.endDate?.day}}</span> </span> <!-- Funding type --> <span *ngIf="(funding.startDate?.year || funding.endDate?.year) && funding.fundingType?.value">|</span> <span class="capitalize">{{funding.fundingTypeForDisplay}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.groupId]"> <!--Show details toggle--> <li class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event);"> <span [ngClass]="(moreInfo[group.groupId] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(group, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(group, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(group, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !fundingService.consistentVis(group) && !editSources[group.groupId]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div> <!-- Active Row Identifiers / URL / Validations / Versions --> <div class="row" *ngIf="group?.activePutCode == funding?.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details"> <li class="url-work"> <ul class="id-details"> <li *ngFor='let extID of funding?.externalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["-relationship.value", "externalIdentifierType.value"]' class="url-popover"> <span *ngIf="funding?.externalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="funding?.putCode.value+i" activityType="funding"></ext-id-popover-ng2> </span> </li> </ul> </li> <li *ngIf="funding?.url?.value" class="url-popover"> URL: <a rel="noopener noreferrer" href="{{funding?.url?.value | urlProtocol}}" [ngClass]="{'truncate-anchor' : moreInfo[group.groupId] == false || moreInfo[group.groupId] == undefined}" rel="noopener noreferrer" target="funding.url.value">{{funding?.url?.value}}</a> </li> </ul> </div> </div> <!-- more info --> <div class="more-info" *ngIf="moreInfo[group.groupId] && group.activePutCode == funding.putCode.value"> <div id="ajax-loader" *ngIf="fundingService.details[funding.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="fundingService.details[funding.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <div class="org-ids" *ngIf="funding?.disambiguatedFundingSourceId?.value"> <div class="col-md-12"> <strong>Organization identifiers</strong><br> <org-identifier-popover-ng2 [value]="funding?.disambiguatedFundingSourceId?.value" [putCode]="funding?.putCode?.value" [type]="funding?.disambiguationSource?.value"></org-identifier-popover-ng2> </div> </div><!--org-ids--> <!-- Funding subtype --> <div class="col-md-6" *ngIf="fundingService.details[funding.putCode.value]?.organizationDefinedFundingSubType?.subtype?.value" > <div class="bottomBuffer"> <strong>Funding subtype</strong> <div>{{fundingService.details[funding.putCode.value]?.organizationDefinedFundingSubType?.subtype?.value}}</div> </div> </div> <!-- Funding translated title --> <div class="col-md-6" *ngIf="fundingService.details[funding.putCode.value]?.fundingTitle?.translatedTitle?.content" > <div class="bottomBuffer"> <strong>Translated title</strong> <span><i>({{fundingService.details[funding.putCode.value]?.fundingTitle?.translatedTitle?.languageName}})</i></span> <div>{{fundingService.details[funding.putCode.value]?.fundingTitle?.translatedTitle?.content}}</div> </div> </div> <!-- Funding Amount --> <div class="col-md-6" *ngIf="fundingService.details[funding.putCode.value]?.amount?.value" > <div class="bottomBuffer"> <strong>Total funding amount</strong> <div>{{fundingService.details[funding.putCode.value]?.currencyCode?.value}} {{fundingService.details[funding.putCode.value]?.amount?.value}}</div> </div> </div> <!-- Contribuitors --> <div class="col-md-6" *ngIf="fundingService.details[funding.putCode.value]?.contributors?.length > 0" > <div class="bottomBuffer"> <strong>Contributors</strong> <div *ngFor="let contributor of fundingService.details[funding.putCode.value]?.contributors"> {{contributor?.creditName?.value}} <span>{{contributor | contributorFilter}}</span> </div> </div> </div> <!-- Description --> <div class="col-md-6" *ngIf="fundingService.details[funding.putCode.value]?.description?.value" > <div class="bottomBuffer"> <strong>Description</strong> <div>{{fundingService.details[funding.putCode.value]?.description?.value}}</div> </div> </div> </div> <!--Added/last modified dates--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{fundingService.details[funding.putCode.value].createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{fundingService.details[funding.putCode.value].lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Added/last modified dates--> </div> </div> <!-- active row source display --> <div class="row source-line" *ngIf="group.activePutCode == funding.putCode.value"> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.groupId]"> <ng-container *ngIf="(funding.assertionOriginClientId && funding.assertionOriginClientId !== funding.source) || (funding.assertionOriginOrcid && funding.assertionOriginOrcid !== funding.source)"> {{funding.assertionOriginName || funding.assertionOriginOrcid}} <i>via</i> </ng-container> {{(funding.sourceName == null || funding.sourceName == '') ? funding.source : funding.sourceName}} </div> <div class="col-md-3 col-sm-3 col-xs-6" *ngIf="editSources[group.groupId]"> <span class="glyphicon glyphicon-star" *ngIf="funding?.putCode.value == group?.defaultPutCode"></span><span *ngIf="funding?.putCode.value == group?.defaultPutCode"> Preferred source</span> <div *ngIf="editSources[group.groupId] && !isPublicPage"> <a (click)="makeDefault(group, funding?.putCode.value);" *ngIf="funding?.putCode.value != group?.defaultPutCode" class=""> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <div class="col-md-2 col-sm-2 col-xs-6 trash-source" *ngIf="editSources[group.groupId]"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(funding)" (click)="openEditFunding(funding, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(funding)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditFunding(funding, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteFunding(funding)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!-- not active row && edit sources --> <div *ngIf="group?.activePutCode != funding?.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="swapSources(group, funding.putCode.value)"> <ng-container *ngIf="(funding.assertionOriginClientId && funding.assertionOriginClientId !== funding.source) || (funding.assertionOriginOrcid && funding.assertionOriginOrcid !== funding.source)"> {{funding.assertionOriginName || funding.assertionOriginOrcid}} <i>via</i> </ng-container> {{(funding?.sourceName == null || funding?.sourceName == '') ? funding?.source : funding?.sourceName}} </a> </div> <div class="col-md-3 col-sm-3 col-xs-6"> <span class="glyphicon glyphicon-star" *ngIf="funding?.putCode.value == group?.defaultPutCode"></span><span *ngIf="funding?.putCode.value == group?.defaultPutCode"> Preferred source</span> <a (click)="makeDefault(group, funding?.putCode.value);" *ngIf="funding?.putCode.value != group.defaultPutCode && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <div class="col-md-2 col-sm-2 col-xs-6 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(funding)" (click)="openEditFunding(funding, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(funding)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditFunding(funding, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteFunding(funding)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!-- Bottom row --> <div class="row source-line" *ngIf="editSources[group.groupId] != true"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(funding.assertionOriginClientId && funding.assertionOriginClientId !== funding.source) || (funding.assertionOriginOrcid && funding.assertionOriginOrcid !== funding.source)"> {{funding.assertionOriginName || funding.assertionOriginOrcid}} <i>via</i> </ng-container> {{(funding?.sourceName == null || funding.sourceName == '') ? funding.source : funding.sourceName}} </div> <div class="col-md-3 col-sm-3 col-xs-6" *ngIf="group?.activePutCode == funding?.putCode.value"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span>&nbsp;<span *ngIf="!(group.fundings.length == 1)">(</span><a (click)="showSources(group, $event)" *ngIf="!(group.fundings.length == 1)">of {{group.fundings.length}}</a><span *ngIf="!(group.fundings.length == 1)">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-6"> <ul *ngIf="!isPublicPage" class="sources-options"> <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(funding)" (click)="openEditFunding(funding, group)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(funding)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditFunding(funding, group)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(funding) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(group.fundings.length == 1 || editSources[group.groupId] == true)"> <div class="popover-help-container"> <a (click)="showSources(group, $event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group.fundings.length == 1"> <div class="popover-help-container"> <a id="delete-funding_{{funding.putCode.value}}" (click)="deleteFunding(funding)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div><!--Bottom row--> </li><!-- End for funding line --> </ng-container> </ul> </div> </li> </ul> <div *ngIf="loading" class="text-center"> <i class="glyphicon glyphicon-refresh spin x4 green" id="spinner"></i> </div> <div *ngIf="fundingService?.loading == false && groups.length == 0"> <strong> Funding captures grants and other awards you have received to support your research. <a role="button" *ngIf="noLinkFlag" (click)="showFundingImportWizard()"> Add funding.</a> <span *ngIf="!noLinkFlag">Add funding.</span> </strong> </div> </div> </div> </div> </script> <funding-ng2 publicview="true"></funding-ng2> <!-- Works --> <script type="text/ng-template" id="works-ng2-template"> <!--WORKS--> <div [hidden]="publicView == 'true' && recordLocked" id="workspace-publications" class="workspace-accordion-item workspace-accordion-active" role="group" aria-labelledby="affiliationType.Works" aria-describedby="tooltip-helpPopoverWorks"> <!--Works section header--> <div class="workspace-accordion-header clearfix"> <div class="row"> <div class="col-md-5 col-sm-5 col-xs-12"> <div class="affiliation-heading"> <a (click)="toggleSectionDisplay($event)" class="toggle-text"> <i class="glyphicon-chevron-down glyphicon x075" [ngClass]="{'glyphicon-chevron-right':workspaceSrvc.displayWorks==false}"></i> <h2 id="affiliationType.Works"> Works <ng-container> (<span>{{worksService.groupsLabel}}</span>) </ng-container> </h2> </a> <div *ngIf="!isPublicPage" class="popover-help-container"> <i class="glyphicon glyphicon-question-sign"></i> <div id="works-help" class="popover bottom"> <div class="arrow"></div> <div class="popover-content"> <p id="tooltip-helpPopoverWorks">Add information about works you have published. You can do this by importing from other systems, or by adding details manually. <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006973133" target="manage_works_settings.helpPopoverWorks">Learn more</a></p> </div> </div> </div> </div> </div> <div *ngIf="workspaceSrvc.displayWorks" class="col-md-7 col-sm-7 col-xs-12 action-button-bar"> <!--Sort menu--> <div class="menu-container"> <ul class="toggle-menu"> <li> <span class="glyphicon glyphicon-sort"></span> Sort <ul class="menu-options sort"> <li [ngClass]="{'checked':sortKey=='date'}"> <a (click)="sort('date');" class="action-option manage-button"> Date <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-order-alt':sortKey=='date'}"></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-order':sortKey=='date'}"></span> </a> </li> <li [ngClass]="{'checked':sortKey=='title'}" *ngIf="!sortHideOption"> <a (click)="sort('title');" class="action-option manage-button"> Title <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortKey=='title'}" ></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortKey=='title'}" ></span> </a> </li> <li [ngClass]="{'checked':sortKey=='type'}"> <a (click)="sort('type');" class="action-option manage-button"> Type <span *ngIf="!sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet-alt':sortKey=='type'}"></span> <span *ngIf="sortAsc" [ngClass]="{'glyphicon glyphicon-sort-by-alphabet':sortKey=='type'}"></span> </a> </li> </ul> </li> </ul> </div> <!--End sort menu--> <ul *ngIf="!isPublicPage" class="workspace-bar-menu"> <!--Bulk edit--> <li *ngIf="!manualWorkGroupingEnabled && worksService?.groups?.length > 1" > <a class="action-option works manage-button" [ngClass]="{'green-bg' : bulkEditShow == true}" (click)="toggleBulkEdit()" aria-label="Edit"> <span class="glyphicon glyphicon-pencil"></span>Bulk edit </a> </li> <!--Export bibtex--> <li *ngIf="worksService?.groups?.length > 0" > <a class="action-option works manage-button" [ngClass]="{'green-bg' : showBibtexExport}" (click)="toggleBibtexExport()"> <span class="glyphicon glyphicon-save"></span> Export works </a> </li> <!--Add works--> <li class="hidden-xs"> <div class="menu-container" id="add-work-container"> <ul class="toggle-menu"> <li [ngClass]="{'green-bg' : showBibtexImportWizard == true || workImportWizard == true}"> <span class="glyphicon glyphicon-plus"></span> Add works <span class="ai ai-arxiv" style="opacity: 0;width: 0;"></span> <ul class="menu-options works"> <!--Search & link--> <li> <a class="action-option manage-button" (click)="showWorkImportWizard()"> <span class="glyphicon glyphicon-cloud-upload"></span> Search & link </a> </li> <!-- ADD WORKS WITH EXTERNAL ID CONTAINER--> <ng-container *ngIf="TOGGLZ_ADD_WORKS_WITH_EXTERNAL_ID"> <li> <a class="action-option manage-button" (click)="addWorkExternalIdModal('arXiv')"> <span class="ai ai-arxiv"></span> Add ArXiv ID </a> </li> <li> <a class="action-option manage-button" (click)="addWorkExternalIdModal('DOI')"> <span class="ai ai-doi"></span> Add DOI </a> </li> <li > <a class="action-option manage-button" (click)="addWorkExternalIdModal('pubMed')"> <span class="ai ai-pubmed"></span> Add PubMed ID </a> </li> </ng-container> <!--Add from Bibtex--> <li> <a class="action-option manage-button" (click)="openBibTextWizard()"> <span class="glyphicons file_import bibtex-wizard"></span> Import BibTeX </a> </li> <!--Add manually--> <li> <a id="add-work" class="action-option manage-button" (click)="addWorkModal()"> <span class="glyphicon glyphicon-plus"></span> Add manually </a> </li> </ul> </li> </ul> </div> </li> <!--Import Search & link--> <li class="hidden-md hidden-sm visible-xs-inline"> <a *ngIf="noLinkFlag" class="action-option manage-button" (click)="showWorkImportWizard()"> <span class="glyphicon glyphicon-cloud-upload"></span> Search & link </a> </li> <!--Import Bibtex--> <li class="hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button" (click)="openBibTextWizard()"> <span class="glyphicons file_import bibtex-wizard"></span> Import BibTeX </a> </li> <!--Mobile workaraound--> <li class="hidden-md hidden-sm visible-xs-inline"> <a class="action-option manage-button" (click)="addWorkModal()"> <span class="glyphicon glyphicon-plus"></span> Add manually </a> </li> </ul> </div> </div> </div> <!--End works section header--> <!-- Work Import Wizard --> <div *ngIf="workImportWizard" class="work-import-wizard"> <div class="ie7fix-inner"> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <h1 class="lightbox-title wizard-header">Link Works</h1> <span (click)="showWorkImportWizard()" class="close-wizard">Hide link works</span> </div> </div> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <p class="wizard-content"> ORCID works with our member organizations to make it easy to connect your ORCID iD and link to information in their records. Choose one of the link wizards to get started. <a target="workspace.LinkResearchActivities.description.more_info" href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/en-us/articles/360006973653-Add-works-by-direct-import-from-other-systems"> More information about linking works </a> </p> </div> </div> <div class="row"> <div id="workFilters"> <form class="form-inline"> <div class="col-md-5 col-sm-5 col-xs-12"> <div class="form-group"> <label for="work-type">Work type</label> <select id="work-type" name="work-type" [(ngModel)]="selectedWorkType"> <option *ngFor="let wt of workType">{{wt}}</option> </select> </div> </div> <div class="col-md-7 col-sm-7 col-xs-12"> <div class="form-group geo-area-group"> <label for="geo-area">Geographical area</label> <select id="geo-area" name="geo-area" [(ngModel)]="selectedGeoArea"> <option *ngFor="let ga of geoArea">{{ga}}</option> </select> </div> </div> </form> <hr /> </div> </div> <div class="row wizards"> <div class="col-md-12 col-sm-12 col-xs-12"> <div *ngFor="let wtw of workImportWizardsOriginal | orderBy: 'name' | filterImportWizards : selectedWorkType : selectedGeoArea; let index = index; let first = first; let last = last;"> <strong><a (click)="openImportWizardUrlFilter(getBaseUri() + '/oauth/authorize', wtw)">{{wtw.name}}</a></strong> <br /> <div class="justify"> <p class="wizard-description" [ngClass]="{'ellipsis-on' : wizardDescExpanded[wtw.id] == false || wizardDescExpanded[wtw.id] == null}"> {{wtw.description}} <a (click)="toggleWizardDesc(wtw.id)" *ngIf="wizardDescExpanded[wtw.id]"><span class="glyphicon glyphicon-chevron-right wizard-chevron"></span></a> </p> <a (click)="toggleWizardDesc(wtw.id)" *ngIf="wizardDescExpanded[wtw.id] == false || wizardDescExpanded[wtw.id] == null" class="toggle-wizard-desc"><span class="glyphicon glyphicon-chevron-down wizard-chevron"></span></a> </div> <hr/> </div> </div> </div> </div> </div> <!--End import wizard--> <!-- Bulk Edit --> <div *ngIf="bulkEditShow && workspaceSrvc.displayWorks" > <div class="bulk-edit"> <div class="row"> <div class="col-md-7 col-sm-7 col-xs-12"> <h4>Bulk edit</h4><span class="hide-bulk" (click)="toggleBulkEdit()">Hide bulk edit</span> <ol> <li>Select works: Click the checkbox beside each work. Use the checkbox to the right to select or deselect all.</li> <li>Select editing action: Click the trash can to delete all selected works or click a visibility setting to apply that setting to all selected works.</li> </ol> </div> <div class="col-md-5 col-sm-5 col-xs-12"> <ul class="bulk-edit-toolbar"> <li class="bulk-edit-toolbar-item work-multiple-selector"> <label>SELECT</label> <div id="custom-control-x"> <div class="custom-control-x" > <div class="dropdown-custom-menu" id="dropdown-custom-menu" (click)="toggleSelectMenu();$event.stopPropagation()"> <span class="custom-checkbox-parent"> <div class="custom-checkbox" id="custom-checkbox" (click)="swapbulkChangeAll();$event.stopPropagation();" [ngClass]="{'custom-checkbox-active':bulkChecked}"></div> </span> <div class="custom-control-arrow" (click)="toggleSelectMenu(); $event.stopPropagation()"></div> </div> <div> <ul class="dropdown-menu" role="menu" id="special-menu" [ngClass]="{'block': bulkDisplayToggle}"> <li><a (click)="bulkChangeAll(true)">All selected</a></li> <li><a (click)="bulkChangeAll(false)">None selected</a></li> </ul> </div> </div> </div> </li> <li class="bulk-edit-toolbar-item"> <label>EDIT</label> <div class="bulk-edit-privacy-control"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(none +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(none +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: none != 'PUBLIC'}"><a aria-label="Everyone" (click)="setBulkGroupPrivacy('PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: none != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setBulkGroupPrivacy('LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: none != 'PRIVATE'}"><a aria-label="Only me" (click)="setBulkGroupPrivacy('PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[none +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </div> </li> </ul> <div class="bulk-edit-delete"> <div class="centered"> <a (click)="deleteBulkConfirm()" class="ignore toolbar-button edit-item-button"> <span class="edit-option-toolbar glyphicon glyphicon-trash"></span> </a> </div> </div> </div> </div> </div> </div> <!--End bulk edit--> <!-- Bibtex export --> <div *ngIf="showBibtexExport && workspaceSrvc.displayWorks" class="bibtex-box"> <div *ngIf="canReadFiles" > <h4>Export BibTeX</h4><span (click)="toggleBibtexExport()" class="hide-importer">Hide BibTex exporter</span> <div class="row full-height-row"> <div class="col-md-9 col-sm-9 col-xs-8"> <p> Export your works to a BibTeX file (note, this may cause problems for text in some languages). <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006971453" target="exporting_bibtex" style="word-break\: normal;">Find out more on exporting BibTeX files</a>. </p> </div> <div class="col-md-3 col-sm-3 col-xs-4"> <span class="bibtext-options"> <a class="bibtex-cancel" (click)="toggleBibtexExport()">Cancel</a> <span *ngIf="!(worksFromBibtex?.length > 0)" class="import-label" (click)="fetchBibtexExport()">Export</span> </span> </div> </div> </div> <div class="bottomBuffer" *ngIf="bibtexExportLoading && !bibtexExportError" > <span class="dotted-bar"></span> <ul class="inline-list"> <li> Generating BibTeX. This can take a few minutes... </li> <li> &nbsp;<span><i id="" class="glyphicon glyphicon-refresh spin x1 green"></i></span> </li> </ul> </div> <div class="alert alert-block" *ngIf="bibtexExportError"> <strong>Something went wrong while generating your BibTex file. Please try again.</strong> </div> </div> <!--End bibtex export--> <!-- Bibtex Importer Wizard --> <div *ngIf="showBibtexImportWizard && workspaceSrvc.displayWorks" class="bibtex-box"> <div *ngIf="canReadFiles" > <h4>Import BibTeX</h4><span (click)="openBibTextWizard()" class="hide-importer">Hide import BibTeX</span> <div class="row full-height-row"> <div class="col-md-9 col-sm-9 col-xs-8"> <p> Import citations from BibTeX (.bib) files, including files exported from Google Scholar. More information on <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006973353" target="workspace.bibtexImporter.learnMore">importing BibTeX files</a>. </p> </div> <div class="col-md-3 col-sm-3 col-xs-4"> <span class="bibtext-options"> <a class="bibtex-cancel" (click)="openBibTextWizard()">Cancel</a> <label for="inputBibtex" *ngIf="!(worksFromBibtex?.length > 0)" class="import-label" >Choose file</label> <span *ngIf="worksFromBibtex?.length > 0" class="import-label" (click)="saveAllFromBibtex()">Save all</span> <input id="inputBibtex" name="textFiles" type="file" class="upload-button" accept="*" (change)="loadBibtexJs($event)" app-file-text-reader multiple/> </span> </div> </div> </div> <div class="bottomBuffer text-center" *ngIf="bibtexImportLoading && !bibtexParsingError" > <i class="glyphicon glyphicon-refresh spin x4 green" id="spinner"></i> </div> <div class="alert alert-block" *ngIf="bibtexParsingError"> <strong>This file cannot be read. Please check the BibTeX formatting and try again.</strong> <pre>{{bibtexParsingErrorText}}</pre> </div> <span class="dotted-bar" *ngIf="worksFromBibtex?.length > 0"></span> <!-- Bibtex Import Results List --> <ng-container *ngIf="!bibtexImportLoading"> <div *ngFor="let work of worksFromBibtex; let index = index; let first = first; let last = last;" class="bottomBuffer"> <div class="row full-height-row"> <div class="col-md-9 col-sm-9 col-xs-7"> <h3 class="workspace-title" [ngClass]="work.title?.value == null ? 'bibtex-content-missing' : ''"> <span *ngIf="work.title?.value != null">{{work.title.value}}</span> <span *ngIf="work.title?.value == null">&lt;TITLE MISSING&gt;</span> <span class="journaltitle" *ngIf="work.journalTitle?.value">{{work.journalTitle.value}}</span> </h3> <div class="info-detail"> <span *ngIf="work.publicationDate.year">{{work.publicationDate.year}}</span><span *ngIf="work.publicationDate?.month">-{{work.publicationDate.month}}</span><span *ngIf="work.publicationDate?.day">-</span><span *ngIf="work.publicationDate?.day">{{work.publicationDate.day}}</span><span *ngIf="work.publicationDate.year"> | </span> <span class="capitalize" *ngIf="work.workType?.value?.length > 0">{{work.workType.value}}</span> <span class="bibtex-content-missing small-missing-info" *ngIf="work.workType?.value?.length == 0">&lt;TYPE MISSING&gt;</span> </div> <div class="row" *ngIf="work?.workExternalIdentifiers[0]?.externalIdentifierId?.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details"> <li class="url-work"> <ul class="id-details"> <li *ngFor='let extID of work.workExternalIdentifiers | orderBy:["relationship.value", "externalIdentifierType.value"]; let index = index; let first = first; let last = last;' class="url-popover"> <span *ngIf="work?.workExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="'bibtexWork'+i" [activityType]="'work'"></ext-id-popover-ng2> </span> </li> </ul> </li> <li *ngIf="work.url?.value" class="url-popover url-work"> URL: <a href="{{work.url.value | urlProtocol}}" (mouseenter)="showURLPopOver('bibtexWork'+index)" (mouseleave)="hideURLPopOver('bibtexWork'+index)" [ngClass]="{'truncate-anchor' : moreInfo[group?.groupId] == false || moreInfo[group?.groupId] == undefined}" rel="noopener noreferrer" target="work.url.value">{{work.url.value}}</a> <div class="popover-pos"> <div class="popover-help-container"> <div class="popover bottom" [ngClass]="{'block' : displayURLPopOver['bibtexWork'+index] == true}"> <div class="arrow"></div> <div class="popover-content"> <a href="{{work.url.value}}" rel="noopener noreferrer" target="work.url.value">{{work.url.value}}</a> </div> </div> </div> </div> </li> </ul> </div> </div> </div> <div class="col-md-3 col-sm-3 col-xs-3 bibtex-options-menu"> <ul> <li><a (click)="rmWorkFromBibtex(work)" class="ignore glyphicon glyphicon-trash bibtex-button" title="Ignore"></a></li> <li><a *ngIf="work?.errors?.length == 0" (click)="addWorkFromBibtex(work)" class="save glyphicon glyphicon-floppy-disk bibtex-button" title="Save"></a></li> <li><a *ngIf="work?.errors?.length > 0" (click)="editWorkFromBibtex(work)" class="save glyphicon glyphicon-pencil bibtex-button" aria-label="Edit" title="Edit"></a></li> <li><span *ngIf="work?.errors?.length > 0"><a (click)="editWorkFromBibtex(work)"><i class="glyphicon glyphicon-exclamation-sign"></i>Needs edit</a></span></li> </ul> </div> </div> </div> </ng-container> </div> <!--End bibtex import wizard--> <!--Works list--> <div *ngIf="workspaceSrvc.displayWorks" class="workspace-accordion-content"> <div *ngIf="!isPublicPage" class="col-md-12 col-sm-12 col-xs-12"> <div class="work-bulk-actions row" *ngIf="worksService?.groups?.length"> <div class="pull-right" *ngIf="groupingSuggestionPresent"> <button class="btn btn-primary leftBuffer" (click)="mergeSuggestionConfirm()"> Manage similar works </button> </div> <ul class="sources-actions"> <li> <div class="left"> <input type="checkbox" [ngModel]="allSelected" (click)="toggleSelectAll()" /> </div> </li> <li> <div class="left leftBuffer bulk-edit-merge popover-help-container" (mouseenter)="showTooltip('worksBulkEditMerge')" (mouseleave)="hideTooltip('worksBulkEditMerge')"> <button class="btn btn-white-no-border" [disabled]="bulkSelectedCount < 2" (click)="mergeConfirm()"> <span class="edit-option-toolbar glyphicon glyphicon-resize-small"></span> <span>COMBINE</span> </button> <div class="popover top" [ngClass]="showElement['worksBulkEditMerge'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> Combine multiple versions of the same work. To activate this button, select 2 or more works. <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006894774" target="privacyToggle.help.more_information"> Learn more</a> </div> </div> </div> </li> <li> <div class="left leftBuffer bulk-edit-delete popover-help-container" (mouseenter)="showTooltip('worksBulkEditDelete')" (mouseleave)="hideTooltip('worksBulkEditDelete')"> <button class="btn btn-white-no-border" [disabled]="bulkSelectedCount < 1" (click)="deleteBulkConfirm()"> <span class="edit-option-toolbar glyphicon glyphicon-trash"></span> <span>DELETE</span> </button> <div class="popover top" [ngClass]="showElement['worksBulkEditDelete'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> Delete multiple works. To activate this button, select 1 or more works. </div> </div> </div> </li> <li> <div class="bulk-edit-privacy-control left leftBuffer"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(none +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(none +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: none != 'PUBLIC'}"><a aria-label="Everyone" (click)="setBulkGroupPrivacy('PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: none != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setBulkGroupPrivacy('LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: none != 'PRIVATE'}"><a aria-label="Only me" (click)="setBulkGroupPrivacy('PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container bulk-edit-privacy-help-container"> <div class="bulk-works-privacy-popover popover top privacy-bulk-works" [ngClass]="commonSrvc.shownElement[none +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </div> </li> </ul> <div class="notification-alert clear-fix bottomBuffer" *ngIf="showMergeWorksExtIdsError || showMergeWorksApiMissingExtIdsError"> Sorry, the works you selected couldn't be combined.&nbsp; <span *ngIf="showMergeWorksExtIdsError">At least 1 work must have an external identifier with a relationship of 'self'.</span> <span *ngIf="showMergeWorksApiMissingExtIdsError">1 or more of your selected works was added by a Trusted Party without an external identifier with a relationship of 'self' and cannot be combined.</span>&nbsp;<a target="groups.combine.no_external_ids_3" href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006894774">Learn more about combining works</a> <button *ngIf="showMergeWorksExtIdsError" class="btn btn-primary cancel-right pull-right topBuffer" (click)="dismissError('showMergeWorksExtIdsError')"> Dismiss </button> <button *ngIf="showMergeWorksApiMissingExtIdsError" class="btn btn-primary cancel-right pull-right topBuffer" (click)="dismissError('showMergeWorksApiMissingExtIdsError')"> Dismiss </button> </div> </div> </div> <div *ngIf="worksService.loading && !worksService.showPagination" class="text-center" id="workSpinner"> <i class="glyphicon glyphicon-refresh spin x4 green" id="spinner"></i> </div> <div class="paginatorContainer col-md-12 col-sm-12 col-xs-12" *ngIf="worksService.showPagination && !this.printView"> <mat-paginator [length]="worksService.paginationTotalAmountOfWorks" [pageSize]="worksService.paginationBatchSize" [pageSizeOptions]="[10, 50, 100]" [pageIndex]="worksService.paginationIndex" (page)="pageEvent($event)" > </mat-paginator> <i class="glyphicon glyphicon-refresh spin x2 green" id="spinner" *ngIf="worksService?.loading"></i> </div> <ul *ngIf="worksService?.groups?.length" class="workspace-publications bottom-margin-medium" id="body-work-list" role="presentation"> <li class="bottom-margin-small workspace-border-box card" *ngFor="let group of worksService.groups"> <div class="work-list-container" aria-labelledby="work.title"> <ul class="sources-edit-list"> <!--Edit sources--> <li *ngIf="editSources[group.groupId]" class="source-header" [ngClass]="{'source-active' : editSources[group.groupId] == true}" role="presentation"> <div class="sources-header"> <div class="row" role="presentation"> <div class="col-md-7 col-sm-7 col-xs-6"> Sources <span class="hide-sources" (click)="hideSources(group)">Close sources</span> </div> <div class="col-md-2 col-sm-2 hidden-xs"> Preferred </div> <div class="col-md-3 col-sm-3 col-xs-6 right padding-left-fix"> <div class="workspace-toolbar"> <ul class="workspace-private-toolbar"> <li class="works-details"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.groupId] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: group.activeVisibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="worksService.setGroupPrivacy(group.activePutCode, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: group.activeVisibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="worksService.setGroupPrivacy(group.activePutCode, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: group.activeVisibility != 'PRIVATE'}"><a aria-label="Only me" (click)="worksService.setGroupPrivacy(group.activePutCode, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </li> <!--End edit sources--> <!---Work info--> <ng-container *ngFor="let work of group.works; let index = index; let first = first; let last = last;"> <li *ngIf="group.activePutCode == work.putCode.value || editSources[group.groupId] == true"> <div class="row" *ngIf="group.activePutCode == work.putCode?.value"> <div class="col-md-9 col-sm-9 col-xs-7"> <div *ngIf="!isPublicPage" class="left rightBuffer bulkEditCheckbox"><input type="checkbox" name="bulkEditSelectAll" [(ngModel)]="bulkEditMap[work.putCode.value]" (change)="bulkEditSelect()" class="bulk-edit-input ng-pristine ng-valid"></div> <h3 class="workspace-title leftBuffer"> <span id="work.title">{{work.title.value}}</span> <span class="journaltitle" *ngIf="work.journalTitle?.value">{{work.journalTitle.value}}</span> </h3> <div class="info-detail"> <span *ngIf="work.publicationDate?.year">{{work.publicationDate.year}}</span><span *ngIf="work.publicationDate?.month">-{{work.publicationDate.month}}</span><span *ngIf="work.publicationDate?.day">-</span><span *ngIf="work.publicationDate?.day">{{work.publicationDate.day}}</span><span *ngIf="work.publicationDate?.year"> | </span> <span class="capitalize">{{work.workType.value}}</span> </div> </div> <div class="col-md-3 col-sm-3 col-xs-5 workspace-toolbar"> <ul class="workspace-private-toolbar" *ngIf="!editSources[group.groupId]"> <!--Bulk edit checkbox--> <!--Show details toggle--> <li class="works-details" *ngIf="!editSources[group.groupId]"> <a aria-label="toggle details" (click)="showDetailsMouseClick(group,$event)"> <span [ngClass]="(moreInfo[group?.groupId] == true) ? 'glyphicons collapse_top' : 'glyphicons expand'"> </span> </a> </li> <!--Visibility selector--> <li *ngIf="!isPublicPage"> <div [ngClass]="{'relative' : modal == false}" id="privacy-bar"> <ul class="privacyToggle" (mouseenter)="commonSrvc.showPrivacyHelp(group.activePutCode +'-privacy', $event, 145)" (mouseleave)="commonSrvc.hideTooltip(group.activePutCode +'-privacy')"> <li class="publicActive" [ngClass]="{publicInActive: work.visibility.visibility != 'PUBLIC'}"><a aria-label="Everyone" (click)="setGroupPrivacy(work.putCode.value, 'PUBLIC', $event)"></a></li> <li class="limitedActive" [ngClass]="{limitedInActive: work.visibility.visibility != 'LIMITED'}"><a aria-label="Trusted parties" (click)="setGroupPrivacy(work.putCode.value, 'LIMITED', $event)"></a></li> <li class="privateActive" [ngClass]="{privateInActive: work.visibility.visibility != 'PRIVATE'}"><a aria-label="Only me" (click)="setGroupPrivacy(work.putCode.value, 'PRIVATE', $event)"></a></li> </ul> </div> <div class="popover-help-container"> <div class="popover top privacy-myorcid3" [ngClass]="commonSrvc.shownElement[group.activePutCode +'-privacy'] == true ? 'block' : ''"> <div class="arrow"></div> <div class="popover-content"> <strong>Who can see this? </strong> <ul class="privacyHelp"> <li class="public" style="color: #009900;">everyone</li> <li class="limited" style="color: #ffb027;">trusted parties</li> <li class="private" style="color: #990000;">only me</li> </ul> <a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/articles/360006897614" target="privacyToggle.help.more_information">More information on visibility settings</a> </div> </div> </div> </li> </ul> <!--Inconsistent visibility warning--> <div *ngIf="!isPublicPage && !worksService.consistentVis(group) && !editSources[group.groupId]" class="vis-issue"> <div class="popover-help-container"> <span class="glyphicons circle_exclamation_mark" (mouseleave)="hideTooltip('vis-issue')" (mouseenter)="showTooltip('vis-issue')"></span> <div class="popover vis-popover bottom" *ngIf="showElement['vis-issue']"> <div class="arrow"></div> <div class="popover-content"> Data inconsistency found. Please click your preferred visibility setting to fix </div> </div> </div> </div> </div> </div> <!--Identifiers--> <div class="row" *ngIf="group.activePutCode == work.putCode.value"> <div class="col-md-12 col-sm-12 bottomBuffer"> <ul class="id-details clearfix"> <li class="url-work clearfix"> <ul class="id-details clearfix"> <li *ngFor='let extID of work?.workExternalIdentifiers;let i = index;trackBy:trackByIndex | orderBy:["relationship.value", "type.value"]' class="url-popover"> <span *ngIf="work?.workExternalIdentifiers[0]?.externalIdentifierId?.value?.length > 0"> <ext-id-popover-ng2 [extID]="extID" [putCode]="work.putCode.value+i" [activityType]="'work'"></ext-id-popover-ng2> </span> </li> </ul> </li> <li *ngIf="work.url?.value" class="url-popover url-work"> URL: <a rel="noopener noreferrer" href="{{work.url.value | urlProtocol}}" (mouseenter)="showURLPopOver(work.putCode.value)" (mouseleave)="hideURLPopOver(work.putCode.value)" [ngClass]="{'truncate-anchor' : moreInfo[group.groupId] == false || moreInfo[group.groupId] == undefined}" target="work.url.value">{{work.url.value}}</a> <div class="popover-pos"> <div class="popover-help-container"> <div class="popover bottom" [ngClass]="{'block' : displayURLPopOver[work.putCode.value] == true}"> <div class="arrow"></div> <div class="popover-content"> <a rel="noopener noreferrer" href="{{work.url.value}}" target="work.url.value">{{work.url.value}}</a> </div> </div> </div> </div> </li> </ul> </div> </div> <div class="more-info" *ngIf="moreInfo[group?.groupId] && group.activePutCode == work.putCode.value"> <div id="ajax-loader" *ngIf="worksService.details[work.putCode.value] == undefined"> <span id="ajax-loader"><i id="ajax-loader" class="glyphicon glyphicon-refresh spin x4 green"></i></span> </div> <div class="content" *ngIf="worksService.details[work.putCode.value] != undefined"> <span class="dotted-bar"></span> <div class="row"> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].translatedTitle?.content" > <div class="bottomBuffer"> <strong>Translated title</strong> <span><i>({{worksService.details[work.putCode.value].translatedTitle.languageName}})</i></span> <div>{{worksService.details[work.putCode.value].translatedTitle.content}}</div> </div> </div> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].languageCode?.value" > <div class="bottomBuffer"> <strong>Language</strong> <div>{{worksService.details[work.putCode.value].languageName.value}}</div> </div> </div> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].subtitle?.value" > <div class="bottomBuffer"> <strong> Subtitle </strong> <div>{{worksService.details[work.putCode.value].subtitle.value}}</div> </div> </div> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].url?.value" > <div class="bottomBuffer"> <strong> URL </strong> <div> <a href="{{worksService.details[work.putCode.value].url.value | urlProtocol}}" target="url.value">{{worksService.details[work.putCode.value].url.value}}</a> </div> </div> </div> </div> <div class="row bottomBuffer" *ngIf="worksService.details[work.putCode.value].citation?.citation?.value" > <div class="col-md-12"> <strong>Citation</strong> <span> (<span *ngIf="worksService.details[work.putCode.value].citation?.citationType?.value" ><i>{{worksService.details[work.putCode.value].citation.citationType.value}}</i></span>) </span> <span *ngIf="showBibtex[work.putCode.value] && worksService.details[work.putCode.value].citation?.citationType?.value == 'bibtex'"> <a class="toggle-tag-option" (click)="bibtexShowToggle(work.putCode.value)"> [Switch view] </a> </span> <span *ngIf="(showBibtex[work.putCode.value] == null || showBibtex[work.putCode.value] == false) && worksService.details[work.putCode.value].citation?.citationType?.value == 'bibtex'"> <a class="toggle-tag-option" (click)="bibtexShowToggle(work.putCode.value)"> [Switch view] </a> </span> </div> <div class="col-md-12"> <div *ngIf="worksService.details[work.putCode.value].citation?.citationType?.value != 'bibtex'"> <span> {{worksService.details[work.putCode.value].citation.citation.value}} </span> </div> <div *ngIf="(showBibtex[work.putCode.value] == null || showBibtex[work.putCode.value] == false) && worksService.details[work.putCode.value].citation?.citationType?.value == 'bibtex'" class="col-md-offset-1 col-md-11 col-sm-offset-1 col-sm-11 col-xs-12 citation-raw">{{worksService.details[work.putCode.value].citation.citation.value}} </div> <div class="row" *ngIf="showBibtex[work.putCode.value] && (worksService.bibtexJson[work.putCode.value]==null || worksService.bibtexJson[work.putCode.value].length==0)"> <div class="col-md-offset-1 col-md-6">View not available</div> </div> <div class="row" *ngFor='let bibJSON of worksService.bibtexJson[work.putCode.value]; let index = index; let first = first; let last = last;'> <div *ngIf="showBibtex[work.putCode.value]"> <div class="col-md-offset-1 col-md-2 col-sm-offset-1 col-sm-1 col-xs-offset-1 col-xs-4">{{bibJSON.entryType}}</div> <div class="col-md-8 col-sm-9 col-xs-offset-1 col-xs-6">{{bibJSON.citationKey}}</div> <div *ngFor="let bibEntry of bibJSON.entryTags"> <div *ngFor="let tag of bibEntry | keys"> <div class="col-md-offset-1 col-md-2 col-sm-offset-1 col-sm-1 col-xs-offset-1 col-xs-4">{{tag.key}}</div> <div class="col-md-8 col-sm-9 col-xs-offset-1 col-xs-6">{{tag.value | latex}}</div> </div> </div> </div> </div> </div> </div> <div class="row bottomBuffer" *ngIf="worksService.details[work.putCode.value].shortDescription?.value" > <div class="col-md-12"> <strong> Description </strong> <div style="white-space: pre-wrap;">{{worksService.details[work.putCode.value].shortDescription.value}}</div> </div> </div> <div class="row bottomBuffer"> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].countryCode?.value" > <div class="bottomBuffer"> <strong>Country of publication</strong> <div>{{worksService.details[work.putCode.value].countryName.value}}</div> </div> </div> <div class="col-md-6" *ngIf="worksService.details[work.putCode.value].contributors?.length > 0" > <div class="bottomBuffer"> <strong> Contributor </strong> <div *ngFor="let contributor of worksService.details[work.putCode.value].contributors; let index = index; let first = first; let last = last;"> <ng-container *ngIf="!userIsContributor(contributor)">{{contributor.creditName?.value}} <span>{{contributor | contributorFilter}}</span></ng-container> <ng-container *ngIf="userIsContributor(contributor)"><span>{{contributor.orcid.value}}</span></ng-container> </div> </div> </div> </div> <!--Added/last modified dates--> <div class="row bottomBuffer"> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Added</strong><br> <span>{{worksService.details[work.putCode.value].createdDate | ajaxFormDateToISO8601}}</span> </div> </div> <div class="col-md-6"> <div class="bottomBuffer"> <strong>Last modified</strong><br> <span>{{worksService.details[work.putCode.value].lastModified | ajaxFormDateToISO8601}}</span> </div> </div> </div><!--Added/last modified dates--> </div> </div> <div class="row source-line" *ngIf="group.activePutCode == work.putCode.value"> <!--Edit sources--> <div class="col-md-7 col-sm-7 col-xs-12" *ngIf="editSources[group.groupId]"> <ng-container *ngIf="(work.assertionOriginClientId && work.assertionOriginClientId !== work.source) || (work.assertionOriginOrcid && work.assertionOriginOrcid !== work.source)"> {{work.assertionOriginName || work.assertionOriginOrcid}} <i>via</i> </ng-container> {{(work.sourceName == null || work.sourceName == '') ? work.source : work.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-10" *ngIf="editSources[group.groupId]"> <div *ngIf="editSources[group.groupId]"> <span class="glyphicon glyphicon-star" *ngIf="work.putCode.value == group.defaultPutCode"></span><span *ngIf="work.putCode.value == group.defaultPutCode"> Preferred source</span> <a (click)="makeDefault(group, work.putCode.value)" *ngIf="work.putCode.value != group.defaultPutCode && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> </div> <div class="col-md-2 col-sm-2 trash-source" *ngIf="editSources[group.groupId]"> <div *ngIf="editSources[group.groupId]"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(work)" (click)="openEditWork(work.putCode.value)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(work)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditWork(work.putCode.value)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteWorkConfirm(work.putCode.value, false)" title="Delete {{work.title.value}}"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <!--Edit sources--> </div> <div *ngIf="group.activePutCode != work.putCode.value" class="row source-line"> <div class="col-md-7 col-sm-7 col-xs-12"> <a (click)="group.activePutCode = work.putCode.value"> <ng-container *ngIf="(work.assertionOriginClientId && work.assertionOriginClientId !== work.source) || (work.assertionOriginOrcid && work.assertionOriginOrcid !== work.source)"> {{work.assertionOriginName || work.assertionOriginOrcid}} <i>via</i> </ng-container> {{(work.sourceName == null || work.sourceName == '') ? work.source : work.sourceName }} </a> </div> <div class="col-md-3 col-sm-3 col-xs-10"> <span class="glyphicon glyphicon-star" *ngIf="work.putCode.value == group.defaultPutCode"></span><span *ngIf="work.putCode.value == group.defaultPutCode"> Preferred source</span> <a (click)="makeDefault(group, work.putCode.value); " *ngIf="work.putCode.value != group.defaultPutCode && !isPublicPage"> <span class="glyphicon glyphicon-star-empty"></span> Make preferred </a> </div> <!--Action buttons--> <div class="col-md-2 col-sm-2 col-xs-2 trash-source"> <ul *ngIf="!isPublicPage" class="sources-actions"> <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(work)" (click)="openEditWork(work.putCode.value)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(work)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditWork(work.putCode.value)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li> <div class="popover-help-container"> <a (click)="deleteWorkConfirm(work.putCode.value, false)"> <span class="glyphicon glyphicon-trash" title="Delete {{work.title.value}}"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> <div class="row source-line" *ngIf="!editSources[group.groupId]"> <div class="col-md-7 col-sm-7 col-xs-12"> <b>Source:</b> <ng-container *ngIf="(work.assertionOriginClientId && work.assertionOriginClientId !== work.source) || (work.assertionOriginOrcid && work.assertionOriginOrcid !== work.source)"> {{work.assertionOriginName || work.assertionOriginOrcid}} <i>via</i> </ng-container> {{(work.sourceName == null || work.sourceName == '') ? work.source : work.sourceName }} </div> <div class="col-md-3 col-sm-3 col-xs-9"> <span class="glyphicon glyphicon-star"></span><span> Preferred source</span> <span *ngIf="group?.works?.length != 1"> (</span><a (click)="showSources(group, $event)" *ngIf="group?.works?.length != 1">of {{group.works.length}}</a><span *ngIf="group?.works?.length != 1">)</span> </div> <div class="col-md-2 col-sm-2 col-xs-3" *ngIf="group.activePutCode == work.putCode.value"> <ul *ngIf="!isPublicPage" class="sources-options" > <li> <div class="popover-help-container"> <a aria-label="Edit" *ngIf="userIsSource(work)" (click)="openEditWork(work.putCode.value)"> <span class="glyphicon glyphicon-pencil"></span> <div class="popover top tooltip-edit tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="userIsSource(work)">Edit my version</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && group.userVersionPresent" (click)="showSources(group,$event)"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && group.userVersionPresent"> Open sources to<br /> edit your version </span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0" (click)="openEditWork(work.putCode.value)"> <span class="glyphicons git_create"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length > 0">Make a copy and edit</span> </div> </div> </a> <a *ngIf="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> <span class="glyphicons git_create grey"></span> <div class="popover top tooltip-edit-source tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span ng-show="!userIsSource(work) && !group.userVersionPresent && group.externalIdentifiers.length == 0"> Items must have an<br /> identifier to copy/edit </span> </div> </div> </a> </div> </li> <li *ngIf="!(editSources[group.groupId] || group?.works?.length == 1)"> <div class="popover-help-container"> <a (click)="showSources(group,$event)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> <li *ngIf="group?.works?.length == 1"> <div class="popover-help-container"> <a (click)="deleteWorkConfirm(group.activePutCode, false)"> <span class="glyphicon glyphicon-trash"></span> <div class="popover top tooltip-delete tooltip-text"> <div class="arrow"></div> <div class="popover-content"> <span>Delete</span> </div> </div> </a> </div> </li> </ul> </div> </div> </li> </ng-container> </ul> </div> </li> </ul> <div class="paginatorContainer col-md-12 col-sm-12 col-xs-12" *ngIf="worksService.showPagination && !this.printView"> <mat-paginator [length]="worksService.paginationTotalAmountOfWorks" [pageSize]="worksService.paginationBatchSize" [pageSizeOptions]="[10, 50, 100]" [pageIndex]="worksService.paginationIndex" (page)="pageEvent($event)" > </mat-paginator> <i class="glyphicon glyphicon-refresh spin x2 green" id="spinner" *ngIf="worksService?.loading"></i> </div> <div *ngIf="worksService?.loading == false && worksService?.groups?.length == 0"> <strong> Works captures your research outputs, e.g. publications, conference presentations, data sets, and more. <a role="button" *ngIf="noLinkFlag" (click)="showWorkImportWizard()">Add works.</a> <span *ngIf="!noLinkFlag">Add works.</span> </strong> </div> </div> </div> </script> <works-ng2 publicview="true"></works-ng2> <!-- Peer Review --> <script type="text/ng-template" id="last-modified-ng2-template"> <div id="public-last-modified" *ngIf="!hideLastModified"> <p class="small italic">Record last modified Feb 9, 2021 9:42:01 AM</p> </div> </script> <last-modified-ng2></last-modified-ng2> <script type="text/ng-template" id="spam-ng2-template"> <div class="col-md-12" *ngIf="!hideSpam"> <input type="button" (click)="reportSpam()" class="spam-button btn btn-primary" value="Report as spam"/> </div> </script> <spam-ng2></spam-ng2> </div> </div> </div> </div> <script type="text/ng-template" id="spam-success-message-ng2-template"> <div style="padding: 20px;"> <p>Success! This record has been reported as suspicious. Our team will review.</p> <br /> <button class="spam-button btn btn-white-no-border" (click)="close()">Close</button> </div> </script><modalngcomponent elementheight="248" elementid="spamSuccess" elementwidth="500"> <spam-success-message-ng2></spam-success-message-ng2> </modalngcomponent><!-- Ng2 component --> <script type="text/ng-template" id="spam-error-message-ng2-template"> <div style="padding: 20px;"> <p>Sorry! Something went wrong. Please contact support to report this record.</p> <br /> <div class="row"> <div class="col-xs-6"> <a role="button" href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/en-us/requests/new" target="_blank" class="spam-button-left btn btn-white-no-border" >Contact Support</a> </div> <div class="col-xs-6"> <button class="spam-button btn btn-white-no-border" (click)="close()">Close</button> </div> </div> </div> </script><modalngcomponent elementheight="248" elementid="spamError" elementwidth="500"> <spam-error-message-ng2></spam-error-message-ng2> </modalngcomponent><!-- Ng2 component --> <!--Org ID popover template used in v3 affiliations and research resources--> <script type="text/ng-template" id="org-identifier-popover-ng2-template"> <span *ngIf="!link" class="url-popover"> {{displayType}}: {{value}} </span> <span *ngIf="link" class="url-popover"> {{displayType}}: <a rel="noopener noreferrer" href="{{link}}" class="truncate-anchor" target="orcid.blank" rel="noopener norefferer" (mouseenter)="showURLPopOver(putCode)" (mouseleave)="hideURLPopOver(putCode)">{{value}}</a> <div class="popover-pos"> <div class="popover-help-container"> <div class="popover bottom" [ngClass]="{'block' : displayURLPopOver[putCode] == true}"> <div class="arrow"></div> <div class="popover-content"> <a rel="noopener noreferrer" href="{{link}}" target="orcid.blank" class="ng-binding">{{link}}</a> </div> </div> </div> </div> </span> <div *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]" class="col-md-11 bottomBuffer info-detail leftBuffer clearfix"> <!--Org disambiguated name--> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.value">{{commonSrvc.orgDisambiguatedDetails[type+value]?.value}}</span> <!--Org disambiguated city--> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.city || commonSrvc.orgDisambiguatedDetails[type+value]?.region || commonSrvc.orgDisambiguatedDetails[type+value]?.country">: </span> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.city">{{commonSrvc.orgDisambiguatedDetails[type+value]?.city}}</span> <!--Org disambiguated region--> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.city && commonSrvc.orgDisambiguatedDetails[type+value]?.region">, </span> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.region">{{commonSrvc.orgDisambiguatedDetails[type+value]?.region}}</span> <!--Org disambiguated country--> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.country && (commonSrvc.orgDisambiguatedDetails[type+value]?.city || commonSrvc.orgDisambiguatedDetails[type+value]?.region)">, </span> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.country">{{commonSrvc.orgDisambiguatedDetails[type+value]?.country}}</span> <!--Org disambiguated URL--> <span *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.url"><br> <a rel="noopener noreferrer" href="{{commonSrvc.orgDisambiguatedDetails[type+value]?.url}}" target="url"> <span>{{commonSrvc.orgDisambiguatedDetails[type+value]?.url}}</span></a> </span> <!--Org disambiguated ext ids--> <div *ngIf="commonSrvc.orgDisambiguatedDetails[type+value]?.orgDisambiguatedExternalIdentifiers"> <strong>Other organization identifiers provided by {{displayType}}</strong><br> <ul class="reset"> <li *ngFor="let orgDisambiguatedExternalIdentifier of commonSrvc.orgDisambiguatedDetails[type+value]?.orgDisambiguatedExternalIdentifiers"> {{orgDisambiguatedExternalIdentifier.identifierType}}: <span *ngIf="orgDisambiguatedExternalIdentifier.preferred && !isUrl(orgDisambiguatedExternalIdentifier.preferred)">{{orgDisambiguatedExternalIdentifier.preferred}} (preferred)</span> <span *ngIf="orgDisambiguatedExternalIdentifier.preferred && isUrl(orgDisambiguatedExternalIdentifier.preferred)"> <a rel="noopener noreferrer" target="orcid.blank" href="{{orgDisambiguatedExternalIdentifier.preferred}}">{{orgDisambiguatedExternalIdentifier.preferred}} </a> (preferred)</span> <!-- Put the ',' only if there is more than one ext id or if the only one is not the same as the preferred one --> <span *ngIf="orgDisambiguatedExternalIdentifier.all && (orgDisambiguatedExternalIdentifier.all.length > 1 || (orgDisambiguatedExternalIdentifier.preferred && (orgDisambiguatedExternalIdentifier.all[0] != orgDisambiguatedExternalIdentifier.preferred)))">,</span> <span *ngIf="orgDisambiguatedExternalIdentifier.all"> <span *ngFor="let orgDisambiguatedExternalIdentifierAll of orgDisambiguatedExternalIdentifier.all;let last = last"> <span *ngIf="orgDisambiguatedExternalIdentifierAll != orgDisambiguatedExternalIdentifier.preferred"> <ng-container *ngIf="isUrl(orgDisambiguatedExternalIdentifierAll)"> <a rel="noopener noreferrer" target="orcid.blank" href="{{orgDisambiguatedExternalIdentifierAll}}">{{orgDisambiguatedExternalIdentifierAll}} </a>{{last ? '' : ', '}} </ng-container> <ng-container *ngIf="!isUrl(orgDisambiguatedExternalIdentifierAll)"> {{orgDisambiguatedExternalIdentifierAll}}{{last ? '' : ', '}} </ng-container> </span> </span> </span> </li> </ul> </div> </div> </script> <!--Content from other templates inside public macro tags appears here--> </div> </div><!-- .container --> <!--FOOTER--> <!--hide footer if oauth login--> <script type="text/ng-template" id="footer-ng2-template"> <div class="header2-see-more container" role="Complementary" aria-label="ORCID statistics"> <div> {{liveIds}} ORCID iDs and counting. <a href="{{getBaseUri()}}/statistics" title=""> See more... </a> </div> </div> <footer class="footer-main" aria-label="footer"> <div class="container" role="presentation"> <span id="noop" role="presentation"><!-- For automated tests --> </span> <div class="row footer-row-container" role="presentation"> <div class="footer-row-text-container" role="presentation"> <div> <div class="footer-row-icons-container" role="presentation"> <a href="{{aboutUri}}" alt="ORCID logo"> <img *ngIf="assetsPath != null" src="{{assetsPath + '/img/orcid-logo.svg'}}" width="110px" alt="ORCID logo"> </a> <nav aria-label="social"> <ul class="inline-list" role="presentation"> <li role="presentation"><a class="social-button" href="https://web.archive.org/web/20210224093315/https://twitter.com/orcid_org" target="social-twitter" rel="noreferrer"><span class="social social-twitter" aria-label="twitter"></span></a></li> <li role="presentation"><a class="social-button" href="https://web.archive.org/web/20210224093315/http://orcid.org/blog/feed" target="social-rss" rel="noreferrer"><span class="social social-rss" aria-label="rss"></span></a></li> <li role="presentation"><a class="social-button" href="https://web.archive.org/web/20210224093315/https://github.com/ORCID" target="social-github" rel="noreferrer"><span class="social social-github" aria-label="github"></span></a></li> </ul> </nav> </div> </div> <p role="presentation"> <a rel="license noreferrer" target="footer.copyright_cc0" href="https://web.archive.org/web/20210224093315/http://creativecommons.org/publicdomain/zero/1.0/" ><img *ngIf="assetsPath != null" src="{{assetsPath + '/img/cc0_80x15.png'}}" style="border-style: none; margin-right: 4px;" alt="CC0" /></a> The text of this website is published under a <a rel="license noreferrer" target="footer.copyright_cc0" class="footer-url" href="https://web.archive.org/web/20210224093315/http://creativecommons.org/publicdomain/zero/1.0/">CC0 license</a>. Images and marks are subject to copyright and trademark protection.</p> <nav> <ul class="inline-list"> <li><a href="{{aboutUri}}/about">About ORCID</a></li> <li><a href="{{aboutUri}}/footer/privacy-policy">Privacy Policy </a></li> <li><a href="{{aboutUri}}/content/orcid-terms-use">Terms of Use</a></li> <li><a href="{{aboutUri}}/content/orcid-accessibility-statement">Accessibillity Statement</a></li> <li><a href="https://web.archive.org/web/20210224093315/https://support.orcid.org/hc/en-us/requests/new">Contact us</a></li> <li><a href="{{aboutUri}}/orcid-dispute-procedures">Dispute procedures</a></li> <li><a href="{{aboutUri}}/trademark-and-id-display-guidelines/">Brand Guidelines</a></li> </ul> </nav> </div> </div> </div> </footer> <form action="{{getBaseUri()}}" aria-hidden="true"> <input id="imageUrl" type="hidden" value="{{assetsPath}}/images"> </form> </script> <footer-ng2></footer-ng2> <!--Content from this template (below) or other templates inside base macro tags appears here--> <script src="//web.archive.org/web/20210224093315js_/http://orcid.org/static/release-1.294.8_patch_1/javascript/ng1Orcid/angular_orcid_generated.js"></script> <script type="text/javascript"> var lang = OrcidCookie.getCookie('locale_v3'); </script> <script type="text/javascript"> var head = document.getElementsByTagName('head')[0]; var urlParams = new URLSearchParams(location.search); <!-- Zendesk Widget script --> <!--Documentation https://support.zendesk.com/hc/en-us/articles/115009522787--> if(window.location.pathname.indexOf("/print") < 0 && window.location.pathname.indexOf("/oauth") < 0 && (urlParams.get('oauth') == null || typeof(urlParams.get('oauth')) === 'undefined')){ var supportWidget = document.createElement("script"); supportWidget.src = 'https://web.archive.org/web/20210224093315/https://static.zdassets.com/ekr/snippet.js?key=b8313acd-6439-4894-b431-8c5a2ae9e7cb'; supportWidget.type = 'text/javascript'; supportWidget.id = 'ze-snippet'; head.appendChild(supportWidget); } </script> </body> </html> <!-- random-length HTML comment: 59x2AyKSwqRxuQtKCURG6kpxSoGureMkd9cexluhRBTBPCJPXYVR68EOmI6TnJ2GGSi23SXKSqJhrSxCoGTlDWxpeu9H1zO5HuvBDJJVxT0ejleOqyxtKkYoSVuHK6DQqyRt5YCrr1JPaodGcOxkyKMHd6Om2P2jCHQ7fRmLIwaga1n0DYa1im6ChJoZYe6alLWEc8PiunEIcp8fCWVi7RkeaM1xqwNP7hUXgh3OJ5XjjTDlqYJnnsFC26zhqAwniE8Ck1QrvnQU7R3lnCORsTRlNGI4E4fm7emhT3MEeaYbsRAVSOkAf1lr5rjAkEkhgNC0EO2imP8Ue8owLOvqEUV9C47m7gHbtHPxTIT5XRQzQ2mZGVFIpZIpTDPOjUqQb5BuBVqWk4MywwN0HR9uqFY7GnMq804Xt6IvPwHzoRoYD1MIIJ1yOPuT069yw3MdxSOCCU2olgCnVOtcYkQkzA3q40cosmIf2Ui4oaiO4izNvipJH4r42jkxZBZHnhlg0JYeh5qZddmOAQVHKBBCkkx7lNDMsoqivFBQ8rpZJ --><!-- FILE ARCHIVED ON 09:33:15 Feb 24, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 14:05:32 Mar 06, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.826 exclusion.robots: 0.04 exclusion.robots.policy: 0.024 esindex: 0.015 cdx.remote: 18.33 LoadShardBlock: 266.941 (3) PetaboxLoader3.datanode: 156.772 (5) PetaboxLoader3.resolve: 498.27 (3) load_resource: 404.014 loaddict: 44.315 -->

Pages: 1 2 3 4 5 6 7 8 9 10