#!/bin/sh

. ../common/ajax_common


list_sac_tmpl()
{
	printf "["

	while read tmplid birth tmplname tmplcmd
	do
        [ "${tmplid}" = "" ] && continue
		tmplcmd="`utf8togb2312 ${tmplcmd}`"

		printf "${dot}{"
		printf "\"tmplid\":\"%s\"," ${tmplid}
		printf "\"birth\":\"%s\"," ${birth}
		printf "\"tmplname\":\"%s\"," ${tmplname}
		printf "\"tmplcmd\":\"%s\"" "${tmplcmd}"
		printf "}"

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

	done << EOF
`${FLOWEYE} sactmpl list | grep -i "${CGI_keyword}"`
EOF

    printf "]"
}


tmpl_group_dict()
{
    printf "{"

    ${FLOWEYE} sactmpl list | while read id more
    do
        group=`${FLOWEYE} sactmpl get id=${id} getgrp=1`
        printf "${dot}\"tmpl_${id}\":\"${group}\""

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

    printf "}"
}


load_tmpl_list()
{
    . ./ajax_sac_object_lib

    printf "{"
    echo -n "\"tmpl\":`list_sac_tmpl`"
    printf ",\"dict\":`tmpl_group_dict`"
    printf ",\"group\":`saclib_group_list`"
    printf "}"
}


get_tmpl_info()
{
    ${FLOWEYE} sactmpl get id=${CGI_tmpl_id} | awk \
    'BEGIN{
        dot = "";
        printf "{";
    }{
        printf "%s", dot;
        printf "\"tmplid\":\"%s\",", $1;
        printf "\"birth\":%s,", $2;
        printf "\"tmplname\":\"%s\",", $3;
        printf "\"tmplcmd\":\"%s\"", $4;
        if(dot == "") dot = ",";
    }END{
        printf "}";
    }'
}


add_sac_tmpl()
{
    cmdstr=`echo "${CGI_cmdstr}" | sed 's/ /#/g'`
    cmdstr=`gb2312toutf8 ${cmdstr} | tr ">" "&"`

    errmsg=`${FLOWEYE} sactmpl add name=${CGI_tmpl_name} cfgstr="${cmdstr}"`

    if [ $? -ne 0 ]; then
        retjson 1 "ʧܣ${errmsg}"
    else
        WEB_LOGGER "SACģ" "name=${CGI_tmpl_name}"
        retjson 0 "ɹ"
    fi
}


edit_sac_tmpl()
{
	cmdstr=`echo "${CGI_cmdstr}" | sed 's/ /#/g'`
	cmdstr=`gb2312toutf8 ${cmdstr} | tr ">" "&"`
    
    curName=`${FLOWEYE} sactmpl get id=${CGI_tmpl_id} | cut -d" " -f1`
    [ "${curName}" != "${CGI_tmpl_name}" ] && n="name=${CGI_tmpl_name}"

    errmsg=`${FLOWEYE} sactmpl set id=${CGI_tmpl_id} ${n} cfgstr="${cmdstr}"`

	if [ $? -ne 0 ]; then
		retjson 1 "ʧܣ${errmsg}"
	else
        WEB_LOGGER "༭SACģ" " id=${CGI_tmpl_id} name=${CGI_tmpl_name}"
		retjson 0 "ɹ"
	fi
}


del_sac_tmpl()
{
	errmsg=`${FLOWEYE} sactmpl remove id=${CGI_tmplid}`
	
	if [ $? -ne 0 ]; then
		retjson 1 "ʧܣ${errmsg}"
	else
        WEB_LOGGER "ɾSACģ" "name=${CGI_tmplname}"
        retjson 0 "ɹ"
	fi
}


tmpl_bind_group()
{
	for grpid in `${FLOWEYE} sactmpl get id=${CGI_tmplid} getgrp=1 | tr "," " "`
	do
		${FLOWEYE} sacgrp set grpid=${grpid} tmpl_id=0
	done
	
	for grpid in `echo ${CGI_grpid} | tr "," " "`
	do
		${FLOWEYE} sacgrp set grpid=${grpid} tmpl_id=${CGI_tmplid}
	done

    WEB_LOGGER "SACģAP" "grpid=${CGI_grpid} tmpl_id=${CGI_tmplid}"
    retjson 0 "ɹ"
}


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

    "get_tmpl_info")
        retjson 0 "OK" "`get_tmpl_info`"
        ;;

    "add_sac_tmpl")
        action_check
        add_sac_tmpl
        ;;

    "edit_sac_tmpl")
        action_check
        edit_sac_tmpl
        ;;

    "del_sac_tmpl")
        action_check
        del_sac_tmpl
        ;;

    "tmpl_bind_group")
        action_check
        tmpl_bind_group
        ;;

    *)
        retjson 1 "UNKNOW_ACTION"
        ;;
esac
