Commit d7d9dc9a by aa.gusti

detable custom url

1 parent 4b1d5655
...@@ -19,8 +19,58 @@ class ListSchema(colander.Schema): ...@@ -19,8 +19,58 @@ class ListSchema(colander.Schema):
permission='provinsi') permission='provinsi')
def view_list(self): def view_list(self):
table = DeTable(ListSchema(), action=f"{self.home}/provinsi", table = DeTable(ListSchema(), action=f"{self.home}/provinsi",
action_suffix="/grid/act",
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close)) buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="") 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 ## DeTable Parameter
......
...@@ -116,6 +116,7 @@ class ViewProvinsi(BaseView): ...@@ -116,6 +116,7 @@ class ViewProvinsi(BaseView):
permission='provinsi') permission='provinsi')
def view_list(self): def view_list(self):
table = DeTable(ListSchema(), action=f"{self.home}/provinsi", table = DeTable(ListSchema(), action=f"{self.home}/provinsi",
action_suffix="/grid/act",
buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close)) buttons=(btn_view, btn_add, btn_edit, btn_delete, btn_close))
return dict(table=table.render(), scripts="") return dict(table=table.render(), scripts="")
......
...@@ -95,6 +95,7 @@ class DeTable(field.Field): ...@@ -95,6 +95,7 @@ class DeTable(field.Field):
self, self,
schema, schema,
action, action,
action_suffix='/grid/act',
buttons=(), buttons=(),
tableid="detable", tableid="detable",
# use_ajax=False, # use_ajax=False,
...@@ -131,10 +132,10 @@ class DeTable(field.Field): ...@@ -131,10 +132,10 @@ class DeTable(field.Field):
{button.title} </button> {button.title} </button>
""") """)
_scripts.append(f'$("#{tableid + button.name}").click(function ()' + _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> # <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.tableid = tableid
self.scripts = ''.join(_scripts).replace(';', ";\n") self.scripts = ''.join(_scripts).replace(';', ";\n")
table_widget = getattr(schema, "widget", None) table_widget = getattr(schema, "widget", None)
...@@ -158,6 +159,7 @@ class DeTable(field.Field): ...@@ -158,6 +159,7 @@ class DeTable(field.Field):
columns.append(d) columns.append(d)
self.columns = json.dumps(columns) self.columns = json.dumps(columns)
self.url = action self.url = action
self.url_suffix = action_suffix
class Button(object): class Button(object):
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
tableid tableid|field.tableid; tableid tableid|field.tableid;
columns columns|field.columns; columns columns|field.columns;
btnscripts scripts|field.scripts; btnscripts scripts|field.scripts;
url url|field.url" url url|field.url;
url_suffix url_suffix|field.url_suffix;"
tal:attributes="style style; tal:attributes="style style;
class css_class; class css_class;
attributes|field.widget.attributes|{};" attributes|field.widget.attributes|{};"
...@@ -42,7 +43,7 @@ ...@@ -42,7 +43,7 @@
var m${tableid}ID; var m${tableid}ID;
var o${tableid}; var o${tableid};
var o${tableid}Uri = "${url}" 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 = [ var tb_array = [
'<div class="btn-group pull-left">', '<div class="btn-group pull-left">',
'${structure:buttons}', '${structure:buttons}',
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!