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()">
 | 
					<%def name="head_tags()">
 | 
				
			||||||
  ${parent.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/jquery.ui.tailbone.js'))}
 | 
				
			||||||
 | 
					  ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.batch.js'))}
 | 
				
			||||||
  <script type="text/javascript">
 | 
					  <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() {
 | 
					        $('#save-refresh').click(function() {
 | 
				
			||||||
            var form = $(this).parents('form');
 | 
					            var form = $(this).parents('form');
 | 
				
			||||||
| 
						 | 
					@ -15,11 +17,6 @@
 | 
				
			||||||
            form.submit();
 | 
					            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>
 | 
					  </script>
 | 
				
			||||||
  <style type="text/css">
 | 
					  <style type="text/css">
 | 
				
			||||||
| 
						 | 
					@ -57,3 +54,13 @@
 | 
				
			||||||
</div><!-- form-wrapper -->
 | 
					</div><!-- form-wrapper -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
${rows_grid.render_complete(allow_save_defaults=False, tools=capture(self.grid_tools))|n}
 | 
					${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()">
 | 
					<%def name="head_tags()">
 | 
				
			||||||
  ${parent.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/jquery.ui.tailbone.js'))}
 | 
				
			||||||
 | 
					  ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.batch.js'))}
 | 
				
			||||||
  <script type="text/javascript">
 | 
					  <script type="text/javascript">
 | 
				
			||||||
    $(function() {
 | 
					    var has_execution_options = ${'true' if master.has_execution_options else 'false'};
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $('.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
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  </script>
 | 
					  </script>
 | 
				
			||||||
  <style type="text/css">
 | 
					  <style type="text/css">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -331,7 +331,7 @@ class BatchMasterView(MasterView):
 | 
				
			||||||
                    self.get_model_title(), self.get_instance_title(batch)))
 | 
					                    self.get_model_title(), self.get_instance_title(batch)))
 | 
				
			||||||
                return self.redirect_after_edit(batch)
 | 
					                return self.redirect_after_edit(batch)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return self.render_to_response('edit', {
 | 
					        context = {
 | 
				
			||||||
            'instance': batch,
 | 
					            'instance': batch,
 | 
				
			||||||
            'instance_title': self.get_instance_title(batch),
 | 
					            'instance_title': self.get_instance_title(batch),
 | 
				
			||||||
            'instance_deletable': self.deletable_instance(batch),
 | 
					            'instance_deletable': self.deletable_instance(batch),
 | 
				
			||||||
| 
						 | 
					@ -340,7 +340,12 @@ class BatchMasterView(MasterView):
 | 
				
			||||||
            'rows_grid': grid,
 | 
					            'rows_grid': grid,
 | 
				
			||||||
            'execute_title': self.get_execute_title(batch),
 | 
					            'execute_title': self.get_execute_title(batch),
 | 
				
			||||||
            'execute_enabled': self.executable(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):
 | 
					    def redirect_after_edit(self, batch):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue