Commit d7d9dc9a by aa.gusti

detable custom url

1 parent 4b1d5655
......@@ -19,8 +19,58 @@ class ListSchema(colander.Schema):
permission='provinsi')
def view_list(self):
table = DeTable(ListSchema(), action=f"{self.home}/provinsi",
action_suffix="/grid/act",
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="")
# /provinsi/add
@view_config(route_name='provinsi-add',
renderer='templates/form_input.pt',
permission='provinsi')
def view_add(request):
pass
# /provinsi/{id}/edit
@view_config(route_name='provinsi-edit',
renderer='templates/form_input.pt',
permission='provinsi')
def view_edit(request):
pass
# /provinsi/{id}/delete
@view_config(route_name='provinsi-delete',
renderer='templates/form_input.pt',
permission='provinsi')
def view_delete(request):
pass
# /provinsi/{id}/view
@view_config(route_name='provinsi-view',
renderer='templates/form_input.pt',
permission='provinsi')
def view_view(request):
pass
# /provinsi/{act}/act
@view_config(route_name='provinsi-act',
renderer='json',
permission='provinsi')
def view_act(request):
pass
```
## Contoh HTML
```html
<html metal:use-macro="load: ./base3.1.pt"
tal:define="
home request.route_url('home');">
<div metal:fill-slot="content">
<div class="jarviswidget jarviswidget-color-blueLight"> <!-- jarviswidget -->
<div tal:content="structure table"></div>
</div>
</div>
</html>
```
## DeTable Parameter
......
......@@ -116,6 +116,7 @@ class ViewProvinsi(BaseView):
permission='provinsi')
def view_list(self):
table = DeTable(ListSchema(), action=f"{self.home}/provinsi",
action_suffix="/grid/act",
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="")
......
......@@ -95,6 +95,7 @@ class DeTable(field.Field):
self,
schema,
action,
action_suffix='/grid/act',
buttons=(),
tableid="detable",
# use_ajax=False,
......@@ -131,10 +132,10 @@ class DeTable(field.Field):
{button.title} </button>
""")
_scripts.append(f'$("#{tableid + button.name}").click(function ()' +
eval('btn_' + button.name + '_js')+');')
eval('btn_' + button.name + '_js') + ');')
# <span tal:condition="button.icon" class="glyphicon glyphicon-${button.icon}"></span>
self.buttons = "','".join(_buttons).replace('\n', "").replace(';',';\n')
self.buttons = "','".join(_buttons).replace('\n', "").replace(';', ';\n')
self.tableid = tableid
self.scripts = ''.join(_scripts).replace(';', ";\n")
table_widget = getattr(schema, "widget", None)
......@@ -158,6 +159,7 @@ class DeTable(field.Field):
columns.append(d)
self.columns = json.dumps(columns)
self.url = action
self.url_suffix = action_suffix
class Button(object):
......
......@@ -8,7 +8,8 @@
tableid tableid|field.tableid;
columns columns|field.columns;
btnscripts scripts|field.scripts;
url url|field.url"
url url|field.url;
url_suffix url_suffix|field.url_suffix;"
tal:attributes="style style;
class css_class;
attributes|field.widget.attributes|{};"
......@@ -42,7 +43,7 @@
var m${tableid}ID;
var o${tableid};
var o${tableid}Uri = "${url}"
var o${tableid}Url = o${tableid}Uri + "/grid/act";
var o${tableid}Url = o${tableid}Uri + "${url_suffix}";
var tb_array = [
'<div class="btn-group pull-left">',
'${structure:buttons}',
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!