Fix dashboard search and IBL upload

This commit is contained in:
sas.fajri
2026-05-24 08:14:16 +07:00
parent 11e7e0792a
commit f0c0bfc4f3
3 changed files with 153 additions and 12 deletions

View File

@@ -139,16 +139,21 @@ class Usergroupv4 extends MY_Controller
}
$prm = $this->sys_input;
$group_id = $prm['group_id'];
$search = $prm['search'];
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui-lab/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
FROM s_menu menu
LEFT JOIN s_menu menuparent ON menu.S_MenuParentS_MenuID = menuparent.S_MenuID
WHERE
menu.S_MenuUrl <> '#' AND menu.S_MenuIsActive = 'Y' AND menu.S_MenuName LIKE CONCAT('%','{$search}','%')";
$sql_param = array($search);
$query = $this->db_onedev->query($sql, $sql_param);
$group_id = $prm['group_id'];
$search = isset($prm['search']) ? trim($prm['search']) : '';
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui-lab/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
FROM s_menu menu
LEFT JOIN s_menu menuparent ON menu.S_MenuParentS_MenuID = menuparent.S_MenuID
WHERE
menu.S_MenuUrl <> '#' AND menu.S_MenuIsActive = 'Y'
AND (
menu.S_MenuName LIKE CONCAT('%', ?, '%')
OR CONCAT('one-ui-lab/', menu.S_MenuUrl) LIKE CONCAT('%', ?, '%')
OR menu.S_MenuUrl LIKE CONCAT('%', ?, '%')
)";
$sql_param = array($search, $search, $search);
$query = $this->db_onedev->query($sql, $sql_param);
// echo $this->db_onedev->last_query();
if ($query) {
$rows = $query->result_array();
@@ -157,8 +162,8 @@ class Usergroupv4 extends MY_Controller
exit;
}
$result = array("total" => $total, "total_filter" => count($rows), "records" => $rows);
$total = count($rows);
$result = array("total" => $total, "total_filter" => $total, "records" => $rows);
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();

View File

@@ -0,0 +1,133 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
TARGET="${UPLOAD_TARGET:-ibl_tentarapelajar}"
REMOTE_HOST="${UPLOAD_REMOTE_HOST:-10.9.20.31}"
REMOTE_USER="${UPLOAD_REMOTE_USER:-one}"
REMOTE_PATH="${UPLOAD_REMOTE_PATH:-/home/one/project/one/one-api-lab/}"
PRIVATE_KEY_PATH="${UPLOAD_PRIVATE_KEY_PATH:-/Users/fajrihardhitamurti/id_rsa}"
MODE="commit"
REF="HEAD"
DRY_RUN=0
usage() {
cat <<'EOF'
Usage: upload_ibl_committed_files.sh [commit|range] [REF] [--dry-run]
Modes:
commit [REF] Upload added/copied/modified files from one commit (default: HEAD)
range [A..B] Upload added/copied/modified files from a git revision range
Examples:
./upload-ibl
./upload-ibl commit HEAD
./upload-ibl range HEAD~3..HEAD
./upload-ibl --dry-run
EOF
}
log() {
printf '[upload-ibl] %s\n' "$*"
}
fail() {
printf '[upload-ibl] %s\n' "$*" >&2
exit 1
}
while [[ $# -gt 0 ]]; do
case "$1" in
commit|range)
MODE="$1"
shift
if [[ $# -gt 0 ]] && [[ "$1" != --* ]]; then
REF="$1"
shift
fi
;;
--dry-run)
DRY_RUN=1
shift
;;
-h|--help)
usage
exit 0
;;
*)
fail "Unknown argument: $1"
;;
esac
done
git -C "$ROOT_DIR" rev-parse --is-inside-work-tree >/dev/null 2>&1 || fail "Not inside a git worktree"
[[ -f "$PRIVATE_KEY_PATH" ]] || fail "Private key not found: $PRIVATE_KEY_PATH"
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT
changed_list="$tmpdir/changed-files.txt"
skipped_list="$tmpdir/skipped-files.txt"
case "$MODE" in
commit)
git -C "$ROOT_DIR" rev-parse --verify "$REF^{commit}" >/dev/null 2>&1 || fail "Invalid commit ref: $REF"
git -C "$ROOT_DIR" diff-tree --no-commit-id --root --diff-filter=ACM --name-only -r "$REF" > "$changed_list"
git -C "$ROOT_DIR" diff-tree --no-commit-id --root --diff-filter=DR --summary -r "$REF" > "$skipped_list" || true
;;
range)
git -C "$ROOT_DIR" rev-parse --verify "${REF##*..}^{commit}" >/dev/null 2>&1 || fail "Invalid range end: $REF"
git -C "$ROOT_DIR" diff --diff-filter=ACM --name-only "$REF" > "$changed_list"
git -C "$ROOT_DIR" diff --diff-filter=DR --summary "$REF" > "$skipped_list" || true
;;
*)
fail "Unknown mode: $MODE"
;;
esac
if [[ ! -s "$changed_list" ]]; then
log "No added/copied/modified files found for $MODE $REF"
if [[ -s "$skipped_list" ]]; then
log "Skipped delete/rename changes:"
sed 's/^/[upload-ibl] /' "$skipped_list"
fi
exit 0
fi
changed_paths=()
while IFS= read -r path; do
[[ -n "$path" ]] || continue
case "$path" in
graphify-out/*)
continue
;;
esac
changed_paths+=("$path")
done < "$changed_list"
if [[ "${#changed_paths[@]}" -eq 0 ]]; then
log "No deployable files found for $MODE $REF"
exit 0
fi
log "Uploading ${#changed_paths[@]} path(s) from $MODE $REF to $TARGET"
rsync_opts=(-az --progress --human-readable --relative --exclude='.git/' --exclude='.DS_Store')
if [[ "$DRY_RUN" -eq 1 ]]; then
rsync_opts+=(--dry-run)
fi
SSH_CMD="ssh -i $PRIVATE_KEY_PATH -o BatchMode=yes -o StrictHostKeyChecking=accept-new"
destination="${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH%/}/"
pushd "$ROOT_DIR" >/dev/null
if rsync "${rsync_opts[@]}" -e "$SSH_CMD" "${changed_paths[@]}" "$destination"; then
log "Done: $TARGET"
else
fail "Upload failed: $TARGET"
fi
popd >/dev/null
if [[ -s "$skipped_list" ]]; then
log "Skipped delete/rename changes:"
sed 's/^/[upload-ibl] /' "$skipped_list"
fi

3
upload-ibl Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
exec "$SCRIPT_DIR/scripts/upload_ibl_committed_files.sh" "$@"