Refactor batch view/edit pages to share some "execution options" logic
This commit is contained in:
		
							parent
							
								
									53950931af
								
							
						
					
					
						commit
						cdde848275
					
				
					 4 changed files with 67 additions and 43 deletions
				
			
		
							
								
								
									
										44
									
								
								tailbone/static/js/tailbone.batch.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								tailbone/static/js/tailbone.batch.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
 | 
			
		||||
/************************************************************
 | 
			
		||||
 *
 | 
			
		||||
 * tailbone.batch.js
 | 
			
		||||
 *
 | 
			
		||||
 * Common logic for view/edit batch pages
 | 
			
		||||
 *
 | 
			
		||||
 ************************************************************/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$(function() {
 | 
			
		||||
    
 | 
			
		||||
    $('.newgrid-wrapper').gridwrapper();
 | 
			
		||||
 | 
			
		||||
    $('#execute-batch').click(function() {
 | 
			
		||||
        if (has_execution_options) {
 | 
			
		||||
            $('#execution-options-dialog').dialog({
 | 
			
		||||
                title: "Execution Options",
 | 
			
		||||
                width: 500,
 | 
			
		||||
                height: 300,
 | 
			
		||||
                modal: true,
 | 
			
		||||
                buttons: [
 | 
			
		||||
                    {
 | 
			
		||||
                        text: "Execute",
 | 
			
		||||
                        click: function(event) {
 | 
			
		||||
                            $(event.target).button('option', 'label', "Executing, please wait...").button('disable');
 | 
			
		||||
                            $('form[name="batch-execution"]').submit();
 | 
			
		||||
                        }
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                        text: "Cancel",
 | 
			
		||||
                        click: function() {
 | 
			
		||||
                            $(this).dialog('close');
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                ]
 | 
			
		||||
            });
 | 
			
		||||
        } else {
 | 
			
		||||
            $(this).button('option', 'label', "Executing, please wait...").button('disable');
 | 
			
		||||
            $('form[name="batch-execution"]').submit();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -4,10 +4,12 @@
 | 
			
		|||
<%def name="head_tags()">
 | 
			
		||||
  ${parent.head_tags()}
 | 
			
		||||
  ${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js'))}
 | 
			
		||||
  ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.batch.js'))}
 | 
			
		||||
  <script type="text/javascript">
 | 
			
		||||
    $(function() {
 | 
			
		||||
 | 
			
		||||
        $('.newgrid-wrapper').gridwrapper();
 | 
			
		||||
    var has_execution_options = ${'true' if master.has_execution_options else 'false'};
 | 
			
		||||
 | 
			
		||||
    $(function() {
 | 
			
		||||
 | 
			
		||||
        $('#save-refresh').click(function() {
 | 
			
		||||
            var form = $(this).parents('form');
 | 
			
		||||
| 
						 | 
				
			
			@ -15,11 +17,6 @@
 | 
			
		|||
            form.submit();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $('#execute-batch').click(function() {
 | 
			
		||||
            $(this).button('option', 'label', "Executing, please wait...").button('disable');
 | 
			
		||||
            location.href = '${url('{}.execute'.format(route_prefix), uuid=batch.uuid)}';
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
  </script>
 | 
			
		||||
  <style type="text/css">
 | 
			
		||||
| 
						 | 
				
			
			@ -57,3 +54,13 @@
 | 
			
		|||
</div><!-- form-wrapper -->
 | 
			
		||||
 | 
			
		||||
${rows_grid.render_complete(allow_save_defaults=False, tools=capture(self.grid_tools))|n}
 | 
			
		||||
 | 
			
		||||
<div id="execution-options-dialog" style="display: none;">
 | 
			
		||||
 | 
			
		||||
  ${h.form(url('{}.execute'.format(route_prefix), uuid=batch.uuid), name='batch-execution')}
 | 
			
		||||
  % if master.has_execution_options:
 | 
			
		||||
      ${rendered_execution_options|n}
 | 
			
		||||
  % endif
 | 
			
		||||
  ${h.end_form()}
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,41 +4,9 @@
 | 
			
		|||
<%def name="head_tags()">
 | 
			
		||||
  ${parent.head_tags()}
 | 
			
		||||
  ${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js'))}
 | 
			
		||||
  ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.batch.js'))}
 | 
			
		||||
  <script type="text/javascript">
 | 
			
		||||
    $(function() {
 | 
			
		||||
 | 
			
		||||
        $('.newgrid-wrapper').gridwrapper();
 | 
			
		||||
 | 
			
		||||
        $('#execute-batch').click(function() {
 | 
			
		||||
            % if master.has_execution_options:
 | 
			
		||||
                $('#execution-options-dialog').dialog({
 | 
			
		||||
                    title: "Execution Options",
 | 
			
		||||
                    width: 500,
 | 
			
		||||
                    height: 300,
 | 
			
		||||
                    modal: true,
 | 
			
		||||
                    buttons: [
 | 
			
		||||
                        {
 | 
			
		||||
                            text: "Execute",
 | 
			
		||||
                            click: function(event) {
 | 
			
		||||
                                $(event.target).button('option', 'label', "Executing, please wait...").button('disable');
 | 
			
		||||
                                $('form[name="batch-execution"]').submit();
 | 
			
		||||
                            }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                            text: "Cancel",
 | 
			
		||||
                            click: function() {
 | 
			
		||||
                                $(this).dialog('close');
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    ]
 | 
			
		||||
                });
 | 
			
		||||
            % else:
 | 
			
		||||
                $(this).button('option', 'label', "Executing, please wait...").button('disable');
 | 
			
		||||
                $('form[name="batch-execution"]').submit();
 | 
			
		||||
            % endif
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
    var has_execution_options = ${'true' if master.has_execution_options else 'false'};
 | 
			
		||||
  </script>
 | 
			
		||||
  <style type="text/css">
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -331,7 +331,7 @@ class BatchMasterView(MasterView):
 | 
			
		|||
                    self.get_model_title(), self.get_instance_title(batch)))
 | 
			
		||||
                return self.redirect_after_edit(batch)
 | 
			
		||||
 | 
			
		||||
        return self.render_to_response('edit', {
 | 
			
		||||
        context = {
 | 
			
		||||
            'instance': batch,
 | 
			
		||||
            'instance_title': self.get_instance_title(batch),
 | 
			
		||||
            'instance_deletable': self.deletable_instance(batch),
 | 
			
		||||
| 
						 | 
				
			
			@ -340,7 +340,12 @@ class BatchMasterView(MasterView):
 | 
			
		|||
            'rows_grid': grid,
 | 
			
		||||
            'execute_title': self.get_execute_title(batch),
 | 
			
		||||
            'execute_enabled': self.executable(batch),
 | 
			
		||||
        })
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if context['execute_enabled'] and self.has_execution_options:
 | 
			
		||||
            context['rendered_execution_options'] = self.render_execution_options()
 | 
			
		||||
 | 
			
		||||
        return self.render_to_response('edit', context)
 | 
			
		||||
 | 
			
		||||
    def redirect_after_edit(self, batch):
 | 
			
		||||
        """
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue