@internetarchive/ia-book-actions 0.1.5-alpha3 → 0.1.5-b1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
7
|
+
<style>
|
|
8
|
+
html {
|
|
9
|
+
font-size: 10px;
|
|
10
|
+
/* This is to match petabox's base font size */
|
|
11
|
+
}
|
|
12
|
+
body {
|
|
13
|
+
margin: 0;
|
|
14
|
+
text-align: center;
|
|
15
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
16
|
+
}
|
|
17
|
+
#demo {
|
|
18
|
+
height: 50px;
|
|
19
|
+
}
|
|
20
|
+
ia-book-actions {
|
|
21
|
+
--white: #fff;
|
|
22
|
+
--black: #000;
|
|
23
|
+
--primaryBGColor: var(--black);
|
|
24
|
+
--secondaryBGColor: #222;
|
|
25
|
+
--tertiaryBGColor: #333;
|
|
26
|
+
--primaryTextColor: var(--white);
|
|
27
|
+
--primaryCTAFill: #194880;
|
|
28
|
+
--primaryCTABorder: #c5d1df;
|
|
29
|
+
--secondaryCTAFill: #333;
|
|
30
|
+
--secondaryCTABorder: #999;
|
|
31
|
+
--secondaryCTAFillRGB: 51, 51, 51;
|
|
32
|
+
--primaryErrorCTAFill: #e51c26;
|
|
33
|
+
--primaryErrorCTABorder: #f8c6c8;
|
|
34
|
+
--primaryCTAFillRGB: 25, 72, 128;
|
|
35
|
+
--primaryErrorCTAFillRGB: 229, 28, 38;
|
|
36
|
+
--primaryDisableCTAFill: #767676;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
fieldset {
|
|
40
|
+
width: fit-content;
|
|
41
|
+
margin-top: 50px;
|
|
42
|
+
}
|
|
43
|
+
fieldset legend {
|
|
44
|
+
text-align: left;
|
|
45
|
+
font-size: 12px;
|
|
46
|
+
}
|
|
47
|
+
td {
|
|
48
|
+
color: white;
|
|
49
|
+
font-size: 14px;
|
|
50
|
+
border-radius: 5%;
|
|
51
|
+
display: table-cell;
|
|
52
|
+
text-align: initial;
|
|
53
|
+
margin: 5px 0;
|
|
54
|
+
width: max-content;
|
|
55
|
+
display: block;
|
|
56
|
+
}
|
|
57
|
+
label {
|
|
58
|
+
padding: 10px;
|
|
59
|
+
display: block;
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
margin: 2px;
|
|
62
|
+
background: #4e545a;
|
|
63
|
+
border-radius: 10px;
|
|
64
|
+
}
|
|
65
|
+
input[type="radio"], input[type="checkbox"] {
|
|
66
|
+
margin-top: 0;
|
|
67
|
+
vertical-align: middle;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.initial td {
|
|
71
|
+
float: left;
|
|
72
|
+
margin: 2px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
body.modal-manager-open {
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
modal-manager[mode='closed'] {
|
|
80
|
+
display: none;
|
|
81
|
+
}
|
|
82
|
+
</style>
|
|
83
|
+
</head>
|
|
84
|
+
|
|
85
|
+
<body>
|
|
86
|
+
<ia-bookreader class="focus-on-child-only" signedin="" fullscreen="">
|
|
87
|
+
<div slot="header">
|
|
88
|
+
<ia-book-actions></ia-book-actions>
|
|
89
|
+
</div>
|
|
90
|
+
<div slot="main">
|
|
91
|
+
<div id="BookReader"></div>
|
|
92
|
+
</div>
|
|
93
|
+
</ia-bookreader>
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
<script type="module">
|
|
97
|
+
/* eslint-disable */
|
|
98
|
+
import '@internetarchive/bookreader';
|
|
99
|
+
import '@internetarchive/bookreader/BookReader/jquery-1.10.1.js';
|
|
100
|
+
import '@internetarchive/bookreader/BookReader/BookReader.js';
|
|
101
|
+
import '../src/ia-book-actions.js';
|
|
102
|
+
import {
|
|
103
|
+
defaultLendingStatus,
|
|
104
|
+
canBrowseAndBorrow,
|
|
105
|
+
} from '../src/assets/data/lending-get-status-service.js';
|
|
106
|
+
import { ModalConfig } from '@internetarchive/modal-manager';
|
|
107
|
+
|
|
108
|
+
const userid = '@neeraj-archive';
|
|
109
|
+
const identifier = 'naturalhistoryof00unse_4111';
|
|
110
|
+
let bwbPurchaseUrl = 'https://www.betterworldbooks.com/product/detail/cambridge-ancient-hist-v04-0521044863';
|
|
111
|
+
|
|
112
|
+
let iaBookActions = document.querySelector('ia-book-actions');
|
|
113
|
+
|
|
114
|
+
// for debugging
|
|
115
|
+
window.iaBookActions = iaBookActions;
|
|
116
|
+
|
|
117
|
+
const modalConfig = new ModalConfig();
|
|
118
|
+
modalConfig.headerColor = '#d9534f';
|
|
119
|
+
|
|
120
|
+
let lendingBarPostInit = function lendingBarPostInit() {
|
|
121
|
+
setTimeout(function() {
|
|
122
|
+
console.log('executed', 'br.init()');
|
|
123
|
+
}, 100);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// set defaultLendingStatus for unavailable (without borrowables) book
|
|
127
|
+
iaBookActions.userid = userid;
|
|
128
|
+
iaBookActions.identifier = identifier;
|
|
129
|
+
iaBookActions.bookTitle = 'Contemporary Black biography. Volume 39 : profiles from the interContemporary Black biography. Volume 39';
|
|
130
|
+
iaBookActions.lendingStatus = canBrowseAndBorrow;
|
|
131
|
+
iaBookActions.bwbPurchaseUrl = '';
|
|
132
|
+
iaBookActions.modalConfig = modalConfig;
|
|
133
|
+
iaBookActions.lendingBarPostInit = lendingBarPostInit;
|
|
134
|
+
iaBookActions.tokenDelay = 2000; // 2 seconds
|
|
135
|
+
iaBookActions.returnUrl = 'https://openlibrary.org';
|
|
136
|
+
|
|
137
|
+
let lendingStatus1 = iaBookActions.lendingStatus;
|
|
138
|
+
|
|
139
|
+
const manifest = await fetch('https://ia801302.us.archive.org/BookReader/BookReaderJSIA.php?id=goody&itemPath=/29/items/goody&server=ia801302.us.archive.org&format=jsonp&subPrefix=goody&requestUri=/details/goody/mode/1up%3Fview%3Dtheater%26ui%3Dembed%26wrapper%3Dfalse');
|
|
140
|
+
|
|
141
|
+
console.log('manifest ****', manifest).then(res => res.json());
|
|
142
|
+
</script>
|
|
143
|
+
|
|
144
|
+
</div>
|
|
145
|
+
</body>
|
|
146
|
+
</html>
|
package/package.json
CHANGED
|
@@ -2,8 +2,6 @@ import ActionsHandlerService from './actions-handler/actions-handler-service.js'
|
|
|
2
2
|
import LoanAnanlytics from './loan-analytics.js';
|
|
3
3
|
import { sentryLogs } from '../config/sentry-events.js';
|
|
4
4
|
|
|
5
|
-
import * as Cookies from './doc-cookies.js';
|
|
6
|
-
|
|
7
5
|
/**
|
|
8
6
|
* This class is used to create loan token for borrowed books
|
|
9
7
|
*
|
|
@@ -33,7 +31,7 @@ export class LoanTokenPoller {
|
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
async bookAccessed() {
|
|
36
|
-
let consecutiveLoanCounts = 1;
|
|
34
|
+
// let consecutiveLoanCounts = 1;
|
|
37
35
|
|
|
38
36
|
if (this.borrowType) {
|
|
39
37
|
// send consecutiveLoanCounts for browsed books only.
|
package/src/ia-book-actions.js
CHANGED
|
@@ -256,6 +256,11 @@ export default class IABookActions extends LitElement {
|
|
|
256
256
|
* dispatched this event from bookreader page changed
|
|
257
257
|
*/
|
|
258
258
|
window.addEventListener('BookReader:userAction', () => {
|
|
259
|
+
console.log('** BR user Action', {
|
|
260
|
+
suppressAutoRenew: this.suppressAutoRenew,
|
|
261
|
+
borrowType: this.borrowType,
|
|
262
|
+
});
|
|
263
|
+
|
|
259
264
|
this.suppressToast = true;
|
|
260
265
|
this.closeToastManager();
|
|
261
266
|
|
|
@@ -272,6 +277,7 @@ export default class IABookActions extends LitElement {
|
|
|
272
277
|
* detect click-event on document to close toast-template
|
|
273
278
|
*/
|
|
274
279
|
document.addEventListener('click', e => {
|
|
280
|
+
console.log('*** top level click handler to remove toast on click');
|
|
275
281
|
if (this.loanRenewHelper && this.loanRenewResult.secondsLeft > 0) {
|
|
276
282
|
this.suppressToast = true;
|
|
277
283
|
}
|
|
@@ -292,6 +298,7 @@ export default class IABookActions extends LitElement {
|
|
|
292
298
|
* @see TimerCountdown::timerCountdown
|
|
293
299
|
*/
|
|
294
300
|
this.addEventListener('IABookActions:loanRenew', async event => {
|
|
301
|
+
console.log('** IABookActions:loanRenew', event.detail);
|
|
295
302
|
await this.autoLoanRenewChecker(false);
|
|
296
303
|
|
|
297
304
|
// maybe the renew with-in last 1 minute is too short of a transition time between xhr, loading images etc... let NOT renew in last 50 seconds.
|
|
@@ -302,6 +309,7 @@ export default class IABookActions extends LitElement {
|
|
|
302
309
|
// show warning message with remaining time to auto returned it.
|
|
303
310
|
if (this.loanRenewResult.renewNow === false) {
|
|
304
311
|
this.loanRenewResult.secondsLeft = event.detail.secondsLeft;
|
|
312
|
+
this.suppressToast = false;
|
|
305
313
|
this.showToastMessage();
|
|
306
314
|
}
|
|
307
315
|
});
|
|
@@ -329,6 +337,7 @@ export default class IABookActions extends LitElement {
|
|
|
329
337
|
* close/hide toast message
|
|
330
338
|
*/
|
|
331
339
|
async closeToastManager() {
|
|
340
|
+
console.log('** closeToastManager');
|
|
332
341
|
const toastTemplate = this.shadowRoot.querySelector('toast-template');
|
|
333
342
|
if (toastTemplate) {
|
|
334
343
|
toastTemplate?.remove();
|
|
@@ -342,6 +351,10 @@ export default class IABookActions extends LitElement {
|
|
|
342
351
|
* - show message having remaining time when book is about to auto returned
|
|
343
352
|
*/
|
|
344
353
|
async showToastMessage() {
|
|
354
|
+
console.log('** showToastMessage', {
|
|
355
|
+
suppressToast: this.suppressToast,
|
|
356
|
+
loanRenewResult: this.loanRenewResult,
|
|
357
|
+
});
|
|
345
358
|
if (this.suppressToast) return;
|
|
346
359
|
|
|
347
360
|
let toastTemplate = this.shadowRoot.querySelector('toast-template');
|