2024-03-03 11:59:32 +08:00
/ *
Copyright ( C ) 2024 Puter Technologies Inc .
This file is part of Puter . com .
Puter . com is free software : you can redistribute it and / or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU Affero General Public License for more details .
You should have received a copy of the GNU Affero General Public License
along with this program . If not , see < https : //www.gnu.org/licenses/>.
* /
2024-03-03 10:39:14 +08:00
import UIWindow from './UIWindow.js'
async function UIWindowQR ( options ) {
return new Promise ( async ( resolve ) => {
options = options ? ? { } ;
let h = '' ;
h += ` <div style="padding: 20px; margin-top: 0;"> ` ;
// success
h += ` <div class="feedback-sent-success"> ` ;
h += ` <img src=" ${ html _encode ( window . icons [ 'c-check.svg' ] ) } " style="width:50px; height:50px; display: block; margin:10px auto;"> ` ;
h += ` <p style="text-align:center; margin-bottom:10px; color: #005300; padding: 10px;">Thank you for contacting us. If you have an email associated with your account, you will hear back from us as soon as possible.</p> ` ;
h += ` </div> ` ;
// form
h += ` <div class="feedback-form"> ` ;
h += ` <p style="margin-top:0; font-size: 15px; -webkit-font-smoothing: antialiased;">Please use the form below to send us your feedback, comments, and bug reports.</p> ` ;
h += ` <textarea class="feedback-message" style="width:100%; height: 200px; padding: 10px; box-sizing: border-box;"></textarea> ` ;
h += ` <button class="button button-primary send-feedback-btn" style="float: right; margin-bottom: 15px; margin-top: 10px;">Send</button> ` ;
h += ` </div> ` ;
h += ` </div> ` ;
const el _window = await UIWindow ( {
title : 'Contact Us' ,
app : 'feedback' ,
single _instance : true ,
icon : null ,
uid : null ,
is _dir : false ,
body _content : h ,
draggable _body : false ,
has _head : true ,
selectable _body : false ,
draggable _body : false ,
allow _context _menu : false ,
is _resizable : false ,
is _droppable : false ,
init _center : true ,
allow _native _ctxmenu : false ,
allow _user _select : false ,
width : 350 ,
height : 'auto' ,
dominant : true ,
show _in _taskbar : false ,
onAppend : function ( this _window ) {
$ ( this _window ) . find ( '.feedback-message' ) . get ( 0 ) . focus ( { preventScroll : true } ) ;
} ,
window _class : 'window-feedback' ,
body _css : {
width : 'initial' ,
height : '100%' ,
'background-color' : 'rgb(245 247 249)' ,
'backdrop-filter' : 'blur(3px)' ,
}
} )
$ ( el _window ) . find ( '.send-feedback-btn' ) . on ( 'click' , function ( e ) {
const message = $ ( el _window ) . find ( '.feedback-message' ) . val ( ) ;
if ( message )
$ ( this ) . prop ( 'disabled' , true ) ;
$ . ajax ( {
url : api _origin + "/contactUs" ,
type : 'POST' ,
async : true ,
contentType : "application/json" ,
headers : {
"Authorization" : "Bearer " + auth _token
} ,
data : JSON . stringify ( {
message : message ,
} ) ,
success : async function ( data ) {
$ ( el _window ) . find ( '.feedback-form' ) . hide ( ) ;
$ ( el _window ) . find ( '.feedback-sent-success' ) . show ( 100 ) ;
}
} )
} )
} )
}
export default UIWindowQR