@internetarchive/ia-book-actions 0.1.2 → 0.1.3-alpha1
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.
package/package.json
CHANGED
|
@@ -63,6 +63,12 @@ export default class TimerCountdown extends LitElement {
|
|
|
63
63
|
this.secondsLeftOnLoan -= this.timerExecutionSeconds;
|
|
64
64
|
const secondsLeft = Math.round(this.secondsLeftOnLoan);
|
|
65
65
|
|
|
66
|
+
console.log(
|
|
67
|
+
'timeLeftInSec',
|
|
68
|
+
secondsLeft,
|
|
69
|
+
' ||| timeLeftInMin',
|
|
70
|
+
Math.ceil(secondsLeft / 60)
|
|
71
|
+
);
|
|
66
72
|
/**
|
|
67
73
|
* execute from last 10th minute to 0th minute
|
|
68
74
|
* - 10th - to check if user has viewed
|
|
@@ -111,8 +117,8 @@ export default class TimerCountdown extends LitElement {
|
|
|
111
117
|
render() {
|
|
112
118
|
return html`
|
|
113
119
|
<svg
|
|
114
|
-
width="
|
|
115
|
-
height="
|
|
120
|
+
width="14"
|
|
121
|
+
height="14"
|
|
116
122
|
viewBox="0 0 100 100"
|
|
117
123
|
xmlns="http://www.w3.org/2000/svg"
|
|
118
124
|
>
|
|
@@ -13,7 +13,8 @@ export class LoanRenewHelper {
|
|
|
13
13
|
this.loanRenewTimeConfig = loanRenewTimeConfig;
|
|
14
14
|
|
|
15
15
|
// messages for auto return machenism
|
|
16
|
-
this.loanRenewMessage =
|
|
16
|
+
this.loanRenewMessage =
|
|
17
|
+
'This book has been renewed for #time #unitsOfTime.';
|
|
17
18
|
this.loanReturnWarning =
|
|
18
19
|
'This book will be automatically returned in #time #unitsOfTime unless you turn a page.';
|
|
19
20
|
|
|
@@ -117,7 +118,7 @@ export class LoanRenewHelper {
|
|
|
117
118
|
* @returns {String} // texts will be appear in toast template
|
|
118
119
|
*/
|
|
119
120
|
getMessageTexts(texts, secondsLeft) {
|
|
120
|
-
|
|
121
|
+
let unitOfTime = 'minute';
|
|
121
122
|
|
|
122
123
|
let toastTexts = texts;
|
|
123
124
|
let timeLeft = secondsLeft;
|
|
@@ -125,6 +126,12 @@ export class LoanRenewHelper {
|
|
|
125
126
|
// convert time from second to minute
|
|
126
127
|
timeLeft = Math.ceil(timeLeft / 60);
|
|
127
128
|
|
|
129
|
+
// convert minute to hour
|
|
130
|
+
if (timeLeft === 60) {
|
|
131
|
+
timeLeft = 1; // 1 hour
|
|
132
|
+
unitOfTime = 'hour';
|
|
133
|
+
}
|
|
134
|
+
|
|
128
135
|
// replace #time variable with remaining time
|
|
129
136
|
toastTexts = toastTexts?.replace(/#time/, timeLeft);
|
|
130
137
|
|
package/src/ia-book-actions.js
CHANGED
|
@@ -336,7 +336,11 @@ export default class IABookActions extends LitElement {
|
|
|
336
336
|
|
|
337
337
|
// if secondsLeft < 60, consider it 1 minute
|
|
338
338
|
let { secondsLeft } = this.loanRenewResult;
|
|
339
|
-
|
|
339
|
+
if (secondsLeft === undefined) {
|
|
340
|
+
secondsLeft = this.lendingStatus.secondsLeftOnLoan;
|
|
341
|
+
} else {
|
|
342
|
+
secondsLeft = secondsLeft > 60 ? secondsLeft : 60;
|
|
343
|
+
}
|
|
340
344
|
|
|
341
345
|
const config = new ToastConfig();
|
|
342
346
|
config.dismisOnClick = true;
|
|
@@ -498,8 +502,8 @@ export default class IABookActions extends LitElement {
|
|
|
498
502
|
this.tokenPoller?.disconnectedInterval();
|
|
499
503
|
|
|
500
504
|
this.suppressToast = false;
|
|
501
|
-
await this.showToastMessage();
|
|
502
505
|
await this.browseHasRenew();
|
|
506
|
+
await this.showToastMessage();
|
|
503
507
|
await this.resetTimerCountState();
|
|
504
508
|
|
|
505
509
|
window?.Sentry?.captureMessage(`${sentryLogs.bookHasRenewed}`);
|
|
@@ -1,146 +0,0 @@
|
|
|
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>
|