def web_gateway_del(httpClient, httpResponse, args): """ TODO """ idx = int(args['idx']) err, ret = Web.command(httpResponse, 'gateway.delete', index=idx) if err: Web.flash_error(httpResponse, err, ret, idx) else: err, ret = Web.command(httpResponse, 'save') msg = 'Gateway instance deleted' httpResponse.FlashMessage(msg, 'info') return httpResponse.WriteResponseRedirect('/gateways')
def web_rule_del(httpClient, httpResponse, args): """ TODO """ idx = int(args['idx']) err, ret = Web.command('rule.delete', index=idx) if err: Web.flash_error(httpResponse, err, ret, idx) else: err, ret = Web.command('save') msg = 'Rule task deleted' httpResponse.FlashMessage(msg, 'info') return httpResponse.WriteResponseRedirect('/rules')
def web_rule_add(httpClient, httpResponse, args): """ TODO """ rupid = args['rupid'] params = {'rupid': rupid} err, ret = Web.command('rule.add', items=params) if err: Web.flash_error(httpResponse, err, ret, rupid) else: Web.command('save') msg = 'Rule "{}" added'.format(rupid) httpResponse.FlashMessage(msg, 'info') return httpResponse.WriteResponseRedirect('/rules')
def web_gateway_add(httpClient, httpResponse, args): """ TODO """ gwpid = args['gwpid'] params = {'gwpid': gwpid} err, ret = Web.command('gateway.add', items=params) if err: Web.flash_error(httpResponse, err, ret, gwpid) else: Web.command('save') msg = 'Gateway "{}" added'.format(gwpid) httpResponse.FlashMessage(msg, 'info') return httpResponse.WriteResponseRedirect('/gateways')
def web_rule_add(httpClient, httpResponse, args): """ TODO """ ezPID = args['ezPID'] params = {'ezPID': ezPID} err, ret = Web.command(httpResponse, 'rule.add', items=params) if err: Web.flash_error(httpResponse, err, ret, ezPID) else: Web.command(httpResponse, 'save') msg = 'Rule "{}" added'.format(ezPID) httpResponse.FlashMessage(msg, 'info') return httpResponse.WriteResponseRedirect('/rules/edit/' + str(ret)) return httpResponse.WriteResponseRedirect('/rules')
def web_cmd(httpClient, httpResponse): """ Shows a form to enter a command and display the result for testing the ezPiC-commands """ cmd = '' err = '' ret = '' formParams = None if httpClient.GetRequestMethod() == 'POST': formParams = httpClient.ReadRequestPostedFormData() else: # GET formParams = httpClient.GetRequestQueryParams() if formParams and 'cmd' in formParams: cmd = formParams.get('cmd') #cmd = html.escape(cmd) if cmd: err, ret = Web.command(httpResponse, cmd, useCLI=True, source=httpClient._addr) ret = Tool.json_str(ret) #ret = html.escape(ret) log(LOG_DEBUG, 'Web command: {}', cmd) vars = {} vars['menu'] = 'tools' vars['cmd'] = cmd vars['err'] = err vars['ret'] = ret return httpResponse.WriteResponsePyHTMLFile('web/www/cmd.html', vars=vars)
def web_variable_full_list(httpClient, httpResponse, args=None): """ TODO """ key = '' value = '' if args: act_tick = int(args.get('tick', 0)) else: act_tick = 0 if httpClient.GetRequestMethod() == 'POST': formParams = httpClient.ReadRequestPostedFormData() else: # GET formParams = httpClient.GetRequestQueryParams() if formParams and 'key' in formParams: key = formParams.get('key') value = formParams.get('value') variable = {} variable['key'] = key variable['value'] = value #variable['source'] = 'WEB-SET' err, ret = Web.command(httpResponse, 'variable.set', items=variable) if err: Web.flash_error(httpResponse, err, ret) err, ret = Web.command(httpResponse, 'variable.full.list', index=act_tick) if err: Web.flash_error(httpResponse, err, ret) ret = {} vars = {} vars['menu'] = 'tools' vars['variable_list'] = ret['variables'] vars['last_tick'] = ret['tick'] vars['act_tick'] = act_tick vars['add_key'] = key vars['add_value'] = value return httpResponse.WriteResponsePyHTMLFile('web/www/variablesfull.html', vars=vars) #######
def web_rules_list(httpClient, httpResponse): """ TODO """ err, ret = Web.command('plugin.rule.list') if err: Web.flash_error(httpResponse, err, ret) ret = [] vars = {} vars['menu'] = 'rules' vars['rule_list'] = ret return httpResponse.WriteResponsePyHTMLFile('web/www/rules_list.html', vars=vars)
def web_main(httpClient, httpResponse): """ Main-Page with common dashboard """ err, result = Web.command(httpResponse, 'info') if err: Web.flash_error(httpResponse, err, result) result = {} vars = {} vars['menu'] = 'main' vars['info'] = result return httpResponse.WriteResponsePyHTMLFile('web/www/main.html', vars=vars)
def web_gateways(httpClient, httpResponse): """ TODO """ err, ret = Web.command('gateway.list') if err: Web.flash_error(httpResponse, err, ret) ret = [] vars = {} vars['menu'] = 'gateways' vars['gateway_list'] = ret return httpResponse.WriteResponsePyHTMLFile('web/www/gateways.html', vars=vars)
def web_rule_edit(httpClient, httpResponse, args): """ TODO """ idx = int(args['idx']) err, ret = Web.command(httpResponse, 'rule.getparams', index=idx) if err: Web.flash_error(httpResponse, err, ret, idx) return httpResponse.WriteResponseRedirect('/rules') params = {} params.update(ret) if httpClient.GetRequestMethod() == 'POST': formParams = httpClient.ReadRequestPostedFormData() if formParams: formParams['ENABLE'] = 'ENABLE' in formParams # checkbox -> bool params.update(formParams) err, ret = Web.command(httpResponse, 'rule.setparams', index=idx, params=formParams) if not err: err, ret = Web.command(httpResponse, 'save') if err: Web.flash_error(httpResponse, err, ret, idx) else: httpResponse.FlashMessage('Settings saved', 'info') else: # GET pass vars = {} vars['menu'] = 'rules' vars['index'] = idx vars.update(params) err, html = Web.command(httpResponse, 'rule.gethtml', index=idx) return httpResponse.WriteResponsePyHTMLFile(html, vars=vars)
def web_index(httpClient, httpResponse): """ Index-Page with Description. Additional handle commands over HTTP-GET""" queryParams = httpClient.GetRequestQueryParams() if queryParams and 'cmd' in queryParams: cmd = queryParams.get('cmd') err, ret = Web.command(httpResponse, cmd) json = {'code': err, 'result': ret} return httpResponse.WriteResponseJSONOk(json) vars = {} vars['menu'] = '' return httpResponse.WriteResponsePyHTMLFile('web/www/index.html', vars=vars)
def web_rule_edit(httpClient, httpResponse, args): """ TODO """ idx = int(args['idx']) err, ret = Web.command('rule.getparam', index=idx) if err: Web.flash_error(httpResponse, err, ret, idx) return httpResponse.WriteResponseRedirect('/rules') params = {} params.update(ret) if httpClient.GetRequestMethod() == 'POST': formParams = httpClient.ReadRequestPostedFormData() if formParams: formParams['enable'] = 'enable' in formParams # checkbox -> bool formParams['timer'] = int(formParams.get('timer', 0)) for key, value in params.items(): if key in formParams: params[key] = formParams.get(key) err, ret = Web.command('rule.setparam', index=idx, params=params) if err: Web.flash_error(httpResponse, err, ret, idx) err, ret = Web.command('save') httpResponse.FlashMessage('Settings saved', 'info') else: # GET pass vars = {} vars['menu'] = 'rules' vars['index'] = idx vars.update(params) err, html = Web.command('rule.gethtml', index=idx) return httpResponse.WriteResponsePyHTMLFile(html, vars=vars)
def web_rules_list(httpClient, httpResponse): """ TODO """ err, ret = Web.command(httpResponse, 'rule.stage.list') if err: Web.flash_error(httpResponse, err, ret) ret = [] ret.sort(key=lambda x: x['PNAME'].upper()) vars = {} vars['menu'] = 'rules' vars['rule_list'] = ret return httpResponse.WriteResponsePyHTMLFile('web/www/rules_list.html', vars=vars)
def web_gateways(httpClient, httpResponse): """ TODO """ err, ret = Web.command(httpResponse, 'gateway.list') if err: Web.flash_error(httpResponse, err, ret) ret = [] ret.sort(key=lambda x: x['NAME'].upper()) vars = {} vars['menu'] = 'gateways' vars['gateway_list'] = ret return httpResponse.WriteResponsePyHTMLFile('web/www/gateways.html', vars=vars)