├── 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 = '
'
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+' '+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 = `${advert.name} | ${advert.number}${clean}
`;
217 | } else {
218 | var element = `${advert.name} | ${advert.number}${clean}
`;
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 = 'There are no advertisements yet!
';
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 = ''
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 |
--------------------------------------------------------------------------------