├── html ├── img │ ├── qbit.png │ ├── default.png │ ├── LSBNlogo.png │ ├── apps │ │ ├── debt.png │ │ ├── lsbn.png │ │ ├── wenmo.png │ │ ├── crypto.png │ │ ├── politie.png │ │ ├── calcilator.png │ │ ├── employment.png │ │ ├── garage_img.png │ │ ├── jobcenter.png │ │ └── Advertisements.png │ ├── samsung-s10.png │ ├── default-QBCore.jpg │ ├── map-photo-ping.png │ └── backgrounds │ │ └── default-qbcore.png ├── js │ ├── camera.js │ ├── config.js │ ├── calculator.js │ ├── ping.js │ ├── jobcenter.js │ ├── trucker.js │ ├── wenmo.js │ ├── details.js │ ├── garage.js │ ├── lsbn.js │ ├── publicphone.js │ ├── debt.js │ ├── gallery.js │ ├── documents.js │ ├── casino.js │ ├── employment.js │ ├── qstore.js │ ├── houses.js │ ├── settings.js │ ├── mail.js │ ├── bank.js │ └── lawyers.js └── css │ ├── z-style.css │ ├── tooltip.css │ ├── camera.css │ ├── wenmo.css │ ├── debt.css │ ├── jobcenter.css │ ├── lsbn.css │ ├── details.css │ ├── ping.css │ ├── employment.css │ ├── lawyers.css │ ├── calculator.css │ ├── publicphone.css │ ├── casino.css │ ├── trucker.css │ ├── gallery.css │ ├── garage.css │ ├── documents.css │ ├── qstore.css │ ├── twitter.css │ ├── houses.css │ ├── mail.css │ ├── settings.css │ └── bank.css ├── fxmanifest.lua ├── client └── animation.lua ├── qb-phone.sql └── config.lua /html/img/qbit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/qbit.png -------------------------------------------------------------------------------- /html/js/camera.js: -------------------------------------------------------------------------------- 1 | function setUpCameraApp(url){ 2 | $('.phone-tab-button').click(); 3 | } -------------------------------------------------------------------------------- /html/img/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/default.png -------------------------------------------------------------------------------- /html/img/LSBNlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/LSBNlogo.png -------------------------------------------------------------------------------- /html/img/apps/debt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/debt.png -------------------------------------------------------------------------------- /html/img/apps/lsbn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/lsbn.png -------------------------------------------------------------------------------- /html/img/apps/wenmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/wenmo.png -------------------------------------------------------------------------------- /html/img/apps/crypto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/crypto.png -------------------------------------------------------------------------------- /html/img/apps/politie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/politie.png -------------------------------------------------------------------------------- /html/img/samsung-s10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/samsung-s10.png -------------------------------------------------------------------------------- /html/img/apps/calcilator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/calcilator.png -------------------------------------------------------------------------------- /html/img/apps/employment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/employment.png -------------------------------------------------------------------------------- /html/img/apps/garage_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/garage_img.png -------------------------------------------------------------------------------- /html/img/apps/jobcenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/jobcenter.png -------------------------------------------------------------------------------- /html/img/default-QBCore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/default-QBCore.jpg -------------------------------------------------------------------------------- /html/img/map-photo-ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/map-photo-ping.png -------------------------------------------------------------------------------- /html/img/apps/Advertisements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/apps/Advertisements.png -------------------------------------------------------------------------------- /html/img/backgrounds/default-qbcore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinGirardx/qb-phone/HEAD/html/img/backgrounds/default-qbcore.png -------------------------------------------------------------------------------- /html/js/config.js: -------------------------------------------------------------------------------- 1 | Config = [] 2 | 3 | Config.HeaderDisabledApps = [ 4 | "bank", 5 | "whatsapp", 6 | "meos", 7 | "garage", 8 | "crypto", 9 | "racing", 10 | "houses", 11 | "lawyers", 12 | "trucker", 13 | ] 14 | 15 | Config.DefaultCryptoPage = "general"; -------------------------------------------------------------------------------- /html/js/calculator.js: -------------------------------------------------------------------------------- 1 | function data(val){ 2 | calc.display.value += val; 3 | } 4 | function ac(){ 5 | calc.display.value = ""; 6 | } 7 | function c(){ 8 | calc.display.value = calc.display.value.slice(0, -1); 9 | } 10 | function equal(){ 11 | calc.display.value = eval(calc.display.value); 12 | } -------------------------------------------------------------------------------- /html/css/z-style.css: -------------------------------------------------------------------------------- 1 | #z-style-expert{ 2 | background: #202731; 3 | 4 | background: #2c465f; 5 | background: #0d1218c0; 6 | 7 | background: #f5a15b; 8 | background: #c27e47; 9 | 10 | background: #8ee074; 11 | background: #6cac59; 12 | 13 | box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; 14 | 15 | background: #227ea5; 16 | 17 | } -------------------------------------------------------------------------------- /html/css/tooltip.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .tooltip-inner { 4 | font-size: 11px; 5 | color: white; 6 | } 7 | 8 | .toggle.ios, .toggle-on.ios, .toggle-off.ios { 9 | border-radius: 20px; 10 | } 11 | 12 | .toggle.ios .toggle-handle { 13 | border-radius: 20px; 14 | } 15 | 16 | .custom-control, .custom-switch, .custom-control-input { 17 | color: white 18 | } 19 | -------------------------------------------------------------------------------- /html/css/camera.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Lato&display=swap'); 2 | 3 | .camera-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: rgb(36, 36, 36); 8 | overflow: hidden; 9 | } 10 | 11 | 12 | .camera-homescreen { 13 | position: absolute; 14 | height: 100%; 15 | width: 100%; 16 | left: 0vh; 17 | } 18 | 19 | 20 | 21 | .loader { 22 | z-index: 1000; 23 | border: 16px solid #f3f3f3; 24 | border-top: 16px solid #3498db; 25 | border-bottom: 16px solid #3498db; 26 | border-radius: 50%; 27 | animation: spin 2s linear infinite; 28 | position: absolute; 29 | top: 50%; 30 | left: 50%; 31 | margin-top: -50px; 32 | margin-left: -50px; 33 | width: 100px; 34 | height: 100px; 35 | } 36 | 37 | @keyframes spin { 38 | 0% { transform: rotate(0deg); } 39 | 100% { transform: rotate(360deg); } 40 | } -------------------------------------------------------------------------------- /fxmanifest.lua: -------------------------------------------------------------------------------- 1 | fx_version 'cerulean' 2 | game 'gta5' 3 | 4 | author 'Booya#0001' 5 | description 'Edits and additionals with Jerzy#9709\'s assistance. Original inspiration and editing from amir_expert#1911' 6 | version 'Release' 7 | 8 | ui_page 'html/index.html' 9 | 10 | shared_scripts { 11 | 'config.lua', 12 | '@qb-apartments/config.lua', 13 | '@qb-garages/config.lua', 14 | } 15 | 16 | client_scripts { 17 | 'client/main.lua', 18 | 'client/animation.lua' 19 | } 20 | 21 | server_scripts { 22 | 'server/main.lua', 23 | '@oxmysql/lib/MySQL.lua' 24 | } 25 | 26 | files { 27 | 'html/*.html', 28 | 'html/js/*.js', 29 | 'html/img/*.png', 30 | 'html/css/*.css', 31 | 'html/fonts/*.ttf', 32 | 'html/fonts/*.otf', 33 | 'html/fonts/*.woff', 34 | 'html/img/backgrounds/*.png', 35 | 'html/img/apps/*.png', 36 | } 37 | 38 | lua54 'yes' 39 | 40 | dependency '/assetpacks' -------------------------------------------------------------------------------- /html/js/ping.js: -------------------------------------------------------------------------------- 1 | $(document).on('click', '#ping-send', function(e){ 2 | e.preventDefault(); 3 | var IDPlayer = $("#channel").val(); 4 | if (IDPlayer >= 1){ 5 | $.post('https://qb-phone/SendPingPlayer', JSON.stringify({ 6 | id: IDPlayer 7 | })); 8 | $("#channel").val(""); 9 | } 10 | }); 11 | 12 | $(document).on('click', '#ping-accept', function(e){ 13 | e.preventDefault(); 14 | $.post('https://qb-phone/AcceptPingPlayer', JSON.stringify({})); 15 | }); 16 | 17 | $(document).on('click', '#ping-reject', function(e){ 18 | e.preventDefault(); 19 | $.post('https://qb-phone/rejectPingPlayer', JSON.stringify({})); 20 | }); 21 | 22 | $(document).ready(function(){ 23 | window.addEventListener('message', function(event) { 24 | switch(event.data.action) { 25 | case "acceptrejectBlock": 26 | $("#ping-accept").css({"display":"block"}); 27 | $("#ping-reject").css({"display":"block"}); 28 | break; 29 | case "acceptrejectNone": 30 | $("#ping-accept").css({"display":"none"}); 31 | $("#ping-reject").css({"display":"none"}); 32 | break; 33 | } 34 | }) 35 | }); -------------------------------------------------------------------------------- /html/js/jobcenter.js: -------------------------------------------------------------------------------- 1 | function LoadJobCenter(){ 2 | $.post('https://qb-phone/GetJobCentersJobs', JSON.stringify({}), function(Jobs){ 3 | $(".jobcenter-list").html(""); 4 | for (const [k, v] of Object.entries(Jobs)) { 5 | var AddOption = '
'+'
'+v.label+'
' 6 | $('.jobcenter-list').append(AddOption); 7 | } 8 | }); 9 | }; 10 | 11 | $(document).on('click', '#jobcenter-icon-class', function(e){ 12 | e.preventDefault(); 13 | var action = $(this).data('action') 14 | if(action == 1){ 15 | var job = $(this).data('job') 16 | var label = $(this).data('label') 17 | $.post('https://qb-phone/CasinoPhoneJobCenter', JSON.stringify({ 18 | action: action, 19 | job: job, 20 | label: label, 21 | })); 22 | }else if(action == 2){ 23 | var x = $(this).data('x') 24 | var y = $(this).data('y') 25 | $.post('https://qb-phone/CasinoPhoneJobCenter', JSON.stringify({ 26 | action: action, 27 | x: x, 28 | y: y, 29 | })); 30 | } 31 | }); -------------------------------------------------------------------------------- /html/js/trucker.js: -------------------------------------------------------------------------------- 1 | SetupTruckerInfo = function(data) { 2 | var NewRep = 0; 3 | var AmountOfTiers = (data.TiersData).length; 4 | var Difference = (data.CurrentTierData.max - data.CurrentTierData.min); 5 | var DivideAmount = (100 / Difference) 6 | var ProgressPercentage = data.CurrentRep * DivideAmount; 7 | 8 | if (data.CurrentTier != 1) { 9 | NewRep = (data.CurrentRep - data.TiersData[((data.CurrentTier - 1) - 1)].max); 10 | ProgressPercentage = NewRep * DivideAmount; 11 | } 12 | 13 | $("#trucker-name").html(QB.Phone.Data.PlayerData.charinfo.firstname + " " + QB.Phone.Data.PlayerData.charinfo.lastname); 14 | 15 | if (data.CurrentTierData.min == data.CurrentTierData.max) { 16 | $("#trucker-header-progress-current").html("Current: " + data.CurrentRep + " REP"); 17 | $("#trucker-header-tier").html("Tier " + AmountOfTiers); 18 | $("#trucker-header-progress-next").html("Next: MAX"); 19 | 20 | $(".trucker-header-progress-fill").css("width", "100%"); 21 | } else { 22 | $("#trucker-header-progress-current").html("Current: " + data.CurrentRep + " REP"); 23 | $("#trucker-header-tier").html("Tier " + data.CurrentTier); 24 | $("#trucker-header-progress-next").html("Next: " + (data.CurrentTierData.max - data.CurrentRep) + " REP"); 25 | 26 | $(".trucker-header-progress-fill").css("width", ProgressPercentage + "%"); 27 | } 28 | } -------------------------------------------------------------------------------- /html/js/wenmo.js: -------------------------------------------------------------------------------- 1 | $(document).on('click', '.wenmo-send-money-btn', function(e){ 2 | e.preventDefault(); 3 | ClearInputNew() 4 | $('#wenmo-box-new-for-give').fadeIn(350); 5 | }); 6 | 7 | $(document).on('click', '#wenmo-send-money-ended', function(e){ 8 | e.preventDefault(); 9 | var ID = $(".wenmo-input-one").val(); 10 | var Amount = $(".wenmo-input-two").val(); 11 | var Reason = $(".wenmo-input-three").val(); 12 | if ((ID && Amount && Reason) != "" && (ID && Amount) >= 1){ 13 | $.post('https://qb-phone/wenmo_givemoney_toID', JSON.stringify({ 14 | ID: ID, 15 | Amount: Amount, 16 | Reason: Reason, 17 | })); 18 | 19 | ClearInputNew() 20 | $('#wenmo-box-new-for-give').fadeIn(350); 21 | } 22 | }); 23 | 24 | $(document).ready(function(){ 25 | window.addEventListener('message', function(event) { 26 | switch(event.data.action) { 27 | case "ChangeMoney_Wenmo": 28 | var date = new Date(); 29 | var Times = date.getHours()+":"+date.getMinutes(); 30 | var AddOption = '
'+event.data.Amount+'
'+Times+'
'+ 31 | '
'+event.data.Reason+'
'+ 32 | '
' 33 | 34 | $('.wenmo-list').prepend(AddOption); 35 | break; 36 | } 37 | }) 38 | }); -------------------------------------------------------------------------------- /html/css/wenmo.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .wenmo-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .wenmo-header { 12 | position: absolute; 13 | width: 86%; 14 | height: 10%; 15 | left: 6.5%; 16 | right: 0; 17 | color: white; 18 | font-size: 1.8vh; 19 | } 20 | 21 | .wenmo-header > p { 22 | line-height: 12vh; 23 | text-indent: 2vh; 24 | margin: 0 0 0 9vh; 25 | } 26 | 27 | .wenmo-header > span { 28 | position: absolute; 29 | top: 8vh; 30 | left: 9vh; 31 | font-size: 1.2vh; 32 | height: 2vh; 33 | color: white; 34 | } 35 | 36 | .wenmo-list { 37 | position: absolute; 38 | width: 90%; 39 | height: 84%; 40 | margin: 0 auto; 41 | left: 0; 42 | right: 0; 43 | bottom: 3%; 44 | border-radius: .5vh; 45 | overflow-y: scroll; 46 | } 47 | 48 | .wenmo-list::-webkit-scrollbar { 49 | display: none; 50 | } 51 | 52 | 53 | .wenmo-send-money-btn{ 54 | position: absolute; 55 | color: whitesmoke; 56 | transition: all 0.2s ease 0s; 57 | display: inline; 58 | border-radius: 4px; 59 | top: 77%; 60 | left: 91%; 61 | } 62 | 63 | .wenmo-send-money-btn:hover{ 64 | color: rgb(187, 187, 187); 65 | } 66 | 67 | .wenmo-form-style-body{ 68 | width: 95%; 69 | background-color: #2c465f; 70 | margin: 2% 2%; 71 | padding: 3% 3%; 72 | border-radius: 4px; 73 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 74 | } 75 | 76 | .wenmo-time-class-body{ 77 | display: inline; 78 | float: right; 79 | color: whitesmoke; 80 | } -------------------------------------------------------------------------------- /html/js/details.js: -------------------------------------------------------------------------------- 1 | function LoadPlayerMoneys(){ 2 | var PlayerPhoneNumber = QB.Phone.Data.PlayerData.charinfo.phone; 3 | var PlayerBankAcc = QB.Phone.Data.PlayerData.charinfo.account; 4 | var PlayerBankMoney = QB.Phone.Data.PlayerData.money.bank; 5 | var PlayerCashMoney = QB.Phone.Data.PlayerData.money.cash; 6 | var PlayerMCE = QB.Phone.Data.PlayerData.money.mce; 7 | var PlayerStateID = QB.Phone.Data.PlayerData.citizenid; 8 | var PlayerCraftingRep = QB.Phone.Data.PlayerData.metadata['craftingrep']; 9 | 10 | 11 | $(".details-phone").html(PlayerPhoneNumber) 12 | $(".details-bankserial").html(PlayerBankAcc) 13 | $(".details-bankmoney").html("$"+PlayerBankMoney) 14 | $(".details-cashmoney").html("$"+PlayerCashMoney) 15 | $(".details-millenniumcoin").html(PlayerMCE) 16 | $(".details-stateid").html(PlayerStateID) 17 | $(".details-craftingrep").html(PlayerCraftingRep) 18 | 19 | var PlayerLicenses = QB.Phone.Data.PlayerData.metadata.licences; 20 | 21 | $(".details-list").html(""); 22 | var AddOption0 = '
Licenses
' 23 | $('.details-list').append(AddOption0); 24 | for (const [k, v] of Object.entries(PlayerLicenses)) { 25 | if (v){ 26 | var firstLetter = k.substring(0, 1); 27 | var Fulltext = firstLetter.toUpperCase()+k.replace(firstLetter,'')+" License" 28 | 29 | var AddOption = '
'+ 30 | '
'+Fulltext+'
'+ 31 | '
'+ 32 | '
' 33 | $('.details-list').append(AddOption); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /html/css/debt.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .debt-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .debt-header { 12 | position: absolute; 13 | width: 86%; 14 | height: 10%; 15 | left: 6.5%; 16 | right: 0; 17 | color: white; 18 | font-size: 1.8vh; 19 | } 20 | 21 | .debt-header > p { 22 | line-height: 12vh; 23 | text-indent: 2vh; 24 | margin: 0 0 0 9vh; 25 | } 26 | 27 | .debt-header > span { 28 | position: absolute; 29 | top: 8vh; 30 | left: 9vh; 31 | font-size: 1.2vh; 32 | height: 2vh; 33 | color: white; 34 | } 35 | 36 | .debt-list { 37 | position: absolute; 38 | width: 90%; 39 | height: 84%; 40 | margin: 0 auto; 41 | left: 0; 42 | right: 0; 43 | bottom: 3%; 44 | border-radius: .5vh; 45 | overflow-y: scroll; 46 | } 47 | 48 | .debt-list::-webkit-scrollbar { 49 | display: none; 50 | } 51 | 52 | 53 | 54 | 55 | 56 | .debt-create-bill-btn{ 57 | position: absolute; 58 | color: whitesmoke; 59 | transition: all 0.2s ease 0s; 60 | display: inline; 61 | border-radius: 4px; 62 | top: 77%; 63 | left: 91%; 64 | } 65 | .debt-create-bill-btn:hover{ 66 | color: rgb(187, 187, 187); 67 | } 68 | 69 | .debt-form-style-body{ 70 | width: 95%; 71 | background-color: #2c465f; 72 | margin: 2% 2%; 73 | padding: 3% 3%; 74 | border-radius: 4px; 75 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 76 | } 77 | 78 | .debt-btn-for-check-data{ 79 | display: inline; 80 | text-align: right; 81 | float: right; 82 | transition: all 0.2s ease 0s; 83 | } 84 | .debt-btn-for-check-data:hover{ 85 | color: rgb(187, 187, 187); 86 | } 87 | 88 | .debt-show-bodyclass{ 89 | color: whitesmoke; 90 | width: 90%; 91 | margin: 2% 5%; 92 | background-color: #213548; 93 | border-radius: 4px; 94 | padding: 1%; 95 | } -------------------------------------------------------------------------------- /html/css/jobcenter.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .jobcenter-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .jobcenter-header { 12 | position: absolute; 13 | width: 90%; 14 | height: 10%; 15 | /* top: 8%; */ 16 | left: 0; 17 | right: 0; 18 | color: white; 19 | /* font-family: 'Roboto', sans-serif !important; */ 20 | font-size: 1.8vh; 21 | /* margin: 0 auto; */ 22 | } 23 | 24 | .jobcenter-header > p { 25 | line-height: 12vh; 26 | text-indent: 2vh; 27 | margin: 0 0 0 9vh; 28 | } 29 | 30 | .jobcenter-header > span { 31 | position: absolute; 32 | top: 8vh; 33 | left: 9vh; 34 | font-size: 1.2vh; 35 | height: 2vh; 36 | color: white; 37 | } 38 | 39 | .jobcenter-list { 40 | position: absolute; 41 | width: 90%; 42 | height: 80%; 43 | margin: 0 auto; 44 | left: 0; 45 | right: 0; 46 | bottom: 3%; 47 | border-radius: .5vh; 48 | overflow-y: scroll; 49 | } 50 | 51 | .jobcenter-list::-webkit-scrollbar { 52 | display: none; 53 | } 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | .jobcenter-class-body-job{ 62 | color: whitesmoke; 63 | background: #2c465f; 64 | transition: 0.2s; 65 | width: 95%; 66 | padding: 2%; 67 | margin-left: 2%; 68 | margin-bottom: 2%; 69 | border-radius: 4px; 70 | /* box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; */ 71 | } 72 | .jobcenter-class-body-job:hover{ 73 | background: #0d1218c0; 74 | } 75 | 76 | .jobcenter-showitems-other{ 77 | margin-left: 35%; 78 | position: absolute; 79 | display: initial; 80 | visibility: hidden; 81 | } 82 | 83 | #jobcenter-icon-class{ 84 | padding-left: 1.3vh; 85 | font-size: 140%; 86 | } 87 | .jobcenter-class-body-job:hover .jobcenter-showitems-other{ 88 | visibility: visible; 89 | } 90 | 91 | #jobcenter-icon-class:hover{ 92 | color: #8ee074; 93 | } -------------------------------------------------------------------------------- /html/css/lsbn.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .lsbn-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .lsbn-header { 12 | position: absolute; 13 | width: 86%; 14 | height: 10%; 15 | left: 6.5%; 16 | right: 0; 17 | color: white; 18 | /* font-family: 'Roboto', sans-serif !important; */ 19 | font-size: 1.8vh; 20 | /* margin: 0 auto; */ 21 | } 22 | 23 | .lsbn-header > p { 24 | line-height: 12vh; 25 | text-indent: 2vh; 26 | margin: 0 0 0 9vh; 27 | } 28 | 29 | .lsbn-header > span { 30 | position: absolute; 31 | top: 8vh; 32 | left: 9vh; 33 | font-size: 1.2vh; 34 | height: 2vh; 35 | color: white; 36 | } 37 | 38 | .lsbn-list { 39 | position: absolute; 40 | width: 90%; 41 | height: 74%; 42 | margin: 0 auto; 43 | left: 0; 44 | right: 0; 45 | bottom: 3%; 46 | border-radius: .5vh; 47 | overflow-y: scroll; 48 | } 49 | 50 | .lsbn-list::-webkit-scrollbar { 51 | display: none; 52 | } 53 | 54 | 55 | 56 | 57 | 58 | .lsbn-send-news-for-chat{ 59 | position: absolute; 60 | color: whitesmoke; 61 | transition: all 0.2s ease 0s; 62 | display: inline; 63 | border-radius: 4px; 64 | top: 77%; 65 | left: 91%; 66 | z-index: 1; 67 | } 68 | .lsbn-send-news-for-chat:hover{ 69 | color: rgb(187, 187, 187); 70 | } 71 | 72 | .lsbn-logo-style{ 73 | width: 90%; 74 | position: relative; 75 | top: 70%; 76 | margin-left: 5%; 77 | } 78 | 79 | .lsbn-chat-style-main{ 80 | width: 90%; 81 | margin-left: 4%; 82 | margin-bottom: 2%; 83 | padding: 2%; 84 | color: whitesmoke; 85 | background: #2c465f; 86 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 87 | border-radius: 2px; 88 | } 89 | 90 | .lsbn-chat-time-style{ 91 | text-align: right; 92 | color: #adadad; 93 | } 94 | 95 | .lsbn-chat-to-image-style{ 96 | width: 100%; 97 | } -------------------------------------------------------------------------------- /client/animation.lua: -------------------------------------------------------------------------------- 1 | local phoneProp = 0 2 | local phoneModel = `prop_npc_phone_02` 3 | 4 | local function LoadAnimation(dict) 5 | RequestAnimDict(dict) 6 | while not HasAnimDictLoaded(dict) do 7 | Wait(1) 8 | end 9 | end 10 | 11 | local function CheckAnimLoop() 12 | CreateThread(function() 13 | while PhoneData.AnimationData.lib ~= nil and PhoneData.AnimationData.anim ~= nil do 14 | local ped = PlayerPedId() 15 | if not IsEntityPlayingAnim(ped, PhoneData.AnimationData.lib, PhoneData.AnimationData.anim, 3) then 16 | LoadAnimation(PhoneData.AnimationData.lib) 17 | TaskPlayAnim(ped, PhoneData.AnimationData.lib, PhoneData.AnimationData.anim, 3.0, 3.0, -1, 50, 0, false, false, false) 18 | end 19 | Wait(500) 20 | end 21 | end) 22 | end 23 | 24 | function newPhoneProp() 25 | deletePhone() 26 | RequestModel(phoneModel) 27 | while not HasModelLoaded(phoneModel) do 28 | Wait(1) 29 | end 30 | phoneProp = CreateObject(phoneModel, 1.0, 1.0, 1.0, 1, 1, 0) 31 | 32 | local bone = GetPedBoneIndex(PlayerPedId(), 28422) 33 | if phoneModel == `prop_cs_phone_01` then 34 | AttachEntityToEntity(phoneProp, PlayerPedId(), bone, 0.0, 0.0, 0.0, 50.0, 320.0, 50.0, 1, 1, 0, 0, 2, 1) 35 | else 36 | AttachEntityToEntity(phoneProp, PlayerPedId(), bone, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1, 1, 0, 0, 2, 1) 37 | end 38 | end 39 | 40 | function deletePhone() 41 | if phoneProp ~= 0 then 42 | DeleteObject(phoneProp) 43 | phoneProp = 0 44 | end 45 | end 46 | 47 | function DoPhoneAnimation(anim) 48 | local ped = PlayerPedId() 49 | local AnimationLib = 'cellphone@' 50 | local AnimationStatus = anim 51 | if IsPedInAnyVehicle(ped, false) then 52 | AnimationLib = 'anim@cellphone@in_car@ps' 53 | end 54 | LoadAnimation(AnimationLib) 55 | TaskPlayAnim(ped, AnimationLib, AnimationStatus, 3.0, 3.0, -1, 50, 0, false, false, false) 56 | PhoneData.AnimationData.lib = AnimationLib 57 | PhoneData.AnimationData.anim = AnimationStatus 58 | CheckAnimLoop() 59 | end -------------------------------------------------------------------------------- /html/js/garage.js: -------------------------------------------------------------------------------- 1 | let veh 2 | 3 | $(document).on('click', '.garage-vehicle', function(e){ 4 | e.preventDefault(); 5 | 6 | $(".garage-homescreen").animate({ 7 | left: 30+"vh" 8 | }, 200); 9 | $(".garage-detailscreen").animate({ 10 | left: 0+"vh" 11 | }, 200); 12 | 13 | var Id = $(this).attr('id'); 14 | var VehData = $("#"+Id).data('VehicleData'); 15 | veh = VehData 16 | SetupDetails(VehData); 17 | }); 18 | 19 | 20 | $(document).on('click', '#track-vehicle', function(e){ 21 | e.preventDefault() 22 | $.post("https://qb-phone/gps-vehicle-garage", JSON.stringify({ 23 | veh: veh, 24 | })); 25 | }); 26 | 27 | 28 | $(document).on('click', '#return-button', function(e){ 29 | e.preventDefault(); 30 | 31 | $(".garage-homescreen").animate({ 32 | left: 00+"vh" 33 | }, 200); 34 | $(".garage-detailscreen").animate({ 35 | left: -30+"vh" 36 | }, 200); 37 | }); 38 | 39 | SetupGarageVehicles = function(Vehicles) { 40 | $(".garage-vehicles").html(""); 41 | if (Vehicles != null) { 42 | $.each(Vehicles, function(i, vehicle){ 43 | var Element = '
'+vehicle.brand.charAt(0)+' '+vehicle.fullname+'
'; 44 | 45 | $(".garage-vehicles").append(Element); 46 | $("#vehicle-"+i).data('VehicleData', vehicle); 47 | }); 48 | } 49 | } 50 | 51 | SetupDetails = function(data) { 52 | $(".vehicle-brand").find(".vehicle-answer").html(data.brand); 53 | $(".vehicle-model").find(".vehicle-answer").html(data.model); 54 | $(".vehicle-plate").find(".vehicle-answer").html(data.plate); 55 | $(".vehicle-garage").find(".vehicle-answer").html(data.garage); 56 | $(".vehicle-status").find(".vehicle-answer").html(data.state); 57 | $(".vehicle-fuel").find(".vehicle-answer").html(Math.ceil(data.fuel)+"%"); 58 | $(".vehicle-engine").find(".vehicle-answer").html(Math.ceil(data.engine / 10)+"%"); 59 | $(".vehicle-body").find(".vehicle-answer").html(Math.ceil(data.body / 10)+"%"); 60 | } -------------------------------------------------------------------------------- /html/css/details.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .details-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .details-header { 12 | position: absolute; 13 | width: 90%; 14 | height: 30%; 15 | top: 8%; 16 | left: 0; 17 | right: 0; 18 | color: white; 19 | font-size: 1.8vh; 20 | margin: 0 auto; 21 | } 22 | 23 | .details-header > p { 24 | line-height: 12vh; 25 | text-indent: 2vh; 26 | margin: 0 0 0 9vh; 27 | } 28 | 29 | .details-header > span { 30 | position: absolute; 31 | top: 8vh; 32 | left: 9vh; 33 | font-size: 1.2vh; 34 | height: 2vh; 35 | color: white; 36 | } 37 | 38 | .details-list { 39 | position: absolute; 40 | width: 90%; 41 | height: 54%; 42 | margin: 0 auto; 43 | left: 0; 44 | right: 0; 45 | bottom: 3%; 46 | border-radius: .5vh; 47 | overflow-y: scroll; 48 | } 49 | 50 | .details-list::-webkit-scrollbar { 51 | display: none; 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | .details-money-types{ 61 | display: inline-block; 62 | position: relative; 63 | width: 100%; 64 | color: whitesmoke; 65 | font-size: 2vh; 66 | } 67 | 68 | .details-moneys-body-main{ 69 | display: block; 70 | width: 100%; 71 | margin-left: 3%; 72 | margin-bottom: 2%; 73 | } 74 | 75 | .details-icon-class{ 76 | display: inline-block; 77 | text-align: center; 78 | width: 10%; 79 | } 80 | .details-text-class{ 81 | display: inline; 82 | width: 90%; 83 | } 84 | 85 | .details-license-body-main{ 86 | display: block; 87 | width: 100%; 88 | margin-left: 3%; 89 | margin-bottom: 2%; 90 | color: whitesmoke; 91 | } 92 | 93 | .details-license-icon-class{ 94 | display: inline; 95 | text-align: right; 96 | width: 10%; 97 | } 98 | .details-license-text-class{ 99 | display: inline-block; 100 | width: 85%; 101 | } 102 | 103 | .details-text-license{ 104 | width: 100%; 105 | color: whitesmoke; 106 | text-align: center; 107 | } -------------------------------------------------------------------------------- /html/css/ping.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .ping-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .ping-header { 12 | position: absolute; 13 | width: 90%; 14 | height: 30%; 15 | top: 8%; 16 | left: 0; 17 | right: 0; 18 | color: white; 19 | font-size: 1.8vh; 20 | margin: 0 auto; 21 | } 22 | 23 | .ping-header > p { 24 | line-height: 12vh; 25 | text-indent: 2vh; 26 | margin: 0 0 0 9vh; 27 | } 28 | 29 | .ping-header > span { 30 | position: absolute; 31 | top: 8vh; 32 | left: 9vh; 33 | font-size: 1.2vh; 34 | height: 2vh; 35 | color: white; 36 | } 37 | 38 | .ping-list { 39 | position: absolute; 40 | width: 98%; 41 | height: 100%; 42 | margin: 0 auto; 43 | left: 0; 44 | right: 0; 45 | /* bottom: 3%; */ 46 | border-radius: .5vh; 47 | overflow-y: scroll; 48 | } 49 | 50 | .ping-list::-webkit-scrollbar { 51 | display: none; 52 | } 53 | 54 | 55 | .imagepingapp{ 56 | width: 100%; 57 | height: 100%; 58 | } 59 | 60 | .channel { 61 | position: absolute; 62 | width: 100%; 63 | top: 20%; 64 | font-size: 2vh; 65 | background: none; 66 | -moz-user-select: -moz-none; 67 | -khtml-user-select: none; 68 | -webkit-user-select: none; 69 | -o-user-select: none; 70 | user-select: none; 71 | z-index: 1; 72 | color: whitesmoke; 73 | } 74 | 75 | input[name="channel"]::-webkit-input-placeholder { 76 | color: whitesmoke; 77 | } 78 | .channel span { 79 | text-align: center; 80 | color: rgba(0, 0, 0, 0.75); 81 | } 82 | 83 | .channel input { 84 | text-align: center; 85 | border: none; 86 | border-bottom: .2vh solid whitesmoke; 87 | background: none; 88 | outline: none; 89 | font-family: 'Fira Code', monospace; 90 | width: 60%; 91 | margin-left: 20%; 92 | color: rgb(255, 255, 255); 93 | text-shadow: 1px 1px 3px rgb(5, 5, 5); 94 | margin-bottom: 5%; 95 | } 96 | 97 | .channel input::-webkit-inner-spin-button { 98 | -webkit-appearance: none; 99 | } 100 | 101 | .ping-sender-piinger{ 102 | display: block; 103 | width: 60%; 104 | text-align: center; 105 | margin-left: 20%; 106 | background: rgb(50, 89, 144); 107 | border-radius: 4px; 108 | box-shadow: 1px 1px 6px rgb(5, 5, 5); 109 | text-shadow: 1px 1px 3px rgb(5, 5, 5); 110 | margin-bottom: 5%; 111 | transition: 0.3s; 112 | } 113 | 114 | .ping-sender-piinger:hover{ 115 | background: rgb(37, 68, 111); 116 | } -------------------------------------------------------------------------------- /html/js/lsbn.js: -------------------------------------------------------------------------------- 1 | 2 | LoadLSBNEvent = function() { 3 | var PlayerJob = QB.Phone.Data.PlayerData.job.name; 4 | if (PlayerJob == "reporter"){ 5 | $(".lsbn-send-news-for-chat").css({"display":"block"}); 6 | } else { 7 | $(".lsbn-send-news-for-chat").css({"display":"none"}); 8 | } 9 | 10 | $(".lsbn-list").html(""); 11 | $.post('https://qb-phone/GetLSBNchats', JSON.stringify({})); 12 | } 13 | 14 | $(document).on('click', '.lsbn-send-news-for-chat', function(e){ 15 | e.preventDefault(); 16 | ClearInputNew() 17 | $('#lsbn-box-new-add-text').fadeIn(350); 18 | }); 19 | 20 | $(document).on('click', '#lsbn-submit-to-send-text', function(e){ 21 | e.preventDefault(); 22 | 23 | var Text = $(".lsbn-input-yek").val(); 24 | var Image = $(".lsbn-input-doo").val(); 25 | var date = new Date(); 26 | var Times = date.getDay()+" "+MonthFormatting[date.getMonth()]+" "+date.getHours()+":"+date.getMinutes(); 27 | 28 | if((Text && Image) != ""){ 29 | $.post('https://qb-phone/Send_lsbn_ToChat', JSON.stringify({ 30 | Type: "Image", 31 | Text: Text, 32 | Image: Image, 33 | Time: Times, 34 | })); 35 | ClearInputNew() 36 | $('#lsbn-box-new-add-text').fadeOut(350); 37 | }else if (Text != ""){ 38 | $.post('https://qb-phone/Send_lsbn_ToChat', JSON.stringify({ 39 | Type: "Text", 40 | Text: Text, 41 | Time: Times, 42 | })); 43 | ClearInputNew() 44 | $('#lsbn-box-new-add-text').fadeOut(350); 45 | } 46 | }); 47 | 48 | $(document).ready(function(){ 49 | window.addEventListener('message', function(event) { 50 | switch(event.data.action) { 51 | case "AddNews": 52 | AddNewsLSBN(event.data.data) 53 | break; 54 | } 55 | }) 56 | }); 57 | 58 | 59 | AddNewsLSBN = function(data) { 60 | for (const [k, v] of Object.entries(data)) { 61 | if(v.Type == "Text"){ 62 | var AddOption = '
'+v.Text+ 63 | '
'+v.Time+'
' 64 | '
'; 65 | 66 | $('.lsbn-list').prepend(AddOption); 67 | }else if(v.Type == "Image"){ 68 | var AddOption = '
'+ 69 | ''+ 70 | '
'+v.Text+'
'+ 71 | '
'+v.Time+'
'+ 72 | '
'; 73 | 74 | $('.lsbn-list').prepend(AddOption); 75 | } 76 | } 77 | } 78 | 79 | $(document).on('click','.lsbn-chat-to-image-style', function (){ 80 | let source = $(this).attr('src') 81 | QB.Screen.popUp(source); 82 | }); -------------------------------------------------------------------------------- /html/css/employment.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .employment-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .employment-header { 12 | position: absolute; 13 | width: 90%; 14 | height: 10%; 15 | top: 92%; 16 | left: 27%; 17 | right: 0; 18 | color: white; 19 | font-size: 1.8vh; 20 | } 21 | 22 | .employment-header > p { 23 | line-height: 12vh; 24 | text-indent: 2vh; 25 | margin: 0 0 0 9vh; 26 | } 27 | 28 | .employment-header > span { 29 | position: absolute; 30 | top: 8vh; 31 | left: 9vh; 32 | font-size: 1.2vh; 33 | height: 2vh; 34 | color: white; 35 | } 36 | 37 | .employment-list { 38 | position: absolute; 39 | width: 87%; 40 | height: 80%; 41 | margin: 0 auto; 42 | left: -1%; 43 | right: 0; 44 | bottom: 10%; 45 | border-radius: .5vh; 46 | overflow-y: scroll; 47 | } 48 | 49 | .employment-list::-webkit-scrollbar { 50 | display: none; 51 | } 52 | 53 | .empolyment-btn-create-group{ 54 | display: inline; 55 | background: #8ee074; 56 | padding: 2%; 57 | transition: 0.2s; 58 | border-radius: 4px; 59 | color: black; 60 | } 61 | .empolyment-btn-create-group:hover{ 62 | background: #6cac59; 63 | } 64 | 65 | .employment-div-job-group{ 66 | width: 98%; 67 | margin-left: 1%; 68 | margin-bottom: 2%; 69 | padding-left: 5%; 70 | background-color: #2c465f; 71 | transition: 0.2s; 72 | color: whitesmoke; 73 | border-bottom: .1vh solid #f5f5f5ad; 74 | border-radius: 2px; 75 | } 76 | .employment-div-job-group:hover{ 77 | background-color: #0d1218c0; 78 | } 79 | 80 | .employment-div-job-group-image{ 81 | font-size: 250%; 82 | display: inline-block; 83 | } 84 | 85 | .employment-div-job-group-body-main{ 86 | display: inline-block; 87 | position: absolute; 88 | width: 70%; 89 | max-width: 70%; 90 | margin-top: 4%; 91 | margin-left: 4%; 92 | } 93 | 94 | #employment-join-grouped{ 95 | display: block; 96 | position: absolute; 97 | font-size: 110%; 98 | } 99 | #employment-join-grouped:hover{ 100 | color: #8ee074; 101 | } 102 | 103 | #employment-leave-grouped{ 104 | display: block; 105 | position: absolute; 106 | font-size: 110%; 107 | color: #f5a15b; 108 | } 109 | #employment-leave-grouped:hover{ 110 | color: #c27e47; 111 | } 112 | 113 | #employment-block-grouped{ 114 | display: block; 115 | position: absolute; 116 | font-size: 110%; 117 | color: rgb(0, 0, 0); 118 | } 119 | 120 | .employment-option-class-body{ 121 | text-align: right; 122 | } 123 | 124 | #employment-delete-group:hover{ 125 | color: #f5a15b; 126 | } 127 | 128 | #employment-list-group:hover{ 129 | color: #8ee074; 130 | } -------------------------------------------------------------------------------- /html/css/lawyers.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .lawyers-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #202731; 9 | } 10 | 11 | .lawyers-header { 12 | position: absolute; 13 | width: 100%; 14 | height: 12vh; 15 | top: 0; 16 | color: white; 17 | /* font-family: 'Roboto', sans-serif !important; */ 18 | font-size: 1.8vh; 19 | } 20 | 21 | .lawyers-header > p { 22 | line-height: 12vh; 23 | text-indent: 2vh; 24 | margin: 0 0 0 9vh; 25 | } 26 | 27 | .lawyers-header > span { 28 | position: absolute; 29 | top: 8vh; 30 | left: 9vh; 31 | font-size: 1.2vh; 32 | height: 2vh; 33 | color: white; 34 | } 35 | 36 | .lawyers-list { 37 | position: absolute; 38 | width: 90%; 39 | height: 73%; 40 | margin: 0 auto; 41 | left: 0; 42 | right: 0; 43 | bottom: 3%; 44 | border-radius: .5vh; 45 | overflow-y: scroll; 46 | } 47 | 48 | .lawyers-list::-webkit-scrollbar { 49 | display: none; 50 | } 51 | 52 | .lawyer-list { 53 | position: relative; 54 | width: 95%; 55 | height: 6vh; 56 | margin: 2.5%; 57 | background: #2c465f; 58 | border-radius: 0.15rem; 59 | box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; 60 | } 61 | 62 | .lawyer-list-firstletter { 63 | position: absolute; 64 | top: 50%; 65 | transform: translateY(-50%); 66 | width: 3.5vh; 67 | height: 3.5vh; 68 | background-color: rgb(42, 137, 214); 69 | text-align: center; 70 | left: 1vh; 71 | line-height: 3.5vh; 72 | border-radius: 50%; 73 | /* font-family: 'Roboto', sans-serif !important; */ 74 | font-size: 1.8vh; 75 | color: white; 76 | } 77 | 78 | .lawyer-list-fullname { 79 | position: absolute; 80 | top: 50%; 81 | transform: translateY(-50%); 82 | left: 5.5vh; 83 | /* font-family: 'Roboto', sans-serif !important; */ 84 | font-size: 1.5vh; 85 | max-width: 14vh; 86 | white-space: nowrap; 87 | overflow: hidden !important; 88 | text-overflow: ellipsis; 89 | color: white; 90 | } 91 | 92 | .no-lawyers { 93 | position: absolute; 94 | top: 50%; 95 | transform: translateY(-50%); 96 | /* font-family: 'Roboto', sans-serif !important; */ 97 | font-size: 1.3vh; 98 | margin: 0 auto; 99 | left: 0; 100 | right: 0; 101 | text-align: center; 102 | max-width: 14vh; 103 | color: white; 104 | } 105 | 106 | .lawyer-list-call { 107 | color: white; 108 | position: absolute; 109 | top: 25%; 110 | transform: translateY(-50%); 111 | right: 2vh; 112 | font-size: 2vh; 113 | transform: rotate(90deg); 114 | transition: .08s ease-in-out; 115 | } 116 | 117 | .lawyer-list-call:hover { 118 | color: #8ee074; 119 | opacity: .8; 120 | transform: rotate(0deg); 121 | cursor: pointer; 122 | } 123 | -------------------------------------------------------------------------------- /html/css/calculator.css: -------------------------------------------------------------------------------- 1 | .calculator-app { 2 | display: none; 3 | height: 100%; 4 | width: 100%; 5 | background: #202731; 6 | overflow: hidden; 7 | } 8 | 9 | .calculator-header { 10 | position: absolute; 11 | width: 100%; 12 | height: 8vh; 13 | background-color: #202731; 14 | top: 0; 15 | color: white; 16 | font-family: 'Calibri'; 17 | font-size: 1.8vh; 18 | } 19 | 20 | .calculator-header > p { 21 | line-height: 12vh; 22 | text-indent: 2vh; 23 | } 24 | 25 | 26 | .calculator-list { 27 | position: absolute; 28 | background-color: #202731; 29 | width: 100%; 30 | height: 85%; 31 | 32 | margin: 0 auto; 33 | left: 0; 34 | right: 0; 35 | bottom: 0; 36 | 37 | border-radius: .5vh; 38 | 39 | overflow-y: scroll; 40 | } 41 | 42 | .calculator-list::-webkit-scrollbar { 43 | display: none; 44 | } 45 | 46 | 47 | 48 | form{ 49 | width: 92%; 50 | position: relative; 51 | top: 45%; 52 | left: 5%; 53 | transform: translate(-1%, -50%); 54 | } 55 | input[name="display"]{ 56 | background: rgb(39, 39, 39); 57 | color: #fff; 58 | font-size: 4.5vh; 59 | height: 10vh; 60 | text-align: left; 61 | margin: 4vh 0.5vh; 62 | width: calc(100% - 10px); 63 | border: none; 64 | padding: 0 1vh; 65 | } 66 | input[type="button"]{ 67 | font-size: 2vh; 68 | float: left; 69 | width: calc(100% / 4 - 0.6vh); 70 | background: #fff; 71 | background-image: linear-gradient(#fff, rgb(189, 189, 189)); 72 | text-align: center; 73 | padding: 1vh; 74 | margin: 0 0 0.45vh 0.45vh; 75 | border: none; 76 | transition: 0.25s; 77 | border-radius: 5px; 78 | } 79 | input[type="button"]:hover{ 80 | background: rgb(121, 121, 121); 81 | background-image: linear-gradient(rgb(121, 121, 121), rgb(87, 87, 87)); 82 | } 83 | input[type="button"]:nth-last-of-type(1){ 84 | background: yellow; 85 | background-image: linear-gradient(yellow, rgb(163, 163, 2)); 86 | width: calc(50% - 0.7vh); 87 | transition: 0.25s; 88 | } 89 | input[type="button"]:nth-last-of-type(1):hover{ 90 | background: rgb(204, 204, 4); 91 | background-image: linear-gradient(rgb(204, 204, 4), rgb(167, 167, 1)); 92 | } 93 | 94 | #minishalhcalc{ 95 | background: rgb(241, 126, 18); 96 | background-image: linear-gradient(rgb(241, 126, 18), rgb(202, 106, 16)); 97 | color: #fff; 98 | transition: 0.25s; 99 | } 100 | #minishalhcalc:hover{ 101 | background: rgb(204, 102, 6); 102 | background-image: linear-gradient(rgb(204, 102, 6), rgb(174, 86, 4)); 103 | } 104 | #shakhescalc{ 105 | background: rgb(191, 191, 191); 106 | background-image: linear-gradient(rgb(191, 191, 191), rgb(153, 153, 153)); 107 | transition: 0.25s; 108 | } 109 | #shakhescalc:hover{ 110 | background: rgb(121, 121, 121); 111 | background-image: linear-gradient(rgb(121, 121, 121), rgb(90, 90, 90)); 112 | } 113 | 114 | .calc-icon{ 115 | margin-left: -0.1vh; 116 | width: 4.8vh; 117 | } -------------------------------------------------------------------------------- /html/css/publicphone.css: -------------------------------------------------------------------------------- 1 | .publicphonebase{ 2 | display: none; 3 | width: 100%; 4 | height: 100%; 5 | overflow: hidden; 6 | position: absolute; 7 | transform: translate(-50%, -50%); 8 | top: 50%; 9 | left: 50%; 10 | } 11 | 12 | .publicphonebody{ 13 | width: 60vh; 14 | height: 10vh; 15 | border-radius: 0.4vh; 16 | background-color: #202731; 17 | position: absolute; 18 | transform: translate(-50%, -50%); 19 | top: 50%; 20 | left: 50%; 21 | box-shadow: 1px 1px 6px rgba(5, 5, 5, 0.306); 22 | } 23 | 24 | .publicphonechannelnumpad { 25 | position: absolute; 26 | transform: translate(0, -50%); 27 | top: 50%; 28 | font-size: 2vh; 29 | left: 6%; 30 | background: none; 31 | -moz-user-select: -moz-none; 32 | -khtml-user-select: none; 33 | -webkit-user-select: none; 34 | -o-user-select: none; 35 | user-select: none; 36 | } 37 | 38 | input[name="publicphonechannelnumpad"]::-webkit-input-placeholder { 39 | color: rgb(174, 174, 174); 40 | } 41 | .publicphonechannelnumpad span { 42 | text-align: center; 43 | color: rgba(0, 0, 0, 0.75); 44 | } 45 | 46 | .publicphonechannelnumpad input { 47 | text-align: center; 48 | border: none; 49 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 50 | background: none; 51 | outline: none; 52 | font-family: 'Fira Code', monospace; 53 | width: 100%; 54 | /* border-radius: 0.5vh; */ 55 | padding: 0.6vh 0.3vh; 56 | color: rgb(255, 255, 255); 57 | } 58 | 59 | .publicphonechannelnumpad input::-webkit-inner-spin-button, 60 | .publicphonechannelnumpad input::-webkit-outer-spin-button { 61 | -webkit-appearance: none; 62 | } 63 | 64 | 65 | .publicphonebasebtn{ 66 | width: 20%; 67 | height: 11vh; 68 | position: absolute; 69 | transform: translate(-50%, -50%); 70 | top: 50%; 71 | left: 65%; 72 | text-align: center; 73 | font-weight: bold; 74 | font-family: 'Fira Code', monospace; 75 | padding: 0.8vh; 76 | color: black; 77 | } 78 | 79 | .publicphonecallbtn{ 80 | position: absolute; 81 | padding: 0.8vh; 82 | transform: translate(-50%, -50%); 83 | top: 50%; 84 | left: 50%; 85 | background-color: #8ee074; 86 | width: 10vh; 87 | border-radius: 4px; 88 | box-shadow: 1px 1px 6px rgba(5, 5, 5, 0.306); 89 | transition: all 0.15s linear; 90 | } 91 | .publicphonecallbtn:hover{ 92 | background-color: #6cac59; 93 | } 94 | 95 | .publicphoneclosebtn{ 96 | margin-left: 100%; 97 | padding: 0.8vh; 98 | transform: translate(-50%, -50%); 99 | top: 50%; 100 | left: 50%; 101 | position: absolute; 102 | background-color: #f5a15b; 103 | width: 10vh; 104 | border-radius: 4px; 105 | box-shadow: 1px 1px 6px rgba(5, 5, 5, 0.306); 106 | transition: all 0.15s linear; 107 | } 108 | 109 | .publicphoneclosebtn:hover{ 110 | background-color: #c27e47; 111 | } -------------------------------------------------------------------------------- /html/css/casino.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .casino-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .casino-header { 12 | position: absolute; 13 | width: 90%; 14 | height: 10%; 15 | top: 8%; 16 | left: 0; 17 | right: 0; 18 | color: white; 19 | font-size: 1.8vh; 20 | margin: 0 auto; 21 | } 22 | 23 | .casino-header > p { 24 | line-height: 12vh; 25 | text-indent: 2vh; 26 | margin: 0 0 0 9vh; 27 | } 28 | 29 | .casino-header > span { 30 | position: absolute; 31 | top: 8vh; 32 | left: 9vh; 33 | font-size: 1.2vh; 34 | height: 2vh; 35 | color: white; 36 | } 37 | 38 | .casino-list { 39 | position: absolute; 40 | width: 90%; 41 | height: 80%; 42 | margin: 0 auto; 43 | left: 0; 44 | right: 0; 45 | bottom: 3%; 46 | border-radius: .5vh; 47 | overflow-y: scroll; 48 | } 49 | 50 | .casino-list::-webkit-scrollbar { 51 | display: none; 52 | } 53 | 54 | .casino-dashboard-boss{ 55 | display: none; 56 | position: relative; 57 | left: 80%; 58 | width: 15%; 59 | background: #2c465f; 60 | color: whitesmoke; 61 | text-align: center; 62 | border-radius: 4px; 63 | box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; 64 | transition: 0.2s; 65 | } 66 | .casino-dashboard-boss:hover{ 67 | background: #0d1218c0; 68 | } 69 | 70 | .casino-dashboard-btn{ 71 | width: 86%; 72 | margin-left: 6.5%; 73 | margin-bottom: 3%; 74 | color: whitesmoke; 75 | background: #0d1218c0; 76 | text-align: center; 77 | border-radius: 4px; 78 | transition: 0.2s; 79 | } 80 | .casino-dashboard-btn:hover{ 81 | background: #0d1218; 82 | } 83 | 84 | 85 | 86 | .casino-license-body-main{ 87 | display: block; 88 | width: 95%; 89 | margin-left: 1.8%; 90 | padding-left: 2%; 91 | margin-bottom: 2%; 92 | color: whitesmoke; 93 | border-radius: 4px; 94 | background: #2c465f; 95 | transition: 0.2s; 96 | font-size: 130%; 97 | } 98 | .casino-license-body-main:hover{ 99 | background: #0d1218c0; 100 | } 101 | 102 | .casino-license-icon-class{ 103 | display: inline; 104 | text-align: right; 105 | width: 10%; 106 | } 107 | .casino-license-text-class{ 108 | display: inline-block; 109 | width: 85%; 110 | } 111 | 112 | #casino-click-beting{ 113 | color: #8ee074; 114 | transition: 0.2s; 115 | } 116 | #casino-click-beting:hover{ 117 | color: #6cac59; 118 | } 119 | 120 | .casino-info-player{ 121 | width: 86%; 122 | color: whitesmoke; 123 | margin-left: 10%; 124 | margin-bottom: 2%; 125 | } 126 | 127 | #casino-Winer-this{ 128 | background: #8ee074; 129 | transition: 0.2s; 130 | width: 72%; 131 | border-radius: 4px; 132 | color: black; 133 | text-align: center; 134 | } 135 | #casino-Winer-this:hover{ 136 | background: #6cac59; 137 | } 138 | 139 | .casino-text-clear{ 140 | text-align: center; 141 | color: whitesmoke; 142 | } -------------------------------------------------------------------------------- /html/css/trucker.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .trucker-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #2f3640; 8 | overflow: hidden; 9 | } 10 | 11 | .trucker-header { 12 | position: absolute; 13 | width: 84%; 14 | height: 12vh; 15 | background-color: #4b5868; 16 | margin: 0 auto; 17 | left: 0; 18 | right: 0; 19 | top: 5vh; 20 | border-radius: 1vh; 21 | box-shadow: 0 0 1vh .15vh rgba(0, 0, 0, 0.2); 22 | overflow: hidden; 23 | } 24 | 25 | .trucker-header-name { 26 | position: absolute; 27 | margin: 1.5vh; 28 | font-family: 'Roboto', sans-serif !important; 29 | color: white; 30 | font-size: 1.4vh; 31 | } 32 | 33 | .trucker-header-progress { 34 | position: absolute; 35 | width: 90%; 36 | height: 1.2vh; 37 | background-color: #181c20; 38 | bottom: 0; 39 | margin: 0 auto; 40 | left: 0; 41 | right: 0; 42 | bottom: 2.5vh; 43 | border-radius: 1vh; 44 | } 45 | 46 | .trucker-header-progress-text { 47 | font-size: .8vh; 48 | font-family: 'Roboto', sans-serif !important; 49 | color: rgba(255, 255, 255, 0.6); 50 | margin: 1.8vh .75vh 0 .6vh; 51 | } 52 | 53 | .trucker-header-progress-fill { 54 | position: absolute; 55 | width: 20%; 56 | height: 100%; 57 | background-color: rgb(156, 230, 20); 58 | border-radius: 1vh; 59 | } 60 | 61 | .trucker-header-currentlevel { 62 | position: absolute; 63 | top: 0; 64 | right: 0; 65 | width: 5vh; 66 | height: 5vh; 67 | background-color: #536070; 68 | border-radius: 50%; 69 | margin: 1.5vh; 70 | box-shadow: 0 0 .5vh .1vh rgba(0, 0, 0, 0.2); 71 | text-align: center; 72 | line-height: 5vh; 73 | font-family: 'Roboto', sans-serif !important; 74 | color: rgb(236, 236, 236); 75 | font-size: 1.5vh; 76 | } 77 | 78 | .trucker-header-description { 79 | position: absolute; 80 | top: 0; 81 | right: 0; 82 | font-family: 'Roboto', sans-serif !important; 83 | color: rgba(255, 255, 255, 0.5); 84 | 85 | margin: 1vh; 86 | } 87 | 88 | #trucker-header-tier { 89 | float: right; 90 | color: rgba(255, 255, 255, 0.9); 91 | } 92 | 93 | .trucker-jobinfo { 94 | position: absolute; 95 | width: 84%; 96 | height: 37vh; 97 | background-color: #4b5868; 98 | margin: 0 auto; 99 | left: 0; 100 | right: 0; 101 | top: 18vh; 102 | border-radius: 1vh; 103 | box-shadow: 0 0 1vh .15vh rgba(0, 0, 0, 0.2); 104 | overflow: hidden; 105 | } 106 | 107 | .trucker-jobinfo-nojob { 108 | display: block; 109 | width: 100%; 110 | height: 100%; 111 | background-color: #3a3c3f; 112 | } 113 | 114 | .trucker-jobinfo-nojob > i { 115 | position: absolute; 116 | margin: 0 auto; 117 | left: 0; 118 | right: 0; 119 | text-align: center; 120 | line-height: 15vh; 121 | color: rgb(241, 63, 63); 122 | font-size: 4vh; 123 | } 124 | 125 | #trucker-jobinfo-nojob-text { 126 | position: absolute; 127 | margin: 0 auto; 128 | left: 0; 129 | right: 0; 130 | width: 20vh; 131 | text-align: center; 132 | font-family: 'Roboto', sans-serif !important; 133 | color: rgba(255, 255, 255, 0.8); 134 | top: 11vh; 135 | font-size: 1.7vh; 136 | } 137 | -------------------------------------------------------------------------------- /html/js/publicphone.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | window.addEventListener('message', function(event) { 3 | if(event.data.type == "publicphoneopen"){ 4 | $('.publicphonebase').css('display', 'block'); 5 | } else if (event.data.type == "publicphoneclose"){ 6 | $('.publicphonebase').css('display', 'none'); 7 | $.post('https://qb-phone/publicphoneclose', JSON.stringify({})); 8 | } 9 | }); 10 | }); 11 | 12 | $(".publicphoneclosebtn").click(function(){ 13 | $.post('https://qb-phone/publicphoneclose', JSON.stringify({})); 14 | $('.publicphonebase').css('display', 'none'); 15 | $("#publicphonechannelnumpad").val(""); 16 | }); 17 | $(".publicphonecallbtn").click(function(){ 18 | $.post('https://qb-phone/publicphoneclose', JSON.stringify({})); 19 | $('.publicphonebase').css('display', 'none'); 20 | setTimeout(function(){ 21 | $("#publicphonechannelnumpad").val(""); 22 | }, 100); 23 | 24 | }); 25 | 26 | 27 | 28 | $(document).on('click', ".publicphonecallbtn", function(e){ 29 | e.preventDefault(); 30 | 31 | var publicphoneInputNum = $("#publicphonechannelnumpad").val(); 32 | 33 | cData = { 34 | number: publicphoneInputNum, 35 | name: publicphoneInputNum, 36 | } 37 | 38 | $.post('https://qb-phone/CallContact', JSON.stringify({ 39 | ContactData: cData, 40 | Anonymous: true, 41 | }), function(status){ 42 | if (cData.number !== QB.Phone.Data.PlayerData.charinfo.phone) { 43 | if (status.IsOnline) { 44 | if (status.CanCall) { 45 | if (!status.InCall) { 46 | $(".phone-call-outgoing").css({"display":"none"}); 47 | $(".phone-call-incoming").css({"display":"none"}); 48 | $(".phone-call-ongoing").css({"display":"none"}); 49 | $(".phone-call-outgoing-caller").html(cData.name); 50 | QB.Phone.Functions.HeaderTextColor("white", 400); 51 | QB.Phone.Animations.TopSlideUp('.phone-application-container', 400, -160); 52 | 53 | setTimeout(function(){ 54 | $(".phone-app").css({"display":"none"}); 55 | QB.Phone.Animations.TopSlideDown('.phone-application-container', 400, -160); 56 | QB.Phone.Functions.ToggleApp("phone-call", "block"); 57 | $(".phone-currentcall-container").css({"display":"block"}); 58 | $("#incoming-answer").css({"display":"none"}); 59 | }, 450); 60 | 61 | CallData.name = cData.name; 62 | CallData.number = cData.number; 63 | 64 | QB.Phone.Data.currentApplication = "phone-call"; 65 | } else { 66 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "You're already in a call!"); 67 | } 68 | } else { 69 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "This person is busy!"); 70 | } 71 | } else { 72 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "This person is not available!"); 73 | } 74 | } else { 75 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "You can't call yourself!"); 76 | } 77 | }); 78 | 79 | }); -------------------------------------------------------------------------------- /html/js/debt.js: -------------------------------------------------------------------------------- 1 | var ENDreason = null 2 | var ENDamount = null 3 | var ENDsenderCSN = null 4 | var ENDsenderName = null 5 | var ENDKey = null 6 | 7 | $(document).ready(function(){ 8 | window.addEventListener('message', function(event) { 9 | switch(event.data.action) { 10 | case "DebtRefresh": 11 | LoadDebtJob(); 12 | break; 13 | } 14 | }) 15 | }); 16 | 17 | 18 | function LoadDebtJob(){ 19 | $(".debt-list").html(""); 20 | var AddOption = '
Nothing Here!
'+ 21 | '
' 22 | $('.debt-list').append(AddOption); 23 | $.post('https://qb-phone/GetHasBills_debt', JSON.stringify({}), function(HasTable){ 24 | 25 | if(HasTable){ 26 | AddToDebitList(HasTable) 27 | } 28 | }); 29 | } 30 | 31 | function AddToDebitList(data){ 32 | $(".debt-list").html(""); 33 | if(data){ 34 | for (const [k, v] of Object.entries(data)) { 35 | var AddOption = '
'+v.sender+' | '+ 36 | '
'+v.amount+'
'+ 37 | '
'+ 38 | '
' 39 | $('.debt-list').append(AddOption); 40 | } 41 | } 42 | } 43 | 44 | $(document).on('click', '.debt-create-bill-btn', function(e){ 45 | e.preventDefault(); 46 | ClearInputNew() 47 | $('#debt-box-new-for-add').fadeIn(350); 48 | }); 49 | 50 | $(document).on('click', '#debt-create-bill-ended', function(e){ 51 | e.preventDefault(); 52 | var ID = $(".debt-input-one").val(); 53 | var Amount = $(".debt-input-two").val(); 54 | var Reason = $(".debt-input-three").val(); 55 | if ((ID && Amount && Reason) != "" && (ID && Amount) >= 1){ 56 | $.post('https://qb-phone/SendBillForPlayer_debt', JSON.stringify({ 57 | ID: ID, 58 | Amount: Amount, 59 | Reason: Reason, 60 | })); 61 | ClearInputNew() 62 | $('#debt-box-new-for-add').fadeOut(350); 63 | }else{ 64 | QB.Phone.Notifications.Add("fas fa-exclamation-circle", "System", "Fields are incorrect") 65 | } 66 | 67 | }); 68 | 69 | 70 | 71 | $(document).on('click', '.debt-btn-for-check-data', function(e){ 72 | e.preventDefault(); 73 | ENDreason = $(this).data('reason'); 74 | ENDamount = $(this).data('amount'); 75 | ENDsenderCSN = $(this).data('sendercsn'); 76 | ENDsenderName = $(this).data('sendern'); 77 | ENDKey = $(this).data('key'); 78 | 79 | $(".debt-show-one").html(' '+ENDreason); 80 | $(".debt-show-two").html(''+ENDamount); 81 | $(".debt-show-three").html(' '+ENDsenderName); 82 | 83 | ClearInputNew() 84 | $('#debt-box-new-for-accept').fadeIn(350); 85 | }); 86 | 87 | $(document).on('click', '#debt-create-bill-accept', function(e){ 88 | e.preventDefault(); 89 | var PlyMoney = QB.Phone.Data.PlayerData.money.bank; 90 | 91 | if(PlyMoney >= ENDamount){ 92 | $.post('https://qb-phone/debit_AcceptBillForPay', JSON.stringify({ 93 | id: ENDKey, 94 | Amount: ENDamount, 95 | CSN: ENDsenderCSN, 96 | })); 97 | ClearInputNew() 98 | $('#debt-box-new-for-accept').fadeOut(350); 99 | } 100 | }); -------------------------------------------------------------------------------- /html/css/gallery.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Lato&display=swap'); 2 | 3 | .gallery-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #202731; 8 | overflow: hidden; 9 | } 10 | 11 | .gallery-app-header { 12 | position: absolute; 13 | height: 9vh; 14 | width: 100%; 15 | text-align: center; 16 | line-height: 12.5vh; 17 | color: white; 18 | font-size: 1.5vh; 19 | } 20 | 21 | .gallery-homescreen { 22 | position: absolute; 23 | height: 100%; 24 | width: 100%; 25 | left: 0vh; 26 | } 27 | 28 | .gallery-detailscreen { 29 | position: absolute; 30 | height: 100%; 31 | width: 100%; 32 | left: -30vh; 33 | } 34 | .gallery-postscreen { 35 | position: absolute; 36 | height: 100%; 37 | width: 100%; 38 | left: -30vh; 39 | } 40 | 41 | .gallery-images { 42 | position: absolute; 43 | width: 85%; 44 | height: 44.5vh; 45 | top: 10.5vh; 46 | margin: 0 auto; 47 | left: 0; 48 | right: 0; 49 | overflow-y: scroll; 50 | } 51 | 52 | .gallery-images::-webkit-scrollbar { 53 | display: none; 54 | } 55 | 56 | .tumbnail{ 57 | width: 100%; 58 | border-radius: 0.3vh; 59 | } 60 | 61 | .gallery-image { 62 | display: inline-block; 63 | width: 50%; 64 | padding: 0.2vh; 65 | height: 7.1vh; 66 | 67 | } 68 | .gallery-details { 69 | position: absolute; 70 | height: 76%; 71 | width: 84%; 72 | margin: 0 auto; 73 | left: 0vh; 74 | right: 0; 75 | top: 11vh; 76 | } 77 | 78 | 79 | 80 | .return-button { 81 | display: flex; 82 | flex-direction: row; 83 | justify-content: space-between; 84 | } 85 | 86 | .return-button > div { 87 | margin: 2px; 88 | width: 100%; 89 | height: 5vh; 90 | background-color: rgb(233, 233, 233); 91 | border-radius: .3vh; 92 | transition: .05s linear; 93 | text-align: center; 94 | line-height: 5vh; 95 | font-size: 1.4vh; 96 | } 97 | 98 | .return-button > div:hover { 99 | background-color: rgb(212, 212, 212); 100 | } 101 | 102 | .make-post-button { 103 | display: flex; 104 | flex-direction: row; 105 | } 106 | 107 | .make-post-button > div { 108 | margin: 2px; 109 | width: 20%; 110 | height: 5vh; 111 | background-color: #8ee074; 112 | border-radius: .3vh; 113 | transition: .05s linear; 114 | text-align: center; 115 | line-height: 5vh; 116 | font-size: 1.4vh; 117 | } 118 | 119 | .make-post-button > div:hover { 120 | background-color: #6cac59; 121 | } 122 | 123 | #delete-button { 124 | margin: 2px; 125 | width: 20%; 126 | height: 5vh; 127 | background-color: #f5a15b; 128 | border-radius: .3vh; 129 | transition: .05s linear; 130 | text-align: center; 131 | line-height: 5vh; 132 | font-size: 1.4vh; 133 | } 134 | #delete-button:hover { 135 | background-color: #c27e47; 136 | } 137 | 138 | #gallery-coppy-button{ 139 | background: rgb(187, 187, 81); 140 | } 141 | #gallery-coppy-button:hover{ 142 | background: rgb(145, 145, 63); 143 | } 144 | 145 | .posts-button { 146 | display: flex; 147 | flex-direction: row; 148 | justify-content: space-between; 149 | } 150 | 151 | #tweet-button { 152 | margin: 2px; 153 | width: 50%; 154 | height: 5vh; 155 | 156 | color: #151515; 157 | border-radius: .3vh; 158 | transition: .2s linear; 159 | text-align: center; 160 | line-height: 5vh; 161 | font-size: 1.4vh; 162 | background-color: #08a0e9; 163 | 164 | } 165 | #tweet-button:hover { 166 | background-color: #0078a3; 167 | } 168 | 169 | #advert-button { 170 | margin: 2px; 171 | width: 50%; 172 | height: 5vh; 173 | color: #fff; 174 | border-radius: .3vh; 175 | transition: .2s linear; 176 | text-align: center; 177 | line-height: 5vh; 178 | font-size: 1.4vh; 179 | background-color: #ff8f1a; 180 | } 181 | #advert-button:hover { 182 | background-color: #bd7528; 183 | } 184 | 185 | 186 | 187 | #new-textarea { 188 | border: none; 189 | height: 15vh; 190 | margin: 0 auto; 191 | left: 0; 192 | right: 0; 193 | background: none; 194 | outline: none; 195 | border: .1vh solid #f5f5f5ad; 196 | color: whitesmoke; 197 | resize: none; 198 | transition: border-bottom 0.1s ease-in-out; 199 | padding: 0.87vh; 200 | font-size: 1.4vh; 201 | top: 12vh; 202 | width: 100%; 203 | border-radius: 4px; 204 | } -------------------------------------------------------------------------------- /qb-phone.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `player_contacts` ( 2 | `id` int(11) NOT NULL AUTO_INCREMENT, 3 | `citizenid` varchar(50) DEFAULT NULL, 4 | `name` varchar(50) DEFAULT NULL, 5 | `number` varchar(50) DEFAULT NULL, 6 | `iban` varchar(50) NOT NULL DEFAULT '0', 7 | PRIMARY KEY (`id`), 8 | KEY `citizenid` (`citizenid`) 9 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 10 | 11 | CREATE TABLE IF NOT EXISTS `phone_invoices` ( 12 | `id` int(10) NOT NULL AUTO_INCREMENT, 13 | `citizenid` varchar(50) DEFAULT NULL, 14 | `amount` int(11) NOT NULL DEFAULT 0, 15 | `society` tinytext DEFAULT NULL, 16 | `sender` varchar(50) DEFAULT NULL, 17 | `sendercitizenid` varchar(50) DEFAULT NULL, 18 | PRIMARY KEY (`id`), 19 | KEY `citizenid` (`citizenid`) 20 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 21 | 22 | CREATE TABLE IF NOT EXISTS `phone_messages` ( 23 | `id` int(11) NOT NULL AUTO_INCREMENT, 24 | `citizenid` varchar(50) DEFAULT NULL, 25 | `number` varchar(50) DEFAULT NULL, 26 | `messages` text DEFAULT NULL, 27 | PRIMARY KEY (`id`), 28 | KEY `citizenid` (`citizenid`), 29 | KEY `number` (`number`) 30 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 31 | 32 | CREATE TABLE IF NOT EXISTS `player_mails` ( 33 | `id` int(11) NOT NULL AUTO_INCREMENT, 34 | `citizenid` varchar(50) DEFAULT NULL, 35 | `sender` varchar(50) DEFAULT NULL, 36 | `subject` varchar(50) DEFAULT NULL, 37 | `message` text DEFAULT NULL, 38 | `read` tinyint(4) DEFAULT 0, 39 | `mailid` int(11) DEFAULT NULL, 40 | `date` timestamp NULL DEFAULT current_timestamp(), 41 | `button` text DEFAULT NULL, 42 | PRIMARY KEY (`id`), 43 | KEY `citizenid` (`citizenid`) 44 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 45 | 46 | CREATE TABLE IF NOT EXISTS `crypto_transactions` ( 47 | `id` int(11) NOT NULL AUTO_INCREMENT, 48 | `citizenid` varchar(50) DEFAULT NULL, 49 | `title` varchar(50) DEFAULT NULL, 50 | `message` varchar(50) DEFAULT NULL, 51 | `date` timestamp NULL DEFAULT current_timestamp(), 52 | PRIMARY KEY (`id`), 53 | KEY `citizenid` (`citizenid`) 54 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 55 | 56 | CREATE TABLE IF NOT EXISTS `player_vehicles` ( 57 | `id` int(11) NOT NULL AUTO_INCREMENT, 58 | `license` varchar(50) DEFAULT NULL, 59 | `citizenid` varchar(50) DEFAULT NULL, 60 | `vehicle` varchar(50) DEFAULT NULL, 61 | `hash` varchar(50) DEFAULT NULL, 62 | `mods` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, 63 | `plate` varchar(50) NOT NULL, 64 | `fakeplate` varchar(50) DEFAULT NULL, 65 | `garage` varchar(50) DEFAULT NULL, 66 | `fuel` int(11) DEFAULT 100, 67 | `engine` float DEFAULT 1000, 68 | `body` float DEFAULT 1000, 69 | `state` int(11) DEFAULT 1, 70 | `depotprice` int(11) NOT NULL DEFAULT 0, 71 | `drivingdistance` int(50) DEFAULT NULL, 72 | `status` text DEFAULT NULL, 73 | `balance` int(11) NOT NULL DEFAULT 0, 74 | `paymentamount` int(11) NOT NULL DEFAULT 0, 75 | `paymentsleft` int(11) NOT NULL DEFAULT 0, 76 | `financetime` int(11) NOT NULL DEFAULT 0, 77 | PRIMARY KEY (`id`), 78 | KEY `plate` (`plate`), 79 | KEY `citizenid` (`citizenid`), 80 | KEY `license` (`license`) 81 | ) ENGINE=InnoDB AUTO_INCREMENT=1; 82 | 83 | CREATE TABLE `phone_gallery` ( 84 | `citizenid` VARCHAR(255) NOT NULL , 85 | `image` VARCHAR(255) NOT NULL , 86 | `date` timestamp NULL DEFAULT current_timestamp() 87 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; 88 | 89 | CREATE TABLE IF NOT EXISTS `phone_debt` ( 90 | `id` int(10) NOT NULL AUTO_INCREMENT, 91 | `citizenid` varchar(50) DEFAULT NULL, 92 | `amount` int(11) NOT NULL DEFAULT 0, 93 | `sender` varchar(50) DEFAULT NULL, 94 | `sendercitizenid` varchar(50) DEFAULT NULL, 95 | `reason` varchar(50) DEFAULT NULL, 96 | PRIMARY KEY (`id`), 97 | KEY `citizenid` (`citizenid`) 98 | ) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb3; 99 | 100 | CREATE TABLE IF NOT EXISTS `phone_note` ( 101 | `id` int(10) NOT NULL AUTO_INCREMENT, 102 | `citizenid` varchar(50) DEFAULT NULL, 103 | `title` text DEFAULT NULL, 104 | `text` text DEFAULT NULL, 105 | `lastupdate` varchar(50) DEFAULT NULL, 106 | PRIMARY KEY (`id`), 107 | KEY `citizenid` (`citizenid`) 108 | ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb3; 109 | 110 | CREATE TABLE IF NOT EXISTS `phone_tweets` ( 111 | `id` int(11) NOT NULL AUTO_INCREMENT, 112 | `citizenid` varchar(50) DEFAULT NULL, 113 | `firstName` varchar(25) DEFAULT NULL, 114 | `lastName` varchar(25) DEFAULT NULL, 115 | `message` text DEFAULT NULL, 116 | `date` datetime DEFAULT current_timestamp(), 117 | `url` text DEFAULT NULL, 118 | `picture` text DEFAULT './img/default.png', 119 | `tweetId` varchar(25) NOT NULL, 120 | PRIMARY KEY (`id`), 121 | KEY `citizenid` (`citizenid`) 122 | ) ENGINE=InnoDB AUTO_INCREMENT=1; 123 | -------------------------------------------------------------------------------- /html/css/garage.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Lato&display=swap'); 2 | 3 | .garage-icon { 4 | margin-top: .5vh; 5 | width: 3.4vh; 6 | } 7 | 8 | .garage-app { 9 | display: none; 10 | height: 100%; 11 | width: 100%; 12 | background: #202731; 13 | overflow: hidden; 14 | } 15 | 16 | .garage-app-header { 17 | position: absolute; 18 | height: 9vh; 19 | width: 100%; 20 | text-align: center; 21 | line-height: 13.5vh; 22 | color: white; 23 | font-size: 1.5vh; 24 | } 25 | 26 | .garage-homescreen { 27 | position: absolute; 28 | height: 100%; 29 | width: 100%; 30 | left: 0vh; 31 | } 32 | 33 | .garage-detailscreen { 34 | position: absolute; 35 | height: 100%; 36 | width: 100%; 37 | left: -30vh; 38 | } 39 | 40 | .garage-vehicles { 41 | position: absolute; 42 | width: 85%; 43 | height: 44.5vh; 44 | top: 10.5vh; 45 | margin: 0 auto; 46 | left: 0; 47 | right: 0; 48 | overflow-y: scroll; 49 | } 50 | 51 | .garage-vehicles::-webkit-scrollbar { 52 | display: none; 53 | } 54 | 55 | .garage-vehicle { 56 | position: relative; 57 | height: 7vh; 58 | width: 100%; 59 | background-color: #2c465f; 60 | border-radius: 4px; 61 | transition: .08s linear; 62 | margin-bottom: 1.5%; 63 | } 64 | 65 | .garage-vehicle-firstletter { 66 | position: relative; 67 | line-height: 7vh; 68 | left: 1.2vh; 69 | background-color: #2c465f; 70 | padding-top: 1.1vh; 71 | padding-bottom: 1.1vh; 72 | padding-left: 1.6vh; 73 | padding-right: 1.6vh; 74 | border-radius: 50%; 75 | color: white; 76 | font-size: 1.8vh; 77 | transition: .05s linear; 78 | } 79 | 80 | .garage-vehicle:hover { 81 | background-color: #0d1218c0; 82 | } 83 | 84 | .garage-vehicle-name { 85 | position: absolute; 86 | left: 7vh; 87 | color: white; 88 | line-height: 7vh; 89 | font-size: 1.2vh; 90 | } 91 | 92 | .garage-cardetails { 93 | position: absolute; 94 | height: 76%; 95 | width: 84%; 96 | margin: 0 auto; 97 | left: 0vh; 98 | right: 0; 99 | top: 11vh; 100 | } 101 | 102 | .vehicle-brand { 103 | position: relative; 104 | width: 100%; 105 | background-color: #2c465f; 106 | padding: .8vh; 107 | color: white; 108 | border-bottom: .1vh solid #fff; 109 | margin-bottom: 1.5%; 110 | font-size: 1.2vh; 111 | } 112 | 113 | .vehicle-model { 114 | position: relative; 115 | width: 100%; 116 | background-color: #2c465f; 117 | padding: .8vh; 118 | color: white; 119 | border-bottom: .1vh solid #fff; 120 | margin-bottom: 1.5%; 121 | font-size: 1.2vh; 122 | } 123 | 124 | .vehicle-plate { 125 | position: relative; 126 | width: 100%; 127 | background-color: #2c465f; 128 | padding: .8vh; 129 | color: white; 130 | border-bottom: .1vh solid #fff; 131 | margin-bottom: 1.5%; 132 | font-size: 1.2vh; 133 | } 134 | 135 | .vehicle-garage { 136 | position: relative; 137 | width: 100%; 138 | background-color: #2c465f; 139 | padding: .8vh; 140 | color: white; 141 | border-bottom: .1vh solid #fff; 142 | margin-bottom: 1.5%; 143 | font-size: 1.2vh; 144 | } 145 | 146 | .vehicle-status { 147 | position: relative; 148 | width: 100%; 149 | background-color: #2c465f; 150 | padding: .8vh; 151 | color: white; 152 | border-bottom: .1vh solid #fff; 153 | margin-bottom: 1.5%; 154 | font-size: 1.2vh; 155 | } 156 | 157 | .vehicle-fuel { 158 | position: relative; 159 | width: 100%; 160 | background-color: #2c465f; 161 | padding: .8vh; 162 | color: white; 163 | border-bottom: .1vh solid #fff; 164 | margin-bottom: 1.5%; 165 | font-size: 1.2vh; 166 | } 167 | 168 | .vehicle-engine { 169 | position: relative; 170 | width: 100%; 171 | background-color: #2c465f; 172 | padding: .8vh; 173 | color: white; 174 | border-bottom: .1vh solid #fff; 175 | margin-bottom: 1.5%; 176 | font-size: 1.2vh; 177 | } 178 | 179 | .vehicle-body { 180 | position: relative; 181 | width: 100%; 182 | background-color: #2c465f; 183 | padding: .8vh; 184 | color: white; 185 | border-bottom: .1vh solid #fff; 186 | margin-bottom: 1.5%; 187 | font-size: 1.2vh; 188 | } 189 | 190 | 191 | .vehicle-answer { 192 | float: right; 193 | font-size: 1.1vh; 194 | } 195 | 196 | 197 | .return-track { 198 | display: flex; 199 | flex-direction: row; 200 | justify-content: space-between; 201 | } 202 | 203 | .return-track > div { 204 | margin: 2px; 205 | width: 50%; 206 | height: 5vh; 207 | background-color: rgb(233, 233, 233); 208 | border-radius: .3vh; 209 | transition: .2s linear; 210 | text-align: center; 211 | line-height: 5vh; 212 | font-size: 1.4vh; 213 | } 214 | 215 | #return-button{ 216 | background: #f5a15b; 217 | } 218 | #return-button:hover{ 219 | background: #c27e47; 220 | } 221 | 222 | #track-vehicle{ 223 | background: #8ee074 224 | } 225 | #track-vehicle:hover{ 226 | background: #6cac59 227 | } -------------------------------------------------------------------------------- /html/js/gallery.js: -------------------------------------------------------------------------------- 1 | function setUpGalleryData(Images){ 2 | $(".gallery-images").html(""); 3 | if (Images != null) { 4 | $.each(Images, function(i, image){ 5 | var Element = ''; 6 | 7 | $(".gallery-images").append(Element); 8 | $("#image-"+i).data('ImageData', image); 9 | }); 10 | } 11 | } 12 | 13 | $(document).on('click', '.tumbnail', function(e){ 14 | e.preventDefault(); 15 | let source = $(this).attr('src') 16 | $(".gallery-homescreen").animate({ 17 | left: 30+"vh" 18 | }, 200); 19 | $(".gallery-detailscreen").animate({ 20 | left: 0+"vh" 21 | }, 200); 22 | SetupImageDetails(source); 23 | }); 24 | 25 | $(document).on('click', '.image', function(e){ 26 | e.preventDefault(); 27 | let source = $(this).attr('src') 28 | QB.Screen.popUp(source) 29 | }); 30 | 31 | 32 | $(document).on('click', '#delete-button', function(e){ 33 | e.preventDefault(); 34 | let source = $('.image').attr('src') 35 | 36 | setTimeout(() => { 37 | $.post('https://qb-phone/DeleteImage', JSON.stringify({image:source}), function(Hashtags){ 38 | setTimeout(()=>{ 39 | $('#return-button').click() 40 | $.post('https://qb-phone/GetGalleryData', JSON.stringify({}), function(data){ 41 | setTimeout(()=>{ 42 | setUpGalleryData(data); 43 | 44 | },200) 45 | }); 46 | },200) 47 | }) 48 | 49 | }, 200); 50 | }); 51 | 52 | 53 | function SetupImageDetails(Image){ 54 | $('#imagedata').attr("src", Image); 55 | } 56 | let postImageUrl=""; 57 | function SetupPostDetails(){ 58 | } 59 | 60 | 61 | $(document).on('click', '#make-post-button', function(e){ 62 | e.preventDefault(); 63 | let source = $('#imagedata').attr('src') 64 | postImageUrl=source 65 | 66 | $(".gallery-detailscreen").animate({ 67 | left: 30+"vh" 68 | }, 200); 69 | $(".gallery-postscreen").animate({ 70 | left: 0+"vh" 71 | }, 200); 72 | SetupPostDetails(); 73 | }); 74 | 75 | $(document).on('click', '#gallery-coppy-button', function(e){ 76 | e.preventDefault(); 77 | let source = $('#imagedata').attr('src') 78 | copyToClipboard(source) 79 | }); 80 | 81 | const copyToClipboard = str => { 82 | const el = document.createElement('textarea'); 83 | el.value = str; 84 | document.body.appendChild(el); 85 | el.select(); 86 | document.execCommand('copy'); 87 | document.body.removeChild(el); 88 | }; 89 | 90 | $(document).on('click', '#return-button', function(e){ 91 | e.preventDefault(); 92 | 93 | $(".gallery-homescreen").animate({ 94 | left: 00+"vh" 95 | }, 200); 96 | $(".gallery-detailscreen").animate({ 97 | left: -30+"vh" 98 | }, 200); 99 | }); 100 | 101 | $(document).on('click', '#returndetail-button', function(e){ 102 | e.preventDefault(); 103 | returnDetail(); 104 | 105 | }); 106 | 107 | function returnDetail(){ 108 | $(".gallery-detailscreen").animate({ 109 | left: 00+"vh" 110 | }, 200); 111 | $(".gallery-postscreen").animate({ 112 | left: -30+"vh" 113 | }, 200); 114 | } 115 | 116 | 117 | $(document).on('click', '#tweet-button', function(e){ 118 | e.preventDefault(); 119 | var TweetMessage = $("#new-textarea").val(); 120 | var imageURL = postImageUrl 121 | if (TweetMessage != "") { 122 | var CurrentDate = new Date(); 123 | $.post('https://qb-phone/PostNewTweet', JSON.stringify({ 124 | Message: TweetMessage, 125 | Date: CurrentDate, 126 | Picture: QB.Phone.Data.MetaData.profilepicture, 127 | url: imageURL 128 | }), function(Tweets){ 129 | QB.Phone.Notifications.LoadTweets(Tweets); 130 | }); 131 | var TweetMessage = $("#new-textarea").val(' '); 132 | $.post('https://qb-phone/GetHashtags', JSON.stringify({}), function(Hashtags){ 133 | QB.Phone.Notifications.LoadHashtags(Hashtags) 134 | }) 135 | returnDetail() 136 | } else { 137 | QB.Phone.Notifications.Add("fab fa-twitter", "Twitter", "Fill a message!", "#1DA1F2"); 138 | }; 139 | $('#tweet-new-url').val(""); 140 | $("#tweet-new-message").val(""); 141 | }); 142 | 143 | 144 | $(document).on('click', '#advert-button', function(e){ 145 | e.preventDefault(); 146 | var Advert = $("#new-textarea").val(); 147 | let picture = postImageUrl; 148 | 149 | if (Advert !== "") { 150 | $(".advert-home").animate({ 151 | left: 0+"vh" 152 | }); 153 | $(".new-advert").animate({ 154 | left: -30+"vh" 155 | }); 156 | if (!picture){ 157 | $.post('https://qb-phone/PostAdvert', JSON.stringify({ 158 | message: Advert, 159 | url: null 160 | })); 161 | returnDetail() 162 | }else { 163 | $.post('https://qb-phone/PostAdvert', JSON.stringify({ 164 | message: Advert, 165 | url: picture 166 | })); 167 | returnDetail() 168 | } 169 | $("#new-textarea").val(' '); 170 | } else { 171 | QB.Phone.Notifications.Add("fas fa-ad", "Advertisement", "You can\'t post an empty ad!", "#ff8f1a", 2000); 172 | } 173 | }); 174 | 175 | -------------------------------------------------------------------------------- /html/js/documents.js: -------------------------------------------------------------------------------- 1 | var DocEndtitle = null 2 | var DocEndtext = null 3 | var DocEndid = null 4 | var DocEndcitizenid = null 5 | 6 | $(document).on('click', '.documents-tupe-text-btn', function(e){ 7 | e.preventDefault(); 8 | ClearInputNew() 9 | $('#documents-box-new-add-new').fadeIn(350); 10 | }); 11 | 12 | $(document).on('click', '#documents-save-note-for-doc', function(e){ 13 | e.preventDefault(); 14 | var Title = $(".documents-input-title").val(); 15 | var Text = $("#documents-textarea").val(); 16 | var date = new Date(); 17 | var Times = date.getDay()+" "+MonthFormatting[date.getMonth()]+" "+date.getFullYear()+" "+date.getHours()+":"+date.getMinutes(); 18 | 19 | if ((Title &&Text ) != ""){ 20 | $.post('https://qb-phone/documents_Save_Note_As', JSON.stringify({ 21 | Title: Title, 22 | Text: Text, 23 | Time: Times, 24 | Type: "New", 25 | })); 26 | ClearInputNew() 27 | $("#documents-textarea").val(""); 28 | $('#documents-box-new-add-new').fadeOut(350); 29 | } 30 | }); 31 | 32 | function LoadGetNotes(){ 33 | $(".documents-list").html(""); 34 | $(".documents-dropdown-menu").html(""); 35 | $(".documents-select span").html("Select a Note"); 36 | 37 | var AddOption = '
Nothing Here!
'+ 38 | '
' 39 | $('.documents-list').append(AddOption); 40 | 41 | $.post('https://qb-phone/GetNote_for_Documents_app', JSON.stringify({}), function(HasNote){ 42 | if(HasNote){ 43 | AddDocuments(HasNote) 44 | } 45 | }); 46 | } 47 | 48 | $(document).ready(function(){ 49 | window.addEventListener('message', function(event) { 50 | switch(event.data.action) { 51 | case "DocumentRefresh": 52 | LoadGetNotes() 53 | break; 54 | } 55 | }) 56 | }); 57 | 58 | function AddDocuments(data){ 59 | $(".documents-list").html(""); 60 | $(".documents-dropdown-menu").html(""); 61 | $(".documents-select span").html("Select a Note"); 62 | 63 | var AddOption = '
Nothing Here!
'+ 64 | '
' 65 | $('.documents-list').append(AddOption); 66 | 67 | 68 | DocEndtitle = null 69 | DocEndtext = null 70 | DocEndid = null 71 | DocEndcitizenid = null 72 | 73 | for (const [k, v] of Object.entries(data)) { 74 | var firstLetter = v.title.substring(0, 1); 75 | var Fulltext = firstLetter.toUpperCase()+(v.title).replace(firstLetter,'') 76 | 77 | var AddOption = '
  • '+Fulltext+'
  • '; 78 | 79 | $('.documents-dropdown-menu').append(AddOption); 80 | } 81 | } 82 | 83 | $(document).on('click', '#documents-click-for-data', function(e){ 84 | e.preventDefault(); 85 | $(".documents-list").html(""); 86 | DocEndtitle = $(this).data('title') 87 | DocEndtext = $(this).data('text') 88 | DocEndid = $(this).data('id') 89 | DocEndcitizenid = $(this).data('csn') 90 | 91 | var AddOption = '
    '+ 92 | '
    Title: '+DocEndtitle+'
    '+ 93 | ''+ 94 | '
    '+ 95 | '
    '+ 96 | '
    '+ 97 | '
    '+ 98 | '
    '; 99 | 100 | $('.documents-list').append(AddOption); 101 | }); 102 | 103 | $('.documents-dropdown').click(function () { 104 | $(this).attr('tabindex', 1).focus(); 105 | $(this).toggleClass('active'); 106 | $(this).find('.documents-dropdown-menu').slideToggle(300); 107 | }); 108 | 109 | $('.documents-dropdown').focusout(function () { 110 | $(this).removeClass('active'); 111 | $(this).find('.documents-dropdown-menu').slideUp(300); 112 | }); 113 | 114 | $(document).on('click', '.documents-dropdown .documents-dropdown-menu li', function(e) { 115 | $(this).parents('.documents-dropdown').find('span').text($(this).text()); 116 | $(this).parents('.documents-dropdown').find('input').attr('value', $(this).attr('id')); 117 | }); 118 | 119 | $(document).on('click', '.documents-body-btn-one', function(e){ 120 | e.preventDefault(); 121 | var date = new Date(); 122 | var Times = date.getDay()+" "+MonthFormatting[date.getMonth()]+" "+date.getFullYear()+" "+date.getHours()+":"+date.getMinutes(); 123 | var NewText = $("#documents-textarea-new").val(); 124 | if(NewText != ""){ 125 | $.post('https://qb-phone/documents_Save_Note_As', JSON.stringify({ 126 | Title: DocEndtitle, 127 | Text: NewText, 128 | Time: Times, 129 | ID: DocEndid, 130 | CSN: DocEndcitizenid, 131 | Type: "Update", 132 | })); 133 | } 134 | }); 135 | 136 | $(document).on('click', '.documents-body-btn-two', function(e){ 137 | e.preventDefault(); 138 | 139 | $.post('https://qb-phone/documents_Save_Note_As', JSON.stringify({ 140 | ID: DocEndid, 141 | Type: "Delete", 142 | })); 143 | }); -------------------------------------------------------------------------------- /html/css/documents.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .documents-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | overflow: hidden; 8 | background: #242833; 9 | } 10 | 11 | .documents-header { 12 | position: absolute; 13 | width: 86%; 14 | height: 10%; 15 | left: 6.5%; 16 | right: 0; 17 | color: white; 18 | font-size: 1.8vh; 19 | } 20 | 21 | .documents-header > p { 22 | line-height: 12vh; 23 | text-indent: 2vh; 24 | margin: 0 0 0 9vh; 25 | } 26 | 27 | .documents-header > span { 28 | position: absolute; 29 | top: 8vh; 30 | left: 9vh; 31 | font-size: 1.2vh; 32 | height: 2vh; 33 | color: white; 34 | } 35 | 36 | .documents-list { 37 | position: absolute; 38 | width: 90%; 39 | height: 80%; 40 | margin: 0 auto; 41 | left: 0; 42 | right: 0; 43 | bottom: 3%; 44 | border-radius: .5vh; 45 | overflow-y: scroll; 46 | } 47 | 48 | .documents-list::-webkit-scrollbar { 49 | display: none; 50 | } 51 | 52 | .documents-tupe-text-btn{ 53 | position: absolute; 54 | color: whitesmoke; 55 | transition: all 0.2s ease 0s; 56 | display: inline; 57 | border-radius: 4px; 58 | top: 77%; 59 | left: 91%; 60 | } 61 | .documents-tupe-text-btn:hover{ 62 | color: rgb(187, 187, 187); 63 | } 64 | 65 | #documents-textarea { 66 | border: none; 67 | height: 15vh; 68 | margin: 0 auto; 69 | left: 0; 70 | right: 0; 71 | outline: none; 72 | resize: none; 73 | padding: 0.87vh; 74 | font-size: 1.4vh; 75 | top: 12vh; 76 | width: 80%; 77 | margin-left: 10%; 78 | background: none; 79 | border-bottom: .1vh solid #f5f5f5ad; 80 | color: whitesmoke; 81 | font-size: 1.75vh; 82 | } 83 | 84 | #documents-textarea:focus { 85 | border-bottom: .1vh solid #8ee074; 86 | } 87 | 88 | 89 | #documents-textarea::-webkit-inner-spin-button, 90 | #documents-textarea::-webkit-outer-spin-button { 91 | -webkit-appearance: none; 92 | margin: 0; 93 | } 94 | 95 | #documents-textarea::-webkit-scrollbar { 96 | width: 0.2vh; 97 | } 98 | 99 | #documents-textarea::-webkit-scrollbar-thumb { 100 | background: whitesmoke; 101 | } 102 | 103 | #documents-textarea-new { 104 | border: none; 105 | height: 40vh; 106 | margin: 0 auto; 107 | left: 0; 108 | right: 0; 109 | outline: none; 110 | resize: none; 111 | transition: border-bottom 0.1s ease-in-out; 112 | padding: 0.87vh; 113 | font-size: 1.4vh; 114 | top: 12vh; 115 | width: 90%; 116 | margin-left: 5%; 117 | background: none; 118 | border-bottom: .1vh solid #f5f5f5ad; 119 | color: #cacaca; 120 | font-size: 1.75vh; 121 | } 122 | 123 | #documents-textarea-new::-webkit-inner-spin-button, 124 | #documents-textarea-new::-webkit-outer-spin-button { 125 | -webkit-appearance: none; 126 | margin: 0; 127 | } 128 | 129 | #documents-textarea-new::-webkit-scrollbar { 130 | width: 0.2vh; 131 | } 132 | 133 | #documents-textarea-new::-webkit-scrollbar-thumb { 134 | background: whitesmoke; 135 | } 136 | 137 | 138 | 139 | 140 | .documents-form-style-body{ 141 | width: 95%; 142 | background-color: #2c465f; 143 | margin: 2% 2%; 144 | padding: 3% 3%; 145 | border-radius: 4px; 146 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 147 | transition: 0.2s; 148 | color: whitesmoke; 149 | } 150 | .documents-form-style-body:hover{ 151 | background-color: #0d1218c0; 152 | } 153 | 154 | 155 | 156 | 157 | .documents-dropdown { 158 | position: relative; 159 | width: 22vh; 160 | display: inline-block; 161 | border-bottom: 0.1vh solid rgba(245, 245, 245, 0.68); 162 | transition: all .5s ease; 163 | font-size: 14px; 164 | text-align: left; 165 | top: 68%; 166 | left: 3%; 167 | color: whitesmoke; 168 | background-color: none; 169 | outline: none; 170 | } 171 | 172 | .documents-dropdown .documents-select { 173 | cursor: pointer; 174 | display: block; 175 | padding: 10px 176 | } 177 | 178 | .documents-dropdown .documents-select > i { 179 | font-size: 13px; 180 | color: #888; 181 | cursor: pointer; 182 | transition: all .3s ease-in-out; 183 | float: right; 184 | line-height: 20px 185 | } 186 | 187 | .documents-dropdown.active .documents-select > i { 188 | transform: rotate(-90deg) 189 | } 190 | 191 | .documents-dropdown .documents-dropdown-menu { 192 | position: absolute; 193 | background-color: #484848; 194 | width: 100%; 195 | left: 0; 196 | margin-top: 1px; 197 | overflow: hidden; 198 | display: none; 199 | max-height: 420px; 200 | overflow-y: auto; 201 | z-index: 9 202 | } 203 | 204 | .documents-dropdown .documents-dropdown-menu li { 205 | padding: 10px; 206 | transition: all .2s ease-in-out; 207 | cursor: pointer 208 | } 209 | 210 | .documents-dropdown .documents-dropdown-menu { 211 | padding: 0; 212 | list-style: none 213 | } 214 | 215 | .documents-dropdown .documents-dropdown-menu li:hover { 216 | background-color: #767676 217 | } 218 | 219 | .documents-dropdown .documents-dropdown-menu li:active { 220 | background-color: #767676 221 | } 222 | 223 | .document-body-class-body-main{ 224 | color: whitesmoke; 225 | } 226 | 227 | .document-body-class-title{ 228 | margin-left: 5%; 229 | } 230 | 231 | .documents-body-btn-class{ 232 | display: inline-flex; 233 | text-align: center; 234 | margin-left: 40%; 235 | } 236 | 237 | .documents-body-btn-one{ 238 | color: #8ee074; 239 | transition: 0.2s; 240 | } 241 | .documents-body-btn-one:hover{ 242 | color: #6cac59; 243 | } 244 | 245 | .documents-body-btn-two{ 246 | color: #f5a15b; 247 | margin-left: 60%; 248 | transition: 0.2s; 249 | } 250 | .documents-body-btn-two:hover{ 251 | color: #c27e47; 252 | } -------------------------------------------------------------------------------- /html/css/qstore.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .store-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: rgb(252, 252, 252); 8 | overflow: hidden; 9 | } 10 | 11 | .store-header { 12 | position: absolute; 13 | top: 0; 14 | width: 100%; 15 | height: 9vh; 16 | color: black; 17 | border-bottom: .3vh solid rgb(224, 224, 224); 18 | } 19 | 20 | .store-header > p { 21 | position: absolute; 22 | left: 1.9vh; 23 | top: 5vh; 24 | font-family: 'Roboto', sans-serif !important; 25 | font-size: 1.8vh; 26 | } 27 | 28 | .store-apps { 29 | position: absolute; 30 | width: 92%; 31 | height: 80%; 32 | bottom: 2%; 33 | left: 0; 34 | margin: 0 auto; 35 | left: 0; 36 | right: 0; 37 | background: rgb(243, 243, 243); 38 | border-radius: .5vh; 39 | -webkit-box-shadow: 0px 0px 7px px rgba(0,0,0,0.15); 40 | -moz-box-shadow: 0px 0px 7px 4px rgba(0,0,0,0.15); 41 | box-shadow: 0px 0px 7px 4px rgba(0,0,0,0.15); 42 | overflow: hidden; 43 | } 44 | 45 | .storeapp { 46 | position: relative; 47 | width: 100%; 48 | height: 7vh; 49 | background-color: rgb(245, 245, 245); 50 | margin: 0 auto; 51 | margin-bottom: .8vh; 52 | border-bottom: 0.2vh solid rgb(177, 177, 177); 53 | } 54 | 55 | .storeapp-icon { 56 | position: absolute; 57 | width: 5vh; 58 | height: 5vh; 59 | background-color: #575fcf; 60 | margin: 1vh; 61 | border-radius: .3vh; 62 | box-shadow: 0px 0px 5px 5px rgba(0, 0, 0, 0.05); 63 | } 64 | 65 | .storeapp-icon > i { 66 | position: absolute; 67 | margin: 0 auto; 68 | left: 0; 69 | right: 0; 70 | text-align: center; 71 | line-height: 5vh; 72 | font-size: 2.5vh; 73 | color: rgb(255, 255, 255); 74 | } 75 | 76 | .storeapp-title { 77 | position: absolute; 78 | top: 1vh; 79 | left: 6.9vh; 80 | font-family: 'Roboto', sans-serif !important; 81 | font-size: 1.4vh; 82 | } 83 | 84 | .storeapp-creator { 85 | position: absolute; 86 | bottom: 2.2vh; 87 | left: 6.9vh; 88 | font-family: 'Roboto', sans-serif !important; 89 | font-size: 1.2vh; 90 | } 91 | 92 | .storeapp-download { 93 | position: absolute; 94 | line-height: 7vh; 95 | right: 2vh; 96 | font-size: 2vh; 97 | color: #4488e7; 98 | 99 | transition: .05s ease-in-out; 100 | } 101 | 102 | .storeapp-download:hover { 103 | color: #3cb623; 104 | transition: .05s ease-in-out; 105 | } 106 | 107 | .storeapp-remove { 108 | position: absolute; 109 | line-height: 7vh; 110 | right: 2vh; 111 | font-size: 2vh; 112 | color: #4488e7; 113 | transition: .05s ease-in-out; 114 | } 115 | 116 | .storeapp-remove:hover { 117 | color: #b62323; 118 | transition: .05s ease-in-out; 119 | } 120 | 121 | 122 | .download-password-container { 123 | display: none; 124 | position: absolute; 125 | height: 100%; 126 | width: 100%; 127 | } 128 | 129 | .download-password { 130 | position: absolute; 131 | width: 80%; 132 | height: 17vh; 133 | background-color: rgb(248, 248, 248); 134 | margin: 0 auto; 135 | left: 0; 136 | right: 0; 137 | top: 50%; 138 | transform: translateY(-50%); 139 | box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.15); 140 | border-radius: .3vh; 141 | } 142 | 143 | #download-password-title { 144 | color: black; 145 | position: absolute; 146 | margin: 0 auto; 147 | left: 0; 148 | right: 0; 149 | text-align: center; 150 | line-height: 4vh; 151 | font-family: 'Roboto', sans-serif !important; 152 | font-size: 1.4vh; 153 | } 154 | 155 | #download-password-disclaimer { 156 | color: black; 157 | position: absolute; 158 | text-align: center; 159 | font-family: 'Roboto', sans-serif !important; 160 | font-size: 1vh; 161 | 162 | top: 3.2vh; 163 | } 164 | 165 | .download-password-input { 166 | position: absolute; 167 | width: 100%; 168 | height: 3.5vh; 169 | background-color: rgb(224, 224, 224); 170 | border: none; 171 | outline: none; 172 | top: 7vh; 173 | border-bottom: .2vh solid rgb(209, 209, 209); 174 | font-family: 'Roboto', sans-serif !important; 175 | text-align: center; 176 | 177 | transition: .2s ease-in-out; 178 | } 179 | 180 | .download-password-input:focus { 181 | border-bottom: .2vh solid rgb(245, 155, 37); 182 | } 183 | 184 | .download-password-input:valid { 185 | border-bottom: .2vh solid rgb(19, 179, 27); 186 | } 187 | 188 | .download-progressbar { 189 | position: absolute; 190 | width: 100%; 191 | height: 1vh; 192 | bottom: 0; 193 | } 194 | 195 | .download-progressbar-fill { 196 | position: absolute; 197 | width: 50%; 198 | background-color: green; 199 | height: 100%; 200 | } 201 | 202 | .download-password-accept { 203 | position: absolute; 204 | width: 4vh; 205 | height: 4vh; 206 | background-color: rgb(192, 192, 192); 207 | bottom: 1.75vh; 208 | margin: 0 auto; 209 | left: 0; 210 | right: 5.2vh; 211 | text-align: center; 212 | font-size: 1.9vh; 213 | transition: 0.1s linear; 214 | } 215 | .download-password-deny { 216 | position: absolute; 217 | width: 4vh; 218 | height: 4vh; 219 | background-color: rgb(192, 192, 192); 220 | bottom: 1.75vh; 221 | margin: 0 auto; 222 | left: 5.2vh; 223 | right: 0; 224 | text-align: center; 225 | font-size: 2vh; 226 | transition: 0.1s linear; 227 | } 228 | 229 | .download-password-accept > i { 230 | line-height: 4vh; 231 | } 232 | 233 | .download-password-deny > i { 234 | line-height: 4vh; 235 | } 236 | 237 | .download-password-accept:hover { 238 | color: rgb(114, 114, 114); 239 | } 240 | 241 | .download-password-deny:hover { 242 | color: rgb(114, 114, 114); 243 | } 244 | -------------------------------------------------------------------------------- /html/js/casino.js: -------------------------------------------------------------------------------- 1 | var PlayerNameOf = null 2 | var PlayerChanseOf = null 3 | var PlayerIDOf = null 4 | 5 | function LoadCasinoJob(){ 6 | var PlayerJob = QB.Phone.Data.PlayerData.job.name; 7 | if (PlayerJob == "casino"){ 8 | $(".casino-dashboard-boss").css({"display":"block"}); 9 | $("#casino-Winer-this").css({"display":"block"}); 10 | } else { 11 | $(".casino-dashboard-boss").css({"display":"none"}); 12 | $("#casino-Winer-this").css({"display":"none"}); 13 | } 14 | 15 | CheckStatus(); 16 | 17 | $.post('https://qb-phone/CheckHasBetTable', JSON.stringify({}), function(HasTable){ 18 | if(JSON.stringify(HasTable) != "[]"){ 19 | AddToChat(HasTable) 20 | }else{ 21 | $(".casino-list").html(""); 22 | var AddOption = '
    No Event
    '+ 23 | '
    '+ 24 | '
    '+ 25 | '
    '+ 26 | '
    ' 27 | $('.casino-list').append(AddOption); 28 | } 29 | }); 30 | } 31 | 32 | $(document).on('click', '.casino-dashboard-boss', function(e){ 33 | e.preventDefault(); 34 | ClearInputNew() 35 | $('#casino-dashboard-box').fadeIn(350); 36 | }); 37 | 38 | $(document).on('click', '#casino_create_bet', function(e){ 39 | e.preventDefault(); 40 | ClearInputNew() 41 | $('#casino-dashboard-box').fadeOut(350); 42 | $('#casino-dashboard-box-create-bet').fadeIn(350); 43 | }); 44 | 45 | $(document).on('click', '#casino_delete', function(e){ 46 | e.preventDefault(); 47 | $.post('https://qb-phone/CasinoDeleteTable', JSON.stringify({})); 48 | }); 49 | 50 | $(document).on('click', '#casino_status', function(e){ 51 | e.preventDefault(); 52 | $.post('https://qb-phone/casino_status', JSON.stringify({})); 53 | CheckStatus(); 54 | }); 55 | 56 | $(document).on('click', '#casino-submit-bet', function(e){ 57 | e.preventDefault(); 58 | var InName = $(".casino_input_name").val(); 59 | var InChanse = $(".casino_input_Chanse").val(); 60 | if (InName != "" && InChanse != "" && InChanse >= 1.0){ 61 | $.post('https://qb-phone/CasinoAddBet', JSON.stringify({ 62 | name: InName, 63 | chanse: InChanse, 64 | })); 65 | ClearInputNew(); 66 | } else { 67 | QB.Phone.Notifications.Add("fas fa-exclamation-circle", "System", "Fields are incorrect") 68 | } 69 | }); 70 | 71 | $(document).ready(function(){ 72 | window.addEventListener('message', function(event) { 73 | switch(event.data.action) { 74 | case "BetAddToApp": 75 | AddToChat(event.data.datas) 76 | break; 77 | } 78 | }) 79 | }); 80 | 81 | function AddToChat(data){ 82 | $(".casino-list").html(""); 83 | if(JSON.stringify(data) != "[]"){ 84 | for (const [k, v] of Object.entries(data)) { 85 | var firstLetter = v.Name.substring(0, 1); 86 | var Fulltext = firstLetter.toUpperCase()+(v.Name).replace(firstLetter,'') 87 | 88 | var AddOption = '
    '+ 89 | '
    '+Fulltext+'
    '+ 90 | '
    '+ 91 | '
    ' 92 | $('.casino-list').append(AddOption); 93 | } 94 | }else{ 95 | $(".casino-list").html(""); 96 | var AddOption = '
    No Event
    '+ 97 | '
    '+ 98 | '
    '+ 99 | '
    '+ 100 | '
    ' 101 | $('.casino-list').append(AddOption); 102 | } 103 | } 104 | 105 | function CheckStatus(){ 106 | $.post('https://qb-phone/CheckHasBetStatus', JSON.stringify({}), function(HasStatus){ 107 | if (HasStatus){ 108 | $("#casino_status").html("Status: Betting Enabled"); 109 | }else{ 110 | $("#casino_status").html("Status: Betting Disabled"); 111 | } 112 | }); 113 | } 114 | 115 | 116 | $(document).on('click', '#casino-click-beting', function(e){ 117 | e.preventDefault(); 118 | PlayerNameOf = $(this).data('name') 119 | PlayerChanseOf = $(this).data('chanse') 120 | PlayerIDOf = $(this).data('id') 121 | $("#casino-info-player").html(PlayerNameOf); 122 | $("#casino-info-total").html("0 Dollars"); 123 | $("#casino-info-chanse").html("x"+PlayerChanseOf); 124 | $('#casin-bet-boxing-player').fadeIn(350); 125 | }); 126 | 127 | $(".casino-amount-for-bet-player").keyup(function(){ 128 | var input = this.value 129 | var MoneyAmount = input * PlayerChanseOf 130 | 131 | $("#casino-info-total").html(MoneyAmount+" Dollars"); 132 | }); 133 | 134 | $(document).on('click', '#casino-end-task-accept', function(e){ 135 | e.preventDefault(); 136 | var Amount = $(".casino-amount-for-bet-player").val(); 137 | if (Amount != "" && Amount >= 1.0){ 138 | $.post('https://qb-phone/BettingAddToTable', JSON.stringify({ 139 | amount: Amount, 140 | chanse: PlayerChanseOf, 141 | player: PlayerNameOf, 142 | id: PlayerIDOf, 143 | })); 144 | ClearInputNew(); 145 | } else { 146 | QB.Phone.Notifications.Add("fas fa-exclamation-circle", "System", "Fields are incorrect") 147 | } 148 | }); 149 | 150 | $(document).on('click', '#casino-Winer-this', function(e){ 151 | e.preventDefault(); 152 | $.post('https://qb-phone/WineridCasino', JSON.stringify({ 153 | id: PlayerIDOf, 154 | })); 155 | }); -------------------------------------------------------------------------------- /html/js/employment.js: -------------------------------------------------------------------------------- 1 | var JoinPass = null; 2 | var JoinID = null; 3 | 4 | function LoadEmploymentApp(){ 5 | $.post('https://qb-phone/GetGroupsApp', JSON.stringify({}), function(Data){ 6 | AddDIV(Data) 7 | }); 8 | } 9 | 10 | $(document).on('click', '.empolyment-btn-create-group', function(e){ 11 | e.preventDefault(); 12 | ClearInputNew() 13 | $('#employment-box-new-dashboard').fadeIn(350); 14 | }); 15 | 16 | $(document).on('click', '#employment-sbmit-for-create-group', function(e){ 17 | e.preventDefault(); 18 | var Name = $(".employment-input-group-name").val(); 19 | var pass = $(".employment-input-password").val(); 20 | var pass2 = $(".employment-input-password2").val(); 21 | if (Name != "" && pass != "" && pass2 != ""){ 22 | if(pass == pass2){ 23 | $.post('https://qb-phone/employment_CreateJobGroup', JSON.stringify({ 24 | name: Name, 25 | pass: pass, 26 | })); 27 | 28 | $('#employment-box-new-dashboard').fadeOut(350); 29 | }else{ 30 | QB.Phone.Notifications.Add("fas fa-exclamation-circle", "System", "The password entered is incorrect") 31 | } 32 | }else{ 33 | QB.Phone.Notifications.Add("fas fa-exclamation-circle", "System", "Fields are incorrect") 34 | } 35 | }); 36 | 37 | $(document).ready(function(){ 38 | window.addEventListener('message', function(event) { 39 | switch(event.data.action) { 40 | case "GroupAddDIV": 41 | AddDIV(event.data.datas) 42 | break; 43 | } 44 | }) 45 | }); 46 | 47 | function AddDIV(data){ 48 | var CSN = QB.Phone.Data.PlayerData.citizenid; 49 | $(".employment-list").html(""); 50 | if(JSON.stringify(data) != "[]"){ 51 | for (const [k, v] of Object.entries(data)) { 52 | var AddOption 53 | if (v.CSN == CSN){ 54 | AddOption = '
    '+(v.GName).toUpperCase()+'
    '+v.Users+'
    ' 55 | }else{ 56 | AddOption = '
    '+(v.GName).toUpperCase()+'
    '+v.Users+'
    ' 57 | for (const [ke, ve] of Object.entries(v.UserName)) { 58 | if(ve == CSN){ 59 | AddOption = '
    '+(v.GName).toUpperCase()+'
    '+v.Users+'
    ' 60 | } 61 | } 62 | } 63 | 64 | $('.employment-list').append(AddOption); 65 | } 66 | }else{ 67 | $(".employment-list").html(""); 68 | var AddOption = '
    No Group
    ' 69 | 70 | $('.employment-list').append(AddOption); 71 | } 72 | } 73 | 74 | $(document).on('click', '#employment-delete-group', function(e){ 75 | e.preventDefault(); 76 | var Delete = $(this).data('delete') 77 | $.post('https://qb-phone/employment_DeleteGroup', JSON.stringify({ 78 | delete: Delete, 79 | })); 80 | }); 81 | 82 | $(document).on('click', '#employment-join-grouped', function(e){ 83 | e.preventDefault(); 84 | JoinPass = $(this).data('pass') 85 | JoinID = $(this).data('id') 86 | ClearInputNew() 87 | $('#employment-box-new-join').fadeIn(350); 88 | }); 89 | 90 | $(document).on('click', '#employment-sbmit-for-join-group', function(e){ 91 | e.preventDefault(); 92 | var EnterPass = $(".employment-input-join-password").val(); 93 | if(EnterPass == JoinPass){ 94 | var CSN = QB.Phone.Data.PlayerData.citizenid; 95 | $.post('https://qb-phone/employment_JoinTheGroup', JSON.stringify({ 96 | PCSN: CSN, 97 | id: JoinID, 98 | })); 99 | ClearInputNew() 100 | $('#employment-box-new-join').fadeOut(350); 101 | } 102 | }); 103 | 104 | $(document).on('click', '#employment-list-group', function(e){ 105 | e.preventDefault(); 106 | var id = $(this).data('id') 107 | $.post('https://qb-phone/employment_CheckPlayerNames', JSON.stringify({ 108 | id: id, 109 | }), function(Data){ 110 | ClearInputNew() 111 | $('#employment-box-new-player-name').fadeIn(350); 112 | $("#phone-new-box-main-playername").html(""); 113 | for (const [k, v] of Object.entries(Data)) { 114 | var AddOption = '
    '+v+'
    ' 115 | 116 | $('#phone-new-box-main-playername').append(AddOption); 117 | } 118 | 119 | var AddOption2 = '

    '+ 120 | '
    Cancel
    ' 121 | 122 | $('#phone-new-box-main-playername').append(AddOption2); 123 | }); 124 | }); 125 | 126 | $(document).on('click', '#employment-leave-grouped', function(e){ 127 | e.preventDefault(); 128 | var CSN = QB.Phone.Data.PlayerData.citizenid; 129 | var id = $(this).data('id') 130 | $.post('https://qb-phone/employment_leave_grouped', JSON.stringify({ 131 | id: id, 132 | csn: CSN, 133 | })); 134 | }); -------------------------------------------------------------------------------- /html/js/qstore.js: -------------------------------------------------------------------------------- 1 | var TemplatePassword = "1234"; 2 | var CurrentApp = null; 3 | var IsDownloading = false; 4 | 5 | SetupAppstore = function(data) { 6 | $(".store-apps").html(""); 7 | $.each(data.StoreApps, function(i, app){ 8 | if (data.PhoneData.InstalledApps[i] == null || data.PhoneData.InstalledApps[i] == undefined) { 9 | if(app.blockedjobs != QB.Phone.Data.PlayerJob.name){ 10 | var elem = '
    '+app.title+'
    '+app.creator+'
    ' 11 | $(".store-apps").append(elem); 12 | app.app = i; 13 | $("#app-"+i).data('AppData', app); 14 | } 15 | } else { 16 | var elem = '
    '+app.title+' - Geïnstalleerd
    '+app.creator+'
    ' 17 | $(".store-apps").append(elem); 18 | app.app = i; 19 | $("#app-"+i).data('AppData', app); 20 | } 21 | }); 22 | } 23 | 24 | $(document).on('click', '.storeapp-download', function(e){ 25 | e.preventDefault(); 26 | 27 | var AppId = $(this).parent().attr('id'); 28 | var AppData = $("#"+AppId).data('AppData'); 29 | 30 | $(".download-progressbar-fill").css("width", "0%"); 31 | 32 | CurrentApp = AppData.app; 33 | 34 | if (AppData.password) { 35 | $(".download-password-container").fadeIn(150); 36 | } 37 | }); 38 | 39 | $(document).on('click', '.storeapp-remove', function(e){ 40 | e.preventDefault(); 41 | 42 | var AppId = $(this).parent().attr('id'); 43 | var AppData = $("#"+AppId).data('AppData'); 44 | 45 | var applicationSlot = $(".phone-applications").find('[data-appslot="'+AppData.slot+'"]'); 46 | $(applicationSlot).html(""); 47 | $(applicationSlot).css({ 48 | "background-color":"transparent" 49 | }); 50 | $(applicationSlot).prop('title', ""); 51 | $(applicationSlot).removeData('app'); 52 | $(applicationSlot).removeData('placement'); 53 | 54 | $(applicationSlot).tooltip("destroy"); 55 | 56 | QB.Phone.Data.Applications[AppData.app] = null; 57 | 58 | $.post('https://qb-phone/RemoveApplication', JSON.stringify({ 59 | app: AppData.app 60 | })); 61 | setTimeout(function(){ 62 | $.post('https://qb-phone/SetupStoreApps', JSON.stringify({}), function(data){ 63 | SetupAppstore(data); 64 | }); 65 | }, 100); 66 | }); 67 | 68 | $(document).on('click', '.download-password-accept', function(e){ 69 | e.preventDefault(); 70 | 71 | var FilledInPassword = $(".download-password-input").val(); 72 | 73 | if (FilledInPassword == TemplatePassword) { 74 | $(".download-password-buttons").fadeOut(150); 75 | IsDownloading = true; 76 | $(".download-password-input").attr('readonly', true); 77 | 78 | $(".download-progressbar-fill").animate({ 79 | width: "100%", 80 | }, 5000, function(){ 81 | IsDownloading = false; 82 | $(".download-password-input").attr('readonly', false); 83 | $(".download-password-container").fadeOut(150, function(){ 84 | $(".download-progressbar-fill").css("width", "0%"); 85 | }); 86 | 87 | $.post('https://qb-phone/InstallApplication', JSON.stringify({ 88 | app: CurrentApp, 89 | }), function(Installed){ 90 | if (Installed) { 91 | var applicationSlot = $(".phone-applications").find('[data-appslot="'+Installed.data.slot+'"]'); 92 | var blockedapp = IsAppJobBlocked(Installed.data.blockedjobs, QB.Phone.Data.PlayerJob.name) 93 | if ((!Installed.data.job || Installed.data.job === QB.Phone.Data.PlayerJob.name) && !blockedapp) { 94 | $(applicationSlot).css({"background-color":Installed.data.color}); 95 | var icon = ''; 96 | if (Installed.data.app == "meos") { 97 | icon = ''; 98 | } 99 | $(applicationSlot).html(icon+'
    0
    '); 100 | $(applicationSlot).prop('title', Installed.data.tooltipText); 101 | $(applicationSlot).data('app', Installed.data.app); 102 | 103 | if (Installed.data.tooltipPos !== undefined) { 104 | $(applicationSlot).data('placement', Installed.data.tooltipPos) 105 | } 106 | } 107 | $(".phone-applications").find('[data-appslot="'+Installed.data.slot+'"]').tooltip(); 108 | 109 | var AppObject = $(".phone-applications").find("[data-appslot='"+Installed.data.slot+"']").find('.app-unread-alerts'); 110 | 111 | if (Installed.data.Alerts > 0) { 112 | $(AppObject).html(Installed.data.Alerts); 113 | $(AppObject).css({"display":"block"}); 114 | } else { 115 | $(AppObject).css({"display":"none"}); 116 | } 117 | QB.Phone.Data.Applications[Installed.data.app] = Installed.data; 118 | 119 | setTimeout(function(){ 120 | $.post('https://qb-phone/SetupStoreApps', JSON.stringify({}), function(data){ 121 | SetupAppstore(data); 122 | $(".download-password-input").attr('readonly', false); 123 | $(".download-progressbar-fill").css("width", "0%"); 124 | $(".download-password-buttons").show(); 125 | $(".download-password-input").val(""); 126 | }); 127 | }, 100); 128 | } 129 | }); 130 | }); 131 | } 132 | }); 133 | 134 | $(document).on('click', '.download-password-deny', function(e){ 135 | e.preventDefault(); 136 | 137 | $(".download-password-container").fadeOut(150); 138 | CurrentApp = null; 139 | IsDownloading = false; 140 | }); -------------------------------------------------------------------------------- /html/js/houses.js: -------------------------------------------------------------------------------- 1 | var SelectedHousesTab = "myhouses"; 2 | var CurrentHouseData = {}; 3 | var HousesData = {}; 4 | 5 | $(document).on('click', '.houses-app-header-tab', function(e){ 6 | e.preventDefault(); 7 | var CurrentHouseTab = $("[data-housetab='"+SelectedHousesTab+"']"); 8 | var Data = $(this).data('housetab'); 9 | 10 | if (Data !== SelectedHousesTab) { 11 | $(".house-app-" + $(CurrentHouseTab).data('housetab') + "-container").css("display", "none"); 12 | $(".house-app-" + Data + "-container").css("display", "block"); 13 | $(CurrentHouseTab).removeClass('houses-app-header-tab-selected'); 14 | $("[data-housetab='"+Data+"']").addClass('houses-app-header-tab-selected'); 15 | SelectedHousesTab = Data 16 | } 17 | }); 18 | 19 | $(document).on('click', '.myhouses-house', function(e){ 20 | e.preventDefault(); 21 | 22 | var HouseData = $(this).data('HouseData'); 23 | CurrentHouseData = HouseData; 24 | $(".myhouses-options-container").fadeIn(150); 25 | $(".myhouses-options-header").html(HouseData.label); 26 | }); 27 | 28 | $(document).on('click', '#myhouse-option-close', function(e){ 29 | e.preventDefault(); 30 | 31 | $(".myhouses-options-container").fadeOut(150); 32 | }); 33 | 34 | function SetupPlayerHouses(Houses) { 35 | $(".house-app-myhouses-container").html(""); 36 | HousesData = Houses; 37 | if (Houses.length > 0) { 38 | $.each(Houses, function(id, house){ 39 | var TotalKeyholders = 0; 40 | if (house.keyholders !== undefined && house.keyholders !== null) { 41 | TotalKeyholders = (house.keyholders).length; 42 | } 43 | var HouseDetails = '  ' + TotalKeyholders + '       '; 44 | if (house.garage.length > 0) { 45 | HouseDetails = '  ' + TotalKeyholders + '       '; 46 | } 47 | var elem = '
    ' + house.label + ' | Tier ' + house.tier + '
    ' + HouseDetails + '
    '; 48 | $(".house-app-myhouses-container").append(elem); 49 | $("#house-" + id).data('HouseData', house) 50 | }); 51 | } 52 | } 53 | 54 | var AnimationDuration = 200; 55 | 56 | $(document).on('click', '#myhouse-option-transfer', function(e){ 57 | e.preventDefault(); 58 | 59 | ClearInputNew() 60 | $('#house-transfer-new-box').fadeIn(350); 61 | }); 62 | 63 | $(document).on('click', '#myhouse-option-keys', function(e){ 64 | $(".keys-container").html(""); 65 | if (CurrentHouseData.keyholders !== undefined && CurrentHouseData.keyholders !== null) { 66 | $.each(CurrentHouseData.keyholders, function(i, keyholder){ 67 | if (keyholder !== null && keyholder !== undefined) { 68 | var elem; 69 | if (keyholder.citizenid !== QB.Phone.Data.PlayerData.citizenid) { 70 | elem = '
    ' + keyholder.charinfo.firstname + ' ' + keyholder.charinfo.lastname + '
    '; 71 | } else { 72 | elem = '
    (Me) ' + keyholder.charinfo.firstname + ' ' + keyholder.charinfo.lastname + '
    '; 73 | } 74 | $(".keys-container").append(elem); 75 | $('#holder-' + i).data('KeyholderData', keyholder); 76 | } 77 | }); 78 | } 79 | $(".myhouses-options").animate({ 80 | left: -35+"vw" 81 | }, AnimationDuration); 82 | $(".myhouse-option-keys-container").animate({ 83 | left: 0 84 | }, AnimationDuration); 85 | }); 86 | 87 | $(document).on('click', '.house-key-delete', function(e){ 88 | e.preventDefault(); 89 | var Data = $(this).parent().data('KeyholderData'); 90 | 91 | $.each(CurrentHouseData.keyholders, function(i, keyholder){ 92 | if (Data.citizenid == keyholder.citizenid) { 93 | CurrentHouseData.keyholders.splice(i); 94 | } 95 | }); 96 | 97 | $.each(HousesData, function(i, house){ 98 | if (house.name == CurrentHouseData.name) { 99 | HousesData[i].keyholders = CurrentHouseData.keyholders; 100 | } 101 | }); 102 | 103 | SetupPlayerHouses(HousesData); 104 | 105 | $(this).parent().fadeOut(250, function(){ 106 | $(this).remove(); 107 | }); 108 | 109 | $.post('https://qb-phone/RemoveKeyholder', JSON.stringify({ 110 | HolderData: Data, 111 | HouseData: CurrentHouseData, 112 | })); 113 | }); 114 | 115 | function shakeElement(element){ 116 | $(element).addClass('shake'); 117 | setTimeout(function(){ 118 | $(element).removeClass('shake'); 119 | }, 500); 120 | }; 121 | 122 | $(document).on('click', '#myhouse-option-transfer-confirm', function(e){ 123 | e.preventDefault(); 124 | 125 | var NewBSN = $("#myhouse-option-transfer-container-citizenid").val(); 126 | 127 | $.post('https://qb-phone/TransferCid', JSON.stringify({ 128 | newBsn: NewBSN, 129 | HouseData: CurrentHouseData, 130 | }), function(CanTransfer){ 131 | if (CanTransfer) { 132 | $(".myhouses-options").animate({ 133 | left: 0 134 | }, AnimationDuration); 135 | 136 | $(".myhouse-option-transfer-container").animate({ 137 | left: 35+"vw" 138 | }, AnimationDuration); 139 | 140 | setTimeout(function(){ 141 | $.post('https://qb-phone/GetPlayerHouses', JSON.stringify({}), function(Houses){ 142 | SetupPlayerHouses(Houses); 143 | $(".myhouses-options-container").fadeOut(150); 144 | }); 145 | }, 100); 146 | } else { 147 | QB.Phone.Notifications.Add("fas fa-home", "Houses", "This is an invalid CSN-number", "#27ae60", 2500); 148 | shakeElement(".myhouse-option-transfer-container"); 149 | $("#myhouse-option-transfer-container-citizenid").val(""); 150 | } 151 | }); 152 | }); 153 | 154 | $(document).on('click', '#myhouse-option-transfer-back', function(e){ 155 | e.preventDefault(); 156 | 157 | $(".myhouses-options").animate({ 158 | left: 0 159 | }, AnimationDuration); 160 | 161 | $(".myhouse-option-transfer-container").animate({ 162 | left: 35+"vw" 163 | }, AnimationDuration); 164 | }); 165 | 166 | $(document).on('click', '#myhouse-option-keys-back', function(e){ 167 | e.preventDefault(); 168 | 169 | $(".myhouses-options").animate({ 170 | left: 0 171 | }, AnimationDuration); 172 | $(".myhouse-option-keys-container").animate({ 173 | left: 35+"vw" 174 | }, AnimationDuration); 175 | }); 176 | -------------------------------------------------------------------------------- /html/js/settings.js: -------------------------------------------------------------------------------- 1 | QB.Phone.Settings = {}; 2 | QB.Phone.Settings.Background = "default-QBCore"; 3 | QB.Phone.Settings.OpenedTab = null; 4 | QB.Phone.Settings.Backgrounds = { 5 | 'default-QBCore': { 6 | label: "Standard QBCore" 7 | } 8 | }; 9 | 10 | var PressedBackground = null; 11 | var PressedBackgroundObject = null; 12 | var OldBackground = null; 13 | var IsChecked = null; 14 | 15 | $(document).on('click', '.settings-app-tab', function(e){ 16 | e.preventDefault(); 17 | var PressedTab = $(this).data("settingstab"); 18 | 19 | if (PressedTab == "background") { 20 | QB.Phone.Animations.TopSlideDown(".settings-"+PressedTab+"-tab", 200, 0); 21 | QB.Phone.Settings.OpenedTab = PressedTab; 22 | } else if (PressedTab == "profilepicture") { 23 | QB.Phone.Animations.TopSlideDown(".settings-"+PressedTab+"-tab", 200, 0); 24 | QB.Phone.Settings.OpenedTab = PressedTab; 25 | } else if (PressedTab == "numberrecognition") { 26 | var checkBoxes = $(".numberrec-box"); 27 | QB.Phone.Data.AnonymousCall = !checkBoxes.prop("checked"); 28 | checkBoxes.prop("checked", QB.Phone.Data.AnonymousCall); 29 | 30 | if (!QB.Phone.Data.AnonymousCall) { 31 | $("#numberrecognition > p").html('Off'); 32 | } else { 33 | $("#numberrecognition > p").html('On'); 34 | } 35 | } 36 | }); 37 | 38 | $(document).on('click', '#accept-background', function(e){ 39 | e.preventDefault(); 40 | var hasCustomBackground = QB.Phone.Functions.IsBackgroundCustom(); 41 | 42 | if (hasCustomBackground === false) { 43 | QB.Phone.Notifications.Add("fas fa-paint-brush", "Settings", QB.Phone.Settings.Backgrounds[QB.Phone.Settings.Background].label+" is set!") 44 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 45 | $(".phone-background").css({"background-image":"url('/html/img/backgrounds/"+QB.Phone.Settings.Background+".png')"}) 46 | } else { 47 | QB.Phone.Notifications.Add("fas fa-paint-brush", "Settings", "Personal background set!") 48 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 49 | $(".phone-background").css({"background-image":"url('"+QB.Phone.Settings.Background+"')"}); 50 | } 51 | 52 | $.post('https://qb-phone/SetBackground', JSON.stringify({ 53 | background: QB.Phone.Settings.Background, 54 | })) 55 | }); 56 | 57 | QB.Phone.Functions.LoadMetaData = function(MetaData) { 58 | if (MetaData.background !== null && MetaData.background !== undefined) { 59 | QB.Phone.Settings.Background = MetaData.background; 60 | } else { 61 | QB.Phone.Settings.Background = "default-QBCore"; 62 | } 63 | 64 | var hasCustomBackground = QB.Phone.Functions.IsBackgroundCustom(); 65 | 66 | if (!hasCustomBackground) { 67 | $(".phone-background").css({"background-image":"url('/html/img/backgrounds/"+QB.Phone.Settings.Background+".png')"}) 68 | } else { 69 | $(".phone-background").css({"background-image":"url('"+QB.Phone.Settings.Background+"')"}); 70 | } 71 | 72 | if (MetaData.profilepicture == "default") { 73 | $("[data-settingstab='profilepicture']").find('.settings-tab-icon').html(''); 74 | } else { 75 | $("[data-settingstab='profilepicture']").find('.settings-tab-icon').html(''); 76 | } 77 | } 78 | 79 | $(document).on('click', '#cancel-background', function(e){ 80 | e.preventDefault(); 81 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 82 | }); 83 | 84 | QB.Phone.Functions.IsBackgroundCustom = function() { 85 | var retval = true; 86 | $.each(QB.Phone.Settings.Backgrounds, function(i, background){ 87 | if (QB.Phone.Settings.Background == i) { 88 | retval = false; 89 | } 90 | }); 91 | return retval 92 | } 93 | 94 | $(document).on('click', '.background-option', function(e){ 95 | e.preventDefault(); 96 | PressedBackground = $(this).data('background'); 97 | PressedBackgroundObject = this; 98 | OldBackground = $(this).parent().find('.background-option-current'); 99 | IsChecked = $(this).find('.background-option-current'); 100 | 101 | if (IsChecked.length === 0) { 102 | if (PressedBackground != "custom-background") { 103 | QB.Phone.Settings.Background = PressedBackground; 104 | $(OldBackground).fadeOut(50, function(){ 105 | $(OldBackground).remove(); 106 | }); 107 | $(PressedBackgroundObject).append('
    '); 108 | } else { 109 | QB.Phone.Animations.TopSlideDown(".background-custom", 200, 13); 110 | } 111 | } 112 | }); 113 | 114 | $(document).on('click', '#accept-custom-background', function(e){ 115 | e.preventDefault(); 116 | 117 | QB.Phone.Settings.Background = $(".custom-background-input").val(); 118 | $(OldBackground).fadeOut(50, function(){ 119 | $(OldBackground).remove(); 120 | }); 121 | $(PressedBackgroundObject).append('
    '); 122 | QB.Phone.Animations.TopSlideUp(".background-custom", 200, -23); 123 | }); 124 | 125 | $(document).on('click', '#cancel-custom-background', function(e){ 126 | e.preventDefault(); 127 | 128 | QB.Phone.Animations.TopSlideUp(".background-custom", 200, -23); 129 | }); 130 | 131 | // Profile Picture 132 | 133 | var PressedProfilePicture = null; 134 | var PressedProfilePictureObject = null; 135 | var OldProfilePicture = null; 136 | var ProfilePictureIsChecked = null; 137 | 138 | $(document).on('click', '#accept-profilepicture', function(e){ 139 | e.preventDefault(); 140 | var ProfilePicture = QB.Phone.Data.MetaData.profilepicture; 141 | if (ProfilePicture === "default") { 142 | QB.Phone.Notifications.Add("fas fa-paint-brush", "Settings", "Standard avatar set!") 143 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 144 | $("[data-settingstab='profilepicture']").find('.settings-tab-icon').html(''); 145 | } else { 146 | QB.Phone.Notifications.Add("fas fa-paint-brush", "Settings", "Personal avatar set!") 147 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 148 | $("[data-settingstab='profilepicture']").find('.settings-tab-icon').html(''); 149 | } 150 | $.post('https://qb-phone/UpdateProfilePicture', JSON.stringify({ 151 | profilepicture: ProfilePicture, 152 | })); 153 | }); 154 | 155 | $(document).on('click', '#accept-custom-profilepicture', function(e){ 156 | e.preventDefault(); 157 | QB.Phone.Data.MetaData.profilepicture = $(".custom-profilepicture-input").val(); 158 | $(OldProfilePicture).fadeOut(50, function(){ 159 | $(OldProfilePicture).remove(); 160 | }); 161 | $(PressedProfilePictureObject).append('
    '); 162 | QB.Phone.Animations.TopSlideUp(".profilepicture-custom", 200, -23); 163 | }); 164 | 165 | $(document).on('click', '.profilepicture-option', function(e){ 166 | e.preventDefault(); 167 | PressedProfilePicture = $(this).data('profilepicture'); 168 | PressedProfilePictureObject = this; 169 | OldProfilePicture = $(this).parent().find('.profilepicture-option-current'); 170 | ProfilePictureIsChecked = $(this).find('.profilepicture-option-current'); 171 | if (ProfilePictureIsChecked.length === 0) { 172 | if (PressedProfilePicture != "custom-profilepicture") { 173 | QB.Phone.Data.MetaData.profilepicture = PressedProfilePicture 174 | $(OldProfilePicture).fadeOut(50, function(){ 175 | $(OldProfilePicture).remove(); 176 | }); 177 | $(PressedProfilePictureObject).append('
    '); 178 | } else { 179 | QB.Phone.Animations.TopSlideDown(".profilepicture-custom", 200, 13); 180 | } 181 | } 182 | }); 183 | 184 | $(document).on('click', '#cancel-profilepicture', function(e){ 185 | e.preventDefault(); 186 | QB.Phone.Animations.TopSlideUp(".settings-"+QB.Phone.Settings.OpenedTab+"-tab", 200, -100); 187 | }); 188 | 189 | 190 | $(document).on('click', '#cancel-custom-profilepicture', function(e){ 191 | e.preventDefault(); 192 | QB.Phone.Animations.TopSlideUp(".profilepicture-custom", 200, -23); 193 | }); 194 | -------------------------------------------------------------------------------- /html/css/twitter.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .twitter-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #202731; 8 | overflow: hidden; 9 | } 10 | 11 | .twitter-header { 12 | position: absolute; 13 | top: 5vh; 14 | width: 100%; 15 | height: 5vh; 16 | border-bottom: .2vh solid rgba(20, 23, 26, 0.37); 17 | } 18 | 19 | .twitter-header-tab { 20 | position: relative; 21 | float: left; 22 | width: 33.33%; 23 | height: 100%; 24 | text-align: center; 25 | line-height: 5vh; 26 | font-size: 1.5vh; 27 | color: white; 28 | transition: .07s; 29 | } 30 | 31 | .twitter-header-tab:hover { 32 | background-color: #AAB8C2; 33 | } 34 | 35 | .selected-twitter-header-tab { 36 | border-bottom: .2vh solid #1DA1F2; 37 | color: #1DA1F2; 38 | } 39 | 40 | .twitter-app-header { 41 | position: relative; 42 | padding: 5vh 0 0 1.85vh; 43 | font-size: 2vh; 44 | } 45 | 46 | .twitter-home-tab { 47 | display: block; 48 | position: absolute; 49 | height: 85%; 50 | width: 100%; 51 | top: 8vh; 52 | overflow: hidden; 53 | overflow-y: scroll !important; 54 | overflow-x: hidden !important; 55 | } 56 | 57 | .twitter-home-tab::-webkit-scrollbar { 58 | width: .7vh; 59 | } 60 | 61 | .twitter-home-tab::-webkit-scrollbar-thumb { 62 | background-color: #1DA1F2; 63 | } 64 | 65 | .twitter-home-tab::-webkit-scrollbar-track { 66 | background-color: transparent; 67 | } 68 | 69 | .twitter-mentions-tab { 70 | display: none; 71 | position: absolute; 72 | height: 75%; 73 | width: 100%; 74 | top: 12vh; 75 | overflow: hidden; 76 | overflow-y: scroll !important; 77 | overflow-x: hidden !important; 78 | } 79 | 80 | .twitter-mentions-tab::-webkit-scrollbar { 81 | width: .7vh; 82 | } 83 | 84 | .twitter-mentions-tab::-webkit-scrollbar-thumb { 85 | background-color: #1DA1F2; 86 | } 87 | 88 | .twitter-mentions-tab::-webkit-scrollbar-track { 89 | background-color: transparent; 90 | } 91 | 92 | .twitter-hashtags-tab { 93 | display: none; 94 | position: absolute; 95 | height: 75%; 96 | width: 100%; 97 | top: 12vh; 98 | overflow: hidden; 99 | overflow-y: scroll !important; 100 | overflow-x: hidden !important; 101 | } 102 | 103 | .twitter-hashtags-tab::-webkit-scrollbar { 104 | width: .7vh; 105 | } 106 | 107 | .twitter-hashtags-tab::-webkit-scrollbar-thumb { 108 | background-color: #1DA1F2; 109 | } 110 | 111 | .twitter-hashtags-tab::-webkit-scrollbar-track { 112 | background-color: transparent; 113 | } 114 | 115 | .twitter-tweet { 116 | position: relative; 117 | height: auto; 118 | width: 90%; 119 | margin-bottom: 0.5vh; 120 | background-color: #0c62c5; 121 | border-radius: 2px; 122 | left: 5.4%; 123 | color: white; 124 | } 125 | 126 | .twitter-tweet-hashtag { 127 | position: relative; 128 | height: auto; 129 | width: 100%; 130 | border-top: 2px solid rgba(20, 23, 26, 0.37); 131 | margin-bottom: 2.5vh; 132 | } 133 | 134 | .twitter-mentioned-tweet { 135 | position: relative; 136 | height: auto; 137 | width: 100%; 138 | border-top: 2px solid rgba(20, 23, 26, 0.37); 139 | margin-bottom: 2.5vh; 140 | } 141 | 142 | .twt-img { 143 | position: absolute; 144 | left: 1vh; 145 | height: 100%; 146 | width: 100%; 147 | } 148 | 149 | .twt-img > img { 150 | width: 4vh; 151 | height: 4vh; 152 | border-radius: 50%; 153 | } 154 | 155 | .tweet-reply { 156 | position: absolute; 157 | right: 10px; 158 | bottom: 0; 159 | color: rgba(0, 0, 0, 0.8); 160 | transition: .05 linear; 161 | z-index: 100; 162 | pointer-events: all; 163 | } 164 | 165 | .tweet-reply:hover i { 166 | color: rgba(0, 0, 0, 1.0); 167 | } 168 | 169 | .tweet-tweeter { 170 | padding-left: 6vh; 171 | padding-top: .6vh; 172 | font-size: 1.1vh; 173 | } 174 | 175 | .tweet-tweeter > span { 176 | position: relative; 177 | font-size: 1.0vh; 178 | top: -.1vh; 179 | } 180 | 181 | .tweet-message { 182 | margin-top: .3vh; 183 | padding-left: 6vh; 184 | top: .5vh; 185 | font-size: 1.3vh; 186 | padding-bottom: 1vh; 187 | overflow-wrap: break-word; 188 | word-wrap: break-word; 189 | } 190 | 191 | .twitter-new-tweet { 192 | position: absolute; 193 | bottom: 0; 194 | top: 2%; 195 | right: -2%; 196 | width: 5.5vh; 197 | height: 5.5vh; 198 | margin: 2.2vh; 199 | z-index: 101; 200 | border-radius: 50%; 201 | text-align: center; 202 | transition: .2s; 203 | } 204 | 205 | .twitter-new-tweet > i:hover { 206 | color: rgb(201, 201, 201); 207 | } 208 | 209 | .twitter-new-tweet > i { 210 | line-height: 5.5vh; 211 | font-size: 2vh; 212 | color: white; 213 | } 214 | 215 | .twitter-new-tweet-tab { 216 | display: none; 217 | position: absolute; 218 | display: block; 219 | top: -100%; 220 | height: 100%; 221 | width: 100%; 222 | background: rgb(36, 36, 36); 223 | overflow: hidden; 224 | z-index: 105; 225 | } 226 | 227 | .twitter-new-tweet-header { 228 | position: relative; 229 | padding: 6vh 0 0 9vh; 230 | font-size: 2vh; 231 | color: white; 232 | } 233 | 234 | #tweet-new-message { 235 | position: absolute; 236 | border: none; 237 | height: 15vh; 238 | margin: 0 auto; 239 | left: 0; 240 | right: 0; 241 | color: white; 242 | background-color: rgba(23, 23, 23, 90%); 243 | outline: none; 244 | border: 2px solid #1DA1F2; 245 | resize: none; 246 | padding: 0.87vh; 247 | font-size: 1.4vh; 248 | top: 12vh; 249 | width: 22vh; 250 | border-radius: 7px; 251 | box-shadow: inset 0 0 2vh 0 rgba(0, 0, 0, 0.089); 252 | } 253 | 254 | #tweet-new-message::-webkit-scrollbar { 255 | display: none; 256 | } 257 | 258 | #tweet-new-message::placeholder { 259 | font-size: 1.4vh; 260 | } 261 | 262 | #tweet-new-url{ 263 | position: absolute; 264 | border: 2px solid #1DA1F2; 265 | height: 5vh; 266 | margin: 0 auto; 267 | left: 0; 268 | right: 0; 269 | color: white; 270 | background: rgba(23, 23, 23, 90%); 271 | outline: none; 272 | resize: none; 273 | padding: 0.87vh; 274 | font-size: 1.4vh; 275 | top: 30vh; 276 | width: 22vh; 277 | border-radius: 7px; 278 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 279 | } 280 | 281 | #tweet-new-url::-webkit-scrollbar { 282 | display: none; 283 | } 284 | 285 | .twitter-new-tweet-buttons { 286 | position: absolute; 287 | bottom: 40px; 288 | width: 100%; 289 | height: 5vh; 290 | color: white; 291 | } 292 | 293 | .twitter-new-tweet-button { 294 | position: relative; 295 | float: left; 296 | width: 33%; 297 | height: 100%; 298 | text-align: center; 299 | line-height: 4.5vh; 300 | font-size: 1.5vh; 301 | border-top: .3vh solid #6ab04c00; 302 | transition: .1s; 303 | } 304 | 305 | .twitter-new-tweet-button:hover { 306 | border-top: .3vh solid #1DA1F2; 307 | } 308 | 309 | .twitter-no-tweets { 310 | position: absolute; 311 | text-align: center; 312 | top: 4vh; 313 | width: 100%; 314 | font-size: 2vh; 315 | color: white; 316 | } 317 | 318 | .mentioned-tag { 319 | color: black; 320 | padding-bottom: .3vh; 321 | transition: .2s; 322 | } 323 | 324 | .hashtag-tag-text { 325 | color: black; 326 | padding-bottom: .3vh; 327 | transition: .2s; 328 | } 329 | 330 | .twitter-hashtag { 331 | position: relative; 332 | height: 7vh; 333 | width: 90%; 334 | top: 0px; 335 | border-radius: 7px; 336 | left: 15px; 337 | margin-bottom: 10px; 338 | background-color: rgb(27, 149, 224);; 339 | transition: all 0.2s ease 0s; 340 | } 341 | 342 | .twitter-hashtag-status{ 343 | position: absolute; 344 | top: .8vh; 345 | left: 1vh; 346 | font-size: 1.1vh; 347 | color: white; 348 | } 349 | 350 | .twitter-hashtag-tag { 351 | position: absolute; 352 | top: 2.5vh; 353 | left: 1vh; 354 | font-size: 1.4vh; 355 | color: white; 356 | } 357 | .twitter-hashtag-messages { 358 | position: absolute; 359 | bottom: .8vh; 360 | left: 1vh; 361 | font-size: 1.1vh; 362 | color: white; 363 | } 364 | .twitter-hashtags { 365 | position: absolute; 366 | display: block; 367 | width: 100%; 368 | } 369 | .twitter-hashtag-tweets { 370 | display: none; 371 | position: absolute; 372 | top: 0; 373 | left: 30; 374 | width: 100%; 375 | height: 40vh; 376 | overflow: hidden; 377 | overflow-y: scroll; 378 | overflow-x: hidden; 379 | } 380 | 381 | .twitter-hashtag-tweets::-webkit-scrollbar { 382 | width: .2vh; 383 | } 384 | 385 | .twitter-hashtag-tweets::-webkit-scrollbar-thumb { 386 | background-color: #1DA1F2; 387 | } 388 | 389 | .twitter-hashtag-tweets::-webkit-scrollbar-track { 390 | background-color: transparent; 391 | } -------------------------------------------------------------------------------- /html/js/mail.js: -------------------------------------------------------------------------------- 1 | var OpenedMail = null; 2 | 3 | $(document).on('click', '.mail', function(e){ 4 | e.preventDefault(); 5 | 6 | $(".mail-home").animate({ 7 | left: 30+"vh" 8 | }, 300); 9 | $(".opened-mail").animate({ 10 | left: 0+"vh" 11 | }, 300); 12 | 13 | var MailData = $("#"+$(this).attr('id')).data('MailData'); 14 | QB.Phone.Functions.SetupMail(MailData); 15 | 16 | OpenedMail = $(this).attr('id'); 17 | }); 18 | 19 | $(document).on('click', '.mail-back', function(e){ 20 | e.preventDefault(); 21 | 22 | $(".mail-home").animate({ 23 | left: 0+"vh" 24 | }, 300); 25 | $(".opened-mail").animate({ 26 | left: -30+"vh" 27 | }, 300); 28 | OpenedMail = null; 29 | }); 30 | 31 | $(document).on('click', '#accept-mail', function(e){ 32 | e.preventDefault(); 33 | var MailData = $("#"+OpenedMail).data('MailData'); 34 | $.post('https://qb-phone/AcceptMailButton', JSON.stringify({ 35 | buttonEvent: MailData.button.buttonEvent, 36 | buttonData: MailData.button.buttonData, 37 | mailId: MailData.mailid, 38 | })); 39 | $(".mail-home").animate({ 40 | left: 0+"vh" 41 | }, 300); 42 | $(".opened-mail").animate({ 43 | left: -30+"vh" 44 | }, 300); 45 | }); 46 | 47 | $(document).on('click', '#remove-mail', function(e){ 48 | e.preventDefault(); 49 | var MailData = $("#"+OpenedMail).data('MailData'); 50 | $.post('https://qb-phone/RemoveMail', JSON.stringify({ 51 | mailId: MailData.mailid 52 | })); 53 | $(".mail-home").animate({ 54 | left: 0+"vh" 55 | }, 300); 56 | $(".opened-mail").animate({ 57 | left: -30+"vh" 58 | }, 300); 59 | }); 60 | 61 | QB.Phone.Functions.SetupMails = function(Mails) { 62 | var NewDate = new Date(); 63 | var NewHour = NewDate.getHours(); 64 | var NewMinute = NewDate.getMinutes(); 65 | var Minutessss = NewMinute; 66 | var Hourssssss = NewHour; 67 | if (NewHour < 10) { 68 | Hourssssss = "0" + Hourssssss; 69 | } 70 | if (NewMinute < 10) { 71 | Minutessss = "0" + NewMinute; 72 | } 73 | var MessageTime = Hourssssss + ":" + Minutessss; 74 | 75 | $("#mail-header-mail").html(QB.Phone.Data.PlayerData.charinfo.firstname+"."+QB.Phone.Data.PlayerData.charinfo.lastname+"@millennium.com"); 76 | $("#mail-header-lastsync").html("Last synchronized "+MessageTime); 77 | if (Mails !== null && Mails !== undefined) { 78 | if (Mails.length > 0) { 79 | $(".mail-list").html(""); 80 | $.each(Mails, function(i, mail){ 81 | var date = new Date(mail.date); 82 | var DateString = date.getDay()+" "+MonthFormatting[date.getMonth()]+" "+date.getFullYear()+" "+date.getHours()+":"+date.getMinutes(); 83 | var element = '
    '+mail.sender+'

    '+mail.message+'

    '+DateString+'
    '; 84 | 85 | $(".mail-list").append(element); 86 | $("#mail-"+mail.mailid).data('MailData', mail); 87 | }); 88 | } else { 89 | $(".mail-list").html('

    You don\'t have any mails..

    '); 90 | } 91 | 92 | } 93 | } 94 | 95 | var MonthFormatting = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 96 | 97 | QB.Phone.Functions.SetupMail = function(MailData) { 98 | var date = new Date(MailData.date); 99 | var DateString = date.getDay()+" "+MonthFormatting[date.getMonth()]+" "+date.getFullYear()+" "+date.getHours()+":"+date.getMinutes(); 100 | $(".mail-subject").html("

    "+MailData.sender+"
    "+MailData.subject+"

    "); 101 | $(".mail-date").html("

    "+DateString+"

    "); 102 | $(".mail-content").html("

    "+MailData.message+"

    "); 103 | 104 | var AcceptElem = ''; 105 | var RemoveElem = ''; 106 | 107 | $(".opened-mail-footer").html(""); 108 | 109 | if (MailData.button !== undefined && MailData.button !== null) { 110 | $(".opened-mail-footer").append(AcceptElem); 111 | $(".opened-mail-footer").append(RemoveElem); 112 | $(".opened-mail-footer-item").css({"width":"50%"}); 113 | } else { 114 | $(".opened-mail-footer").append(RemoveElem); 115 | $(".opened-mail-footer-item").css({"width":"100%"}); 116 | } 117 | } 118 | 119 | // Advert JS 120 | 121 | $(document).on('click', '.test-slet', function(e){ 122 | e.preventDefault(); 123 | 124 | ClearInputNew() 125 | $('#advert-box-textt').fadeIn(350); 126 | }); 127 | 128 | $(document).on('click', '#advert-sendmessage-chat', function(e){ 129 | e.preventDefault(); 130 | 131 | var Advert = $(".advert-box-textt-input").val(); 132 | let picture = $('#advert-new-url').val(); 133 | 134 | if (Advert !== "") { 135 | $('#advert-box-textt').fadeOut(350); 136 | if (!picture){ 137 | $.post('https://qb-phone/PostAdvert', JSON.stringify({ 138 | message: Advert, 139 | url: null 140 | })); 141 | ClearInputNew() 142 | } 143 | } else { 144 | QB.Phone.Notifications.Add("fas fa-ad", "Advertisement", "You can\'t post an empty ad!", "#ff8f1a", 2000); 145 | } 146 | }); 147 | 148 | $(document).on('click','.advimage', function (){ 149 | let source = $(this).attr('src') 150 | QB.Screen.popUp(source); 151 | }); 152 | 153 | $(document).on('click','#new-advert-photo',function(e){ 154 | e.preventDefault(); 155 | $.post('https://qb-phone/TakePhoto',function(url){ 156 | if(url){ 157 | $('#advert-new-url').val(url) 158 | } 159 | }) 160 | QB.Phone.Functions.Close(); 161 | }); 162 | 163 | $(document).on('click', '#new-advert-back', function(e){ 164 | e.preventDefault(); 165 | 166 | $(".advert-home").animate({ 167 | left: 0+"vh" 168 | }); 169 | $(".new-advert").animate({ 170 | left: -30+"vh" 171 | }); 172 | }); 173 | 174 | $(document).on('click', '#new-advert-submit', function(e){ 175 | e.preventDefault(); 176 | var Advert = $(".new-advert-textarea").val(); 177 | let picture = $('#advert-new-url').val(); 178 | 179 | if (Advert !== "") { 180 | $(".advert-home").animate({ 181 | left: 0+"vh" 182 | }); 183 | $(".new-advert").animate({ 184 | left: -30+"vh" 185 | }); 186 | if (!picture){ 187 | $.post('https://qb-phone/PostAdvert', JSON.stringify({ 188 | message: Advert, 189 | url: null 190 | })); 191 | }else { 192 | $.post('https://qb-phone/PostAdvert', JSON.stringify({ 193 | message: Advert, 194 | url: picture 195 | })); 196 | } 197 | $('#advert-new-url').val("") 198 | $(".new-advert-textarea").val(""); 199 | } else { 200 | QB.Phone.Notifications.Add("fas fa-ad", "Advertisement", "You can\'t post an empty ad!", "#ff8f1a", 2000); 201 | } 202 | }); 203 | 204 | QB.Phone.Functions.RefreshAdverts = function(Adverts) { 205 | if (Adverts.length > 0 || Adverts.length == undefined) { 206 | $(".advert-list").html(""); 207 | $.each(Adverts, function(i, advert){ 208 | var clean = DOMPurify.sanitize(advert.message , { 209 | ALLOWED_TAGS: [], 210 | ALLOWED_ATTR: [] 211 | }); 212 | 213 | if (clean == '') { clean = 'I\'m a silly goose :/' } 214 | 215 | if (advert.url) { 216 | var element = ``; 217 | } else { 218 | var element = ``; 219 | } 220 | 221 | $(".advert-list").append(element); 222 | 223 | if (advert.number === QB.Phone.Data.PlayerData.charinfo.phone){ 224 | $(".advert").append('') 225 | } 226 | }); 227 | } else { 228 | $(".advert-list").html(""); 229 | var element = ''; 230 | $(".advert-list").append(element); 231 | } 232 | } 233 | 234 | $(document).on('click','#adv-delete',function(e){ 235 | e.preventDefault(); 236 | $.post('https://qb-phone/DeleteAdvert', function(){ 237 | setTimeout(function(){ 238 | QB.Phone.Notifications.Add("fas fa-ad", "Advertisement", "The ad was deleted", "#ff8f1a", 2000); 239 | },400) 240 | }); 241 | }) -------------------------------------------------------------------------------- /html/css/houses.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Lato&display=swap'); 2 | @import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro&display=swap'); 3 | 4 | .houses-app { 5 | display: none; 6 | height: 100%; 7 | width: 100%; 8 | background: #202731; 9 | overflow: hidden; 10 | } 11 | 12 | .houses-app-header { 13 | position: absolute; 14 | width: 100%; 15 | height: 5vh; 16 | top: 6vh; 17 | } 18 | 19 | .houses-app-header-tab { 20 | position: relative; 21 | float: left; 22 | width: 50%; 23 | height: 100%; 24 | text-align: center; 25 | line-height: 5vh; 26 | transition: .075s linear; 27 | } 28 | 29 | .houses-app-header-tab > p { 30 | font-size: 1.5vh; 31 | color: rgba(255, 255, 255, 0.5); 32 | transition: .075s linear; 33 | } 34 | 35 | .houses-app-header-tab-selected { 36 | border-bottom: .3vh solid #8ee074; 37 | } 38 | 39 | .houses-app-header-tab-selected > p { 40 | color: #ffffff; 41 | } 42 | 43 | .house-app-myhouses-container { 44 | position: absolute; 45 | width: 85%; 46 | height: 77%; 47 | margin: 0 auto; 48 | left: 0vw; 49 | right: 0; 50 | top: 12vh; 51 | overflow-x: hidden; 52 | overflow-y: scroll; 53 | } 54 | 55 | .house-app-myhouses-container::-webkit-scrollbar { 56 | display: none; 57 | } 58 | 59 | .house-app-mykeys-container { 60 | display: none; 61 | position: absolute; 62 | width: 85%; 63 | height: 77%; 64 | margin: 0 auto; 65 | left: 0vw; 66 | right: 0; 67 | top: 12vh; 68 | overflow-x: hidden; 69 | overflow-y: scroll; 70 | } 71 | 72 | .house-app-mykeys-container::-webkit-scrollbar { 73 | display: none; 74 | } 75 | 76 | .myhouses-house { 77 | position: relative; 78 | height: 7.5vh; 79 | width: 100%; 80 | transition: all 0.05s linear 0s; 81 | margin-bottom: 10px; 82 | background: #2c465f; 83 | border-radius: 0.15rem; 84 | box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; 85 | } 86 | 87 | .myhouses-house:hover { 88 | background-color: #0d1218c0; 89 | } 90 | 91 | .myhouse-house-icon { 92 | position: absolute; 93 | height: 100%; 94 | width: 25%; 95 | text-align: center; 96 | } 97 | 98 | .myhouse-house-icon > i { 99 | text-align: center; 100 | line-height: 7.5vh; 101 | color: white; 102 | font-size: 1.7vh; 103 | } 104 | 105 | .myhouse-house-titel { 106 | position: absolute; 107 | left: 5.5vh; 108 | top: 1.7vh; 109 | color: white; 110 | font-size: 1.2vh; 111 | } 112 | 113 | .myhouse-house-details { 114 | position: absolute; 115 | left: 5.5vh; 116 | bottom: 1.7vh; 117 | color: white; 118 | font-size: 1.3vh; 119 | } 120 | 121 | .myhouse-house-details > i { 122 | font-size: 1vh; 123 | } 124 | 125 | .myhouses-options-container { 126 | display: none; 127 | position: absolute; 128 | top: 0; 129 | height: 100%; 130 | width: 100%; 131 | background-color: rgba(0, 0, 0, 0.5); 132 | } 133 | 134 | .myhouses-options { 135 | position: absolute; 136 | width: 80%; 137 | height: 50%; 138 | margin: 0 auto; 139 | left: 0vw; 140 | right: 0; 141 | background-color: #202731; 142 | border-radius: .5vh; 143 | box-shadow: 144 | inset 0 0 1vh .2vh rgba(0, 0, 0, 0.281), 145 | 0 0 1vh .2vh rgba(0, 0, 0, 0.253); 146 | top: 15vh; 147 | } 148 | 149 | .myhouses-options-header { 150 | position: absolute; 151 | width: 100%; 152 | height: 5vh; 153 | color: rgb(255 255 255); 154 | text-align: center; 155 | line-height: 5vh; 156 | font-size: 1.8vh; 157 | border-bottom: .1vh solid rgba(0, 0, 0, 0.26); 158 | } 159 | 160 | .myhouses-option { 161 | position: relative; 162 | margin: 0 auto; 163 | margin-bottom: .8vh; 164 | width: 12vh; 165 | height: 5vh; 166 | color: white; 167 | font-size: 1.5vh; 168 | border-radius: .3vh; 169 | top: 6vh; 170 | box-shadow: inset 0 0 1vh .2vh rgba(0, 0, 0, 0.05); 171 | text-align: center; 172 | line-height: 5vh; 173 | transition: .05s linear; 174 | } 175 | 176 | #myhouse-option-transfer { 177 | background-color: #0097e6; 178 | } 179 | 180 | #myhouse-option-transfer:hover { 181 | background-color: #00a8ff; 182 | } 183 | 184 | #myhouse-option-keys { 185 | background-color: #e1b12c; 186 | } 187 | 188 | #myhouse-option-keys:hover { 189 | background-color: #fbc531; 190 | } 191 | 192 | #myhouse-option-close { 193 | background-color: #f5a15b; 194 | color: black; 195 | } 196 | 197 | #myhouse-option-close:hover { 198 | background-color: #c27e47; 199 | } 200 | 201 | #myhouse-option-transfer-back { 202 | background-color: #8ee074; 203 | } 204 | 205 | #myhouse-option-transfer-back:hover { 206 | background-color: #6cac59; 207 | } 208 | 209 | .myhouse-option-transfer-container { 210 | position: absolute; 211 | width: 80%; 212 | height: 50%; 213 | margin: 0 auto; 214 | left: 35vw; 215 | right: 0; 216 | background-color: #202731; 217 | border-radius: .5vh; 218 | box-shadow: 219 | inset 0 0 1vh .2vh rgba(0, 0, 0, 0.281), 220 | 0 0 1vh .2vh rgba(0, 0, 0, 0.253); 221 | top: 15vh; 222 | } 223 | 224 | .myhouse-option-keys-container { 225 | position: absolute; 226 | width: 80%; 227 | height: 50%; 228 | margin: 0 auto; 229 | left: 35vw; 230 | right: 0; 231 | background-color: #202731; 232 | border-radius: .5vh; 233 | box-shadow: 234 | inset 0 0 1vh .2vh rgba(0, 0, 0, 0.281), 235 | 0 0 1vh .2vh rgba(0, 0, 0, 0.253); 236 | top: 15vh; 237 | } 238 | 239 | .myhouse-option-transfer-container-header { 240 | position: absolute; 241 | width: 100%; 242 | height: 5vh; 243 | color: rgb(255 255 255); 244 | text-align: center; 245 | line-height: 5vh; 246 | font-size: 1.8vh; 247 | border-bottom: .1vh solid rgba(0, 0, 0, 0.26); 248 | } 249 | 250 | .myhouse-option-transfer-container-citizenid { 251 | position: absolute; 252 | margin: 0 auto; 253 | left: 0; 254 | right: 0; 255 | width: 80%; 256 | height: 5vh; 257 | top: 7.5vh; 258 | border: none; 259 | outline: none; 260 | font-size: 1.8vh; 261 | text-indent: 1vh; 262 | color: black; 263 | background: rgb(255 255 255 / 63%); 264 | border-bottom: .3vh solid #c0392b; 265 | transition: .05s linear; 266 | } 267 | 268 | .myhouse-option-transfer-container-citizenid:focus { 269 | border-bottom: .3vh solid #e67e22; 270 | } 271 | 272 | .myhouse-option-transfer-container-citizenid:valid { 273 | border-bottom: .3vh solid #27ae60; 274 | } 275 | 276 | 277 | #myhouse-option-keys-back { 278 | top: 22vh; 279 | background-color: #f5a15b; 280 | } 281 | 282 | #myhouse-option-keys-back:hover { 283 | background-color: #c27e47; 284 | } 285 | 286 | .keys-container { 287 | position: absolute; 288 | width: 20vh; 289 | height: 18vh; 290 | margin: 0 auto; 291 | left: 0; 292 | right: 0; 293 | top: 2vh; 294 | overflow-y: scroll; 295 | background-color: rgba(0, 0, 0, 0.1); 296 | } 297 | 298 | .keys-container::-webkit-scrollbar { 299 | display: none; 300 | } 301 | 302 | .house-key-holder { 303 | display: inline-block; 304 | max-width: 90%; 305 | white-space: nowrap; 306 | overflow: hidden !important; 307 | text-overflow: ellipsis; 308 | position: absolute; 309 | padding: 1.2vh; 310 | font-size: 1.5vh; 311 | color: white; 312 | } 313 | 314 | .house-key { 315 | position: relative; 316 | width: 100%; 317 | height: 4.5vh; 318 | background-color: rgba(0, 0, 0, 0.7); 319 | transition: .05s ease-in-out; 320 | } 321 | 322 | .house-key-delete { 323 | position: absolute; 324 | right: 0; 325 | padding: 1.2vh; 326 | padding-right: 1.5vh; 327 | font-size: 1.5vh; 328 | color: white; 329 | transition: .05s ease-in-out; 330 | } 331 | 332 | .house-key:hover { 333 | background-color: rgba(0, 0, 0, 0.8); 334 | } 335 | 336 | .house-key-delete:hover { 337 | color: rgb(201, 53, 53); 338 | } 339 | 340 | @-webkit-keyframes spaceboots { 341 | 0% { -webkit-transform: translate(2px, 1px) rotate(0deg); } 342 | 10% { -webkit-transform: translate(-1px, -2px) rotate(-1deg); } 343 | 20% { -webkit-transform: translate(-3px, 0px) rotate(1deg); } 344 | 30% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 345 | 40% { -webkit-transform: translate(1px, -1px) rotate(1deg); } 346 | 50% { -webkit-transform: translate(-1px, 2px) rotate(-1deg); } 347 | 60% { -webkit-transform: translate(-3px, 1px) rotate(0deg); } 348 | 70% { -webkit-transform: translate(2px, 1px) rotate(-1deg); } 349 | 80% { -webkit-transform: translate(-1px, -1px) rotate(1deg); } 350 | 90% { -webkit-transform: translate(2px, 2px) rotate(0deg); } 351 | 100% { -webkit-transform: translate(1px, -2px) rotate(-1deg); } 352 | } 353 | .shake { 354 | display: inline-block; 355 | -webkit-animation-name: spaceboots; 356 | -webkit-animation-duration: 0.4s; 357 | -moz-transform-origin: 50% 50%; 358 | -ms-transform-origin: 50% 50%; 359 | -o-transform-origin: 50% 50%; 360 | -webkit-transform-origin: 50% 50%; 361 | transform-origin: 50% 50%; 362 | -webkit-animation-iteration-count: infinite; 363 | -webkit-animation-timing-function: linear 364 | } 365 | 366 | .mykeys-key { 367 | position: relative; 368 | width: 100%; 369 | height: 7vh; 370 | margin-bottom: 10px; 371 | transition: 0.1s ease; 372 | background: #2c465f; 373 | border-radius: 0.15rem; 374 | box-shadow: 0rem 0rem 0.2rem 0.02rem #000000a6; 375 | } 376 | 377 | .mykeys-key:hover { 378 | background-color: #0d1218c0; 379 | } 380 | 381 | .mykeys-key-label { 382 | position: absolute; 383 | top: 0; 384 | left: 0; 385 | color: white; 386 | font-size: 1.3vh; 387 | margin: 1vh; 388 | } 389 | 390 | .mykeys-key-sub { 391 | position: absolute; 392 | bottom: 0; 393 | left: 0; 394 | color: white; 395 | font-size: 1.2vh; 396 | margin: 1vh; 397 | } 398 | -------------------------------------------------------------------------------- /html/js/bank.js: -------------------------------------------------------------------------------- 1 | var FoccusedBank = null; 2 | 3 | $(document).on('click', '.bank-app-account', function(e){ 4 | var copyText = document.getElementById("iban-account"); 5 | copyText.select(); 6 | copyText.setSelectionRange(0, 99999); 7 | document.execCommand("copy"); 8 | 9 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "Account number. copied!", "#badc58", 1750); 10 | }); 11 | 12 | var CurrentTab = "accounts"; 13 | 14 | $(document).on('click', '.bank-app-header-button', function(e){ 15 | e.preventDefault(); 16 | 17 | var PressedObject = this; 18 | var PressedTab = "invoices" 19 | 20 | if (CurrentTab != PressedTab) { 21 | var PreviousObject = $(".bank-app-header").find('[data-headertype="'+CurrentTab+'"]'); 22 | 23 | if (PressedTab == "invoices") { 24 | $(".bank-app-"+CurrentTab).animate({ 25 | left: -30+"vh" 26 | }, 1, function(){ 27 | $(".bank-app-"+CurrentTab).css({"display":"none"}) 28 | }); 29 | $(".bank-app-"+PressedTab).css({"display":"block"}).animate({ 30 | left: 0+"vh" 31 | }, 1); 32 | } else if (PressedTab == "accounts") { 33 | $(".bank-app-"+CurrentTab).animate({ 34 | left: 30+"vh" 35 | }, 250, function(){ 36 | $(".bank-app-"+CurrentTab).css({"display":"none"}) 37 | }); 38 | $(".bank-app-"+PressedTab).css({"display":"block"}).animate({ 39 | left: 0+"vh" 40 | }, 250); 41 | } 42 | 43 | $(PreviousObject).removeClass('bank-app-header-button-selected'); 44 | $(PressedObject).addClass('bank-app-header-button-selected'); 45 | setTimeout(function(){ CurrentTab = PressedTab; }, 300) 46 | } 47 | }) 48 | 49 | QB.Phone.Functions.DoBankOpen = function() { 50 | $(".bank-app-loaded").css({"display":"none", "padding-left":"30vh"}); 51 | $(".bank-app-accounts").css({"left":"30vh"}); 52 | $("#qbank-text").css({"opacity":"0.0", "left":"6vh"}); 53 | $(".bank-app-loading").css({ 54 | "display":"block", 55 | "left":"0vh", 56 | }); 57 | setTimeout(function(){ 58 | CurrentTab = "accounts"; 59 | setTimeout(function(){ 60 | $("#qbank-text").animate({ 61 | opacity: 1.0, 62 | }); 63 | }, 100); 64 | setTimeout(function(){ 65 | $(".bank-app-loaded").css({"display":"block"}).animate({"padding-left":"0"}, 300); 66 | $(".bank-app-accounts").animate({left:0+"vh"}, 300); 67 | $(".bank-app-loading").animate({ 68 | left: -30+"vh" 69 | },300, function(){ 70 | $(".bank-app-loading").css({"display":"none"}); 71 | }); 72 | }, 1500) 73 | }, 500) 74 | } 75 | 76 | $(document).on('click', '.bank-app-account-actions', function(e){ 77 | QB.Phone.Animations.TopSlideDown(".bank-app-transfer", 400, 0); 78 | }); 79 | 80 | $(document).on('click', '#cancel-transfer', function(e){ 81 | e.preventDefault(); 82 | 83 | QB.Phone.Animations.TopSlideUp(".bank-app-transfer", 400, -100); 84 | }); 85 | 86 | $(document).on('click', '#accept-transfer', function(e){ 87 | e.preventDefault(); 88 | 89 | var iban = $("#bank-transfer-iban").val(); 90 | var amount = $("#bank-transfer-amount").val(); 91 | var amountData = $(".bank-app-account-balance").data('balance'); 92 | 93 | if (iban != "" && amount != "") { 94 | $.post('https://qb-phone/CanTransferMoney', JSON.stringify({ 95 | sendTo: iban, 96 | amountOf: amount, 97 | }), function(data){ 98 | if (data.TransferedMoney) { 99 | $("#bank-transfer-iban").val(""); 100 | $("#bank-transfer-amount").val(""); 101 | 102 | $(".bank-app-account-balance").html("$ " + (data.NewBalance).toFixed(0)); 103 | $(".bank-app-account-balance").data('balance', (data.NewBalance).toFixed(0)); 104 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "You have transfered $ "+amount+"!", "#badc58", 1500); 105 | } else { 106 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "You don't have enough balance!", "#badc58", 1500); 107 | } 108 | QB.Phone.Animations.TopSlideUp(".bank-app-transfer", 400, -100); 109 | }); 110 | } else { 111 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "Fill out all fields!", "#badc58", 1750); 112 | } 113 | }); 114 | 115 | GetInvoiceLabel = function(type) { 116 | retval = null; 117 | if (type == "request") { 118 | retval = "Payment Request"; 119 | } 120 | 121 | return retval 122 | } 123 | 124 | $(document).on('click', '.pay-invoice', function(event){ 125 | event.preventDefault(); 126 | 127 | var InvoiceId = $(this).parent().parent().attr('id'); 128 | var InvoiceData = $("#"+InvoiceId).data('invoicedata'); 129 | var BankBalance = QB.Phone.Data.PlayerData.money.bank; 130 | 131 | if (BankBalance >= InvoiceData.amount) { 132 | $.post('https://qb-phone/PayInvoice', JSON.stringify({ 133 | sender: InvoiceData.sender, 134 | amount: InvoiceData.amount, 135 | society: InvoiceData.society, 136 | invoiceId: InvoiceData.id, 137 | senderCitizenId: InvoiceData.sendercitizenid 138 | }), function(CanPay){ 139 | if (CanPay) { 140 | $("#"+InvoiceId).animate({ 141 | left: 30+"vh", 142 | }, 300, function(){ 143 | setTimeout(function(){ 144 | $("#"+InvoiceId).remove(); 145 | }, 100); 146 | }); 147 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "You have paid $"+InvoiceData.amount+"!", "#badc58", 1500); 148 | var amountData = $(".bank-app-account-balance").data('balance'); 149 | var NewAmount = (amountData - InvoiceData.amount).toFixed(); 150 | $("#bank-transfer-amount").val(NewAmount); 151 | $(".bank-app-account-balance").data('balance', NewAmount); 152 | } else { 153 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "You don't have enough balance!", "#badc58", 1500); 154 | } 155 | }); 156 | } else { 157 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "You don't have enough balance!", "#badc58", 1500); 158 | } 159 | }); 160 | 161 | $(document).on('click', '.decline-invoice', function(event){ 162 | event.preventDefault(); 163 | var InvoiceId = $(this).parent().parent().attr('id'); 164 | var InvoiceData = $("#"+InvoiceId).data('invoicedata'); 165 | 166 | $.post('https://qb-phone/DeclineInvoice', JSON.stringify({ 167 | sender: InvoiceData.sender, 168 | amount: InvoiceData.amount, 169 | society: InvoiceData.society, 170 | invoiceId: InvoiceData.id, 171 | })); 172 | $("#"+InvoiceId).animate({ 173 | left: 30+"vh", 174 | }, 300, function(){ 175 | setTimeout(function(){ 176 | $("#"+InvoiceId).remove(); 177 | }, 100); 178 | }); 179 | }); 180 | 181 | QB.Phone.Functions.LoadBankInvoices = function(invoices) { 182 | if (invoices !== null) { 183 | $(".bank-app-invoices-list").html(""); 184 | $.each(invoices, function(i, invoice){ 185 | var Elem = '
    '+invoice.society+' (Sender: '+invoice.sender+')
    $ '+invoice.amount+'
    '; 186 | 187 | $(".bank-app-invoices-list").append(Elem); 188 | $("#invoiceid-"+i).data('invoicedata', invoice); 189 | }); 190 | } 191 | } 192 | 193 | QB.Phone.Functions.LoadContactsWithNumber = function(myContacts) { 194 | var ContactsObject = $(".bank-app-my-contacts-list"); 195 | $(ContactsObject).html(""); 196 | var TotalContacts = 0; 197 | 198 | $("#bank-app-my-contact-search").on("keyup", function() { 199 | var value = $(this).val().toLowerCase(); 200 | $(".bank-app-my-contacts-list .bank-app-my-contact").filter(function() { 201 | $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1); 202 | }); 203 | }); 204 | 205 | if (myContacts !== null) { 206 | $.each(myContacts, function(i, contact){ 207 | var RandomNumber = Math.floor(Math.random() * 6); 208 | var ContactColor = QB.Phone.ContactColors[RandomNumber]; 209 | var ContactElement = '
    '+((contact.name).charAt(0)).toUpperCase()+'
    '+contact.name+'
    ' 210 | TotalContacts = TotalContacts + 1 211 | $(ContactsObject).append(ContactElement); 212 | $("[data-bankcontactid='"+i+"']").data('contactData', contact); 213 | }); 214 | } 215 | }; 216 | 217 | $(document).on('click', '.bank-app-my-contacts-list-back', function(e){ 218 | e.preventDefault(); 219 | 220 | QB.Phone.Animations.TopSlideUp(".bank-app-my-contacts", 400, -100); 221 | }); 222 | 223 | $(document).on('click', '.bank-transfer-mycontacts-icon', function(e){ 224 | e.preventDefault(); 225 | 226 | QB.Phone.Animations.TopSlideDown(".bank-app-my-contacts", 400, 0); 227 | }); 228 | 229 | $(document).on('click', '.bank-app-my-contact', function(e){ 230 | e.preventDefault(); 231 | var PressedContactData = $(this).data('contactData'); 232 | 233 | if (PressedContactData.iban !== "" && PressedContactData.iban !== undefined && PressedContactData.iban !== null) { 234 | $("#bank-transfer-iban").val(PressedContactData.iban); 235 | } else { 236 | QB.Phone.Notifications.Add("fas fa-university", "Bank", "There is no bank account attached to this number!", "#badc58", 2500); 237 | } 238 | QB.Phone.Animations.TopSlideUp(".bank-app-my-contacts", 400, -100); 239 | }); -------------------------------------------------------------------------------- /html/js/lawyers.js: -------------------------------------------------------------------------------- 1 | SetupLawyers = function(data) { 2 | $(".lawyers-list").html(""); 3 | var lawyers = []; 4 | var realestate = []; 5 | var mechanic = []; 6 | var taxi = []; 7 | var ambulance = []; 8 | 9 | if (data.length > 0) { 10 | 11 | $.each(data, function(i, lawyer) { 12 | if (lawyer.typejob == "lawyer") { 13 | lawyers.push(lawyer); 14 | } 15 | if (lawyer.typejob == "realestate") { 16 | realestate.push(lawyer); 17 | } 18 | if (lawyer.typejob == "mechanic") { 19 | mechanic.push(lawyer); 20 | } 21 | if (lawyer.typejob == "taxi") { 22 | taxi.push(lawyer); 23 | } 24 | if (lawyer.typejob == "ambulance") { 25 | ambulance.push(lawyer); 26 | } 27 | }); 28 | 29 | $(".lawyers-list").append('

    Lawyers (' + lawyers.length + ')

    '); 30 | 31 | if (lawyers.length > 0) { 32 | $.each(lawyers, function(i, lawyer) { 33 | var element = '
    ' + (lawyer.name).charAt(0).toUpperCase() + '
    ' + lawyer.name + '
    ' 34 | $(".lawyers-list").append(element); 35 | $("#lawyerid-" + i).data('LawyerData', lawyer); 36 | }); 37 | } else { 38 | var element = '
    There are no lawyers available.
    ' 39 | $(".lawyers-list").append(element); 40 | } 41 | 42 | $(".lawyers-list").append('

    Real Estate (' + realestate.length + ')

    '); 43 | 44 | if (realestate.length > 0) { 45 | $.each(realestate, function(i, lawyer1) { 46 | var element = '
    ' + (lawyer1.name).charAt(0).toUpperCase() + '
    ' + lawyer1.name + '
    ' 47 | $(".lawyers-list").append(element); 48 | $("#lawyerid1-" + i).data('LawyerData', lawyer1); 49 | }); 50 | } else { 51 | var element = '
    There are no agents available.
    ' 52 | $(".lawyers-list").append(element); 53 | } 54 | 55 | $(".lawyers-list").append('

    Mechanic (' + mechanic.length + ')

    '); 56 | 57 | if (mechanic.length > 0) { 58 | $.each(mechanic, function(i, lawyer2) { 59 | var element = '
    ' + (lawyer2.name).charAt(0).toUpperCase() + '
    ' + lawyer2.name + '
    ' 60 | $(".lawyers-list").append(element); 61 | $("#lawyerid2-" + i).data('LawyerData', lawyer2); 62 | }); 63 | } else { 64 | var element = '
    There are no mechanics available.
    ' 65 | $(".lawyers-list").append(element); 66 | } 67 | 68 | $(".lawyers-list").append('

    Taxi (' + taxi.length + ')

    '); 69 | 70 | if (taxi.length > 0) { 71 | $.each(taxi, function(i, lawyer3) { 72 | var element = '
    ' + (lawyer3.name).charAt(0).toUpperCase() + '
    ' + lawyer3.name + '
    ' 73 | $(".lawyers-list").append(element); 74 | $("#lawyerid3-" + i).data('LawyerData', lawyer3); 75 | }); 76 | } else { 77 | var element = '
    There are no taxis available.
    ' 78 | $(".lawyers-list").append(element); 79 | } 80 | 81 | $(".lawyers-list").append('

    Ambulance (' + ambulance.length + ')

    '); 82 | 83 | if (ambulance.length > 0) { 84 | $.each(ambulance, function(i, lawyer5) { 85 | var element = '
    ' + (lawyer5.name).charAt(0).toUpperCase() + '
    ' + lawyer5.name + '
    ' 86 | $(".lawyers-list").append(element); 87 | $("#lawyerid5-" + i).data('LawyerData', lawyer5); 88 | }); 89 | } else { 90 | var element = '
    There are no EMS available.
    ' 91 | $(".lawyers-list").append(element); 92 | } 93 | } else { 94 | $(".lawyers-list").append('

    Lawyers (' + lawyers.length + ')

    '); 95 | 96 | var element = '
    There are no lawyers available.
    ' 97 | $(".lawyers-list").append(element); 98 | 99 | $(".lawyers-list").append('

    Real Estate (' + realestate.length + ')

    '); 100 | 101 | var element = '
    There are no agents available.
    ' 102 | $(".lawyers-list").append(element); 103 | 104 | $(".lawyers-list").append('

    Mechanic (' + mechanic.length + ')

    '); 105 | 106 | var element = '
    There are no mechanics available.
    ' 107 | $(".lawyers-list").append(element); 108 | 109 | $(".lawyers-list").append('

    Taxi (' + taxi.length + ')

    '); 110 | 111 | var element = '
    There are no taxis available.
    ' 112 | $(".lawyers-list").append(element); 113 | 114 | $(".lawyers-list").append('

    Ambulance (' + ambulance.length + ')

    '); 115 | 116 | var element = '
    There are no EMS available.
    ' 117 | $(".lawyers-list").append(element); 118 | } 119 | } 120 | 121 | $(document).on('click', '.lawyer-list-call', function(e){ 122 | e.preventDefault(); 123 | 124 | var LawyerData = $(this).parent().data('LawyerData'); 125 | 126 | var cData = { 127 | number: LawyerData.phone, 128 | name: LawyerData.name 129 | } 130 | 131 | $.post('https://qb-phone/CallContact', JSON.stringify({ 132 | ContactData: cData, 133 | Anonymous: QB.Phone.Data.AnonymousCall, 134 | }), function(status){ 135 | if (cData.number !== QB.Phone.Data.PlayerData.charinfo.phone) { 136 | if (status.IsOnline) { 137 | if (status.CanCall) { 138 | if (!status.InCall) { 139 | if (QB.Phone.Data.AnonymousCall) { 140 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "You started a anonymous call!"); 141 | } 142 | $(".phone-call-outgoing").css({"display":"block"}); 143 | $(".phone-call-incoming").css({"display":"none"}); 144 | $(".phone-call-ongoing").css({"display":"none"}); 145 | $(".phone-call-outgoing-caller").html(cData.name); 146 | QB.Phone.Functions.HeaderTextColor("white", 400); 147 | QB.Phone.Animations.TopSlideUp('.phone-application-container', 400, -160); 148 | setTimeout(function(){ 149 | $(".lawyers-app").css({"display":"none"}); 150 | QB.Phone.Animations.TopSlideDown('.phone-application-container', 400, 0); 151 | QB.Phone.Functions.ToggleApp("phone-call", "block"); 152 | }, 450); 153 | 154 | CallData.name = cData.name; 155 | CallData.number = cData.number; 156 | 157 | QB.Phone.Data.currentApplication = "phone-call"; 158 | } else { 159 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "You are already connected to a call!"); 160 | } 161 | } else { 162 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "This person is already in a call"); 163 | } 164 | } else { 165 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "This person is not available!"); 166 | } 167 | } else { 168 | QB.Phone.Notifications.Add("fas fa-phone", "Phone", "You can't call your own number!"); 169 | } 170 | }); 171 | }); 172 | -------------------------------------------------------------------------------- /html/css/mail.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .mail-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #202731; 8 | overflow: hidden; 9 | } 10 | 11 | .mail-home { 12 | position: relative; 13 | left: 0; 14 | } 15 | 16 | .mail-header { 17 | display: block; 18 | height: 14vh; 19 | width: 100%; 20 | background: #202731; 21 | } 22 | 23 | #mail-header-text { 24 | position: absolute; 25 | top: 5vh; 26 | left: 12vh; 27 | /* font-family: 'Roboto', sans-serif !important; */ 28 | font-size: 1.5vh; 29 | color: white; 30 | } 31 | 32 | #mail-header-mail { 33 | position: absolute; 34 | top: 7vh; 35 | left: 6vh; 36 | /* font-family: 'Roboto', sans-serif !important; */ 37 | font-size: 1.3vh; 38 | color: white; 39 | } 40 | 41 | #mail-header-lastsync { 42 | position: absolute; 43 | top: 10vh; 44 | right: 1.5vh; 45 | /* font-family: 'Roboto', sans-serif !important; */ 46 | font-size: 1vh; 47 | color: white; 48 | } 49 | 50 | .mail-list { 51 | position: absolute; 52 | width: 99%; 53 | height: 44.7vh; 54 | top: 12vh; 55 | left: .1vh; 56 | overflow-x: hidden !important; 57 | overflow-y: scroll; 58 | } 59 | 60 | .mail-list::-webkit-scrollbar { 61 | display: none; 62 | } 63 | 64 | .mail { 65 | position: relative; 66 | height: 7.5vh; 67 | width: 88%; 68 | left: 5.5%; 69 | margin-top: 2px; 70 | margin-bottom: 10px; 71 | transition: .05s ease-in-out; 72 | background: #2c465f; 73 | border-radius: 0.15rem; 74 | /* box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; */ 75 | } 76 | 77 | .mail:hover { 78 | background-color: #0d1218c0; 79 | transition: .05s ease-in-out; 80 | } 81 | 82 | .mail-sender { 83 | position: absolute; 84 | /* font-family: 'Roboto', sans-serif !important; */ 85 | font-size: 1.6vh; 86 | color: white; 87 | left: 0.5vh; 88 | top: 1vh; 89 | } 90 | 91 | .mail-text { 92 | position: absolute; 93 | top: 3.3vh; 94 | left: 0.5vh; 95 | /* font-family: 'Roboto', sans-serif !important; */ 96 | font-size: 1.15vh; 97 | color: white; 98 | max-width: 18vh; 99 | width: 16vh; 100 | } 101 | .mail-text > p { 102 | white-space: nowrap; 103 | display:inline-block; 104 | overflow: hidden; 105 | text-overflow: ellipsis; 106 | -webkit-line-clamp: 2; 107 | display: -webkit-box; 108 | -webkit-box-orient: vertical; 109 | white-space: normal; 110 | } 111 | 112 | .mail-time { 113 | position: absolute; 114 | /* font-family: 'Roboto', sans-serif !important; */ 115 | font-size: 1.1vh; 116 | color: white; 117 | right: 0.5vh; 118 | top: 0vh; 119 | } 120 | 121 | .opened-mail { 122 | position: absolute; 123 | height: 100%; 124 | width: 100%; 125 | background: #202731; 126 | overflow: hidden; 127 | top: 0; 128 | left: -30vh; 129 | } 130 | 131 | .opened-mail-header { 132 | display: block; 133 | height: 14vh; 134 | width: 100%; 135 | } 136 | 137 | .mail-back { 138 | position: absolute; 139 | top: 5.5vh; 140 | left: 1.9vh; 141 | } 142 | 143 | .mail-back > i { 144 | color: white; 145 | font-size: 2vh; 146 | transition: .05s ease-in-out; 147 | } 148 | 149 | .mail-back:hover #mail-back { 150 | color: #f5a15b; 151 | transition: .05s ease-in-out; 152 | } 153 | 154 | .mail-subject { 155 | position: absolute; 156 | color: white; 157 | top: 8vh; 158 | left: 2vh; 159 | /* font-family: 'Roboto', sans-serif !important; */ 160 | font-size: 1.8vh; 161 | max-width: 22vh; 162 | } 163 | 164 | .mail-subject > p { 165 | white-space: nowrap; 166 | overflow: hidden; 167 | text-overflow: ellipsis; 168 | } 169 | 170 | .mail-date { 171 | position: absolute; 172 | top: 13vh; 173 | left: 2vh; 174 | /* font-family: 'Roboto', sans-serif !important; */ 175 | font-size: 1.1vh; 176 | color: white; 177 | } 178 | 179 | .mail-spacing { 180 | position: absolute; 181 | width: 93%; 182 | background-color: white; 183 | height: .2vh; 184 | top: 15.5vh; 185 | margin: 0 auto; 186 | left: 0; 187 | right: 0; 188 | border-radius: 20vh; 189 | } 190 | 191 | .mail-content { 192 | position: absolute; 193 | height: calc(100% - 250px); 194 | top: 17.3vh; 195 | left: 2vh; 196 | /* font-family: 'Roboto', sans-serif !important; */ 197 | font-size: 1.3vh; 198 | color: white; 199 | max-width: 23vh; 200 | overflow-y: scroll; 201 | } 202 | .mail-content::-webkit-scrollbar { 203 | display: none; 204 | } 205 | .mail-content > p { 206 | white-space: nowrap; 207 | display:inline-block; 208 | overflow: hidden; 209 | text-overflow: ellipsis; 210 | -webkit-line-clamp: 100; 211 | display: -webkit-box; 212 | -webkit-box-orient: vertical; 213 | white-space: normal; 214 | } 215 | 216 | .opened-mail-footer { 217 | position: absolute; 218 | width: 100%; 219 | height: 4vh; 220 | bottom: 1%; 221 | } 222 | 223 | .opened-mail-footer-item { 224 | position: relative; 225 | width: 50%; 226 | height: 4vh; 227 | text-align: center; 228 | line-height: 4.3vh; 229 | color: white; 230 | font-size: 1.8vh; 231 | transition: .1s ease-in-out; 232 | float: left; 233 | } 234 | 235 | .opened-mail-footer-item:hover { 236 | color: #f5a15b; 237 | } 238 | 239 | .opened-mail-footer-item:hover .mail-icon { 240 | font-size: 1.9vh; 241 | transition: .1s ease-in-out; 242 | animation: Shake 1s infinite; 243 | } 244 | 245 | @keyframes Shake { 246 | 0% { 247 | transform: rotate(0deg); 248 | } 249 | 25% { 250 | transform: rotate(-5deg); 251 | } 252 | 50% { 253 | transform: rotate(5deg); 254 | } 255 | 75% { 256 | transform: rotate(-5deg); 257 | } 258 | 100% { 259 | transform: rotate(5deg); 260 | } 261 | } 262 | 263 | 264 | /* Advert App */ 265 | 266 | 267 | .advert-icon { 268 | /* margin-top: -0.1vh; */ 269 | margin-left: -0.1vh; 270 | width: 4.8vh; 271 | } 272 | 273 | .advert-app { 274 | display: none; 275 | height: 100%; 276 | width: 100%; 277 | background: #202731; 278 | overflow: hidden; 279 | } 280 | 281 | 282 | 283 | .advert-header { 284 | position: absolute; 285 | width: 100%; 286 | height: 10vh; 287 | top: 0; 288 | } 289 | 290 | #advert-header-text { 291 | position: absolute; 292 | top: 6vh; 293 | left: 8vh; 294 | /* font-family: 'Roboto', sans-serif !important; */ 295 | font-size: 1.8vh; 296 | color: white; 297 | } 298 | 299 | #advert-header-name { 300 | position: absolute; 301 | top: 9vh; 302 | left: 6vh; 303 | /* font-family: 'Roboto', sans-serif !important; */ 304 | font-size: 1.4vh; 305 | color: white; 306 | } 307 | 308 | .advert-list { 309 | position: absolute; 310 | width: 99%; 311 | height: 48.5vh; 312 | top: 8vh; 313 | left: .1vh; 314 | overflow-x: hidden !important; 315 | overflow-y: scroll; 316 | } 317 | 318 | .advert-list::-webkit-scrollbar { 319 | display: none; 320 | } 321 | .advert { 322 | position: relative; 323 | background-color: #fde755; 324 | height: auto; 325 | min-height: 4vh; 326 | width: 90%; 327 | transition: .05s ease-in-out; 328 | margin: 0 auto; 329 | margin-top: 2vh; 330 | margin-bottom: 2vh; 331 | border-radius: 2px; 332 | text-align: center; 333 | } 334 | 335 | .advert > p { 336 | margin-top: 1.5vh; 337 | /* font-family: 'Roboto', sans-serif !important; */ 338 | max-width: 25vh; 339 | color: black; 340 | font-weight: bolder; 341 | } 342 | 343 | .advert:hover { 344 | background-color: #c2b142; 345 | transition: .05s ease-in-out; 346 | } 347 | 348 | .advert-sender { 349 | position: relative; 350 | top: .8vh; 351 | color: black; 352 | font-weight: bolder; 353 | /* font-family: 'Roboto', sans-serif !important; */ 354 | font-size: 1.3vh; 355 | } 356 | 357 | .test-slet { 358 | position: absolute; 359 | width: 100%; 360 | height: 4.2vh; 361 | top: 3.5vh; 362 | transition: .1s ease-in-out; 363 | text-align: right; 364 | line-height: 4.2vh; 365 | font-size: 2.3vh; 366 | padding-right: 9%; 367 | color: white; 368 | /* background-color: rgb(36, 36, 36); */ 369 | } 370 | 371 | .test-slet:hover { 372 | transition: .1s ease-in-out; 373 | } 374 | 375 | .test-slet:hover .test-icon { 376 | color: #2c465f; 377 | transition: .1s ease-in-out; 378 | /* animation: Shake 1s infinite; */ 379 | } 380 | 381 | .new-advert { 382 | position: absolute; 383 | display: block; 384 | height: 100%; 385 | width: 100%; 386 | top: 0; 387 | background: rgb(36, 36, 36); 388 | overflow: hidden; 389 | left: -30vh; 390 | } 391 | 392 | .new-advert-footer { 393 | position: absolute; 394 | bottom: 50px; 395 | width: 100%; 396 | height: 5vh; 397 | } 398 | 399 | .new-advert-footer-item { 400 | position: relative; 401 | float: left; 402 | width: 33%; 403 | height: 100%; 404 | text-align: center; 405 | line-height: 5vh; 406 | font-size: 2.2vh; 407 | transition: .1s linear; 408 | color: white; 409 | } 410 | 411 | .new-advert-footer-item:hover { 412 | transition: .1s linear; 413 | } 414 | 415 | .new-advert-footer-item:hover .new-advert-icon { 416 | color: #ff8f1a; 417 | animation: Shake 1s infinite; 418 | } 419 | 420 | .new-advert-header { 421 | position: absolute; 422 | width: 100%; 423 | height: 10vh; 424 | top: 0; 425 | } 426 | 427 | #new-advert-header-text { 428 | position: absolute; 429 | top: 6vh; 430 | left: 6vh; 431 | /* font-family: 'Roboto', sans-serif !important; */ 432 | font-size: 1.8vh; 433 | color: white; 434 | } 435 | 436 | #advert-new-url{ 437 | position: absolute; 438 | height: 4vh; 439 | margin: 0 auto; 440 | left: 0; 441 | right: 0; 442 | background-color: rgba(23, 23, 23, 90%); 443 | outline: none; 444 | resize: none; 445 | /* font-family: 'Roboto', sans-serif !important; */ 446 | padding: 0.87vh; 447 | font-size: 1.4vh; 448 | top: 45vh; 449 | width: 22vh; 450 | border-radius: 7px; 451 | color: white; 452 | border: 2px solid rgb(255, 154, 46); 453 | } 454 | 455 | #advert-new-url::-webkit-scrollbar { 456 | display: none; 457 | } 458 | 459 | .new-advert-textarea { 460 | position: absolute; 461 | margin: 0 auto; 462 | left: 0; 463 | color: white; 464 | right: 0; 465 | top: 12vh; 466 | height: 30vh; 467 | width: 80%; 468 | outline: none; 469 | resize: none; 470 | border-radius: 7px; 471 | border: 2px solid rgb(255, 154, 46); 472 | background-color: rgba(23, 23, 23, 90%); 473 | padding: 1.5vh; 474 | /* font-family: 'Roboto', sans-serif !important; */ 475 | transition: .1s linear; 476 | } 477 | 478 | .advert-home { 479 | position: relative; 480 | left: 0; 481 | } 482 | 483 | .nomails { 484 | text-align: center; 485 | color: white; 486 | /* font-family: 'Roboto', sans-serif !important; */ 487 | font-size: 1.5vh; 488 | line-height: 20vh; 489 | } -------------------------------------------------------------------------------- /html/css/settings.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .settings-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #202731; 8 | overflow: hidden; 9 | } 10 | 11 | .settings-app-header { 12 | position: relative; 13 | font-family: 'Roboto', sans-serif !important; 14 | font-size: 3vh; 15 | text-align: center; 16 | top: 70px; 17 | color: white; 18 | } 19 | 20 | .settings-app-tab-appereance { 21 | position: absolute; 22 | top: 15vh; 23 | height: 100%; 24 | width: 100%; 25 | } 26 | 27 | .settings-app-tab-information { 28 | position: absolute; 29 | top: 30vh; 30 | height: 100%; 31 | width: 100%; 32 | } 33 | 34 | .settings-app-tab { 35 | position: relative; 36 | width: 88%; 37 | border-radius: 0.15rem; 38 | height: 6vh; 39 | margin-bottom: 10px; 40 | color: white; 41 | background: #2c465f; 42 | left: 5.5%; 43 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 44 | } 45 | 46 | .settings-app-tab:hover { 47 | background-color: #0d1218c0; 48 | transition: .2s ease; 49 | } 50 | 51 | .settings-app-tab-header { 52 | position: absolute; 53 | top: -2.5vh; 54 | height: 2.6vh; 55 | font-family: 'Roboto', sans-serif !important; 56 | font-size: 1.5vh; 57 | border-bottom: 1px solid rgba(0, 0, 0, 0.17); 58 | width: 100%; 59 | } 60 | 61 | .settings-app-tab-header > p { 62 | padding-left: 1vh; 63 | } 64 | 65 | .settings-tab-icon { 66 | position: absolute; 67 | left: 2vh; 68 | top: 1.5vh; 69 | font-size: 2.3vh; 70 | } 71 | 72 | .settings-tab-icon > img { 73 | position: absolute; 74 | width: 3.3vh; 75 | height: 3.3vh; 76 | border-radius: 50%; 77 | box-shadow: 0 0 .5vh 0 rgba(0, 0, 0, 0.05); 78 | margin-left: -.3vh; 79 | } 80 | 81 | .settings-tab-title { 82 | position: absolute; 83 | left: 6.2vh; 84 | top: 1.2vh; 85 | font-size: 1.3vh; 86 | font-family: 'Roboto', sans-serif !important; 87 | } 88 | 89 | .settings-tab-description { 90 | position: absolute; 91 | left: 6.2vh; 92 | top: 3.2vh; 93 | font-size: 1.2vh; 94 | font-family: 'Roboto', sans-serif !important; 95 | color: white; 96 | } 97 | 98 | .settings-background-tab { 99 | display: block; 100 | position: absolute; 101 | top: -100%; 102 | height: 100%; 103 | width: 100%; 104 | left: 0; 105 | right: 0; 106 | background: rgb(36, 36, 36); 107 | } 108 | 109 | .settings-profilepicture-tab { 110 | display: block; 111 | position: absolute; 112 | top: -100%; 113 | height: 100%; 114 | width: 100%; 115 | left: 0; 116 | right: 0; 117 | background: rgb(36, 36, 36); 118 | } 119 | 120 | .background-options { 121 | position: absolute; 122 | height: 50%; 123 | width: 100%; 124 | top: 13vh; 125 | } 126 | 127 | .background-option { 128 | position: relative; 129 | width: 90%; 130 | border-radius: 0.15rem; 131 | height: 6vh; 132 | margin-bottom: 10px; 133 | color: white; 134 | background: #2c465f; 135 | left: 15px; 136 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 137 | } 138 | 139 | .background-option:hover { 140 | background-color: #0d1218c0; 141 | transition: .2s ease; 142 | } 143 | 144 | .background-option-icon { 145 | position: absolute; 146 | height: 100%; 147 | width: 6vh; 148 | text-align: center; 149 | line-height: 7vh; 150 | font-size: 2.3vh; 151 | color: #fbc531; 152 | } 153 | 154 | .background-option-title { 155 | position: absolute; 156 | left: 6vh; 157 | top: 1.5vh; 158 | text-align: center; 159 | font-size: 1vh; 160 | color: white; 161 | font-size: 1.3vh; 162 | font-family: 'Roboto', sans-serif !important; 163 | } 164 | 165 | .background-option-description { 166 | position: absolute; 167 | left: 6vh; 168 | top: 3.6vh; 169 | text-align: center; 170 | font-size: 1vh; 171 | color: white; 172 | font-size: 1.1vh; 173 | font-family: 'Roboto', sans-serif !important; 174 | } 175 | 176 | .background-option-current { 177 | position: absolute; 178 | right: 3vh; 179 | top: 2.5vh; 180 | text-align: center; 181 | font-size: 1.6vh; 182 | color: green; 183 | font-family: 'Roboto', sans-serif !important; 184 | } 185 | 186 | .background-buttons { 187 | position: absolute; 188 | bottom: 40px; 189 | height: 5vh; 190 | width: 100%; 191 | } 192 | 193 | .background-button { 194 | position: relative; 195 | float: left; 196 | height: 100%; 197 | width: 50%; 198 | text-align: center; 199 | line-height: 4.7vh; 200 | color: white; 201 | font-family: 'Roboto', sans-serif !important; 202 | font-size: 1.5vh; 203 | transition: .05s; 204 | } 205 | 206 | .background-button:hover { 207 | border-top: .3vh solid #0d1218c0; 208 | } 209 | 210 | .background-custom { 211 | display: none; 212 | position: absolute; 213 | height: 40%; 214 | width: 80%; 215 | background-color: rgb(245, 245, 245); 216 | box-shadow: inset 0px 0px 5px 0px rgba(0, 0, 0, 0.247); 217 | margin: 0 auto; 218 | left: 0; 219 | right: 0; 220 | top: -23vh; 221 | border-radius: 2vh; 222 | overflow: hidden; 223 | } 224 | 225 | .background-custom-title { 226 | font-family: 'Roboto', sans-serif !important; 227 | padding: 2vh; 228 | font-size: 1.5vh; 229 | text-align: center; 230 | } 231 | 232 | .custom-background-input { 233 | position: absolute; 234 | left: 1vh; 235 | background: none; 236 | border: none; 237 | outline: none; 238 | height: 3.5vh; 239 | width: 21vh; 240 | font-family: 'Roboto', sans-serif !important; 241 | background: rgb(235, 235, 235); 242 | border-radius: 2vh; 243 | text-align: center; 244 | } 245 | 246 | .custom-background-input::placeholder { 247 | text-align: center; 248 | } 249 | 250 | .background-custom-buttons { 251 | position: absolute; 252 | bottom: 2vh; 253 | width: 100%; 254 | height: 5vh; 255 | } 256 | 257 | .custom-background-button { 258 | position: relative; 259 | float: left; 260 | height: 100%; 261 | width: 50%; 262 | text-align: center; 263 | line-height: 4.1vh; 264 | color: black; 265 | font-family: 'Roboto', sans-serif !important; 266 | font-size: 1.5vh; 267 | transition: .08s; 268 | border-bottom: 2px solid #e8421800; 269 | } 270 | 271 | .custom-background-button:hover { 272 | font-weight: bolder; 273 | color: #0d1218c0; 274 | } 275 | 276 | 277 | .profilepicture-options { 278 | position: absolute; 279 | height: 50%; 280 | width: 100%; 281 | top: 13vh; 282 | } 283 | 284 | .profilepicture-option { 285 | position: relative; 286 | width: 90%; 287 | border-radius: 0.15rem; 288 | height: 6vh; 289 | margin-bottom: 10px; 290 | color: white; 291 | background: #2c465f; 292 | left: 15px; 293 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 294 | } 295 | 296 | .profilepicture-option-icon { 297 | position: absolute; 298 | height: 100%; 299 | width: 6vh; 300 | text-align: center; 301 | line-height: 7vh; 302 | font-size: 2.3vh; 303 | color: #fbc531; 304 | } 305 | 306 | .profilepicture-option-title { 307 | position: absolute; 308 | left: 6vh; 309 | top: 1.5vh; 310 | text-align: center; 311 | font-size: 1vh; 312 | color: white; 313 | font-size: 1.3vh; 314 | font-family: 'Roboto', sans-serif !important; 315 | } 316 | 317 | .profilepicture-option-description { 318 | position: absolute; 319 | left: 6vh; 320 | top: 3.6vh; 321 | text-align: center; 322 | font-size: 1vh; 323 | color: white; 324 | font-size: 1.1vh; 325 | font-family: 'Roboto', sans-serif !important; 326 | } 327 | 328 | .profilepicture-option-current { 329 | position: absolute; 330 | right: 3vh; 331 | top: 2.5vh; 332 | text-align: center; 333 | font-size: 1.6vh; 334 | color: green; 335 | font-family: 'Roboto', sans-serif !important; 336 | } 337 | 338 | .profilepicture-buttons { 339 | position: absolute; 340 | bottom: 40px; 341 | height: 5vh; 342 | width: 100%; 343 | } 344 | 345 | .profilepicture-button { 346 | position: relative; 347 | float: left; 348 | height: 100%; 349 | width: 50%; 350 | text-align: center; 351 | line-height: 4.7vh; 352 | color: white; 353 | font-family: 'Roboto', sans-serif !important; 354 | font-size: 1.5vh; 355 | } 356 | 357 | .profilepicture-button:hover { 358 | border-top: .3vh solid #0d1218c0; 359 | } 360 | 361 | .profilepicture-custom { 362 | display: none; 363 | position: absolute; 364 | height: 40%; 365 | width: 80%; 366 | background-color: rgb(245, 245, 245); 367 | box-shadow: inset 0px 0px 5px 0px rgba(0, 0, 0, 0.247); 368 | margin: 0 auto; 369 | left: 0; 370 | right: 0; 371 | top: -23vh; 372 | border-radius: 2vh; 373 | overflow: hidden; 374 | } 375 | 376 | .profilepicture-custom-title { 377 | font-family: 'Roboto', sans-serif !important; 378 | padding: 2vh; 379 | font-size: 1.5vh; 380 | text-align: center; 381 | } 382 | 383 | .custom-profilepicture-input { 384 | position: absolute; 385 | left: 1vh; 386 | border: none; 387 | outline: none; 388 | height: 3.5vh; 389 | width: 21vh; 390 | font-family: 'Roboto', sans-serif !important; 391 | border-radius: 2vh; 392 | text-align: center; 393 | } 394 | 395 | .custom-profilepicture-input::placeholder { 396 | text-align: center; 397 | } 398 | 399 | .profilepicture-custom-buttons { 400 | position: absolute; 401 | bottom: 2vh; 402 | width: 100%; 403 | height: 5vh; 404 | } 405 | 406 | .custom-profilepicture-button { 407 | position: relative; 408 | float: left; 409 | height: 100%; 410 | width: 50%; 411 | text-align: center; 412 | line-height: 4.1vh; 413 | color: black; 414 | font-family: 'Roboto', sans-serif !important; 415 | font-size: 1.5vh; 416 | transition: .08s; 417 | border-bottom: 2px solid #e8421800; 418 | } 419 | 420 | .custom-profilepicture-button:hover { 421 | font-weight: bolder; 422 | color: #0d1218c0; 423 | } 424 | 425 | .switch { 426 | position: absolute; 427 | width: 50px; 428 | height: 24px; 429 | top: 50%; 430 | right: 2vh; 431 | transform: translateY(-50%); 432 | } 433 | 434 | .switch input { 435 | opacity: 0; 436 | width: 0; 437 | height: 0; 438 | } 439 | 440 | .slider { 441 | position: absolute; 442 | cursor: pointer; 443 | top: 0; 444 | left: 0; 445 | right: 0; 446 | bottom: 0; 447 | background-color: #ccc; 448 | -webkit-transition: .4s; 449 | transition: .4s; 450 | } 451 | 452 | .slider:before { 453 | position: absolute; 454 | content: ""; 455 | height: 16px; 456 | width: 16px; 457 | left: 4px; 458 | bottom: 4px; 459 | background-color: white; 460 | -webkit-transition: .4s; 461 | transition: .4s; 462 | } 463 | 464 | input:checked + .slider { 465 | background-color: #2196F3; 466 | } 467 | 468 | input:focus + .slider { 469 | box-shadow: 0 0 1px #2196F3; 470 | } 471 | 472 | input:checked + .slider:before { 473 | -webkit-transform: translateX(26px); 474 | -ms-transform: translateX(26px); 475 | transform: translateX(26px); 476 | } 477 | 478 | .slider.round { 479 | border-radius: 24px; 480 | } 481 | 482 | .slider.round:before { 483 | border-radius: 50%; 484 | } 485 | -------------------------------------------------------------------------------- /config.lua: -------------------------------------------------------------------------------- 1 | Config = Config or {} 2 | Config.BillingCommissions = { -- This is a percentage (0.10) == 10% 3 | mechanic = 0.10 4 | } 5 | Config.Linux = false -- True if linux 6 | Config.TweetDuration = 24 -- How many hours to load tweets (12 will load the past 12 hours of tweets) 7 | Config.RepeatTimeout = 2000 8 | Config.CallRepeats = 10 9 | Config.OpenPhone = 244 10 | Config.PhoneApplications = { 11 | ["details"] = { 12 | app = "details", 13 | color = "#5db9fc", 14 | color2 = "#008eff", 15 | icon = "fas fa-list", 16 | tooltipText = "Details", 17 | tooltipPos = "top", 18 | style = "font-size: 3.3vh"; 19 | job = false, 20 | blockedjobs = {}, 21 | slot = 1, 22 | Alerts = 0, 23 | }, 24 | ["phone"] = { 25 | app = "phone", 26 | color = "#51da80", 27 | color2 = "#009436", 28 | icon = "fas fa-phone-volume", 29 | tooltipText = "Phone", 30 | tooltipPos = "top", 31 | style = "font-size: 3.3vh"; 32 | job = false, 33 | blockedjobs = {}, 34 | slot = 3, 35 | Alerts = 0, 36 | }, 37 | ["whatsapp"] = { 38 | app = "whatsapp", 39 | color = "#8bfc76", 40 | color2 = "#18d016", 41 | icon = "fab fa-whatsapp", 42 | tooltipText = "Messages", 43 | tooltipPos = "top", 44 | style = "font-size: 3.3vh"; 45 | job = false, 46 | blockedjobs = {}, 47 | slot = 4, 48 | Alerts = 0, 49 | }, 50 | ["settings"] = { 51 | app = "settings", 52 | color = "#636e72", 53 | color2 = "#4c5558", 54 | icon = "fas fa-cog", 55 | tooltipText = "Settings", 56 | tooltipPos = "top", 57 | style = "padding-right: .08vh; font-size: 3.3vh"; 58 | job = false, 59 | blockedjobs = {}, 60 | slot = 2, 61 | Alerts = 0, 62 | }, 63 | ["ping"] = { 64 | app = "ping", 65 | color = "#6d10f5", 66 | color2 = "#4b67ef", 67 | icon = "fas fa-map-marker-alt", 68 | tooltipText = "Ping", 69 | tooltipPos = "top", 70 | style = "font-size: 3.3vh"; 71 | job = false, 72 | blockedjobs = {}, 73 | slot = 5, 74 | Alerts = 0, 75 | }, 76 | ["mail"] = { 77 | app = "mail", 78 | color = "#009ee5", 79 | color2 = "#87d9e7", 80 | icon = "fas fa-envelope", 81 | tooltipText = "Mail", 82 | style = "font-size: 3vh"; 83 | job = false, 84 | blockedjobs = {}, 85 | slot = 6, 86 | Alerts = 0, 87 | }, 88 | ["advert"] = { 89 | app = "advert", 90 | color = "#ffc900", 91 | color2 = "#f7c816", 92 | icon = "fas fa-bullhorn", 93 | tooltipText = "Advertisements", 94 | style = "font-size: 2vh"; 95 | job = false, 96 | blockedjobs = {}, 97 | slot = 7, 98 | Alerts = 0, 99 | }, 100 | ["twitter"] = { 101 | app = "twitter", 102 | color = "#151515", 103 | color2 = "#161616", 104 | icon = "fab fa-twitter", 105 | tooltipText = "Twitter", 106 | tooltipPos = "top", 107 | style = "color: #2cabe0; font-size: 3.3vh"; 108 | job = false, 109 | blockedjobs = {}, 110 | slot = 8, 111 | Alerts = 0, 112 | }, 113 | ["garage"] = { 114 | app = "garage", 115 | color = "#ff8077", 116 | color2 = "#bb345d", 117 | icon = "fas fa-car", 118 | tooltipText = "Vehicles", 119 | style = "font-size: 3.3vh"; 120 | job = false, 121 | blockedjobs = {}, 122 | slot = 9, 123 | Alerts = 0, 124 | }, 125 | ["debt"] = { 126 | app = "debt", 127 | color = "#fdfeff", 128 | color2 = "#d5e6fa", 129 | icon = "fas fa-ad", 130 | tooltipText = "Debt", 131 | job = false, 132 | blockedjobs = {}, 133 | slot = 10, 134 | Alerts = 0, 135 | }, 136 | ["wenmo"] = { 137 | app = "wenmo", 138 | color = "#151515", 139 | color2 = "#161616", 140 | icon = "fas fa-ad", 141 | tooltipText = "Wenmo", 142 | job = false, 143 | blockedjobs = {}, 144 | slot = 11, 145 | Alerts = 0, 146 | }, 147 | ["documents"] = { 148 | app = "documents", 149 | color = "#f15ac1", 150 | color2 = "#aa4edd", 151 | icon = "fas fa-sticky-note", 152 | tooltipText = "Notepad", 153 | style = "font-size: 3.3vh"; 154 | job = false, 155 | blockedjobs = {}, 156 | slot = 12, 157 | Alerts = 0, 158 | }, 159 | ["houses"] = { 160 | app = "houses", 161 | color = "#42a042", 162 | color2 = "#3f9e4a", 163 | icon = "fas fa-house-user", 164 | tooltipText = "Houses", 165 | style = "font-size: 3vh"; 166 | job = false, 167 | blockedjobs = {}, 168 | slot = 13, 169 | Alerts = 0, 170 | }, 171 | ["crypto"] = { 172 | app = "crypto", 173 | color = "#000000", 174 | color2 = "#000000", 175 | icon = "fab fa-bitcoin", 176 | tooltipText = "Crypto", 177 | style = "font-size: 2.7vh"; 178 | job = false, 179 | blockedjobs = {}, 180 | slot = 14, 181 | Alerts = 0, 182 | }, 183 | ["jobcenter"] = { 184 | app = "jobcenter", 185 | color = "#151515", 186 | color2 = "#161616", 187 | icon = "fas fa-id-badge", 188 | tooltipText = "Job Center", 189 | style = "color: #78bdfd; font-size: 2.7vh"; 190 | job = false, 191 | blockedjobs = {}, 192 | slot = 15, 193 | Alerts = 0, 194 | }, 195 | ["lsbn"] = { 196 | app = "lsbn", 197 | color = "#151515", 198 | color2 = "#161616", 199 | icon = "fas fa-ad", 200 | tooltipText = "LSBN", 201 | job = false, 202 | blockedjobs = {}, 203 | slot = 16, 204 | Alerts = 0, 205 | }, 206 | ["lawyers"] = { 207 | app = "lawyers", 208 | color = "#26d4ce", 209 | color2 = "#1e9c98", 210 | icon = "fas fa-briefcase", 211 | tooltipText = "Services", 212 | tooltipPos = "bottom", 213 | style = "font-size: 3vh"; 214 | job = false, 215 | blockedjobs = {}, 216 | slot = 17, 217 | Alerts = 0, 218 | }, 219 | ["casino"] = { 220 | app = "casino", 221 | color = "#000100", 222 | color2 = "#000100", 223 | icon = "fas fa-gem", 224 | tooltipText = "Casino", 225 | tooltipPos = "bottom", 226 | style = "font-size: 2.7vh"; 227 | job = false, 228 | blockedjobs = {}, 229 | slot = 18, 230 | Alerts = 0, 231 | }, 232 | ["calculator"] = { 233 | app = "calculator", 234 | color = "#f7f7f7", 235 | color2 = "#f7f7f7", 236 | icon = "fas fa-calculator", 237 | tooltipText = "Calculator", 238 | tooltipPos = "bottom", 239 | style = "font-size: 2.5vh"; 240 | job = false, 241 | blockedjobs = {}, 242 | slot = 19, 243 | Alerts = 0, 244 | }, 245 | ["gallery"] = { 246 | app = "gallery", 247 | color = "#189ec0", 248 | color2 = "#14819c", 249 | icon = "fas fa-images", 250 | tooltipText = "Gallery", 251 | tooltipPos = "bottom", 252 | style = "font-size: 2.7vh"; 253 | job = false, 254 | blockedjobs = {}, 255 | slot = 20, 256 | Alerts = 0, 257 | }, 258 | ["bank"] = { 259 | app = "bank", 260 | color = "#9c88ff", 261 | color2 = "#8070d5", 262 | icon = "fas fa-file-contract", 263 | tooltipText = "Invoices", 264 | style = "font-size: 2.7vh"; 265 | job = false, 266 | blockedjobs = {}, 267 | slot = 21, 268 | Alerts = 0, 269 | }, 270 | ["racing"] = { 271 | app = "racing", 272 | color = "#353b48", 273 | color2 = "#242830", 274 | icon = "fas fa-flag-checkered", 275 | tooltipText = "Racing", 276 | style = "font-size: 3vh"; 277 | job = false, 278 | blockedjobs = {}, 279 | slot = 22, 280 | Alerts = 0, 281 | }, 282 | -- ["employment"] = { 283 | -- app = "employment", 284 | -- color = "#151515", 285 | -- color2 = "#161616", 286 | -- icon = "fas fa-ad", 287 | -- tooltipText = "Employment", 288 | -- job = false, 289 | -- blockedjobs = {}, 290 | -- slot = 23, 291 | -- Alerts = 0, 292 | -- }, 293 | -- ["meos"] = { 294 | -- app = "meos", 295 | -- color = "#004682", 296 | -- color2 = "#00325c", 297 | -- icon = "fas fa-ad", 298 | -- tooltipText = "MDT", 299 | -- job = "police", 300 | -- blockedjobs = {}, 301 | -- slot = 24, 302 | -- Alerts = 0, 303 | -- }, 304 | 305 | 306 | 307 | 308 | 309 | 310 | -- ["mybank"] = { 311 | -- app = "mybank", 312 | -- color = "#a9fd78", 313 | -- color2 = "#86c95f", 314 | -- icon = "fas fa-dollar-sign", 315 | -- tooltipText = "My Bank", 316 | -- style = "color: black; font-size: 2.7vh"; 317 | -- job = false, 318 | -- blockedjobs = {}, 319 | -- slot = 23, 320 | -- Alerts = 0, 321 | -- }, 322 | -- ["camera"] = { 323 | -- app = "camera", 324 | -- color = "#AC1D2C", 325 | -- color2 = "#25d366", 326 | -- icon = "fas fa-camera", 327 | -- tooltipText = "Camera", 328 | -- tooltipPos = "bottom", 329 | -- job = false, 330 | -- blockedjobs = {}, 331 | -- slot = 24, 332 | -- Alerts = 0, 333 | -- }, 334 | } 335 | Config.MaxSlots = 28 336 | 337 | Config.StoreApps = { 338 | ["territory"] = { 339 | app = "territory", 340 | color = "#353b48", 341 | icon = "fas fa-globe-europe", 342 | tooltipText = "Territorium", 343 | tooltipPos = "right", 344 | style = ""; 345 | job = false, 346 | blockedjobs = {}, 347 | slot = 17, 348 | Alerts = 0, 349 | password = true, 350 | creator = "QBCore", 351 | title = "Territory", 352 | }, 353 | } 354 | 355 | Config.JobCenter = { 356 | [1] = { 357 | job = "trucker", 358 | label = "Trucker", 359 | Coords = {153.63, -3214.39}, 360 | }, 361 | [2] = { 362 | job = "taxi", 363 | label = "Taxi Driver", 364 | Coords = {904.16, -166.02}, 365 | }, 366 | [3] = { 367 | job = "tow", 368 | label = "Towing", 369 | Coords = {-155.1, -1158.82}, 370 | }, 371 | [4] = { 372 | job = "reporter", 373 | label = "News Reporter", 374 | Coords = {-599.23, -926.73}, 375 | }, 376 | [5] = { 377 | job = "garbage", 378 | label = "Trash Collector", 379 | Coords = {-322.19, -1545.84}, 380 | }, 381 | [6] = { 382 | job = "bus", 383 | label = "Bus Driver", 384 | Coords = {449.73, -651.09}, 385 | }, 386 | [7] = { 387 | job = "lumberjack", 388 | label = "Logger", 389 | Coords = {-566.04, 5325.02}, 390 | }, 391 | [8] = { 392 | job = "farmer", 393 | label = "Farmer", 394 | Coords = {418.5, 6471.33}, 395 | }, 396 | } -------------------------------------------------------------------------------- /html/css/bank.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200&display=swap'); 2 | 3 | .bank-app { 4 | display: none; 5 | height: 100%; 6 | width: 100%; 7 | background: #202731; 8 | overflow: hidden; 9 | } 10 | 11 | .bank-app-header { 12 | position: absolute; 13 | width: 100%; 14 | height: 6vh; 15 | top: 6vh; 16 | } 17 | 18 | .bank-app-header-button { 19 | position: relative; 20 | float: left; 21 | width: 100%; 22 | height: 100%; 23 | text-align: center; 24 | line-height: 6vh; 25 | font-family: 'Roboto', sans-serif !important; 26 | color: white; 27 | transition: .08s; 28 | } 29 | 30 | .bank-app-header-button-selected { 31 | border-bottom: .3vh solid #8ee074; 32 | } 33 | .bank-app-header-button > i { 34 | position: absolute; 35 | margin: 0 auto; 36 | left: 0; 37 | right: 0; 38 | top: .9vh; 39 | font-size: 2vh; 40 | } 41 | .bank-app-header-button > p { 42 | position: absolute; 43 | margin: 0 auto; 44 | left: 0; 45 | right: 0; 46 | top: 1.4vh; 47 | font-size: 1.25vh; 48 | } 49 | 50 | .bank-app-accounts { 51 | display: block; 52 | position: absolute; 53 | width: 100%; 54 | height: 70%; 55 | top: 13vh; 56 | left: 30vh; 57 | } 58 | .bank-app-invoices { 59 | display: block; 60 | position: absolute; 61 | width: 100%; 62 | height: 37vh; 63 | top: 13vh; 64 | left: 30vh; 65 | } 66 | .bank-app-invoices-list { 67 | position: absolute; 68 | top: 0; 69 | height: 100%; 70 | width: 100%; 71 | overflow-y: scroll; 72 | overflow-x: hidden; 73 | } 74 | .bank-app-invoices-list::-webkit-scrollbar { 75 | width: .5vh; 76 | background-color: #8ee074; 77 | } 78 | .bank-app-invoice { 79 | position: relative; 80 | height: 6vh; 81 | width: 100%; 82 | letter-spacing: .05vh; 83 | border-bottom: .2vh solid #363d4b; 84 | } 85 | .bank-app-invoice-title { 86 | text-transform : capitalize; 87 | position: absolute; 88 | top: 1vh; 89 | left: 2vh; 90 | color: white; 91 | font-family: 'Roboto', sans-serif !important; 92 | font-size: 1.3vh; 93 | } 94 | .bank-app-invoice-amount { 95 | position: absolute; 96 | bottom: 1vh; 97 | left: 2vh; 98 | color: rgba(255, 255, 255, 0.781); 99 | font-family: 'Roboto', sans-serif !important; 100 | font-size: 1.22vh; 101 | } 102 | .bank-app-invoice-buttons { 103 | position: absolute; 104 | right: 1.2vh; 105 | bottom: .1vh; 106 | height: 3vh; 107 | width: 7vh; 108 | text-align: center; 109 | line-height: 3.5vh; 110 | } 111 | .bank-app-invoice-buttons > i { 112 | margin-left: .5vh; 113 | margin-right: .5vh; 114 | font-size: 2vh; 115 | } 116 | .pay-invoice { 117 | color: #4cd137; 118 | transition: .1s; 119 | } 120 | .pay-invoice:hover { 121 | color: #70f75b; 122 | } 123 | .decline-invoice { 124 | color: #e84118; 125 | transition: .1s; 126 | } 127 | .decline-invoice:hover { 128 | color: #ff5f38; 129 | } 130 | .bank-app-transfer { 131 | display: none; 132 | position: absolute; 133 | width: 100%; 134 | height: 100%; 135 | background-color: rgb(36, 36, 36); 136 | top: -100%; 137 | z-index: 500; 138 | } 139 | .bank-app-account { 140 | position: absolute; 141 | background-color: rgba(23, 23, 23, 90%); 142 | height: 9.5vh; 143 | width: 80%; 144 | margin: 0px auto; 145 | left: 0px; 146 | right: 0px; 147 | top: 1.5vh; 148 | transition: all 0.1s ease 0s; 149 | border-radius: 0.15rem; 150 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 151 | } 152 | .bank-app-account:hover{ 153 | background-color: #8ee074; 154 | transition: .5s ease; 155 | } 156 | .bank-app-account-title { 157 | position: absolute; 158 | top: 1vh; 159 | left: 1vh; 160 | font-family: 'Roboto', sans-serif !important; 161 | letter-spacing: .1vh; 162 | color: white; 163 | font-size: 1.1vh; 164 | } 165 | .bank-app-account-number { 166 | position: absolute; 167 | top: 3vh; 168 | left: 1vh; 169 | font-family: 'Roboto', sans-serif !important; 170 | letter-spacing: .1vh; 171 | width: 100%; 172 | color: white; 173 | font-size: 1.1vh; 174 | background: transparent; 175 | outline: none; 176 | border: none; 177 | } 178 | .bank-app-account-number::selection { 179 | background: transparent; 180 | outline: none; 181 | border: none; 182 | color: white; 183 | } 184 | .bank-app-account-balance { 185 | position: absolute; 186 | top: 6.5vh; 187 | left: 1vh; 188 | font-family: 'Roboto', sans-serif !important; 189 | letter-spacing: .1vh; 190 | color: white; 191 | font-size: 1.5vh; 192 | } 193 | .bank-app-account-actions { 194 | text-align: center; 195 | color: white; 196 | margin: 0px auto; 197 | bottom: 2.5vh; 198 | height: 5vh; 199 | width: 80%; 200 | right: 0px; 201 | left: 0px; 202 | line-height: 5vh; 203 | font-size: 2.5vh; 204 | position: absolute; 205 | transition: all 0.1s ease 0s; 206 | background: rgba(23, 23, 23, 90%); 207 | border-radius: 0.15rem; 208 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 209 | } 210 | 211 | .bank-app-account-actions:hover { 212 | background-color: #8ee074; 213 | transition: .5s ease; 214 | } 215 | .bank-app-loaded { 216 | display: none; 217 | padding-left: 30vh; 218 | } 219 | .bank-app-loading { 220 | position: absolute; 221 | top: 0; 222 | left: 0vh; 223 | display: block; 224 | height: 100%; 225 | width: 100%; 226 | overflow: hidden; 227 | } 228 | .qbank-logo { 229 | position: absolute; 230 | width: 10vh; 231 | margin: 0 auto; 232 | left: 0vh; 233 | right: 0; 234 | top: 22vh; 235 | z-index: 101; 236 | } 237 | #qbank-text { 238 | position: absolute; 239 | top: 24vh; 240 | left: 9vh; 241 | font-size: 4.5vh; 242 | color: white; 243 | font-family: 'Roboto', sans-serif !important; 244 | z-index: 100; 245 | opacity: 0; 246 | } 247 | 248 | .bank-app-transfer-header { 249 | position: absolute; 250 | top: 5.5vh; 251 | left: 6vh; 252 | color: white; 253 | font-family: 'Roboto', sans-serif !important; 254 | font-size: 2vh; 255 | } 256 | 257 | #bank-transfer-iban { 258 | position: absolute; 259 | top: 12vh; 260 | left: 8vh; 261 | background: none; 262 | border: none; 263 | outline: none; 264 | border-bottom: 2px solid #f5f6fa; 265 | font-family: 'Roboto', sans-serif !important; 266 | height: 3.5vh; 267 | width: 18vh; 268 | text-indent: .4vh; 269 | transition: .1s; 270 | font-size: 1.3vh; 271 | color: white; 272 | } 273 | #bank-transfer-iban::-webkit-inner-spin-button { 274 | display: none; 275 | } 276 | #bank-transfer-iban:focus { 277 | border-bottom: 2px solid #fbc531; 278 | } 279 | #bank-transfer-iban:valid { 280 | border-bottom: 2px solid #6ab04c; 281 | } 282 | #bank-transfer-amount { 283 | position: absolute; 284 | top: 18vh; 285 | left: 8vh; 286 | background: none; 287 | border: none; 288 | outline: none; 289 | border-bottom: 2px solid #f5f6fa; 290 | font-family: 'Roboto', sans-serif !important; 291 | height: 3.5vh; 292 | width: 18vh; 293 | text-indent: .4vh; 294 | transition: .1s; 295 | font-size: 1.3vh; 296 | color: white; 297 | } 298 | #bank-transfer-amount::-webkit-inner-spin-button { 299 | display: none; 300 | } 301 | 302 | #bank-transfer-amount:focus { 303 | border-bottom: 2px solid #fbc531; 304 | } 305 | 306 | #bank-transfer-amount:valid { 307 | border-bottom: 2px solid #6ab04c; 308 | } 309 | .bank-transfer-iban-icon { 310 | position: absolute; 311 | top: 13.5vh; 312 | left: 3.4vh; 313 | font-size: 2.1vh; 314 | color: white 315 | } 316 | .bank-transfer-amount-icon { 317 | position: absolute; 318 | top: 19.2vh; 319 | left: 3.5vh; 320 | font-size: 2.4vh; 321 | color: white 322 | } 323 | .bank-transfer-mycontacts-icon { 324 | position: absolute; 325 | top: 25.5vh; 326 | left: 3.5vh; 327 | font-size: 2.2vh; 328 | color: white 329 | } 330 | .bank-transfer-mycontacts-icon:hover { 331 | color: #fbc531; 332 | } 333 | .bank-app-transfer-buttons { 334 | position: absolute; 335 | bottom: 40px; 336 | height: 5vh; 337 | width: 100%; 338 | } 339 | .bank-app-transfer-button { 340 | position: relative; 341 | float: left; 342 | width: 50%; 343 | height: 100%; 344 | text-align: center; 345 | line-height: 4.5vh; 346 | font-family: 'Roboto', sans-serif !important; 347 | color: white; 348 | font-size: 1.4vh; 349 | transition: .1s; 350 | } 351 | .bank-app-transfer-button:hover { 352 | border-top: .2vh solid #8ee074; 353 | } 354 | .bank-app-my-contacts { 355 | display: none; 356 | position: absolute; 357 | height: 100%; 358 | width: 100%; 359 | top: -100%; 360 | background: rgb(36, 36, 36); 361 | z-index: 500; 362 | } 363 | 364 | .bank-app-my-contacts::-webkit-scrollbar { 365 | display: none; 366 | } 367 | 368 | .bank-app-my-contacts-list::-webkit-scrollbar { 369 | display: none; 370 | } 371 | 372 | .bank-app-my-contacts-header { 373 | position: relative; 374 | padding: 5vh 0 0 8vh; 375 | font-family: 'Roboto', sans-serif !important; 376 | font-size: 2vh; 377 | color: white; 378 | } 379 | .bank-app-my-contacts-list { 380 | position: absolute; 381 | height: 65%; 382 | width: 75%; 383 | margin: 0 auto; 384 | left: 0; 385 | right: 0; 386 | top: 14vh; 387 | overflow-y: scroll; 388 | } 389 | .bank-app-my-contact { 390 | position: relative; 391 | width: 98%; 392 | left: 2px; 393 | height: 4.5vh; 394 | transition: all 0.1s ease 0s; 395 | background: rgba(23, 23, 23, 90%); 396 | border-radius: 0.15rem; 397 | margin-top: 2px; 398 | margin-bottom: 10px; 399 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 400 | } 401 | .bank-app-my-contact:hover { 402 | background-color: #727e94; 403 | } 404 | .bank-app-my-contact-firstletter { 405 | position: absolute; 406 | background-color: #eb4d4b; 407 | height: 3.5vh; 408 | width: 3.5vh; 409 | margin: .4vh; 410 | margin-left: .35vh; 411 | text-align: center; 412 | line-height: 3.6vh; 413 | border-radius: 50%; 414 | font-family: 'Roboto', sans-serif !important; 415 | color: white; 416 | } 417 | .bank-app-my-contact-name { 418 | position: absolute; 419 | left: 5vh; 420 | line-height: 4.5vh; 421 | font-family: 'Roboto', sans-serif !important; 422 | font-size: 1.4vh; 423 | color: white; 424 | } 425 | .bank-app-my-contacts-list-header { 426 | position: absolute; 427 | top: 8.5vh; 428 | height: 5vh; 429 | width: 100%; 430 | } 431 | #bank-app-my-contact-search { 432 | position: absolute; 433 | border: none; 434 | top: 1.2vh; 435 | width: 17vh; 436 | margin: 0px auto; 437 | left: 0px; 438 | right: 0px; 439 | color: white; 440 | opacity: 1; 441 | height: 2.5vh; 442 | border-radius: 1vh; 443 | font-family: Poppins, sans-serif; 444 | outline: none; 445 | text-indent: 1vh; 446 | z-index: 100; 447 | background: rgba(23, 23, 23, 90%); 448 | border-radius: 0.15rem; 449 | box-shadow: 0rem 0rem 0.1rem 0.05rem #000000; 450 | } 451 | #bank-app-my-contact-search::placeholder{ 452 | font-family: 'Roboto', sans-serif !important; 453 | } 454 | .bank-app-my-contacts-list-back { 455 | position: absolute; 456 | bottom: 40px; 457 | width: 100%; 458 | height: 5vh; 459 | text-align: center; 460 | line-height: 5vh; 461 | text-transform: uppercase; 462 | color: white; 463 | font-family: 'Roboto', sans-serif !important; 464 | font-size: 1.4vh; 465 | transition: .1s; 466 | } 467 | .bank-app-my-contacts-list-back:hover { 468 | border-top: 2px solid #eb4d4b; 469 | } 470 | --------------------------------------------------------------------------------