@@ -17,7 +17,7 @@ const EmployeeView = {
1717
1818 const formFab = new buildfire . components . fabSpeedDial ( '#fabSpeedDialContainer' , formOptions ) ;
1919 const scannerFab = new buildfire . components . fabSpeedDial ( '#fabSpeedDialContainer' , scannerOptions ) ;
20- scannerFab . onMainButtonClick = ( ) => this . _openScanner ( ) ;
20+ scannerFab . onMainButtonClick = ( ) => this . _openScanner ( true , true ) ;
2121 formFab . onMainButtonClick = ( ) => this . _openMaterialForm ( ) ;
2222 } ,
2323
@@ -35,6 +35,12 @@ const EmployeeView = {
3535 } ) ;
3636
3737 confirmBtn . addEventListener ( 'click' , async ( ) => {
38+ if ( ! navigator . onLine ) {
39+ buildfire . dialog . toast ( {
40+ message : await getLanguage ( 'general.networkError' ) ,
41+ } ) ;
42+ return ;
43+ }
3844 const userId = document . getElementById ( 'userIdField' ) . value ;
3945 if ( ! userId ) {
4046 userIdError . innerText = await getLanguage ( 'general.userIdRequired' ) ;
@@ -63,7 +69,7 @@ const EmployeeView = {
6369 document . getElementById ( 'userIdField' ) . value = '' ;
6470 } ) ;
6571 } ,
66- _openScanner ( showDeviceOnlyMessage = true ) {
72+ async _openScanner ( showDeviceOnlyMessage = true , showCameraPermissionMessage = false ) {
6773 const isWeb = buildfire . getContext ( ) . device . platform === 'web' ;
6874 if ( isWeb ) {
6975 if ( ! showDeviceOnlyMessage ) return null ;
@@ -75,14 +81,29 @@ const EmployeeView = {
7581
7682 return null ;
7783 }
84+
7885 buildfire . services . camera . barcodeScanner . scan (
7986 {
8087 preferFrontCamera : false ,
8188 showFlipCameraButton : false ,
8289 formats : 'QR_CODE' ,
8390 } ,
8491 async ( err , result ) => {
85- if ( err ) return console . error ( err ) ;
92+ if ( err ) {
93+ if ( JSON . stringify ( err ) === '"Scanning failed: Access to the camera has been prohibited; please enable it in the Settings app to continue"' ) {
94+ if ( showCameraPermissionMessage ) {
95+ const permissionErrorMessage = await getLanguage ( 'general.cameraPermissionRequired' ) ;
96+ buildfire . dialog . toast ( {
97+ message : permissionErrorMessage ,
98+ type : 'danger' ,
99+ } ) ;
100+ }
101+ } else {
102+ buildfire . dialog . toast ( { message : err , type : 'danger' } ) ;
103+ }
104+ return console . error ( err ) ;
105+ }
106+
86107 if ( result . cancelled ) {
87108 return null ;
88109 }
@@ -127,7 +148,7 @@ const EmployeeView = {
127148 async _openCustomerProfile ( userId ) {
128149 try {
129150 const result = await CustomerController . getCustomerInfo ( userId , widgetAppState . settings . cardSize ) ;
130- if ( result . currentStamps ) {
151+ if ( result . currentStamps !== undefined ) {
131152 widgetAppState . currentCustomer . currentStamps = result . currentStamps ;
132153 widgetAppState . currentCustomer . availableRewards = result . availableRewards ;
133154 }
0 commit comments