You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.8 KiB
PHP

<?
include_once("../php/include.php");
function printGroup($id, $name, $expense, $exclude, $system, $existing) {
?>
<tr class="list-b">
<td class="list-b">
&#8594;
<input id="gname<?=$id?>" type="text" placeholder="Group name" value="<?=$name?>" autocomplete="off" />
</td>
<td class="list-b <?=($system ? "disabled" : "")?>">
<input id="expense<?=$id?>" type="checkbox" <?=($expense ? "checked" : "")?> <?=($system ? "disabled readonly" : "")?> autocomplete="off" /><?=insertExpenseText(1, true)?>
</td>
<td class="list-b">
<input id="exclude<?=$id?>" type="checkbox" <?=($exclude ? "checked" : "")?> autocomplete="off" />Exclude
</td>
<td class="list-b disabled">
<input id="system<?=$id?>" type="checkbox" <?=($system ? "checked" : "")?> disabled readonly autocomplete="off" />Default
</td>
<td class="list-b">
<button onclick="saveGroup(this, <?=$id?>)"><?=($existing ? "Save group" : "Add group")?></button>
</td>
<td class="list-b">
<? if($existing && !$system) { ?>
<button onclick="deleteGroup(this, <?=$id?>);">Delete group</button>
<? } ?>
</td>
</tr>
<?
}
function printCategory($id, $categoryGroupId, $name, $system, $records, $rules, $existing) {
?>
<tr class="list-b">
<td class="list-b" colspan="4" style="padding-left: 40px;">
&#10551;
<input id="cname<?=$categoryGroupId?>_<?=$id?>" type="text" placeholder="Category name" value="<?=$name?>" autocomplete="off" />
<? if($records !== null) { ?>
<?=$records?> records,
<?=$rules?> rules
<? } ?>
</td>
<td class="list-b">
<button onclick="saveCategory(this, <?=$id?>, <?=$categoryGroupId?>);"><?=($existing ? "Save category" : "Add category")?></button>
</td>
<td class="list-b">
<? if($existing && !$system) { ?>
<button onclick="deleteCategory(this, <?=$id?>);">Delete category</button>
<? } ?>
</td>
</tr>
<?
}
?>
<table class="list-b">
<?
initDatabaseConnection();
$groups = dbQuery("SELECT * FROM category_group WHERE household_id = ? ORDER BY name", getHouseholdId());
foreach($groups as $group) {
printGroup($group['id'], $group['name'], $group['expense'], $group['exclude'], $group['system'], true);
$categories = dbQuery("SELECT * FROM category_ext WHERE category_group_id = ?", $group['id']);
foreach($categories as $category) {
printCategory($category['id'], $group['id'], $category['name'], $group['system'], $category['record_count'], $category['rule_count'], true);
}
if(!$group['system']) {
printCategory("null", $group['id'], "", false, null, null, false);
}
}
printGroup("null", "", 1, 0, 0, false);
closeDatabaseConnection();
?>
</table>
<script>
function saveGroup(button, id) {
var requestData = {
action: "save-group",
id: id,
name: $('#gname' + id).val(),
expense: $('#expense' + id).is(':checked'),
exclude: $('#exclude' + id).is(':checked')
};
sendCategoryRequest(requestData, button, id == null);
}
function deleteGroup(button, id) {
var requestData = {
action: "delete-group",
id: id
};
sendCategoryRequest(requestData, button, true);
}
function saveCategory(button, id, categoryGroupId) {
var requestData = {
action: "save-category",
id: id,
categoryGroupId: categoryGroupId,
name: $('#cname' + categoryGroupId + "_" + id).val()
};
sendCategoryRequest(requestData, button, id == null);
}
function deleteCategory(button, id) {
var requestData = {
action: "delete-category",
id: id
};
sendCategoryRequest(requestData, button, true);
}
function sendCategoryRequest(requestData, button, reload) {
var completeFunc = function(success, status, response) {
if(success && reload) {
reloadCurrentPage();
}
};
sendRequest("category", requestData, button, completeFunc);
}
</script>