- <h1 class="md-headline"><b>swisscovery Help Page</b></h1>
- </md-card-title-text>
- </md-card-title>
-
- </md-card>
-
- <md-card class="default-card">
-
- <md-card-content>
- <h4>Einführung:</h4>
- <p>Sehr geehrte Benutzerin, sehr geehrter Benutzer,</p>
- <p>herzlich willkommen auf der Hilfeseite von swisscovery.</p>
- <p>swisscovery ist das Suchportal des <a href="https://slsp.ch/de" target="_blank">Swiss Library Service Platform Network (SLSP)</a>. . Auf dieser Seite finden Sie nützliche Informationen darüber, wie Sie swisscovery verwenden und wie das SLSP-Netzwerk organisiert ist. </p>
- <p>Achtung: Diese Hilfeseite wurde für das gesamte SLSP-Netzwerk erstellt! Das bedeutet, dass einige Services auf dieser speziellen Bedienoberfläche möglicherweise nicht verfügbar sind. Bitte beachten Sie, dass die Startseite oder die Volltitelanzeige des Datensatzes von Institution zu Institution anders aussehen können als auf dieser Hilfeseite.</p>
- </md-card-content>
- </md-card>
-
-
- <md-card class="default-card" id="index">
- <md-card-title>
- <md-card-title-text>
- <h2 class="md-headline">Index</h2>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <h3><a href="#general">Allgemein</a></h3>
- <ul>
- <!--<li><a href="#gen1">Ein kurzes Einführungsvideo zu swisscovery</a></li>-->
- <li><a href="#gen2">SLSP: Die Swiss Library Service Platform</a></li>
- <h3>SLSP: Die Swiss Library Service Platform<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Die Swiss Library Service Platform ist zusammen mit dem ihr untergeordneten Konsortium der Schweizer Hochschulbibliotheken mit über <a href="https://slsp.ch/libraries" target="_blank">450 Mitgliedern</a> das grösste Netzwerk von akademischen und Forschungsbibliotheken in der Schweiz. Sie wurde von Bibliotheken für Bibliotheken ins Leben gerufen und ist ein gemeinsames Projekt, mit dem landesweit eine Reihe von Services angeboten werden sollen, z. B. ein gemeinsamer mehrsprachiger Katalog mit wissenschaftlichen Informationen, ein gemeinsamer Vertreter für die Lizenzierung von E-Ressourcen und ein leistungsfähiges Kuriernetzwerk für die gemeinsame Nutzung physischer Exemplare.</p>
- <p>SLSP stellt einen innovativen und bedeutenden Schritt in Richtung der digitalen Entwicklung der wissenschaftlichen Bibliotheken in der Schweiz dar. Durch die Verwaltung des cloud-gestützten Alma-Systems führt die Organisation wissenschaftliche Informationen zusammen, die in Bibliotheken in der ganzen Schweiz gespeichert sind. Indem sie diese Informationen zugänglich und leicht auffindbar macht, trägt SLSP zu wissenschaftlichen Entdeckungen und Fortschritten bei.</p>
- <p>Das SLSP-Netzwerk ist in mehrere «Zonen» unterteilt. SLSP selbst verwaltet die Netzwerkzone (NZ) namens swisscovery, während die Bibliotheken in 29 «Institutionsbereiche» - bzw. "Institution Zones" (IZ) aufgeteilt sind. </p>
- <p>Eine IZ ist eine Gruppe von Bibliotheken mit ähnlichen Bedürfnissen. Die IZ ist eine Schlüsselkomponente im SLSP-System und stellt eine Abteilung dar, die Synergien freisetzt und Effizienz steigert. In SLSP unterscheiden wir zwei Arten von IZs: Zonen mit einzelnen Einheiten und Zonen mit gemischten Einheiten. </p>
- <p>In einer Zone mit einer einzelnen Einheit ist der Grossteil der Bibliotheken rechtlich mit einer Haupteinheit (z. B. einer Universität) verbunden. In einer Zone mit gemischten Einheiten sind Bibliotheken rechtlich mit verschiedenen Einheiten verbunden (z. B. werden sie aus geografischen Überlegungen heraus zusammengelegt).</p>
- <p>Um auf die Ressourcen der SLSP-Mitglieder zugreifen zu können, müssen die Benutzende auf die Bedienoberflächen, die sogenannten «Views», zugreifen. In SLSP haben wir eine View für die Netzwerkzone (NZ), eine View für jede IZ und mehrere Views für einzelne Bibliotheken vorbereitet. </p>
- <p>Jede View hat ihre spezifischen Suchbereiche, die unterschiedliche Ergebnisse liefern, wenn sie für die Suche verwendet werden. Die Netzwerkzone in swisscovery enthält alle Datensätze, die aus den SLSP-Bibliotheken stammen, einige allgemeine externe Ressourcen (z. B. e-rara, ZORA usw.) und den Central Discovery Index (CDI). Die IZ-View oder Bibliotheks-View enthält den lokalen Bestand der IZ / Bibliothek, allgemeine und lokale externe Ressourcen und den CDI-Index. </p>
- <p>Central Discovery Index (CDI): ist eine zentrale Datenbank mit mehr als 3 Milliarden Datensätzen; z. B.: Zeitschriftenartikel, E-Books, Dissertationen, Konferenzberichte usw. </p>
- <p>Unter dem folgenden <a href="https://slsp.ch/libraries" target="_blank">Link</a> finden Sie die Topologie des SLSP-Netzwerks, eine umfassende Liste aller SLSP-Mitgliedsbibliotheken, aufgeteilt nach IZ, sowie den Link zu jeder vorhandenen View unseres Netzwerks. Für jede IZ und Bibliothek finden Sie die Adresse, die Kontaktinformationen und die angebotenen Services. </p>
- <p>Um sich in SLSP zu registrieren, gehen Sie bitte zunächst auf: <a href="https://registration.slsp.ch" target="_blank">https://registration.slsp.ch</a></p>
- <p>Nach dem Start des Registrierungsprozesses werden Sie aufgefordert, sich mit einem SWITCH edu-ID-Benutzungskonto anzumelden. Wenn Sie bereits ein SWITCH edu-ID-Benutzungskonto haben, melden Sie sich einfach an, um mit der Registrierung fortzufahren. Falls Sie Ihr Passwort noch nicht haben, finden Sie einen Link zum Zurücksetzen des Passworts auf der Anmeldeseite.</p>
- <p>Wenn Sie noch kein SWITCH edu-ID-Benutzungskonto haben, können Sie auf der Anmeldeseite auf «Konto erstellen» klicken. </p>
- <p><strong>Hinweis:</strong> Wenn Sie an einer Universität studieren, ist es möglich, dass Sie schon einmal in SLSP registriert waren. In diesem Fall erscheint eine Meldung und Sie werden zum Anmeldebereich der View weitergeleitet.</p>
- <p>Mit Ihrem Bibliotheksausweis haben Sie Zugang zu einer Reihe von Services, Sie können zum Beispiel ein physisches Exemplar in einer Bibliothek ausleihen. </p>
- <p>Wenn Sie bereits einen Bibliotheksausweis des <a href="https://www.nb.admin.ch/snl/de/home/dienstleistungen/ausleihe-benutzung/bibliopass.html" target="_blank">BibliOpass-Netzwerks</a> besitzen, können Sie die Bibliotheksausweisnummer optional bei der Registrierung bei SLSP oder später angeben. Einige Campus-/Universitäts-/Studentenausweise sind auch als Bibliotheksausweis gültig. Einige Universitäten stellen ihren Benutzenden auch die Bibliotheksausweisnummer zur Verfügung. Welche Bibliotheksausweisnummern mit einem SLSP-Konto verknüpft sind, wird während des Registrierungsprozesses bei SLSP angezeigt (siehe Kapitel «Ein Konto erstellen»). </p>
- <p>Wenn Sie keinen physischen Bibliotheksausweis besitzen, können Sie Ihre Bibliothek bitten, Ihnen einen auszustellen.</p>
-</md-card-content>
- <md-card-content id="gen6">
- <a href="#index">
- <h3>Anmelden und Abmelden<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>In swisscovery: Klicken Sie auf «Anmelden» - wählen Sie Ihre IZ - klicken Sie auf «SWITCH edu-ID» - geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein - klicken Sie auf «Anmelden» </p>
- <p>In einer IZ / Bibliotheks-View: Klicken Sie auf «Anmelden» - klicken Sie auf «SWITCH edu-ID» - geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein - klicken Sie auf «Anmelden»</p>
- <p>Als Gast können Ihre Favoriten, Suchanfragen und die gewählte Sprache nur für die aktuelle Browser-Sitzung gespeichert werden. </p>
- <p>Melden Sie sich nach einer Sitzung ab, um Ihr Konto vor dem Zugriff durch andere Benutzende zu schützen. </p>
- <h4>HINWEIS:</h4>
- <p>Gewisse Online-Ressourcen sind ohne Anmeldung zugänglich, aber um auf das gesamte Angebot zugreifen zu können, müssen Sie sich anmelden. </p>
- <p>
- Der Zugang zu Online-Ressourcen hängt oft von Ihrer Zugehörigkeit, z. B. als Studierende oder als Forschende, zu einer lizenzierenden Hochschulinstitution (HEI) ab. Einige HEIs ermöglichen den Benutzenden den Fernzugriff auf Online-Ressourcen. Weitere Informationen zu den Bedingungen für den Zugriff auf die Online-Ressourcen finden Sie im Kapitel «Online-Ressourcen» auf dieser Hilfeseite oder auf der Website der Bibliothek, für welche die jeweilige Ressource lizenziert ist.
- </p>
- <p>Diese Bedingungen gelten nicht für nationale Lizenzen (weitere Informationen finden Sie im entsprechenden Kapitel auf dieser Hilfeseite). </p>
- <p>Sie müssen sich anmelden, um auf Ihr Konto zugreifen zu können. Klicken Sie im Anschluss oben rechts auf der Seite auf Ihren Namen. Sie sehen nun ein Menü, das einige Untermenüs für Ihr Konto enthält. Um vollen Zugriff auf das Konto für Ihre Daten zu erhalten, klicken Sie auf «Mein Konto».</p>
- <p>Von dieser Seite aus können Sie Ihre Ausleihen, Vormerkungen, Gebühren, Meldungen und viele andere Funktionen einsehen. </p>
- <p><strong>HINWEIS:</strong> Jede IZ hat ihren eigenen Bereich. Das bedeutet zum Beispiel, dass wenn Sie eine Ressource in der IZ der KUB Freiburg und eine Ressource in der IZ der ETH Zürich ausleihen, diese auf verschiedene Seiten aufgeteilt sind, siehe unten:</p>
- <p>Um Ihre Adresse oder andere Informationen bezüglich Ihres Kontos zu ändern, gehen Sie auf die Seite «Meine edu-ID» auf <a href="https://eduid.ch/" target="_blank">https://eduid.ch/</a> und aktualisieren Sie Ihr edu-ID-Konto. Bitte beachten Sie, dass Änderungen, die in «Mein Konto» in swisscovery oder in den IZs vorgenommen werden, mit den Informationen von edu-ID überschrieben werden. Wenn Sie Ihre Bibliotheksausweisnummern verwalten möchten, gehen Sie bitte auf <a href="https://registration.slsp.ch/register/library-card/" target="_blank">https://registration.slsp.ch/register/library-card/</a> </p>
- <p>Klicken Sie auf «Anzeige-Sprache», um die Spracheinstellungen für die aktuelle Sitzung zu ändern. Wenn Sie angemeldet sind, wird die eingestellte Sprache dauerhaft gespeichert. Sie können auch die Sprache Ihrer Oberfläche ändern, indem Sie in Ihrem Konto in den Bereich «Persönliche Details» gehen. </p>
- <p>Alle Arten von Online-Ressourcen, die von den teilnehmenden Bibliotheken angeboten werden, werden bei der Suche indexiert: Bücher, Zeitschriften, Datenbanken, digitalisierte Fotos, Landkarten, Manuskripte und andere Sammelexemplare. Jedoch sind nicht alle Dokumente frei zugänglich. Viele Dokumente werden über eine Lizenz erworben und sind nur im Netzwerk der Universität zugänglich, die über eine Lizenz für diese Ressource verfügt. Mit Hilfe von Filtern können Sie die Suche auf lizenzierte Online-Dokumente und Open-Access-Dokumente (Online verfügbar) eingrenzen oder nur frei zugängliche Dokumente (Open Access) auswählen.</p>
- Bei Online-Ressourcen enthält der Bereich «Online ansehen» in der Volltitelanzeige Informationen über die Verfügbarkeit der Ressource in Ihrer Institution und in anderen Institutionsbereichen des SLSP-Netzwerks. Um auf die Ressource zuzugreifen, klicken Sie auf das Symbol <img width="41" height="42" src="custom/41SLSP_EPF-prod/img/help/viewOnlineIcon.png" />
- <h3>Online-Services für Mitglieder einer Universität<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>Neben Open-Access-Dokumenten können Sie auch die Online-Services Ihrer Universität nutzen. E-Journals, E-Books und Datenbanken werden über Lizenzen erworben und der Zugriff ist ausschliesslich auf das Netzwerk der Institution mit der entsprechenden Lizenz (auf dem Campus) beschränkt. Von ausserhalb der Universität können Sie VPN, Eduroam, EZProxy usw. verwenden, um auf solche Dokumente zuzugreifen. Informationen zum Fernzugriff finden Sie auf der IT-Website Ihrer Bibliothek oder Ihrer Universität.</p>
- <p>
- Der Bereich «Online ansehen» bietet verfügbare Services für die Ressourcen in Ihrer Institution und in anderen IZs des SLSP-Netzwerks. Klicken Sie auf «Online verfügbar» und auf das Symbol <img width="41" src="custom/41SLSP_EPF-prod/img/help/viewOnlineIcon.png" />, um zur Volltitelanzeige zu gelangen.
- <h3>Online-Services für Personen, die nicht Mitglied einer Universität sind <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Zusätzlich zu Open-Access- und Online-Ressourcen unter einer nationalen Lizenz können Sie auch die lizenzierten Ressourcen der Universitäten nutzen, falls Sie sich innerhalb der Universität befinden. </p>
- <p>Wissenschaftliche E-Journals, E-Books und Datenbanken werden über Lizenzen erworben und der Zugriff ist ausschliesslich auf das Netzwerk der Institution mit entsprechender Lizenz (auf dem Campus) beschränkt. Sie können die Ressourcen vor Ort bei ebendieser Bibliothek herunterladen und/oder darauf zugreifen. </p>
- <p>Welche Bibliotheken Zugang zu einer Online-Ressource anbieten, wird unter «Standorte» angezeigt: </p>
- <p>Open-Access-Dokumente sind frei zugänglich. Es handelt sich zum einen um Zeitschriftenartikel oder E-Books auf verschiedenen Plattformen oder in institutionellen Beständen und zum anderen um digitalisierte Dokumente aus Bibliotheksbeständen. Diese Dokumente sind in der Ergebnisliste mit einem Open-Access-Symbol gekennzeichnet. </p>
- <p>Alle Personen, die in der Schweiz leben, haben Zugang zu den über nationale Lizenzen verfügbaren Ressourcen. Hierfür ist eine einmalige Registrierung erforderlich; weitere Informationen finden Sie unter
- <a href="https://consortium.ch/zugriff/?lang=en" target="_blank">https://consortium.ch/zugriff/?lang=en </a>. Bitte beachten Sie, dass für die Registrierung für die nationalen Lizenzen dieselbe edu-ID wie für swisscovery verwendet werden kann.</p>
- <p>Verfügbare Ressourcen aus nationalen Lizenzen sind im Bereich «Volltext-verfügbarkeit» in Klammern gekennzeichnet.</p>
- <p>Unter «Ausleihen» in der Volltitelanzeige sehen Sie die Bibliotheken, in denen das Dokument vorhanden ist, und ob es derzeit verfügbar ist. Die Lieferung eines Exemplars an einen Abholstandort kann kostenpflichtig sein.</p>
- <p>Unter «Andere Optionen» sehen Sie, ob SLSP-Bibliotheken anderer Institutionsbereiche das Dokument ebenfalls im Bestand haben.</p>
- <p>Wählen Sie die gewünschte Vormerkungsoption: Vormerkung (physisches Exemplar/Buchung) oder Digitalisierung (elektronisch oder Papierform). Sie müssen angemeldet sein, um eine Vormerkung aufgeben zu können.</p>
- <p>Wenn Sie "Vormerkung" auswählen, können Sie ein physisches Exemplar zur Abholung in einer Bibliothek vormerken lassen. Einige Exemplare können auch für eine Lieferung auf dem Postweg (gebührenpflichtig) vorgemerkt werden. Wenn diese Option angeboten wird, können Sie sie wählen, indem Sie im Feld «Abhol-Institution» Ihre Institution und im Feld «Abholort» Heimadresse auswählen. </p>
- <p>Wenn Sie ein elektronisches oder ausgedrucktes Exemplar eines Artikels oder Kapitels erhalten möchten, klicken Sie auf "Digitalisierung" und füllen Sie das Formular mit so vielen Angaben wie möglich aus. </p>
- <p><strong>HINWEIS:</strong> Diese Services sind in Ihrer IZ / Bibliothek möglicherweise nicht verfügbar und können kostenpflichtig sein. Weitere Informationen finden Sie <a href="https://slsp.ch/fees" target="_blank">hier</a>. </p>
-</md-card-content>
- <md-card-content id="bor2">
- <a href="#index">
- <h3>Vormerkungen zur Fernleihe<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>
- Obwohl das SLSP-Netzwerk Zugriff auf mehr als 50 Millionen Titel und unzählige elektronische Ressourcen bietet, kann es sein, dass die Publikation, nach der Sie suchen, nicht darunter ist. In diesem Fall können Sie einen Fernleihauftrag aufgeben und die Bibliothek leiht die Publikation bei einer anderen Bibliothek in der Schweiz oder im Ausland aus (gebührenpflichtig). Bitte füllen Sie hierzu <a href="https://slsp.ch/en" target="_blank">dieses Formular aus</a>.
- </p>
- <p><strong>HINWEIS:</strong> Für diesen Service können zusätzliche Gebühren anfallen. Weitere Informationen zu Gebühren <a href="https://slsp.ch/fees" target="_blank">finden Sie auf dieser Seite</a>.</p>
- <p>In «Mein Konto» sehen Sie Ihre aktuellen Ausleihen und können sie einzeln oder alle verlängern, sofern dies die Ausleihbedingungen erlauben. </p>
- <!--<p><strong>Note:</strong> The new loan period always runs as of immediately. If you renew a document yourself before the automatic loan period ends, the maximum possible loan period becomes shorter. </p>-->
- <p><strong>HINWEIS:</strong> Die Ausleihbedingungen können je nach Institution und Art des Materials variieren.</p>
-</md-card-content>
- <md-card-content id="bor4">
- <a href="#index">
- <h3>Liste der früheren Ausleihen<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>In «Mein Konto» können Sie im Bereich «Ausleihen» der IZs Ihre aktiven und früheren Ausleihen sehen. </p>
- <p><strong>HINWEIS:</strong> In einigen IZs / Bibliotheken steht diese Option aufgrund kantonaler Datenschutzbestimmungen nicht zur Verfügung.</p>
- <p>SLSP arbeitet mit zwei Standard-Suchprofilen, die in jeder Ansicht zu finden sind. Das erste ist "swisscovery" und umfasst die Ressourcen aller Bibliotheken des SLSP Netzwerks , das zweite ist «Meine Bibliothek». Auf der folgenden Infografik sehen Sie den Unterschied der beiden Standard-Suchprofile. In bestimmten IZs oder Bibliotheks-Views werden zusätzliche kundenspezifische Suchprofile angezeigt, die von der IZ / Bibliothek erstellt wurden. </p>
- <p><strong>Meine Bibliothek: </strong> Umfasst den lokalen Bestand der IZ / Bibliothek + externe Ressourcen, die in dieser IZ eingespielt sind (allgemein und lokal) + CDI (CDI kann auch als separates Suchprofil verwendet werden). Dieses Suchprofil ist immer nach der Institution benannt.</p>
- <p><strong>swisscovery:</strong> Alle Datensätze des SLSP-Netzwerks + allgemeine externe Ressourcen + CDI. </p>
- <p><strong>Eigene Suchprofile:</strong> Einige Institutionsbereiche / Bibliotheken haben ihre eigenen Suchprofile einschliesslich spezifischer lokaler Daten erstellt.</p>
- <p><strong>Central Discovery Index (CDI):</strong> Ist eine zentrale Datenbank, die unzählbare Quellen für insgesamt mehr als 3 Milliarden Datensätze umfasst, z. B.: Zeitschriftenartikel, E-Books, Dissertationen, Konferenzberichte, Patente, Berichte, Regierungsdokumente, Bilder und Videos. Je nach IZ /Bibliotheks-View kann der CDI im Suchprofil «Meine Bibliothek», in einem separaten Suchprofil oder in beiden durchsucht werden. </p>
- <p><strong>Allgemeine Externe Ressourcen:</strong> swisscovery wurde um allgemeine elektronische externe Ressourcen erweitert, hauptsächlich aus institutionellen Repositorien. </p>
- <p><strong>Lokale Externe Ressourcen: </strong> Zusätzlich zu den allgemeinen externen Ressourcen bieten einige Institutionsbereiche auch lokale externe Ressourcen an, die nur für die eigenen Benutzenden zugänglich sind. </p>
- <p>In diesem Beispiel ist die Suche auf Bücher in englischer Sprache beschränkt, die «mountain railway*» im Titel und "Switzerland " als Thema enthalten. </p>
- <p>Via Dropdown Menu in der zweiten (bzw. dritten) Spalte der Zeile können Sie zwischen «enthält» oder «ist(exakt)» oder «beginnt mit» wählen. Dadurch legen Sie fest, ob die Suchbegriffe im Feld enthalten sein sollen, ob das Ergebnis exakt mit den Suchbegriffen übereinstimmen muss oder ob das Element mit einem bestimmten Begriff beginnen muss. </p>
- <p>Sie können ein paar Stichwörter des Titels eingeben (beliebige Reihenfolge):</p>
- <p>Wenn Sie nach einer Wortgruppe suchen möchten, setzen Sie diese in Anführungszeichen. Sie können bei einer Suche Wortgruppen und Wörter kombinieren. </p>
- <p>Die Ergebnisse der obigen Suche umfassen Dokumente, die sowohl die Wortgruppe «piz buin» als auch den Wort «mountain» enthalten. </p>
- <p>Sie erhalten Ergebnisse mit yoghurt, yogourt, yohurts oder yogourts</p>
-</md-card-content>
- <md-card-content id="sea6">
- <a href="#index">
- <h3>Boolesche Operatoren zum Erweitern oder Eingrenzen einer Suche verwenden<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>Sie können die booleschen Operatoren UND, ODER und NICHT verwenden. Diese müssen zwingend in Grossbuchstaben geschrieben werden, damit sie angewendet werden. </p>
- <p>Ohne Operatoren werden die Suchbegriffe automatisch mit <strong>UND</strong> verknüpft. Somit müssen alle Suchbegriffe für die Ergebnisse zutreffend sein. </p>
- <p><strong>ODER</strong></p>
- <p>Mindestens einer der mit ODER verknüpften Suchbegriffe muss in den Ergebnissen zutreffen. Verwenden Sie ODER zum Beispiel, um verwandte Begriffe zu kombinieren und so die Suche auf mehrere Begriffe (Synonyme, unterschiedliche Schreibweisen) zu erweitern:</p>
- <p>Der mit NICHT ausgeschlossene Suchbegriff darf nicht in den Ergebnissen erscheinen. Auf diese Weise können Wörter oder Wortgruppen explizit ausgeschlossen werden. </p>
- <!--<p><strong>NOTE:</strong> The Boolean operator NOT is available only in the simple search </p>-->
- <p>In «Meine Favoriten» können Sie Treffer speichern, die Sie während Ihrer Suche gefunden haben. Langfristiges Speichern ist nur möglich, wenn Sie angemeldet sind. Als Gast stehen Ihnen die Favoriten nur während der aktuellen Browser-Sitzung zur Verfügung.</p>
- <p>
- Wenn Sie auf das Stecknadel-Symbol
- <img width="14" height="18" src="custom/41SLSP_EPF-prod/img/help/pinIcon1.png" /> n der Trefferanzeige klicken, wird der Titel zu Ihren Favoriten hinzugefügt; das Stecknadel-Symbol ändert sich zu
- <img width="14" height="15" src="custom/41SLSP_EPF-prod/img/help/pinIcon2.png" />. Wenn Sie auf
- <img width="14" height="15" src="custom/41SLSP_EPF-prod/img/help/pinIcon2.png" /> klicken, wird der Titel aus Ihren Favoriten entfernt.
- </p>
- <p>
- Über das Stecknadel-Symbol
- <img width="14" height="18" src="custom/41SLSP_EPF-prod/img/help/pinIcon1.png" /> oben rechts auf der Seite können Sie auf Ihre Favoritensammlung zugreifen.
- </p>
- <p>Sie können einzelne Titel aus Ihrer Favoritenliste entfernen oder exportieren. Markieren Sie einen oder mehrere Titel und verwenden Sie die Symbole oben auf der Seite, um sie zu löschen, Beschriftungen hinzuzufügen, sie in Referenzverwaltungsprogramme zu exportieren, sie zu drucken oder per E-Mail zu versenden: </p>
- <p>Wenn Sie angemeldet sind, können Sie Suchanfragen dauerhaft speichern. Klicken Sie dazu auf «Suchanfrage speichern» oberhalb der Ergebnisliste:</p>
- <p><strong>HINWEIS:</strong> Die Option «Suchanfrage speichern» wird nur angezeigt, wenn Sie angemeldet sind und eine Suchanfrage gestellt haben. </p>
- <p>Wenn Sie Ihre Suchanfrage speichern, können Sie E-Mail-Benachrichtigungen abonnieren. In diesem Fall erhalten Sie eine E-Mail, wenn es Neuigkeiten zu Ihrer Anfrage gibt. Zur Aktivierung dieses Service erscheint oben auf der Seite automatisch eine Meldung.</p>
- <p>Wenn Sie auf den Eintrag der gespeicherten Suche klicken, wird die Suchanfrage erneut ausgeführt. Mit den Symbolen auf der rechten Seite können Sie eine Benachrichtigung (per RSS oder E-Mail) einrichten, die Sie über neu hinzugefügte Dokumente informieren, die Ihre Suchkriterien erfüllen. </p>
- <p>Mit «Weitere anzeigen» können Sie weitere Begriffe anzeigen lassen und die Suche verfeinern, indem Sie mehrere Begriffe ein- oder ausschliessen. </p>
- <p>Beispiel: Grenzen Sie die Ergebnisse auf «Bücher», «Hochschulschriften» und «Videos» ein.</p>
- <p>Um einen Filter zu entfernen, klicken Sie auf das x neben dem entsprechenden Begriff. Mit «Filter zurücksetzen» werden alle Filter entfernt.</p>
- <p>Durch eine neue Sucheingabe werden automatisch alle Filter entfernt. Sie können jedoch einen Filter für die Dauer der Browser-Sitzung speichern, indem Sie ihn auswählen und dann auf das Schloss-Symbol klicken. Um diesen Filter zu entfernen, klicken Sie erneut auf das Schloss-Symbol. </p>
- <p>Wenn ein Werk in mehreren Versionen (d.h. in verschiedenen Ausgaben oder Druckversionen) erhältlich ist, klicken Sie auf das Symbol, den Titel oder «Alle Versionen anzeigen», um alle Versionen aufzulisten. </p>
- <p><strong>Top:</strong> Zurück zum Seitenanfang</p>
- <p><strong>Senden an: </strong> Titelinformationen in Referenzverwaltungsprogramm exportieren, Literaturangaben exportieren, Permalink zum Ergebnis erstellen, Titel ausdrucken oder per EMail versenden. Export-Aktionen können für bis zu 50 Datensätze gleichzeitig angewendet werden.</p>
- <p><strong>Wie man es ausleiht:</strong> Standorte anzeigen, Bestellungen für Ausleihen, Reservierungen oder Kopien aufgeben.</p>
- <p><strong>Details:</strong> weitere Informationen zum Titel.</p>
- <p><strong>Verknüpfungen:</strong> Links zum Inhaltsverzeichnis, zum früheren/späteren Titel, zu allen Bänden einer Reihe.</p>
- <p><strong>Virtuelle Indexsuche:</strong> Hier sehen Sie ein Bibliotheksregal für den ausgewählten Datensatz, sodass Sie noch weitere Exemplare finden können, die mit Ihrer Suche in Zusammenhang stehen.</p>
- <p>Bei Fragen, Unklarheiten, Kommentaren oder Anregungen können Sie uns sehr gern jederzeit <a href="mailto:library@epfl.ch" target="_blank">kontaktieren</a>.</p>
- <h1 class="md-headline"><b>swisscovery Help Page</b></h1>
- </md-card-title-text>
- </md-card-title>
-
- </md-card>
-
- <md-card class="default-card">
-
- <md-card-content>
- <h4>Introduzione: </h4>
- <p>Gentili utenti,</p>
- <p>Benvenuti nella pagina di aiuto di swisscovery.</p>
- <p>swisscovery è lo strumento di discovery della <a href="https://slsp.ch/it" target="_blank">Swiss Library Service Platform Network (SLSP)</a>. In questa pagina sono disponibili informazioni utili su come usare swisscovery e su come è organizzata la rete SLSP. </p>
- <p>Attenzione: questa pagina è stata creata per l'intero network SLSP! Ciì significa che alcuni servizi potrebbero non essere disponibili in questa specifica interfaccia utenti. Tenete presente che l'aspetto della pagina iniziale o la visualizzazione dei record puì variare da istituzione a istituzione, rispetto a quanto mostrato qui.</p>
- <a href="#index"><h3>Un breve video di introduzione a swisscovery<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3></a>
- <h3>SLSP: La Swiss Library Service Platform <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>La Swiss Library Service Platform insieme alla sua controllata Consorzio delle biblioteche universitarie svizzere è, con oltre <a href="https://slsp.ch/libraries" target="_blank">450 membri</a> la rete di biblioteche universitarie e di ricerca più grande della Svizzera. Creata dalle biblioteche per le biblioteche, si tratta di un impegno comune per fornire una serie di servizi all'intero paese, quali un catalogo multilingue condiviso di informazioni scientifiche, una rappresentazione unica per le licenze di risorse elettroniche e una rete di corrieri efficiente per la condivisione di risorse fisiche. </p>
- <p>SLSP rappresenta un passaggio innovativo e significativo in direzione dell'evoluzione digitale delle biblioteche in Svizzera. Grazie alla gestione del sistema Alma basato su un cloud, l'organizzazione unisce le informazioni scientifiche archiviate nelle biblioteche in tutta la Svizzera. Rendendo accessibili e facilmente trovabili tali informazioni, SLSP fornisce un contributo alla ricerca e al progresso scientifico.</p>
- <p>Il network SLSP è suddiviso in diverse «zone». La SLSP gestisce la network zone (NZ) chiamata swisscovery, mentre le biblioteche sono state distribuite in 29 «institution zone» (IZ). </p>
- <p>Una institution zone (IZ) raggruppa le biblioteche con esigenze simili. L'IZ è una componente chiave nel sistema SLSP, esso permette di creare sinergie e incrementare l'efficienza. In SLSP distinguiamo due tipi di institution zone: zone ad entità singola e zone ad entità mista. </p>
- <p>In una zona ad entità singola la maggior parte delle biblioteche sono legate giuridicamente ad un ente principale (per esempio ad un'università). In una zona ad entità mista, le biblioteche sono legate giuridicamente ad enti diversi (per esempio sono raggruppati sulla base di considerazioni geografiche).</p>
- <p>Per accedere alle risorse delle biblioteche membre di SLSP, gli utenti devono accedere alle interfacce utenti chiamate «Views». In SLSP abbiamo preparato un'interfaccia per la Network Zone (NZ), un'interfaccia per tutte le Institution Zone (IZ) e diverse interfacce per singole biblioteche. </p>
- <p>Ogni interfaccia ha ambiti di ricerca specifici che daranno risultati diversi quando vengono usate per la ricerca. La network zone di swisscovery contiene tutti i record provenienti dalle biblioteche SLSP, alcune risorse generali esterne (per esempio i documenti di e-rara) e l'indice CDI (Central Discovery Index). Le interfacce delle institution zone e le Library view contengono l'inventario locale della institution zone / biblioteca, risorse esterne generali e locali e l'indice CDI. </p>
- <p>Il Central Discovery Index (CDI) è un database centrale con oltre 3 miliardi di record quali: articoli di riviste, e-book, dissertazioni, atti di convegni, ecc. </p>
- <p>Nel seguente <a href="https://slsp.ch/libraries" target="_blank">link</a> è possibile trovare la topologia del network SLSP, che comprende la lista di tutte le biblioteche membre di SLSP suddivise per institution zone e il link per ogni interfaccia esistente del nostro network. Per ciascuna institution zone e biblioteca è possibile trovare l'indirizzo, le informazioni di contatto e i servizi da loro forniti.</p>
-</md-card-content>
- <md-card-content id="gen4">
- <a href="#index">
- <h3>Creare un conto<img class="icon_up2" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Per registrarsi su SLSP, visitate innanzitutto: <a href="https://registration.slsp.ch" target="_blank">https://registration.slsp.ch</a></p>
- <p>Dopo aver avviato la registrazione verrà chiesto di eseguire il login ad un account SWITCH edu-ID. Se si è già in possesso di un account SWITCH edu-ID, basta eseguire il login per procedere con la registrazione. Se non si possiede ancora una password, sulla pagina di login è disponibile un link di reset della password.</p>
- <p>Se non si possiede ancora un account utente SWITCH edu-ID cliccate su «Creare un conto» nella pagina di login. </p>
- <p><strong>ATTENZIONE:</strong> Se siete studenti presso un'università, è possibile che siate già registrati su SLSP. In tal caso apparirà un messaggio e si verrete inoltrati alla sezione di login dell'interfaccia. </p>
-</md-card-content>
- <md-card-content id="gen5">
- <a href="#index">
- <h3>Tessera della biblioteca<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>La propria tessera della biblioteca consente di accedere ad una serie di servizi, per esempio è possibile prendere in prestito una copia fisica di un libro da una biblioteca. </p>
- <p>Se si è già in possesso di una tessera della biblioteca della rete <a href="https://www.nb.admin.ch/snl/it/home/servizi/prestito-utilizzo/bibliopass.html" target="_blank">BibliOpass</a>, è possibile fornire il numero di tessera della biblioteca durante la registrazione a SLSP o successivamente. Valgono come tessera della biblioteca anche alcune tessere di campus / università / studenti. Inoltre, alcune università forniscono il numero di tessera della biblioteca per i loro utenti. Il numero di tessera della biblioteca associato all'account SLSP viene mostrato durante il processo di registrazione alla SLSP (vedi capitolo «Creare un conto»).</p>
- <p>Se non si possiede una tessera della biblioteca, è possibile chiedere al proprio bibliotecario di fornirne una. </p>
- <p>Su swisscovery: cliccate su «identificati» - scegliere la propria institution zone - cliccare su «SWITCH edu-ID» - inserire il proprio indirizzo e-mail e password - cliccare su «Accedi»</p>
- <p>In una institution zone / library view: cliccare su «Identificati» - cliccare su «SWITCH edu-ID» -inserire il proprio indirizzo e-mail e password - cliccare su «Accedi» </p>
- <p>La registrazione è necessaria per svolgere le seguenti attività:</p>
- <ul>
- <li>Richiesta di documenti (prestito, richiesta di digitalizzazione, prestito interbibliotecario)</li>
- <li>Visualizzare e controllare i propri prestiti e richieste da biblioteche nel network SLSP. </li>
- <li>Prolungare il periodo di prestito, cancellare prenotazioni</li>
- <li>Salvare preferiti</li>
- <li>Salvare ricerche e impostare avvisi</li>
- <li>Cambiare in modo permanente la lingua impostata </li>
- </ul>
- <p>Come ospite, i propri preferiti, le richieste di ricerca e la lingua selezionata possono essere salvati solo per la corrente sessione. </p>
- <p>Disconnettersi dopo una sessione per proteggere il proprio account dall'accesso da parte di altri utenti.</p>
- <h4>ATTENZIONE:</h4>
- <p>Alcune risorse online sono accessibili senza identificarsi, ma per accedere all'insieme delle risorse disponibili nella vostra istituzione è necessario. </p>
- <p>
- L'accesso alle risorse online dipende spesso dalla propria appartenenza (per es. come studente o ricercatore) a un'istituzione di istruzione superiore. Alcune istituzioni di istruzione superiore permettono agli utenti l'accesso remoto alle risorse online. Per maggiori informazioni sulle condizioni di accesso alle risorse online è possibile consultare il capitolo «Risorse online» sulla presente pagina d'aiuto o sul sito web della vostra biblioteca.
- </p>
- <p>Tali condizioni non vengono applicate alle licenze nazionali (per maggiori informazioni vedere il capitolo relativo in questa pagina). </p>
- <p>Per accedere al proprio conto è necessario registrarsi. Dopo la registrazione, cliccate sul vostro nome in alto a destra della pagina. Accederete ad un menu contenente alcuni sottomenu del proprio conto. Per avere il pieno accesso ai dati del proprio account, cliccate su «Conto utente».</p>
- <p>Da questa pagina sarà possibile consultare i propri prestiti, richieste, tariffe, messaggi e tante altre funzioni. </p>
- <p><strong>ATTENZIONE:</strong> Ogni institution zone ha il suo proprio spazio. Ciì significa, per esempio, che se si prende in prestito una risorsa nella institution zone della BCU Fribourg, e una all'institution zone dell'ETH Zürich, esse vengono separate in pagine diverse, come mostrato di seguito:</p>
- <h3>Aggiornare il proprio conto <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Per modificare il proprio indirizzo o altre informazioni relative al proprio conto, andate sulla pagina "Mia edu-ID" <a href="https://eduid.ch/" target="_blank">https://eduid.ch/</a> e aggiornare il proprio account edu-ID. Attenzione: le modifiche eseguite nel «Conto utente» in swisscovery o nelle institution zone vengono sovrascritte dalle informazioni provenienti dall'account edu-ID. Per gestire i propri numeri di tessera della biblioteca, andate su <a href="https://registration.slsp.ch/register/library-card/" target="_blank">https://registration.slsp.ch/register/library-card/</a> </p>
-</md-card-content>
- <md-card-content id="gen9">
- <a href="#index">
- <h3>Impostazione lingua <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Cliccare su «Mostra lingua» per modificare la lingua impostata per la sessione corrente. Se si è registrati, la lingua impostata verrà salvata in modo permanente. È anche possibile modificare la lingua della propria interfaccia compilando la sezione «Dettagli personali» del proprio conto. </p>
- <p>Tutti i tipi di risorse online offerti dalle biblioteche partecipanti sono indicizzati nella ricerca: libri, riviste, database, fotografie digitalizzate, mappe, manoscritti e altri esemplari della collezione. Tuttavia, non tutti i documenti sono accessibili liberamente. Molti documenti vengono acquisiti attraverso una licenza e sono disponibili unicamente nella rete dell'università titolare della licenza. Mediante l'uso dei filtri, è possibile restringere la ricerca ai documenti con licenza online e Open Access (Disponibile online) o selezionare unicamente i documenti accessibili liberamente (Open Access). </p>
- Per le risorse online, la sezione «Visualizza Online» nella visualizzazione completa fornisce informazioni sulla disponibilità della risorsa nella propria istituzione e in altre institution zones del network SLSP. Per accedere alle risorse, cliccate sull'icona <img width="41" height="42" src="custom/41SLSP_EPF-prod/img/help/viewOnlineIcon.png" />
- <h3>Servizi online per membri universitari<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>Oltre ai documenti Open Access è possibile usare i servizi online della propria università. Riviste elettroniche, e-book e database vengono acquisiti attraverso licenze e il loro accesso è riservato esclusivamente al network dell'istituzione titolare della licenza (sul campus). Per accedere a tali documenti dall'esterno dell'università, è possibile utilizzare strumenti come VPN, Eduroam, EZProxy, ecc. Consultate le informazioni relative all'accesso remoto presso la vostra biblioteca o il sito web IT della vostra università.</p>
- <p>
- La sezione «Visualizza Online» fornisce i servizi disponibili per le risorse della propria istituzione e di altre institution zone del network SLSP. Cliccate su «Disponibile online» e l'icona <img width="41" src="custom/41SLSP_EPF-prod/img/help/viewOnlineIcon.png" />per ottenere la visualizzazione completa.
- <h3>Servizi online per persone che non sono membri di un'università <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Oltre alle risorse Open Access e online con licenza nazionale, è anche possibile usare le risorse con la licenza acquistata dall'università, a condizione di essere nei locali della stessa.</p>
- <p>Le riviste universitarie elettroniche, gli e-book e i database vengono acquisiti attraverso licenze e il loro accesso è riservato esclusivamente alla rete dell'istituzione titolare della licenza (sul campus), è possibile scaricare e/o accedere a tali risorse dalla sede della biblioteca titolare della licenza. </p>
- <p>Le biblioteche che offrono l'accesso a risorse online sono visualizzate sotto localizzazione. </p>
- <p>I documenti Open Access sono accessibili liberamente. Si tratta sia di articoli di riviste o e-book provenienti da diverse piattaforme o repository istituzionali, sia di documenti digitalizzati dalle biblioteche. Questi documenti sono contrassegnati nella lista dei risultati con l'icona "open access".</p>
- <p>Tutte le persone che vivono in Svizzera hanno accesso alle licenze nazionali. Ciì richiede una registrazione gratuita, maggiori informazioni sono disponibili sulla pagina <a href="https://consortium.ch/zugriff/?lang=en" target="_blank">https://consortium.ch/zugriff/?lang=en </a>. Attenzione: per la registrazione per licenze nazionali puì essere utilizzata la medesima edu-ID di swisscovery. </p>
- <p>Le risorse disponibili attraverso le licenze nazionali sono contrassegnate in parentesi nella sezione «Disponibilità full text».</p>
- <h3>Richiesta di prestito/richiesta documenti<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Sotto «Lo trovi in» nella visualizzazione completa, è possibile vedere le biblioteche dove è localizzato il documento e se è attualmente disponibile. La fornitura di un esemplare in una localizzazione di presa in consegna puì essere soggetta a costi.</p>
- <p>Sotto «Altre opzioni» è possibile vedere se biblioteche SLSP di altre institution zone posseggono questo esemplare. </p>
- <p>Selezionare l'opzione di richiesta che si desidera: "Richiesta" (copia fisica/prenotazione) o "Digitalizzazione" (Copia digitale o cartacea). Per effettuare una richiesta è necessario essere registrati.</p>
- <p>Selezionando "Richiesta", è possibile richiedere una copia fisica da ritirare nella biblioteca. È anche possibile richiedere la fornitura di alcuni esemplari via posta (servizio a pagamento). Se è disponibile questa opzione, selezionate la vostra istituzione nel campo «Istituzione di ritiro» e l'indirizzo postale nel campo «Luogo di ritiro».</p>
- <p>Se si desidera ricevere una copia elettronica o cartacea di un articolo o di un capitolo, cliccarte su Digitalizzazione e compilare il modulo con tutti i dettagli possibili.</p>
- <p><strong>ATTENZIONE:</strong> Questi servizi possono non essere disponibili nella propria IZ / biblioteca e possono essere soggetti a costi. Per maggiori informazioni cliccare <a href="https://slsp.ch/en" target="_blank">qui</a>. </p>
- Nonostante il network SLSP offra accesso ad oltre 50 milioni di record di esemplari e ad un numero inestimabile di risorse elettroniche, è possibile che la pubblicazione che cercate non sia disponibile. In tal caso è possibile effettuare una richiesta di prestito interbibliotecario e la pubblicazione verrà presa in prestito presso un'altra biblioteca in Svizzera o all'estero (servizio a pagamento). Si prega di compilare il presente <a href="https://slsp.ch/en" target="_blank">modulo</a>, e la propria biblioteca si prenderà cura della richiesta.
- </p>
- <p><strong>ATTENZIONE:</strong> Questo servizio puì essere soggetto a commissioni aggiuntive. Per maggiori informazioni in merito alle possibili commissioni si prega di <a href="https://slsp.ch/fees" target="_blank">consultare la presente pagina</a>.</p>
-</md-card-content>
- <md-card-content id="bor3">
- <a href="#index">
- <h3>Prolungamento del periodo di prestito <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Nel Conto utente, è possibile vedere i prestiti in corso e rinnovarli tutti o singolarmente, posto che le condizioni di prestito lo consentano. </p>
- <p><strong>ATTENZIONE:</strong> Il nuovo periodo di prestito decorre sempre da subito. Se si rinnova un documento prima del termine automatico del periodo di prestito, il massimo periodo di prestito possibile si accorcia.</p>
- <p><strong>ATTENZIONE:</strong> le condizioni di prestito possono variare a seconda delle istituzioni e del tipo di materiale. </p>
-</md-card-content>
- <md-card-content id="bor4">
- <a href="#index">
- <h3>Lista dei prestiti precedenti<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>Nel Conto utente, nella sezione «Prestiti» delle IZ è possibile vedere i propri prestiti attivi e precedenti.</p>
- <p><strong>ATTENZIONE:</strong> in alcune institution zone / biblioteche questa opzione non è disponibile a causa delle norme cantonali sulla protezione dei dati.</p>
- <h3>Profili di ricerca SLSP <img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /></h3>
- </a>
- <p>SLSP lavora con due profili di ricerca standard disponibili in ciascuna interfaccia. Il primo è «swisscovery», il secondo è «La mia biblioteca». Questa infografica illustra dove viene effettuata la ricerca a seconda del profilo utilizzato. In alcune institution zone o Views di biblioteche è possibile trovare ulteriori profili di ricerca personalizzati creati dalla institution zone / biblioteca. </p>
- <p><strong>La mia biblioteca:</strong> Comprende l'inventario locale della institution zone / biblioteca + risorse esterne caricate in questa institution zone (generale e locale) + CDI (CDI puì anche essere usato come profilo di ricerca separato). Questo profilo di ricerca ha sempre il nome dell'istituzione / biblioteca.</p>
- <p><strong>swisscovery:</strong> Tutti i record del network SLSP + risorse esterne generali + CDI </p>
- <p><strong>Profilo di ricerca personalizzato: </strong> Alcune institution zone / biblioteche hanno realizzato i propri profili di ricerca, che includono dei dati locali.</p>
- <p><strong>Central Discovery Index (CDI):</strong> è un database centrale che comprende migliaia di fonti per un totale di oltre 3 miliardi di record quali: articoli di riviste, e-book, dissertazioni, atti di convegni, brevetti, report, documenti governativi, immagini e video. A seconda della institution zone / view della biblioteca, il CDI puì essere cercato nel profilo di ricerca «La mia biblioteca», in un profilo di ricerca separato o in entrambi</p>
- <p><strong>Risorse esterne generali: </strong> swisscovery è stata arricchita con l'aggiunta di risorse esterne elettroniche generali, in particolare repositories istituzionali.</p>
- <p><strong>Risorse esterne locali:</strong> oltre alle risorse esterne generali, alcune institution zone forniscono alcune risorse esterne locali. </p>
- <p>In questo esempio la ricerca è limitata a libri in inglese che nel titolo contengono «mountain railway*» e hanno come soggetto la Svizzera. </p>
- <p>Con l'aiuto del secondo (o terzo campo), è possibile scegliere tra «contiene» o «è(esatto)» o «inizia con», per specificare se i termini di ricerca devono essere contenuti nel campo, se devono corrispondere esattamente ai termini di ricerca o se l'elemento deve iniziare con un termine specifico. </p>
- <p>Qui potete scrivere qualche parola del titolo, non necessariamente nell'ordine esatto:</p>
- <p>Otterrete dei risultati per yoghurt, yogourt, yohurts o yogourts</p>
-</md-card-content>
- <md-card-content id="sea6">
- <a href="#index">
- <h3>Uso di operatori booleani per espandere o restringere una ricerca<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>È possibile utilizzare operatori booleani «E», «O» e «NON». Questi devono essere scritti in lettere maiuscole. </p>
- <p>Senza operatori, i termini di ricerca vengono automaticamente combinati con <strong>«E»</strong>. In altre parole, tutti i termini di ricerca devono apparire nei risultati. </p>
- <p><strong>O</strong></p>
- <p>Almeno uno dei termini di ricerca collegati con «O» devono comparire nei risultati. Per esempio, usare «O» per combinare termini correlati per espandere la ricerca a diversi termini (sinonimi, diverse ortografie):</p>
- <p>Il termine di ricerca escluso con «NON» non deve apparire nei risultati. In altre parole, «NON» fa sì che le parole o frasi vengano esplicitamente escluse. </p>
- <!--<p><strong>NOTE:</strong> The Boolean operator NOT is available only in the simple search </p>-->
- <p>In «Preferiti» è possibile salvare i titoli trovati durante la propria ricerca. Il salvataggio a lungo termine è possibile unicamente se si è registrati. Come ospite, i preferiti sono a disposizione solamente durante la sessione browser corrente.</p>
- <p>
- Facendo clic sull'icona
- <img width="14" height="18" src="custom/41SLSP_EPF-prod/img/help/pinIcon1.png" /> di un titolo, il titolo viene aggiunto tra i propri preferiti e cambia in
- <img width="14" height="15" src="custom/41SLSP_EPF-prod/img/help/pinIcon2.png" />. Facendo clic su
- <img width="14" height="15" src="custom/41SLSP_EPF-prod/img/help/pinIcon2.png" />, il titolo viene rimosso dai preferiti.
- </p>
- <p>
- È possibile accedere alla propria collezione di preferiti attraverso l'icona
- <img width="14" height="18" src="custom/41SLSP_EPF-prod/img/help/pinIcon1.png" /> in alto a destra della pagina.
- </p>
- <p>È possibile rimuovere o esportare singoli titoli dalla propria lista dei preferiti. Evidenziare uno o più titoli e usare i simboli in alto nella pagina per eliminarli, aggiungere etichette, esportarli in programmi per la gestione dei riferimenti, stamparli o inviarli via e-mail: </p>
- <h3>Salvare e gestire le ricerche<img class="icon_up2" height="20" width="15" src="custom/41SLSP_EPF-prod/img/help/iconUp.png" /> </h3>
- </a>
- <p>Se si è registrati, è possibile salvare le ricerche in modo permanente. Per farlo, cliccare su «Salva query» sopra la lista dei risultati: </p>
- <p><strong>ATTENZIONE:</strong> L'opzione «Salva query» viene visualizzata soltanto se si è registrati ed è stata effettuata una ricerca. </p>
- <p>Quando si salva la propria query, è possibile ricevere notifiche via e-mail per gli aggiornamenti relativi alla query. Per attivare questo servizio, appare automaticamente un messaggio in alto nella pagina. </p>
- <p>È possibile eseguire nuovamente la ricerca cliccandoci nuovamente sopra. È possibile attivare una notifica (via RSS o e-mail) usando i simboli a destra per ricevere informazioni sui nuovi documenti aggiunti corrispondenti alla propria ricerca. </p>
- <p>Con «Mostra di più» è possibile visualizzare ulteriori termini e affinare la ricerca includendo o escludendo diversi termini. </p>
- <p>Esempio: Restringere i risultati a «Tesi»; «Video» e «Audio».</p>
- <p>L'inserimento di una nuova ricerca rimuove automaticamente tutti i filtri. In ogni caso è possibile mantenere un filtro per la durata della sessione browser selezionandolo e facendo clic sul simbolo del lucchetto. Per rimuovere il filtro, cliccare nuovamente sul lucchetto.</p>
- <p>Se un'opera è disponibile in diverse versioni (per es. in diverse edizioni o stampe), cliccare sull'icona, il titolo o «Visualizza tutte le versioni» per elencare tutte le versioni.</p>
- <p><strong>Top:</strong> torna in alto nella pagina</p>
- <p><strong>Invia a: </strong> esporta informazioni del titolo al programma di gestione dei riferimenti, esporta citazioni, crea link permanenti al risultato, stampa o invia il titolo via e-mail. Le azioni di esportazione possono essere applicate fino a 50 record alla volta. </p>
- <p><strong>Ottenerlo:</strong> visualizza localizzazioni, effettua ordini di prestiti, prenotazioni o fotocopie.</p>
- <p><strong>Dettagli:</strong> maggiori informazioni sul titolo. </p>
- <p><strong>Link:</strong> collega agli indici, al titolo precedente/successivo, a tutti i volumi di una serie.</p>
- <p><strong>Scorri virtualmente:</strong> è possibile vedere uno scaffale della biblioteca relativo al record selezionato, di modo che sia possibile trovare altri esemplari corrispondenti alla propria ricerca.</p>
- <p>Se un'opera è disponibile in diverse versioni (per es. in diverse edizioni o stampe), cliccare sull'icona, il titolo o «Visualizza tutte le versioni» elencare tutte le versioni.</p>
- <h1 class="md-headline">Willkommen bei <b>BEAST</b></h1>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>Der Katalog <b>BEAST</b> (<b>B</b>ooks, <b>E</b>books and <b>A</b>rticles <b>S</b>earch <b>T</b>ool) bietet Ihnen Zugang zu allen dokumentarischen Ressourcen der Bibliothek der EPFL (Bücher, Zeitschriften und Artikel in gedruckter und elektronischer Form, Dissertationen der EPFL, DVDs, Videospiele usw.) sowie zu den Sammlungen der anderen Bibliotheken des <a href="https://slsp.ch/de">swisscovery-Netzes</a>.</p>
- <p>Ihr NEBIS-Konto wurde nicht migriert, was bedeutet, dass alle Benutzerinnen und Benutzer ein neues Konto beim swisscovery erstellen müssen.</p>
- <p><b><a href="https://registration.slsp.ch/?iz=epfl&lang=de" class="puce"><span>▶ </span><u>Erstellen Sie ein swisscovery-Konto</u></a></b></p>
- <p><b><a href="https://slsp-epfl.primo.exlibrisgroup.com/discovery/account?vid=41SLSP_EPF:prod" class="puce"><span>▶ </span><u>Sehen Sie Ihr swisscovery-Konto</u></a></b></p>
- <p>Bitte <a href="https://registration.slsp.ch?iz=epfl&lang=de" target="_blank">registrieren</a> Sie sich für die swisscovery-Netzwerkdienstleistungen, um auf folgende Dienstleistungen zugreifen zu können:</p>
- <ul>
- <li>Zugang zu den Sammlungen von mehr als <a href="https://slsp.ch/libraries" target="_blank">450 wissenschaftlichen Bibliotheken</a> in der Schweiz</li>
- <li>Nutzung lizenzierter elektronischer Ressourcen der Bibliothek der EPFL</li>
- <li>Dokumente aus anderen Bibliotheken bestellen (kostenlos, wenn sie in der Bibliothek der EPFL abgeholt werden)</li>
- <li>Zugriff auf Bibliothekskonto, Ausleihen und Reservierungen</li>
- <prm-icon aria-label="Cliquer pour envoyer un email à un bibliothécaire" class="md-icon-button-custom" icon-type="svg" svg-icon-set="primo-actions" icon-definition="email"></prm-icon>
- <span class="legal">Die EPFL Bibliothek ist Mitglied der <a href="https://slsp.ch" target="_blank" class="ps_link">Swiss Library Service Platform (SLSP) network</a></span>
- <h1 class="md-headline">Willkommen bei <b>swisscovery</b></h1>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Hier stehen Ihnen einfache und erweiterte Suchfunktionen für Bücher, E-Books, <a href="https://consortium.ch/lizenzen/" target="_blank">Zeitschriften</a>, <a href="https://consortium.ch/lizenzen/" target="_blank">Datenbanken</a> und weitere Medien zur Verfügung.
- <br />
- <br />
- Bitte <a href="#" target="_blank">loggen Sie sich ein</a> und profitieren Sie von unseren SLSP-Services, wie z. B.:
- </p>
- <ul>
- <li>Erhalten Sie Zugang zu über <a href="https://slsp.ch/libraries" target="_blank">450 wissenschaftlichen Bibliotheken</a> in der Schweiz</li>
- <li>Nutzen Sie von Ihrer Bibliothek lizenzierte E-Medien und erhalten Sie Zugang zu freien Titeln</li>
- <li>Bestellen Sie Artikel bei Bibliotheken, direkt oder via SLSP Courier</li>
- <li>Verwalten Sie Ihr Konto, Ihre Ausleihen und Ihre Vormerkungen</li>
- </ul>
- <br />
- <p>
- <b>
- Registrierung
- </b>
- </p>
- <p>
- Um ein SLSP-Nutzer zu werden, registrieren Sie sich bitte auf unserer <a href="https://registration.slsp.ch" target="_blank">Registrierungsplattform</a>.
- <h2 class="md-headline">Fragen, Kommentare und Support</h2>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Haben Sie Fragen oder möchten Sie einen Kommentar anbringen? Haben Sie Probleme mit swisscovery? Dann <a href="mailto:?" target="_blank">kontaktieren Sie uns</a>! Wir freuen uns auf Ihre Nachricht.
- <span class="legal">Der [Name der Institution / Bibliothek/ies] ist Mitglied der <a href="https://slsp.ch" target="_blank" class="ps_link">Swiss Library Service Platform (SLSP) network</a></span>
- <h1 class="md-headline">Welcome to <b>swisscovery</b></h1>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Here you can perform simple and advanced searches for books, e-books, <a href="https://consortium.ch/lizenzen/?lang=en" target="_blank">journals</a>, <a href="https://consortium.ch/lizenzen/?lang=en" target="_blank">databases</a> and other media.
- <br />
- <br />
- Please <a href="#" target="_blank">sign in</a> in order profit from our SLSP services such as:
- </p>
- <ul>
- <li>Get access to more than <a href="https://slsp.ch/libraries" target="_blank">450 scientific libraries</a> in Switzerland</li>
- <li>Use e-media licensed by your library and access free titles</li>
- <li>Request books from libraries, directly or via SLSP courier</li>
- <li>Manage your account, your loans and your requests</li>
- </ul>
- <br />
- <p>
- <b>
- Registration
- </b>
- </p>
- <p>
- To become a SLSP user please register at our <a href="https://registration.slsp.ch" target="_blank">registration platform</a>.
- <h2 class="md-headline">Questions, comments and support</h2>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Do you have any questions or comments? Are you experiencing problems with swisscovery? Don't hesitate to <a href="mailto:?" target="_blank">contact us</a>! We are looking forward to reading your message.
- <span class="legal">The [Name of the Institution / Library/ies] is member of the <a href="https://slsp.ch" target="_blank" class="ps_link">Swiss Library Service Platform (SLSP) network</a></span>
- <h1 class="md-headline">Benvenuti su <b>BEAST</b></h1>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>Il catalogo <b>BEAST</b> (<b>B</b>ooks, <b>E</b>books and <b>A</b>rticles <b>S</b>earch <b>T</b>ool) vi permette di accedere all’insieme delle risorse documentarie della Biblioteca dell’EPFL (libri, riviste e articoli in formato cartaceo ed elettronico, tesi dell’EPFL, DVD, videogiochi, ecc.) cosi come alle collezioni delle altre biblioteche della rete <a href="https://slsp.ch/it">swisscovery</a>.</p>
- <h2 class="md-headline">Iscrizione a swisscovery</h2>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>Gli account utente NEBIS non sono stati migrati sulla nuova piattaforma. Tutti i lettori dovranno quindi crearsi un nuovo account swisscovery. </p>
- <p><b><a href="https://registration.slsp.ch/?iz=epfl&lang=it" class="puce"><span>▶ </span><u>Creare un account swisscovery</u></a></b></p>
- <p><b><a href="https://slsp-epfl.primo.exlibrisgroup.com/discovery/account?vid=41SLSP_EPF:prod" class="puce"><span>▶ </span><u>Visualizza il tuo conto swisscovery</u></a></b></p>
- <p>È necessario <a href="https://registration.slsp.ch?iz=epfl&lang=it" target="_blank">iscriversi</a> per usfruire dei servizi della rete swisscovery, come ad esempio:</p>
- <ul>
- <li>Accedere alle collezioni di oltre <a href="https://slsp.ch/libraries" target="_blank">450 biblioteche</a> scientifiche in Svizzera</li>
- <li>Utilizzare le risorse elettroniche in abbonamento alla Biblioteca dell’EPFL</li>
- <li>Ordinare dei documenti provenienti dalle altre biblioteche (il servizio è gratuito se i documenti vengono ritirati alla Biblioteca dell’EPFL)</li>
- <li>Gestire il vostro account utente, i vostri prestiti e le vostre prenotazioni</li>
- <prm-icon aria-label="Cliquer pour envoyer un email à un bibliothécaire" class="md-icon-button-custom" icon-type="svg" svg-icon-set="primo-actions" icon-definition="email"></prm-icon>
- <span class="legal">La Bibliothèque de l'EPFL è membro del <a href="https://slsp.ch" target="_blank" class="ps_link">Swiss Library Service Platform (SLSP) network</a></span>
- <h1 class="md-headline">Benvenuti in <b>swisscovery</b></h1>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Qui potete effettuare ricerche semplici e avanzate di libri, e-book, <a href="https://consortium.ch/lizenzen/?lang=it" target="_blank">periodici</a>, <a href="https://consortium.ch/lizenzen/?lang=it" target="_blank">banche dati</a> e altri media.
- <br />
- <br />
- La <a href="#" target="_blank">registrazione</a> permette di usufruire dei servizi SLSP come:
- </p>
- <ul>
- <li>L’accesso a oltre <a href="https://slsp.ch/libraries" target="_blank">450 biblioteche scientifiche</a> in Svizzera</li>
- <li>L’utilizzo di risorse elettroniche concesse in licenza dalla vostra biblioteca e l’accesso a titoli gratuiti</li>
- <li>La richiesta di opere alle biblioteche, direttamente o tramite SLSP Courier</li>
- <li>La gestione del vostro account, dei prestiti e delle vostre richieste</li>
- </ul>
- <br />
- <p>
- <b>
- Registrazione
- </b>
- </p>
- <p>
- Per diventare un utente SLSP è necessario registrarsi sulla nostra <a href="https://registration.slsp.ch" target="_blank">piattaforma di registrazione</a>.
- <h2 class="md-headline">Domande, commenti e supporto</h2>
- </md-card-title-text>
- </md-card-title>
- <md-card-content>
- <p>
- Avete domande o commenti? Avete problemi con swisscovery? Non esitate a <a href="mailto:?" target="_blank">contattarci</a>! Saremo lieti di ricevere il vostro messaggio.
-!function l(o,a,s){function c(t,e){if(!a[t]){if(!o[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(p)return p(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=a[t]={exports:{}};o[t][0].call(i.exports,function(e){return c(o[t][1][e]||e)},i,i.exports,l,o,a,s)}return a[t].exports}for(var p="function"==typeof require&&require,e=0;e<s.length;e++)c(s[e]);return c}({1:[function(e,t,r){"use strict";var n=angular.module("briefviewModule",["angularLoad"]);n.component("prmSearchResultAvailabilityLineAfter",e("./prm-search-result-availability-line-after/availabilityline.component.js")),n.component("prmPdfArticleLink",e("./prm-search-result-availability-line-after/pdf_article_link.component.js")),n.component("prmCollectionLink",e("./prm-search-result-availability-line-after/collection_link.component.js"))},{"./prm-search-result-availability-line-after/availabilityline.component.js":2,"./prm-search-result-availability-line-after/collection_link.component.js":3,"./prm-search-result-availability-line-after/pdf_article_link.component.js":5}],2:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},template:'<prm-pdf-article-link after-ctrl="$ctrl"></prm-pdf-article-link>\n <prm-collection-link after-ctrl="$ctrl"></prm-collection-link>\n <prm-eth-search-result-availability-line-after after-ctrl="$ctrl"></prm-eth-search-result-availability-line-after>'}},{}],3:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./collection_link.controller.js"),template:'<div class="series_btn" ng-if="$ctrl.get_collection_url()">\r\n <a class="neutralized-button arrow-link-button md-button md-primoExplore-theme md-ink-ripple" href="{{$ctrl.collection_url}}" target="_blank"><span class="button-content"><span class="link_gray">{{ \'seriesLink\' | customTranslate }}</span> {{$ctrl.collection_title}}</span> <prm-icon link-arrow="" icon-type="svg" svg-icon-set="primo-ui" icon-definition="chevron-right"></prm-icon><div class="md-ripple-container" style=""></div></a>\r\n</div>\r\n'}},{"./collection_link.controller.js":4}],4:[function(e,t,r){"use strict";t.exports=["$filter","$http","userService",function(e,t,r){this.parentCtrl=this.afterCtrl.parentCtrl;var s=this;s.get_collection_url=function(){if(s.hasOwnProperty("collection_url"))return s.collection_url;try{var e=s.parentCtrl.result.pnx.display.series;if(!Array.isArray(e))throw new Error("Notice without series")}catch(e){return null}var t=!0,r=!1,n=void 0;try{for(var i,l=e[Symbol.iterator]();!(t=(i=l.next()).done);t=!0){var o=i.value.match(/\$\$Q(.*)\$\$Z(99\d{16})/);if(o){if(s.parentCtrl.$stateParams.lang)a="&lang="+s.parentCtrl.$stateParams.lang;else var a="";return s.collection_title=o[1],s.collection_url=window.location.origin+"/discovery/fulldisplay?vid="+s.parentCtrl.$stateParams.vid+"&tab="+s.parentCtrl.$stateParams.tab+"&docid=alma"+o[2]+"&context="+s.parentCtrl.$stateParams.context+a,s.collection_url}}}catch(e){r=!0,n=e}finally{try{!t&&l.return&&l.return()}finally{if(r)throw n}}}}]},{}],5:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./pdf_article_link.controller.js"),template:'<div class="pdf_btn" ng-if="$ctrl.check_doi() && $ctrl.is_epfl_IP">\r\n <a href="{{$ctrl.pdf_link}}" target="_blank"><prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="pdf"></prm-icon> {{ \'pdfAccess\' | customTranslate }}</a>\r\n</div>\r\n'}},{"./pdf_article_link.controller.js":6}],6:[function(e,t,r){"use strict";t.exports=["$filter","$http","userService",function(e,t,r){this.parentCtrl=this.afterCtrl.parentCtrl;var a=this;function s(e){var t=e.match(/10\.\d{4,9}\/[-._;()/:A-Z0-9]+/i);if(t)return t[0]}a.is_epfl_IP=r.isEpflIP(),a.get_doi=function(){if(a.parentCtrl.hasOwnProperty("result")&&a.parentCtrl.result.hasOwnProperty("pnx")){var e=a.parentCtrl.result.pnx;if("addata"in e&&"doi"in e.addata&&s(e.addata.doi[0])&&e.control.hasOwnProperty("recordtype")&&"article"===e.control.recordtype[0])return s(e.addata.doi[0]);if("display"in e&&"identifier"in e.display){var t=!0,r=!1,n=void 0;try{for(var i,l=e.display.identifier[Symbol.iterator]();!(t=(i=l.next()).done);t=!0){var o=i.value;if(s(o))return s(o)}}catch(e){r=!0,n=e}finally{try{!t&&l.return&&l.return()}finally{if(r)throw n}}}}},a.check_doi=function(){return a.hasOwnProperty("doi")||a.parentCtrl.hasOwnProperty("result")&&a.parentCtrl.result.hasOwnProperty("pnx")&&(a.get_doi()?(a.doi=a.get_doi(),a.set_url_pdf()):a.doi=null),!!a.hasOwnProperty("pdf_link")},a.set_url_pdf=function(){var e="https://public-api.thirdiron.com/public/v1/libraries/183/articles/doi/"+a.doi+"?access_token=adc54dee-c6a6-4b99-a917-2ed400f1f2d3";t({method:"GET",url:e}).then(function(e){if(200===e.status){try{var t=e.data.data.fullTextFile}catch(e){t=""}0<t.length&&(a.pdf_link=t)}},function(){a.doi=null})}}]},{}],7:[function(e,t,r){"use strict";angular.module("databasesModule",["angularLoad"]).component("prmTreeNavAfter",e("./treenav.component.js"))},{"./treenav.component.js":8}],8:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$filter",function(e){}]}},{}],9:[function(e,t,r){"use strict";angular.module("customTranslateFilter",[]).filter("customTranslate",["$translate",function(r){return function(e){var t={costWarningScan:{fr:'<b><span class="bigfont" style="font-size:20px">Service payant:</span></b><b> les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:</b>',en:'<b><span class="bigfont" style="font-size:20px">Fee-based service:</span></b><b> EPFL employees and students can benefit from this service free of charge by using the form:</b>',de:'<b><span class="bigfont" style="font-size:20px">Kostenpflichtiger Service:</span></b><b> Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.</b>',it:'<b><span class="bigfont" style="font-size:20px">Servizio a pagamento:</span></b><b> I dipendenti e gli studenti dell\'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:</b>'},costWarningScanEPFL:{fr:"<b>Service gratuit pour les collaborateurs et les étudiants EPFL.</b>",en:"<b>Free of charge for EPFL staff and students.</b>",de:"<b>Service für Mitarbeiter und Studenten der EPFL kostenlos</b>",it:"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.<b>"},costWarningNetworkLoan:{fr:"<b>Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.</b>",en:"<b>Free of charge if withdrawal at the EPFL Library.</b>",de:"<b>Service bei Abholung in der EPFL-Bibliothek kostenlos.</b>",it:"<b>Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL</b>"},costWarningPEB:{fr:"<b>Service gratuit pour les collaborateurs et les étudiants de l’EPFL.</b> 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:"<b>Free of charge for EPFL staff and students.</b> 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:"<b>Kostenloser Service für Mitarbeiter und Studenten der EPFL.</b> 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:"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.</b> 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 <a target="_blank" href="https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/">VPN</a> EPFL.',en:'Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a>.',de:'Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a> abrufbar.',it:'Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell\'EPFL e a distanza tramite <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a> EPFL.'},feedbackLinkMSG:{fr:"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.",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."},pdfAccess:{fr:"Accès direct au pdf",en:"Direct access to the pdf",de:"Direct access to the pdf",it:"Direct access to the pdf"},seriesLink:{fr:"Collection :",en:"Serie:",de:"Serie:",it:"Serie:"}};return["en","fr","it","de"].includes(r.use())?t[e][r.use()]:t[e].fr}}])},{}],10:[function(e,t,r){"use strict";angular.module("trustHtmlFilter",[]).filter("trustHtml",["$sce",function(t){return function(e){return t.trustAsHtml(e)}}])},{}],11:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},template:'<div><prm-epfl-alma-viewit-after after-ctrl="$ctrl"></prm-epfl-alma-viewit-after>\n <prm-eth-alma-viewit-after after-ctrl="$ctrl"></prm-eth-alma-viewit-after></div>'}},{}],12:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./epfl_almaviewit.controller.js"),template:'<div class="bar alert-bar" ng-if="$ctrl.no_report_link==false && $ctrl.is_epfl_IP==false">\r\n <div ng-bind-html="$ctrl.get_txt()"></div>\r\n <md-icon ng-if="::($ctrl.iconDefinition && !$ctrl.isCustom && !$ctrl.isEmailMode())" md-svg-icon="primo-ui:open-in-new" role="presentation" class="md-primoExplore-theme"></md-icon\r\n <div class="feedbacklink"> <a href="{{ ::$ctrl.feedbackLink }}"><md-icon md-svg-icon="primo-ui:envelope-outline" role="presentation" class="md-primoExplore-theme"></md-icon> {{ \'feedbackLink\' | customTranslate }}</a></div>\r\n</div>\r\n<div class="feedbacklink" ng-if="$ctrl.no_report_link==false && $ctrl.is_epfl_IP==true">\r\n <a href="{{ ::$ctrl.feedbackLink }}"><md-icon md-svg-icon="primo-ui:envelope-outline" role="presentation" class="md-primoExplore-theme"></md-icon> {{ \'feedbackLink\' | customTranslate }}</a>\r\n</div>\r\n'}},{"./epfl_almaviewit.controller.js":13}],13:[function(e,t,r){"use strict";t.exports=["$filter","userService",function(e,t){this.parentCtrl=this.afterCtrl.parentCtrl;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){r.is_epfl_IP=t.isEpflIP(),r.user_ip=t.get_ip();var n=r.parentCtrl.item.pnx.control.recordid[0],i="";r.parentCtrl.item.pnx.display.title&&0<r.parentCtrl.item.pnx.display.title.length&&(i=r.parentCtrl.item.pnx.display.title[0]);var l="";r.parentCtrl.item.pnx.display.creationdate&&0<r.parentCtrl.item.pnx.display.creationdate.length&&(l=r.parentCtrl.item.pnx.display.creationdate[0]);var o="";r.parentCtrl.item.pnx.display.creator&&0<r.parentCtrl.item.pnx.display.creator.length&&(o=r.parentCtrl.item.pnx.display.creator.join(", "));var a="";r.parentCtrl.item.pnx.display.type&&0<r.parentCtrl.item.pnx.display.type.length&&(a=r.parentCtrl.item.pnx.display.type[0]);var s="";if(r.parentCtrl.item.pnx.display.identifier&&0<r.parentCtrl.item.pnx.display.identifier.length){var c=r.parentCtrl.item.pnx.display.identifier[0];-1<c.indexOf("<b>ISBN")||-1<c.indexOf("<b>ISSN")?s=r.parentCtrl.item.pnx.display.identifier.join(", ").replace(/<\/b>/g,"").replace(/<b>/g,""):-1<c.indexOf("ISBN")?s="ISBN: "+c.substring(c.indexOf("$$V")+3):-1<c.indexOf("ISSN")&&(s="ISSN: "+c.substring(c.indexOf("$$V")+3))}var p=navigator.userAgent,u="Access problem "+n+' - "'+i+'"',d=e("customTranslate")("feedbackLinkMSG")+"\n\n****\nTitle: "+i+"\nAuthor: "+o+"\nYear: "+l+"\nType: "+a+"\nDocId: "+n+"\nIdentifier: "+s+"\nUser_agent: "+p+"\nUserIP: "+r.user_ip+"\nRange EPFL: "+r.is_epfl_IP+"\n****";r.feedbackLink="mailto:eresources@epfl.ch?subject="+encodeURIComponent(u)+"&body="+encodeURIComponent(d)+"&Content-Type=text/html"}}]},{}],14:[function(e,t,r){"use strict";var n=angular.module("fullviewModule",["angularLoad"]);n.component("prmAlmaViewitAfter",e("./almaviewit.component.js")),n.component("prmEpflAlmaViewitAfter",e("./epfl_almaviewit.component.js"))},{"./almaviewit.component.js":11,"./epfl_almaviewit.component.js":12}],15:[function(e,t,r){"use strict";t.exports={active:!0,txt:{fr:'<div class="info-symbol" style="text-align:left">\n <div><p>Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : <a class="md-primoExplore-theme" href="https://slsp.ch/fr">swisscovery</a></p></div>\n </div>',en:'<div class="info-symbol" style="text-align:left">\n <div><p>The NEBIS network ended on December 7, 2020. It has been replaced by <a class="md-primoExplore-theme" href="https://slsp.ch/it">swisscovery</a>: a new and wider network.</p></div>\n </div>',de:'<div class="info-symbol" style="text-align:left">\n <div><p>Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: <a class="md-primoExplore-theme" href="https://slsp.ch/de">swisscovery</a></p></div>\n </div>',it:'<div class="info-symbol" style="text-align:left">\n <div><p>La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: <a class="md-primoExplore-theme" href="https://slsp.ch/it">swisscovery</a></p></div>\n </div>'},begin:"2020-01-04T00:00:00Z",end:"2021-03-31T12:00:00Z"}},{}],16:[function(e,t,r){"use strict";var n=angular.module("homepageModule",["angularLoad"]);n.component("prmSearchBarAfter",e("./searchbar.component.js")),n.component("prmMainMenuAfter",e("./mainmenu.component.js")),n.component("prmTopbarAfter",e("./topbar.component.js"))},{"./mainmenu.component.js":17,"./searchbar.component.js":18,"./topbar.component.js":19}],17:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$location","$translate","$element",function(e,t,r){var n=this;this.$doCheck=function(){if("complete"===document.readyState){try{var e=document.querySelector("[translate='mainmenu.label.db']").parentElement}catch(e){n.modified=!1}e&&(e.removeAttribute("target"),e.setAttribute("aria-label","Databases"),n.modified=!0)}}}]}},{}],18:[function(n,e,t){"use strict";e.exports={bindings:{parentCtrl:"<"},template:'<div class="epfl-alert-message" ng-if="ctrl.active" ng-bind-html="ctrl.get_txt() "></div>',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)<e&&e<new Date(r.alert.end)&&(r.active=!0)}r.get_txt=function(){var e=["en","fr","it","de"].includes(t.use())?t.use():"en";return r.active?r.alert.txt[e]:""},r.parentCtrl.showTabsAndScopes=!0}]}},{"./alert.js":15}],19:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$location","$translate","$element",function(e,t,r){this.url=window.location.href.split("?")[0]+"?vid="+this.parentCtrl.configurationUtil.vid+"&lang="+t.use()}],template:"<div class=\"main-title\"><h1><a href=\"{{ ::ctrl.url }}\">{{ 'mainTitle' | customTranslate }}</a></h1><h2>{{ 'subTitle' | customTranslate }}</h2></div>"}},{}],20:[function(e,t,r){"use strict";e("./filters/custom_translate.filter.js"),e("./filters/trust_html.filter.js"),e("./slsp/slsp-courier-info"),e("./slsp/slsp-ill-signin-order-logged-out"),e("./slsp/slsp-ill-signin-order-alert"),e("./slsp/slsp-edit-personal-details"),e("./slsp/prm-locations-after"),e("./slsp/prm-location-items-after"),e("./slsp/slsp-archives-htgi"),e("./slsp/slsp-archives-viewit"),e("./briefview"),e("./homepage"),e("./fullView"),e("./databases");angular.module("viewCustom",["angularLoad","customTranslateFilter","trustHtmlFilter","epflCourierInfo","epflIllSigninOrderLoggedOut","slspIllSigninOrderAlert","epflEditPersonalDetails","ethLocationsAfterModule","ethLocationItemsAfterModule","slspArchivesHtgi","slspArchivesViewit","briefviewModule","homepageModule","fullviewModule","databasesModule"])},{"./briefview":1,"./databases":7,"./filters/custom_translate.filter.js":9,"./filters/trust_html.filter.js":10,"./fullView":14,"./homepage":16,"./slsp/prm-location-items-after":21,"./slsp/prm-locations-after":26,"./slsp/slsp-archives-htgi":29,"./slsp/slsp-archives-viewit":31,"./slsp/slsp-courier-info":33,"./slsp/slsp-edit-personal-details":35,"./slsp/slsp-ill-signin-order-alert":37,"./slsp/slsp-ill-signin-order-logged-out":39}],21:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationItemsAfterModule=void 0;var n=e("./eth-location-items-filter/eth-location-items-filter.module"),i=e("./slsp-i-button/epfl-i-button.module"),l=r.ethLocationItemsAfterModule=angular.module("ethLocationItemsAfterModule",[]).component("prmLocationItemsAfter",{bindings:{parentCtrl:"<"},template:'<eth-location-items-filter-component after-ctrl="$ctrl"></eth-location-items-filter-component><epfl-i-button-component after-ctrl="$ctrl"></epfl-i-button-component>'});l.requires.push(n.ethLocationItemsFilterModule.name),l.requires.push(i.epflIButtonModule.name)},{"./eth-location-items-filter/eth-location-items-filter.module":23,"./slsp-i-button/epfl-i-button.module":25}],22:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),this.$timeout=e,this.$scope=t}(r.ethLocationItemsFilterController=(n(l,[{key:"$onInit",value:function(){var n=this;try{this.parentCtrl=this.afterCtrl.parentCtrl,this.$scope.$watch("this.$ctrl.parentCtrl.loc.location.librarycodeTranslation",function(e,t,r){!r.$ctrl.parentCtrl.isLocationsFilterVisible&&e&&""!=e&&n.$scope.$watch("this.$ctrl.parentCtrl.loc.items",function(e){angular.isArray(e)&&1<e.length&&n.$timeout(function(){r.$ctrl.parentCtrl.isLocationsFilterVisible=!0},0)})},!0)}catch(e){console.error("***SLSP*** an error occured: ethLocationItemsFilterController\n\n"),console.error(e.message)}}}]),l)).$inject=["$timeout","$scope"]},{}],23:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationItemsFilterModule=void 0;var n=e("./eth-location-items-filter.controller");r.ethLocationItemsFilterModule=angular.module("ethLocationItemsFilterModule",[]).controller("ethLocationItemsFilterController",n.ethLocationItemsFilterController).component("ethLocationItemsFilterComponent",{bindings:{afterCtrl:"<"},controller:"ethLocationItemsFilterController"})},{"./eth-location-items-filter.controller":22}],24:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l)}(r.epflIButtonController=(n(l,[{key:"$onInit",value:function(){try{this.parentCtrl=this.afterCtrl.parentCtrl,this.getLibrary=function(){return this.parentCtrl.currLoc?this.parentCtrl.currLoc.location.librarycodeTranslation:""},this.biblinkText="Library",this.biblinkBase="https://slsp.ch/libraries",this.getLibraryUrl=function(){return this.parentCtrl.loc&&"E02"===this.parentCtrl.loc.location.libraryCode?"https://go.epfl.ch/library":this.biblinkBase},this.view=this.parentCtrl.configurationUtil.vid.replace(":","-")}catch(e){console.error("***SLSP*** an error occured: slspIButtonController\n\n"),console.error(e.message)}}}]),l)).$inject=[]},{}],25:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.epflIButtonModule=void 0;var n=e("./epfl-i-button.controller");r.epflIButtonModule=angular.module("epflIButtonModule",[]).controller("epflIButtonController",n.epflIButtonController).component("epflIButtonComponent",{bindings:{afterCtrl:"<"},controller:"epflIButtonController",template:'<div layout="row" class="LibInfo" layout-align="start center">\r\n <span class="md-subhead">\r\n <a ng-href="{{ $ctrl.getLibraryUrl() }}" target="_blank"><img width="20px" ng-src="/discovery/custom/{{ $ctrl.view }}/img/information.png" />{{ $ctrl.getLibrary() }}</a>\r\n </span>\r\n</div>\r\n'})},{"./epfl-i-button.controller":24}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationsAfterModule=void 0;var n=e("./eth-locations-filter/eth-locations-filter.module");(r.ethLocationsAfterModule=angular.module("ethLocationsAfterModule",[]).component("prmLocationsAfter",{bindings:{parentCtrl:"<"},template:'<eth-locations-filter-component after-ctrl="$ctrl"></eth-locations-filter-component>'})).requires.push(n.ethLocationsFilterModule.name)},{"./eth-locations-filter/eth-locations-filter.module":28}],27:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),this.$timeout=e,this.$scope=t}(r.ethLocationsFilterController=(n(l,[{key:"$onInit",value:function(){var n=this;try{this.parentCtrl=this.afterCtrl.parentCtrl,this.$scope.$watch("this.$ctrl.parentCtrl.locations[0].location.librarycodeTranslation",function(e,t,r){!r.$ctrl.parentCtrl.isLocationsFilterVisible&&e&&""!=e&&n.$timeout(function(){r.$ctrl.parentCtrl.isLocationsFilterVisible=!0},0)},!0)}catch(e){console.error("***ETH*** an error occured: ethLocationsFilterController\n\n"),console.error(e.message)}}}]),l)).$inject=["$timeout","$scope"]},{}],28:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationsFilterModule=void 0;var n=e("./eth-locations-filter.controller");r.ethLocationsFilterModule=angular.module("ethLocationsFilterModule",[]).controller("ethLocationsFilterController",n.ethLocationsFilterController).component("ethLocationsFilterComponent",{bindings:{afterCtrl:"<"},controller:"ethLocationsFilterController"})},{"./eth-locations-filter.controller":27}],29:[function(e,t,r){"use strict";e("./js/slsp-archives-htgi.module.js"),t.exports="slspArchivesHtgi"},{"./js/slsp-archives-htgi.module.js":30}],30:[function(e,t,r){"use strict";angular.module("slspArchivesHtgi",[]).controller("ArchivesHtgiController",[function(){this.$onInit=function(){try{if(!this.parentCtrl.item.pnx.display.source||0===this.parentCtrl.item.pnx.display.source.length)return;if(this.source=this.parentCtrl.item.pnx.display.source[0],"ETH_MaxFrischArchiv"===this.source||"ETH_ThomasMannArchiv"===this.source){document.getElementById("full-view-container").classList.add("slsp-archives-hide");var e=this.parentCtrl.item.pnx.control.originalsourceid[0],t=e.substring(e.lastIndexOf(":")+1);"ETH_ThomasMannArchiv"===this.source?this.url="http://www.online.tma.ethz.ch/home/#/content/"+t:"ETH_MaxFrischArchiv"===this.source&&(this.url="http://maxfrischarchiv-online.ethz.ch/home/#/content/"+t)}}catch(e){console.error("***SLSP*** an error occured: ArchivesHtgiController\n\n"),console.error(e.message)}}}]).component("almaHtgiSvcAfter",{bindings:{parentCtrl:"<"},controller:"ArchivesHtgiController",template:'\n <div class="slsp-archives" ng-if="$ctrl.url">\n <md-list layout="column" class="separate-list-items md-primoExplore-theme layout-column" role="list">\n <md-list-item role="listitem" ng-href="{{$ctrl.url}}" target="_blank">\n <span>{{(\'customized.archives.\' + $ctrl.source + \'.linktext\' | translate)}}</span>\n <span>{{$ctrl.label}}</span>\n <div class="md-secondary">\n <prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new" class="layout-margin"/>\n </div>\n </md-list-item>\n </md-list>\n <div ng-if="$ctrl.source === \'ETH_ThomasMannArchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_ThomasMannArchiv.text1">No request possible. The digitized item can be consulted in the Thomas Mann Archives reading room upon advance registration (</span>\n <a target="_blank" rel="noopener" ng-href="https://tma.ethz.ch/utils/kontakt.html">\n <span translate="customized.archives.ETH_ThomasMannArchiv.linktext2">Contact</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_ThomasMannArchiv.text2">).</span>\n </div>\n </div>\n <div ng-if="$ctrl.source === \'ETH_MaxFrischArchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_MaxFrischArchiv.text1">Informationen zu Bestellung und Benutzung siehe</span>\n <a target="_blank" rel="noopener" ng-href="http://maxfrischarchiv-online.ethz.ch/home/#/manual">\n <span translate="customized.archives.ETH_MaxFrischArchiv.linktext2">Bedienungshinweise</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_MaxFrischArchiv.text2">.</span>\n </div>\n </div>\n </div>\n '})},{}],31:[function(e,t,r){"use strict";e("./js/slsp-archives-viewit.module.js"),t.exports="slspArchivesViewit"},{"./js/slsp-archives-viewit.module.js":32}],32:[function(e,t,r){"use strict";angular.module("slspArchivesViewit",[]).component("prmEthSearchResultAvailabilityLineAfter",{bindings:{afterCtrl:"<"},controller:"ArchivesAvailabilityLineController"}).component("prmEthAlmaViewitAfter",{bindings:{afterCtrl:"<"},controller:"ArchivesViewitController",template:'\n <div class="slsp-archives" ng-if="$ctrl.url">\n <md-list layout="column" class="separate-list-items md-primoExplore-theme layout-column" role="list">\n <md-list-item role="listitem" ng-href="{{$ctrl.url}}" target="_blank">\n <span>{{(\'customized.archives.\' + $ctrl.source + \'.linktext\' | translate)}}</span>\n <span>{{$ctrl.label}}</span>\n <div class="md-secondary">\n <prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new" class="layout-margin"/>\n </div>\n </md-list-item>\n </md-list>\n <div ng-if="$ctrl.source === \'ETH_Hochschularchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_Hochschularchiv.text1">Informationen zu Bestellung und Benutzung siehe</span>\n <a target="_blank" rel="noopener" ng-href="http://archivdatenbank-online.ethz.ch/hsa/#/manual">\n <span translate="customized.archives.ETH_Hochschularchiv.linktext2">Bedienungshinweise</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_Hochschularchiv.text2">.</span>\n </div>\n </div>\n </div>\n '}).controller("ArchivesViewitController",["$translate",function(r){this.parentCtrl=this.afterCtrl.parentCtrl,this.$onInit=function(){try{if(!this.parentCtrl.item.pnx.display.source||0===this.parentCtrl.item.pnx.display.source.length)return;if(this.source=this.parentCtrl.item.pnx.display.source[0],"ETH_Hochschularchiv"===this.source){if(this.parentCtrl.item.delivery.GetIt1&&0<this.parentCtrl.item.delivery.GetIt1.length&&this.parentCtrl.item.delivery.GetIt1[0].links&&0<this.parentCtrl.item.delivery.GetIt1[0].links.length){if(0<this.parentCtrl.item.delivery.GetIt1[0].links.filter(function(e){return!(!e.isLinktoOnline||""===e.link)}).length)return;r("nui.getit.service_howtogetit").then(function(e){var t=document.getElementById("fullView");angular.element(t.querySelector("h4[translate='nui.getit.service_viewit']")).text(e),angular.element(t.querySelector("#services-index span[translate='nui.getit.service_viewit']")).text(e)})}document.getElementById("full-view-container").classList.add("slsp-archives-hide");var e=this.parentCtrl.item.pnx.control.originalsourceid[0],t=e.substring(e.lastIndexOf(":")+1);"ETH_Hochschularchiv"===this.source&&(this.url="http://archivdatenbank-online.ethz.ch/hsa/#/content/"+t)}}catch(e){console.error("***SLSP*** an error occured: ArchivesViewitController\n\n"),console.error(e.message)}}}]).controller("ArchivesAvailabilityLineController",["$translate",function(r){this.$onInit=function(){var t=this;try{if(this.parentCtrl=this.afterCtrl.parentCtrl,this.changeButton=!1,!this.parentCtrl.result.pnx.display.source||0===this.parentCtrl.result.pnx.display.source.length)return;if(this.source=this.parentCtrl.result.pnx.display.source[0],"ETH_Hochschularchiv"===!this.source)return;if(!this.parentCtrl.result.delivery.GetIt1||0==this.parentCtrl.result.delivery.GetIt1.length||!this.parentCtrl.result.delivery.GetIt1[0].links||0==this.parentCtrl.result.delivery.GetIt1[0].links.length)return;if(0===this.parentCtrl.result.delivery.GetIt1[0].links.filter(function(e){return!(!e.isLinktoOnline||""===e.link)}).length){r("delivery.code.no_inventory").then(function(e){t.changeButton=!0,t.changeButtonText=e});var e=this.parentCtrl.$element[0];e&&e.classList.add("slsp-hsa-no-online")}}catch(e){console.error("***SLSP*** an error occured: ArchivesAvailabilityLineController\n\n"),console.error(e.message)}},this.$doCheck=function(){try{if(this.changeButton){var e=this.parentCtrl.$element[0].querySelector(".availability-status");angular.element(e)&&0<angular.element(e).length&&(angular.element(e).html(this.changeButtonText),this.changeButton=!1,this.changeButtonText="")}}catch(e){console.error("***ETH*** an error occured: ArchivesAvailabilityLineController $doCheck\n\n"),console.error(e.message)}}}])},{}],33:[function(e,t,r){"use strict";e("./js/epfl-courier-info.module.js"),t.exports="slspCourierInfo"},{"./js/epfl-courier-info.module.js":34}],34:[function(e,t,r){"use strict";angular.module("epflCourierInfo",[]).controller("CourierInfoController",["$filter","$element",function(o,e,t,r,n){var a=this;a.form=e[0].parentElement,a.$doCheck=function(){var e=!1,t=2;if(void 0===a.form.children[0].children[1]||void 0===a.form.children[0].children[1].children[0]&&"costWarningPEB"!=a.typeFeeAlert()?void 0!==a.form.children[0].children[0]&&void 0!==a.form.children[0].children[0].children[0]&&(e=a.form.children[0].children[0].children[0],t=3):(e=a.form.children[0].children[1].children[0],"costWarningPEB"==a.typeFeeAlert()&&(t=3)),e&&e.children.length==t&&1<e.children.length||a.hasOwnProperty("currentTypeFeeAlert")&&a.currentTypeFeeAlert!=a.typeFeeAlert()){a.currentTypeFeeAlert=a.typeFeeAlert();var r='<div class="courier-info bar alert-bar"><p>'+a.getFeeAlert()+"</p>";if("costWarningScan"==a.typeFeeAlert()){var n=o("customTranslate")("illButton");if(a.get_peb_button())var i="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 i="javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid="+a.parentCtrl.vid+"'})()";r+='<p><span class="button-confirm md-button md-primoExplore-theme md-ink-ripple" onclick="'+i+'" ">'+n+"</span></p>"}r+='<p><a href="'+a.parentCtrl.$translate.instant("customize.fullview.feesUrl")+'" target="_blank">'+a.parentCtrl.$translate.instant("customize.fullview.feesLinkText")+"</a></p></div>";var l=angular.element(r)[0];e.children.length==t?e.insertBefore(l,e.children[t-1]):e.children[e.children.length-2].replaceWith(l)}},Object.defineProperty(a.parentCtrl,"form",{configurable:!0,get:function(){var e=this.getFilteredForm(["label","multiLabel"],!1);if(!a.hasOwnProperty("pickupLocationsListOrdered"))for(var t=0;t<e.length;t++)if("pickupInstitution"==e[t].key){e[t].options.sort(function(e,t){var r=["41SLSP_EPF","41SLSP_EPFL"];return(e=r.indexOf(e.value))==(t=r.indexOf(t.value))?0:e<t?1:-1}),a.pickupLocationsListOrdered=!0}return e}}),a.isEPFL=function(){return!!(a.parentCtrl.requestService&&0<a.parentCtrl.requestService._service["link-to-service"].indexOf("institution=41SLSP_EPF"))},a.linkBase="https://slsp.ch/fees",a.typeFeeAlert=function(){return["almaRequest.header","almaRequestOther.header","almaItemRequest.header"].includes(a.parentCtrl.requestHeader)?"costWarningNetworkLoan":["almaDigitization.header","almaDigitizationOther.header","almaItemDigitization.header"].includes(a.parentCtrl.requestHeader)?a.isEPFL()?"costWarningScanEPFL":"costWarningScan":"almaResourceSharing.header"===a.parentCtrl.requestHeader?"costWarningPEB":"costWarningGeneral"},a.getFeeAlert=function(){return o("customTranslate")(a.typeFeeAlert())},a.get_peb_button=function(){for(var e=document.getElementsByTagName("span"),t=0,r=e.length;t<r;t++)if("AlmaResourceSharing"===e[t].getAttribute("translate")&&-1===e[t].parentNode.className.indexOf("greenbutton"))return e[t]},a.click_peb=function(){var e=a.get_peb_button();e?e.click():window.location.href=window.location.origin+"/discovery/blankIll?vid="+a.parentCtrl.vid}}]).component("prmRequestAfter",{bindings:{parentCtrl:"<"},controller:"CourierInfoController"})},{}],35:[function(e,t,r){"use strict";e("./js/epfl-edit-personal-details.module.js"),t.exports="epflEditPersonalDetails"},{"./js/epfl-edit-personal-details.module.js":36}],36:[function(e,t,r){"use strict";angular.module("epflEditPersonalDetails",[]).controller("EditPersonalDetailsController",["$scope","$element","$translate",function(e,n,t){var i=this,r="en",l=e.$root.$$childHead.$ctrl.userSessionManagerService;l&&(r=l.getInterfaceLanguage()),i.detailsBaseEdu="https://eduid.ch/web/change-account-data/2/?lang="+r,i.detailsBaseReg="https://registration.slsp.ch/library-card/?lang="+r,i.exclude=["STAFF","11","12","13","14","15","16","91","92"],i.grpA=["11","91","92"],i.grpB=["12","13","14","15","16"],i.getPatronGrp=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!i.exclude.includes(e)},i.grpLabelA=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!!i.grpA.includes(e)},i.grpLabelB=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!!i.grpB.includes(e)},i.test=0,i.testPersonalInfo=function(){return new Promise(function(e,t){(void 0!==i.parentCtrl.personalInfoService.personalInfo?e:t)()})},i.persInfoAv=function(){var e='<div class="btn-account">';i.grpLabelA()?e+='<md-card-content flex="100" class="bar courier-info layout-align-left-center layout-row"><span>'+i.parentCtrl.$translate.instant("customized.libraries.details")+"</span></md-card-content>":i.grpLabelB()?e+='<md-card-content flex="100" class="bar courier-info layout-align-left-center layout-row"><span>'+i.parentCtrl.$translate.instant("customized.slsp.details")+"</span></md-card-content>":i.getPatronGrp&&(e+='<a href="'+i.detailsBaseEdu+'" target="_blank">\n <md-card-content flex="100" class="bar layout-align-left-center layout-row">\n <prm-icon class="rotate-20 margin-right-small" icon-type="svg" svg-icon-set="primo-ui" icon-definition="pencil">\n <svg id="pencil_cache64" viewBox="0 0 24 24" y="696" xmlns="http://www.w3.org/2000/svg" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">\n <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>\n </svg>\n </prm-icon>\n <span class="md-subhead" >'+i.parentCtrl.$translate.instant("customized.personal.details")+'</span>\n </md-card-content>\n </a>\n <a href="'+i.detailsBaseReg+'" target="_blank">\n <md-card-content flex="100" class="bar layout-align-left-center layout-row">\n <prm-icon class="rotate-20 margin-right-small" icon-type="svg" svg-icon-set="primo-ui" icon-definition="account-card-details">\n <svg id="account-card-details_cache63" viewBox="0 0 24 24" y="1176" xmlns="http://www.w3.org/2000/svg" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">\n <path d="M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M14,6V7H22V6H14M14,8V9H21.5L22,9V8H14M14,10V11H21V10H14M8,13.91C6,13.91 2,15 2,17V18H14V17C14,15 10,13.91 8,13.91M8,6A3,3 0 0,0 5,9A3,3 0 0,0 8,12A3,3 0 0,0 11,9A3,3 0 0,0 8,6Z"></path>\n </svg>\n </prm-icon>\n <span class="md-subhead" >'+i.parentCtrl.$translate.instant("customized.libcard.number")+"</span>\n </md-card-content>\n </a>"),e+="</div>";var t=angular.element(e)[0],r=n[0].parentElement.children[1].children[0];r.insertBefore(t,r.children[1])},i.persInfoNotAv=function(){i.test+=1,i.test<10&&setTimeout(function(){return i.testPersonalInfo().then(i.persInfoAv,i.persInfoNotAv)},500)},0===i.test&&i.testPersonalInfo().then(i.persInfoAv,i.persInfoNotAv)}]).component("prmPersonalInfoAfter",{bindings:{parentCtrl:"<"},controller:"EditPersonalDetailsController"})},{}],37:[function(e,t,r){"use strict";e("./js/slsp-ill-signin-order-alert.module.js"),t.exports="slspIllSigninOrderAlert"},{"./js/slsp-ill-signin-order-alert.module.js":38}],38:[function(e,t,r){"use strict";angular.module("slspIllSigninOrderAlert",[]).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<e.length?t.addClass("alert"):t.removeClass("alert")}}]).component("almaHowovpAfter",{bindings:{parentCtrl:"<"},controller:"AlertMsgController",template:'<div style="display:none">{{$ctrl.getAlert()}}</div>'})},{}],39:[function(e,t,r){"use strict";e("./js/epfl-ill-signin-order-logged-out.module.js"),t.exports="epflIllSigninOrderLoggedOut"},{"./js/epfl-ill-signin-order-logged-out.module.js":40}],40:[function(e,t,r){"use strict";angular.module("epflIllSigninOrderLoggedOut",[]).service("userService",["jwtHelper",function(n){this.get_ip=function(){var e=sessionStorage.getItem("primoExploreJwt");if(e)return n.decodeToken(e).userIp},this.isGuest=function(){var e=sessionStorage.getItem("primoExploreJwt");if(!e)return!0;var t=n.decodeToken(e);return!("GUEST"!==t.userGroup?t.userName:"")},this.isEpflIP=function(){var e=sessionStorage.getItem("primoExploreJwt");if(e){var t=n.decodeToken(e).userIp;if(t){var r=t.match(/128\.17([89])\.(\d{1,3})\./);if(r&&("8"==r[1]||128<=parseInt(r[2])))return!0}return!1}}}]).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")}]).component("prmUserAreaExpandableAfter",{bindings:{parentCtrl:"<"},controller:"IllBoxController",template:""})},{}]},{},[20]);
+!function l(o,s,a){function c(t,e){if(!s[t]){if(!o[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(p)return p(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=s[t]={exports:{}};o[t][0].call(i.exports,function(e){return c(o[t][1][e]||e)},i,i.exports,l,o,s,a)}return s[t].exports}for(var p="function"==typeof require&&require,e=0;e<a.length;e++)c(a[e]);return c}({1:[function(e,t,r){"use strict";var n=angular.module("briefviewModule",["angularLoad"]);n.component("prmSearchResultAvailabilityLineAfter",e("./prm-search-result-availability-line-after/availabilityline.component.js")),n.component("prmPdfArticleLink",e("./prm-search-result-availability-line-after/pdf_article_link.component.js")),n.component("prmPublisherLink",e("./prm-search-result-availability-line-after/publisher_link.component.js")),n.component("prmCollectionLink",e("./prm-search-result-availability-line-after/collection_link.component.js"))},{"./prm-search-result-availability-line-after/availabilityline.component.js":2,"./prm-search-result-availability-line-after/collection_link.component.js":3,"./prm-search-result-availability-line-after/pdf_article_link.component.js":5,"./prm-search-result-availability-line-after/publisher_link.component.js":7}],2:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},template:'<prm-collection-link after-ctrl="$ctrl"></prm-collection-link>\n <prm-publisher-link after-ctrl="$ctrl"></prm-publisher-link>\n <prm-pdf-article-link after-ctrl="$ctrl"></prm-pdf-article-link>\n <prm-eth-search-result-availability-line-after after-ctrl="$ctrl"></prm-eth-search-result-availability-line-after>'}},{}],3:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./collection_link.controller.js"),template:'<div class="series_btn" ng-if="$ctrl.get_collection_url()">\r\n <a class="neutralized-button arrow-link-button md-button md-primoExplore-theme md-ink-ripple" href="{{$ctrl.collection_url}}" target="_blank"><span class="button-content"><span class="link_gray">{{ \'seriesLink\' | customTranslate }}</span> {{$ctrl.collection_title}}</span> <prm-icon link-arrow="" icon-type="svg" svg-icon-set="primo-ui" icon-definition="chevron-right"></prm-icon><div class="md-ripple-container" style=""></div></a>\r\n</div>\r\n'}},{"./collection_link.controller.js":4}],4:[function(e,t,r){"use strict";t.exports=["$filter","$http","userService",function(e,t,r){this.parentCtrl=this.afterCtrl.parentCtrl;var a=this;a.get_collection_url=function(){if(a.hasOwnProperty("collection_url"))return a.collection_url;try{var e=a.parentCtrl.result.pnx.display.series;if(!Array.isArray(e))throw new Error("Notice without series")}catch(e){return null}var t=!0,r=!1,n=void 0;try{for(var i,l=e[Symbol.iterator]();!(t=(i=l.next()).done);t=!0){var o=i.value.match(/\$\$Q(.*)\$\$Z(99\d{16})/);if(o){if(a.parentCtrl.$stateParams.lang)s="&lang="+a.parentCtrl.$stateParams.lang;else var s="";return a.collection_title=o[1],a.collection_url=window.location.origin+"/discovery/fulldisplay?vid="+a.parentCtrl.$stateParams.vid+"&tab="+a.parentCtrl.$stateParams.tab+"&docid=alma"+o[2]+"&context="+a.parentCtrl.$stateParams.context+s,a.collection_url}}}catch(e){r=!0,n=e}finally{try{!t&&l.return&&l.return()}finally{if(r)throw n}}}}]},{}],5:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./pdf_article_link.controller.js"),template:'<div class="pdf_btn" ng-if="$ctrl.check_doi() && $ctrl.is_epfl_IP">\r\n <a href="{{$ctrl.pdf_link}}" target="_blank"><prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="pdf"></prm-icon> {{ \'pdfAccess\' | customTranslate }}</a>\r\n</div>\r\n'}},{"./pdf_article_link.controller.js":6}],6:[function(e,t,r){"use strict";t.exports=["$filter","$http","userService",function(e,t,r){this.parentCtrl=this.afterCtrl.parentCtrl;var s=this;function a(e){var t=e.match(/10\.\d{4,9}\/[-._;()/:A-Z0-9]+/i);if(t)return t[0]}s.is_epfl_IP=r.isEpflIP(),s.get_doi=function(){if(s.parentCtrl.hasOwnProperty("result")&&s.parentCtrl.result.hasOwnProperty("pnx")){var e=s.parentCtrl.result.pnx;if("addata"in e&&"doi"in e.addata&&a(e.addata.doi[0])&&e.control.hasOwnProperty("recordtype")&&"article"===e.control.recordtype[0])return a(e.addata.doi[0]);if("display"in e&&"identifier"in e.display){var t=!0,r=!1,n=void 0;try{for(var i,l=e.display.identifier[Symbol.iterator]();!(t=(i=l.next()).done);t=!0){var o=i.value;if(a(o))return a(o)}}catch(e){r=!0,n=e}finally{try{!t&&l.return&&l.return()}finally{if(r)throw n}}}}},s.check_doi=function(){return s.hasOwnProperty("doi")||s.parentCtrl.hasOwnProperty("result")&&s.parentCtrl.result.hasOwnProperty("pnx")&&(s.get_doi()?(s.doi=s.get_doi(),s.set_url_pdf()):s.doi=null),!!s.hasOwnProperty("pdf_link")},s.set_url_pdf=function(){var e="https://public-api.thirdiron.com/public/v1/libraries/183/articles/doi/"+s.doi+"?access_token=adc54dee-c6a6-4b99-a917-2ed400f1f2d3";t({method:"GET",url:e}).then(function(e){if(200===e.status){try{var t=e.data.data.fullTextFile}catch(e){t=""}0<t.length&&(s.pdf_link=t)}},function(){s.doi=null})}}]},{}],7:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./publisher_link.controller.js"),template:'<div class="layout-row" ng-if="$ctrl.is_publisher_url() && $ctrl.is_epfl_IP">\r\n <prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="link" ></prm-icon> <a class="neutralized-button arrow-link-button md-button md-primoExplore-theme md-ink-ripple" href="{{$ctrl.publisher_url}}" target="_blank"><span class="availability-status not_restricted" translate="delivery.code.not_restricted"></span> <prm-icon link-arrow="" icon-type="svg" svg-icon-set="primo-ui" icon-definition="chevron-right"></prm-icon><div class="md-ripple-container" style=""></div></a>\r\n</div>\r\n'}},{"./publisher_link.controller.js":8}],8:[function(e,t,r){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.exports=["$filter","$http","userService","$element",function(e,n,t,i){this.parentCtrl=this.afterCtrl.parentCtrl;var l=this;l.is_epfl_IP=t.isEpflIP(),l.is_pc=function(){return"PC"===l.parentCtrl.result.context},l.is_ebook=function(){return l.parentCtrl.result.pnx.control.hasOwnProperty("recordtype")?-1!==l.parentCtrl.result.pnx.control.recordtype[0].indexOf("book"):!!l.parentCtrl.result.pnx.display.hasOwnProperty("type")&&-1!==l.parentCtrl.result.pnx.display.type[0].toLowerCase().indexOf("book")},l.is_article=function(){return!!l.parentCtrl.result.pnx.control.hasOwnProperty("recordtype")&&-1!==l.parentCtrl.result.pnx.control.recordtype[0].indexOf("article")},l.is_data_available=function(){return Boolean(l.parentCtrl.result&&l.parentCtrl.result.pnx&&l.parentCtrl.result.delivery)},l.is_fulltext=function(){var e=l.parentCtrl.result.delivery.availability;return-1!==e.indexOf("fulltext")||-1!==e.indexOf("not_restricted")},l.is_publisher_url=function(){if(!l.checked&&l.is_data_available()&&l.is_epfl_IP&&(l.is_ebook()||l.is_article()))if(!l.parentCtrl.isFullView&&l.is_fulltext()&&l.is_pc()){l.checked=!0;var e=window.location.origin+"/primaws/rest/pub/pcDelivery/"+l.parentCtrl.result.pnx.control.recordid[0]+"?vid="+l.parentCtrl.$stateParams.vid;n.post(e,{doc:l.parentCtrl.result}).then(function(e){l.publisher_url=e.data.delivery.electronicServices[0].serviceUrl,l.place_to_insert=i[0].parentElement.parentElement.children[0].replaceWith("")})}else if(l.parentCtrl.isFullView||!l.is_fulltext()||l.is_pc())if(l.parentCtrl.isFullView&&l.parentCtrl.result.delivery.GetIt1&&"object"===o(l.parentCtrl.result.delivery.GetIt1)){l.checked=!0;var t=l.parentCtrl.result.delivery.availability.indexOf("not_restricted");-1!==t&&(l.publisher_url=l.parentCtrl.result.delivery.GetIt1[0].links[t].link,l.place_to_insert=i[0].parentElement.parentElement.children[0].replaceWith(""))}else l.is_fulltext()||(l.checked=!0);else{l.checked=!0;var r=window.location.origin+"/primaws/rest/pub/edelivery/"+l.parentCtrl.result.pnx.control.recordid[0]+"?vid="+l.parentCtrl.$stateParams.vid;n.post(r,{doc:l.parentCtrl.result}).then(function(e){l.publisher_url=e.data.electronicServices[0].serviceUrl,l.place_to_insert=i[0].parentElement.parentElement.children[0].replaceWith("")})}return l.hasOwnProperty("publisher_url")},console.log(l)}]},{}],9:[function(e,t,r){"use strict";angular.module("databasesModule",["angularLoad"]).component("prmTreeNavAfter",e("./treenav.component.js"))},{"./treenav.component.js":10}],10:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$filter",function(e){}]}},{}],11:[function(e,t,r){"use strict";angular.module("customTranslateFilter",[]).filter("customTranslate",["$translate",function(r){return function(e){var t={costWarningScan:{fr:'<b><span class="bigfont" style="font-size:20px">Service payant:</span></b><b> les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:</b>',en:'<b><span class="bigfont" style="font-size:20px">Fee-based service:</span></b><b> EPFL employees and students can benefit from this service free of charge by using the form:</b>',de:'<b><span class="bigfont" style="font-size:20px">Kostenpflichtiger Service:</span></b><b> Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.</b>',it:'<b><span class="bigfont" style="font-size:20px">Servizio a pagamento:</span></b><b> I dipendenti e gli studenti dell\'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:</b>'},costWarningScanEPFL:{fr:"<b>Service gratuit pour les collaborateurs et les étudiants EPFL.</b>",en:"<b>Free of charge for EPFL staff and students.</b>",de:"<b>Service für Mitarbeiter und Studenten der EPFL kostenlos</b>",it:"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.<b>"},costWarningNetworkLoan:{fr:"<b>Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.</b>",en:"<b>Free of charge if withdrawal at the EPFL Library.</b>",de:"<b>Service bei Abholung in der EPFL-Bibliothek kostenlos.</b>",it:"<b>Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL</b>"},costWarningPEB:{fr:"<b>Service gratuit pour les collaborateurs et les étudiants de l’EPFL.</b> 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:"<b>Free of charge for EPFL staff and students.</b> 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:"<b>Kostenloser Service für Mitarbeiter und Studenten der EPFL.</b> 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:"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.</b> 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 <a target="_blank" href="https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/">VPN</a> EPFL.',en:'Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a>.',de:'Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a> abrufbar.',it:'Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell\'EPFL e a distanza tramite <a target="_blank" href="https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/">VPN</a> EPFL.'},feedbackLinkMSG:{fr:"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.",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."},pdfAccess:{fr:"Accès direct au pdf",en:"Direct access to the pdf",de:"Direct access to the pdf",it:"Direct access to the pdf"},seriesLink:{fr:"Collection :",en:"Serie:",de:"Serie:",it:"Serie:"}};return["en","fr","it","de"].includes(r.use())?t[e][r.use()]:t[e].fr}}])},{}],12:[function(e,t,r){"use strict";angular.module("trustHtmlFilter",[]).filter("trustHtml",["$sce",function(t){return function(e){return t.trustAsHtml(e)}}])},{}],13:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},template:'<div><prm-epfl-alma-viewit-after after-ctrl="$ctrl"></prm-epfl-alma-viewit-after>\n <prm-eth-alma-viewit-after after-ctrl="$ctrl"></prm-eth-alma-viewit-after></div>'}},{}],14:[function(e,t,r){"use strict";t.exports={bindings:{afterCtrl:"<"},controller:e("./epfl_almaviewit.controller.js"),template:'<div class="bar alert-bar" ng-if="$ctrl.no_report_link==false && $ctrl.is_epfl_IP==false">\r\n <div ng-bind-html="$ctrl.get_txt()"></div>\r\n <md-icon ng-if="::($ctrl.iconDefinition && !$ctrl.isCustom && !$ctrl.isEmailMode())" md-svg-icon="primo-ui:open-in-new" role="presentation" class="md-primoExplore-theme"></md-icon\r\n <div class="feedbacklink"> <a href="{{ ::$ctrl.feedbackLink }}"><md-icon md-svg-icon="primo-ui:envelope-outline" role="presentation" class="md-primoExplore-theme"></md-icon> {{ \'feedbackLink\' | customTranslate }}</a></div>\r\n</div>\r\n<div class="feedbacklink" ng-if="$ctrl.no_report_link==false && $ctrl.is_epfl_IP==true">\r\n <a href="{{ ::$ctrl.feedbackLink }}"><md-icon md-svg-icon="primo-ui:envelope-outline" role="presentation" class="md-primoExplore-theme"></md-icon> {{ \'feedbackLink\' | customTranslate }}</a>\r\n</div>\r\n'}},{"./epfl_almaviewit.controller.js":15}],15:[function(e,t,r){"use strict";t.exports=["$filter","userService",function(e,t){this.parentCtrl=this.afterCtrl.parentCtrl;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){r.is_epfl_IP=t.isEpflIP(),r.user_ip=t.get_ip();var n=r.parentCtrl.item.pnx.control.recordid[0],i="";r.parentCtrl.item.pnx.display.title&&0<r.parentCtrl.item.pnx.display.title.length&&(i=r.parentCtrl.item.pnx.display.title[0]);var l="";r.parentCtrl.item.pnx.display.creationdate&&0<r.parentCtrl.item.pnx.display.creationdate.length&&(l=r.parentCtrl.item.pnx.display.creationdate[0]);var o="";r.parentCtrl.item.pnx.display.creator&&0<r.parentCtrl.item.pnx.display.creator.length&&(o=r.parentCtrl.item.pnx.display.creator.join(", "));var s="";r.parentCtrl.item.pnx.display.type&&0<r.parentCtrl.item.pnx.display.type.length&&(s=r.parentCtrl.item.pnx.display.type[0]);var a="";if(r.parentCtrl.item.pnx.display.identifier&&0<r.parentCtrl.item.pnx.display.identifier.length){var c=r.parentCtrl.item.pnx.display.identifier[0];-1<c.indexOf("<b>ISBN")||-1<c.indexOf("<b>ISSN")?a=r.parentCtrl.item.pnx.display.identifier.join(", ").replace(/<\/b>/g,"").replace(/<b>/g,""):-1<c.indexOf("ISBN")?a="ISBN: "+c.substring(c.indexOf("$$V")+3):-1<c.indexOf("ISSN")&&(a="ISSN: "+c.substring(c.indexOf("$$V")+3))}var p=navigator.userAgent,u="Access problem "+n+' - "'+i+'"',d=e("customTranslate")("feedbackLinkMSG")+"\n\n****\nTitle: "+i+"\nAuthor: "+o+"\nYear: "+l+"\nType: "+s+"\nDocId: "+n+"\nIdentifier: "+a+"\nUser_agent: "+p+"\nUserIP: "+r.user_ip+"\nRange EPFL: "+r.is_epfl_IP+"\n****";r.feedbackLink="mailto:eresources@epfl.ch?subject="+encodeURIComponent(u)+"&body="+encodeURIComponent(d)+"&Content-Type=text/html"}}]},{}],16:[function(e,t,r){"use strict";var n=angular.module("fullviewModule",["angularLoad"]);n.component("prmAlmaViewitAfter",e("./almaviewit.component.js")),n.component("prmEpflAlmaViewitAfter",e("./epfl_almaviewit.component.js"))},{"./almaviewit.component.js":13,"./epfl_almaviewit.component.js":14}],17:[function(e,t,r){"use strict";t.exports={active:!0,txt:{fr:'<div class="info-symbol" style="text-align:left">\n <div><p>Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : <a class="md-primoExplore-theme" href="https://slsp.ch/fr">swisscovery</a></p></div>\n </div>',en:'<div class="info-symbol" style="text-align:left">\n <div><p>The NEBIS network ended on December 7, 2020. It has been replaced by <a class="md-primoExplore-theme" href="https://slsp.ch/it">swisscovery</a>: a new and wider network.</p></div>\n </div>',de:'<div class="info-symbol" style="text-align:left">\n <div><p>Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: <a class="md-primoExplore-theme" href="https://slsp.ch/de">swisscovery</a></p></div>\n </div>',it:'<div class="info-symbol" style="text-align:left">\n <div><p>La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: <a class="md-primoExplore-theme" href="https://slsp.ch/it">swisscovery</a></p></div>\n </div>'},begin:"2020-01-04T00:00:00Z",end:"2021-03-31T12:00:00Z"}},{}],18:[function(e,t,r){"use strict";var n=angular.module("homepageModule",["angularLoad"]);n.component("prmSearchBarAfter",e("./searchbar.component.js")),n.component("prmMainMenuAfter",e("./mainmenu.component.js")),n.component("prmTopbarAfter",e("./topbar.component.js"))},{"./mainmenu.component.js":19,"./searchbar.component.js":20,"./topbar.component.js":21}],19:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$location","$translate","$element",function(e,t,r){var n=this;this.$doCheck=function(){if("complete"===document.readyState){try{var e=document.querySelector("[translate='mainmenu.label.db']").parentElement}catch(e){n.modified=!1}e&&(e.removeAttribute("target"),e.setAttribute("aria-label","Databases"),n.modified=!0)}}}]}},{}],20:[function(n,e,t){"use strict";e.exports={bindings:{parentCtrl:"<"},template:'<div class="epfl-alert-message" ng-if="ctrl.active" ng-bind-html="ctrl.get_txt() "></div>',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)<e&&e<new Date(r.alert.end)&&(r.active=!0)}r.get_txt=function(){var e=["en","fr","it","de"].includes(t.use())?t.use():"en";return r.active?r.alert.txt[e]:""},r.parentCtrl.showTabsAndScopes=!0}]}},{"./alert.js":17}],21:[function(e,t,r){"use strict";t.exports={bindings:{parentCtrl:"<"},controllerAs:"ctrl",controller:["$location","$translate","$element",function(e,t,r){this.url=window.location.href.split("?")[0]+"?vid="+this.parentCtrl.configurationUtil.vid+"&lang="+t.use()}],template:"<div class=\"main-title\"><h1><a href=\"{{ ::ctrl.url }}\">{{ 'mainTitle' | customTranslate }}</a></h1><h2>{{ 'subTitle' | customTranslate }}</h2></div>"}},{}],22:[function(e,t,r){"use strict";e("./filters/custom_translate.filter.js"),e("./filters/trust_html.filter.js"),e("./slsp/slsp-courier-info"),e("./slsp/slsp-ill-signin-order-logged-out"),e("./slsp/slsp-ill-signin-order-alert"),e("./slsp/slsp-edit-personal-details"),e("./slsp/prm-locations-after"),e("./slsp/prm-location-items-after"),e("./slsp/slsp-archives-htgi"),e("./slsp/slsp-archives-viewit"),e("./briefview"),e("./homepage"),e("./fullView"),e("./databases");angular.module("viewCustom",["angularLoad","customTranslateFilter","trustHtmlFilter","epflCourierInfo","epflIllSigninOrderLoggedOut","slspIllSigninOrderAlert","epflEditPersonalDetails","ethLocationsAfterModule","ethLocationItemsAfterModule","slspArchivesHtgi","slspArchivesViewit","briefviewModule","homepageModule","fullviewModule","databasesModule"])},{"./briefview":1,"./databases":9,"./filters/custom_translate.filter.js":11,"./filters/trust_html.filter.js":12,"./fullView":16,"./homepage":18,"./slsp/prm-location-items-after":23,"./slsp/prm-locations-after":28,"./slsp/slsp-archives-htgi":31,"./slsp/slsp-archives-viewit":33,"./slsp/slsp-courier-info":35,"./slsp/slsp-edit-personal-details":37,"./slsp/slsp-ill-signin-order-alert":39,"./slsp/slsp-ill-signin-order-logged-out":41}],23:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationItemsAfterModule=void 0;var n=e("./eth-location-items-filter/eth-location-items-filter.module"),i=e("./slsp-i-button/epfl-i-button.module"),l=r.ethLocationItemsAfterModule=angular.module("ethLocationItemsAfterModule",[]).component("prmLocationItemsAfter",{bindings:{parentCtrl:"<"},template:'<eth-location-items-filter-component after-ctrl="$ctrl"></eth-location-items-filter-component><epfl-i-button-component after-ctrl="$ctrl"></epfl-i-button-component>'});l.requires.push(n.ethLocationItemsFilterModule.name),l.requires.push(i.epflIButtonModule.name)},{"./eth-location-items-filter/eth-location-items-filter.module":25,"./slsp-i-button/epfl-i-button.module":27}],24:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),this.$timeout=e,this.$scope=t}(r.ethLocationItemsFilterController=(n(l,[{key:"$onInit",value:function(){var n=this;try{this.parentCtrl=this.afterCtrl.parentCtrl,this.$scope.$watch("this.$ctrl.parentCtrl.loc.location.librarycodeTranslation",function(e,t,r){!r.$ctrl.parentCtrl.isLocationsFilterVisible&&e&&""!=e&&n.$scope.$watch("this.$ctrl.parentCtrl.loc.items",function(e){angular.isArray(e)&&1<e.length&&n.$timeout(function(){r.$ctrl.parentCtrl.isLocationsFilterVisible=!0},0)})},!0)}catch(e){console.error("***SLSP*** an error occured: ethLocationItemsFilterController\n\n"),console.error(e.message)}}}]),l)).$inject=["$timeout","$scope"]},{}],25:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationItemsFilterModule=void 0;var n=e("./eth-location-items-filter.controller");r.ethLocationItemsFilterModule=angular.module("ethLocationItemsFilterModule",[]).controller("ethLocationItemsFilterController",n.ethLocationItemsFilterController).component("ethLocationItemsFilterComponent",{bindings:{afterCtrl:"<"},controller:"ethLocationItemsFilterController"})},{"./eth-location-items-filter.controller":24}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l)}(r.epflIButtonController=(n(l,[{key:"$onInit",value:function(){try{this.parentCtrl=this.afterCtrl.parentCtrl,this.getLibrary=function(){return this.parentCtrl.currLoc?this.parentCtrl.currLoc.location.librarycodeTranslation:""},this.biblinkText="Library",this.biblinkBase="https://slsp.ch/libraries",this.getLibraryUrl=function(){return this.parentCtrl.loc&&"E02"===this.parentCtrl.loc.location.libraryCode?"https://go.epfl.ch/library":this.biblinkBase},this.view=this.parentCtrl.configurationUtil.vid.replace(":","-")}catch(e){console.error("***SLSP*** an error occured: slspIButtonController\n\n"),console.error(e.message)}}}]),l)).$inject=[]},{}],27:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.epflIButtonModule=void 0;var n=e("./epfl-i-button.controller");r.epflIButtonModule=angular.module("epflIButtonModule",[]).controller("epflIButtonController",n.epflIButtonController).component("epflIButtonComponent",{bindings:{afterCtrl:"<"},controller:"epflIButtonController",template:'<div layout="row" class="LibInfo" layout-align="start center">\r\n <span class="md-subhead">\r\n <a ng-href="{{ $ctrl.getLibraryUrl() }}" target="_blank"><img width="20px" ng-src="/discovery/custom/{{ $ctrl.view }}/img/information.png" />{{ $ctrl.getLibrary() }}</a>\r\n </span>\r\n</div>\r\n'})},{"./epfl-i-button.controller":26}],28:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationsAfterModule=void 0;var n=e("./eth-locations-filter/eth-locations-filter.module");(r.ethLocationsAfterModule=angular.module("ethLocationsAfterModule",[]).component("prmLocationsAfter",{bindings:{parentCtrl:"<"},template:'<eth-locations-filter-component after-ctrl="$ctrl"></eth-locations-filter-component>'})).requires.push(n.ethLocationsFilterModule.name)},{"./eth-locations-filter/eth-locations-filter.module":30}],29:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e};function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),this.$timeout=e,this.$scope=t}(r.ethLocationsFilterController=(n(l,[{key:"$onInit",value:function(){var n=this;try{this.parentCtrl=this.afterCtrl.parentCtrl,this.$scope.$watch("this.$ctrl.parentCtrl.locations[0].location.librarycodeTranslation",function(e,t,r){!r.$ctrl.parentCtrl.isLocationsFilterVisible&&e&&""!=e&&n.$timeout(function(){r.$ctrl.parentCtrl.isLocationsFilterVisible=!0},0)},!0)}catch(e){console.error("***ETH*** an error occured: ethLocationsFilterController\n\n"),console.error(e.message)}}}]),l)).$inject=["$timeout","$scope"]},{}],30:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ethLocationsFilterModule=void 0;var n=e("./eth-locations-filter.controller");r.ethLocationsFilterModule=angular.module("ethLocationsFilterModule",[]).controller("ethLocationsFilterController",n.ethLocationsFilterController).component("ethLocationsFilterComponent",{bindings:{afterCtrl:"<"},controller:"ethLocationsFilterController"})},{"./eth-locations-filter.controller":29}],31:[function(e,t,r){"use strict";e("./js/slsp-archives-htgi.module.js"),t.exports="slspArchivesHtgi"},{"./js/slsp-archives-htgi.module.js":32}],32:[function(e,t,r){"use strict";angular.module("slspArchivesHtgi",[]).controller("ArchivesHtgiController",[function(){this.$onInit=function(){try{if(!this.parentCtrl.item.pnx.display.source||0===this.parentCtrl.item.pnx.display.source.length)return;if(this.source=this.parentCtrl.item.pnx.display.source[0],"ETH_MaxFrischArchiv"===this.source||"ETH_ThomasMannArchiv"===this.source){document.getElementById("full-view-container").classList.add("slsp-archives-hide");var e=this.parentCtrl.item.pnx.control.originalsourceid[0],t=e.substring(e.lastIndexOf(":")+1);"ETH_ThomasMannArchiv"===this.source?this.url="http://www.online.tma.ethz.ch/home/#/content/"+t:"ETH_MaxFrischArchiv"===this.source&&(this.url="http://maxfrischarchiv-online.ethz.ch/home/#/content/"+t)}}catch(e){console.error("***SLSP*** an error occured: ArchivesHtgiController\n\n"),console.error(e.message)}}}]).component("almaHtgiSvcAfter",{bindings:{parentCtrl:"<"},controller:"ArchivesHtgiController",template:'\n <div class="slsp-archives" ng-if="$ctrl.url">\n <md-list layout="column" class="separate-list-items md-primoExplore-theme layout-column" role="list">\n <md-list-item role="listitem" ng-href="{{$ctrl.url}}" target="_blank">\n <span>{{(\'customized.archives.\' + $ctrl.source + \'.linktext\' | translate)}}</span>\n <span>{{$ctrl.label}}</span>\n <div class="md-secondary">\n <prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new" class="layout-margin"/>\n </div>\n </md-list-item>\n </md-list>\n <div ng-if="$ctrl.source === \'ETH_ThomasMannArchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_ThomasMannArchiv.text1">No request possible. The digitized item can be consulted in the Thomas Mann Archives reading room upon advance registration (</span>\n <a target="_blank" rel="noopener" ng-href="https://tma.ethz.ch/utils/kontakt.html">\n <span translate="customized.archives.ETH_ThomasMannArchiv.linktext2">Contact</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_ThomasMannArchiv.text2">).</span>\n </div>\n </div>\n <div ng-if="$ctrl.source === \'ETH_MaxFrischArchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_MaxFrischArchiv.text1">Informationen zu Bestellung und Benutzung siehe</span>\n <a target="_blank" rel="noopener" ng-href="http://maxfrischarchiv-online.ethz.ch/home/#/manual">\n <span translate="customized.archives.ETH_MaxFrischArchiv.linktext2">Bedienungshinweise</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_MaxFrischArchiv.text2">.</span>\n </div>\n </div>\n </div>\n '})},{}],33:[function(e,t,r){"use strict";e("./js/slsp-archives-viewit.module.js"),t.exports="slspArchivesViewit"},{"./js/slsp-archives-viewit.module.js":34}],34:[function(e,t,r){"use strict";angular.module("slspArchivesViewit",[]).component("prmEthSearchResultAvailabilityLineAfter",{bindings:{afterCtrl:"<"},controller:"ArchivesAvailabilityLineController"}).component("prmEthAlmaViewitAfter",{bindings:{afterCtrl:"<"},controller:"ArchivesViewitController",template:'\n <div class="slsp-archives" ng-if="$ctrl.url">\n <md-list layout="column" class="separate-list-items md-primoExplore-theme layout-column" role="list">\n <md-list-item role="listitem" ng-href="{{$ctrl.url}}" target="_blank">\n <span>{{(\'customized.archives.\' + $ctrl.source + \'.linktext\' | translate)}}</span>\n <span>{{$ctrl.label}}</span>\n <div class="md-secondary">\n <prm-icon icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new" class="layout-margin"/>\n </div>\n </md-list-item>\n </md-list>\n <div ng-if="$ctrl.source === \'ETH_Hochschularchiv\'" class="slsp-archives-additional-hint">\n <div>\n <span translate="customized.archives.ETH_Hochschularchiv.text1">Informationen zu Bestellung und Benutzung siehe</span>\n <a target="_blank" rel="noopener" ng-href="http://archivdatenbank-online.ethz.ch/hsa/#/manual">\n <span translate="customized.archives.ETH_Hochschularchiv.linktext2">Bedienungshinweise</span>\n <prm-icon external-link icon-type="svg" svg-icon-set="primo-ui" icon-definition="open-in-new"></prm-icon>\n </a>\n <span translate="customized.archives.ETH_Hochschularchiv.text2">.</span>\n </div>\n </div>\n </div>\n '}).controller("ArchivesViewitController",["$translate",function(r){this.parentCtrl=this.afterCtrl.parentCtrl,this.$onInit=function(){try{if(!this.parentCtrl.item.pnx.display.source||0===this.parentCtrl.item.pnx.display.source.length)return;if(this.source=this.parentCtrl.item.pnx.display.source[0],"ETH_Hochschularchiv"===this.source){if(this.parentCtrl.item.delivery.GetIt1&&0<this.parentCtrl.item.delivery.GetIt1.length&&this.parentCtrl.item.delivery.GetIt1[0].links&&0<this.parentCtrl.item.delivery.GetIt1[0].links.length){if(0<this.parentCtrl.item.delivery.GetIt1[0].links.filter(function(e){return!(!e.isLinktoOnline||""===e.link)}).length)return;r("nui.getit.service_howtogetit").then(function(e){var t=document.getElementById("fullView");angular.element(t.querySelector("h4[translate='nui.getit.service_viewit']")).text(e),angular.element(t.querySelector("#services-index span[translate='nui.getit.service_viewit']")).text(e)})}document.getElementById("full-view-container").classList.add("slsp-archives-hide");var e=this.parentCtrl.item.pnx.control.originalsourceid[0],t=e.substring(e.lastIndexOf(":")+1);"ETH_Hochschularchiv"===this.source&&(this.url="http://archivdatenbank-online.ethz.ch/hsa/#/content/"+t)}}catch(e){console.error("***SLSP*** an error occured: ArchivesViewitController\n\n"),console.error(e.message)}}}]).controller("ArchivesAvailabilityLineController",["$translate",function(r){this.$onInit=function(){var t=this;try{if(this.parentCtrl=this.afterCtrl.parentCtrl,this.changeButton=!1,!this.parentCtrl.result.pnx.display.source||0===this.parentCtrl.result.pnx.display.source.length)return;if(this.source=this.parentCtrl.result.pnx.display.source[0],"ETH_Hochschularchiv"===!this.source)return;if(!this.parentCtrl.result.delivery.GetIt1||0==this.parentCtrl.result.delivery.GetIt1.length||!this.parentCtrl.result.delivery.GetIt1[0].links||0==this.parentCtrl.result.delivery.GetIt1[0].links.length)return;if(0===this.parentCtrl.result.delivery.GetIt1[0].links.filter(function(e){return!(!e.isLinktoOnline||""===e.link)}).length){r("delivery.code.no_inventory").then(function(e){t.changeButton=!0,t.changeButtonText=e});var e=this.parentCtrl.$element[0];e&&e.classList.add("slsp-hsa-no-online")}}catch(e){console.error("***SLSP*** an error occured: ArchivesAvailabilityLineController\n\n"),console.error(e.message)}},this.$doCheck=function(){try{if(this.changeButton){var e=this.parentCtrl.$element[0].querySelector(".availability-status");angular.element(e)&&0<angular.element(e).length&&(angular.element(e).html(this.changeButtonText),this.changeButton=!1,this.changeButtonText="")}}catch(e){console.error("***ETH*** an error occured: ArchivesAvailabilityLineController $doCheck\n\n"),console.error(e.message)}}}])},{}],35:[function(e,t,r){"use strict";e("./js/epfl-courier-info.module.js"),t.exports="slspCourierInfo"},{"./js/epfl-courier-info.module.js":36}],36:[function(e,t,r){"use strict";angular.module("epflCourierInfo",[]).controller("CourierInfoController",["$filter","$element",function(o,e,t,r,n){var s=this;s.form=e[0].parentElement,s.$doCheck=function(){var e=!1,t=2;if(void 0===s.form.children[0].children[1]||void 0===s.form.children[0].children[1].children[0]&&"costWarningPEB"!=s.typeFeeAlert()?void 0!==s.form.children[0].children[0]&&void 0!==s.form.children[0].children[0].children[0]&&(e=s.form.children[0].children[0].children[0],t=3):(e=s.form.children[0].children[1].children[0],"costWarningPEB"==s.typeFeeAlert()&&(t=3)),e&&e.children.length==t&&1<e.children.length||s.hasOwnProperty("currentTypeFeeAlert")&&s.currentTypeFeeAlert!=s.typeFeeAlert()){s.currentTypeFeeAlert=s.typeFeeAlert();var r='<div class="courier-info bar alert-bar"><p>'+s.getFeeAlert()+"</p>";if("costWarningScan"==s.typeFeeAlert()){var n=o("customTranslate")("illButton");if(s.get_peb_button())var i="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 i="javascript:(function() {window.location.href = window.location.origin + '/discovery/blankIll?vid="+s.parentCtrl.vid+"'})()";r+='<p><span class="button-confirm md-button md-primoExplore-theme md-ink-ripple" onclick="'+i+'" ">'+n+"</span></p>"}r+='<p><a href="'+s.parentCtrl.$translate.instant("customize.fullview.feesUrl")+'" target="_blank">'+s.parentCtrl.$translate.instant("customize.fullview.feesLinkText")+"</a></p></div>";var l=angular.element(r)[0];e.children.length==t?e.insertBefore(l,e.children[t-1]):e.children[e.children.length-2].replaceWith(l)}},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<e.length;t++)if("pickupInstitution"==e[t].key){e[t].options.sort(function(e,t){var r=["41SLSP_EPF","41SLSP_EPFL"];return(e=r.indexOf(e.value))==(t=r.indexOf(t.value))?0:e<t?1:-1}),s.pickupLocationsListOrdered=!0}return e}}),s.isEPFL=function(){return!!(s.parentCtrl.requestService&&0<s.parentCtrl.requestService._service["link-to-service"].indexOf("institution=41SLSP_EPF"))},s.linkBase="https://slsp.ch/fees",s.typeFeeAlert=function(){return["almaRequest.header","almaRequestOther.header","almaItemRequest.header"].includes(s.parentCtrl.requestHeader)?"costWarningNetworkLoan":["almaDigitization.header","almaDigitizationOther.header","almaItemDigitization.header"].includes(s.parentCtrl.requestHeader)?s.isEPFL()?"costWarningScanEPFL":"costWarningScan":"almaResourceSharing.header"===s.parentCtrl.requestHeader?"costWarningPEB":"costWarningGeneral"},s.getFeeAlert=function(){return o("customTranslate")(s.typeFeeAlert())},s.get_peb_button=function(){for(var e=document.getElementsByTagName("span"),t=0,r=e.length;t<r;t++)if("AlmaResourceSharing"===e[t].getAttribute("translate")&&-1===e[t].parentNode.className.indexOf("greenbutton"))return e[t]},s.click_peb=function(){var e=s.get_peb_button();e?e.click():window.location.href=window.location.origin+"/discovery/blankIll?vid="+s.parentCtrl.vid}}]).component("prmRequestAfter",{bindings:{parentCtrl:"<"},controller:"CourierInfoController"})},{}],37:[function(e,t,r){"use strict";e("./js/epfl-edit-personal-details.module.js"),t.exports="epflEditPersonalDetails"},{"./js/epfl-edit-personal-details.module.js":38}],38:[function(e,t,r){"use strict";angular.module("epflEditPersonalDetails",[]).controller("EditPersonalDetailsController",["$scope","$element","$translate",function(e,n,t){var i=this,r="en",l=e.$root.$$childHead.$ctrl.userSessionManagerService;l&&(r=l.getInterfaceLanguage()),i.detailsBaseEdu="https://eduid.ch/web/change-account-data/2/?lang="+r,i.detailsBaseReg="https://registration.slsp.ch/library-card/?lang="+r,i.exclude=["STAFF","11","12","13","14","15","16","91","92"],i.grpA=["11","91","92"],i.grpB=["12","13","14","15","16"],i.getPatronGrp=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!i.exclude.includes(e)},i.grpLabelA=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!!i.grpA.includes(e)},i.grpLabelB=function(){if(void 0===i.parentCtrl.personalInfoService.personalInfo)return!1;var e=i.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;return!!i.grpB.includes(e)},i.test=0,i.testPersonalInfo=function(){return new Promise(function(e,t){(void 0!==i.parentCtrl.personalInfoService.personalInfo?e:t)()})},i.persInfoAv=function(){var e='<div class="btn-account">';i.grpLabelA()?e+='<md-card-content flex="100" class="bar courier-info layout-align-left-center layout-row"><span>'+i.parentCtrl.$translate.instant("customized.libraries.details")+"</span></md-card-content>":i.grpLabelB()?e+='<md-card-content flex="100" class="bar courier-info layout-align-left-center layout-row"><span>'+i.parentCtrl.$translate.instant("customized.slsp.details")+"</span></md-card-content>":i.getPatronGrp&&(e+='<a href="'+i.detailsBaseEdu+'" target="_blank">\n <md-card-content flex="100" class="bar layout-align-left-center layout-row">\n <prm-icon class="rotate-20 margin-right-small" icon-type="svg" svg-icon-set="primo-ui" icon-definition="pencil">\n <svg id="pencil_cache64" viewBox="0 0 24 24" y="696" xmlns="http://www.w3.org/2000/svg" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">\n <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>\n </svg>\n </prm-icon>\n <span class="md-subhead" >'+i.parentCtrl.$translate.instant("customized.personal.details")+'</span>\n </md-card-content>\n </a>\n <a href="'+i.detailsBaseReg+'" target="_blank">\n <md-card-content flex="100" class="bar layout-align-left-center layout-row">\n <prm-icon class="rotate-20 margin-right-small" icon-type="svg" svg-icon-set="primo-ui" icon-definition="account-card-details">\n <svg id="account-card-details_cache63" viewBox="0 0 24 24" y="1176" xmlns="http://www.w3.org/2000/svg" fit="" preserveAspectRatio="xMidYMid meet" focusable="false">\n <path d="M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M14,6V7H22V6H14M14,8V9H21.5L22,9V8H14M14,10V11H21V10H14M8,13.91C6,13.91 2,15 2,17V18H14V17C14,15 10,13.91 8,13.91M8,6A3,3 0 0,0 5,9A3,3 0 0,0 8,12A3,3 0 0,0 11,9A3,3 0 0,0 8,6Z"></path>\n </svg>\n </prm-icon>\n <span class="md-subhead" >'+i.parentCtrl.$translate.instant("customized.libcard.number")+"</span>\n </md-card-content>\n </a>"),e+="</div>";var t=angular.element(e)[0],r=n[0].parentElement.children[1].children[0];r.insertBefore(t,r.children[1])},i.persInfoNotAv=function(){i.test+=1,i.test<10&&setTimeout(function(){return i.testPersonalInfo().then(i.persInfoAv,i.persInfoNotAv)},500)},0===i.test&&i.testPersonalInfo().then(i.persInfoAv,i.persInfoNotAv)}]).component("prmPersonalInfoAfter",{bindings:{parentCtrl:"<"},controller:"EditPersonalDetailsController"})},{}],39:[function(e,t,r){"use strict";e("./js/slsp-ill-signin-order-alert.module.js"),t.exports="slspIllSigninOrderAlert"},{"./js/slsp-ill-signin-order-alert.module.js":40}],40:[function(e,t,r){"use strict";angular.module("slspIllSigninOrderAlert",[]).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<e.length?t.addClass("alert"):t.removeClass("alert")}}]).component("almaHowovpAfter",{bindings:{parentCtrl:"<"},controller:"AlertMsgController",template:'<div style="display:none">{{$ctrl.getAlert()}}</div>'})},{}],41:[function(e,t,r){"use strict";e("./js/epfl-ill-signin-order-logged-out.module.js"),t.exports="epflIllSigninOrderLoggedOut"},{"./js/epfl-ill-signin-order-logged-out.module.js":42}],42:[function(e,t,r){"use strict";angular.module("epflIllSigninOrderLoggedOut",[]).service("userService",["jwtHelper",function(n){this.get_ip=function(){var e=sessionStorage.getItem("primoExploreJwt");if(e)return n.decodeToken(e).userIp},this.isGuest=function(){var e=sessionStorage.getItem("primoExploreJwt");if(!e)return!0;var t=n.decodeToken(e);return!("GUEST"!==t.userGroup?t.userName:"")},this.isEpflIP=function(){var e=sessionStorage.getItem("primoExploreJwt");if(e){var t=n.decodeToken(e).userIp;if(t){var r=t.match(/128\.17([89])\.(\d{1,3})\./);if(r&&("8"==r[1]||128<=parseInt(r[2])))return!0}return!1}}}]).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")}]).component("prmUserAreaExpandableAfter",{bindings:{parentCtrl:"<"},controller:"IllBoxController",template:""})},{}]},{},[22]);
-{"version":3,"sources":["node_modules/browser-pack/_prelude.js","primo-explore/custom/src/js/briefview/index.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/availabilityline.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/collection_link.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/collection_link.controller.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/pdf_article_link.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/pdf_article_link.controller.js","primo-explore/custom/src/js/databases/index.js","primo-explore/custom/src/js/databases/treenav.component.js","primo-explore/custom/src/js/filters/custom_translate.filter.js","primo-explore/custom/src/js/filters/trust_html.filter.js","primo-explore/custom/src/js/fullView/almaviewit.component.js","primo-explore/custom/src/js/fullView/epfl_almaviewit.component.js","primo-explore/custom/src/js/fullView/epfl_almaviewit.controller.js","primo-explore/custom/src/js/fullView/index.js","primo-explore/custom/src/js/homepage/alert.js","primo-explore/custom/src/js/homepage/index.js","primo-explore/custom/src/js/homepage/mainmenu.component.js","primo-explore/custom/src/js/homepage/searchbar.component.js","primo-explore/custom/src/js/homepage/topbar.component.js","primo-explore/custom/src/js/main.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-after.module.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-filter/eth-location-items-filter.controller.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-filter/eth-location-items-filter.module.js","primo-explore/custom/src/js/slsp/prm-location-items-after/slsp-i-button/epfl-i-button.controller.js","primo-explore/custom/src/js/slsp/prm-location-items-after/slsp-i-button/epfl-i-button.module.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-after.module.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-filter/eth-locations-filter.controller.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-filter/eth-locations-filter.module.js","primo-explore/custom/src/js/slsp/slsp-archives-htgi/index.js","primo-explore/custom/src/js/slsp/slsp-archives-htgi/js/slsp-archives-htgi.module.js","primo-explore/custom/src/js/slsp/slsp-archives-viewit/index.js","primo-explore/custom/src/js/slsp/slsp-archives-viewit/js/slsp-archives-viewit.module.js","primo-explore/custom/src/js/slsp/slsp-courier-info/index.js","primo-explore/custom/src/js/slsp/slsp-courier-info/js/epfl-courier-info.module.js","primo-explore/custom/src/js/slsp/slsp-edit-personal-details/index.js","primo-explore/custom/src/js/slsp/slsp-edit-personal-details/js/epfl-edit-personal-details.module.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-alert/index.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-alert/js/slsp-ill-signin-order-alert.module.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-logged-out/index.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-logged-out/js/epfl-ill-signin-order-logged-out.module.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","briefview_module","angular","component","bindings","parentCtrl","template","afterCtrl","controller","$filter","$http","userService","this","vm","get_collection_url","hasOwnProperty","collection_url","series","result","pnx","display","Array","isArray","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","m","value","match","$stateParams","lang","collection_title","window","location","origin","vid","tab","context","err","return","parse_doi","txt","is_epfl_IP","isEpflIP","get_doi","addata","doi","control","recordtype","identifier","check_doi","set_url_pdf","url","method","then","response","status","pdf_link","data","fullTextFile","controllerAs","filter","$translate","trad","costWarningScan","fr","en","de","it","costWarningScanEPFL","costWarningNetworkLoan","costWarningPEB","mainTitle","subTitle","switchEduID","illButton","feedbackLink","vpnMSG","feedbackLinkMSG","pdfAccess","seriesLink","includes","use","$sce","trustAsHtml","get_txt","no_report_link","item","openaccess","oa","user_ip","get_ip","mmsId","recordid","title","creationdate","creator","join","type","ident","indexOf","replace","substring","userAgent","navigator","subject","body","encodeURIComponent","fullview_module","active","begin","end","homepage_module","$location","$element","$doCheck","document","readyState","elem","querySelector","parentElement","modified","removeAttribute","setAttribute","alert","d_now","Date","now","showTabsAndScopes","href","split","configurationUtil","_ethLocationItemsFilter","_epflIButton","ethLocationItemsAfterModule","requires","push","ethLocationItemsFilterModule","name","epflIButtonModule","ethLocationItemsFilterController","$timeout","$scope","_classCallCheck","_this","$watch","newValue","oldValue","scope","$ctrl","isLocationsFilterVisible","currentItemsArray","console","error","message","$inject","epflIButtonController","getLibrary","currLoc","librarycodeTranslation","biblinkText","biblinkBase","getLibraryUrl","loc","libraryCode","view","_ethLocationsFilter","ethLocationsAfterModule","ethLocationsFilterModule","ethLocationsFilterController","$onInit","source","getElementById","classList","add","sourceid","originalsourceid","guid","lastIndexOf","delivery","GetIt1","links","l","isLinktoOnline","link","translation","fullView","element","text","changeButton","changeButtonText","availabilityLine","button","html","$compile","$rootScope","form","formLength","children","typeFeeAlert","currentTypeFeeAlert","htmlwarning","getFeeAlert","get_peb_button","fn","instant","htmlcompiled","insertBefore","replaceWith","Object","defineProperty","configurable","get","getFilteredForm","key","options","sort","b","onTopInstitutions","isEPFL","requestService","_service","linkBase","requestHeader","allElements","getElementsByTagName","getAttribute","parentNode","className","click_peb","click","sms","$root","$$childHead","userSessionManagerService","getInterfaceLanguage","detailsBaseEdu","detailsBaseReg","exclude","grpA","grpB","getPatronGrp","personalInfoService","personalInfo","patron","patronstatus","registration","institution","patronstatuscode","grpLabelA","labelA","grpLabelB","labelB","test","testPersonalInfo","Promise","persInfoAv","persInfoNotAv","place_to_insert","setTimeout","getAlert","ga","almaHowToGetitService","reqAlert","_htmlMsg","myEl2","addClass","removeClass","service","jwtHelper","jwt","sessionStorage","getItem","decodeToken","userIp","isGuest","decodedToken","userGroup","userName","userIP","found","parseInt","usrNme"],"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<t.length;i++)o(t[i]);return o}return r})()","//import {availabilityline_comp} from './prm-search-result-availability-line-after/availabilityline.component';\r\nvar briefview_module = angular.module('briefviewModule', ['angularLoad']);\r\nbriefview_module.component('prmSearchResultAvailabilityLineAfter', require('./prm-search-result-availability-line-after/availabilityline.component.js'));\r\nbriefview_module.component('prmPdfArticleLink', require('./prm-search-result-availability-line-after/pdf_article_link.component.js'));\r\nbriefview_module.component('prmCollectionLink', require('./prm-search-result-availability-line-after/collection_link.component.js'));\r\n","\"use strict\";\r\n\r\n/* Ce module englobe à la fois un script de l'ETH pour les archives et les\r\nscripts de l'EPFL\r\nETH: primo-explore\\custom\\src\\js\\slsp\\slsp-archives-viewit\\js\\slsp-archives-viewit.module.js\r\n */\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n template: `<prm-pdf-article-link after-ctrl=\"$ctrl\"></prm-pdf-article-link>\r\n <prm-collection-link after-ctrl=\"$ctrl\"></prm-collection-link>\r\n <prm-eth-search-result-availability-line-after after-ctrl=\"$ctrl\"></prm-eth-search-result-availability-line-after>`//availabilitylineHtml,\r\n}\r\n","\"use strict\";\r\n\r\nimport {collectionLinkHtml} from './collection_link.html';\r\n\r\nmodule.exports = {\r\n bindings: {afterCtrl: '<'},\r\n controller: require ('./collection_link.controller.js'),\r\n template: collectionLinkHtml,\r\n}\r\n","module.exports = ['$filter', '$http', 'userService', function($filter, $http, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n var vm = this\r\n\r\n // Obtenir l'url d'une série.\r\n vm.get_collection_url = function(){\r\n if (vm.hasOwnProperty('collection_url')){\r\n return vm.collection_url;\r\n }\r\n try {\r\n var series = vm.parentCtrl.result.pnx.display.series;\r\n if (!Array.isArray(series)) {throw new Error('Notice without series');}\r\n } catch (e) {\r\n return null;\r\n }\r\n for (const serie of series){\r\n\r\n var m = serie.match(/\\$\\$Q(.*)\\$\\$Z(99\\d{16})/);\r\n\r\n if (m){\r\n\r\n if (!vm.parentCtrl.$stateParams.lang) {\r\n var lang = '';\r\n } else {\r\n var lang = `&lang=${vm.parentCtrl.$stateParams.lang}`;\r\n }\r\n vm.collection_title = m[1];\r\n vm.collection_url = `${ window.location.origin }/discovery/fulldisplay?vid=${ vm.parentCtrl.$stateParams.vid }&tab=${ vm.parentCtrl.$stateParams.tab }&docid=alma${ m[2] }&context=${ vm.parentCtrl.$stateParams.context }${ lang }`;\r\n return vm.collection_url;\r\n }\r\n\r\n }\r\n }\r\n\r\n // console.log(vm);\r\n}]\r\n","\"use strict\";\r\n\r\nimport {pdfArticleLinkHtml} from './pdf_article_link.html';\r\n\r\nmodule.exports = {\r\n bindings: {afterCtrl: '<'},\r\n controller: require ('./pdf_article_link.controller.js'),\r\n template: pdfArticleLinkHtml,\r\n}\r\n","module.exports = ['$filter', '$http', 'userService', function($filter, $http, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n var vm = this\r\n\r\n // Extrait le DOI brut depuis une chaîne de caractères\r\n function parse_doi(txt){\r\n var re = /10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+/i;\r\n var m = txt.match(re);\r\n if (m){\r\n return m[0]\r\n }\r\n }\r\n\r\n /* Teste si l'utilisateur est sur le range EPFL afin de décider s'il faut\r\n faut ou non afficher le lien direct */\r\n vm.is_epfl_IP = userService.isEpflIP();\r\n\r\n vm.get_doi = function(){\r\n if (vm.parentCtrl.hasOwnProperty('result') && vm.parentCtrl.result.hasOwnProperty('pnx')){\r\n var pnx = vm.parentCtrl.result.pnx;\r\n\r\n // Recherche dans la section addata\r\n if ('addata' in pnx && 'doi' in pnx.addata && parse_doi(pnx.addata.doi[0]) && pnx.control.hasOwnProperty('recordtype') && pnx.control.recordtype[0]==='article') {\r\n return parse_doi(pnx.addata.doi[0])\r\n }\r\n\r\n // Recherche dans la section display\r\n if ('display' in pnx && 'identifier' in pnx.display) {\r\n for (const identifier of pnx.display.identifier){\r\n if (parse_doi(identifier)){\r\n return parse_doi(identifier)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.check_doi = function(){\r\n if (!vm.hasOwnProperty('doi')){\r\n if (vm.parentCtrl.hasOwnProperty('result') && vm.parentCtrl.result.hasOwnProperty('pnx')){\r\n if (vm.get_doi()){\r\n vm.doi = vm.get_doi();\r\n vm.set_url_pdf()\r\n\r\n } else {\r\n vm.doi = null;\r\n }\r\n }\r\n }\r\n if (vm.hasOwnProperty('pdf_link')) {\r\n return true\r\n }\r\n return false\r\n }\r\n vm.set_url_pdf = function(){\r\n var url = `https://public-api.thirdiron.com/public/v1/libraries/183/articles/doi/${vm.doi}?access_token=adc54dee-c6a6-4b99-a917-2ed400f1f2d3`;\r\n $http({\r\n method: 'GET',\r\n url: url\r\n }).then(function successCallback(response) {\r\n // console.log(response);\r\n if (response.status === 200) {\r\n try{\r\n var pdf_link = response.data.data.fullTextFile;\r\n } catch(e){\r\n var pdf_link = '';\r\n }\r\n if (pdf_link.length > 0) {\r\n vm.pdf_link = pdf_link;\r\n }\r\n }\r\n // console.log(vm.pdf_link);\r\n }, function errorCallback(response) {\r\n vm.doi = null;\r\n });\r\n\r\n }\r\n\r\n // console.log(vm);\r\n}]\r\n","(function () {\r\n var homepage_module = angular.module('databasesModule', ['angularLoad']);\r\n homepage_module.component('prmTreeNavAfter', require('./treenav.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: Ne fait rien pour le moment\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$filter', function($filter) {\r\n var vm = this;\r\n // console.log(vm);\r\n }],\r\n // template: `<div>TEST</div>`,\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\nangular\r\n .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: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Service payant:</span></b><b> les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:</b>\",\r\n en: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Fee-based service:</span></b><b> EPFL employees and students can benefit from this service free of charge by using the form:</b>\",\r\n de: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Kostenpflichtiger Service:</span></b><b> Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.</b>\",\r\n it: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Servizio a pagamento:</span></b><b> I dipendenti e gli studenti dell'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:</b>\"\r\n },\r\n costWarningScanEPFL:{\r\n fr: \"<b>Service gratuit pour les collaborateurs et les étudiants EPFL.</b>\",\r\n en: \"<b>Free of charge for EPFL staff and students.</b>\",\r\n de: \"<b>Service für Mitarbeiter und Studenten der EPFL kostenlos</b>\",\r\n it: \"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.<b>\"\r\n },\r\n costWarningNetworkLoan:{\r\n fr: \"<b>Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.</b>\",\r\n en: \"<b>Free of charge if withdrawal at the EPFL Library.</b>\",\r\n de: \"<b>Service bei Abholung in der EPFL-Bibliothek kostenlos.</b>\",\r\n it: \"<b>Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL</b>\"\r\n },\r\n costWarningPEB:{\r\n fr: \"<b>Service gratuit pour les collaborateurs et les étudiants de l’EPFL.</b> 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: \"<b>Free of charge for EPFL staff and students.</b> 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: \"<b>Kostenloser Service für Mitarbeiter und Studenten der EPFL.</b> 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: \"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.</b> 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 <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/\\\">VPN</a> EPFL.\",\r\n en: \"Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a>.\",\r\n de: \"Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a> abrufbar.\",\r\n it: \"Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell'EPFL e a distanza tramite <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a> 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: \"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.\",\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 pdfAccess:{\r\n fr: \"Accès direct au pdf\",\r\n en: \"Direct access to the pdf\",\r\n de: \"Direct access to the pdf\",\r\n it: \"Direct access to the pdf\"\r\n },\r\n seriesLink:{\r\n fr: \"Collection :\",\r\n en: \"Serie:\",\r\n de: \"Serie:\",\r\n it: \"Serie:\"\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","\"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\r\nangular\r\n .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","\"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 Englobe un module d'archive de l'ETH et un module de l'EPFL.\r\n ETH: primo-explore\\custom\\src\\js\\slsp\\slsp-archives-viewit\\js\\slsp-archives-viewit.module.js\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n template: `<div><prm-epfl-alma-viewit-after after-ctrl=\"$ctrl\"></prm-epfl-alma-viewit-after>\r\n <prm-eth-alma-viewit-after after-ctrl=\"$ctrl\"></prm-eth-alma-viewit-after></div>`}\r\n","\"use strict\";\r\n\r\nimport {epfl_almaviewit_html} from './epfl_almaviewit.html'\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: {afterCtrl: '<'},\r\n controller: require('./epfl_almaviewit.controller.js'),\r\n template: epfl_almaviewit_html}\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 = ['$filter', 'userService', function($filter, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\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\\slsp-ill-signin-order-logged-out\\js\\epfl-ill-signin-order-logged-out.module.js */\r\n vm.is_epfl_IP = userService.isEpflIP();\r\n vm.user_ip = userService.get_ip();\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('<b>ISBN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(/<b>/g, '');\r\n } else if (ident.indexOf('<b>ISSN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(/<b>/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: ' + vm.user_ip + '\\nRange EPFL: ' + vm.is_epfl_IP + '\\n****';\r\n\r\n vm.feedbackLink = 'mailto:eresources@epfl.ch' + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body) + '&Content-Type=text/html';\r\n }\r\n\r\n }]\r\n","\r\nvar fullview_module = angular.module('fullviewModule', ['angularLoad']);\r\nfullview_module.component('prmAlmaViewitAfter', require('./almaviewit.component.js'));\r\nfullview_module.component('prmEpflAlmaViewitAfter', require('./epfl_almaviewit.component.js'));\r\n","module.exports = {active: true,\r\n txt:\r\n {fr: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/fr\">swisscovery</a></p></div>\r\n </div>`,\r\n en: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>The NEBIS network ended on December 7, 2020. It has been replaced by <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/it\">swisscovery</a>: a new and wider network.</p></div>\r\n </div>`,\r\n de: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/de\">swisscovery</a></p></div>\r\n </div>`,\r\n it: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/it\">swisscovery</a></p></div>\r\n </div>`},\r\n begin:\"2020-01-04T00:00:00Z\",\r\n end:\"2021-03-31T12:00:00Z\"}\r\n","var homepage_module = angular.module('homepageModule', ['angularLoad']);\r\nhomepage_module.component('prmSearchBarAfter', require('./searchbar.component.js'));\r\nhomepage_module.component('prmMainMenuAfter', require('./mainmenu.component.js'));\r\nhomepage_module.component('prmTopbarAfter', require('./topbar.component.js'));\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: corriger le lien du menu principal vers les bases de données.\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$location', '$translate', '$element', function($location, $translate, $element) {\r\n var vm = this;\r\n this.$doCheck = function() {\r\n if (document.readyState === 'complete' /*&& !vm.modified*/){\r\n try{var elem = document.querySelector(\"[translate='mainmenu.label.db']\").parentElement;}\r\n catch(e){\r\n vm.modified = false;\r\n }\r\n if (elem){\r\n elem.removeAttribute('target');\r\n elem.setAttribute('aria-label', 'Databases');\r\n vm.modified = true;\r\n }\r\n }\r\n };\r\n // console.log(vm.url);\r\n }]\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: '<div class=\"epfl-alert-message\" ng-if=\"ctrl.active\" ng-bind-html=\"ctrl.get_txt() \"></div>',\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","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: afficher l'entête de la page.\r\n REMARQUES: contient le titre BEAST, le teaser, le fil d'ariance. Le controlleur vérifie\r\n si on se trouve dans le compte de lecteur afin de paramétrer le fil d'ariane.\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$location', '$translate', '$element', function($location, $translate, $element) {\r\n var vm = this;\r\n vm.url = window.location.href.split('?')[0] + '?vid=' + vm.parentCtrl.configurationUtil.vid + '&lang=' + $translate.use();\r\n // console.log(vm.url);\r\n }],\r\n template: `<div class=\"main-title\"><h1><a href=\"{{ ::ctrl.url }}\">{{ 'mainTitle' | customTranslate }}</a></h1><h2>{{ 'subTitle' | customTranslate }}</h2></div>`\r\n //templateUrl: './custom/41SLSP_EPF-prod/js/homepage/templates/topbar.html'\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\n\r\nimport './filters/custom_translate.filter.js';\r\nimport './filters/trust_html.filter.js';\r\nimport './slsp/slsp-courier-info';\r\nimport './slsp/slsp-ill-signin-order-logged-out';\r\nimport './slsp/slsp-ill-signin-order-alert';\r\nimport './slsp/slsp-edit-personal-details';\r\nimport './slsp/prm-locations-after';\r\nimport './slsp/prm-location-items-after';\r\nimport './slsp/slsp-archives-htgi';\r\nimport './slsp/slsp-archives-viewit';\r\nimport './briefview';\r\nimport './homepage';\r\nimport './fullView'\r\nimport './databases';\r\nvar app = angular.module('viewCustom', ['angularLoad',\r\n 'customTranslateFilter',\r\n 'trustHtmlFilter',\r\n 'epflCourierInfo',\r\n 'epflIllSigninOrderLoggedOut',\r\n 'slspIllSigninOrderAlert',\r\n 'epflEditPersonalDetails',\r\n 'ethLocationsAfterModule',\r\n 'ethLocationItemsAfterModule',\r\n 'slspArchivesHtgi',\r\n 'slspArchivesViewit',\r\n 'briefviewModule',\r\n 'homepageModule',\r\n 'fullviewModule',\r\n 'databasesModule'\r\n ]);\r\n","import {ethLocationItemsFilterModule} from './eth-location-items-filter/eth-location-items-filter.module';\r\nimport {epflIButtonModule} from './slsp-i-button/epfl-i-button.module';\r\n\r\nexport const ethLocationItemsAfterModule = angular\r\n .module('ethLocationItemsAfterModule', [])\r\n .component('prmLocationItemsAfter', {\r\n bindings: {parentCtrl: '<'},\r\n template: `<eth-location-items-filter-component after-ctrl=\"$ctrl\"></eth-location-items-filter-component><epfl-i-button-component after-ctrl=\"$ctrl\"></epfl-i-button-component>`\r\n });\r\n\r\nethLocationItemsAfterModule.requires.push(ethLocationItemsFilterModule.name);\r\nethLocationItemsAfterModule.requires.push(epflIButtonModule.name);\r\n","export class ethLocationItemsFilterController {\r\n\r\n constructor($timeout, $scope) {\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n }\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$scope.$watch('this.$ctrl.parentCtrl.loc.location.librarycodeTranslation', (newValue, oldValue, scope) => {\r\n \r\n if(!scope.$ctrl.parentCtrl.isLocationsFilterVisible && newValue && newValue != ''){\r\n \r\n this.$scope.$watch('this.$ctrl.parentCtrl.loc.items', (currentItemsArray) => {\r\n\r\n if (angular.isArray(currentItemsArray) && currentItemsArray.length > 1){\r\n \r\n this.$timeout(() => {\r\n scope.$ctrl.parentCtrl.isLocationsFilterVisible = true;\r\n }, 0);\r\n \r\n } \r\n \r\n })\r\n }\r\n\r\n }, true);\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ethLocationItemsFilterController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n}\r\n\r\nethLocationItemsFilterController.$inject = ['$timeout', '$scope'];\r\n\r\n","/**\r\n* @ngdoc module\r\n* @name ethLocationsFilterModule\r\n*\r\n* @description\r\n*\r\n* Customization for the locations filter:<br>\r\n* - the locations filter is visible by default\r\n*\r\n* If there is 1 location: prmLocationItemsAfter\r\n*\r\n* If there are multiple locations: prmLocationAfter;\r\n* after all locations: prmLocationsAfter;\r\n* after choosing a location: prmLocationItemsAfter\r\n*\r\n*\r\n* <b>AngularJS Dependencies</b><br>\r\n*\r\n*\r\n* <b>CSS/Image Dependencies</b><br>\r\n* CSS eth-locations-filter.css\r\n*\r\n*\r\n*/\r\nimport {ethLocationItemsFilterController} from './eth-location-items-filter.controller';\r\n\r\nexport const ethLocationItemsFilterModule = angular\r\n .module('ethLocationItemsFilterModule', [])\r\n .controller('ethLocationItemsFilterController', ethLocationItemsFilterController)\r\n .component('ethLocationItemsFilterComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'ethLocationItemsFilterController'\r\n })\r\n","\r\n\r\n//--------\"i\" button ---------------------------------------\r\n\r\n\r\n export class epflIButtonController {\r\n\r\n constructor() {}\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n // console.log(this);\r\n this.getLibrary = getLibrary;\r\n this.biblinkText = \"Library\";\r\n this.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n this.getLibraryUrl = getLibraryUrl;\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n\r\n function getLibrary() {\r\n return this.parentCtrl.currLoc ? this.parentCtrl.currLoc.location.librarycodeTranslation : '';\r\n\r\n }\r\n\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n function getLibraryUrl() {\r\n if (this.parentCtrl.loc && this.parentCtrl.loc.location.libraryCode==='E02') {\r\n return \"https://go.epfl.ch/library\";\r\n } else {\r\n return this.biblinkBase;\r\n }\r\n }\r\n // View is useful to get the url img\r\n this.view = this.parentCtrl.configurationUtil.vid.replace(':', '-');\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: slspIButtonController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }\r\n\r\n epflIButtonController.$inject = [];\r\n","\r\n\r\n//--------\"i\" button ---------------------------------------\r\n\r\n// angular\r\n// .module('slspIButton', [])\r\n\r\n// .controller('LibInfoController', [function () {\r\n// var vm = this;\r\n// vm.getLibrary = getLibrary;\r\n// vm.biblinkText = \"Library\";\r\n// vm.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n\r\n// function getLibrary() {\r\n// return vm.parentCtrl.currLoc.location.librarycodeTranslation;\r\n// }\r\n\r\n// }])\r\n\r\n// .component('prmLocationItemsAfter', {\r\n// bindings: { parentCtrl: '<' },\r\n// controller: 'LibInfoController',\r\n// template: '<div layout=\"row\" class=\"LibInfo\" layout-align=\"start center\"><span class=\"md-subhead\"><a ng-href=\"{{ $ctrl.biblinkBase }}\" target=\"_blank\"><img width=\"35px\" ng-src=\"/discovery/custom/41SLSP_NETWORK-CENTRAL_PACKAGE/img/information.png\" />{{ $ctrl.getLibrary() }}</a></span></div>'\r\n// });\r\n\r\n\r\n\r\n import {epflIButtonController} from './epfl-i-button.controller';\r\n import {epflIButtonHtml} from './epfl-i-button.html';\r\n\r\n export const epflIButtonModule = angular\r\n .module('epflIButtonModule', [])\r\n .controller('epflIButtonController', epflIButtonController)\r\n .component('epflIButtonComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'epflIButtonController',\r\n template: epflIButtonHtml\r\n })\r\n","import {ethLocationsFilterModule} from './eth-locations-filter/eth-locations-filter.module';\r\n\r\nexport const ethLocationsAfterModule = angular\r\n .module('ethLocationsAfterModule', [])\r\n .component('prmLocationsAfter', {\r\n bindings: {parentCtrl: '<'},\r\n template: `<eth-locations-filter-component after-ctrl=\"$ctrl\"></eth-locations-filter-component>`\r\n });\r\n\r\nethLocationsAfterModule.requires.push(ethLocationsFilterModule.name);\r\n","export class ethLocationsFilterController {\r\n\r\n constructor($timeout, $scope) {\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n }\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$scope.$watch('this.$ctrl.parentCtrl.locations[0].location.librarycodeTranslation', (newValue, oldValue, scope) => {\r\n if(!scope.$ctrl.parentCtrl.isLocationsFilterVisible && newValue && newValue != ''){\r\n this.$timeout(() => {\r\n scope.$ctrl.parentCtrl.isLocationsFilterVisible = true;\r\n }, 0);\r\n }\r\n }, true);\r\n }\r\n catch(e){\r\n console.error(\"***ETH*** an error occured: ethLocationsFilterController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n}\r\n\r\nethLocationsFilterController.$inject = ['$timeout', '$scope'];\r\n","/**\r\n* @ngdoc module\r\n* @name ethLocationsFilterModule\r\n*\r\n* @description\r\n*\r\n* Customization for the locations filter:<br>\r\n* - the locations filter is visible by default\r\n*\r\n* If there is 1 location: prmLocationItemsAfter\r\n*\r\n* If there are multiple locations: prmLocationAfter;\r\n* after all locations: prmLocationsAfter;\r\n* after choosing a location: prmLocationItemsAfter\r\n*\r\n*\r\n* <b>AngularJS Dependencies</b><br>\r\n*\r\n*\r\n* <b>CSS/Image Dependencies</b><br>\r\n* CSS eth-locations-filter.css\r\n*\r\n*\r\n*/\r\nimport {ethLocationsFilterController} from './eth-locations-filter.controller';\r\n\r\nexport const ethLocationsFilterModule = angular\r\n .module('ethLocationsFilterModule', [])\r\n .controller('ethLocationsFilterController', ethLocationsFilterController)\r\n .component('ethLocationsFilterComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'ethLocationsFilterController'\r\n })\r\n","require('./js/slsp-archives-htgi.module.js')\r\nmodule.exports = 'slspArchivesHtgi'\r\n","angular\r\n .module('slspArchivesHtgi', [])\r\n\r\n // \"how to get it\" section for resources of archives MFA, TMA (CMI STAR)\r\n\r\n .controller('ArchivesHtgiController', [function () {\r\n\r\n this.$onInit = function () {\r\n try{\r\n if(!this.parentCtrl.item.pnx.display.source || this.parentCtrl.item.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.item.pnx.display.source[0];\r\n // CMI STAR sources\r\n if(this.source === 'ETH_MaxFrischArchiv' || this.source === 'ETH_ThomasMannArchiv'){\r\n // hide content of htgi section\r\n let section = document.getElementById('full-view-container');\r\n section.classList.add('slsp-archives-hide');\r\n\r\n // get guid of CMIStar\r\n let sourceid = this.parentCtrl.item.pnx.control.originalsourceid[0];\r\n let guid = sourceid.substring(sourceid.lastIndexOf(':') + 1);\r\n\r\n // different sources: concat url\r\n if(this.source === 'ETH_ThomasMannArchiv'){\r\n this.url = 'http://www.online.tma.ethz.ch/home/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Detailed information in Thomas Mann-Archiv Online (metadata only)';\r\n }\r\n else if (this.source === 'ETH_MaxFrischArchiv') {\r\n this.url = 'http://maxfrischarchiv-online.ethz.ch/home/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Request via Max Frisch-Archiv Online';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesHtgiController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n\r\n .component('almaHtgiSvcAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'ArchivesHtgiController',\r\n template: `\r\n <div class=\"slsp-archives\" ng-if=\"$ctrl.url\">\r\n <md-list layout=\"column\" class=\"separate-list-items md-primoExplore-theme layout-column\" role=\"list\">\r\n <md-list-item role=\"listitem\" ng-href=\"{{$ctrl.url}}\" target=\"_blank\">\r\n <span>{{('customized.archives.' + $ctrl.source + '.linktext' | translate)}}</span>\r\n <span>{{$ctrl.label}}</span>\r\n <div class=\"md-secondary\">\r\n <prm-icon icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\" class=\"layout-margin\"/>\r\n </div>\r\n </md-list-item>\r\n </md-list>\r\n <div ng-if=\"$ctrl.source === 'ETH_ThomasMannArchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.text1\">No request possible. The digitized item can be consulted in the Thomas Mann Archives reading room upon advance registration (</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"https://tma.ethz.ch/utils/kontakt.html\">\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.linktext2\">Contact</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.text2\">).</span>\r\n </div>\r\n </div>\r\n <div ng-if=\"$ctrl.source === 'ETH_MaxFrischArchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.text1\">Informationen zu Bestellung und Benutzung siehe</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"http://maxfrischarchiv-online.ethz.ch/home/#/manual\">\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.linktext2\">Bedienungshinweise</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.text2\">.</span>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n });\r\n","require('./js/slsp-archives-viewit.module.js')\r\nmodule.exports = 'slspArchivesViewit'\r\n","angular\r\n.module('slspArchivesViewit', [])\r\n\r\n // .component('prmSearchResultAvailabilityLineAfter', { VERSION ETH\r\n //bindings: { parentCtrl: '<' },\r\n .component('prmEthSearchResultAvailabilityLineAfter', { // VERSION EPFL\r\n bindings: { afterCtrl: '<' },\r\n controller: 'ArchivesAvailabilityLineController'\r\n })\r\n\r\n .component('prmEthAlmaViewitAfter', {\r\n bindings: { afterCtrl: '<' },\r\n controller: 'ArchivesViewitController',\r\n template: `\r\n <div class=\"slsp-archives\" ng-if=\"$ctrl.url\">\r\n <md-list layout=\"column\" class=\"separate-list-items md-primoExplore-theme layout-column\" role=\"list\">\r\n <md-list-item role=\"listitem\" ng-href=\"{{$ctrl.url}}\" target=\"_blank\">\r\n <span>{{('customized.archives.' + $ctrl.source + '.linktext' | translate)}}</span>\r\n <span>{{$ctrl.label}}</span>\r\n <div class=\"md-secondary\">\r\n <prm-icon icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\" class=\"layout-margin\"/>\r\n </div>\r\n </md-list-item>\r\n </md-list>\r\n <div ng-if=\"$ctrl.source === 'ETH_Hochschularchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.text1\">Informationen zu Bestellung und Benutzung siehe</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"http://archivdatenbank-online.ethz.ch/hsa/#/manual\">\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.linktext2\">Bedienungshinweise</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.text2\">.</span>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n })\r\n\r\n // viewit section for archives when there are only partial digitized items, e.g. \"ETH Hochschularchiv\" (CMI STAR)\r\n .controller('ArchivesViewitController', ['$translate', function ($translate) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$onInit = function () {\r\n try{\r\n if(!this.parentCtrl.item.pnx.display.source || this.parentCtrl.item.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.item.pnx.display.source[0];\r\n // CMI STAR sources\r\n if(this.source === 'ETH_Hochschularchiv'){\r\n if(this.parentCtrl.item.delivery.GetIt1 && this.parentCtrl.item.delivery.GetIt1.length > 0 && this.parentCtrl.item.delivery.GetIt1[0].links && this.parentCtrl.item.delivery.GetIt1[0].links.length > 0){\r\n\r\n // there is an online resource: return and do nothing\r\n let aOnlineLink = this.parentCtrl.item.delivery.GetIt1[0].links.filter( l => {\r\n if(l.isLinktoOnline && l.link !== ''){\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (aOnlineLink.length > 0) {\r\n return;\r\n }\r\n\r\n // there is no online resource\r\n // change section heading\r\n $translate('nui.getit.service_howtogetit').then((translation) => {\r\n let fullView = document.getElementById('fullView');\r\n angular.element(fullView.querySelector(\"h4[translate='nui.getit.service_viewit']\")).text(translation);\r\n angular.element(fullView.querySelector(\"#services-index span[translate='nui.getit.service_viewit']\")).text(translation);\r\n });\r\n\r\n }\r\n // hide content of viewit section\r\n let section = document.getElementById('full-view-container');\r\n section.classList.add('slsp-archives-hide');\r\n\r\n // get guid of CMIStar\r\n let sourceid = this.parentCtrl.item.pnx.control.originalsourceid[0];\r\n let guid = sourceid.substring(sourceid.lastIndexOf(':') + 1);\r\n\r\n // different sources: concat url\r\n if(this.source === 'ETH_Hochschularchiv'){\r\n this.url = 'http://archivdatenbank-online.ethz.ch/hsa/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Bestellen über Hochschularchiv Online';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesViewitController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n\r\n // change availability line, if there is no digitization\r\n .controller('ArchivesAvailabilityLineController', ['$translate', function ($translate) {\r\n this.$onInit = function () {\r\n try{\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n /********************/\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n /********************/\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n this.changeButton = false;\r\n if(!this.parentCtrl.result.pnx.display.source || this.parentCtrl.result.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.result.pnx.display.source[0];\r\n if(!this.source === 'ETH_Hochschularchiv')return;\r\n if(!this.parentCtrl.result.delivery.GetIt1 || this.parentCtrl.result.delivery.GetIt1.length == 0 || !this.parentCtrl.result.delivery.GetIt1[0].links || this.parentCtrl.result.delivery.GetIt1[0].links.length == 0)return;\r\n\r\n let aOnlineLink = this.parentCtrl.result.delivery.GetIt1[0].links.filter( l => {\r\n if(l.isLinktoOnline && l.link !== ''){\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (aOnlineLink.length === 0) {\r\n // there is no online resource\r\n $translate('delivery.code.no_inventory').then((translation) => {\r\n this.changeButton = true;\r\n this.changeButtonText = translation;\r\n });\r\n let availabilityLine = this.parentCtrl.$element[0];\r\n if(availabilityLine) {\r\n availabilityLine.classList.add('slsp-hsa-no-online');\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesAvailabilityLineController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n\r\n this.$doCheck = function () {\r\n try{\r\n if (this.changeButton){\r\n let availabilityLine = this.parentCtrl.$element[0];\r\n let button = availabilityLine.querySelector('.availability-status');\r\n if(angular.element(button) && angular.element(button).length > 0){\r\n angular.element(button).html(this.changeButtonText);\r\n this.changeButton = false;\r\n this.changeButtonText = '';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***ETH*** an error occured: ArchivesAvailabilityLineController $doCheck\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n","require('./js/epfl-courier-info.module.js')\r\nmodule.exports = 'slspCourierInfo'\r\n","/* ---------------- */\r\n/* - VERSION EPFL - */\r\n/* ---------------- */\r\n\r\n/*\r\n\r\nAVERTISSEMENT: ce module est très différent de sa version originale d'SLSP.\r\n\r\nIl doit donc être considéré comme réécrit et les ajouts ne sont pas indiqués.\r\n\r\nCe module permet d'afficher les boutons renvoyant à SWITCH edu-ID.\r\n\r\nFONCTIONNALITES:\r\n- Mettre l'EPFL en tête des possibilités de retrait.\r\n- Afficher les messages personnalisés pour les frais.\r\n\r\n*/\r\n\r\n angular\r\n .module('epflCourierInfo', [])\r\n\r\n .controller('CourierInfoController', ['$filter', '$element', function ($filter, $element, $compile, $scope, $rootScope) {\r\n var vm = this;\r\n\r\n //shortcut for convenience\r\n vm.form = $element[0].parentElement;\r\n\r\n //function for inserting block\r\n vm.$doCheck = function() {\r\n let form = false;\r\n let formLength = 2;\r\n // console.log(vm.form);\r\n if (vm.form.children[0].children[1] !== undefined && (vm.form.children[0].children[1].children[0] !== undefined || vm.typeFeeAlert()=='costWarningPEB')) {\r\n form = vm.form.children[0].children[1].children[0];\r\n if (vm.typeFeeAlert()=='costWarningPEB'){\r\n formLength = 3;\r\n }\r\n }\r\n else if (vm.form.children[0].children[0] !== undefined && vm.form.children[0].children[0].children[0] !== undefined) {\r\n form = vm.form.children[0].children[0].children[0];\r\n formLength = 3;\r\n }\r\n // console.log(vm.typeFeeAlert());\r\n\r\n //create and insert info block if not present\r\n // if (form){\r\n // // console.log('---' + String(formLength) + ' - ' + String(form.children.length));}\r\n if (form && form.children.length == formLength && form.children.length > 1 || vm.hasOwnProperty('currentTypeFeeAlert') &&\r\n vm.currentTypeFeeAlert != vm.typeFeeAlert()) {\r\n // console.log('cccc---' + String(formLength) + ' - ' + String(form.children.length));\r\n vm.currentTypeFeeAlert = vm.typeFeeAlert();\r\n var htmlwarning = `<div class=\"courier-info bar alert-bar\"><p>${vm.getFeeAlert()}</p>`;\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 += `<p><span class=\"button-confirm md-button md-primoExplore-theme md-ink-ripple\" onclick=\"${fn}\" \">${txt}</span></p>`;\r\n\r\n }\r\n htmlwarning += `<p><a href=\"${vm.parentCtrl.$translate.instant('customize.fullview.feesUrl')}\" target=\"_blank\">${vm.parentCtrl.$translate.instant('customize.fullview.feesLinkText')}</a></p></div>`;\r\n var htmlcompiled = angular.element(htmlwarning)[0];\r\n\r\n // console.log('---' + String(formLength) + ' - ' + String(form.children.length));\r\n if (form.children.length == formLength) {\r\n // console.log('---' + String(formLength) + ' - ' + String(form.children.length));\r\n form.insertBefore(htmlcompiled, form.children[formLength - 1]);\r\n } else {\r\n // console.log(String(formLength) + ' - ' + String(form.children.length));\r\n form.children[form.children.length - 2].replaceWith(htmlcompiled);\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\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 // console.log(vm);\r\n\r\n }])\r\n\r\n .component('prmRequestAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'CourierInfoController',\r\n });\r\n","require('./js/epfl-edit-personal-details.module.js')\r\nmodule.exports = 'epflEditPersonalDetails'\r\n","/* --------------------- */\r\n/* - Début ajouts EPFL - */\r\n/*\r\n\r\nCe module permet d'afficher les boutons renvoyant à SWITCH edu-ID.\r\n\r\n- \"this\" a été remplacé partout par une variable \"vm\". C'est indispensable\r\npour garder la bonne référence dans les promesses.\r\n- Les boutons sont ajoutés avant l'adresse ce qui ne peut pas passer par\r\nun template\r\n\r\n*/\r\n/* - Fin ajouts EPFL - */\r\n/* ------------------- */\r\n\r\n\r\nangular\r\n .module('epflEditPersonalDetails', [])\r\n\r\n\r\n\r\n //------------------------------ edit personal details ---------------------------\r\n\r\n .controller('EditPersonalDetailsController', ['$scope', '$element', '$translate' , function ($scope, $element, $translate) {\r\n var vm = this; // Ajout EPFL\r\n let lang = 'en';\r\n let sms = $scope.$root.$$childHead.$ctrl.userSessionManagerService;\r\n if (sms) {\r\n lang = sms.getInterfaceLanguage();\r\n }\r\n\r\n vm.detailsBaseEdu = \"https:\\/\\/eduid.ch\\/web\\/change-account-data\\/2\\/?lang=\" + lang;\r\n vm.detailsBaseReg = \"https:\\/\\/registration.slsp.ch\\/library-card\\/?lang=\" + lang;\r\n vm.exclude = ['STAFF', '11', '12', '13', '14', '15', '16', '91', '92'];\r\n vm.grpA = ['11', '91', '92']; // comptes locaux\r\n vm.grpB = ['12', '13', '14', '15', '16']; // comptes institutionnels\r\n\r\n\r\n vm.getPatronGrp = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let patron = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (!vm.exclude.includes(patron)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n vm.grpLabelA = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let labelA = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (vm.grpA.includes(labelA)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n vm.grpLabelB = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let labelB = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (vm.grpB.includes(labelB)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /* --------------------- */\r\n /* - Début ajouts EPFL - */\r\n\r\n vm.test = 0;\r\n vm.testPersonalInfo = function() {\r\n /* Constructeur de la promesse. Cette promess échoue quand\r\n les informations utilisateur ne sont pas ou pas encore\r\n disponible. */\r\n return new Promise((persInfoAv, persInfoNotAv) => {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n persInfoAv();\r\n } else {\r\n persInfoNotAv();\r\n }\r\n })\r\n }\r\n vm.persInfoAv = function() {\r\n /* Succès de la promesse: le groupe utilisateur a été trouvé et\r\n les boutons adéquats s'afichent. */\r\n let html = '<div class=\"btn-account\">';\r\n if (vm.grpLabelA()) {\r\n html += `<md-card-content flex=\"100\" class=\"bar courier-info layout-align-left-center layout-row\"><span>${vm.parentCtrl.$translate.instant('customized.libraries.details')}</span></md-card-content>`;\r\n }\r\n else if (vm.grpLabelB()) {\r\n html += `<md-card-content flex=\"100\" class=\"bar courier-info layout-align-left-center layout-row\"><span>${vm.parentCtrl.$translate.instant('customized.slsp.details')}</span></md-card-content>`;\r\n }\r\n else if (vm.getPatronGrp) {\r\n html += `<a href=\"${vm.detailsBaseEdu }\" target=\"_blank\">\r\n <md-card-content flex=\"100\" class=\"bar layout-align-left-center layout-row\">\r\n <prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"pencil\">\r\n <svg id=\"pencil_cache64\" viewBox=\"0 0 24 24\" y=\"696\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\r\n <path d=\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"></path>\r\n </svg>\r\n </prm-icon>\r\n <span class=\"md-subhead\" >${vm.parentCtrl.$translate.instant('customized.personal.details')}</span>\r\n </md-card-content>\r\n </a>\r\n <a href=\"${vm.detailsBaseReg}\" target=\"_blank\">\r\n <md-card-content flex=\"100\" class=\"bar layout-align-left-center layout-row\">\r\n <prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"account-card-details\">\r\n <svg id=\"account-card-details_cache63\" viewBox=\"0 0 24 24\" y=\"1176\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\r\n <path d=\"M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M14,6V7H22V6H14M14,8V9H21.5L22,9V8H14M14,10V11H21V10H14M8,13.91C6,13.91 2,15 2,17V18H14V17C14,15 10,13.91 8,13.91M8,6A3,3 0 0,0 5,9A3,3 0 0,0 8,12A3,3 0 0,0 11,9A3,3 0 0,0 8,6Z\"></path>\r\n </svg>\r\n </prm-icon>\r\n <span class=\"md-subhead\" >${vm.parentCtrl.$translate.instant('customized.libcard.number')}</span>\r\n </md-card-content>\r\n </a>`\r\n }\r\n\r\n html += '</div>';\r\n var htmlcompiled = angular.element(html)[0];\r\n var place_to_insert = $element[0].parentElement.children[1].children[0];\r\n place_to_insert.insertBefore(htmlcompiled, place_to_insert.children[1]);\r\n }\r\n vm.persInfoNotAv = function() {\r\n vm.test += 1;\r\n if (vm.test < 10) {\r\n /* En cas d'échec, on attend 0.5 second et on relance le test */\r\n setTimeout(() => vm.testPersonalInfo().then(vm.persInfoAv, vm.persInfoNotAv), 500);\r\n }\r\n }\r\n if (vm.test === 0) {\r\n /* Premier lancement du test pour voir si les infos utilisateur\r\n sont disponibles */\r\n vm.testPersonalInfo().then(vm.persInfoAv, vm.persInfoNotAv);\r\n }\r\n /* - Fin ajouts EPFL - */\r\n /* ------------------- */\r\n\r\n\r\n }])\r\n\r\n\r\n .component('prmPersonalInfoAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'EditPersonalDetailsController',\r\n /* Suppression EPFL */\r\n // template: '<md-card ng-if=\"$ctrl.grpLabelA()\" translate=\"customized.libraries.details\" flex=\"100\" class=\"bar alert-bar courier-info\"></md-card><md-card ng-if=\"$ctrl.grpLabelB()\" translate=\"customized.slsp.details\" flex=\"100\" class=\"bar alert-bar courier-info\"></md-card> <div layout=\"column\"> <md-button ng-if=\"$ctrl.getPatronGrp()\" href=\"{{ $ctrl.detailsBaseEdu }}\" target=\"_blank\" layout=\"row\" class=\"courier-info bar alert-bar layout-align-left-center layout-row\" layout-align=\"left center\"><span class=\"md-subhead\"><prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"pencil\"></prm-icon><span class=\"md-subhead\" translate=\"customized.personal.details\"></span></md-button> <br /> <md-button ng-if=\"$ctrl.getPatronGrp()\" href=\"{{ $ctrl.detailsBaseReg }}\" target=\"_blank\" layout=\"row\" class=\"courier-info bar alert-bar layout-align-left-center layout-row\" layout-align=\"left center\"><prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"account-card-details\"></prm-icon><span class=\"md-subhead\" translate=\"customized.libcard.number\"></span></md-button ></div> '\r\n });\r\n","require('./js/slsp-ill-signin-order-alert.module.js')\r\nmodule.exports = 'slspIllSigninOrderAlert'","//--------ILL Signin Order - if Alert Message ---------------------------------------\r\n\r\nangular\r\n .module('slspIllSigninOrderAlert', [])\r\n\r\n .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 .component('almaHowovpAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'AlertMsgController',\r\n template: '<div style=\"display:none\">{{$ctrl.getAlert()}}</div>'\r\n });\r\n","require('./js/epfl-ill-signin-order-logged-out.module.js')\r\nmodule.exports = 'epflIllSigninOrderLoggedOut'\r\n"," //--------ILL Signin Order - if logged out ---------------------------------------\r\n\r\nangular\r\n .module('epflIllSigninOrderLoggedOut', [])\r\n\r\n .service('userService', ['jwtHelper', function (jwtHelper) {\r\n this.get_ip = 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 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 vérifier si IP EPFL - */\r\n this.isEpflIP = function () {\r\n var jwt = sessionStorage.getItem('primoExploreJwt');\r\n if (!jwt) {\r\n return;\r\n }\r\n const userIP = jwtHelper.decodeToken(jwt).userIp;\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 return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /* --------- Fin de l'ajout --------- */\r\n /* ---------------------------------- */\r\n\r\n }])\r\n\r\n .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 .component('prmUserAreaExpandableAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'IllBoxController',\r\n template: ''\r\n });\r\n"],"sourceRoot":"/source/"}
\ No newline at end of file
+{"version":3,"sources":["node_modules/browser-pack/_prelude.js","primo-explore/custom/src/js/briefview/index.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/availabilityline.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/collection_link.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/collection_link.controller.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/pdf_article_link.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/pdf_article_link.controller.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/publisher_link.component.js","primo-explore/custom/src/js/briefview/prm-search-result-availability-line-after/publisher_link.controller.js","primo-explore/custom/src/js/databases/index.js","primo-explore/custom/src/js/databases/treenav.component.js","primo-explore/custom/src/js/filters/custom_translate.filter.js","primo-explore/custom/src/js/filters/trust_html.filter.js","primo-explore/custom/src/js/fullView/almaviewit.component.js","primo-explore/custom/src/js/fullView/epfl_almaviewit.component.js","primo-explore/custom/src/js/fullView/epfl_almaviewit.controller.js","primo-explore/custom/src/js/fullView/index.js","primo-explore/custom/src/js/homepage/alert.js","primo-explore/custom/src/js/homepage/index.js","primo-explore/custom/src/js/homepage/mainmenu.component.js","primo-explore/custom/src/js/homepage/searchbar.component.js","primo-explore/custom/src/js/homepage/topbar.component.js","primo-explore/custom/src/js/main.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-after.module.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-filter/eth-location-items-filter.controller.js","primo-explore/custom/src/js/slsp/prm-location-items-after/eth-location-items-filter/eth-location-items-filter.module.js","primo-explore/custom/src/js/slsp/prm-location-items-after/slsp-i-button/epfl-i-button.controller.js","primo-explore/custom/src/js/slsp/prm-location-items-after/slsp-i-button/epfl-i-button.module.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-after.module.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-filter/eth-locations-filter.controller.js","primo-explore/custom/src/js/slsp/prm-locations-after/eth-locations-filter/eth-locations-filter.module.js","primo-explore/custom/src/js/slsp/slsp-archives-htgi/index.js","primo-explore/custom/src/js/slsp/slsp-archives-htgi/js/slsp-archives-htgi.module.js","primo-explore/custom/src/js/slsp/slsp-archives-viewit/index.js","primo-explore/custom/src/js/slsp/slsp-archives-viewit/js/slsp-archives-viewit.module.js","primo-explore/custom/src/js/slsp/slsp-courier-info/index.js","primo-explore/custom/src/js/slsp/slsp-courier-info/js/epfl-courier-info.module.js","primo-explore/custom/src/js/slsp/slsp-edit-personal-details/index.js","primo-explore/custom/src/js/slsp/slsp-edit-personal-details/js/epfl-edit-personal-details.module.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-alert/index.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-alert/js/slsp-ill-signin-order-alert.module.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-logged-out/index.js","primo-explore/custom/src/js/slsp/slsp-ill-signin-order-logged-out/js/epfl-ill-signin-order-logged-out.module.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","briefview_module","angular","component","bindings","parentCtrl","template","afterCtrl","controller","$filter","$http","userService","this","vm","get_collection_url","hasOwnProperty","collection_url","series","result","pnx","display","Array","isArray","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","m","value","match","$stateParams","lang","collection_title","window","location","origin","vid","tab","context","err","return","parse_doi","txt","is_epfl_IP","isEpflIP","get_doi","addata","doi","control","recordtype","identifier","check_doi","set_url_pdf","url","method","then","response","status","pdf_link","data","fullTextFile","$element","is_pc","is_ebook","indexOf","type","toLowerCase","is_article","is_data_available","Boolean","delivery","is_fulltext","availability","is_publisher_url","checked","isFullView","recordid","post","doc","publisher_url","electronicServices","serviceUrl","place_to_insert","parentElement","children","replaceWith","GetIt1","_typeof","rank","links","link","_url","console","log","controllerAs","filter","$translate","trad","costWarningScan","fr","en","de","it","costWarningScanEPFL","costWarningNetworkLoan","costWarningPEB","mainTitle","subTitle","switchEduID","illButton","feedbackLink","vpnMSG","feedbackLinkMSG","pdfAccess","seriesLink","includes","use","$sce","trustAsHtml","get_txt","no_report_link","item","openaccess","oa","user_ip","get_ip","mmsId","title","creationdate","creator","join","ident","replace","substring","userAgent","navigator","subject","body","encodeURIComponent","fullview_module","active","begin","end","homepage_module","$location","$doCheck","document","readyState","elem","querySelector","modified","removeAttribute","setAttribute","alert","d_now","Date","now","showTabsAndScopes","href","split","configurationUtil","_ethLocationItemsFilter","_epflIButton","ethLocationItemsAfterModule","requires","push","ethLocationItemsFilterModule","name","epflIButtonModule","ethLocationItemsFilterController","$timeout","$scope","_classCallCheck","_this","$watch","newValue","oldValue","scope","$ctrl","isLocationsFilterVisible","currentItemsArray","error","message","$inject","epflIButtonController","getLibrary","currLoc","librarycodeTranslation","biblinkText","biblinkBase","getLibraryUrl","loc","libraryCode","view","_ethLocationsFilter","ethLocationsAfterModule","ethLocationsFilterModule","ethLocationsFilterController","$onInit","source","getElementById","classList","add","sourceid","originalsourceid","guid","lastIndexOf","l","isLinktoOnline","translation","fullView","element","text","changeButton","changeButtonText","availabilityLine","button","html","$compile","$rootScope","form","formLength","typeFeeAlert","currentTypeFeeAlert","htmlwarning","getFeeAlert","get_peb_button","fn","instant","htmlcompiled","insertBefore","Object","defineProperty","configurable","get","getFilteredForm","key","options","sort","b","onTopInstitutions","isEPFL","requestService","_service","linkBase","requestHeader","allElements","getElementsByTagName","getAttribute","parentNode","className","click_peb","click","sms","$root","$$childHead","userSessionManagerService","getInterfaceLanguage","detailsBaseEdu","detailsBaseReg","exclude","grpA","grpB","getPatronGrp","personalInfoService","personalInfo","patron","patronstatus","registration","institution","patronstatuscode","grpLabelA","labelA","grpLabelB","labelB","test","testPersonalInfo","Promise","persInfoAv","persInfoNotAv","setTimeout","getAlert","ga","almaHowToGetitService","reqAlert","_htmlMsg","myEl2","addClass","removeClass","service","jwtHelper","jwt","sessionStorage","getItem","decodeToken","userIp","isGuest","decodedToken","userGroup","userName","userIP","found","parseInt","usrNme"],"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<t.length;i++)o(t[i]);return o}return r})()","//import {availabilityline_comp} from './prm-search-result-availability-line-after/availabilityline.component';\r\nvar briefview_module = angular.module('briefviewModule', ['angularLoad']);\r\nbriefview_module.component('prmSearchResultAvailabilityLineAfter', require('./prm-search-result-availability-line-after/availabilityline.component.js'));\r\nbriefview_module.component('prmPdfArticleLink', require('./prm-search-result-availability-line-after/pdf_article_link.component.js'));\r\nbriefview_module.component('prmPublisherLink', require('./prm-search-result-availability-line-after/publisher_link.component.js'));\r\nbriefview_module.component('prmCollectionLink', require('./prm-search-result-availability-line-after/collection_link.component.js'));\r\n","\"use strict\";\r\n\r\n/* Ce module englobe à la fois un script de l'ETH pour les archives et les\r\nscripts de l'EPFL\r\nETH: primo-explore\\custom\\src\\js\\slsp\\slsp-archives-viewit\\js\\slsp-archives-viewit.module.js\r\n */\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n\r\n template: `<prm-collection-link after-ctrl=\"$ctrl\"></prm-collection-link>\r\n <prm-publisher-link after-ctrl=\"$ctrl\"></prm-publisher-link>\r\n <prm-pdf-article-link after-ctrl=\"$ctrl\"></prm-pdf-article-link>\r\n <prm-eth-search-result-availability-line-after after-ctrl=\"$ctrl\"></prm-eth-search-result-availability-line-after>`//availabilitylineHtml,\r\n}\r\n","\"use strict\";\r\n\r\nimport {collectionLinkHtml} from './collection_link.html';\r\n\r\nmodule.exports = {\r\n bindings: {afterCtrl: '<'},\r\n controller: require ('./collection_link.controller.js'),\r\n template: collectionLinkHtml,\r\n}\r\n","module.exports = ['$filter', '$http', 'userService', function($filter, $http, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n var vm = this\r\n\r\n // Obtenir l'url d'une série.\r\n vm.get_collection_url = function(){\r\n if (vm.hasOwnProperty('collection_url')){\r\n return vm.collection_url;\r\n }\r\n try {\r\n var series = vm.parentCtrl.result.pnx.display.series;\r\n if (!Array.isArray(series)) {throw new Error('Notice without series');}\r\n } catch (e) {\r\n return null;\r\n }\r\n for (const serie of series){\r\n\r\n var m = serie.match(/\\$\\$Q(.*)\\$\\$Z(99\\d{16})/);\r\n\r\n if (m){\r\n\r\n if (!vm.parentCtrl.$stateParams.lang) {\r\n var lang = '';\r\n } else {\r\n var lang = `&lang=${vm.parentCtrl.$stateParams.lang}`;\r\n }\r\n vm.collection_title = m[1];\r\n vm.collection_url = `${ window.location.origin }/discovery/fulldisplay?vid=${ vm.parentCtrl.$stateParams.vid }&tab=${ vm.parentCtrl.$stateParams.tab }&docid=alma${ m[2] }&context=${ vm.parentCtrl.$stateParams.context }${ lang }`;\r\n return vm.collection_url;\r\n }\r\n\r\n }\r\n }\r\n\r\n // console.log(vm);\r\n}]\r\n","\"use strict\";\r\n\r\nimport {pdfArticleLinkHtml} from './pdf_article_link.html';\r\n\r\nmodule.exports = {\r\n bindings: {afterCtrl: '<'},\r\n controller: require ('./pdf_article_link.controller.js'),\r\n template: pdfArticleLinkHtml,\r\n}\r\n","module.exports = ['$filter', '$http', 'userService', function($filter, $http, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n var vm = this\r\n\r\n // Extrait le DOI brut depuis une chaîne de caractères\r\n function parse_doi(txt){\r\n var re = /10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+/i;\r\n var m = txt.match(re);\r\n if (m){\r\n return m[0]\r\n }\r\n }\r\n\r\n /* Teste si l'utilisateur est sur le range EPFL afin de décider s'il faut\r\n faut ou non afficher le lien direct */\r\n vm.is_epfl_IP = userService.isEpflIP();\r\n\r\n vm.get_doi = function(){\r\n if (vm.parentCtrl.hasOwnProperty('result') && vm.parentCtrl.result.hasOwnProperty('pnx')){\r\n var pnx = vm.parentCtrl.result.pnx;\r\n\r\n // Recherche dans la section addata\r\n if ('addata' in pnx && 'doi' in pnx.addata && parse_doi(pnx.addata.doi[0]) && pnx.control.hasOwnProperty('recordtype') && pnx.control.recordtype[0]==='article') {\r\n return parse_doi(pnx.addata.doi[0])\r\n }\r\n\r\n // Recherche dans la section display\r\n if ('display' in pnx && 'identifier' in pnx.display) {\r\n for (const identifier of pnx.display.identifier){\r\n if (parse_doi(identifier)){\r\n return parse_doi(identifier)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.check_doi = function(){\r\n if (!vm.hasOwnProperty('doi')){\r\n if (vm.parentCtrl.hasOwnProperty('result') && vm.parentCtrl.result.hasOwnProperty('pnx')){\r\n if (vm.get_doi()){\r\n vm.doi = vm.get_doi();\r\n vm.set_url_pdf()\r\n\r\n } else {\r\n vm.doi = null;\r\n }\r\n }\r\n }\r\n if (vm.hasOwnProperty('pdf_link')) {\r\n return true\r\n }\r\n return false\r\n }\r\n vm.set_url_pdf = function(){\r\n var url = `https://public-api.thirdiron.com/public/v1/libraries/183/articles/doi/${vm.doi}?access_token=adc54dee-c6a6-4b99-a917-2ed400f1f2d3`;\r\n $http({\r\n method: 'GET',\r\n url: url\r\n }).then(function successCallback(response) {\r\n // console.log(response);\r\n if (response.status === 200) {\r\n try{\r\n var pdf_link = response.data.data.fullTextFile;\r\n } catch(e){\r\n var pdf_link = '';\r\n }\r\n if (pdf_link.length > 0) {\r\n vm.pdf_link = pdf_link;\r\n }\r\n }\r\n // console.log(vm.pdf_link);\r\n }, function errorCallback(response) {\r\n vm.doi = null;\r\n });\r\n\r\n }\r\n\r\n // console.log(vm);\r\n}]\r\n","\"use strict\";\r\n\r\nimport {publisherLinkHtml} from './publisher_link.html';\r\n\r\nmodule.exports = {\r\n bindings: {afterCtrl: '<'},\r\n controller: require ('./publisher_link.controller.js'),\r\n template: publisherLinkHtml,\r\n}\r\n","module.exports = ['$filter', '$http', 'userService', '$element', function($filter, $http, userService, $element) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n var vm = this\r\n\r\n vm.is_epfl_IP = userService.isEpflIP();\r\n\r\n // Vérifie si une ressource vient de CDI\r\n vm.is_pc = function(){\r\n return vm.parentCtrl.result.context === 'PC';\r\n }\r\n vm.is_ebook = function(){\r\n if (vm.parentCtrl.result.pnx.control.hasOwnProperty('recordtype')){\r\n return vm.parentCtrl.result.pnx.control.recordtype[0].indexOf('book')!==-1;\r\n } else if (vm.parentCtrl.result.pnx.display.hasOwnProperty('type')){\r\n return vm.parentCtrl.result.pnx.display.type[0].toLowerCase().indexOf('book')!==-1;\r\n } else {\r\n return false;\r\n }\r\n }\r\n vm.is_article = function(){\r\n if (vm.parentCtrl.result.pnx.control.hasOwnProperty('recordtype')){\r\n return vm.parentCtrl.result.pnx.control.recordtype[0].indexOf('article')!==-1;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n vm.is_data_available = function(){\r\n return Boolean(vm.parentCtrl.result && vm.parentCtrl.result.pnx && vm.parentCtrl.result.delivery);\r\n }\r\n vm.is_fulltext = function(){\r\n let availability = vm.parentCtrl.result.delivery.availability\r\n return availability.indexOf('fulltext')!==-1 || availability.indexOf('not_restricted')!==-1;\r\n }\r\n\r\n vm.is_publisher_url = function(){\r\n if (!vm.checked && vm.is_data_available() && vm.is_epfl_IP && (vm.is_ebook() || vm.is_article())) {\r\n if (!vm.parentCtrl.isFullView && vm.is_fulltext() && vm.is_pc()){\r\n vm.checked = true;\r\n let url = `${ window.location.origin }/primaws/rest/pub/pcDelivery/${vm.parentCtrl.result.pnx.control.recordid[0]}?vid=${vm.parentCtrl.$stateParams.vid}`;\r\n $http.post(url, {doc:vm.parentCtrl.result}).then((e) => {\r\n vm.publisher_url = e.data.delivery.electronicServices[0].serviceUrl;\r\n vm.place_to_insert = $element[0].parentElement.parentElement.children[0].replaceWith('');\r\n });\r\n } else if (!vm.parentCtrl.isFullView && vm.is_fulltext() && !vm.is_pc()){\r\n vm.checked = true;\r\n let url = `${ window.location.origin }/primaws/rest/pub/edelivery/${vm.parentCtrl.result.pnx.control.recordid[0]}?vid=${vm.parentCtrl.$stateParams.vid}`;\r\n $http.post(url, {doc:vm.parentCtrl.result}).then((e) => {\r\n vm.publisher_url = e.data.electronicServices[0].serviceUrl;\r\n vm.place_to_insert = $element[0].parentElement.parentElement.children[0].replaceWith('');\r\n })\r\n } else if (vm.parentCtrl.isFullView && vm.parentCtrl.result.delivery.GetIt1 && typeof(vm.parentCtrl.result.delivery.GetIt1)==='object') {\r\n vm.checked = true;\r\n let rank = vm.parentCtrl.result.delivery.availability.indexOf('not_restricted')\r\n if (rank !== -1) {\r\n vm.publisher_url = vm.parentCtrl.result.delivery.GetIt1[0].links[rank].link;\r\n vm.place_to_insert = $element[0].parentElement.parentElement.children[0].replaceWith('');\r\n }\r\n } else if (!vm.is_fulltext()){\r\n vm.checked = true;\r\n }\r\n }\r\n return vm.hasOwnProperty('publisher_url');\r\n }\r\n\r\n console.log(vm);\r\n}]\r\n","(function () {\r\n var homepage_module = angular.module('databasesModule', ['angularLoad']);\r\n homepage_module.component('prmTreeNavAfter', require('./treenav.component.js'));\r\n})()\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: Ne fait rien pour le moment\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$filter', function($filter) {\r\n var vm = this;\r\n // console.log(vm);\r\n }],\r\n // template: `<div>TEST</div>`,\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\nangular\r\n .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: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Service payant:</span></b><b> les collaborateurs et les étudiants de l’EPFL peuvent bénéficier de ce service gratuitement, en utilisant le formulaire:</b>\",\r\n en: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Fee-based service:</span></b><b> EPFL employees and students can benefit from this service free of charge by using the form:</b>\",\r\n de: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Kostenpflichtiger Service:</span></b><b> Mitarbeitern und Studenten der EPFL steht dieser Dienst über das Fernleihe-Formular gratis zur Verfügung.</b>\",\r\n it: \"<b><span class=\\\"bigfont\\\" style=\\\"font-size:20px\\\">Servizio a pagamento:</span></b><b> I dipendenti e gli studenti dell'EPFL possono usufruire gratuitamente di questo servizio utilizzando il modulo:</b>\"\r\n },\r\n costWarningScanEPFL:{\r\n fr: \"<b>Service gratuit pour les collaborateurs et les étudiants EPFL.</b>\",\r\n en: \"<b>Free of charge for EPFL staff and students.</b>\",\r\n de: \"<b>Service für Mitarbeiter und Studenten der EPFL kostenlos</b>\",\r\n it: \"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.<b>\"\r\n },\r\n costWarningNetworkLoan:{\r\n fr: \"<b>Service gratuit en cas de retrait à la Bibliothèque de l’EPFL.</b>\",\r\n en: \"<b>Free of charge if withdrawal at the EPFL Library.</b>\",\r\n de: \"<b>Service bei Abholung in der EPFL-Bibliothek kostenlos.</b>\",\r\n it: \"<b>Servizio gratuito in caso di ritiro alla Biblioteca dell’EPFL</b>\"\r\n },\r\n costWarningPEB:{\r\n fr: \"<b>Service gratuit pour les collaborateurs et les étudiants de l’EPFL.</b> 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: \"<b>Free of charge for EPFL staff and students.</b> 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: \"<b>Kostenloser Service für Mitarbeiter und Studenten der EPFL.</b> 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: \"<b>Servizio gratuito per i dipendenti e gli studenti dell’EPFL.</b> 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 <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/ressources-informatiques/network-services-reseau/acces-intranet-a-distance/clients-vpn-disponibles/\\\">VPN</a> EPFL.\",\r\n en: \"Electronic resources are accessible from all EPFL workstations, and remotely via the EPFL <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a>.\",\r\n de: \"Elektronische Informationsressourcen sind an allen EPFL-Arbeitsplätzen und per EPFL <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a> abrufbar.\",\r\n it: \"Le risorse elettroniche sono accessibili da tutte le postazioni di lavoro dell'EPFL e a distanza tramite <a target=\\\"_blank\\\" href=\\\"https://www.epfl.ch/campus/services/en/it-services/network-services/remote-intranet-access/vpn-clients-available/\\\">VPN</a> 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: \"I have a problem accessing the electronic resource below. Please let me know when the access will be restored.\",\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 pdfAccess:{\r\n fr: \"Accès direct au pdf\",\r\n en: \"Direct access to the pdf\",\r\n de: \"Direct access to the pdf\",\r\n it: \"Direct access to the pdf\"\r\n },\r\n seriesLink:{\r\n fr: \"Collection :\",\r\n en: \"Serie:\",\r\n de: \"Serie:\",\r\n it: \"Serie:\"\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","\"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\r\nangular\r\n .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","\"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 Englobe un module d'archive de l'ETH et un module de l'EPFL.\r\n ETH: primo-explore\\custom\\src\\js\\slsp\\slsp-archives-viewit\\js\\slsp-archives-viewit.module.js\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n template: `<div><prm-epfl-alma-viewit-after after-ctrl=\"$ctrl\"></prm-epfl-alma-viewit-after>\r\n <prm-eth-alma-viewit-after after-ctrl=\"$ctrl\"></prm-eth-alma-viewit-after></div>`}\r\n","\"use strict\";\r\n\r\nimport {epfl_almaviewit_html} from './epfl_almaviewit.html'\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: {afterCtrl: '<'},\r\n controller: require('./epfl_almaviewit.controller.js'),\r\n template: epfl_almaviewit_html}\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 = ['$filter', 'userService', function($filter, userService) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\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\\slsp-ill-signin-order-logged-out\\js\\epfl-ill-signin-order-logged-out.module.js */\r\n vm.is_epfl_IP = userService.isEpflIP();\r\n vm.user_ip = userService.get_ip();\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('<b>ISBN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(/<b>/g, '');\r\n } else if (ident.indexOf('<b>ISSN') > -1) {\r\n identifier = vm.parentCtrl.item.pnx.display.identifier.join(', ').replace(/<\\/b>/g, '').replace(/<b>/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: ' + vm.user_ip + '\\nRange EPFL: ' + vm.is_epfl_IP + '\\n****';\r\n\r\n vm.feedbackLink = 'mailto:eresources@epfl.ch' + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body) + '&Content-Type=text/html';\r\n }\r\n\r\n }]\r\n","\r\nvar fullview_module = angular.module('fullviewModule', ['angularLoad']);\r\nfullview_module.component('prmAlmaViewitAfter', require('./almaviewit.component.js'));\r\nfullview_module.component('prmEpflAlmaViewitAfter', require('./epfl_almaviewit.component.js'));\r\n","module.exports = {active: true,\r\n txt:\r\n {fr: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>Le réseau NEBIS a pris fin le 7 décembre 2020 pour être remplacé par un nouveau réseau plus vaste : <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/fr\">swisscovery</a></p></div>\r\n </div>`,\r\n en: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>The NEBIS network ended on December 7, 2020. It has been replaced by <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/it\">swisscovery</a>: a new and wider network.</p></div>\r\n </div>`,\r\n de: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>Das NEBIS-Netzwerk wurde am 07.12.2020 abgeschaltet und durch ein neues, grösseres Netzwerk ersetzt: <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/de\">swisscovery</a></p></div>\r\n </div>`,\r\n it: `<div class=\"info-symbol\" style=\\\"text-align:left\\\">\r\n <div><p>La rete NEBIS è stata sciolta il 7 dicembre 2020 per essere sostituita da una rete piú ampia di biblioteche: <a class=\"md-primoExplore-theme\" href=\"https://slsp.ch/it\">swisscovery</a></p></div>\r\n </div>`},\r\n begin:\"2020-01-04T00:00:00Z\",\r\n end:\"2021-03-31T12:00:00Z\"}\r\n","var homepage_module = angular.module('homepageModule', ['angularLoad']);\r\nhomepage_module.component('prmSearchBarAfter', require('./searchbar.component.js'));\r\nhomepage_module.component('prmMainMenuAfter', require('./mainmenu.component.js'));\r\nhomepage_module.component('prmTopbarAfter', require('./topbar.component.js'));\r\n","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: corriger le lien du menu principal vers les bases de données.\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$location', '$translate', '$element', function($location, $translate, $element) {\r\n var vm = this;\r\n this.$doCheck = function() {\r\n if (document.readyState === 'complete' /*&& !vm.modified*/){\r\n try{var elem = document.querySelector(\"[translate='mainmenu.label.db']\").parentElement;}\r\n catch(e){\r\n vm.modified = false;\r\n }\r\n if (elem){\r\n elem.removeAttribute('target');\r\n elem.setAttribute('aria-label', 'Databases');\r\n vm.modified = true;\r\n }\r\n }\r\n };\r\n // console.log(vm.url);\r\n }]\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: '<div class=\"epfl-alert-message\" ng-if=\"ctrl.active\" ng-bind-html=\"ctrl.get_txt() \"></div>',\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","\"use strict\";\r\n\r\n/*\r\n OBJECTIF: afficher l'entête de la page.\r\n REMARQUES: contient le titre BEAST, le teaser, le fil d'ariance. Le controlleur vérifie\r\n si on se trouve dans le compte de lecteur afin de paramétrer le fil d'ariane.\r\n*/\r\n\r\nmodule.exports = {\r\n bindings: {parentCtrl: '<'},\r\n controllerAs: 'ctrl',\r\n controller: ['$location', '$translate', '$element', function($location, $translate, $element) {\r\n var vm = this;\r\n vm.url = window.location.href.split('?')[0] + '?vid=' + vm.parentCtrl.configurationUtil.vid + '&lang=' + $translate.use();\r\n // console.log(vm.url);\r\n }],\r\n template: `<div class=\"main-title\"><h1><a href=\"{{ ::ctrl.url }}\">{{ 'mainTitle' | customTranslate }}</a></h1><h2>{{ 'subTitle' | customTranslate }}</h2></div>`\r\n //templateUrl: './custom/41SLSP_EPF-prod/js/homepage/templates/topbar.html'\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\n\r\nimport './filters/custom_translate.filter.js';\r\nimport './filters/trust_html.filter.js';\r\nimport './slsp/slsp-courier-info';\r\nimport './slsp/slsp-ill-signin-order-logged-out';\r\nimport './slsp/slsp-ill-signin-order-alert';\r\nimport './slsp/slsp-edit-personal-details';\r\nimport './slsp/prm-locations-after';\r\nimport './slsp/prm-location-items-after';\r\nimport './slsp/slsp-archives-htgi';\r\nimport './slsp/slsp-archives-viewit';\r\nimport './briefview';\r\nimport './homepage';\r\nimport './fullView'\r\nimport './databases';\r\nvar app = angular.module('viewCustom', ['angularLoad',\r\n 'customTranslateFilter',\r\n 'trustHtmlFilter',\r\n 'epflCourierInfo',\r\n 'epflIllSigninOrderLoggedOut',\r\n 'slspIllSigninOrderAlert',\r\n 'epflEditPersonalDetails',\r\n 'ethLocationsAfterModule',\r\n 'ethLocationItemsAfterModule',\r\n 'slspArchivesHtgi',\r\n 'slspArchivesViewit',\r\n 'briefviewModule',\r\n 'homepageModule',\r\n 'fullviewModule',\r\n 'databasesModule'\r\n ]);\r\n","import {ethLocationItemsFilterModule} from './eth-location-items-filter/eth-location-items-filter.module';\r\nimport {epflIButtonModule} from './slsp-i-button/epfl-i-button.module';\r\n\r\nexport const ethLocationItemsAfterModule = angular\r\n .module('ethLocationItemsAfterModule', [])\r\n .component('prmLocationItemsAfter', {\r\n bindings: {parentCtrl: '<'},\r\n template: `<eth-location-items-filter-component after-ctrl=\"$ctrl\"></eth-location-items-filter-component><epfl-i-button-component after-ctrl=\"$ctrl\"></epfl-i-button-component>`\r\n });\r\n\r\nethLocationItemsAfterModule.requires.push(ethLocationItemsFilterModule.name);\r\nethLocationItemsAfterModule.requires.push(epflIButtonModule.name);\r\n","export class ethLocationItemsFilterController {\r\n\r\n constructor($timeout, $scope) {\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n }\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$scope.$watch('this.$ctrl.parentCtrl.loc.location.librarycodeTranslation', (newValue, oldValue, scope) => {\r\n \r\n if(!scope.$ctrl.parentCtrl.isLocationsFilterVisible && newValue && newValue != ''){\r\n \r\n this.$scope.$watch('this.$ctrl.parentCtrl.loc.items', (currentItemsArray) => {\r\n\r\n if (angular.isArray(currentItemsArray) && currentItemsArray.length > 1){\r\n \r\n this.$timeout(() => {\r\n scope.$ctrl.parentCtrl.isLocationsFilterVisible = true;\r\n }, 0);\r\n \r\n } \r\n \r\n })\r\n }\r\n\r\n }, true);\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ethLocationItemsFilterController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n}\r\n\r\nethLocationItemsFilterController.$inject = ['$timeout', '$scope'];\r\n\r\n","/**\r\n* @ngdoc module\r\n* @name ethLocationsFilterModule\r\n*\r\n* @description\r\n*\r\n* Customization for the locations filter:<br>\r\n* - the locations filter is visible by default\r\n*\r\n* If there is 1 location: prmLocationItemsAfter\r\n*\r\n* If there are multiple locations: prmLocationAfter;\r\n* after all locations: prmLocationsAfter;\r\n* after choosing a location: prmLocationItemsAfter\r\n*\r\n*\r\n* <b>AngularJS Dependencies</b><br>\r\n*\r\n*\r\n* <b>CSS/Image Dependencies</b><br>\r\n* CSS eth-locations-filter.css\r\n*\r\n*\r\n*/\r\nimport {ethLocationItemsFilterController} from './eth-location-items-filter.controller';\r\n\r\nexport const ethLocationItemsFilterModule = angular\r\n .module('ethLocationItemsFilterModule', [])\r\n .controller('ethLocationItemsFilterController', ethLocationItemsFilterController)\r\n .component('ethLocationItemsFilterComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'ethLocationItemsFilterController'\r\n })\r\n","\r\n\r\n//--------\"i\" button ---------------------------------------\r\n\r\n\r\n export class epflIButtonController {\r\n\r\n constructor() {}\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n // console.log(this);\r\n this.getLibrary = getLibrary;\r\n this.biblinkText = \"Library\";\r\n this.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n this.getLibraryUrl = getLibraryUrl;\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n\r\n function getLibrary() {\r\n return this.parentCtrl.currLoc ? this.parentCtrl.currLoc.location.librarycodeTranslation : '';\r\n\r\n }\r\n\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n function getLibraryUrl() {\r\n if (this.parentCtrl.loc && this.parentCtrl.loc.location.libraryCode==='E02') {\r\n return \"https://go.epfl.ch/library\";\r\n } else {\r\n return this.biblinkBase;\r\n }\r\n }\r\n // View is useful to get the url img\r\n this.view = this.parentCtrl.configurationUtil.vid.replace(':', '-');\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: slspIButtonController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }\r\n\r\n epflIButtonController.$inject = [];\r\n","\r\n\r\n//--------\"i\" button ---------------------------------------\r\n\r\n// angular\r\n// .module('slspIButton', [])\r\n\r\n// .controller('LibInfoController', [function () {\r\n// var vm = this;\r\n// vm.getLibrary = getLibrary;\r\n// vm.biblinkText = \"Library\";\r\n// vm.biblinkBase = \"https:\\/\\/slsp.ch\\/libraries\";\r\n\r\n// function getLibrary() {\r\n// return vm.parentCtrl.currLoc.location.librarycodeTranslation;\r\n// }\r\n\r\n// }])\r\n\r\n// .component('prmLocationItemsAfter', {\r\n// bindings: { parentCtrl: '<' },\r\n// controller: 'LibInfoController',\r\n// template: '<div layout=\"row\" class=\"LibInfo\" layout-align=\"start center\"><span class=\"md-subhead\"><a ng-href=\"{{ $ctrl.biblinkBase }}\" target=\"_blank\"><img width=\"35px\" ng-src=\"/discovery/custom/41SLSP_NETWORK-CENTRAL_PACKAGE/img/information.png\" />{{ $ctrl.getLibrary() }}</a></span></div>'\r\n// });\r\n\r\n\r\n\r\n import {epflIButtonController} from './epfl-i-button.controller';\r\n import {epflIButtonHtml} from './epfl-i-button.html';\r\n\r\n export const epflIButtonModule = angular\r\n .module('epflIButtonModule', [])\r\n .controller('epflIButtonController', epflIButtonController)\r\n .component('epflIButtonComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'epflIButtonController',\r\n template: epflIButtonHtml\r\n })\r\n","import {ethLocationsFilterModule} from './eth-locations-filter/eth-locations-filter.module';\r\n\r\nexport const ethLocationsAfterModule = angular\r\n .module('ethLocationsAfterModule', [])\r\n .component('prmLocationsAfter', {\r\n bindings: {parentCtrl: '<'},\r\n template: `<eth-locations-filter-component after-ctrl=\"$ctrl\"></eth-locations-filter-component>`\r\n });\r\n\r\nethLocationsAfterModule.requires.push(ethLocationsFilterModule.name);\r\n","export class ethLocationsFilterController {\r\n\r\n constructor($timeout, $scope) {\r\n this.$timeout = $timeout;\r\n this.$scope = $scope;\r\n }\r\n\r\n $onInit() {\r\n try{\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$scope.$watch('this.$ctrl.parentCtrl.locations[0].location.librarycodeTranslation', (newValue, oldValue, scope) => {\r\n if(!scope.$ctrl.parentCtrl.isLocationsFilterVisible && newValue && newValue != ''){\r\n this.$timeout(() => {\r\n scope.$ctrl.parentCtrl.isLocationsFilterVisible = true;\r\n }, 0);\r\n }\r\n }, true);\r\n }\r\n catch(e){\r\n console.error(\"***ETH*** an error occured: ethLocationsFilterController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n}\r\n\r\nethLocationsFilterController.$inject = ['$timeout', '$scope'];\r\n","/**\r\n* @ngdoc module\r\n* @name ethLocationsFilterModule\r\n*\r\n* @description\r\n*\r\n* Customization for the locations filter:<br>\r\n* - the locations filter is visible by default\r\n*\r\n* If there is 1 location: prmLocationItemsAfter\r\n*\r\n* If there are multiple locations: prmLocationAfter;\r\n* after all locations: prmLocationsAfter;\r\n* after choosing a location: prmLocationItemsAfter\r\n*\r\n*\r\n* <b>AngularJS Dependencies</b><br>\r\n*\r\n*\r\n* <b>CSS/Image Dependencies</b><br>\r\n* CSS eth-locations-filter.css\r\n*\r\n*\r\n*/\r\nimport {ethLocationsFilterController} from './eth-locations-filter.controller';\r\n\r\nexport const ethLocationsFilterModule = angular\r\n .module('ethLocationsFilterModule', [])\r\n .controller('ethLocationsFilterController', ethLocationsFilterController)\r\n .component('ethLocationsFilterComponent', {\r\n bindings: {afterCtrl: '<'},\r\n controller: 'ethLocationsFilterController'\r\n })\r\n","require('./js/slsp-archives-htgi.module.js')\r\nmodule.exports = 'slspArchivesHtgi'\r\n","angular\r\n .module('slspArchivesHtgi', [])\r\n\r\n // \"how to get it\" section for resources of archives MFA, TMA (CMI STAR)\r\n\r\n .controller('ArchivesHtgiController', [function () {\r\n\r\n this.$onInit = function () {\r\n try{\r\n if(!this.parentCtrl.item.pnx.display.source || this.parentCtrl.item.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.item.pnx.display.source[0];\r\n // CMI STAR sources\r\n if(this.source === 'ETH_MaxFrischArchiv' || this.source === 'ETH_ThomasMannArchiv'){\r\n // hide content of htgi section\r\n let section = document.getElementById('full-view-container');\r\n section.classList.add('slsp-archives-hide');\r\n\r\n // get guid of CMIStar\r\n let sourceid = this.parentCtrl.item.pnx.control.originalsourceid[0];\r\n let guid = sourceid.substring(sourceid.lastIndexOf(':') + 1);\r\n\r\n // different sources: concat url\r\n if(this.source === 'ETH_ThomasMannArchiv'){\r\n this.url = 'http://www.online.tma.ethz.ch/home/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Detailed information in Thomas Mann-Archiv Online (metadata only)';\r\n }\r\n else if (this.source === 'ETH_MaxFrischArchiv') {\r\n this.url = 'http://maxfrischarchiv-online.ethz.ch/home/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Request via Max Frisch-Archiv Online';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesHtgiController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n\r\n .component('almaHtgiSvcAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'ArchivesHtgiController',\r\n template: `\r\n <div class=\"slsp-archives\" ng-if=\"$ctrl.url\">\r\n <md-list layout=\"column\" class=\"separate-list-items md-primoExplore-theme layout-column\" role=\"list\">\r\n <md-list-item role=\"listitem\" ng-href=\"{{$ctrl.url}}\" target=\"_blank\">\r\n <span>{{('customized.archives.' + $ctrl.source + '.linktext' | translate)}}</span>\r\n <span>{{$ctrl.label}}</span>\r\n <div class=\"md-secondary\">\r\n <prm-icon icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\" class=\"layout-margin\"/>\r\n </div>\r\n </md-list-item>\r\n </md-list>\r\n <div ng-if=\"$ctrl.source === 'ETH_ThomasMannArchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.text1\">No request possible. The digitized item can be consulted in the Thomas Mann Archives reading room upon advance registration (</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"https://tma.ethz.ch/utils/kontakt.html\">\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.linktext2\">Contact</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_ThomasMannArchiv.text2\">).</span>\r\n </div>\r\n </div>\r\n <div ng-if=\"$ctrl.source === 'ETH_MaxFrischArchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.text1\">Informationen zu Bestellung und Benutzung siehe</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"http://maxfrischarchiv-online.ethz.ch/home/#/manual\">\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.linktext2\">Bedienungshinweise</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_MaxFrischArchiv.text2\">.</span>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n });\r\n","require('./js/slsp-archives-viewit.module.js')\r\nmodule.exports = 'slspArchivesViewit'\r\n","angular\r\n.module('slspArchivesViewit', [])\r\n\r\n // .component('prmSearchResultAvailabilityLineAfter', { VERSION ETH\r\n //bindings: { parentCtrl: '<' },\r\n .component('prmEthSearchResultAvailabilityLineAfter', { // VERSION EPFL\r\n bindings: { afterCtrl: '<' },\r\n controller: 'ArchivesAvailabilityLineController'\r\n })\r\n\r\n .component('prmEthAlmaViewitAfter', {\r\n bindings: { afterCtrl: '<' },\r\n controller: 'ArchivesViewitController',\r\n template: `\r\n <div class=\"slsp-archives\" ng-if=\"$ctrl.url\">\r\n <md-list layout=\"column\" class=\"separate-list-items md-primoExplore-theme layout-column\" role=\"list\">\r\n <md-list-item role=\"listitem\" ng-href=\"{{$ctrl.url}}\" target=\"_blank\">\r\n <span>{{('customized.archives.' + $ctrl.source + '.linktext' | translate)}}</span>\r\n <span>{{$ctrl.label}}</span>\r\n <div class=\"md-secondary\">\r\n <prm-icon icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\" class=\"layout-margin\"/>\r\n </div>\r\n </md-list-item>\r\n </md-list>\r\n <div ng-if=\"$ctrl.source === 'ETH_Hochschularchiv'\" class=\"slsp-archives-additional-hint\">\r\n <div>\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.text1\">Informationen zu Bestellung und Benutzung siehe</span>\r\n <a target=\"_blank\" rel=\"noopener\" ng-href=\"http://archivdatenbank-online.ethz.ch/hsa/#/manual\">\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.linktext2\">Bedienungshinweise</span>\r\n <prm-icon external-link icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"open-in-new\"></prm-icon>\r\n </a>\r\n <span translate=\"customized.archives.ETH_Hochschularchiv.text2\">.</span>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n })\r\n\r\n // viewit section for archives when there are only partial digitized items, e.g. \"ETH Hochschularchiv\" (CMI STAR)\r\n .controller('ArchivesViewitController', ['$translate', function ($translate) {\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n this.$onInit = function () {\r\n try{\r\n if(!this.parentCtrl.item.pnx.display.source || this.parentCtrl.item.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.item.pnx.display.source[0];\r\n // CMI STAR sources\r\n if(this.source === 'ETH_Hochschularchiv'){\r\n if(this.parentCtrl.item.delivery.GetIt1 && this.parentCtrl.item.delivery.GetIt1.length > 0 && this.parentCtrl.item.delivery.GetIt1[0].links && this.parentCtrl.item.delivery.GetIt1[0].links.length > 0){\r\n\r\n // there is an online resource: return and do nothing\r\n let aOnlineLink = this.parentCtrl.item.delivery.GetIt1[0].links.filter( l => {\r\n if(l.isLinktoOnline && l.link !== ''){\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (aOnlineLink.length > 0) {\r\n return;\r\n }\r\n\r\n // there is no online resource\r\n // change section heading\r\n $translate('nui.getit.service_howtogetit').then((translation) => {\r\n let fullView = document.getElementById('fullView');\r\n angular.element(fullView.querySelector(\"h4[translate='nui.getit.service_viewit']\")).text(translation);\r\n angular.element(fullView.querySelector(\"#services-index span[translate='nui.getit.service_viewit']\")).text(translation);\r\n });\r\n\r\n }\r\n // hide content of viewit section\r\n let section = document.getElementById('full-view-container');\r\n section.classList.add('slsp-archives-hide');\r\n\r\n // get guid of CMIStar\r\n let sourceid = this.parentCtrl.item.pnx.control.originalsourceid[0];\r\n let guid = sourceid.substring(sourceid.lastIndexOf(':') + 1);\r\n\r\n // different sources: concat url\r\n if(this.source === 'ETH_Hochschularchiv'){\r\n this.url = 'http://archivdatenbank-online.ethz.ch/hsa/#/content/' + guid;\r\n // only for test\r\n //this.label = 'Bestellen über Hochschularchiv Online';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesViewitController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n\r\n // change availability line, if there is no digitization\r\n .controller('ArchivesAvailabilityLineController', ['$translate', function ($translate) {\r\n this.$onInit = function () {\r\n try{\r\n /********************/\r\n /* DEBUT AJOUT EPFL */\r\n /********************/\r\n this.parentCtrl = this.afterCtrl.parentCtrl;\r\n /********************/\r\n /* FIN AJOUT EPFL */\r\n /********************/\r\n this.changeButton = false;\r\n if(!this.parentCtrl.result.pnx.display.source || this.parentCtrl.result.pnx.display.source.length === 0){\r\n return;\r\n }\r\n this.source = this.parentCtrl.result.pnx.display.source[0];\r\n if(!this.source === 'ETH_Hochschularchiv')return;\r\n if(!this.parentCtrl.result.delivery.GetIt1 || this.parentCtrl.result.delivery.GetIt1.length == 0 || !this.parentCtrl.result.delivery.GetIt1[0].links || this.parentCtrl.result.delivery.GetIt1[0].links.length == 0)return;\r\n\r\n let aOnlineLink = this.parentCtrl.result.delivery.GetIt1[0].links.filter( l => {\r\n if(l.isLinktoOnline && l.link !== ''){\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (aOnlineLink.length === 0) {\r\n // there is no online resource\r\n $translate('delivery.code.no_inventory').then((translation) => {\r\n this.changeButton = true;\r\n this.changeButtonText = translation;\r\n });\r\n let availabilityLine = this.parentCtrl.$element[0];\r\n if(availabilityLine) {\r\n availabilityLine.classList.add('slsp-hsa-no-online');\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***SLSP*** an error occured: ArchivesAvailabilityLineController\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n\r\n this.$doCheck = function () {\r\n try{\r\n if (this.changeButton){\r\n let availabilityLine = this.parentCtrl.$element[0];\r\n let button = availabilityLine.querySelector('.availability-status');\r\n if(angular.element(button) && angular.element(button).length > 0){\r\n angular.element(button).html(this.changeButtonText);\r\n this.changeButton = false;\r\n this.changeButtonText = '';\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.error(\"***ETH*** an error occured: ArchivesAvailabilityLineController $doCheck\\n\\n\");\r\n console.error(e.message);\r\n }\r\n }\r\n }])\r\n","require('./js/epfl-courier-info.module.js')\r\nmodule.exports = 'slspCourierInfo'\r\n","/* ---------------- */\r\n/* - VERSION EPFL - */\r\n/* ---------------- */\r\n\r\n/*\r\n\r\nAVERTISSEMENT: ce module est très différent de sa version originale d'SLSP.\r\n\r\nIl doit donc être considéré comme réécrit et les ajouts ne sont pas indiqués.\r\n\r\nCe module permet d'afficher les boutons renvoyant à SWITCH edu-ID.\r\n\r\nFONCTIONNALITES:\r\n- Mettre l'EPFL en tête des possibilités de retrait.\r\n- Afficher les messages personnalisés pour les frais.\r\n\r\n*/\r\n\r\n angular\r\n .module('epflCourierInfo', [])\r\n\r\n .controller('CourierInfoController', ['$filter', '$element', function ($filter, $element, $compile, $scope, $rootScope) {\r\n var vm = this;\r\n\r\n //shortcut for convenience\r\n vm.form = $element[0].parentElement;\r\n\r\n //function for inserting block\r\n vm.$doCheck = function() {\r\n let form = false;\r\n let formLength = 2;\r\n // console.log(vm.form);\r\n if (vm.form.children[0].children[1] !== undefined && (vm.form.children[0].children[1].children[0] !== undefined || vm.typeFeeAlert()=='costWarningPEB')) {\r\n form = vm.form.children[0].children[1].children[0];\r\n if (vm.typeFeeAlert()=='costWarningPEB'){\r\n formLength = 3;\r\n }\r\n }\r\n else if (vm.form.children[0].children[0] !== undefined && vm.form.children[0].children[0].children[0] !== undefined) {\r\n form = vm.form.children[0].children[0].children[0];\r\n formLength = 3;\r\n }\r\n // console.log(vm.typeFeeAlert());\r\n\r\n //create and insert info block if not present\r\n // if (form){\r\n // // console.log('---' + String(formLength) + ' - ' + String(form.children.length));}\r\n if (form && form.children.length == formLength && form.children.length > 1 || vm.hasOwnProperty('currentTypeFeeAlert') &&\r\n vm.currentTypeFeeAlert != vm.typeFeeAlert()) {\r\n // console.log('cccc---' + String(formLength) + ' - ' + String(form.children.length));\r\n vm.currentTypeFeeAlert = vm.typeFeeAlert();\r\n var htmlwarning = `<div class=\"courier-info bar alert-bar\"><p>${vm.getFeeAlert()}</p>`;\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 += `<p><span class=\"button-confirm md-button md-primoExplore-theme md-ink-ripple\" onclick=\"${fn}\" \">${txt}</span></p>`;\r\n\r\n }\r\n htmlwarning += `<p><a href=\"${vm.parentCtrl.$translate.instant('customize.fullview.feesUrl')}\" target=\"_blank\">${vm.parentCtrl.$translate.instant('customize.fullview.feesLinkText')}</a></p></div>`;\r\n var htmlcompiled = angular.element(htmlwarning)[0];\r\n\r\n // console.log('---' + String(formLength) + ' - ' + String(form.children.length));\r\n if (form.children.length == formLength) {\r\n // console.log('---' + String(formLength) + ' - ' + String(form.children.length));\r\n form.insertBefore(htmlcompiled, form.children[formLength - 1]);\r\n } else {\r\n // console.log(String(formLength) + ' - ' + String(form.children.length));\r\n form.children[form.children.length - 2].replaceWith(htmlcompiled);\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\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 // console.log(vm);\r\n\r\n }])\r\n\r\n .component('prmRequestAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'CourierInfoController',\r\n });\r\n","require('./js/epfl-edit-personal-details.module.js')\r\nmodule.exports = 'epflEditPersonalDetails'\r\n","/* --------------------- */\r\n/* - Début ajouts EPFL - */\r\n/*\r\n\r\nCe module permet d'afficher les boutons renvoyant à SWITCH edu-ID.\r\n\r\n- \"this\" a été remplacé partout par une variable \"vm\". C'est indispensable\r\npour garder la bonne référence dans les promesses.\r\n- Les boutons sont ajoutés avant l'adresse ce qui ne peut pas passer par\r\nun template\r\n\r\n*/\r\n/* - Fin ajouts EPFL - */\r\n/* ------------------- */\r\n\r\n\r\nangular\r\n .module('epflEditPersonalDetails', [])\r\n\r\n\r\n\r\n //------------------------------ edit personal details ---------------------------\r\n\r\n .controller('EditPersonalDetailsController', ['$scope', '$element', '$translate' , function ($scope, $element, $translate) {\r\n var vm = this; // Ajout EPFL\r\n let lang = 'en';\r\n let sms = $scope.$root.$$childHead.$ctrl.userSessionManagerService;\r\n if (sms) {\r\n lang = sms.getInterfaceLanguage();\r\n }\r\n\r\n vm.detailsBaseEdu = \"https:\\/\\/eduid.ch\\/web\\/change-account-data\\/2\\/?lang=\" + lang;\r\n vm.detailsBaseReg = \"https:\\/\\/registration.slsp.ch\\/library-card\\/?lang=\" + lang;\r\n vm.exclude = ['STAFF', '11', '12', '13', '14', '15', '16', '91', '92'];\r\n vm.grpA = ['11', '91', '92']; // comptes locaux\r\n vm.grpB = ['12', '13', '14', '15', '16']; // comptes institutionnels\r\n\r\n\r\n vm.getPatronGrp = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let patron = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (!vm.exclude.includes(patron)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n vm.grpLabelA = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let labelA = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (vm.grpA.includes(labelA)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n vm.grpLabelB = function() {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n let labelB = vm.parentCtrl.personalInfoService.personalInfo.patronstatus[0].registration[0].institution[0].patronstatuscode;\r\n if (vm.grpB.includes(labelB)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /* --------------------- */\r\n /* - Début ajouts EPFL - */\r\n\r\n vm.test = 0;\r\n vm.testPersonalInfo = function() {\r\n /* Constructeur de la promesse. Cette promess échoue quand\r\n les informations utilisateur ne sont pas ou pas encore\r\n disponible. */\r\n return new Promise((persInfoAv, persInfoNotAv) => {\r\n if (vm.parentCtrl.personalInfoService.personalInfo !== undefined) {\r\n persInfoAv();\r\n } else {\r\n persInfoNotAv();\r\n }\r\n })\r\n }\r\n vm.persInfoAv = function() {\r\n /* Succès de la promesse: le groupe utilisateur a été trouvé et\r\n les boutons adéquats s'afichent. */\r\n let html = '<div class=\"btn-account\">';\r\n if (vm.grpLabelA()) {\r\n html += `<md-card-content flex=\"100\" class=\"bar courier-info layout-align-left-center layout-row\"><span>${vm.parentCtrl.$translate.instant('customized.libraries.details')}</span></md-card-content>`;\r\n }\r\n else if (vm.grpLabelB()) {\r\n html += `<md-card-content flex=\"100\" class=\"bar courier-info layout-align-left-center layout-row\"><span>${vm.parentCtrl.$translate.instant('customized.slsp.details')}</span></md-card-content>`;\r\n }\r\n else if (vm.getPatronGrp) {\r\n html += `<a href=\"${vm.detailsBaseEdu }\" target=\"_blank\">\r\n <md-card-content flex=\"100\" class=\"bar layout-align-left-center layout-row\">\r\n <prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"pencil\">\r\n <svg id=\"pencil_cache64\" viewBox=\"0 0 24 24\" y=\"696\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\r\n <path d=\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"></path>\r\n </svg>\r\n </prm-icon>\r\n <span class=\"md-subhead\" >${vm.parentCtrl.$translate.instant('customized.personal.details')}</span>\r\n </md-card-content>\r\n </a>\r\n <a href=\"${vm.detailsBaseReg}\" target=\"_blank\">\r\n <md-card-content flex=\"100\" class=\"bar layout-align-left-center layout-row\">\r\n <prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"account-card-details\">\r\n <svg id=\"account-card-details_cache63\" viewBox=\"0 0 24 24\" y=\"1176\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\r\n <path d=\"M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M14,6V7H22V6H14M14,8V9H21.5L22,9V8H14M14,10V11H21V10H14M8,13.91C6,13.91 2,15 2,17V18H14V17C14,15 10,13.91 8,13.91M8,6A3,3 0 0,0 5,9A3,3 0 0,0 8,12A3,3 0 0,0 11,9A3,3 0 0,0 8,6Z\"></path>\r\n </svg>\r\n </prm-icon>\r\n <span class=\"md-subhead\" >${vm.parentCtrl.$translate.instant('customized.libcard.number')}</span>\r\n </md-card-content>\r\n </a>`\r\n }\r\n\r\n html += '</div>';\r\n var htmlcompiled = angular.element(html)[0];\r\n var place_to_insert = $element[0].parentElement.children[1].children[0];\r\n place_to_insert.insertBefore(htmlcompiled, place_to_insert.children[1]);\r\n }\r\n vm.persInfoNotAv = function() {\r\n vm.test += 1;\r\n if (vm.test < 10) {\r\n /* En cas d'échec, on attend 0.5 second et on relance le test */\r\n setTimeout(() => vm.testPersonalInfo().then(vm.persInfoAv, vm.persInfoNotAv), 500);\r\n }\r\n }\r\n if (vm.test === 0) {\r\n /* Premier lancement du test pour voir si les infos utilisateur\r\n sont disponibles */\r\n vm.testPersonalInfo().then(vm.persInfoAv, vm.persInfoNotAv);\r\n }\r\n /* - Fin ajouts EPFL - */\r\n /* ------------------- */\r\n\r\n\r\n }])\r\n\r\n\r\n .component('prmPersonalInfoAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'EditPersonalDetailsController',\r\n /* Suppression EPFL */\r\n // template: '<md-card ng-if=\"$ctrl.grpLabelA()\" translate=\"customized.libraries.details\" flex=\"100\" class=\"bar alert-bar courier-info\"></md-card><md-card ng-if=\"$ctrl.grpLabelB()\" translate=\"customized.slsp.details\" flex=\"100\" class=\"bar alert-bar courier-info\"></md-card> <div layout=\"column\"> <md-button ng-if=\"$ctrl.getPatronGrp()\" href=\"{{ $ctrl.detailsBaseEdu }}\" target=\"_blank\" layout=\"row\" class=\"courier-info bar alert-bar layout-align-left-center layout-row\" layout-align=\"left center\"><span class=\"md-subhead\"><prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"pencil\"></prm-icon><span class=\"md-subhead\" translate=\"customized.personal.details\"></span></md-button> <br /> <md-button ng-if=\"$ctrl.getPatronGrp()\" href=\"{{ $ctrl.detailsBaseReg }}\" target=\"_blank\" layout=\"row\" class=\"courier-info bar alert-bar layout-align-left-center layout-row\" layout-align=\"left center\"><prm-icon class=\"rotate-20 margin-right-small\" icon-type=\"svg\" svg-icon-set=\"primo-ui\" icon-definition=\"account-card-details\"></prm-icon><span class=\"md-subhead\" translate=\"customized.libcard.number\"></span></md-button ></div> '\r\n });\r\n","require('./js/slsp-ill-signin-order-alert.module.js')\r\nmodule.exports = 'slspIllSigninOrderAlert'","//--------ILL Signin Order - if Alert Message ---------------------------------------\r\n\r\nangular\r\n .module('slspIllSigninOrderAlert', [])\r\n\r\n .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 .component('almaHowovpAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'AlertMsgController',\r\n template: '<div style=\"display:none\">{{$ctrl.getAlert()}}</div>'\r\n });\r\n","require('./js/epfl-ill-signin-order-logged-out.module.js')\r\nmodule.exports = 'epflIllSigninOrderLoggedOut'\r\n"," //--------ILL Signin Order - if logged out ---------------------------------------\r\n\r\nangular\r\n .module('epflIllSigninOrderLoggedOut', [])\r\n\r\n .service('userService', ['jwtHelper', function (jwtHelper) {\r\n this.get_ip = 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 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 vérifier si IP EPFL - */\r\n this.isEpflIP = function () {\r\n var jwt = sessionStorage.getItem('primoExploreJwt');\r\n if (!jwt) {\r\n return;\r\n }\r\n const userIP = jwtHelper.decodeToken(jwt).userIp;\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 return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /* --------- Fin de l'ajout --------- */\r\n /* ---------------------------------- */\r\n\r\n }])\r\n\r\n .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 .component('prmUserAreaExpandableAfter', {\r\n bindings: { parentCtrl: '<' },\r\n controller: 'IllBoxController',\r\n template: ''\r\n });\r\n"],"sourceRoot":"/source/"}