@@ -119,29 +119,30 @@ function Events0() { // app_builder
119119
120120 task . buttons_info = {
121121 divider : { } ,
122- project_params : { handler : set_project_params , short_cut : 'F2' , key_code : 113 , editor : true } ,
123- db : { handler : edit_database , short_cut : 'F4' , key_code : 115 , editor : true } ,
124- 'export' : { handler : export_task , short_cut : 'Ctrl-E' , key_code : 69 , key_ctrl : true } ,
125- 'import' : { handler : import_task , short_cut : 'Ctrl-I' , key_code : 73 , key_ctrl : true } ,
126- find : { handler : find_in_task , short_cut : 'Alt-F' , key_code : 70 , key_alt : true } ,
127- print : { handler : print_code } ,
128- client_module : { handler : task . sys_items . edit_client , item : task . sys_items , short_cut : 'F7' , key_code : 118 , editor : true } ,
129- server_module : { handler : task . sys_items . edit_server , item : task . sys_items , short_cut : 'F8' , key_code : 119 , editor : true } ,
130- templates : { handler : task . sys_items . edit_templates , item : task . sys_items , short_cut : 'F9' , key_code : 120 , editor : true } ,
131- 'index.html' : { handler : task . sys_items . edit_index_html , item : task . sys_items , short_cut : 'F10' , key_code : 121 , editor : true } ,
132- 'project.css' : { handler : task . sys_items . edit_project_css , item : task . sys_items , short_cut : 'F11' , key_code : 122 , editor : true } ,
133- 'Lookup lists' : { handler : show_lookup_lists , editor : true } ,
134- viewing : { handler : task . sys_items . view_setup , item : task . sys_items , editor : true } ,
135- editing : { handler : task . sys_items . edit_setup , item : task . sys_items , editor : true } ,
136- filters : { handler : task . sys_items . filters_setup , item : task . sys_items , editor : true } ,
137- details : { handler : task . sys_items . details_setup , item : task . sys_items , editor : true } ,
138- order : { handler : task . sys_items . order_setup , item : task . sys_items , editor : true } ,
139- indices : { handler : task . sys_items . indices_setup , item : task . sys_items , editor : true } ,
140- foreign_keys : { handler : task . sys_items . foreign_keys_setup , item : task . sys_items , editor : true } ,
141- reports : { handler : task . sys_items . reports_setup , item : task . sys_items , editor : true } ,
142- report_params : { handler : task . sys_items . report_params_setup , item : task . sys_items , editor : true , short_cut : 'F7' , key_code : 118 , editor : true } ,
143- privileges : { handler : task . sys_items . privileges_setup , item : task . sys_items , editor : true } ,
144- 'Prepare files' : { handler : task . prepare_files }
122+ project_params : { handler : set_project_params , short_cut : 'F2' , key_code : 113 , icon : 'bi bi-gear' , editor : true } ,
123+ db : { handler : edit_database , short_cut : 'F4' , key_code : 115 , icon : 'bi bi-database-gear' , editor : true } ,
124+ 'export' : { handler : export_task , short_cut : 'Ctrl-E' , key_code : 69 , key_ctrl : true , icon : 'bi bi-file-earmark-zip' } ,
125+ 'import' : { handler : import_task , short_cut : 'Ctrl-I' , key_code : 73 , key_ctrl : true , icon : 'bi bi-upload' } ,
126+ find : { handler : find_in_task , short_cut : 'Alt-F' , key_code : 70 , key_alt : true , icon : 'bi bi-search' } ,
127+ print : { handler : print_code , icon : 'bi bi-printer' } ,
128+ client_module : { handler : task . sys_items . edit_client , item : task . sys_items , short_cut : 'F7' , key_code : 118 , icon : 'bi bi-filetype-js' , editor : true } ,
129+ server_module : { handler : task . sys_items . edit_server , item : task . sys_items , short_cut : 'F8' , key_code : 119 , icon : 'bi bi-filetype-py' , editor : true } ,
130+ templates : { handler : task . sys_items . edit_templates , item : task . sys_items , short_cut : 'F9' , key_code : 120 , icon : 'bi bi-filetype-txt' , editor : true } ,
131+ 'index.html' : { handler : task . sys_items . edit_index_html , item : task . sys_items , short_cut : 'F10' , key_code : 121 , icon : 'bi bi-filetype-html' , editor : true } ,
132+ 'project.css' : { handler : task . sys_items . edit_project_css , item : task . sys_items , short_cut : 'F11' , key_code : 122 , icon : 'bi bi-filetype-css' , editor : true } ,
133+ 'Lookup lists' : { handler : show_lookup_lists , icon : 'bi bi-card-list' , editor : true } ,
134+ viewing : { handler : task . sys_items . view_setup , item : task . sys_items , icon : 'bi bi-window' , editor : true } ,
135+ editing : { handler : task . sys_items . edit_setup , item : task . sys_items , icon : 'bi bi-file-ruled' , editor : true } ,
136+ filters : { handler : task . sys_items . filters_setup , item : task . sys_items , icon : 'bi bi-funnel' , editor : true } ,
137+ details : { handler : task . sys_items . details_setup , item : task . sys_items , icon : 'bi bi-window-sidebar' , editor : true } ,
138+ order : { handler : task . sys_items . order_setup , item : task . sys_items , icon : 'bi bi-sort-alpha-up' , editor : true } ,
139+ indices : { handler : task . sys_items . indices_setup , item : task . sys_items , icon : 'bi bi-table' , editor : true } ,
140+ foreign_keys : { handler : task . sys_items . foreign_keys_setup , item : task . sys_items , icon : 'bi bi-arrow-left-right' , editor : true } ,
141+ reports : { handler : task . sys_items . reports_setup , item : task . sys_items , icon : 'bi bi-file-earmark-pdf' , editor : true } ,
142+ report_params : { handler : task . sys_items . report_params_setup , item : task . sys_items , editor : true , short_cut : 'F7' , key_code : 118 , icon : 'bi bi-card-checklist' , editor : true } ,
143+ privileges : { handler : task . sys_items . privileges_setup , item : task . sys_items , icon : 'bi bi-person-lock' , editor : true } ,
144+ report_templates : { handler : task . sys_items . read_report_folder , item : task . sys_items , icon : 'bi bi-file-earmark-excel' , editor : true } ,
145+ 'Prepare files' : { handler : task . prepare_files , icon : 'bi bi-folder-check' }
145146 } ;
146147
147148 $ ( "#content" ) . show ( ) ;
@@ -1209,6 +1210,7 @@ function Events3() { // sys_items
12091210 'server_module' ,
12101211 'divider' ,
12111212 'report_params' ,
1213+ 'report_templates' ,
12121214 'divider' ,
12131215 'privileges'
12141216 ] ) ;
@@ -2866,6 +2868,12 @@ function Events3() { // sys_items
28662868 function on_edit_form_closed ( item ) {
28672869 item . _import_info = undefined ;
28682870 }
2871+
2872+ function read_report_folder ( item ) {
2873+ task . report_templates . view_options . template_class = 'import-tables-view' ;
2874+ task . report_templates . view_options . title = 'Upload, rename and download report templates' ;
2875+ task . report_templates . view ( ) ;
2876+ }
28692877 this . init_fields = init_fields ;
28702878 this . init_buttons = init_buttons ;
28712879 this . tree_changed = tree_changed ;
@@ -2929,6 +2937,7 @@ function Events3() { // sys_items
29292937 this . on_before_post = on_before_post ;
29302938 this . move_to_group = move_to_group ;
29312939 this . on_edit_form_closed = on_edit_form_closed ;
2940+ this . read_report_folder = read_report_folder ;
29322941}
29332942
29342943task . events . events3 = new Events3 ( ) ;
@@ -6623,4 +6632,112 @@ function Events26() { // app_builder.catalogs.sys_items.sys_fields
66236632
66246633task . events . events26 = new Events26 ( ) ;
66256634
6635+ function Events32 ( ) { // app_builder.catalogs.report_templates
6636+
6637+ let old_file_name ;
6638+
6639+ function on_view_form_created ( item ) {
6640+ item . add_view_button ( 'Download' , { type : 'primary' , image : 'bi bi-download' , btn_id : 'download-btn' } ) ;
6641+ item . add_view_button ( 'Rename' , { type : 'primary' , image : 'bi bi-pencil-square' , btn_id : 'edit-btn' } ) ;
6642+ item . add_view_button ( 'Delete' , { type : 'danger' , image : 'bi bi-trash' , btn_id : 'delete-btn' , btn_class : 'float-left' } ) ;
6643+
6644+ item . view_form . find ( '#download-btn' ) . click ( function ( ) {
6645+ export_report_template_file ( item , item . f_file_name . value ) ;
6646+ } ) ;
6647+
6648+ item . view_form . find ( '#edit-btn' ) . click ( function ( ) {
6649+ item . edit_record ( ) ;
6650+ } ) ;
6651+
6652+ item . view_form . find ( '#delete-btn' ) . click ( function ( ) {
6653+ delete_report_template_file ( item , item . f_file_name . value ) ;
6654+ } ) ;
6655+
6656+
6657+ item . view_form . find ( '#import-btn' ) . html ( '<i class="bi bi-upload"></i> Upload' ) . click ( function ( ) {
6658+ task . upload ( 'static/files' , { accept : '.ods' , callback : function ( file_name ) {
6659+ task . server ( 'upload_report_template_file' , [ file_name ] , function ( res , error ) {
6660+ if ( error ) {
6661+ item . refresh_page ( ) ;
6662+ item . warning ( error ) ;
6663+ } else {
6664+ item . refresh_page ( ) ;
6665+ item . warning ( 'Report template has successfully uploaded!' ) ;
6666+ }
6667+ } ) ;
6668+ } } ) ;
6669+ } ) ;
6670+ }
6671+
6672+ function on_after_open ( item ) {
6673+ task . server ( 'read_report_folder' , function ( table_names ) {
6674+ for ( var i = 0 ; i < table_names . length ; i ++ ) {
6675+ item . append ( ) ;
6676+ item . f_file_name . value = table_names [ i ] ;
6677+ item . post ( ) ;
6678+ }
6679+ item . first ( ) ;
6680+ } ) ;
6681+ }
6682+
6683+ function on_edit_form_created ( item ) {
6684+ old_file_name = item . f_file_name . value ;
6685+
6686+ item . edit_options . title = 'Rename report template' ;
6687+
6688+ item . edit_form . find ( '#ok-btn' ) . click ( function ( e ) {
6689+ e . preventDefault ( ) ;
6690+
6691+ if ( item . f_file_name . value !== old_file_name ) {
6692+ task . server ( 'rename_report_template_file' , [ old_file_name , item . f_file_name . value ] , function ( res , error ) {
6693+ if ( error ) {
6694+ item . warning ( error ) ;
6695+ item . close_edit_form ( ) ;
6696+ } else {
6697+ item . close_edit_form ( ) ;
6698+ item . refresh_page ( ) ;
6699+ }
6700+ } ) ;
6701+ }
6702+ } ) ;
6703+ }
6704+
6705+ function export_report_template_file ( item , f_file_name ) {
6706+ task . question ( 'Do you want to download report template file: ' + f_file_name + '?' ,
6707+ function ( ) {
6708+ let file_name = task . server ( 'export_report_template_file' , [ f_file_name ] ) ,
6709+ url = [ location . protocol , '//' , location . host , location . pathname ] . join ( '' ) ;
6710+ url += file_name ;
6711+ window . open ( encodeURI ( url ) ) ;
6712+ /*var link,
6713+ host = location.protocol + '/' + '/' + location.hostname + (location.port ? ':' + location.port: ''),
6714+ url = task.server('export_report_template_file', [f_file_name, host]);
6715+ window.open(encodeURI(url));*/
6716+ }
6717+ ) ;
6718+ }
6719+
6720+ function delete_report_template_file ( item , f_file_name ) {
6721+ task . question ( 'Do you want to delete report template file: ' + f_file_name + '?' ,
6722+ function ( ) {
6723+ task . server ( 'delete_report_template_file' , [ f_file_name ] , function ( res , error ) {
6724+ if ( error ) {
6725+ item . warning ( error ) ;
6726+ } else {
6727+ item . alert_success ( 'Successfully deleted report template!' ) ;
6728+ item . refresh_page ( ) ;
6729+ }
6730+ } ) ;
6731+ }
6732+ ) ;
6733+ }
6734+ this . on_view_form_created = on_view_form_created ;
6735+ this . on_after_open = on_after_open ;
6736+ this . on_edit_form_created = on_edit_form_created ;
6737+ this . export_report_template_file = export_report_template_file ;
6738+ this . delete_report_template_file = delete_report_template_file ;
6739+ }
6740+
6741+ task . events . events32 = new Events32 ( ) ;
6742+
66266743} ) ( jQuery , task )
0 commit comments