Finished faction system, slightly changed client files

This commit is contained in:
hydrant
2018-09-28 17:40:29 +02:00
parent cbc18734ca
commit d057140c32
13 changed files with 299 additions and 56 deletions

View File

@@ -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>

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}
});