#!/bin/sh

. ../common/ajax_common


load_group_mgdinfo()
{
    . ./ajax_sac_object_lib

    printf "{"
    printf "\"group\":`saclib_group_list`"
    printf ",\"info\":{"

    ${FLOWEYE} sacgrp list | while read id tid more
    do
        [ "${CGI_grpid}" = "-1" ] && continue
        
        tmplname=`${FLOWEYE} sactmpl get id=${tid} | cut -d" " -f1`
		apcnt=`${FLOWEYE} sacgrp get grpid=${id} getap=1 | awk 'END{print NR}'`

        printf "${dot}\"g${id}\":{"      
        printf "\"tmpl\":\"${tmplname}\","
        printf "\"apcnt\":${apcnt}"
        printf "}"

        [ "${dot}" = "" ] && dot=","
    done

    printf "}}"
}


load_group_iprng()
{
	iprng=`${FLOWEYE} sacgrp get grpid=${CGI_grpid} get_iprange=1`
	
	[ "${iprng}" = "null" ] && iprng=""
	printf "{\"iprng\":\"${iprng}\"}"
}


add_ap_group()
{
    [ "${CGI_grpname}" = "" ] && retjson 1 "NO_GRPNAME"

    err=`${FLOWEYE} sacgrp add name=${CGI_grpname}`
    if [ $? -ne 0 ]; then
        retjson 1 ${err}
    else
        WEB_LOGGER "AP" "name=${CGI_grpname}"
        retjson 0 "ɹ"
    fi
}


edit_ap_group()
{
    cmdargs="grpid=${CGI_grpid}"

    [ "${CGI_iprng}" != "" ] && cmdargs="${cmdargs}  iprange=${CGI_iprng}"

    if [ "${CGI_new_grpname}" != "${CGI_grpname}" ]; then
        cmdargs="${cmdargs} name=${CGI_new_grpname}"
    fi

	errmsg=`${FLOWEYE} sacgrp set ${cmdargs}`
	if [ $?  -ne 0 ]; then
		retjson 1 "ʧܣ${errmsg}"
	fi

    WEB_LOGGER "APIPΧ" "${cmdargs}"
	
	errmsg=`${FLOWEYE} sacgrp set grpid=${CGI_grpid} tmpl_id=${CGI_tmplid}`
	if [ $? -ne 0 ]; then
		retjson 1 "ʧܣ${errmsg}"
	else
        WEB_LOGGER "SACģAP" "grpid=${CGI_grpid} tmpl_id=${CGI_tmplid}"
        retjson 0 "ɹ"
	fi
}


del_ap_group()
{
    [ "${CGI_grpid}" = "" ] && retjson 1 "NO_GRPID"

    for id in `echo ${CGI_grpid} | tr "," " "`
    do
        [ "${id}" = "0" ] && continue
        ${FLOWEYE} sacgrp remove grpid=${id}
    done

    WEB_LOGGER "ɾAP" "ids=${CGI_grpid}"
    retjson 0 "ɹ"
}


case "${CGI_action}" in
    "load_group_list")
        . ./ajax_sac_object_lib
        retjson 0 "OK" "`saclib_group_list`"
        ;;

    "load_group_mgdinfo")
        retjson 0 "OK" "`load_group_mgdinfo`"
        ;;

    "load_group_iprng")
        retjson 0 "OK" "`load_group_iprng`"
        ;;

    "load_group_edit_env")
        retjson 0 "OK" "`load_group_edit_env`"
        ;;

    "add_ap_group")
        action_check
        add_ap_group
        ;;

    "del_ap_group")
        action_check
        del_ap_group
        ;;

    "edit_ap_group")
        action_check
        edit_ap_group
        ;;
    
    *)
        retjson 1 "UNKNOW_ACTION"
        ;;
esac
