diff --git a/ReallifeGamemode.Client/Player/reportmenu.ts b/ReallifeGamemode.Client/Player/reportmenu.ts new file mode 100644 index 00000000..3858bb1e --- /dev/null +++ b/ReallifeGamemode.Client/Player/reportmenu.ts @@ -0,0 +1,179 @@ +import * as NativeUI from 'NativeUI'; +import jailList from './criminalrelease'; +import InputHelper from '../inputhelper'; + +const Menu = NativeUI.Menu; +const UIMenuItem = NativeUI.UIMenuItem; +const UIMenuListItem = NativeUI.UIMenuListItem; +const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem; +const BadgeStyle = NativeUI.BadgeStyle; +const Point = NativeUI.Point; +const ItemsCollection = NativeUI.ItemsCollection; +const Color = NativeUI.Color; + +let screenRes = mp.game.graphics.getScreenResolution(0, 0); + +let deleteItem = new UIMenuItem("Entfernen", "Entfernt das Ticket aus der Liste"); +deleteItem.BackColor = new Color(42, 46, 49); +let saveItem = new UIMenuItem("Annehmen", "Starte direkten Chat mit dem User"); +saveItem.BackColor = new Color(13, 71, 161); +saveItem.HighlightedBackColor = new Color(25, 118, 210); + +let sendItem = new UIMenuItem("Annehmen", "Sende Report an alle Admins"); +sendItem.BackColor = new Color(13, 71, 161); +sendItem.HighlightedBackColor = new Color(25, 118, 210); + +let cancelItem = new UIMenuItem("Abbrechen", ""); +cancelItem.BackColor = new Color(213, 0, 0); +cancelItem.HighlightedBackColor = new Color(229, 57, 53); + +export default function reportList(globalData: GlobalData) { + + var reportMenu: NativeUI.Menu; + + var users; + var reportTexts; + + var user = ""; + var reportText = ""; + + + //Weapon Menu + + mp.events.add('showReportMenu', (userTickets, TicketsArr) => { + if (!globalData.InMenu) { + + globalData.InMenu = true; + + users = JSON.parse(userTickets); + reportTexts = JSON.parse(TicketsArr); + + reportMenu = new Menu("Offene Tickets", "", new Point(50, 50), null, null); + + reportMenu.AddItem(new UIMenuListItem("Ticket", "", new ItemsCollection(reportTexts))); + + reportMenu.AddItem(deleteItem); + reportMenu.AddItem(saveItem); + reportMenu.AddItem(cancelItem); + reportMenu.Visible = true; + + reportMenu.ListChange.on((item, index) => { + switch (item.Text) { + case "Spieler": + user = String(item.SelectedItem.DisplayText); + break; + } + }); + + reportMenu.ItemSelect.on((item) => { + if (item.Text === "Annehmen") { + mp.events.callRemote("acceptReport", user); + reportMenu.Close(); + globalData.InMenu = false; + } else if (item.Text === "Abbrechen") { + reportMenu.Close(); + globalData.InMenu = false; + } else if (item.Text === "Entfernen") { + mp.events.callRemote("deleteReport", user); + reportMenu.Close(); + globalData.InMenu = false; + } + }); + + reportMenu.MenuClose.on(() => { + globalData.InMenu = false; + }); + } + }); + + mp.events.add('showReportType', () => { + if (!globalData.InMenu) { + + var type; + + globalData.InMenu = true; + + var types = ["Quick Report", "Ticket Report"]; + + reportMenu = new Menu("QuickReport/Ticket", "", new Point(50, 50), null, null); + + reportMenu.AddItem(new UIMenuListItem("Anliegen", "", new ItemsCollection(types))); + + reportMenu.AddItem(sendItem); + reportMenu.AddItem(cancelItem); + reportMenu.Visible = true; + + reportMenu.ListChange.on((item, index) => { + switch (item.Text) { + case "Anliegen": + type = String(item.SelectedItem.DisplayText); + break; + } + }); + + reportMenu.ItemSelect.on((item) => { + if (item.Text === "Annehmen") { + + var tickcont; + + mp.events.callRemote("requestReport", "tescht"); + var ticketContentBox = new InputHelper("Worin besteht dein Anliegen?", globalData); + ticketContentBox.show(); + ticketContentBox.getValue(data => { + + var content = data; + + mp.events.callRemote("requestReport", "lold"); + mp.events.call("SERVER:CloseReportMenu"); + reportMenu.Close(); + }); + + var lold = ticketContentBox.test; + mp.events.callRemote("requestReport", lold); + + + globalData.InMenu = false; + } else if (item.Text === "Abbrechen") { + reportMenu.Close(); + globalData.InMenu = false;0 + } + }); + + reportMenu.MenuClose.on(() => { + globalData.InMenu = false; + }); + } + }); + + var textBoxBrowser: BrowserMp; + var loginCam: CameraMp = mp.cameras.new('login', new mp.Vector3(-1883.736, -781.4911, 78.27616), new mp.Vector3(3.185999, 0, -79.59519), 40); + + var localPlayer: PlayerMp = mp.players.local; + + mp.events.add('textbox', () => { + mp.gui.cursor.show(true, true); + mp.gui.chat.show(false); + mp.game.ui.displayHud(false); + mp.game.ui.displayRadar(false); + + textBoxBrowser = mp.browsers.new("package://assets/html/SimpleTextBox.html"); + + /* + loginCam.setActive(true); + mp.game.cam.renderScriptCams(true, false, 0, true, false); + */ + }); + + + mp.events.add('report_submitText', (tmp) => { + + mp.events.callRemote("requestReport", tmp); + }); + + mp.events.add("SERVER:CloseReportMenu", () => { + mp.game.ui.clearHelp(true); + if (reportMenu != null) { + reportMenu.Close(); + } + }); +} \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/html/SimpleTextBox.html b/ReallifeGamemode.Client/assets/html/SimpleTextBox.html new file mode 100644 index 00000000..5837569a --- /dev/null +++ b/ReallifeGamemode.Client/assets/html/SimpleTextBox.html @@ -0,0 +1,23 @@ + + + + + + + +
+
+

+ Worin besteht dein Anliegen? +

+ + + + +
+ +
+ + + + \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/html/inputhelper/index.html b/ReallifeGamemode.Client/assets/html/inputhelper/index.html index d6687cba..3c517211 100644 --- a/ReallifeGamemode.Client/assets/html/inputhelper/index.html +++ b/ReallifeGamemode.Client/assets/html/inputhelper/index.html @@ -17,6 +17,9 @@ $('#input-value').keydown(function (e) { if (e.keyCode != 13) return; var currentValue = $('#input-value').val(); + + mp.trigger('submitText', currentValue); + if (currentValue) { mp.trigger('cef_inputhelper_sendvalue', currentValue); console.log("triggered event: " + currentValue); diff --git a/ReallifeGamemode.Client/assets/html/login/index.html b/ReallifeGamemode.Client/assets/html/login/index.html index 31106e49..4166364a 100644 --- a/ReallifeGamemode.Client/assets/html/login/index.html +++ b/ReallifeGamemode.Client/assets/html/login/index.html @@ -24,7 +24,7 @@

Wilkommen zurück

-
+