Commit d5159c4a058cbdb604ec5d7d847de371424e245b

Authored by totoro
1 parent 5ef0dd2a

add email and phone fields in the renderer.

Jqrid now show 30 lines as default and the editing can be made by double click on the line
Showing 1 changed file with 84 additions and 14 deletions   Show diff stats
view/view_table_renderer.anubis
... ... @@ -176,11 +176,27 @@ define String
176 176 editurl: '?aws_controller=hk_c&aws_action=grid_action&table_name="+rows.table_name+"',
177 177 iconSet: \"fontAwesome\",
178 178 autowidth:true,
179   - shrinkToFit:true,
180   - rowNum:10,
  179 + shrinkToFit:false,
  180 + rowNum:30,
  181 + rowList:[5,10,30,50],
181 182 cellEdit: false,
182 183 cellsubmit: 'remote',
183   - cellurl: '?aws_controller=hk_c&aws_action=update_row&table_name="+rows.table_name+"',
  184 + cellurl: '?aws_controller=hk_c&aws_action=grid_action&table_name="+rows.table_name+"',
  185 + editurl: '?aws_controller=hk_c&aws_action=grid_action&table_name="+rows.table_name+"',
  186 + onSelectRow: function (rowid, status, e) {
  187 + var $self = $(this), savedRow = $self.jqGrid(\"getGridParam\", \"savedRow\");
  188 + if (savedRow.length > 0 && savedRow[0].id !== rowid) {
  189 + $self.jqGrid(\"restoreRow\", savedRow[0].id);
  190 + }
  191 + },
  192 + ondblClickRow: function (rowid, iRow, iCol, e) {
  193 + var $self = $(this), savedRow = $self.jqGrid(\"getGridParam\", \"savedRow\");
  194 + if (savedRow.length > 0 && savedRow[0].id !== rowid) {
  195 + $self.jqGrid(\"restoreRow\", savedRow[0].id);
  196 + }
  197 + $self.jqGrid(\"editRow\", rowid, { focusField: e.target });
  198 + },
  199 +
184 200 pager: '#"+uid+"_pager',
185 201 caption:"+to_JSON_String(_T(to_upper(rows.table_name)))+",
186 202 actionsNavOptions: {
... ... @@ -218,7 +234,7 @@ public define HTML_Partial_Content
218 234 )=
219 235 with filter_clause = if clause = "" then "" else "&clause="+url_quote(clause),
220 236 with referer_arg = "&"+to_Web_arg(table_referer, ""),
221   - with js = js_inline(jquery_ready("$(\"#"+uid+"_grid\").jqGrid({\n"+
  237 + with js = js_inline(jquery_ready("var lastSel;$(\"#"+uid+"_grid\").jqGrid({\n"+
222 238 "url:'?aws_controller=hk_c&aws_action=grid_view&table_name="+rows.table_name+"&view_name="+rows.view_name+filter_clause+referer_arg+"',"+
223 239 "datatype: \"json\","+
224 240 to_jqGrid_ColModel(db, table_referer, _T, rows.view_model.list)+","+
... ... @@ -234,6 +250,24 @@ public define HTML_Partial_Content
234 250 }
235 251 function unformatColor(cellValue, options, cellObject) {
236 252 return $(cellObject.html()).css(\"backgroundColor\").substring(1);
  253 + }
  254 + function formatPhone(cellValue, options, rowObject) {
  255 + var phoneInput = '<span class=\"hk_phone_call\"><img src=\\\"/icons/16x16/phone.png\\\" onclick=\"hk_phone_call(this);\">' + cellValue + '</span>';
  256 + return phoneInput;
  257 + }
  258 + function unformatPhone(cellValue, options, cellObject) {
  259 + var jqo = $(cellObject);
  260 + var ret = jqo.text();
  261 + return ret;
  262 + }
  263 + function formatEmail(cellValue, options, rowObject) {
  264 + var phoneInput = '<span class=\"hk_send_email\"><img src=\\\"/icons/16x16/email_edit.png\\\" onclick=\"hk_send_email(this);\">' + cellValue + '</span>';
  265 + return phoneInput;
  266 + }
  267 + function unformatEmail(cellValue, options, cellObject) {
  268 + var jqo = $(cellObject);
  269 + var ret = jqo.text();
  270 + return ret;
237 271 }")),
238 272  
239 273 partial_content(jqgrid_init(lang) + [js],
... ... @@ -443,6 +477,10 @@ public define List(CXM_Form_Field)
443 477 [input([class("datetimepicker")], label(_T(s_name), no_help), html_Id(c_name), wan(c_name), init(value), custom(18), mandatory), help_line(help, _T)],
444 478 color( s_name, c_name, value, help) then
445 479 [input([class("jscolor")], label(_T(s_name), no_help), wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
  480 + phone( s_name, c_name, value, help) then
  481 + [input([class("hk_input_phone")], label(_T(s_name), no_help), wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
  482 + email( s_name, c_name, value, help) then
  483 + [input([class("hk_input_email")], label(_T(s_name), no_help), wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
446 484 },
447 485 edit_form_lines(db, fk_clause, table_referer, _T, t, new_entry, reverse(line)+so_far)
448 486 }.
... ... @@ -542,25 +580,33 @@ public define HTML_Partial_Content
542 580 with button_name_and_new = if create then _T("CREATE_AND_EDIT_NEW") else _T("UPDATE_AND_EDIT_NEW"),
543 581  
544 582 partial_content(
545   - [ js(js_file("js/jscolor.min.js"))
  583 + [ js(js_file("js/jscolor.min.js")),
  584 + js(js_file("js/dropzone.js")),
  585 + js_inline(jquery_ready("Dropzone.options.myAwesomeDropzone = {
  586 + maxFiles: 100,
  587 + dictDefaultMessage : \""+_T("DROP_FILE_HERE")+"\",
  588 + dictFileTooBig : \""+_T("FILE_TOO_BIG")+"\",
  589 + };
  590 + $('#my-awesome-dropzone').dropzone(); ")),
546 591 ]+
547 592 jq_datetimepicker_init(lang) +
548 593 get_editor_header(list_entries), //add editor header if need. Like init ck_editor
549 594 sequence([
550 595 cxm_form( table_name, lwa,
551   - edit_form_lines(db, "", table_referer, _T, list_entries, create, [])+
  596 +
552 597 [ one_line_fields([
553 598 submit(if create then hkc_save_row else hkc_update_row, failure, button_name, [("table_name", table_name)]),
554 599 submit(if create then hkc_save_row_and_new else hkc_update_row_and_new, failure, button_name_and_new, [("table_name", table_name)]),
555 600 submit(hkc_cancel, failure, _T("CANCEL"))
556   - ])
557   - ]
558   - )]+
559   - if id = "none" then
  601 + ]),
  602 + hr
  603 + ]+edit_form_lines(db, "", table_referer, _T, list_entries, create, [])
  604 + +
  605 + (if id = "none" then
560 606 []
561 607 else
562 608 map( (HK_Form_Tab tab)
563   - |->
  609 + |->
564 610 since tab is hk_form_tab(fk_table_name, fk_col_name, list_view_name),
565 611 with referer = hk_referer(table_name, id, fk_table_name, fk_col_name),
566 612 if table_in_list_view_only(db, _T, lang, web_site_directory, fk_table_name, list_view_name, "edit", "", referer, fk_clause, vtm) is
... ... @@ -569,7 +615,18 @@ public define HTML_Partial_Content
569 615 success(p_content) then partial(p_content)
570 616 }
571 617 //text("Foreign Key from table ["+fk_table_name+"] columns ["+fk_col_name+"] view to use ["+list_view_name+"]")
572   - ,list_tabs)
  618 + ,list_tabs))+
  619 + [ hr,
  620 + one_line_fields([
  621 + submit(if create then hkc_save_row else hkc_update_row, failure, button_name, [("table_name", table_name)]),
  622 + submit(if create then hkc_save_row_and_new else hkc_update_row_and_new, failure, button_name_and_new, [("table_name", table_name)]),
  623 + submit(hkc_cancel, failure, _T("CANCEL"))
  624 + ])
  625 + ]
  626 + ),
  627 +
  628 + form("my-awesome-dropzone",[class("dropzone")], "upload_csv_file&step=2&format=csv&table_name="+table_name, [], literal("")),
  629 + ]
573 630 )).
574 631  
575 632 //Edit table part
... ... @@ -639,6 +696,11 @@ public define List(CXM_Form_Field)
639 696 [input([class("datetimepicker")], no_label, html_Id(c_name), wan(c_name), init(value), custom(18), mandatory), help_line(help, _T)],
640 697 color( s_name, c_name, value, help) then
641 698 [input([class("jscolor")], no_label, wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
  699 + phone( s_name, c_name, value, help) then
  700 + [input([class("hk_input_phone")], no_label, wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
  701 + email( s_name, c_name, value, help) then
  702 + [input([class("hk_input_email")], no_label, wan(c_name), init(not_null_String(value)), narrow, mandatory), help_line(help, _T)],
  703 +
642 704 }.
643 705  
644 706 define List(Cell_Option)
... ... @@ -691,8 +753,15 @@ define CXM_Form_Field
691 753 )
692 754 )
693 755 .
  756 +public define List(CXM_Form_Field)
  757 + get_hidden
  758 + (
  759 + List(HK_Form_Table_Attribute) table_attrs
  760 + )=
  761 + map((HK_Form_Table_Attribute attr) |-> since attr is hidden(n, v), hidden(html_Id(""), wan(n), wav(v)), table_attrs)
  762 +.
694 763  
695   -public define HTML_Partial_Content
  764 +public define HTML_Partial_Content
696 765 renderer_edit_table_form
697 766 (
698 767 SQLite3DataBase db,
... ... @@ -721,7 +790,8 @@ public define HTML_Partial_Content
721 790 jq_datetimepicker_init(lang) +
722 791 get_editor_header(table_form.form_lines), //add editor header if need. Like init ck_editor
723 792 sequence([
724   - cxm_form( table_name, [], lwa,
  793 + cxm_form( table_name, [], lwa,
  794 + get_hidden(table_form.table_attr)+
725 795 [construct_edit_form_table(db, table_referer, _T, lwa, table_form.form_lines, create)]+
726 796 [ one_line_fields([
727 797 submit(if create then hkc_save_row else hkc_update_row, failure, button_name, [("table_name", table_name)]),
... ...