#!/bin/sh

. ../common/ajax_common

if [ "${PALANG}" = "en" ]; then
	LANG001="Error"				#ʧ
	LANG002="Success"			#ɹ
	LANG003="Add_App_Group"		#ԶЭ
	LANG004="APP_Group_Add_APP"	#ԶЭЭ
	LANG005="Del_APP_Group"		#ɾԶЭ
	LANG006="Del_APP_Group"		#ɾԶЭ
fi


list_user_agp()
{
    ${FLOWEYE} agp list | grep -i "${CGI_keyword}" | awk \
    'BEGIN{
        dot = "";
        printf "[";
    }{
        apps = "";
        for(i = 3; i <= NF; i++)
            apps = sprintf("%s %s", apps, $i);

        printf "%s", dot;
        printf "{";
        printf "\"name\":\"%s\",", $1;
        printf "\"cname\":\"%s\",", $2;
        printf "\"apps\":\"%s\"", apps;
        printf "}";
        if(dot == "") dot = ",";
    }END{
        printf "]";
    }'
}


get_user_agp()
{
    [ "${CGI_name}" = "" ] && retjson 1 "INV_NAME"

    ${FLOWEYE} agp get "${CGI_name}" | awk \
    'BEGIN{
        dot = "";
        printf "{";
    }{
        printf "%s", dot;
        printf "\"%s\":{", $1;
        printf "\"field\":\"%s\",", $1;
        printf "\"title\":\"%s\"", $2;
        printf "}";
        if(dot == "") dot = ",";
    }END{
        printf "}";
    }'
}


load_edit_agp_env()
{
    . ../common/ajax_object_lib

    printf "{"
    printf "\"app_tree\":`lib_apptree_list`,"
    printf "\"checked\":`get_user_agp`"
    printf "}"
}


add_user_agp()
{
	errmsg=`${FLOWEYE} agp add name=${CGI_name} cname=${CGI_cname}` 

    if [ $? -ne 0 ]; then
        retjson 1 "${LANG001:=ʧ}:${errmsg}"
    else
        sync_floweye "agp add name=${CGI_name} cname=${CGI_cname}"
        WEB_LOGGER "${LANG003:=ԶЭ}" "name=${CGI_cname} cname=${CGI_cname}"
        retjson 0 "${LANG002:=ɹ}"
    fi
}


edit_user_agp()
{
	errmsg=`${FLOWEYE} agp load ${CGI_name} ${CGI_applist}`

    if [ $? -ne 0 ]; then
        retjson 1 "${LANG001:=ʧ}:${errmsg}"
    else
        sync_floweye "agp load ${CGI_name} ${CGI_applist}"
        WEB_LOGGER "${LANG004:=ԶЭЭ}" "name=${CGI_cname} ${CGI_applist}"
        retjson 0 "${LANG002:=ɹ}"
    fi
}


rmv_user_agp()
{
    errmsg=`${FLOWEYE} agp remove ${CGI_name}`

    if [ $? -ne 0 ]; then
        retjson 1 "${LANG001:=ʧ}:${errmsg}"
    else
        sync_floweye "agp remove ${CGI_name}"
        WEB_LOGGER "${LANG005:=ɾԶЭ}" "name=${CGI_cname}"
        retjson 0 "${LANG002:=ɹ}"
    fi
}


btnrmv_user_agp()
{
    for name in `echo ${CGI_items} | tr ";" " "`
    do
        errmsg=`${FLOWEYE} agp remove ${name}`
        [ $? - ne 0 ] && retjson 1 "${LANG001:=ʧ}:${errmsg}"
        sync_floweye "agp remove ${name}"
    done

    WEB_LOGGER "${LANG006:=ɾԶЭ}" items=${CGI_items}
	retjson 0 "${LANG002:=ɹ}"
}


case "${CGI_action}" in
    "list_user_agp")
        retjson 0 "OK" "`list_user_agp`"
        ;;

    "get_user_agp")
        retjson 0 "OK" "`get_user_agp`"
        ;;

    "load_edit_agp_env")
        retjson 0 "OK" "`load_edit_agp_env`"
        ;;

    "add_user_agp")
        action_check
        add_user_agp
        ;;

    "edit_user_agp")
        action_check
        edit_user_agp
        ;;

    "rmv_user_agp")
        action_check
        rmv_user_agp
        ;;

    "btnrmv_user_agp")
        action_check
        btnrmv_user_agp
        ;;

    *)
        retjson 1 "UNKNOW_ACTION"
        ;;
esac
