Finished faction system, slightly changed client files
This commit is contained in:
@@ -12,9 +12,12 @@
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="table">
|
||||
<table id="rank-table"></table>
|
||||
<div class="add-rank">
|
||||
<input id="input-new-rank" placeholder="Neuer Rang"/>
|
||||
<button id="btn-add-new-rank">Hinzufügen</button>
|
||||
</div>
|
||||
<button class="save-btn">Speichern</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -4,49 +4,60 @@
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
var dndConfig = {
|
||||
onDragClass: "rankDnD"
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
mp.trigger("onManageFactionRanksLoaded");
|
||||
|
||||
$("table#rank-table").on("click", "tr td span", function () {
|
||||
$(this).parent().parent().remove();
|
||||
$("table#rank-table").tableDnD(dndConfig);
|
||||
});
|
||||
|
||||
$("#btn-add-new-rank").click(function () {
|
||||
var toAdd = $("input#input-new-rank").val();
|
||||
if (toAdd.length === 0) return;
|
||||
$("input#input-new-rank").val("");
|
||||
$("table#rank-table").append("<tr><td style='display:none;'><input disabled class='input-id' value='0' /></td><td><input class='input-rankname' value='" + toAdd + "' /><td><span class='delete-rank'>X</span></td></tr>");
|
||||
$("table#rank-table").tableDnD(dndConfig);
|
||||
});
|
||||
|
||||
$(".save-btn").click(function () {
|
||||
var rows = $("table#rank-table tr");
|
||||
console.log(rows);
|
||||
rows.shift();
|
||||
console.log(rows);
|
||||
rows = rows.slice(1);
|
||||
|
||||
if (rows.length == 0) {
|
||||
if (rows.length === 0) {
|
||||
alert("Es muss mindestens ein Rang angegeben werden!");
|
||||
return;
|
||||
}
|
||||
|
||||
var rankArray = new Array();
|
||||
rows.each(function () {
|
||||
var id = $(this).find("input.input-id")[0].value;
|
||||
var name = $(this).find("input.input-rankname")[0].value;
|
||||
|
||||
rows.forEach(function (row) {
|
||||
var tdId = row[0];
|
||||
var tdName = row[1];
|
||||
var rank = new Object();
|
||||
rank.Id = parseInt(id);
|
||||
rank.Name = name;
|
||||
|
||||
var id = tdId.children[0].value;
|
||||
var name = tdName.children[0].value;
|
||||
|
||||
var rank = [id, name];
|
||||
console.log(rank);
|
||||
rankArray.push(rank);
|
||||
});
|
||||
|
||||
console.log(rankArray);
|
||||
//mp.trigger('saveFactionRankData');
|
||||
var json = JSON.stringify(rankArray);
|
||||
|
||||
mp.trigger('saveFactionRankData', json);
|
||||
});
|
||||
});
|
||||
|
||||
function loadData(rankData) {
|
||||
$("table#rank-table tr").remove();
|
||||
$("table#rank-table").append("<tr class='nodrop nodrag'><th style='display:none;'>ID</th><th>Fraktions-Ränge</th></tr>");
|
||||
|
||||
console.log(rankData);
|
||||
|
||||
rankData.forEach(function (rank) {
|
||||
$("table#rank-table").append("<tr><td style='display:none;'><input disabled class='input-id' value='" + rank.Id + "' /></td><td><input class='input-rankname' value='" + rank.RankName + "' /></tr>");
|
||||
$("table#rank-table").append("<tr><td style='display:none;'><input disabled class='input-id' value='" + rank.Id + "' /></td><td><input class='input-rankname' value='" + rank.Name + "' /><td><span class='delete-rank'>X</span></td></tr>");
|
||||
});
|
||||
|
||||
$("table#rank-table").tableDnD({
|
||||
onDragClass: "rankDnD"
|
||||
});
|
||||
$("table#rank-table").tableDnD(dndConfig);
|
||||
}
|
||||
@@ -5,17 +5,24 @@
|
||||
}
|
||||
|
||||
.table {
|
||||
background-color: white;
|
||||
background-color: rgba(255, 255, 255, .8);
|
||||
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
|
||||
width: 350px;
|
||||
margin: auto;
|
||||
margin-top: 5%;
|
||||
padding: 0px 20px 20px 20px;
|
||||
}
|
||||
|
||||
.rankDnD {
|
||||
background-color: lightgray;
|
||||
background-color: dimgrey;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.save-btn {
|
||||
display:inline-block;
|
||||
margin-top: 10px;
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
background-color: forestgreen;
|
||||
color: white;
|
||||
outline: 0;
|
||||
@@ -28,9 +35,31 @@
|
||||
}
|
||||
|
||||
#rank-table {
|
||||
margin-left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#rank-table tr {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.input-rankname {
|
||||
display: inline-block;
|
||||
margin-left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.delete-rank {
|
||||
background-color: orangered;
|
||||
color: white;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.delete-rank:hover, .delete-rank:focus, .delete-rank:active {
|
||||
background-color: #ff0223 !important;
|
||||
}
|
||||
|
||||
#rank-table tr td {
|
||||
border-bottom: 1px solid black;
|
||||
padding: 5px 15px;
|
||||
@@ -40,7 +69,7 @@
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
|
||||
#rank-table > tr:not(:first-child):hover {
|
||||
background-color: lightgray;
|
||||
}
|
||||
background-color: dimgrey;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
@@ -10,21 +10,49 @@ var rankData = null;
|
||||
mp.events.add('manageFactionRanks', (ranks) => {
|
||||
if (manageFactionRanksBrowser !== null) return;
|
||||
manageFactionRanksBrowser = mp.browsers.new('package://FactionManagement/Ranks/index.html');
|
||||
|
||||
//var testRanks = {
|
||||
// FactionId: 3,
|
||||
// Ranks: [
|
||||
// {
|
||||
// Id: 5,
|
||||
// Name: "Officer"
|
||||
// },
|
||||
// {
|
||||
// Id: 6,
|
||||
// Name: "Sergeant"
|
||||
// }
|
||||
// ]
|
||||
//};
|
||||
|
||||
//var json = JSON.stringify(testRanks);
|
||||
|
||||
//mp.events.callRemote('OnFactionRanksEdit', json);
|
||||
|
||||
mp.gui.chat.activate(false);
|
||||
rankData = ranks;
|
||||
rankData = JSON.parse(ranks);
|
||||
});
|
||||
|
||||
mp.events.add('onManageFactionRanksLoaded', () => {
|
||||
if (manageFactionRanksBrowser !== null) {
|
||||
manageFactionRanksBrowser.execute(`loadData(` + rankData + `)`);
|
||||
|
||||
manageFactionRanksBrowser.execute(`loadData(` + JSON.stringify(rankData.Ranks) + `)`);
|
||||
mp.gui.cursor.show(true, true);
|
||||
}
|
||||
});
|
||||
|
||||
mp.events.add('saveFactionRankData', function () {
|
||||
mp.events.add('saveFactionRankData', function (data) {
|
||||
if (manageFactionRanksBrowser !== null) {
|
||||
manageFactionRanksBrowser.destroy();
|
||||
mp.gui.cursor.show(false, false);
|
||||
mp.gui.chat.activate(true);
|
||||
|
||||
var obj = new Object();
|
||||
obj.FactionId = rankData.FactionId;
|
||||
obj.Ranks = JSON.parse(data);
|
||||
|
||||
mp.events.callRemote('OnFactionRanksEdit', JSON.stringify(obj));
|
||||
|
||||
manageFactionRanksBrowser = null;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user