Compare commits
	
		
			15 Commits
		
	
	
		
			v8.0.0
			...
			e563279faf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e563279faf | |||
| 856181f530 | |||
| ae0c125a50 | |||
| ba5a5c627b | |||
| 3bf1baeca8 | |||
| 6186b14b16 | |||
| f578bd2fe1 | |||
| 933b445ed6 | |||
| bbe20d6351 | |||
| 9e5d93bad2 | |||
| b83cef625a | |||
| ad5c8ece12 | |||
| 0455cb1926 | |||
| 3e33155276 | |||
| de34a6c66e | 
							
								
								
									
										5395
									
								
								3CX_TAPI.user.js
									
									
									
									
									
								
							
							
						
						
									
										5395
									
								
								3CX_TAPI.user.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7945
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7945
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										57
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|   "name": "3cp-tapi", |   "name": "3cx-tapi", | ||||||
|   "description": "Build your UserScript with webpack", |   "description": "3CX CP Tapi and Projectmanager integration", | ||||||
|   "version": "8.0.0", |   "version": "9.0.3", | ||||||
|   "author": { |   "author": { | ||||||
|     "name": "Daniel Triendl", |     "name": "Daniel Triendl", | ||||||
|     "email": "d.triendl@cp-solutions.at" |     "email": "d.triendl@cp-solutions.at" | ||||||
| @@ -20,38 +20,37 @@ | |||||||
|   }, |   }, | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|     "url": "http://scootaloo.cp-austria.at/gitlist/3cx_tapi.git" |     "url": "https://source.cp-austria.at/git/CPATRD/3cx_tapi.git" | ||||||
|   }, |   }, | ||||||
|   "private": true, |   "private": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "axios": "0.21.1", |     "axios": "0.27.2", | ||||||
|     "axios-userscript-adapter": "0.1.4", |     "axios-userscript-adapter": "0.1.12", | ||||||
|     "chrono-node": "^2.3.0" |     "chrono-node": "^2.4.1" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "7.14.6", |     "@babel/core": "7.19.3", | ||||||
|     "@babel/preset-env": "7.14.5", |     "@babel/preset-env": "7.19.3", | ||||||
|     "@typescript-eslint/eslint-plugin": "4.27.0", |     "@typescript-eslint/eslint-plugin": "5.38.1", | ||||||
|     "@typescript-eslint/parser": "4.27.0", |     "@typescript-eslint/parser": "5.38.1", | ||||||
|     "babel-loader": "8.2.2", |     "babel-loader": "8.2.5", | ||||||
|     "browserslist": "4.16.6", |     "browserslist": "4.21.4", | ||||||
|     "css-loader": "5.2.6", |     "css-loader": "6.7.1", | ||||||
|     "eslint": "7.29.0", |     "eslint": "8.24.0", | ||||||
|     "eslint-config-standard": "16.0.3", |     "eslint-config-standard": "17.0.0", | ||||||
|     "eslint-plugin-import": "2.23.4", |     "eslint-plugin-import": "2.26.0", | ||||||
|     "eslint-plugin-node": "11.1.0", |     "eslint-plugin-node": "11.1.0", | ||||||
|     "eslint-plugin-promise": "5.1.0", |     "eslint-plugin-promise": "6.0.1", | ||||||
|     "eslint-plugin-standard": "4.1.0", |     "less": "4.1.3", | ||||||
|     "less": "4.1.1", |     "less-loader": "11.0.0", | ||||||
|     "less-loader": "10.0.0", |     "style-loader": "3.3.1", | ||||||
|     "style-loader": "2.0.0", |     "ts-loader": "9.4.1", | ||||||
|     "ts-loader": "9.2.3", |     "typescript": "4.8.4", | ||||||
|     "typescript": "4.3.4", |     "userscript-metadata-webpack-plugin": "0.1.5", | ||||||
|     "userscript-metadata-webpack-plugin": "0.1.0", |     "webpack": "5.74.0", | ||||||
|     "webpack": "5.39.1", |     "webpack-bundle-analyzer": "4.6.1", | ||||||
|     "webpack-bundle-analyzer": "4.4.2", |     "webpack-cli": "4.10.0", | ||||||
|     "webpack-cli": "4.7.2", |     "webpack-livereload-plugin": "3.0.2", | ||||||
|     "webpack-livereload-plugin": "3.0.1", |  | ||||||
|     "webpack-merge": "5.8.0" |     "webpack-merge": "5.8.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,18 +6,12 @@ export class CallHistory { | |||||||
|   private callerIds: { [number: string]: TapiContact } = {} |   private callerIds: { [number: string]: TapiContact } = {} | ||||||
|  |  | ||||||
|   private updateCallHistoryEntry (call: HTMLElement, callerId: TapiContact) { |   private updateCallHistoryEntry (call: HTMLElement, callerId: TapiContact) { | ||||||
|     var span = call.querySelector('span') |     var span = call.querySelector(':scope > span') | ||||||
|     this.showTimeManager(call, span.nextSibling.textContent.trim(), callerId) |     this.showTimeManager(call, call.querySelector('.date').textContent, callerId) | ||||||
|  |  | ||||||
|     if (callerId && callerId.tD_NAME !== '') { |     if (callerId && callerId.tD_NAME !== '') { | ||||||
|       var text = span.textContent |       var text = span.textContent | ||||||
|       span.textContent = callerId.tD_NAME |       span.textContent = callerId.tD_NAME + ' ' + callerId.tD_NUMBER | ||||||
|       var br = document.createElement('br') |  | ||||||
|       var span2 = document.createElement('span') |  | ||||||
|       span2.style.fontSize = 'small' |  | ||||||
|       span2.textContent = text |  | ||||||
|       span.parentNode.insertBefore(br, span.nextSibling) |  | ||||||
|       span.parentNode.insertBefore(span2, span.nextSibling) |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -28,7 +22,6 @@ export class CallHistory { | |||||||
|       date = dateParts.groups.date |       date = dateParts.groups.date | ||||||
|       duration = dateParts.groups.duration |       duration = dateParts.groups.duration | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     var parsedDate = chrono.de.parseDate(date) |     var parsedDate = chrono.de.parseDate(date) | ||||||
|     if (!parsedDate) { |     if (!parsedDate) { | ||||||
|       parsedDate = chrono.parseDate(date) |       parsedDate = chrono.parseDate(date) | ||||||
| @@ -50,7 +43,7 @@ export class CallHistory { | |||||||
|  |  | ||||||
|     var length = (parsedDuration.getHours() * 60 + parsedDuration.getMinutes()).toString() |     var length = (parsedDuration.getHours() * 60 + parsedDuration.getMinutes()).toString() | ||||||
|  |  | ||||||
|     var toolbar = call.querySelector('.wcToolbarTiles') |     var toolbar = call.querySelector('call-history-options') | ||||||
|     var href = 'domizil://PM/Zeitbuchung?' |     var href = 'domizil://PM/Zeitbuchung?' | ||||||
|     if (callerId && callerId.tD_ID) { |     if (callerId && callerId.tD_ID) { | ||||||
|       href += 'KontaktId=' + callerId.tD_ID + '&' |       href += 'KontaktId=' + callerId.tD_ID + '&' | ||||||
| @@ -62,7 +55,7 @@ export class CallHistory { | |||||||
|     a.onclick = () => { |     a.onclick = () => { | ||||||
|       window.open(href) |       window.open(href) | ||||||
|     } |     } | ||||||
|     a.innerHTML = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 559.98 559.98" width="20" height="20">' + |     a.innerHTML = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 559.98 559.98">' + | ||||||
|       '<g>' + |       '<g>' + | ||||||
|       '  <g>' + |       '  <g>' + | ||||||
|       '    <path d="M279.99,0C125.601,0,0,125.601,0,279.99c0,154.39,125.601,279.99,279.99,279.99c154.39,0,279.99-125.601,279.99-279.99' + |       '    <path d="M279.99,0C125.601,0,0,125.601,0,279.99c0,154.39,125.601,279.99,279.99,279.99c154.39,0,279.99-125.601,279.99-279.99' + | ||||||
| @@ -74,11 +67,14 @@ export class CallHistory { | |||||||
|       '  </g>' + |       '  </g>' + | ||||||
|       '</g>' + |       '</g>' + | ||||||
|       '</svg>' |       '</svg>' | ||||||
|  |  | ||||||
|  |     a.classList.add('btn'); | ||||||
|  |     a.classList.add('btn-plain'); | ||||||
|     toolbar.insertBefore(a, toolbar.firstChild) |     toolbar.insertBefore(a, toolbar.firstChild) | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   public async showCallHistory (element: HTMLElement) { |   public async showCallHistory (element: HTMLElement) { | ||||||
|     var span = element.querySelector('span') |     var span = element.querySelector(':scope > span') | ||||||
|     var number = extractNumber(span.textContent) |     var number = extractNumber(span.textContent) | ||||||
|     if (!number) { |     if (!number) { | ||||||
|       this.updateCallHistoryEntry(element, undefined) |       this.updateCallHistoryEntry(element, undefined) | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ import { axios, extractNumber } from './utils' | |||||||
|  |  | ||||||
| export class CallNotification { | export class CallNotification { | ||||||
|   public async showCallNotification (element: HTMLElement) { |   public async showCallNotification (element: HTMLElement) { | ||||||
|     var number = element.dataset.id |     var number = element.querySelector('.callNumber').textContent | ||||||
|     console.log('TAPI call notification', number) |     console.log('TAPI call notification', number) | ||||||
|  |  | ||||||
|     number = extractNumber(number) |     number = extractNumber(number) | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ console.log('script start') | |||||||
|  |  | ||||||
| const search = new Search() | const search = new Search() | ||||||
| // eslint-disable-next-line no-undef | // eslint-disable-next-line no-undef | ||||||
| waitForKeyElements('div.nav-search', (element) => { search.createSearchWindow(element) }, true) | waitForKeyElements('ongoing-call-button', (element) => { search.createSearchWindow(element) }, false) | ||||||
|  |  | ||||||
| const callNotification = new CallNotification() | const callNotification = new CallNotification() | ||||||
| // eslint-disable-next-line no-undef | // eslint-disable-next-line no-undef | ||||||
| @@ -21,4 +21,4 @@ waitForKeyElements('.call-history-list call', (element) => { callHistory.showCal | |||||||
|  |  | ||||||
| const status = new Status() | const status = new Status() | ||||||
| // eslint-disable-next-line no-undef | // eslint-disable-next-line no-undef | ||||||
| waitForKeyElements('#status-change', (element) => { status.showStatus(element) }, false) | waitForKeyElements('wc-account-menu', (element) => { status.showStatus(element) }, false) | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								src/search.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/search.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | .tapi-search-result { | ||||||
|  |     color: #000; | ||||||
|  |     padding: 5px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .tapi-search-result:hover, .tapi-search-result-selected { | ||||||
|  |     background-color: #E7E6E6; | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | import './search.css' | ||||||
| import { TapiContact } from './tapi-contact' | import { TapiContact } from './tapi-contact' | ||||||
| import { debounce } from './debounce' | import { debounce } from './debounce' | ||||||
| import { axios, fireChangeEvents } from './utils' | import { axios, fireChangeEvents } from './utils' | ||||||
| @@ -19,6 +20,8 @@ export class Search { | |||||||
|       } |       } | ||||||
|       if (items.length > 0) { |       if (items.length > 0) { | ||||||
|         this.dial((<HTMLElement>items[0]).dataset.tapiNumber) |         this.dial((<HTMLElement>items[0]).dataset.tapiNumber) | ||||||
|  |       } else { | ||||||
|  |         this.dial((<HTMLInputElement>document.getElementById('tapiSearchInput')).value) | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       return false |       return false | ||||||
| @@ -61,7 +64,7 @@ export class Search { | |||||||
|     icon.style.color = 'grey' |     icon.style.color = 'grey' | ||||||
|     searchWrapper.appendChild(icon) |     searchWrapper.appendChild(icon) | ||||||
|  |  | ||||||
|     element.appendChild(form) |     element.parentElement.insertBefore(form, element) | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   private removeSearchResults () { |   private removeSearchResults () { | ||||||
| @@ -135,7 +138,6 @@ export class Search { | |||||||
|     contacts.forEach(contact => { |     contacts.forEach(contact => { | ||||||
|       var li = document.createElement('li') |       var li = document.createElement('li') | ||||||
|       li.classList.add('tapi-search-result') |       li.classList.add('tapi-search-result') | ||||||
|       li.classList.add('search-result') |  | ||||||
|       li.classList.add('pointer') |       li.classList.add('pointer') | ||||||
|       li.onmouseover = () => { this.selectResult(li) } |       li.onmouseover = () => { this.selectResult(li) } | ||||||
|       li.dataset.tapiNumber = contact.tD_NUMBER_TAPI |       li.dataset.tapiNumber = contact.tD_NUMBER_TAPI | ||||||
| @@ -161,21 +163,22 @@ export class Search { | |||||||
|   private selectResult (resultLi: Element) { |   private selectResult (resultLi: Element) { | ||||||
|     var items = document.getElementsByClassName('tapi-search-result') |     var items = document.getElementsByClassName('tapi-search-result') | ||||||
|     for (var item of items) { |     for (var item of items) { | ||||||
|       item.classList.remove('bg-light') |  | ||||||
|       item.classList.remove('tapi-search-result-selected') |       item.classList.remove('tapi-search-result-selected') | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     resultLi.classList.add('bg-light') |  | ||||||
|     resultLi.classList.add('tapi-search-result-selected') |     resultLi.classList.add('tapi-search-result-selected') | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   private dial (number: string) { |   private dial (number: string) { | ||||||
|     var searchInput = document.getElementsByName('searchByNumberInput') |     console.log('TAPI Search dialing', number); | ||||||
|     if (searchInput.length > 0) { |     var searchInput = document.getElementById('dialpad-input'); | ||||||
|       (<HTMLInputElement>searchInput[0]).value = number |     (<HTMLInputElement>searchInput).value = number; | ||||||
|       searchInput[0].focus() |     (<HTMLInputElement>searchInput).focus; | ||||||
|  |     fireChangeEvents(searchInput); | ||||||
|  |  | ||||||
|       fireChangeEvents(searchInput[0]) |     var toaster = document.querySelector('toaster-container'); | ||||||
|  |     if (window.getComputedStyle(toaster, null).display == 'none') { | ||||||
|  |       document.getElementById('menuDialer').click(); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ | |||||||
|     box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); |     box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); | ||||||
|     z-index: 1; |     z-index: 1; | ||||||
|     color: #000; |     color: #000; | ||||||
|  |     background-color: #fff; | ||||||
| } | } | ||||||
|  |  | ||||||
| .show { | .show { | ||||||
|   | |||||||
							
								
								
									
										114
									
								
								src/status.ts
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								src/status.ts
									
									
									
									
									
								
							| @@ -18,20 +18,61 @@ export class Status { | |||||||
|     this._statusOff = await GM.getValue('tapi-zc-off', 'menuAvailable'); |     this._statusOff = await GM.getValue('tapi-zc-off', 'menuAvailable'); | ||||||
|     console.log('tapi-zc-user', this._user, 'tapi-zc-enabled', this._enabled, 'tapi-zc-on', this._statusOn, 'tapi-zc-off', this._statusOff); |     console.log('tapi-zc-user', this._user, 'tapi-zc-enabled', this._enabled, 'tapi-zc-on', this._statusOn, 'tapi-zc-off', this._statusOff); | ||||||
|  |  | ||||||
|     var div = document.createElement('div'); |     this.checkStatus(); | ||||||
|     div.classList.add('tapi-dropdown'); |  | ||||||
|  |  | ||||||
|     var button = document.createElement('button'); |     waitForKeyElements("wc-account-menu > div > ul", (element: HTMLElement) => { this.addZcStatusPopup(element) }, true); | ||||||
|     button.id = 'tapi-zc-button'; |  | ||||||
|     button.classList.add('btn'); |  | ||||||
|     button.classList.add('btn-default'); |  | ||||||
|     button.innerText = 'ZeitConsens'; |  | ||||||
|     button.onclick = () => { |  | ||||||
|       document.getElementById('tapi-zc-dropdown').classList.toggle('show'); |  | ||||||
|   } |   } | ||||||
|     div.appendChild(button); |  | ||||||
|  |   private async checkStatus() { | ||||||
|  |     if (this._enabled) { | ||||||
|  |       try { | ||||||
|  |         var response = await axios.get<ZcStatus>('http://cpatapi.cpsrvweb2016.cp-austria.at/availability/' + encodeURIComponent(this._user)); | ||||||
|  |  | ||||||
|  |         if (response.status == 200) { | ||||||
|  |           var status = response.data; | ||||||
|  |           if (this._currentStatus !== status.loggedIn) { | ||||||
|  |             this._currentStatus = status.loggedIn; | ||||||
|  |             console.log('New status, loggedIn', this._currentStatus); | ||||||
|  |             (document.getElementsByTagName("wcavatar")[0] as HTMLAnchorElement).click(); | ||||||
|  |             setTimeout(() => { | ||||||
|  |               var statusId = this._currentStatus ? this._statusOn : this._statusOff; | ||||||
|  |               (document.getElementById(statusId) as HTMLSpanElement).click(); | ||||||
|  |             }, 1000); | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } catch (error) { | ||||||
|  |         console.log(error); | ||||||
|  |       } | ||||||
|  |       setTimeout(() => this.checkStatus(), 30000); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   private addZcStatusPopup(element: HTMLElement) { | ||||||
|  |     var divider = document.createElement('li'); | ||||||
|  |     divider.classList.add('divider'); | ||||||
|  |     divider.classList.add('dropdown-divider'); | ||||||
|  |     element.appendChild(divider); | ||||||
|  |  | ||||||
|  |     var menu = document.createElement('li'); | ||||||
|  |     element.appendChild(menu); | ||||||
|  |  | ||||||
|  |     var link = document.createElement('a'); | ||||||
|  |     link.id = 'tapi-zc-button'; | ||||||
|  |     link.innerText = 'ZeitConsens'; | ||||||
|  |     link.classList.add('dropdown-item'); | ||||||
|  |     link.classList.add('d-flex'); | ||||||
|  |     link.onclick = () => { | ||||||
|  |       document.getElementById('zc-modal').classList.toggle('show'); | ||||||
|  |     } | ||||||
|  |     menu.appendChild(link); | ||||||
|  |  | ||||||
|     var html = |     var html = | ||||||
|  |     '<div role="document" class="modal-dialog">' + | ||||||
|  |     '  <div class="modal-content">' + | ||||||
|  |     '    <div class="modal-header">' + | ||||||
|  |     '      <h4 class="modal-title float-left">ZeitConsens Status</h4><button id="zc-btnClose" type="button" aria-label="Close" class="close float-right"><span aria-hidden="true">×</span></button>' + | ||||||
|  |     '    </div>' + | ||||||
|  |     '    <div class="modal-body">' + | ||||||
|     '      <div class="form-group">' + |     '      <div class="form-group">' + | ||||||
|     '        <label for="tapi-zc-user">Username</label>' + |     '        <label for="tapi-zc-user">Username</label>' + | ||||||
|     '        <input type="text" class="form-control" name="tapi-zc-user" id="tapi-zc-user">' + |     '        <input type="text" class="form-control" name="tapi-zc-user" id="tapi-zc-user">' + | ||||||
| @@ -45,7 +86,7 @@ export class Status { | |||||||
|     '        </select>' + |     '        </select>' + | ||||||
|     '      </div>' + |     '      </div>' + | ||||||
|     '      <div class="form-group">' + |     '      <div class="form-group">' + | ||||||
|       '  <label for="tapi-zc-off">Signed in</label>' + |     '        <label for="tapi-zc-off">Signed out</label>' + | ||||||
|     '        <select id="tapi-zc-off" class="form-control">' + |     '        <select id="tapi-zc-off" class="form-control">' + | ||||||
|     '          <option value="menuAway">Away</option>' + |     '          <option value="menuAway">Away</option>' + | ||||||
|     '          <option value="menuOutofoffice">Do Not Disturb</option>' + |     '          <option value="menuOutofoffice">Do Not Disturb</option>' + | ||||||
| @@ -57,15 +98,24 @@ export class Status { | |||||||
|     '          <i></i><span>Enabled</span>' + |     '          <i></i><span>Enabled</span>' + | ||||||
|     '      </label>' |     '      </label>' | ||||||
|     '      </div>'; |     '      </div>'; | ||||||
|  |     '    </div>' + | ||||||
|  |     '    <div class="modal-footer">' + | ||||||
|  |     '      <button id="zc-btnOk" type="button" class="btn btn-primary">OK </button>' + | ||||||
|  |     '      <button id="zc-btnCancel" type="button" class="btn btn-light">Cancel </button>' + | ||||||
|  |     '    </div>' + | ||||||
|  |     '  </div>' + | ||||||
|  |     '</div>'; | ||||||
|  |     var modal = document.createElement('modal-container'); | ||||||
|  |     modal.id = 'zc-modal'; | ||||||
|  |     modal.classList.add('modal'); | ||||||
|  |     modal.classList.add('fade'); | ||||||
|  |     modal.innerHTML = html; | ||||||
|  |     var body = document.getElementsByTagName('body')[0].appendChild(modal); | ||||||
|  |  | ||||||
|     var dropdown = document.createElement('div'); |     var btnClose = document.getElementById('zc-btnClose'); | ||||||
|     dropdown.classList.add('tapi-dropdown-content'); |     btnClose.onclick = () => { | ||||||
|     dropdown.classList.add('panel-body'); |       document.getElementById('zc-modal').classList.toggle('show'); | ||||||
|     dropdown.id = 'tapi-zc-dropdown'; |     } | ||||||
|     dropdown.innerHTML = html; |  | ||||||
|     div.appendChild(dropdown); |  | ||||||
|  |  | ||||||
|     element.insertBefore(div, element.firstChild); |  | ||||||
|  |  | ||||||
|     var zcUser = document.getElementById('tapi-zc-user') as HTMLInputElement; |     var zcUser = document.getElementById('tapi-zc-user') as HTMLInputElement; | ||||||
|     zcUser.value = this._user; |     zcUser.value = this._user; | ||||||
| @@ -103,31 +153,5 @@ export class Status { | |||||||
|       console.log('tapi-zc-off', this._statusOff); |       console.log('tapi-zc-off', this._statusOff); | ||||||
|       this._currentStatus = undefined; |       this._currentStatus = undefined; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     this.checkStatus(); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   private async checkStatus() { |  | ||||||
|     if (this._enabled) { |  | ||||||
|       try { |  | ||||||
|         var response = await axios.get<ZcStatus>('http://cpatapi.cpsrvweb2016.cp-austria.at/availability/' + encodeURIComponent(this._user)); |  | ||||||
|  |  | ||||||
|         if (response.status == 200) { |  | ||||||
|           var status = response.data; |  | ||||||
|           if (this._currentStatus !== status.loggedIn) { |  | ||||||
|             this._currentStatus = status.loggedIn; |  | ||||||
|             console.log('New status, loggedIn', this._currentStatus); |  | ||||||
|             (document.getElementsByClassName("current-status")[0] as HTMLAnchorElement).click(); |  | ||||||
|             setTimeout(() => { |  | ||||||
|               var statusId = this._currentStatus ? this._statusOn : this._statusOff; |  | ||||||
|               (document.getElementById(statusId) as HTMLAnchorElement).click(); |  | ||||||
|             }, 1000); |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } catch (error) { |  | ||||||
|         console.log(error); |  | ||||||
|       } |  | ||||||
|       setTimeout(() => this.checkStatus(), 30000); |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user