62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Gitlab::Ci
 | |
|   module Badge
 | |
|     module Pipeline
 | |
|       ##
 | |
|       # Class that represents a pipeline badge template.
 | |
|       #
 | |
|       # Template object will be passed to badge.svg.erb template.
 | |
|       #
 | |
|       class Template < Badge::Template
 | |
|         STATUS_RENAME = { 'success' => 'passed' }.freeze
 | |
|         STATUS_COLOR = {
 | |
|           success: '#4c1',
 | |
|           failed: '#e05d44',
 | |
|           running: '#dfb317',
 | |
|           pending: '#dfb317',
 | |
|           preparing: '#a7a7a7',
 | |
|           canceled: '#9f9f9f',
 | |
|           skipped: '#9f9f9f',
 | |
|           unknown: '#9f9f9f'
 | |
|         }.freeze
 | |
| 
 | |
|         def initialize(badge)
 | |
|           @entity = badge.entity
 | |
|           @status = badge.status
 | |
|           @key_text = badge.customization.dig(:key_text)
 | |
|           @key_width = badge.customization.dig(:key_width)
 | |
|         end
 | |
| 
 | |
|         def key_text
 | |
|           if @key_text && @key_text.size <= MAX_KEY_TEXT_SIZE
 | |
|             @key_text
 | |
|           else
 | |
|             @entity.to_s
 | |
|           end
 | |
|         end
 | |
| 
 | |
|         def value_text
 | |
|           STATUS_RENAME[@status.to_s] || @status.to_s
 | |
|         end
 | |
| 
 | |
|         def key_width
 | |
|           if @key_width && @key_width.between?(1, MAX_KEY_WIDTH)
 | |
|             @key_width
 | |
|           else
 | |
|             62
 | |
|           end
 | |
|         end
 | |
| 
 | |
|         def value_width
 | |
|           54
 | |
|         end
 | |
| 
 | |
|         def value_color
 | |
|           STATUS_COLOR[@status.to_sym] || STATUS_COLOR[:unknown]
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |