Module: RestFtpDaemon::ViewsHelper

Defined in:
lib/rest-ftp-daemon/helpers/views.rb

Instance Method Summary collapse

Instance Method Details

#dashboard_feature(name, enabled, message_on = "enabled", message_of = "disabled") ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 4

def dashboard_feature name, enabled, message_on = "enabled", message_of = "disabled"
  # Build classes
  class_status = enabled ? 'enabled' : 'disabled'
  classes = "btn btn-default feature-#{class_status} disabled"

  # Build title
  title_status = enabled ? message_on : message_of
  title = "#{name}: #{title_status}"

  return sprintf(
    '<div class="%s" title="%s"><img src="/images/feature_%s.png" height="14" alt="%s"/></div>',
    classes,
    title,
    name,
    title
    )
end

#dashboard_job_url(job) ⇒ Object



22
23
24
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 22

def dashboard_job_url job
  "#{MOUNT_JOBS}/#{job.id}" if job.respond_to? :id
end

#datetime_short(datetime) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 71

def datetime_short datetime
  # return param.class
  return "-" if datetime.nil?
  return "?" unless datetime.respond_to? :to_date
  return datetime.to_datetime.strftime("%H:%M:%S") if datetime.to_date == Time.now.to_date
  datetime.to_datetime.strftime("%d/%m %H:%M:%S")
end

#formatted_duration(duration) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 79

def formatted_duration duration
  out = []

  hours = duration / (60 * 60)
  minutes = (duration / 60) % 60
  seconds = duration % 60

  out << "#{hours}h" if hours > 0
  out << "#{minutes}mn" if (minutes > 0) || (hours > 0)
  out << "#{seconds}s"

  out.join(" ")
end

#job_style(job) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 50

def job_style job
  case job.type
  when JOB_TYPE_TRANSFER
    icon_klass = "transfer"
  when JOB_TYPE_VIDEO
    icon_klass = "facetime-video"
  when JOB_TYPE_DUMMY
    icon_klass = "question-sign"
  else
    icon_klass = "label-default"
  end
end

#job_tentatives_style(count) ⇒ Object



26
27
28
29
30
31
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 26

def job_tentatives_style count
  return  "label-outline"   if count <= 0
  return  "label-info"      if count == 1
  return  "label-warning"   if count == 2
  return  "label-danger"    if count > 2
end

#job_type(job) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 63

def job_type job
  sprintf(
      '<span class="glyphicon glyphicon-%s" alt="%s"></span>',
      job_style(job),
      job.type
      )
end

#location_label(loc) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 108

def location_label loc
  # Open label-group 
  out = []
  out << '<span class="label-group">'

  # Add location style
  out << sprintf(
    '<span class="transfer-type label label-xs label-%s" title="%s">', 
    location_style(loc.uri),
    loc.uri
    )
  out << loc.uri.class.name.split('::').last
  out << '</span>'

  # Try to match a prefix token
  matches = /^\[([^\[]+)\](.*)/.match(loc.url)

  # Add a prefix label, if matched
  if matches
    out << '<span class="transfer-prefix label label-xs label-simple">'
    out << matches[1]
    out << '</span>'
    text = matches[2]
  else
    text = loc.path_fs
  end

  # Add remaining stuff
  out << '</span>'
  out << ' '
  out << text

  # Output all that stuff
  return out.join()
end

#location_style(uri) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 33

def location_style uri
  case uri
  when URI::FILE
    "info"
  when URI::FTP
    "warning"
  when URI::FTPES, URI::FTPS, URI::SFTP
    "success"
  when URI::S3
    "primary"
  when URI::Generic
    "info"
  else
    "default"
  end
end

#remove_credentials(path) ⇒ Object



93
94
95
96
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 93

def remove_credentials path
  return unless path.is_a? String
  path.sub(/([a-z]+:\/\/[^\/]+):[^\/]+\@/, '\1@')
end

#text_or_empty(text) ⇒ Object



144
145
146
147
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 144

def text_or_empty text
  return "-" if text.nil? || text.to_s.empty?
  text
end

#token_highlight(path) ⇒ Object



103
104
105
106
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 103

def token_highlight path
  return unless path.is_a? String
  path.gsub(/\[([^\[]+)\]/, token_to_label('\1'))
end

#token_to_label(name, url = '') ⇒ Object



98
99
100
101
# File 'lib/rest-ftp-daemon/helpers/views.rb', line 98

def token_to_label name, url = ''
  clean_url = remove_credentials url
  sprintf '<span class="token" title="%s">%s</span>', clean_url, name
end