diff --git a/primo-explore/custom/41SLSP_EPF-prod/css/custom1.css b/primo-explore/custom/41SLSP_EPF-prod/css/custom1.css index 0b07473..0dd7935 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/css/custom1.css +++ b/primo-explore/custom/41SLSP_EPF-prod/css/custom1.css @@ -1,980 +1,990 @@ /* Affichage des collections */ /* Supprime le chevauchement du titre */ prm-collection-gallery-header .collection-header-inner.has-transparent-topbar{ margin-top: 0px !important; } /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*************************** Central Package CSS ******************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*************** Navigation ******************/ /*Font Navigation and buttons*/ #mainMenu > div > a, button#signInBtn, button#more-links-button, prm-topbar > div > prm-user-area-expandable > md-menu > button > span { font-size: small !important; font-weight: 500 !important; color: #111 !important; } /*hover effect Navigation and buttons*/ #mainMenu > div > a:hover, button#signInBtn:hover, prm-topbar > div > prm-user-area-expandable > md-menu > button:hover, button#more-links-button:hover, prm-search-bookmark-filter > a:hover, a#favorites-button:hover, a#search-button:hover, .md-button.button-as-link:hover:not([disabled]), .md-button.button-link:hover:not([disabled]), .md-button.button-link:focus:not([disabled]), prm-user-area-expandable .button-with-menu-arrow:hover .menu-arrow:hover:not([disabled]), button.item-expand-button.md-button.md-primoExplore-theme.md-ink-ripple:hover:not([disabled]), button.item-expand-button.md-button.md-primoExplore-theme.md-ink-ripple:focus:not([disabled]) { background-color: #ddd !important; color: #111 !important; } /*remove capitalized text*/ .md-button { text-transform: none; } /*Menu button*/ button.button-with-menu-arrow.md-button.md-primoExplore-theme.md-ink-ripple:hover, button#signInBtn, .md-button.button-link, .md-button.button-as-link.link-alt-color, prm-icon md-icon, .section-title prm-icon, prm-icon.rotate-180, svg#chevron-up, span.user-name, span.menu-arrow, .md-button.button-as-link, #sidebar-trigger > prm-icon > md-icon { color: #111 !important; } /*hide hover effect on Library Logo*/ #banner > a.md-button.md-primoExplore-theme.md-ink-ripple:hover { background: none; } /*background buttons*/ prm-search-bookmark-filter .md-button { background-color: #fff !important; } /*hiding Refworks from the pulldown menu*/ .my-refworks-ctm, .my-refworks-separator-ctm { display: none; } /*switch to advanced search button*/ button.switch-to-advanced.zero-margin.button-with-icon.md-button.md-primoExplore-theme.md-ink-ripple { border-style: solid; border-width: 1px; border-radius: 5px; } .md-button.button-as-link { line-height: 36px; padding: 0 12px; } .md-button.md-primary:hover:not([disabled]), .md-button.md-primary:focus:not([disabled]), prm-favorites-labels .md-chips .md-chip.toggleable-chip:not(.chip-toggled-on) .md-chip-content:hover:not([disabled]), prm-favorites-labels .md-chips .md-chip:not(.chip-toggled-on) .md-chip-content:hover:not([disabled]), .bar prm-authentication .md-button:hover:not([disabled]), button.dismiss-alert-button:hover { color: #fff; background-color: #111; } /*the main color border on mobile view*/ @media (max-width: 599px) { prm-topbar .top-nav-bar { border-bottom-style: solid; border-bottom-width: 8px; } } .md-button.button-as-link { line-height: 36px; padding: 0 6px; } .md-autocomplete-suggestions li { white-space: nowrap; } /*************** Main Content ******************/ /*backgound of the Textboxes Homepage*/ prm-search > div > md-content, md-card.default-card._md.md-primoExplore-theme { background-color: #fff !important; border-radius: 3px; } /*first header of the Textboxes*/ .cardbox h1 { font-size: 48px; line-height: 56px; } /*second header of the Textboxes*/ .cardbox h2 { font-size: 32px; line-height: 36px; } /*third header of the Textboxes (if needed)*/ .cardbox h3 { font-size: 26px; line-height: 30px; } /*removes the upper and lower space in a list */ .cardbox ul, .cardbox ol { margin-top: 0px !important; margin-bottom: 0px !important; } /*links in the textboxes*/ md-card-content a, prm-service-details a { color: #222222 !important; } md-card-content a, prm-service-details a, div.courier-info > span a { text-decoration: underline !important; } md-card-content a:hover, prm-service-details a:hover { color: #111; background-color: rgba(47, 47, 47, 0.1) !important; } /*Responsive Video Frame*/ .resp-container { position: relative; overflow: hidden; padding-top: 56.25%; } .resp-iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; } /*footer layout*/ md-card.prm-primary-bg.psfooter { margin: 16px 0 0 0; } /*footer layout*/ md-card.prm-primary-bg.psfooter-legal { margin: 1px 0 0 0; } /*Responsive footer layout*/ @media (min-width: 960px) { md-card-content.prm-primary-bg.layout-align-gt-sm-end-stretch.flex-gt-sm-70 { text-align: end; } } /*footer links*/ md-icon.ps_icon, a.ps_link { margin-right: 5%; text-decoration: underline; } /*md-icon.ps_icon:hover, a.ps_link:hover, a.ps_link.legal:hover, span.legal a:hover { background-color: rgba(61,110,148,.1) !important; }*/ /*footer text*/ md-card-content.prm-primary-bg { font-weight: 300; } /*links in the legal part of the footer*/ a.ps_link.legal, span.legal { font-size: 14px; font-weight: 300; } /************************************************************************************************ span.legal { color: #14413c; } */ span.legal > a { /*color: #14413c;*/ font-weight: 600; } /*main container width for footer positioning*/ prm-static.md-padding.flex { min-width: 100%; padding: 0; } /*mainly white background*/ .prm-primary-bg.prm-hue1, prm-atoz-search-bar.prm-hue1, prm-browse-search-bar.prm-hue1, prm-collection-gallery-header .prm-hue1.collection-header-inner, prm-newspapers-search-bar.prm-hue1, prm-search-bar.prm-hue1, prm-spinner.prm-hue1.overlay-cover.light-on-dark:after, prm-tags-search-bar.prm-hue1, prm-topbar .top-nav-bar, prm-tree-nav prm-spinner .prm-hue1.diamond { background-color: #fff !important; } /*font color on white background*/ .hoverable-over-dark, .md-button.button-over-dark, prm-main-menu[menu-type=full] .md-button.md-focused, prm-main-menu[menu-type=full] .md-button .md-input-container-dummy > .md-select-dummy:focus, prm-main-menu[menu-type=full] .md-button:focus, prm-main-menu[menu-type=full] .md-button:hover, prm-main-menu[menu-type=full] .md-button md-select:focus, prm-main-menu[menu-type=full] .overlay-menu-item.md-focused, prm-main-menu[menu-type=full] .overlay-menu-item .md-input-container-dummy > .md-select-dummy:focus, prm-main-menu[menu-type=full] .overlay-menu-item:focus, prm-main-menu[menu-type=full] .overlay-menu-item:hover, prm-main-menu[menu-type=full] .overlay-menu-item md-select:focus, prm-main-menu[menu-type=full] md-button:focus, prm-main-menu[menu-type=full] md-button:hover, prm-topbar .md-button, prm-user-area .md-button.user-menu-button, prm-user-area md-fab-toolbar ._md-fab-action-item .md-button, prm-user-area md-fab-toolbar ._md-fab-action-item md-input-container, prm-user-area md-fab-toolbar .md-fab-action-item .md-button, prm-user-area md-fab-toolbar .md-fab-action-item md-input-container { color: #222 !important; } /*************** Brief results ******************/ /*color of the Alertbar*/ .bar.alert-bar, .classic-input .search-scope, .prm-alert-bg { /*background-color: #8dd8d8 !important;*/ border: none !important; } /*backgound search results boxes*/ .list-item-wrapper { background-color: #f9f9f9; } /*Title color*/ prm-brief-result .item-title span { color: #333; } prm-brief-result .item-title span:hover { color: #111; background-color: rgba(47, 47, 47, 0.1) !important; } /*remove hover effect from title links*/ .md-button.arrow-link-button .button-content:focus, .md-button.arrow-link-button .button-content:hover, .md-button.arrow-link-button .hover.button-content, .md-button.arrow-link-button:focus .button-content, .md-button.arrow-link-button:hover .button-content, .recommendations-title.hover > span > span, .recommendations-title:hover > span > span, a.hover, a:focus, a:hover, prm-chapters-and-reviews md-card > .md-button:focus .item-title span, prm-chapters-and-reviews md-card > .md-button:hover .item-title span, prm-citation-trails-item.active-item md-card > .md-button:focus .item-title span, prm-citation-trails-item.active-item md-card > .md-button:hover .item-title span, prm-tags-list .md-chips .md-chip .md-chip-content:hover strong, prm-tags-list .md-chips md-chip .md-chip-content:hover strong, prm-tags-list md-chips .md-chip .md-chip-content:hover strong, prm-tags-list md-chips md-chip .md-chip-content:hover strong { box-shadow: none !important; } /*background color of bookmarked items*/ .list-item-wrapper .item-bookmarked, .list-item-wrapper .item-bookmarked:hover, .prm-highlight, .prm-highlight.prm-hue1, prm-breadcrumbs .md-chip.persistent-facet, prm-breadcrumbs .prm-hue1.md-chip.persistent-facet { background-color: #ddd !important; } /*hover effect on all Links*/ .md-button.arrow-link-button .button-content:focus, .md-button.arrow-link-button .button-content:hover, .md-button.arrow-link-button .hover.button-content, .md-button.arrow-link-button:focus .button-content, .md-button.arrow-link-button:hover .button-content, .prm-links-background.prm-hue-1, .recommendations-title.hover > span > span, .recommendations-title:hover > span > span, a.hover, a:focus, a:hover, prm-chapters-and-reviews md-card > .md-button:focus .item-title span, prm-chapters-and-reviews md-card > .md-button:hover .item-title span, prm-citation-trails-item.active-item md-card > .md-button:focus .item-title span, prm-citation-trails-item.active-item md-card > .md-button:hover .item-title span, prm-tags-list .md-chips .md-chip .md-chip-content:hover strong, prm-tags-list .md-chips md-chip .md-chip-content:hover strong, prm-tags-list md-chips .md-chip .md-chip-content:hover strong, prm-tags-list md-chips md-chip .md-chip-content:hover strong { color: #222 !important; } div.custom-links-container.layout-wrap.layout-align-sm-start-start.layout-align-center-start.layout-row > div > a:hover { background-color: #6b6b6b !important; } /*Facet titles*/ span.section-title-header:hover { color: #8a8a8a !important; } /*underlined search results*/ /*.text-highlight, mark { box-shadow: inset 0 -0.15em 0 0 #8dd8d8; }*/ /*versions link and other*/ .getit, .md-button.arrow-link-button prm-search-result-frbr-line .button-content > prm-icon:first-child, .prm-notice, .status-maybe, .worldcat, [class*=_more], [class*=_unknown], [class*=check_], [class*=does_not_exist], [class*=may_], [class*=NFT], prm-search-result-frbr-line .md-button.arrow-link-button .button-content > prm-icon:first-child, prm-search-result-frbr-line a > prm-icon:first-child, prm-service-links a { color: #222 !important; } /*icon color and text color in request forms*/ .prm-primary-color, .request-form md-input-container label, .request-form md-input-container label:not(.md-no-float):not(._md-container-ignore), .request-form md-input-container md-select .md-select-value.md-select-placeholder, .request-form md-input-container .md-input-container-dummy > .md-select-dummy .md-select-value.md-select-placeholder, .request-form md-input-container md-select ._md-select-value._md-select-placeholder, .request-form md-input-container .md-input-container-dummy > .md-select-dummy ._md-select-value._md-select-placeholder, .result-item-actions .md-icon-button, .result-item-actions .more-options-button, prm-add-query-to-saved-searches .custom-button, prm-pre-filters md-input-container.is-active, .md-autocomplete-suggestions .suggestion-scope, md-tab-content .tab-content-header md-input-container md-select-value .md-text { color: #222 !important; } /*space between item details in Fullview*/ #item-details > div > div { margin-bottom: .8em !important; } /*View Results Journals - Item Details*/ prm-location-items .md-list-item-text.layout-wrap.layout-row.flex { flex-direction: column; } prm-location-items h3, prm-location-items h4 { margin:10px 0 !important; } prm-location-items > md-list > md-list-item > div > div.md-list-item-text > div.weak-text > div > div > p { margin: 4px 18px !important; display: list-item; } prm-location-items > md-list > md-list-item > div > div > div.layout-wrap { flex-direction: row !important; justify-content: flex-start !important; max-width: 100% !important; } prm-location-items > md-list > md-list-item > div > div > div > div > prm-service-button > button { box-shadow: inset 0 -0.15em 0 0 #8dd8d8; } /* Hide "search inside" for print journals */ .search-within-p-only { display:none } /*fullview background of the left part*/ .md-dialog-container.fixed-container { background-color: #444 !important; } /*background color of the signin window and the fullscreen navigation*/ md-backdrop._md-dialog-backdrop.md-opaque.md-primoExplore-theme { background-color: #1f1f1f !important; } /*text color of the signin window and the fullscreen navigation*/ prm-main-menu[menu-type=full] .md-button .md-headline, prm-main-menu[menu-type=full] .overlay-menu-item .md-headline, .light-on-dark-dialog .md-button.button-as-link, .light-on-dark-dialog .md-button.button-confirm, md-dialog.light-on-dark-dialog md-list md-list-item.list-login .md-button { color: #fff !important; } /*hiding the Library Logo in the login window*/ .login-header { display: none !important; } /*alertbar for the courier info*/ .courier-info { margin: 0px 8px; } .courier-info.bar.alert-bar { height: unset; margin: 6px 8px; padding: .5em .5em 0.25em; text-align: center; } /*Library info icon*/ prm-location-items-after > div > span > a > img { vertical-align: middle; max-width: 30px; margin: 4px 12px; } /*Library card Personal details display*/ #personalDetails > md-card-content > div { flex-flow: column; } #personalDetails .md-input-has-value.layout-column { min-width: 400px; } prm-personal-info-after { display: flex; } /*Full view Resource sharing */ #getit_link1_0 > div > prm-full-view-service-container > div.section-body > div { display: flex; flex-direction: column; } prm-opac { order: 1; } prm-alma-other-members { order: 2; display: grid; } alma-htgi-svc { order: 3; } primo-explore.logged-out alma-htgi-svc, primo-explore.alert alma-htgi-svc { order: 0 !important; } .medium-uppercase-bold { text-transform: none; font-size: 1em; } /*Full view Resource sharing expand section*/ prm-alma-other-units button.layout-fill, prm-alma-other-members button.layout-fill { height: auto; min-height: auto; } /* Full view change sections order */ #full-view-container >*:first-child { display: flex; flex-direction: column; } #brief { order: 0 !important; } #details { order: 3 !important; } #links { order: 4 !important; } #getit_link1_0 { order: 1 !important; } #action_list { order: 2 !important; } #virtualBrowse { order: 5 !important; } /* Change of links in left navigation bar ENG */ [aria-label="Top"] { order: 0 !important; } [aria-label="Details"] { order: 4 !important; } [aria-label="Links"] { order: 5 !important; } [aria-label="Loan and request options"] { order: 1 !important; } [aria-label="Send to"] { order: 3 !important; } [aria-label="Virtual Browse"] { order: 6 !important; } [aria-label="View Online"] { order: 2 !important; } /* Change of links in left navigation bar GER */ [aria-label="Top"] { order: 0 !important; } [aria-label="Details"] { order: 4 !important; } [aria-label="Links"] { order: 5 !important; } [aria-label="Ausleih- und Bestelloptionen"] { order: 1 !important; } [aria-label="Senden an"] { order: 3 !important; } [aria-label="Virtuelles Regal"] { order: 6 !important; } [aria-label="Online ansehen"] { order: 2 !important; } /* Change of links in left navigation bar FRE */ [aria-label="Haut"] { order: 0 !important; } [aria-label="Détails"] { order: 4 !important; } [aria-label="Liens"] { order: 5 !important; } [aria-label="Options de prêt et de demande"] { order: 1 !important; } [aria-label="Envoyer vers"] { order: 3 !important; } [aria-label="Etagère virtuelle"] { order: 6 !important; } [aria-label="Consulter en ligne"] { order: 2 !important; } /* Change of links in left navigation bar ITA */ [aria-label="Top"] { order: 0 !important; } [aria-label="Dettagli"] { order: 4 !important; } [aria-label="Link"] { order: 5 !important; } [aria-label="Opzioni di prestito e richiesta"]{ order: 1 !important; } [aria-label="Invia a"] { order: 3 !important; } [aria-label="Scorri virtualmente"] { order: 5 !important; } [aria-label="Visualizza online"] { order: 2 !important; } /******************************************************************************/ /************************************ Help Page *******************************/ /******************************************************************************/ #help img { max-width: 100%; height: auto; } img.icon_up1 { width: 16px; float: right; margin: 13px 2px; } img.icon_up2 { width: 10px; float: right; margin: 4px; } a > h3:hover { background-color: #eee !important; } /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /********************** End of the Central Package CSS ************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*************************** EPFL CUSTOM COLORS *******************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /* This file contains the EPFL part of the custom package. The SLSP part is in the custom_slsp.css file. */ /*****************This two entries are the background of the primary color*******************/ prm-primary-bg, prm-atoz-search-bar, prm-browse-search-bar, prm-collection-gallery-header .collection-header-inner, prm-search-bar, prm-newspapers-search-bar, prm-spinner.overlay-cover.light-on-dark:after, prm-tags-search-bar, prm-tree-nav prm-spinner .diamond, .prm-primary-bg, md-checkbox.md-checked .md-icon, md-tabs md-ink-bar, md-radio-button.md-checked .md-on, button.switch-to-simple, .md-button.button-confirm { background-color: #ff0000 !important; } /* Suppression configuration master template */ prm-request-services .md-button.button-as-link{ background-color: unset !important; } md-tabs.tabs-as-app .back-button { background-color: #777 !important; line-height: 24px !important; min-height: 24px !important; margin: 4px 0 !important; } @media (max-width: 599px) { prm-topbar .top-nav-bar { border-color: #ff0000 !important; } } /*.search-actions button{ background-color: #fff !important; color: #222; } */ /*****************This entry is the mouse over background of the links and buttons*******************/ md-card.prm-primary-bg.psfooter > md-card-content a:hover, md-icon.ps_icon:hover, a.ps_link:hover, a.ps_link.legal:hover, span.legal a:hover, button.switch-to-advanced:hover, button.switch-to-simple:hover, .md-button.button-confirm:hover { background-color: #ae0010 !important; } .md-button.button-as-link:hover:not([disabled]){ background-color: unset !important; } md-tabs.tabs-as-app .back-button:hover:not([disabled]){ background-color: #555 !important; } /*****************This two entries are the font color of the primary color*******************/ .prm-primary-bg, prm-atoz-search-bar, prm-browse-search-bar, prm-collection-gallery-header .collection-header-inner, prm-newspapers-search-bar, prm-spinner.overlay-cover.light-on-dark:after, prm-tags-search-bar, prm-tree-nav prm-spinner .diamond, .prm-primary-bg, md-checkbox.md-checked .md-icon:after, .md-button.switch-to-advanced, button.switch-to-simple, span.legal, span.legal > a, a.ps_link.legal, .ps_icon, md-card.prm-primary-bg.psfooter > md-card-content a, .md-button.button-confirm, md-tabs.tabs-as-app .back-button, prm-request-services .md-button.button-as-link { color: #fff !important; } button.switch-to-advanced.zero-margin.button-with-icon.md-button.md-primoExplore-theme.md-ink-ripple { border-color: #c1c1c1 !important; } /*****************This two entries are the background of the secondary color*******************/ .bar.alert-bar, .classic-input .search-scope, .prm-alert-bg { background-color: #ffcccc !important; } .text-highlight, mark { box-shadow: inset 0 -0.15em 0 0 #ff0000 ; } /*****************This entry is the font color of the secondary color*******************/ .bar.alert-bar, .classic-input .search-scope, .prm-alert-bg, .bar prm-authentication .md-button, button.dismiss-alert-button, div.courier-info > span a { color: #111111 !important; } /*****************Selected text color*******************/ ::selection { background: #ffbe8f; /* WebKit/Blink Browsers */ } ::-moz-selection { background: #ffbe8f; /* Gecko Browsers */ } /*****************This entry remove default color from various texts*******************/ md-dialog.light-on-dark-dialog .md-list[class$="-line"] md-list-item .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog .md-list[class$="-line"] md-list-item .md-list-item-text h3, md-dialog.light-on-dark-dialog .md-list[class$="-line"] md-list-item > .md-no-style .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog .md-list[class$="-line"] md-list-item > .md-no-style .md-list-item-text h3, md-dialog.light-on-dark-dialog .md-list md-list-item .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog .md-list md-list-item .md-list-item-text h3, md-dialog.light-on-dark-dialog .md-list md-list-item > .md-no-style .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog .md-list md-list-item > .md-no-style .md-list-item-text h3, md-dialog.light-on-dark-dialog md-list md-list-item .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog md-list md-list-item .md-list-item-text h3, md-dialog.light-on-dark-dialog md-list md-list-item > .md-no-style .md-list-item-text .list-item-title, md-dialog.light-on-dark-dialog md-list md-list-item > .md-no-style .md-list-item-text h3, md-button.arrow-link-button md-dialog.light-on-dark-dialog .button-content, md-dialog.light-on-dark-dialog .md-button.arrow-link-button .button-content, md-dialog.light-on-dark-dialog a{ color: #ffcccc !important; } /*Bouton pour confirmer une demande*/ prm-request button.md-button.button-confirm, span[translate="fulldisplay.locations.showmore"], .courier-info .button-confirm { background-color: #080 !important; border-radius: 2px; } prm-request button.md-button.button-confirm:hover, span[translate="fulldisplay.locations.showmore"]:hover, .courier-info .button-confirm:hover { background-color: #050 !important; } span[translate="fulldisplay.locations.showmore"]{ line-height: 24px !important; padding: 5px 8px; margin: 4px 0 !important; color: white; border-radius: 2px; } /* Suppression du fond du bouton + d'exemplaires */ prm-location-items .md-button.button-link:hover:not([disabled]){ background-color: transparent !important; } button[ng-hide="!$ctrl.currLoc.isMore"] { background-color: transparent !important; } /* Fix SLSP pour la couleur du bouton secondaire */ .bar prm-authentication .md-button:hover:not([disabled]), button.dismiss-alert-button:hover{ background-color:#ffdddd !important; border: 1px solid #ae0010; } /* Fix SLSP pour le bouton ""élargir" */ button.item-expand-button.md-button.md-primoExplore-theme.md-ink-ripple{ background-color: #D3D3D3!important; } /*****************This entry remove default color from various forms*******************/ .md-input-color-underline, .new-result-item .list-item-count, .prm-secondary-bg.prm-hue1, md-input-container.empty-select-on-init:not(.md-input-focused) .md-input-container-dummy > .md-select-dummy md-select-value::after, md-input-container.empty-select-on-init:not(.md-input-focused) md-select md-select-value::after, md-input-container::after, md-progress-linear[md-mode="indeterminate"].header-progress-bar .prm-hue1.md-bar, md-radio-button.md-checked ._md-on, md-radio-button.md-checked .md-on, md-tabs md-ink-bar, prm-tags-list .md-chips ._md-chip-input-container::after, prm-tags-list .md-chips .md-chip-input-container::after, prm-tags-list md-chips ._md-chip-input-container::after, prm-tags-list md-chips .md-chip-input-container::after { background-color: #ff0000 !important; } md-card.psfooter, md-card.psfooter-legal, md-card.psfooter > md-card-content.prm-primary-bg, md-card.psfooter-legal > md-card-content.prm-primary-bg, md-card.prm-primary-bg.psfooter > md-card-content a:hover, md-card.prm-primary-bg.psfooter-legal > md-card-content a:hover{ background-color: #d6d6d6 !important; } md-card.psfooter md-card-content, md-card.psfooter-legal md-card-content, md-card.prm-primary-bg.psfooter > md-card-content a, md-card.prm-primary-bg.psfooter-legal > md-card-content a, md-card.prm-primary-bg.psfooter-legal span.legal { color: #3a3a3a !important; } md-card.prm-primary-bg.psfooter > md-card-content a:hover, md-card.prm-primary-bg.psfooter-legal > md-card-content a:hover { color: #ff0000 !important; } /* Couleur rouge pour les logos téléphone, mail, etc. */ .puce{ text-decoration: none !important; } .puce > span:first-child{ color: #ff0000; fill: #ff0000; } h1.md-headline{ font-size: 36px; line-height: 42px; } h2.md-headline{ font-size: 28px; line-height: 34px; } md-content.epfl-row { justify-content: center; } .epfl-row md-card-title{ flex: none; } .epfl-row md-card { height: 100%; } .epfl-social a{ text-decoration: none !important; } /* Augmente l'espace pour réduire la probabilité de clic sur le lien */ prm-login md-list md-list-item:first-child p[translate="parallel.login.description1"]{ margin-top:15px !important; } /* Réduit la taille du lien Alma */ prm-login md-list md-list-item:last-child { font-size: x-small !important; } prm-account-links-after div { display: flex; align-items: center; margin-top: 10px; } prm-account-links-after img{ margin-right: 5px; } +.feedbacklink md-icon{ + height: 20px; + width: 20px; + min-height: 20px; + min-width: 20px; +} +prm-alma-viewit-after .bar{ + height: auto; +} + /* Empêcher les retours à la ligne pour les cotes */ span[ng-if="$ctrl.location.callNumber"]{ white-space: nowrap } /*****************This entry adapt the message fee*******************/ .feemsg { background-color: #ffcccc; border-radius: 3px; padding: 8px; } .feemsg>div { margin-left: 10px; } .bigfont { font-size: 20px; } /* Bouton de la recherche avancée */ .search-switch-buttons span{ font-variant: small-caps; font-size: 1.15em; } .search-switch-buttons button{ border: none !important; } /* Message d'alerte */ prm-search-bar>div { height: inherit !important; min-height: inherit !important; } prm-search-bar-after>div { background-color: #fff !important; margin-top: 20px; padding: 10px 15px; } prm-search-bar-after p { margin: 0 12px; } .info-symbol::before { content: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 34 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect fill='%234a90e2' width='34' height='34' rx='4'/%3E%3Cpath d='M17 25V15M17 13V9' stroke='%23FFF' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E"); width: 24px; height: 24px; position: absolute; display: inline-block; top: 50%; left: .6rem; width: 1.6rem; height: 1.6rem; margin-top: -.8rem; } .info-symbol { position: relative; } .info-symbol div { margin-left: 50px; } prm-search-bar-after p { padding: .25em 0 .25em; margin: 0; } prm-search-bar-after a { color: black; text-decoration: underline; } /* Mise en évidence des boutons pour les demandes de service */ /* span[translate="AlmaRequest"] { text-decoration: underline #0B0 3px; padding: 2px 6px; } span[translate="AlmaRequest"]:hover{ background-color: #050 !important; text-decoration: none; color: white; border-radius: 2px; } */ /* span[translate="nui.request.request"]{ display: none; } */ /* Soulignement des boutons proposant un service */ prm-service-button button, .greenbutton { padding-left: 0px !important; padding-right: 0px !important; } prm-service-button button > span, .greenbutton>span { background-color: #080 !important; color: white !important; padding: 2px 6px; border-radius: 2px; } prm-service-button button > span:hover, .greenbutton>span:hover { background-color: #050 !important; } prm-location-items > md-list > md-list-item > div > div > div > div > prm-service-button > button { box-shadow: unset !important; } /* Alignement de l'intitulé "Demandes" */ prm-request-services h3.section-title{ top: 0px; } /* Alignement central des boutons de demande */ prm-request-services .labeled-block { align-items: center; } /* Suppression du sous-titre demande span[translate="nui.request.request"]{ display: none; }*/ /* Suppression du bouton PEB span[translate="AlmaResourceSharing"]{ display: none; } .links-block .separated-block-item::after{ content: none !important; } */ /* Crée la place pour le titre et le sous-titre */ prm-topbar { height: 150px !important; } prm-main-menu[menu-type="menu"], .top-nav-bar, prm-search-bookmark-filter { max-height: 60px !important; height: 60px !important; min-height: auto !important; } /* Mise en forme du titre et sous-titre */ .main-title{ padding: .85em; background-color: white; } .main-title h1{ font-size: 2em !important; margin-bottom: 0; } .main-title h1 > a{ color: black; } prm-main-menu[menu-type="menu"] #mainMenu>div { border-bottom: solid #ddd 1px; } .main-title h2{ font-size: 1.2em !important; font-weight: bold; } /* Adapte le sous-titre lorsque l'écran est relativement petit */ @media only screen and (max-width: 660px){ .main-title h2{ font-size: 1.1em !important; } } /* Menu sur les petits écrans */ prm-main-menu[menu-type="full"] .md-button .md-headline{ color: #ff9999 !important; } prm-main-menu .md-subhead{ display: none; } .__sm prm-main-menu[menu-type="full"] .settings-container + md-divider{ margin-top: 6em !important; } /* Menu sur grand écran */ prm-main-menu[menu-type="menu"] .button-over-dark, prm-topbar .md-button:not(.disable-hover){ color: #222 !important; } /* Petit triangle du menu */ prm-user-area-expandable .button-with-menu-arrow:hover .menu-arrow:hover:not([disabled]){ background-color: inherit; } diff --git a/primo-explore/custom/41SLSP_EPF-prod/css/prmAlmaviewit.css b/primo-explore/custom/41SLSP_EPF-prod/css/prmAlmaviewit.css new file mode 100644 index 0000000..3d2c020 --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/css/prmAlmaviewit.css @@ -0,0 +1,9 @@ +.feedbacklink md-icon{ + height: 20px; + width: 20px; + min-height: 20px; + min-width: 20px; +} +prm-alma-viewit-after .bar{ + height: auto; +} diff --git a/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_de_old.html b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_de_old.html new file mode 100644 index 0000000..ae92f88 --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_de_old.html @@ -0,0 +1,119 @@ + + +
+
+
+ + + +

Willkommen bei swisscovery

+
+
+ +

+ Hier stehen Ihnen einfache und erweiterte Suchfunktionen für Bücher, E-Books, Zeitschriften, Datenbanken und weitere Medien zur Verfügung. +
+
+ Bitte loggen Sie sich ein und profitieren Sie von unseren SLSP-Services, wie z. B.: +

+
    +
  • Erhalten Sie Zugang zu über 450 wissenschaftlichen Bibliotheken in der Schweiz
  • +
  • Nutzen Sie von Ihrer Bibliothek lizenzierte E-Medien und erhalten Sie Zugang zu freien Titeln
  • +
  • Bestellen Sie Artikel bei Bibliotheken, direkt oder via SLSP Courier
  • +
  • Verwalten Sie Ihr Konto, Ihre Ausleihen und Ihre Vormerkungen
  • +
+
+

+ + Registrierung + +

+

+ Um ein SLSP-Nutzer zu werden, registrieren Sie sich bitte auf unserer Registrierungsplattform. +

+
+
+ + + + +

Search Scope

+
+
+ + + +
+
+
+ + + +

Library Search

+
+
+ +
+ +
+
+
+
+ + + +

Fragen, Kommentare und Support

+
+
+ +

+ Haben Sie Fragen oder möchten Sie einen Kommentar anbringen? Haben Sie Probleme mit swisscovery? Dann kontaktieren Sie uns! Wir freuen uns auf Ihre Nachricht. +

+
+
+
+
+
+
+ +
+ + + Adresse: +

[Name der Institution / Bibliothek]

+

[Straßenname und -nummer]

+

[Postleitzahl und Stadt]

+
+ + Kontakt: +

[phone number]

+

[E-Mail-Adresse]

+

[website]

+

+ + + + + + +

+
+ + Beschreibung: +

Diese Seite ist der Zugangspunkt zu den Ressourcen der

+

[Name der Bibliothek / die folgenden Bibliotheken]

+
+
+ + + Der [Name der Institution / Bibliothek/ies] ist Mitglied der Swiss Library Service Platform (SLSP) network + + + Rechtliche Informationen + + + Datenschutz + + +
+
diff --git a/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_en_old.html b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_en_old.html new file mode 100644 index 0000000..7aa7ee5 --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_en_old.html @@ -0,0 +1,119 @@ + + +
+
+
+ + + +

Welcome to swisscovery

+
+
+ +

+ Here you can perform simple and advanced searches for books, e-books, journals, databases and other media. +
+
+ Please sign in in order profit from our SLSP services such as: +

+
    +
  • Get access to more than 450 scientific libraries in Switzerland
  • +
  • Use e-media licensed by your library and access free titles
  • +
  • Request books from libraries, directly or via SLSP courier
  • +
  • Manage your account, your loans and your requests
  • +
+
+

+ + Registration + +

+

+ To become a SLSP user please register at our registration platform. +

+
+
+ + + + +

Search Scope

+
+
+ + + +
+
+
+ + + +

Library Search

+
+
+ +
+ +
+
+
+
+ + + +

Questions, comments and support

+
+
+ +

+ Do you have any questions or comments? Are you experiencing problems with swisscovery? Don't hesitate to contact us! We are looking forward to reading your message. +

+
+
+
+
+
+
+ +
+ + + Address: +

[name of the Institution / Library]

+

[street name and number]

+

[post code and city]

+
+ + Contact us: +

[phone number]

+

[email address]

+

[website]

+

+ + + + + + +

+
+ + Description: +

This page is the access point to the resources of the

+

[name of the library / the following libraries]

+
+
+ + + The [Name of the Institution / Library/ies] is member of the Swiss Library Service Platform (SLSP) network + + + Legal Information + + + Data Protection + + +
+
diff --git a/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_it_old.html b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_it_old.html new file mode 100644 index 0000000..4fce2fb --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/html/homepage/homepage_it_old.html @@ -0,0 +1,119 @@ + + +
+
+
+ + + +

Benvenuti in swisscovery

+
+
+ +

+ Qui potete effettuare ricerche semplici e avanzate di libri, e-book, periodici, banche dati e altri media. +
+
+ La registrazione permette di usufruire dei servizi SLSP come: +

+
    +
  • L’accesso a oltre 450 biblioteche scientifiche in Svizzera
  • +
  • L’utilizzo di risorse elettroniche concesse in licenza dalla vostra biblioteca e l’accesso a titoli gratuiti
  • +
  • La richiesta di opere alle biblioteche, direttamente o tramite SLSP Courier
  • +
  • La gestione del vostro account, dei prestiti e delle vostre richieste
  • +
+
+

+ + Registrazione + +

+

+ Per diventare un utente SLSP è necessario registrarsi sulla nostra piattaforma di registrazione. +

+
+
+ + + + +

Search Scope

+
+
+ + + +
+
+
+ + + +

Library Search

+
+
+ +
+ +
+
+
+
+ + + +

Domande, commenti e supporto

+
+
+ +

+ Avete domande o commenti? Avete problemi con swisscovery? Non esitate a contattarci! Saremo lieti di ricevere il vostro messaggio. +

+
+
+
+
+
+
+ +
+ + + Indirizzo: +

[nome dell’istituzione / biblioteca

+

[numero e nome della via]

+

[codice postale e città]

+
+ + Contatto: +

[numero di telefono]

+

[indirizzo email]

+

[sito internet]

+

+ + + + + + +

+
+ + Descrizione: +

Questa pagina è il punto di accesso per le risorse della

+

[nome della biblioteca / delle seguenti biblioteche]

+
+
+ + + La [Nome dell’istituzione / biblioteca/che] è membro del Swiss Library Service Platform (SLSP) network + + + Informazioni legali + + + Protezione dei dati + + +
+
diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/custom.js b/primo-explore/custom/41SLSP_EPF-prod/js/custom.js index 128e81d..31cb3e7 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/js/custom.js +++ b/primo-explore/custom/41SLSP_EPF-prod/js/custom.js @@ -1,2 +1,2 @@ -!function a(s,l,o){function c(t,e){if(!l[t]){if(!s[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(u)return u(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=l[t]={exports:{}};s[t][0].call(i.exports,function(e){return c(s[t][1][e]||e)},i,i.exports,a,s,l,o)}return l[t].exports}for(var u="function"==typeof require&&require,e=0;e {{ \'switchEduID\' | customTranslate | trustHtml }} https://eduid.ch'}},{}],2:[function(e,t,r){"use strict";angular.module("accountModule",["angularLoad"]).component("prmAccountLinksAfter",e("./accountlinks.component.js"))},{"./accountlinks.component.js":1}],3:[function(e,t,r){"use strict";angular.module("customTranslateFilter",[]).filter("customTranslate",["$translate",function(r){return function(e){var t={costWarningScan:{fr:'Service payant: les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:',en:'Fee-based service: EPFL employees and students can benefit from this service free of charge by using the form:',de:'Kostenpflichtiger Service: Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.',it:'Servizio a pagamento: I dipendenti e gli studenti dell\'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:'},costWarningScanEPFL:{fr:"Service gratuit pour les collaborateurs et les étudiants EPFL.",en:"Free of charge for EPFL staff and students.",de:"Service für Mitarbeiter und Studenten der EPFL kostenlos",it:"Servizio gratuito per i dipendenti e gli studenti dell’EPFL."},costWarningNetworkLoan:{fr:"Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.",en:"Free of charge if withdrawal at the EPFL Library.",de:"Service bei Abholung in der EPFL-Bibliothek kostenlos.",it:"Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL"},costWarningPEB:{fr:"Service gratuit pour les collaborateurs et les étudiants de l’EPFL. Avant de passer une commande d’un document physique via le prêt entre bibliothèques, merci de vous assurer que ce document n'est pas disponible dans d’autres bibliothèques du réseau SLSP dans swisscovery.",en:"Free of charge for EPFL staff and students. Before placing an order for a physical document via the interlibrary loan, please make sure that this document is not available in other SLSP network libraries on swisscovery.",de:"Kostenloser Service für Mitarbeiter und Studenten der EPFL. Bevor Sie ein Medium über die Fernleihe bestellen, vergewissern Sie sich bitte zunächst in swisscovery, dass es nicht in einer anderen Bibliothek des SLSP-Netzwerks verfügbar ist.",it:"Servizio gratuito per i dipendenti e gli studenti dell’EPFL. Prima di ordinare un documento cartaceo tramite il prestito interbibliotecario, assicuratevi che questo documento non sia disponibile in altre biblioteche della rete SLSP in swisscovery."},mainTitle:{fr:"Catalogue BEAST",en:"BEAST discovery tool",de:"BEAST Wissensportal",it:"Catalogo BEAST"},subTitle:{fr:"Le point d'accès à toutes les ressources de la Bibliothèque de l'EPFL",en:"The access portal to all the resources of the EPFL Library",de:"Der Zugangspunkt zu allen Ressourcen der EPFL Bibliothek",it:"Il punto d’accesso a tutte le risorse della Biblioteca dell’EPFL"},switchEduID:{fr:"Modifier vos informations personnelles sur",en:"Change your personal data on",de:"Ändern Sie Ihre persönlichen Daten auf",it:"Modifica i tuoi dati personali sul"},illButton:{fr:"Prêt entre bibliothèques (PEB)",en:"Inter Library Loan (ILL)",de:"Fernleihe",it:"Prestito interbibliotecario"}};return["en","fr","it","de"].includes(r.use())?t[e][r.use()]:t[e].fr}}])},{}],4:[function(e,t,r){"use strict";angular.module("trustHtmlFilter",[]).filter("trustHtml",["$sce",function(t){return function(e){return t.trustAsHtml(e)}}])},{}],5:[function(e,t,r){"use strict";t.exports={active:!0,txt:{fr:'
\n

Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : swisscovery

\n
',en:'
\n

The NEBIS network ended on December 7, 2020. It has been replaced by swisscovery: a new and wider network.

\n
',de:'
\n

Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: swisscovery

\n
',it:'
\n

La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: swisscovery

\n
'},begin:"2020-01-04T00:00:00Z",end:"2021-03-31T12:00:00Z"}},{}],6:[function(e,t,r){"use strict";angular.module("homepageModule",["angularLoad"]).component("prmSearchBarAfter",e("./searchbar.component.js"))},{"./searchbar.component.js":7}],7:[function(n,e,t){"use strict";e.exports={bindings:{parentCtrl:"<"},template:'
',controllerAs:"ctrl",controller:["$translate",function(t){var r=this;if(r.alert=n("./alert.js"),!(r.active=!1)===r.alert.active){var e=Date.now();new Date(r.alert.begin)";if("costWarningScan"==s.typeFeeAlert()){var r=a("customTranslate")("illButton");if(s.get_peb_button())var n="javascript:(function() {\n for (var elem of document.getElementsByTagName('span')) {\n if (elem.getAttribute('translate') === 'AlmaResourceSharing' &&\n elem.parentNode.className.indexOf('greenbutton') === -1)\n {\n elem.click();\n break;\n }\n };})()";else n="javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid="+s.parentCtrl.vid+"'})()";t+='

'+r+"

"}t+='

'+this.parentCtrl.$translate.instant("customize.fullview.feesLinkText")+"

";var i=angular.element(t)[0];2==e.children.length?e.insertBefore(i,e.children[1]):e.children[1].replaceWith(i)}},Object.defineProperty(s.parentCtrl,"form",{configurable:!0,get:function(){var e=this.getFilteredForm(["label","multiLabel"],!1);if(!s.hasOwnProperty("pickupLocationsListOrdered"))for(var t=0;t{{ ctrl.getLibrary() }}'}),n.service("userService",["jwtHelper",function(r){this.isGuest=function(){var e=sessionStorage.getItem("primoExploreJwt");if(!e)return!0;var t=r.decodeToken(e);return!("GUEST"!==t.userGroup?t.userName:"")}}]),n.controller("IllBoxController",["$scope","userService",function(e,t){return e.usrNme=t.isGuest(),1!=e.usrNme?angular.element(document.querySelector("primo-explore")).removeClass("logged-out"):angular.element(document.querySelector("primo-explore")).addClass("logged-out")}]),n.component("prmUserAreaExpandableAfter",{bindings:{parentCtrl:"<"},controller:"IllBoxController",template:""}),n.component("prmTopbarAfter",{bindings:{parentCtrl:"<"},template:"

{{ 'mainTitle' | customTranslate }}

{{ 'subTitle' | customTranslate }}

"}),n.controller("AlertMsgController",["$scope",function(e){var r=this;r.getAlert=function(){var e=r.parentCtrl.almaHowToGetitService.reqAlert._htmlMsg,t=angular.element(document.querySelector("primo-explore"));return 0{{$ctrl.getAlert()}}'})},{}]},{},[8]); +!function a(s,l,o){function c(t,e){if(!l[t]){if(!s[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(d)return d(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=l[t]={exports:{}};s[t][0].call(i.exports,function(e){return c(s[t][1][e]||e)},i,i.exports,a,s,l,o)}return l[t].exports}for(var d="function"==typeof require&&require,e=0;e {{ \'switchEduID\' | customTranslate | trustHtml }} https://eduid.ch'}},{}],2:[function(e,t,r){"use strict";angular.module("accountModule",["angularLoad"]).component("prmAccountLinksAfter",e("./accountlinks.component.js"))},{"./accountlinks.component.js":1}],3:[function(e,t,r){"use strict";angular.module("customTranslateFilter",[]).filter("customTranslate",["$translate",function(r){return function(e){var t={costWarningScan:{fr:'Service payant: les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:',en:'Fee-based service: EPFL employees and students can benefit from this service free of charge by using the form:',de:'Kostenpflichtiger Service: Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.',it:'Servizio a pagamento: I dipendenti e gli studenti dell\'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:'},costWarningScanEPFL:{fr:"Service gratuit pour les collaborateurs et les étudiants EPFL.",en:"Free of charge for EPFL staff and students.",de:"Service für Mitarbeiter und Studenten der EPFL kostenlos",it:"Servizio gratuito per i dipendenti e gli studenti dell’EPFL."},costWarningNetworkLoan:{fr:"Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.",en:"Free of charge if withdrawal at the EPFL Library.",de:"Service bei Abholung in der EPFL-Bibliothek kostenlos.",it:"Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL"},costWarningPEB:{fr:"Service gratuit pour les collaborateurs et les étudiants de l’EPFL. Avant de passer une commande d’un document physique via le prêt entre bibliothèques, merci de vous assurer que ce document n'est pas disponible dans d’autres bibliothèques du réseau SLSP dans swisscovery.",en:"Free of charge for EPFL staff and students. Before placing an order for a physical document via the interlibrary loan, please make sure that this document is not available in other SLSP network libraries on swisscovery.",de:"Kostenloser Service für Mitarbeiter und Studenten der EPFL. Bevor Sie ein Medium über die Fernleihe bestellen, vergewissern Sie sich bitte zunächst in swisscovery, dass es nicht in einer anderen Bibliothek des SLSP-Netzwerks verfügbar ist.",it:"Servizio gratuito per i dipendenti e gli studenti dell’EPFL. Prima di ordinare un documento cartaceo tramite il prestito interbibliotecario, assicuratevi che questo documento non sia disponibile in altre biblioteche della rete SLSP in swisscovery."},mainTitle:{fr:"Catalogue BEAST",en:"BEAST discovery tool",de:"BEAST Wissensportal",it:"Catalogo BEAST"},subTitle:{fr:"Le point d'accès à toutes les ressources de la Bibliothèque de l'EPFL",en:"The access portal to all the resources of the EPFL Library",de:"Der Zugangspunkt zu allen Ressourcen der EPFL Bibliothek",it:"Il punto d’accesso a tutte le risorse della Biblioteca dell’EPFL"},switchEduID:{fr:"Modifier vos informations personnelles sur",en:"Change your personal data on",de:"Ändern Sie Ihre persönlichen Daten auf",it:"Modifica i tuoi dati personali sul"},illButton:{fr:"Prêt entre bibliothèques (PEB)",en:"Inter Library Loan (ILL)",de:"Fernleihe",it:"Prestito interbibliotecario"},feedbackLink:{fr:"Signaler un problème d'accès",en:"Report an access problem",de:"Zugriffsproblem melden",it:"Segnalare un problema di accesso"},vpnMSG:{fr:'Les ressources électroniques sont accessibles depuis tous les postes de l’EPFL, et à distance via le VPN EPFL.',en:'Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL VPN.',de:'Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL VPN abrufbar.',it:'Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell\'EPFL e a distanza tramite VPN EPFL.'},feedbackLinkMSG:{fr:"Je rencontre un problème d’accès à la ressource électronique ci-dessous. Je vous remercie de m’informer lorsque l’accès sera rétabli.",en:"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.",de:"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.",it:"I have a problem accessing the electronic resource below. Please let me know when the access will be restored."}};return["en","fr","it","de"].includes(r.use())?t[e][r.use()]:t[e].fr}}])},{}],4:[function(e,t,r){"use strict";angular.module("trustHtmlFilter",[]).filter("trustHtml",["$sce",function(t){return function(e){return t.trustAsHtml(e)}}])},{}],5:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$filter","userService",function(e,t){var r=this;if(r.get_txt=function(){return e("customTranslate")("vpnMSG")},r.feedbackLink="",r.is_epfl_IP=!1,r.no_report_link=!1,r.parentCtrl.item.pnx.addata.openaccess&&"true"===r.parentCtrl.item.pnx.addata.openaccess[0]&&(r.no_report_link=!0),r.parentCtrl.item.pnx.addata.oa&&"free_for_read"===r.parentCtrl.item.pnx.addata.oa[0]&&(r.no_report_link=!0),!r.no_report_link){var n=t.getIP();if(n){var i=n.match(/128\.17([89])\.(\d{1,3})\./);i&&("8"==i[1]||128<=parseInt(i[2]))&&(r.is_epfl_IP=!0)}var a=r.parentCtrl.item.pnx.control.recordid[0],s="";r.parentCtrl.item.pnx.display.title&&0ISBN")||-1ISSN")?d=r.parentCtrl.item.pnx.display.identifier.join(", ").replace(/<\/b>/g,"").replace(//g,""):-1\n
{{ \'feedbackLink\' | customTranslate }}\n \n '}},{}],6:[function(e,t,r){"use strict";angular.module("fullviewModule",["angularLoad"]).component("prmAlmaViewitAfter",e("./almaviewit.component.js"))},{"./almaviewit.component.js":5}],7:[function(e,t,r){"use strict";t.exports={active:!0,txt:{fr:'
\n

Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : swisscovery

\n
',en:'
\n

The NEBIS network ended on December 7, 2020. It has been replaced by swisscovery: a new and wider network.

\n
',de:'
\n

Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: swisscovery

\n
',it:'
\n

La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: swisscovery

\n
'},begin:"2020-01-04T00:00:00Z",end:"2021-03-31T12:00:00Z"}},{}],8:[function(e,t,r){"use strict";angular.module("homepageModule",["angularLoad"]).component("prmSearchBarAfter",e("./searchbar.component.js"))},{"./searchbar.component.js":9}],9:[function(n,e,t){"use strict";e.exports={bindings:{parentCtrl:"<"},template:'
',controllerAs:"ctrl",controller:["$translate",function(t){var r=this;if(r.alert=n("./alert.js"),!(r.active=!1)===r.alert.active){var e=Date.now();new Date(r.alert.begin)";if("costWarningScan"==s.typeFeeAlert()){var r=a("customTranslate")("illButton");if(s.get_peb_button())var n="javascript:(function() {\n for (var elem of document.getElementsByTagName('span')) {\n if (elem.getAttribute('translate') === 'AlmaResourceSharing' &&\n elem.parentNode.className.indexOf('greenbutton') === -1)\n {\n elem.click();\n break;\n }\n };})()";else n="javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid="+s.parentCtrl.vid+"'})()";t+='

'+r+"

"}t+='

'+this.parentCtrl.$translate.instant("customize.fullview.feesLinkText")+"

";var i=angular.element(t)[0];2==e.children.length?e.insertBefore(i,e.children[1]):e.children[1].replaceWith(i)}},Object.defineProperty(s.parentCtrl,"form",{configurable:!0,get:function(){var e=this.getFilteredForm(["label","multiLabel"],!1);if(!s.hasOwnProperty("pickupLocationsListOrdered"))for(var t=0;t{{ ctrl.getLibrary() }}'}),n.service("userService",["jwtHelper",function(r){this.isGuest=function(){var e=sessionStorage.getItem("primoExploreJwt");if(!e)return!0;var t=r.decodeToken(e);return!("GUEST"!==t.userGroup?t.userName:"")},this.getIP=function(){var e=sessionStorage.getItem("primoExploreJwt");if(e)return r.decodeToken(e).userIp}}]),n.controller("IllBoxController",["$scope","userService",function(e,t){return e.usrNme=t.isGuest(),1!=e.usrNme?angular.element(document.querySelector("primo-explore")).removeClass("logged-out"):angular.element(document.querySelector("primo-explore")).addClass("logged-out")}]),n.component("prmUserAreaExpandableAfter",{bindings:{parentCtrl:"<"},controller:"IllBoxController",template:""}),n.component("prmTopbarAfter",{bindings:{parentCtrl:"<"},template:"

{{ 'mainTitle' | customTranslate }}

{{ 'subTitle' | customTranslate }}

"}),n.controller("AlertMsgController",["$scope",function(e){var r=this;r.getAlert=function(){var e=r.parentCtrl.almaHowToGetitService.reqAlert._htmlMsg,t=angular.element(document.querySelector("primo-explore"));return 0{{$ctrl.getAlert()}}'})},{}]},{},[10]); //# sourceMappingURL=custom.js.map diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/custom.js.map b/primo-explore/custom/41SLSP_EPF-prod/js/custom.js.map index c6a5037..0ad87fd 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/js/custom.js.map +++ b/primo-explore/custom/41SLSP_EPF-prod/js/custom.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","primo-explore/custom/41SLSP_EPF-prod/js/account/accountlinks.component.js","primo-explore/custom/41SLSP_EPF-prod/js/account/index.js","primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js","primo-explore/custom/41SLSP_EPF-prod/js/filters/trust_html.filter.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/alert.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/index.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/searchbar.component.js","primo-explore/custom/41SLSP_EPF-prod/js/main.js","primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","bindings","parentCtrl","controllerAs","controller","vm","this","console","log","view","accountLinksService","vid","replace","template","angular","component","filter","$translate","txt","trad","costWarningScan","fr","en","de","it","costWarningScanEPFL","costWarningNetworkLoan","costWarningPEB","mainTitle","subTitle","switchEduID","illButton","includes","use","$sce","trustAsHtml","active","begin","end","alert","d_now","Date","now","get_txt","lang","showTabsAndScopes","app","$filter","$element","$compile","$scope","$rootScope","form","parentElement","$doCheck","undefined","children","hasOwnProperty","currentTypeFeeAlert","typeFeeAlert","htmlwarning","getFeeAlert","get_peb_button","fn","instant","htmlcompiled","element","insertBefore","replaceWith","Object","defineProperty","configurable","get","getFilteredForm","key","options","sort","b","onTopInstitutions","indexOf","value","isEPFL","requestService","_service","linkBase","requestHeader","allElements","document","getElementsByTagName","getAttribute","parentNode","className","click_peb","button","click","window","location","href","origin","biblinkText","biblinkBase","getLibraryUrl","loc","libraryCode","configurationUtil","getLibrary","currLoc","librarycodeTranslation","service","jwtHelper","isGuest","jwt","sessionStorage","getItem","decodedToken","decodeToken","userGroup","userName","userService","usrNme","querySelector","removeClass","addClass","getAlert","ga","almaHowToGetitService","reqAlert","_htmlMsg","myEl2"],"mappings":"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","file":"custom.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {{ 'switchEduID' | customTranslate | trustHtml }} https://eduid.ch`\r\n};\r\n","(function () {\r\n var account_module = angular.module('accountModule', ['angularLoad']);\r\n account_module.component('prmAccountLinksAfter', require('./accountlinks.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/***********************/\r\n/* FILTRE : traduction */\r\n/***********************/\r\n\r\n/*\r\n OBJECTIF: traduire des éléments, tant des urls que du texte.\r\n UTILISATION:\r\n - Dans le template:\r\n 1. comme un filtre: {{ clé | customTranslate }}\r\n - Dans un controlleur:\r\n Même si les filtres sont d'abord prévus pour être utilisés dans le\r\n template, on peut les appeler dans les controlleurs.\r\n 1. Ajouter le service dans l'en-tête du controlleur\r\n 2. Appeler le service avec la fonction $filter\r\n EXEMPLE:\r\n controller:function($http, $filter){...\r\n var traduction = $filter('customTranslate')('cleTrad');\r\n ...}\r\n CONFIGURATION:\r\n L'ajout de traduction se fait à travers des objets. La clé indique le\r\n terme à utiliser dans le template ou le controlleur pour ensuite\r\n renvoyer la traduction. Les noms associés n'appaaraissent donc pas tels\r\n quels. La structure de chaque élément traduit disponible est comme suit:\r\n clé1:{\r\n fr: traductionFrançaise\r\n en: traductionAnglaise\r\n },\r\n clé2:{\r\n fr: traductionFrançaise\r\n en: traductionAnglaise\r\n }\r\n*/\r\n(function () {\r\n\r\n var custom_translate_module = angular.module('customTranslateFilter', [])\r\n .filter('customTranslate', ['$translate', function($translate){\r\n return function(txt){\r\n var trad = {\r\n\r\n costWarningScan:{\r\n fr: \"Service payant: les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:\",\r\n en: \"Fee-based service: EPFL employees and students can benefit from this service free of charge by using the form:\",\r\n de: \"Kostenpflichtiger Service: Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.\",\r\n it: \"Servizio a pagamento: I dipendenti e gli studenti dell'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:\"\r\n },\r\n costWarningScanEPFL:{\r\n fr: \"Service gratuit pour les collaborateurs et les étudiants EPFL.\",\r\n en: \"Free of charge for EPFL staff and students.\",\r\n de: \"Service für Mitarbeiter und Studenten der EPFL kostenlos\",\r\n it: \"Servizio gratuito per i dipendenti e gli studenti dell’EPFL.\"\r\n },\r\n costWarningNetworkLoan:{\r\n fr: \"Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.\",\r\n en: \"Free of charge if withdrawal at the EPFL Library.\",\r\n de: \"Service bei Abholung in der EPFL-Bibliothek kostenlos.\",\r\n it: \"Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL\"\r\n },\r\n costWarningPEB:{\r\n fr: \"Service gratuit pour les collaborateurs et les étudiants de l’EPFL. Avant de passer une commande d’un document physique via le prêt entre bibliothèques, merci de vous assurer que ce document n'est pas disponible dans d’autres bibliothèques du réseau SLSP dans swisscovery.\",\r\n en: \"Free of charge for EPFL staff and students. Before placing an order for a physical document via the interlibrary loan, please make sure that this document is not available in other SLSP network libraries on swisscovery.\",\r\n de: \"Kostenloser Service für Mitarbeiter und Studenten der EPFL. Bevor Sie ein Medium über die Fernleihe bestellen, vergewissern Sie sich bitte zunächst in swisscovery, dass es nicht in einer anderen Bibliothek des SLSP-Netzwerks verfügbar ist.\",\r\n it: \"Servizio gratuito per i dipendenti e gli studenti dell’EPFL. Prima di ordinare un documento cartaceo tramite il prestito interbibliotecario, assicuratevi che questo documento non sia disponibile in altre biblioteche della rete SLSP in swisscovery.\"\r\n },\r\n mainTitle:{\r\n fr: \"Catalogue BEAST\",\r\n en: \"BEAST discovery tool\",\r\n de: \"BEAST Wissensportal\",\r\n it: \"Catalogo BEAST\"\r\n },\r\n subTitle:{\r\n fr: \"Le point d\\'accès à toutes les ressources de la Bibliothèque de l\\'EPFL\",\r\n en: \"The access portal to all the resources of the EPFL Library\",\r\n de: \"Der Zugangspunkt zu allen Ressourcen der EPFL Bibliothek\",\r\n it: \"Il punto d’accesso a tutte le risorse della Biblioteca dell’EPFL\"\r\n },\r\n switchEduID:{\r\n fr: \"Modifier vos informations personnelles sur\",\r\n en: \"Change your personal data on\",\r\n de: \"Ändern Sie Ihre persönlichen Daten auf\",\r\n it: \"Modifica i tuoi dati personali sul\"\r\n },\r\n illButton:{\r\n fr: \"Prêt entre bibliothèques (PEB)\",\r\n en: \"Inter Library Loan (ILL)\",\r\n de: \"Fernleihe\",\r\n it: \"Prestito interbibliotecario\"\r\n }\r\n };\r\n if (['en', 'fr', 'it', 'de'].includes($translate.use())) {\r\n return trad[txt][$translate.use()]\r\n } else {\r\n return trad[txt].fr\r\n }\r\n };\r\n }]);\r\n\r\n}) ()\r\n","\"use strict\";\r\n\r\n/***********************/\r\n/* FILTRE : traduction */\r\n/***********************/\r\n\r\n/*\r\n OBJECTIF: Permettre des balises html dans les champs.\r\n UTILISATION: S'utilise dans une balise comme un filtre.\r\n EXEMPLE: {{ variable | trustHtml }}\r\n*/\r\n(function () {\r\nangular.module('trustHtmlFilter', [])\r\n .filter('trustHtml', ['$sce', function($sce){\r\n return function(txt){\r\n return $sce.trustAsHtml(txt);\r\n };\r\n}]);\r\n}) ()\r\n","module.exports = {active: true,\r\n txt:\r\n {fr: `
\r\n

Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : swisscovery

\r\n
`,\r\n en: `
\r\n

The NEBIS network ended on December 7, 2020. It has been replaced by swisscovery: a new and wider network.

\r\n
`,\r\n de: `
\r\n

Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: swisscovery

\r\n
`,\r\n it: `
\r\n

La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: swisscovery

\r\n
`},\r\n begin:\"2020-01-04T00:00:00Z\",\r\n end:\"2021-03-31T12:00:00Z\"}\r\n","(function () {\r\n var homepage_module = angular.module('homepageModule', ['angularLoad']);\r\n homepage_module.component('prmSearchBarAfter', require('./searchbar.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIFS:\r\n - Toujours afficher l'onglet pour modifier le scope\r\n - Afficher une alerte si les dates correspondent\r\n UTILISATION:\r\n Pour paramétrer l'alerte, il faut modifier le fichier alert.json (dans ce dossier)\r\n*/\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n template: '
',\r\n controllerAs: 'ctrl',\r\n controller: ['$translate', function($translate){\r\n\r\n var vm = this;\r\n\r\n /********************/\r\n /* MESSAGE D'ALERTE */\r\n /********************/\r\n\r\n // récupère le fichier json avec les paramètres de l'alerte\r\n vm.alert = require(\"./alert.js\");\r\n\r\n // par défaut, l'alerte n'est pas considérée comme active\r\n vm.active = false;\r\n\r\n // Vérifie dans le fichier json si une alerte est prévue\r\n if (vm.alert.active === true){\r\n\r\n // Teste si les dates correspondent pour l'affichage de l'alerte\r\n var d_now = Date.now();\r\n if ((new Date(vm.alert.begin) < d_now) && (d_now < new Date(vm.alert.end))) {\r\n // déclenche l'affichage de l'alerte\r\n vm.active = true;\r\n }\r\n }\r\n\r\n // getteur qui retourne le texte en fonction de la langue\r\n vm.get_txt = function(){\r\n var lang = ['en', 'fr', 'it', 'de'].includes($translate.use()) ? $translate.use():'en';\r\n return vm.active ? vm.alert.txt[lang] : \"\";\r\n }\r\n\r\n /*******************/\r\n /* SCOPE PERMANENT */\r\n /*******************/\r\n\r\n // Rendre permanent l'affichage des onglets permettant de sélectionnet le scope\r\n vm.parentCtrl.showTabsAndScopes = true;\r\n\r\n // console.log(vm.alert);\r\n }\r\n ]};\r\n","/************************/\r\n/* List of used modules */\r\n/************************/\r\n\r\n// Import central SLSP package ;\r\n// import { centralCustom } from './slsp/custom_slsp.js';\r\nimport { centralCustom } from './slsp/epfl_custom_slsp.js';\r\nimport { homepageModule } from './homepage/index.js';\r\nimport { customTranslateFilter } from './filters/custom_translate.filter.js';\r\nimport { trustHtmlFilter } from './filters/trust_html.filter.js';\r\nimport { accountModule } from './account/index.js';\r\n\r\nvar app = angular.module('viewCustom', ['angularLoad', 'centralCustom', 'homepageModule', 'customTranslateFilter', 'trustHtmlFilter', 'accountModule']);\r\n","(function () {\r\n\r\n\r\n var app = angular.module('centralCustom', ['angularLoad']);\r\n\r\n\r\n /*\r\n ## VERSION SLSP DU CONTROLLEUR ##\r\n # Ajoute le lien vers les amendes\r\n\r\n app.controller('CourierInfoController', [function () {\r\n var vm = this;\r\n vm.linkBase = \"https:\\/\\/slsp.ch\\/fees\";\r\n\r\n }]);\r\n */\r\n\r\n /* ## VERSION EPFL DU CONTROLLEUR ## */\r\n\r\n app.controller('CourierInfoController', ['$filter', '$element', function ($filter, $element, $compile, $scope, $rootScope) {\r\n var vm = this;\r\n\r\n //shortcut for convenience\r\n this.form = $element[0].parentElement;\r\n\r\n //function for inserting block\r\n this.$doCheck = function() {\r\n let form = false;\r\n if (this.form.children[1].children[1] !== undefined &&\r\n this.form.children[1].children[1].children[0] !== undefined) {\r\n form = this.form.children[1].children[1].children[0];\r\n }\r\n else if (this.form.children[1].children[0] !== undefined &&\r\n this.form.children[1].children[0].children[0] !== undefined) {\r\n form = this.form.children[1].children[0].children[0];\r\n }\r\n\r\n //create and insert info block if not present\r\n\r\n if (form && form.children.length == 2 || vm.hasOwnProperty('currentTypeFeeAlert') &&\r\n vm.currentTypeFeeAlert != vm.typeFeeAlert()) {\r\n vm.currentTypeFeeAlert = vm.typeFeeAlert();\r\n var htmlwarning = `

${vm.getFeeAlert()}

`;\r\n if (vm.typeFeeAlert()=='costWarningScan') {\r\n var txt = $filter('customTranslate')('illButton');\r\n if (vm.get_peb_button()){\r\n var fn = `javascript:(function() {\r\n for (var elem of document.getElementsByTagName('span')) {\r\n if (elem.getAttribute('translate') === 'AlmaResourceSharing' &&\r\n elem.parentNode.className.indexOf('greenbutton') === -1)\r\n {\r\n elem.click();\r\n break;\r\n }\r\n };})()`;}\r\n else {\r\n var fn = `javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid=${vm.parentCtrl.vid}'})()`;\r\n }\r\n\r\n\r\n htmlwarning += `

${txt}

`;\r\n\r\n }\r\n htmlwarning += `

${this.parentCtrl.$translate.instant('customize.fullview.feesLinkText')}

`;\r\n var htmlcompiled = angular.element(htmlwarning)[0];\r\n if (form.children.length == 2) {\r\n form.insertBefore(htmlcompiled, form.children[1]);\r\n } else {\r\n form.children[1].replaceWith(htmlcompiled);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // Remonte l'EPFL dans la liste des bibliothèques\r\n Object.defineProperty(vm.parentCtrl, \"form\", {\r\n configurable: !0,\r\n get: function(){\r\n // Mettre l'EPFL en première position\r\n var form = this.getFilteredForm(['label', 'multiLabel'], false);\r\n if (!vm.hasOwnProperty('pickupLocationsListOrdered')){\r\n for (var i = 0; i < form.length; i++){\r\n if (form[i].key == 'pickupInstitution'){\r\n function compare( a, b ){\r\n var onTopInstitutions = ['41SLSP_EPF', '41SLSP_EPFL'];\r\n a = onTopInstitutions.indexOf(a.value);\r\n b = onTopInstitutions.indexOf(b.value);\r\n if (a == b) {return 0};\r\n return a < b ? 1 : -1;\r\n }\r\n form[i].options.sort(compare);\r\n vm['pickupLocationsListOrdered'] = true;\r\n }\r\n }\r\n }\r\n return form;\r\n }\r\n }\r\n );\r\n\r\n // Vérifie si l'EPFL est la provenance de l'exemplaire sélectionné\r\n vm.isEPFL = function() {\r\n return vm.parentCtrl.requestService && vm.parentCtrl.requestService._service['link-to-service'].indexOf('institution=41SLSP_EPF') > 0 ? true : false;\r\n }\r\n\r\n vm.linkBase = \"https:\\/\\/slsp.ch\\/fees\";\r\n\r\n // Personnalisation du message des frais\r\n vm.typeFeeAlert = function() {\r\n // console.log(vm.parentCtrl.requestHeader);\r\n if (['almaRequest.header', 'almaRequestOther.header', 'almaItemRequest.header'].includes(vm.parentCtrl.requestHeader)) {\r\n return 'costWarningNetworkLoan'; // $filter('customTranslate')(costWarningNetworkLoan');\r\n } else if (['almaDigitization.header',\r\n 'almaDigitizationOther.header',\r\n 'almaItemDigitization.header']\r\n .includes(vm.parentCtrl.requestHeader)) {\r\n return vm.isEPFL() ? 'costWarningScanEPFL' : 'costWarningScan';\r\n } else if (vm.parentCtrl.requestHeader === 'almaResourceSharing.header') {\r\n return 'costWarningPEB';\r\n } else {\r\n return 'costWarningGeneral';\r\n }\r\n }\r\n vm.getFeeAlert = function() {\r\n // console.log(vm.typeFeeAlert());\r\n return $filter('customTranslate')(vm.typeFeeAlert());\r\n }\r\n\r\n // Récupère le bouton PEB de la page afin de simuler un clic dessus\r\n vm.get_peb_button = function(){\r\n var allElements = document.getElementsByTagName('span');\r\n for (var i = 0, n = allElements.length; i < n; i++) {\r\n if (allElements[i].getAttribute('translate') === 'AlmaResourceSharing' &&\r\n allElements[i].parentNode.className.indexOf('greenbutton') === -1)\r\n {\r\n return allElements[i];\r\n }\r\n }\r\n\r\n }\r\n // vm.get_request_button = function(){\r\n // var allElements = document.getElementsByTagName('prm-opac');\r\n // if (allElements.length === 0) { return null; }\r\n // var opac = allElements[0];\r\n // if (opac.closest('prm-alma-other-members')) { return null; }\r\n //\r\n // var buttons = opac.getElementsByTagName('span');\r\n // for (var i = 0, n = buttons.length; i < n; i++) {\r\n // if (buttons[i].getAttribute('translate') == 'AlmaRequest')\r\n // {\r\n // return buttons[i];\r\n // }\r\n // }\r\n // }\r\n\r\n // Fonction simulant un clic sur le bouton PEB quand on clique sur les\r\n // frais.\r\n vm.click_peb = function(){\r\n var button = vm.get_peb_button();\r\n if (button) {\r\n button.click();\r\n } else {\r\n window.location.href = window.location.origin + '/discovery/blankIll?vid=' + vm.parentCtrl.vid;\r\n }\r\n }\r\n // vm.click_request = function(){\r\n // vm.get_request_button().click();\r\n // }\r\n\r\n // console.log(vm);\r\n\r\n }]);\r\n\r\n app.component('prmRequestAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'CourierInfoController',\r\n // template:\r\n // `
\r\n // \r\n //
\r\n //
\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //
\r\n //
\r\n // \r\n // \r\n //
\r\n //\r\n //
\r\n //
`\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n app.controller('LibInfoController', [function () {\r\n var vm = this;\r\n vm.biblinkText = \"Library\";\r\n vm.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n\r\n vm.getLibraryUrl = function() {\r\n if (vm.parentCtrl.loc && vm.parentCtrl.loc.location.libraryCode==='E02') {\r\n return \"https://go.epfl.ch/library\";\r\n } else {\r\n return vm.biblinkBase;\r\n }\r\n }\r\n vm.view = vm.parentCtrl.configurationUtil.vid.replace(':', '-');\r\n vm.getLibrary = function() {\r\n // return vm.parentCtrl.currLoc.location.librarycodeTranslation;\r\n return vm.parentCtrl.currLoc ? vm.parentCtrl.currLoc.location.librarycodeTranslation : '';\r\n }\r\n\r\n }]);\r\n\r\n app.component('prmLocationItemsAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'LibInfoController',\r\n controllerAs: 'ctrl',\r\n template: ``\r\n });\r\n\r\n\r\n\r\n //--------ILL Signin Order - if logged out ---------------------------------------\r\n app.service('userService', ['jwtHelper', function (jwtHelper) {\r\n this.isGuest = function () {\r\n var jwt = sessionStorage.getItem('primoExploreJwt');\r\n if (!jwt) {\r\n return true;\r\n }\r\n var decodedToken = jwtHelper.decodeToken(jwt);\r\n let userName = decodedToken.userGroup !== 'GUEST' ? decodedToken.userName : '';\r\n if (userName) {\r\n return false\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }])\r\n\r\n\r\n app.controller('IllBoxController', ['$scope', 'userService', function ($scope, userService) {\r\n\r\n $scope.usrNme = userService.isGuest();\r\n\r\n if ($scope.usrNme == true) {\r\n var myEl = angular.element(document.querySelector('primo-explore'));\r\n return myEl.addClass('logged-out')\r\n }\r\n\r\n else {\r\n var myEl = angular.element(document.querySelector('primo-explore'));\r\n return myEl.removeClass('logged-out');\r\n }\r\n\r\n\r\n }]);\r\n\r\n app.component('prmUserAreaExpandableAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'IllBoxController',\r\n template: ''\r\n });\r\n\r\n app.component('prmTopbarAfter', {\r\n bindings: { parentCtrl: '<' },\r\n // controller: 'IllBoxController',\r\n template: `

{{ 'mainTitle' | customTranslate }}

{{ 'subTitle' | customTranslate }}

`\r\n });\r\n\r\n //----------------------------------------------------------------------------------------------\r\n\r\n\r\n app.controller('AlertMsgController', ['$scope', function ($scope) {\r\n var vm = this;\r\n vm.getAlert = getAlert\r\n\r\n function getAlert() {\r\n var ga = vm.parentCtrl.almaHowToGetitService.reqAlert._htmlMsg;\r\n var myEl2 = angular.element(document.querySelector('primo-explore'));\r\n\r\n if (ga.length > 0) {\r\n return myEl2.addClass('alert');\r\n\r\n }\r\n else {\r\n\r\n return myEl2.removeClass('alert');\r\n\r\n }\r\n }\r\n\r\n }]);\r\n\r\n app.component('almaHowovpAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'AlertMsgController',\r\n template: '
{{$ctrl.getAlert()}}
'\r\n });\r\n\r\n\r\n\r\n})();\r\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","primo-explore/custom/41SLSP_EPF-prod/js/account/accountlinks.component.js","primo-explore/custom/41SLSP_EPF-prod/js/account/index.js","primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js","primo-explore/custom/41SLSP_EPF-prod/js/filters/trust_html.filter.js","primo-explore/custom/41SLSP_EPF-prod/js/fullview/almaviewit.component.js","primo-explore/custom/41SLSP_EPF-prod/js/fullview/index.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/alert.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/index.js","primo-explore/custom/41SLSP_EPF-prod/js/homepage/searchbar.component.js","primo-explore/custom/41SLSP_EPF-prod/js/main.js","primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","bindings","parentCtrl","controllerAs","controller","vm","this","console","log","view","accountLinksService","vid","replace","template","angular","component","filter","$translate","txt","trad","costWarningScan","fr","en","de","it","costWarningScanEPFL","costWarningNetworkLoan","costWarningPEB","mainTitle","subTitle","switchEduID","illButton","feedbackLink","vpnMSG","feedbackLinkMSG","includes","use","$sce","trustAsHtml","$filter","userService","get_txt","is_epfl_IP","no_report_link","item","pnx","addata","openaccess","oa","userIP","getIP","found","match","parseInt","mmsId","control","recordid","title","display","creationdate","creator","join","type","identifier","ident","indexOf","substring","userAgent","navigator","subject","body","encodeURIComponent","active","begin","end","alert","d_now","Date","now","lang","showTabsAndScopes","app","$element","$compile","$scope","$rootScope","form","parentElement","$doCheck","undefined","children","hasOwnProperty","currentTypeFeeAlert","typeFeeAlert","htmlwarning","getFeeAlert","get_peb_button","fn","instant","htmlcompiled","element","insertBefore","replaceWith","Object","defineProperty","configurable","get","getFilteredForm","key","options","sort","b","onTopInstitutions","value","isEPFL","requestService","_service","linkBase","requestHeader","allElements","document","getElementsByTagName","getAttribute","parentNode","className","click_peb","button","click","window","location","href","origin","biblinkText","biblinkBase","getLibraryUrl","loc","libraryCode","configurationUtil","getLibrary","currLoc","librarycodeTranslation","service","jwtHelper","isGuest","jwt","sessionStorage","getItem","decodedToken","decodeToken","userGroup","userName","userIp","usrNme","querySelector","removeClass","addClass","getAlert","ga","almaHowToGetitService","reqAlert","_htmlMsg","myEl2"],"mappings":"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","file":"custom.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {{ 'switchEduID' | customTranslate | trustHtml }} https://eduid.ch`\r\n};\r\n","(function () {\r\n var account_module = angular.module('accountModule', ['angularLoad']);\r\n account_module.component('prmAccountLinksAfter', require('./accountlinks.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/***********************/\r\n/* FILTRE : traduction */\r\n/***********************/\r\n\r\n/*\r\n OBJECTIF: traduire des éléments, tant des urls que du texte.\r\n UTILISATION:\r\n - Dans le template:\r\n 1. comme un filtre: {{ clé | customTranslate }}\r\n - Dans un controlleur:\r\n Même si les filtres sont d'abord prévus pour être utilisés dans le\r\n template, on peut les appeler dans les controlleurs.\r\n 1. Ajouter le service dans l'en-tête du controlleur\r\n 2. Appeler le service avec la fonction $filter\r\n EXEMPLE:\r\n controller:function($http, $filter){...\r\n var traduction = $filter('customTranslate')('cleTrad');\r\n ...}\r\n CONFIGURATION:\r\n L'ajout de traduction se fait à travers des objets. La clé indique le\r\n terme à utiliser dans le template ou le controlleur pour ensuite\r\n renvoyer la traduction. Les noms associés n'appaaraissent donc pas tels\r\n quels. La structure de chaque élément traduit disponible est comme suit:\r\n clé1:{\r\n fr: traductionFrançaise\r\n en: traductionAnglaise\r\n },\r\n clé2:{\r\n fr: traductionFrançaise\r\n en: traductionAnglaise\r\n }\r\n*/\r\n(function () {\r\n\r\n var custom_translate_module = angular.module('customTranslateFilter', [])\r\n .filter('customTranslate', ['$translate', function($translate){\r\n return function(txt){\r\n var trad = {\r\n\r\n costWarningScan:{\r\n fr: \"Service payant: les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:\",\r\n en: \"Fee-based service: EPFL employees and students can benefit from this service free of charge by using the form:\",\r\n de: \"Kostenpflichtiger Service: Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.\",\r\n it: \"Servizio a pagamento: I dipendenti e gli studenti dell'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:\"\r\n },\r\n costWarningScanEPFL:{\r\n fr: \"Service gratuit pour les collaborateurs et les étudiants EPFL.\",\r\n en: \"Free of charge for EPFL staff and students.\",\r\n de: \"Service für Mitarbeiter und Studenten der EPFL kostenlos\",\r\n it: \"Servizio gratuito per i dipendenti e gli studenti dell’EPFL.\"\r\n },\r\n costWarningNetworkLoan:{\r\n fr: \"Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.\",\r\n en: \"Free of charge if withdrawal at the EPFL Library.\",\r\n de: \"Service bei Abholung in der EPFL-Bibliothek kostenlos.\",\r\n it: \"Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL\"\r\n },\r\n costWarningPEB:{\r\n fr: \"Service gratuit pour les collaborateurs et les étudiants de l’EPFL. Avant de passer une commande d’un document physique via le prêt entre bibliothèques, merci de vous assurer que ce document n'est pas disponible dans d’autres bibliothèques du réseau SLSP dans swisscovery.\",\r\n en: \"Free of charge for EPFL staff and students. Before placing an order for a physical document via the interlibrary loan, please make sure that this document is not available in other SLSP network libraries on swisscovery.\",\r\n de: \"Kostenloser Service für Mitarbeiter und Studenten der EPFL. Bevor Sie ein Medium über die Fernleihe bestellen, vergewissern Sie sich bitte zunächst in swisscovery, dass es nicht in einer anderen Bibliothek des SLSP-Netzwerks verfügbar ist.\",\r\n it: \"Servizio gratuito per i dipendenti e gli studenti dell’EPFL. Prima di ordinare un documento cartaceo tramite il prestito interbibliotecario, assicuratevi che questo documento non sia disponibile in altre biblioteche della rete SLSP in swisscovery.\"\r\n },\r\n mainTitle:{\r\n fr: \"Catalogue BEAST\",\r\n en: \"BEAST discovery tool\",\r\n de: \"BEAST Wissensportal\",\r\n it: \"Catalogo BEAST\"\r\n },\r\n subTitle:{\r\n fr: \"Le point d\\'accès à toutes les ressources de la Bibliothèque de l\\'EPFL\",\r\n en: \"The access portal to all the resources of the EPFL Library\",\r\n de: \"Der Zugangspunkt zu allen Ressourcen der EPFL Bibliothek\",\r\n it: \"Il punto d’accesso a tutte le risorse della Biblioteca dell’EPFL\"\r\n },\r\n switchEduID:{\r\n fr: \"Modifier vos informations personnelles sur\",\r\n en: \"Change your personal data on\",\r\n de: \"Ändern Sie Ihre persönlichen Daten auf\",\r\n it: \"Modifica i tuoi dati personali sul\"\r\n },\r\n illButton:{\r\n fr: \"Prêt entre bibliothèques (PEB)\",\r\n en: \"Inter Library Loan (ILL)\",\r\n de: \"Fernleihe\",\r\n it: \"Prestito interbibliotecario\"\r\n },\r\n feedbackLink:{\r\n fr: \"Signaler un problème d'accès\",\r\n en: \"Report an access problem\",\r\n de: \"Zugriffsproblem melden\",\r\n it: \"Segnalare un problema di accesso\"\r\n },\r\n vpnMSG:{\r\n fr: \"Les ressources électroniques sont accessibles depuis tous les postes de l’EPFL, et à distance via le VPN EPFL.\",\r\n en: \"Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL VPN.\",\r\n de: \"Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL VPN abrufbar.\",\r\n it: \"Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell'EPFL e a distanza tramite VPN EPFL.\"\r\n },\r\n // vpnLink:{\r\n // fr: \"https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/\",\r\n // en: \"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\",\r\n // de: \"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\",\r\n // it: \"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\"\r\n // },\r\n feedbackLinkMSG:{\r\n fr: \"Je rencontre un problème d’accès à la ressource électronique ci-dessous. Je vous remercie de m’informer lorsque l’accès sera rétabli.\",\r\n en: \"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.\",\r\n de: \"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.\",\r\n it: \"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.\"\r\n }\r\n };\r\n if (['en', 'fr', 'it', 'de'].includes($translate.use())) {\r\n return trad[txt][$translate.use()]\r\n } else {\r\n return trad[txt].fr\r\n }\r\n };\r\n }]);\r\n\r\n}) ()\r\n","\"use strict\";\r\n\r\n/***********************/\r\n/* FILTRE : traduction */\r\n/***********************/\r\n\r\n/*\r\n OBJECTIF: Permettre des balises html dans les champs.\r\n UTILISATION: S'utilise dans une balise comme un filtre.\r\n EXEMPLE: {{ variable | trustHtml }}\r\n*/\r\n(function () {\r\nangular.module('trustHtmlFilter', [])\r\n .filter('trustHtml', ['$sce', function($sce){\r\n return function(txt){\r\n return $sce.trustAsHtml(txt);\r\n };\r\n}]);\r\n}) ()\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: Ajouter un lien pour rapporter les problèmes d'accès aux\r\n ressources électroniques. Un message d'avertissement s'affiche quand la\r\n la personne n'est pas sur le réseau EPFL\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$filter', 'userService', function($filter, userService) {\r\n var vm = this;\r\n\r\n vm.get_txt = function() {\r\n return $filter('customTranslate')('vpnMSG');\r\n }\r\n\r\n vm.feedbackLink = '';\r\n vm.is_epfl_IP = false;\r\n vm.no_report_link = false;\r\n\r\n // not for open access\r\n if (vm.parentCtrl.item.pnx.addata.openaccess && vm.parentCtrl.item.pnx.addata.openaccess[0] === 'true') {\r\n vm.no_report_link = true;\r\n }\r\n // not for cdi open access\r\n if (vm.parentCtrl.item.pnx.addata.oa && vm.parentCtrl.item.pnx.addata.oa[0] === 'free_for_read') {\r\n vm.no_report_link = true;\r\n }\r\n if (!vm.no_report_link){\r\n\r\n /* Obtient l'adresse ip depuis un service se trouvant dans le\r\n module \\js\\slsp\\epfl_custom_slsp.js */\r\n var userIP = userService.getIP();\r\n // console.log(userIP);\r\n // Vérification du range EPFL\r\n if (userIP) {\r\n const regex = /128\\.17([89])\\.(\\d{1,3})\\./;\r\n const found = userIP.match(regex);\r\n if (found && (found[1] == '8' || parseInt(found[2])>=128)) {\r\n vm.is_epfl_IP = true;\r\n }\r\n }\r\n\r\n // Récupération des métadonnées de la ressource\r\n var mmsId = vm.parentCtrl.item.pnx.control.recordid[0];\r\n var title = '';\r\n if (vm.parentCtrl.item.pnx.display.title && vm.parentCtrl.item.pnx.display.title.length > 0) {\r\n title = vm.parentCtrl.item.pnx.display.title[0];\r\n }\r\n var creationdate = '';\r\n if (vm.parentCtrl.item.pnx.display.creationdate && vm.parentCtrl.item.pnx.display.creationdate.length > 0) {\r\n creationdate = vm.parentCtrl.item.pnx.display.creationdate[0];\r\n }\r\n var creator = '';\r\n if (vm.parentCtrl.item.pnx.display.creator && vm.parentCtrl.item.pnx.display.creator.length > 0) {\r\n creator = vm.parentCtrl.item.pnx.display.creator.join(', ');\r\n }\r\n var type = '';\r\n if (vm.parentCtrl.item.pnx.display.type && vm.parentCtrl.item.pnx.display.type.length > 0) {\r\n type = vm.parentCtrl.item.pnx.display.type[0];\r\n }\r\n var identifier = '';\r\n if (vm.parentCtrl.item.pnx.display.identifier && vm.parentCtrl.item.pnx.display.identifier.length > 0) {\r\n var ident = vm.parentCtrl.item.pnx.display.identifier[0];\r\n if (ident.indexOf('ISBN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(//g, '');\r\n } else if (ident.indexOf('ISSN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(//g, '');\r\n } else if (ident.indexOf('ISBN') > -1) {\r\n identifier = 'ISBN: ' + ident.substring(ident.indexOf('$$V') + 3);\r\n } else if (ident.indexOf('ISSN') > -1) {\r\n identifier = 'ISSN: ' + ident.substring(ident.indexOf('$$V') + 3);\r\n }\r\n }\r\n var userAgent = navigator.userAgent;\r\n\r\n // Création de l'objet du message\r\n var subject = 'Access problem ' + mmsId + ' - \"' + title + '\"';\r\n\r\n // Création du corps du message\r\n var body = $filter('customTranslate')('feedbackLinkMSG') + '\\n\\n' + '****\\nTitle: ' + title + '\\nAuthor: ' + creator + '\\nYear: ' + creationdate + '\\nType: ' + type + '\\nDocId: ' + mmsId + '\\nIdentifier: ' + identifier + '\\nUser_agent: ' + userAgent + '\\nUserIP: ' + userIP + '\\nRange EPFL: ' + vm.is_epfl_IP + '\\n****';\r\n\r\n vm.feedbackLink = 'mailto:edoc@epfl.ch' + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body) + '&Content-Type=text/html';\r\n }\r\n\r\n }],\r\n template: `\r\n \r\n `}\r\n","(function () {\r\n var homepage_module = angular.module('fullviewModule', ['angularLoad']);\r\n homepage_module.component('prmAlmaViewitAfter', require('./almaviewit.component.js'));\r\n})()\r\n","module.exports = {active: true,\r\n txt:\r\n {fr: `
\r\n

Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : swisscovery

\r\n
`,\r\n en: `
\r\n

The NEBIS network ended on December 7, 2020. It has been replaced by swisscovery: a new and wider network.

\r\n
`,\r\n de: `
\r\n

Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: swisscovery

\r\n
`,\r\n it: `
\r\n

La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: swisscovery

\r\n
`},\r\n begin:\"2020-01-04T00:00:00Z\",\r\n end:\"2021-03-31T12:00:00Z\"}\r\n","(function () {\r\n var homepage_module = angular.module('homepageModule', ['angularLoad']);\r\n homepage_module.component('prmSearchBarAfter', require('./searchbar.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIFS:\r\n - Toujours afficher l'onglet pour modifier le scope\r\n - Afficher une alerte si les dates correspondent\r\n UTILISATION:\r\n Pour paramétrer l'alerte, il faut modifier le fichier alert.json (dans ce dossier)\r\n*/\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n template: '
',\r\n controllerAs: 'ctrl',\r\n controller: ['$translate', function($translate){\r\n\r\n var vm = this;\r\n\r\n /********************/\r\n /* MESSAGE D'ALERTE */\r\n /********************/\r\n\r\n // récupère le fichier json avec les paramètres de l'alerte\r\n vm.alert = require(\"./alert.js\");\r\n\r\n // par défaut, l'alerte n'est pas considérée comme active\r\n vm.active = false;\r\n\r\n // Vérifie dans le fichier json si une alerte est prévue\r\n if (vm.alert.active === true){\r\n\r\n // Teste si les dates correspondent pour l'affichage de l'alerte\r\n var d_now = Date.now();\r\n if ((new Date(vm.alert.begin) < d_now) && (d_now < new Date(vm.alert.end))) {\r\n // déclenche l'affichage de l'alerte\r\n vm.active = true;\r\n }\r\n }\r\n\r\n // getteur qui retourne le texte en fonction de la langue\r\n vm.get_txt = function(){\r\n var lang = ['en', 'fr', 'it', 'de'].includes($translate.use()) ? $translate.use():'en';\r\n return vm.active ? vm.alert.txt[lang] : \"\";\r\n }\r\n\r\n /*******************/\r\n /* SCOPE PERMANENT */\r\n /*******************/\r\n\r\n // Rendre permanent l'affichage des onglets permettant de sélectionnet le scope\r\n vm.parentCtrl.showTabsAndScopes = true;\r\n\r\n // console.log(vm.alert);\r\n }\r\n ]};\r\n","/************************/\r\n/* List of used modules */\r\n/************************/\r\n\r\n// Import central SLSP package ;\r\n// import { centralCustom } from './slsp/custom_slsp.js';\r\nimport { centralCustom } from './slsp/epfl_custom_slsp.js';\r\nimport { homepageModule } from './homepage/index.js';\r\nimport { customTranslateFilter } from './filters/custom_translate.filter.js';\r\nimport { trustHtmlFilter } from './filters/trust_html.filter.js';\r\nimport { accountModule } from './account/index.js';\r\nimport { fullviewModule } from './fullview/index.js';\r\n\r\nvar app = angular.module('viewCustom', ['angularLoad', 'centralCustom', 'homepageModule', 'customTranslateFilter', 'trustHtmlFilter', 'accountModule', 'fullviewModule']);\r\n","(function () {\r\n\r\n\r\n var app = angular.module('centralCustom', ['angularLoad']);\r\n\r\n\r\n /*\r\n ## VERSION SLSP DU CONTROLLEUR ##\r\n # Ajoute le lien vers les amendes\r\n\r\n app.controller('CourierInfoController', [function () {\r\n var vm = this;\r\n vm.linkBase = \"https:\\/\\/slsp.ch\\/fees\";\r\n\r\n }]);\r\n */\r\n\r\n /* ## VERSION EPFL DU CONTROLLEUR ## */\r\n\r\n app.controller('CourierInfoController', ['$filter', '$element', function ($filter, $element, $compile, $scope, $rootScope) {\r\n var vm = this;\r\n\r\n //shortcut for convenience\r\n this.form = $element[0].parentElement;\r\n\r\n //function for inserting block\r\n this.$doCheck = function() {\r\n let form = false;\r\n if (this.form.children[1].children[1] !== undefined &&\r\n this.form.children[1].children[1].children[0] !== undefined) {\r\n form = this.form.children[1].children[1].children[0];\r\n }\r\n else if (this.form.children[1].children[0] !== undefined &&\r\n this.form.children[1].children[0].children[0] !== undefined) {\r\n form = this.form.children[1].children[0].children[0];\r\n }\r\n\r\n //create and insert info block if not present\r\n\r\n if (form && form.children.length == 2 || vm.hasOwnProperty('currentTypeFeeAlert') &&\r\n vm.currentTypeFeeAlert != vm.typeFeeAlert()) {\r\n vm.currentTypeFeeAlert = vm.typeFeeAlert();\r\n var htmlwarning = `

${vm.getFeeAlert()}

`;\r\n if (vm.typeFeeAlert()=='costWarningScan') {\r\n var txt = $filter('customTranslate')('illButton');\r\n if (vm.get_peb_button()){\r\n var fn = `javascript:(function() {\r\n for (var elem of document.getElementsByTagName('span')) {\r\n if (elem.getAttribute('translate') === 'AlmaResourceSharing' &&\r\n elem.parentNode.className.indexOf('greenbutton') === -1)\r\n {\r\n elem.click();\r\n break;\r\n }\r\n };})()`;}\r\n else {\r\n var fn = `javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid=${vm.parentCtrl.vid}'})()`;\r\n }\r\n\r\n\r\n htmlwarning += `

${txt}

`;\r\n\r\n }\r\n htmlwarning += `

${this.parentCtrl.$translate.instant('customize.fullview.feesLinkText')}

`;\r\n var htmlcompiled = angular.element(htmlwarning)[0];\r\n if (form.children.length == 2) {\r\n form.insertBefore(htmlcompiled, form.children[1]);\r\n } else {\r\n form.children[1].replaceWith(htmlcompiled);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // Remonte l'EPFL dans la liste des bibliothèques\r\n Object.defineProperty(vm.parentCtrl, \"form\", {\r\n configurable: !0,\r\n get: function(){\r\n // Mettre l'EPFL en première position\r\n var form = this.getFilteredForm(['label', 'multiLabel'], false);\r\n if (!vm.hasOwnProperty('pickupLocationsListOrdered')){\r\n for (var i = 0; i < form.length; i++){\r\n if (form[i].key == 'pickupInstitution'){\r\n function compare( a, b ){\r\n var onTopInstitutions = ['41SLSP_EPF', '41SLSP_EPFL'];\r\n a = onTopInstitutions.indexOf(a.value);\r\n b = onTopInstitutions.indexOf(b.value);\r\n if (a == b) {return 0};\r\n return a < b ? 1 : -1;\r\n }\r\n form[i].options.sort(compare);\r\n vm['pickupLocationsListOrdered'] = true;\r\n }\r\n }\r\n }\r\n return form;\r\n }\r\n }\r\n );\r\n\r\n // Vérifie si l'EPFL est la provenance de l'exemplaire sélectionné\r\n vm.isEPFL = function() {\r\n return vm.parentCtrl.requestService && vm.parentCtrl.requestService._service['link-to-service'].indexOf('institution=41SLSP_EPF') > 0 ? true : false;\r\n }\r\n\r\n vm.linkBase = \"https:\\/\\/slsp.ch\\/fees\";\r\n\r\n // Personnalisation du message des frais\r\n vm.typeFeeAlert = function() {\r\n // console.log(vm.parentCtrl.requestHeader);\r\n if (['almaRequest.header', 'almaRequestOther.header', 'almaItemRequest.header'].includes(vm.parentCtrl.requestHeader)) {\r\n return 'costWarningNetworkLoan'; // $filter('customTranslate')(costWarningNetworkLoan');\r\n } else if (['almaDigitization.header',\r\n 'almaDigitizationOther.header',\r\n 'almaItemDigitization.header']\r\n .includes(vm.parentCtrl.requestHeader)) {\r\n return vm.isEPFL() ? 'costWarningScanEPFL' : 'costWarningScan';\r\n } else if (vm.parentCtrl.requestHeader === 'almaResourceSharing.header') {\r\n return 'costWarningPEB';\r\n } else {\r\n return 'costWarningGeneral';\r\n }\r\n }\r\n vm.getFeeAlert = function() {\r\n // console.log(vm.typeFeeAlert());\r\n return $filter('customTranslate')(vm.typeFeeAlert());\r\n }\r\n\r\n // Récupère le bouton PEB de la page afin de simuler un clic dessus\r\n vm.get_peb_button = function(){\r\n var allElements = document.getElementsByTagName('span');\r\n for (var i = 0, n = allElements.length; i < n; i++) {\r\n if (allElements[i].getAttribute('translate') === 'AlmaResourceSharing' &&\r\n allElements[i].parentNode.className.indexOf('greenbutton') === -1)\r\n {\r\n return allElements[i];\r\n }\r\n }\r\n\r\n }\r\n // vm.get_request_button = function(){\r\n // var allElements = document.getElementsByTagName('prm-opac');\r\n // if (allElements.length === 0) { return null; }\r\n // var opac = allElements[0];\r\n // if (opac.closest('prm-alma-other-members')) { return null; }\r\n //\r\n // var buttons = opac.getElementsByTagName('span');\r\n // for (var i = 0, n = buttons.length; i < n; i++) {\r\n // if (buttons[i].getAttribute('translate') == 'AlmaRequest')\r\n // {\r\n // return buttons[i];\r\n // }\r\n // }\r\n // }\r\n\r\n // Fonction simulant un clic sur le bouton PEB quand on clique sur les\r\n // frais.\r\n vm.click_peb = function(){\r\n var button = vm.get_peb_button();\r\n if (button) {\r\n button.click();\r\n } else {\r\n window.location.href = window.location.origin + '/discovery/blankIll?vid=' + vm.parentCtrl.vid;\r\n }\r\n }\r\n // vm.click_request = function(){\r\n // vm.get_request_button().click();\r\n // }\r\n\r\n // console.log(vm);\r\n\r\n }]);\r\n\r\n app.component('prmRequestAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'CourierInfoController',\r\n // template:\r\n // `
\r\n // \r\n //
\r\n //
\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //
\r\n //
\r\n // \r\n // \r\n //
\r\n //\r\n //
\r\n //
`\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n app.controller('LibInfoController', [function () {\r\n var vm = this;\r\n vm.biblinkText = \"Library\";\r\n vm.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n\r\n vm.getLibraryUrl = function() {\r\n if (vm.parentCtrl.loc && vm.parentCtrl.loc.location.libraryCode==='E02') {\r\n return \"https://go.epfl.ch/library\";\r\n } else {\r\n return vm.biblinkBase;\r\n }\r\n }\r\n vm.view = vm.parentCtrl.configurationUtil.vid.replace(':', '-');\r\n vm.getLibrary = function() {\r\n // return vm.parentCtrl.currLoc.location.librarycodeTranslation;\r\n return vm.parentCtrl.currLoc ? vm.parentCtrl.currLoc.location.librarycodeTranslation : '';\r\n }\r\n console.log(vm);\r\n\r\n }]);\r\n\r\n app.component('prmLocationItemsAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'LibInfoController',\r\n controllerAs: 'ctrl',\r\n template: ``\r\n });\r\n\r\n\r\n\r\n //--------ILL Signin Order - if logged out ---------------------------------------\r\n app.service('userService', ['jwtHelper', function (jwtHelper) {\r\n this.isGuest = function () {\r\n var jwt = sessionStorage.getItem('primoExploreJwt');\r\n if (!jwt) {\r\n return true;\r\n }\r\n var decodedToken = jwtHelper.decodeToken(jwt);\r\n let userName = decodedToken.userGroup !== 'GUEST' ? decodedToken.userName : '';\r\n if (userName) {\r\n return false\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n /* ----------------------------------- */\r\n /* - Ajout pour obtenir l'adresse IP - */\r\n this.getIP = function () {\r\n var jwt = sessionStorage.getItem('primoExploreJwt');\r\n if (!jwt) {\r\n return;\r\n }\r\n return jwtHelper.decodeToken(jwt).userIp;\r\n }\r\n\r\n\r\n /* --------- Fin de l'ajout --------- */\r\n /* ---------------------------------- */\r\n\r\n }])\r\n\r\n\r\n app.controller('IllBoxController', ['$scope', 'userService', function ($scope, userService) {\r\n\r\n $scope.usrNme = userService.isGuest();\r\n\r\n if ($scope.usrNme == true) {\r\n var myEl = angular.element(document.querySelector('primo-explore'));\r\n return myEl.addClass('logged-out')\r\n }\r\n\r\n else {\r\n var myEl = angular.element(document.querySelector('primo-explore'));\r\n return myEl.removeClass('logged-out');\r\n }\r\n\r\n\r\n }]);\r\n\r\n app.component('prmUserAreaExpandableAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'IllBoxController',\r\n template: ''\r\n });\r\n\r\n app.component('prmTopbarAfter', {\r\n bindings: { parentCtrl: '<' },\r\n // controller: 'IllBoxController',\r\n template: `

{{ 'mainTitle' | customTranslate }}

{{ 'subTitle' | customTranslate }}

`\r\n });\r\n\r\n //----------------------------------------------------------------------------------------------\r\n\r\n\r\n app.controller('AlertMsgController', ['$scope', function ($scope) {\r\n var vm = this;\r\n vm.getAlert = getAlert\r\n\r\n function getAlert() {\r\n var ga = vm.parentCtrl.almaHowToGetitService.reqAlert._htmlMsg;\r\n var myEl2 = angular.element(document.querySelector('primo-explore'));\r\n\r\n if (ga.length > 0) {\r\n return myEl2.addClass('alert');\r\n\r\n }\r\n else {\r\n\r\n return myEl2.removeClass('alert');\r\n\r\n }\r\n }\r\n\r\n }]);\r\n\r\n app.component('almaHowovpAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'AlertMsgController',\r\n template: '
{{$ctrl.getAlert()}}
'\r\n });\r\n\r\n\r\n\r\n})();\r\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js b/primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js index 50912cf..694bcd2 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js +++ b/primo-explore/custom/41SLSP_EPF-prod/js/filters/custom_translate.filter.js @@ -1,99 +1,123 @@ "use strict"; /***********************/ /* FILTRE : traduction */ /***********************/ /* OBJECTIF: traduire des éléments, tant des urls que du texte. UTILISATION: - Dans le template: 1. comme un filtre: {{ clé | customTranslate }} - Dans un controlleur: Même si les filtres sont d'abord prévus pour être utilisés dans le template, on peut les appeler dans les controlleurs. 1. Ajouter le service dans l'en-tête du controlleur 2. Appeler le service avec la fonction $filter EXEMPLE: controller:function($http, $filter){... var traduction = $filter('customTranslate')('cleTrad'); ...} CONFIGURATION: L'ajout de traduction se fait à travers des objets. La clé indique le terme à utiliser dans le template ou le controlleur pour ensuite renvoyer la traduction. Les noms associés n'appaaraissent donc pas tels quels. La structure de chaque élément traduit disponible est comme suit: clé1:{ fr: traductionFrançaise en: traductionAnglaise }, clé2:{ fr: traductionFrançaise en: traductionAnglaise } */ (function () { var custom_translate_module = angular.module('customTranslateFilter', []) .filter('customTranslate', ['$translate', function($translate){ return function(txt){ var trad = { costWarningScan:{ fr: "Service payant: les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:", en: "Fee-based service: EPFL employees and students can benefit from this service free of charge by using the form:", de: "Kostenpflichtiger Service: Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.", it: "Servizio a pagamento: I dipendenti e gli studenti dell'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:" }, costWarningScanEPFL:{ fr: "Service gratuit pour les collaborateurs et les étudiants EPFL.", en: "Free of charge for EPFL staff and students.", de: "Service für Mitarbeiter und Studenten der EPFL kostenlos", it: "Servizio gratuito per i dipendenti e gli studenti dell’EPFL." }, costWarningNetworkLoan:{ fr: "Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.", en: "Free of charge if withdrawal at the EPFL Library.", de: "Service bei Abholung in der EPFL-Bibliothek kostenlos.", it: "Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL" }, costWarningPEB:{ fr: "Service gratuit pour les collaborateurs et les étudiants de l’EPFL. Avant de passer une commande d’un document physique via le prêt entre bibliothèques, merci de vous assurer que ce document n'est pas disponible dans d’autres bibliothèques du réseau SLSP dans swisscovery.", en: "Free of charge for EPFL staff and students. Before placing an order for a physical document via the interlibrary loan, please make sure that this document is not available in other SLSP network libraries on swisscovery.", de: "Kostenloser Service für Mitarbeiter und Studenten der EPFL. Bevor Sie ein Medium über die Fernleihe bestellen, vergewissern Sie sich bitte zunächst in swisscovery, dass es nicht in einer anderen Bibliothek des SLSP-Netzwerks verfügbar ist.", it: "Servizio gratuito per i dipendenti e gli studenti dell’EPFL. Prima di ordinare un documento cartaceo tramite il prestito interbibliotecario, assicuratevi che questo documento non sia disponibile in altre biblioteche della rete SLSP in swisscovery." }, mainTitle:{ fr: "Catalogue BEAST", en: "BEAST discovery tool", de: "BEAST Wissensportal", it: "Catalogo BEAST" }, subTitle:{ fr: "Le point d\'accès à toutes les ressources de la Bibliothèque de l\'EPFL", en: "The access portal to all the resources of the EPFL Library", de: "Der Zugangspunkt zu allen Ressourcen der EPFL Bibliothek", it: "Il punto d’accesso a tutte le risorse della Biblioteca dell’EPFL" }, switchEduID:{ fr: "Modifier vos informations personnelles sur", en: "Change your personal data on", de: "Ändern Sie Ihre persönlichen Daten auf", it: "Modifica i tuoi dati personali sul" }, illButton:{ fr: "Prêt entre bibliothèques (PEB)", en: "Inter Library Loan (ILL)", de: "Fernleihe", it: "Prestito interbibliotecario" + }, + feedbackLink:{ + fr: "Signaler un problème d'accès", + en: "Report an access problem", + de: "Zugriffsproblem melden", + it: "Segnalare un problema di accesso" + }, + vpnMSG:{ + fr: "Les ressources électroniques sont accessibles depuis tous les postes de l’EPFL, et à distance via le VPN EPFL.", + en: "Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL VPN.", + de: "Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL VPN abrufbar.", + it: "Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell'EPFL e a distanza tramite VPN EPFL." + }, + // vpnLink:{ + // fr: "https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/", + // en: "https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/", + // de: "https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/", + // it: "https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/" + // }, + feedbackLinkMSG:{ + fr: "Je rencontre un problème d’accès à la ressource électronique ci-dessous. Je vous remercie de m’informer lorsque l’accès sera rétabli.", + en: "I have a problem accessing the electronic resource below. Please let me know when the access will be restored.", + de: "I have a problem accessing the electronic resource below. Please let me know when the access will be restored.", + it: "I have a problem accessing the electronic resource below. Please let me know when the access will be restored." } }; if (['en', 'fr', 'it', 'de'].includes($translate.use())) { return trad[txt][$translate.use()] } else { return trad[txt].fr } }; }]); }) () diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/fullview/almaviewit.component.js b/primo-explore/custom/41SLSP_EPF-prod/js/fullview/almaviewit.component.js new file mode 100644 index 0000000..efbc7e9 --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/js/fullview/almaviewit.component.js @@ -0,0 +1,93 @@ +"use strict"; + +/* + OBJECTIF: Ajouter un lien pour rapporter les problèmes d'accès aux + ressources électroniques. Un message d'avertissement s'affiche quand la + la personne n'est pas sur le réseau EPFL +*/ + +module.exports = { + bindings: {parentCtrl: '<'}, + controllerAs: 'ctrl', + controller: ['$filter', 'userService', function($filter, userService) { + var vm = this; + + vm.get_txt = function() { + return $filter('customTranslate')('vpnMSG'); + } + + vm.feedbackLink = ''; + vm.is_epfl_IP = false; + vm.no_report_link = false; + + // not for open access + if (vm.parentCtrl.item.pnx.addata.openaccess && vm.parentCtrl.item.pnx.addata.openaccess[0] === 'true') { + vm.no_report_link = true; + } + // not for cdi open access + if (vm.parentCtrl.item.pnx.addata.oa && vm.parentCtrl.item.pnx.addata.oa[0] === 'free_for_read') { + vm.no_report_link = true; + } + if (!vm.no_report_link){ + + /* Obtient l'adresse ip depuis un service se trouvant dans le + module \js\slsp\epfl_custom_slsp.js */ + var userIP = userService.getIP(); + // console.log(userIP); + // Vérification du range EPFL + if (userIP) { + const regex = /128\.17([89])\.(\d{1,3})\./; + const found = userIP.match(regex); + if (found && (found[1] == '8' || parseInt(found[2])>=128)) { + vm.is_epfl_IP = true; + } + } + + // Récupération des métadonnées de la ressource + var mmsId = vm.parentCtrl.item.pnx.control.recordid[0]; + var title = ''; + if (vm.parentCtrl.item.pnx.display.title && vm.parentCtrl.item.pnx.display.title.length > 0) { + title = vm.parentCtrl.item.pnx.display.title[0]; + } + var creationdate = ''; + if (vm.parentCtrl.item.pnx.display.creationdate && vm.parentCtrl.item.pnx.display.creationdate.length > 0) { + creationdate = vm.parentCtrl.item.pnx.display.creationdate[0]; + } + var creator = ''; + if (vm.parentCtrl.item.pnx.display.creator && vm.parentCtrl.item.pnx.display.creator.length > 0) { + creator = vm.parentCtrl.item.pnx.display.creator.join(', '); + } + var type = ''; + if (vm.parentCtrl.item.pnx.display.type && vm.parentCtrl.item.pnx.display.type.length > 0) { + type = vm.parentCtrl.item.pnx.display.type[0]; + } + var identifier = ''; + if (vm.parentCtrl.item.pnx.display.identifier && vm.parentCtrl.item.pnx.display.identifier.length > 0) { + var ident = vm.parentCtrl.item.pnx.display.identifier[0]; + if (ident.indexOf('ISBN') > -1) { + identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\/b>/g, '').replace(//g, ''); + } else if (ident.indexOf('ISSN') > -1) { + identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\/b>/g, '').replace(//g, ''); + } else if (ident.indexOf('ISBN') > -1) { + identifier = 'ISBN: ' + ident.substring(ident.indexOf('$$V') + 3); + } else if (ident.indexOf('ISSN') > -1) { + identifier = 'ISSN: ' + ident.substring(ident.indexOf('$$V') + 3); + } + } + var userAgent = navigator.userAgent; + + // Création de l'objet du message + var subject = 'Access problem ' + mmsId + ' - "' + title + '"'; + + // Création du corps du message + var body = $filter('customTranslate')('feedbackLinkMSG') + '\n\n' + '****\nTitle: ' + title + '\nAuthor: ' + creator + '\nYear: ' + creationdate + '\nType: ' + type + '\nDocId: ' + mmsId + '\nIdentifier: ' + identifier + '\nUser_agent: ' + userAgent + '\nUserIP: ' + userIP + '\nRange EPFL: ' + vm.is_epfl_IP + '\n****'; + + vm.feedbackLink = 'mailto:edoc@epfl.ch' + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body) + '&Content-Type=text/html'; + } + + }], + template: ` + + `} diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/fullview/index.js b/primo-explore/custom/41SLSP_EPF-prod/js/fullview/index.js new file mode 100644 index 0000000..46b6685 --- /dev/null +++ b/primo-explore/custom/41SLSP_EPF-prod/js/fullview/index.js @@ -0,0 +1,4 @@ +(function () { + var homepage_module = angular.module('fullviewModule', ['angularLoad']); + homepage_module.component('prmAlmaViewitAfter', require('./almaviewit.component.js')); +})() diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/main.js b/primo-explore/custom/41SLSP_EPF-prod/js/main.js index 7893b42..d8a685a 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/js/main.js +++ b/primo-explore/custom/41SLSP_EPF-prod/js/main.js @@ -1,13 +1,14 @@ /************************/ /* List of used modules */ /************************/ // Import central SLSP package ; // import { centralCustom } from './slsp/custom_slsp.js'; import { centralCustom } from './slsp/epfl_custom_slsp.js'; import { homepageModule } from './homepage/index.js'; import { customTranslateFilter } from './filters/custom_translate.filter.js'; import { trustHtmlFilter } from './filters/trust_html.filter.js'; import { accountModule } from './account/index.js'; +import { fullviewModule } from './fullview/index.js'; -var app = angular.module('viewCustom', ['angularLoad', 'centralCustom', 'homepageModule', 'customTranslateFilter', 'trustHtmlFilter', 'accountModule']); +var app = angular.module('viewCustom', ['angularLoad', 'centralCustom', 'homepageModule', 'customTranslateFilter', 'trustHtmlFilter', 'accountModule', 'fullviewModule']); diff --git a/primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js b/primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js index a2086eb..d262359 100644 --- a/primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js +++ b/primo-explore/custom/41SLSP_EPF-prod/js/slsp/epfl_custom_slsp.js @@ -1,313 +1,328 @@ (function () { var app = angular.module('centralCustom', ['angularLoad']); /* ## VERSION SLSP DU CONTROLLEUR ## # Ajoute le lien vers les amendes app.controller('CourierInfoController', [function () { var vm = this; vm.linkBase = "https:\/\/slsp.ch\/fees"; }]); */ /* ## VERSION EPFL DU CONTROLLEUR ## */ app.controller('CourierInfoController', ['$filter', '$element', function ($filter, $element, $compile, $scope, $rootScope) { var vm = this; //shortcut for convenience this.form = $element[0].parentElement; //function for inserting block this.$doCheck = function() { let form = false; if (this.form.children[1].children[1] !== undefined && this.form.children[1].children[1].children[0] !== undefined) { form = this.form.children[1].children[1].children[0]; } else if (this.form.children[1].children[0] !== undefined && this.form.children[1].children[0].children[0] !== undefined) { form = this.form.children[1].children[0].children[0]; } //create and insert info block if not present if (form && form.children.length == 2 || vm.hasOwnProperty('currentTypeFeeAlert') && vm.currentTypeFeeAlert != vm.typeFeeAlert()) { vm.currentTypeFeeAlert = vm.typeFeeAlert(); var htmlwarning = `

${vm.getFeeAlert()}

`; if (vm.typeFeeAlert()=='costWarningScan') { var txt = $filter('customTranslate')('illButton'); if (vm.get_peb_button()){ var fn = `javascript:(function() { for (var elem of document.getElementsByTagName('span')) { if (elem.getAttribute('translate') === 'AlmaResourceSharing' && elem.parentNode.className.indexOf('greenbutton') === -1) { elem.click(); break; } };})()`;} else { var fn = `javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid=${vm.parentCtrl.vid}'})()`; } htmlwarning += `

${txt}

`; } htmlwarning += `

${this.parentCtrl.$translate.instant('customize.fullview.feesLinkText')}

`; var htmlcompiled = angular.element(htmlwarning)[0]; if (form.children.length == 2) { form.insertBefore(htmlcompiled, form.children[1]); } else { form.children[1].replaceWith(htmlcompiled); } } } // Remonte l'EPFL dans la liste des bibliothèques Object.defineProperty(vm.parentCtrl, "form", { configurable: !0, get: function(){ // Mettre l'EPFL en première position var form = this.getFilteredForm(['label', 'multiLabel'], false); if (!vm.hasOwnProperty('pickupLocationsListOrdered')){ for (var i = 0; i < form.length; i++){ if (form[i].key == 'pickupInstitution'){ function compare( a, b ){ var onTopInstitutions = ['41SLSP_EPF', '41SLSP_EPFL']; a = onTopInstitutions.indexOf(a.value); b = onTopInstitutions.indexOf(b.value); if (a == b) {return 0}; return a < b ? 1 : -1; } form[i].options.sort(compare); vm['pickupLocationsListOrdered'] = true; } } } return form; } } ); // Vérifie si l'EPFL est la provenance de l'exemplaire sélectionné vm.isEPFL = function() { return vm.parentCtrl.requestService && vm.parentCtrl.requestService._service['link-to-service'].indexOf('institution=41SLSP_EPF') > 0 ? true : false; } vm.linkBase = "https:\/\/slsp.ch\/fees"; // Personnalisation du message des frais vm.typeFeeAlert = function() { // console.log(vm.parentCtrl.requestHeader); if (['almaRequest.header', 'almaRequestOther.header', 'almaItemRequest.header'].includes(vm.parentCtrl.requestHeader)) { return 'costWarningNetworkLoan'; // $filter('customTranslate')(costWarningNetworkLoan'); } else if (['almaDigitization.header', 'almaDigitizationOther.header', 'almaItemDigitization.header'] .includes(vm.parentCtrl.requestHeader)) { return vm.isEPFL() ? 'costWarningScanEPFL' : 'costWarningScan'; } else if (vm.parentCtrl.requestHeader === 'almaResourceSharing.header') { return 'costWarningPEB'; } else { return 'costWarningGeneral'; } } vm.getFeeAlert = function() { // console.log(vm.typeFeeAlert()); return $filter('customTranslate')(vm.typeFeeAlert()); } // Récupère le bouton PEB de la page afin de simuler un clic dessus vm.get_peb_button = function(){ var allElements = document.getElementsByTagName('span'); for (var i = 0, n = allElements.length; i < n; i++) { if (allElements[i].getAttribute('translate') === 'AlmaResourceSharing' && allElements[i].parentNode.className.indexOf('greenbutton') === -1) { return allElements[i]; } } } // vm.get_request_button = function(){ // var allElements = document.getElementsByTagName('prm-opac'); // if (allElements.length === 0) { return null; } // var opac = allElements[0]; // if (opac.closest('prm-alma-other-members')) { return null; } // // var buttons = opac.getElementsByTagName('span'); // for (var i = 0, n = buttons.length; i < n; i++) { // if (buttons[i].getAttribute('translate') == 'AlmaRequest') // { // return buttons[i]; // } // } // } // Fonction simulant un clic sur le bouton PEB quand on clique sur les // frais. vm.click_peb = function(){ var button = vm.get_peb_button(); if (button) { button.click(); } else { window.location.href = window.location.origin + '/discovery/blankIll?vid=' + vm.parentCtrl.vid; } } // vm.click_request = function(){ // vm.get_request_button().click(); // } // console.log(vm); }]); app.component('prmRequestAfter', { bindings: { parentCtrl: '<' }, controller: 'CourierInfoController', // template: // `
// //
//
// // // // // //
//
// // //
// //
//
` }); app.controller('LibInfoController', [function () { var vm = this; vm.biblinkText = "Library"; vm.biblinkBase = "https:\/\/slsp.ch\/libraries"; vm.getLibraryUrl = function() { if (vm.parentCtrl.loc && vm.parentCtrl.loc.location.libraryCode==='E02') { return "https://go.epfl.ch/library"; } else { return vm.biblinkBase; } } vm.view = vm.parentCtrl.configurationUtil.vid.replace(':', '-'); vm.getLibrary = function() { // return vm.parentCtrl.currLoc.location.librarycodeTranslation; return vm.parentCtrl.currLoc ? vm.parentCtrl.currLoc.location.librarycodeTranslation : ''; } + console.log(vm); }]); app.component('prmLocationItemsAfter', { bindings: { parentCtrl: '<' }, controller: 'LibInfoController', controllerAs: 'ctrl', template: `` }); //--------ILL Signin Order - if logged out --------------------------------------- app.service('userService', ['jwtHelper', function (jwtHelper) { this.isGuest = function () { var jwt = sessionStorage.getItem('primoExploreJwt'); if (!jwt) { return true; } var decodedToken = jwtHelper.decodeToken(jwt); let userName = decodedToken.userGroup !== 'GUEST' ? decodedToken.userName : ''; if (userName) { return false } else { return true; } } + /* ----------------------------------- */ + /* - Ajout pour obtenir l'adresse IP - */ + this.getIP = function () { + var jwt = sessionStorage.getItem('primoExploreJwt'); + if (!jwt) { + return; + } + return jwtHelper.decodeToken(jwt).userIp; + } + + + /* --------- Fin de l'ajout --------- */ + /* ---------------------------------- */ + }]) app.controller('IllBoxController', ['$scope', 'userService', function ($scope, userService) { $scope.usrNme = userService.isGuest(); if ($scope.usrNme == true) { var myEl = angular.element(document.querySelector('primo-explore')); return myEl.addClass('logged-out') } else { var myEl = angular.element(document.querySelector('primo-explore')); return myEl.removeClass('logged-out'); } }]); app.component('prmUserAreaExpandableAfter', { bindings: { parentCtrl: '<' }, controller: 'IllBoxController', template: '' }); app.component('prmTopbarAfter', { bindings: { parentCtrl: '<' }, // controller: 'IllBoxController', template: `

{{ 'mainTitle' | customTranslate }}

{{ 'subTitle' | customTranslate }}

` }); //---------------------------------------------------------------------------------------------- app.controller('AlertMsgController', ['$scope', function ($scope) { var vm = this; vm.getAlert = getAlert function getAlert() { var ga = vm.parentCtrl.almaHowToGetitService.reqAlert._htmlMsg; var myEl2 = angular.element(document.querySelector('primo-explore')); if (ga.length > 0) { return myEl2.addClass('alert'); } else { return myEl2.removeClass('alert'); } } }]); app.component('almaHowovpAfter', { bindings: { parentCtrl: '<' }, controller: 'AlertMsgController', template: '
{{$ctrl.getAlert()}}
' }); })();