navmesh commited on
Commit
25a2330
·
1 Parent(s): 33f6f99

Upload progressbar.js

Browse files
Files changed (1) hide show
  1. progressbar.js +60 -20
progressbar.js CHANGED
@@ -1,10 +1,18 @@
1
  // code related to showing and updating progressbar shown as the image is being made
2
- let lastTimeSuccess = 0; //epoch time in second
3
  let timeWarning = 160;
4
  let maxTimeWarning = 3600;
5
  let firstTimeStart = 0;
 
 
 
 
6
 
7
 
 
 
 
 
8
  function rememberGallerySelection() {
9
 
10
  }
@@ -50,24 +58,37 @@ function formatTime(secs) {
50
  }
51
  }
52
 
53
- function setTitle(progress) {
54
- var title = 'Unity';
55
-
56
  if (opts.show_progress_in_title && progress) {
57
  title = '[' + progress.trim() + '] ' + title;
58
  }
59
- else if (lastTimeSuccess > 0){ // hoangpl display duration since last time success
60
- var curTime = getCurTimeInSeconds();
61
- if (curTime - firstTimeStart > 14400){
62
- title = 'exceed 4 hours ';
63
- }
64
- else{
65
- var durationSinceLastSuccess = curTime - lastTimeSuccess;
66
- if (durationSinceLastSuccess > maxTimeWarning){ // hoangpl no need update ui
67
- title = 'exceed > ' + maxTimeWarning + 's';
68
  }
69
- else if (durationSinceLastSuccess > timeWarning){
70
- title = 'warning ' + durationSinceLastSuccess + 's';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  }
72
  }
73
  }
@@ -76,6 +97,21 @@ function setTitle(progress) {
76
  }
77
  }
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  function getCurTimeInSeconds(){
80
  return Math.floor(Date.now() / 1000);
81
  }
@@ -123,25 +159,29 @@ function requestProgress(id_task, progressbarContainer, gallery, atEnd, onProgre
123
  removeProgressBar();
124
  return;
125
  }
126
-
127
  let progressText = "";
128
 
129
  divInner.style.width = ((res.progress || 0) * 100.0) + '%';
130
  divInner.style.background = res.progress ? "" : "transparent";
131
 
132
  if (res.progress > 0) {
 
133
  progressText = ((res.progress || 0) * 100.0).toFixed(0) + '%';
134
  }
135
 
136
  if (res.eta) {
 
137
  progressText += " ETA: " + formatTime(res.eta);
138
- lastTimeSuccess = getCurTimeInSeconds(); // hoangpl
 
 
 
139
  if (firstTimeStart <= 0){
140
- firstTimeStart = lastTimeSuccess;
141
  }
142
  }
143
-
144
- setTitle(progressText);
145
 
146
  if (res.textinfo && res.textinfo.indexOf("\n") == -1) {
147
  progressText = res.textinfo + " " + progressText;
 
1
  // code related to showing and updating progressbar shown as the image is being made
2
+ let lastTimeGenerate = 0; //epoch time in second
3
  let timeWarning = 160;
4
  let maxTimeWarning = 3600;
5
  let firstTimeStart = 0;
6
+ let timeZone = 'Asia/Bangkok';
7
+ let lastGenerateTimeStamp = 0; // timestamp
8
+ let cacheLastGenerateTimeStamp = 0;
9
+ let cacheLastStringHourMin = null; //string
10
 
11
 
12
+ //const options = { timeZone };
13
+ const options = { timeZone, hour: '2-digit', minute: '2-digit' };
14
+ const formatter = new Intl.DateTimeFormat([], options);
15
+
16
  function rememberGallerySelection() {
17
 
18
  }
 
58
  }
59
  }
60
 
61
+ function setTitle(progress, isGenerating = false) {
62
+ // var title = 'Unity';
63
+ var title = lastTimeGenerate;
64
  if (opts.show_progress_in_title && progress) {
65
  title = '[' + progress.trim() + '] ' + title;
66
  }
67
+ else if (!isGenerating){
68
+ if (lastTimeGenerate > 0){
69
+ var curTime = getCurTimeInSeconds();
70
+ if (curTime - firstTimeStart > 14400){
71
+ title = 'exceed 4 hours ';
 
 
 
 
72
  }
73
+ else{
74
+ var durationSinceLastGenerate = curTime - lastTimeGenerate;
75
+ if (durationSinceLastGenerate > maxTimeWarning){ // hoangpl no need update ui
76
+ title = 'exceed > ' + maxTimeWarning + 's';
77
+ }
78
+ else if (durationSinceLastGenerate > timeWarning){
79
+ title = 'warning ' + durationSinceLastGenerate + 's';
80
+ }
81
+ else{
82
+ //display last time generating
83
+ if (lastGenerateTimeStamp == cacheLastGenerateTimeStamp && cacheLastStringHourMin != null){
84
+
85
+ }
86
+ else{
87
+ cacheLastStringHourMin = getFormatDateTime(lastGenerateTimeStamp);
88
+ cacheLastGenerateTimeStamp = lastGenerateTimeStamp;
89
+ }
90
+ title = cacheLastStringHourMin;
91
+ }
92
  }
93
  }
94
  }
 
97
  }
98
  }
99
 
100
+ function getFormatDateTime(timeStamp){
101
+ var currentDate = new Date(timeStamp);
102
+ var hours = currentDate.getHours();
103
+ var minutes = currentDate.getMinutes();
104
+ var formattedHours = hours.toString().padStart(2, '0');
105
+ var formattedMinutes = minutes.toString().padStart(2, '0');
106
+ // Format the hours and minutes as a string
107
+ return `${formattedHours}:${formattedMinutes}`;
108
+ }
109
+
110
+ function getCurrentDateTimeGMTPlus7() {
111
+ // Use the global formatter to format the current date and time
112
+ return formatter.format(new Date());
113
+ }
114
+
115
  function getCurTimeInSeconds(){
116
  return Math.floor(Date.now() / 1000);
117
  }
 
159
  removeProgressBar();
160
  return;
161
  }
162
+ let isGenerating = false;
163
  let progressText = "";
164
 
165
  divInner.style.width = ((res.progress || 0) * 100.0) + '%';
166
  divInner.style.background = res.progress ? "" : "transparent";
167
 
168
  if (res.progress > 0) {
169
+ isGenerating = true;
170
  progressText = ((res.progress || 0) * 100.0).toFixed(0) + '%';
171
  }
172
 
173
  if (res.eta) {
174
+ isGenerating = true;
175
  progressText += " ETA: " + formatTime(res.eta);
176
+ }
177
+ if (isGenerating){
178
+ lastTimeGenerate = getCurTimeInSeconds(); // hoangpl
179
+ lastGenerateTimeStamp = Date.now();
180
  if (firstTimeStart <= 0){
181
+ firstTimeStart = lastTimeGenerate;
182
  }
183
  }
184
+ setTitle(progressText, isGenerating);
 
185
 
186
  if (res.textinfo && res.textinfo.indexOf("\n") == -1) {
187
  progressText = res.textinfo + " " + progressText;