Module: CoreLinkHelper

Defined in:
app/helpers/core_link_helper.rb

Overview

common link generation helpers

Instance Method Summary collapse

Instance Method Details

Show a list of things if the condition is true.



188
189
190
191
192
193
194
195
196
197
198
199
# File 'app/helpers/core_link_helper.rb', line 188

def action_link_tag(condition, path, options = {})
  return unless condition

  confirmation = options[:confirmation] || t('links.action_confirmation')
  confirmation_required = options[:confirmation].present? ? { confirm: confirmation } : {}
  (:a, href: path, class: options[:classes], data: confirmation_required) do
    concat((:i, class: 'material-icons') do
      options[:icon_name] || 'info'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#action_list_tag(condition, path, options = {}) ⇒ Object

Show a list of things in a pull down list if the condition is true



175
176
177
178
179
180
181
182
183
# File 'app/helpers/core_link_helper.rb', line 175

def action_list_tag(condition, path, options = {})
  return unless condition

  raise('Label Required') if options[:label].blank?

  (:li) do
    action_link_tag(condition, path, options)
  end
end

Add the ‘Add` button



361
362
363
364
365
366
367
368
369
370
371
# File 'app/helpers/core_link_helper.rb', line 361

def add_link_button(path, options)
  options[:title] ||= t('ui_form.actions.add')
  options[:icon] ||= 'add'
  (:a,
              href: path,
              class: 'btn-floating btn-large right',
              style: 'padding: 0;margin: 0px 15px',
              title: options[:title]) do
    concat((:i, class: 'material-icons') { options[:icon] })
  end
end

Add a thingy



350
351
352
353
354
355
356
# File 'app/helpers/core_link_helper.rb', line 350

def add_link_tag(klass, path, options = {})
  return unless can?(:create, klass)

  (:div, class: 'fixed-action-btn horizontal') do
    concat(add_link_button(path, options))
  end
end

#copy_tag(copy_text, options = {}) ⇒ Object

Setup the text as copy text



19
20
21
22
23
24
25
26
27
# File 'app/helpers/core_link_helper.rb', line 19

def copy_tag(copy_text, options = {})
  secure = options[:secure] || false
  display_text = secure ? mask_value(copy_text) : copy_text
  (:div, class: 'clipboard') do
    concat((:span) { display_text })
    concat(copy_text_tag(copy_text, options))
    concat(download_tag(options[:download_url], options)) if options[:download_url].present?
  end
end

#copy_text_tag(copy_text, options = {}) ⇒ Object

Create a text element that is easy to copy



32
33
34
35
36
37
38
39
# File 'app/helpers/core_link_helper.rb', line 32

def copy_text_tag(copy_text, options = {})
  options[:icon_name] ||= 'content_copy'
  (:a, class: 'copy', href: '#', data: { 'clipboard-text' => copy_text }, onclick: 'return false;') do
    concat((:i, class: 'material-icons') do
      options[:icon_name]
    end)
  end
end

Create a thingy



244
245
246
247
248
249
250
251
252
253
254
# File 'app/helpers/core_link_helper.rb', line 244

def create_link_tag(obj, path, options = {})
  return unless can? :create, obj

  confirmation = options[:confirmation] || t('links.action_confirmation', name: obj.class.to_s.underscore.humanize)
  (:a, href: path, data: { confirm: confirmation }) do
    concat((:i, class: 'material-icons') do
      options[:icon_name] || 'add'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#create_list_tag(obj, path, options = {}) ⇒ Object

Create a thingy in a pull-down list



232
233
234
235
236
237
238
239
# File 'app/helpers/core_link_helper.rb', line 232

def create_list_tag(obj, path, options = {})
  return unless can? :create, obj

  options[:label] ||= I18n.t('ui_form.actions.create')
  (:li) do
    create_link_tag(obj, path, options)
  end
end

Delete an thingy



216
217
218
219
220
221
222
223
224
225
226
227
# File 'app/helpers/core_link_helper.rb', line 216

def delete_link_tag(obj, path, options = {})
  return unless can? :destroy, obj

  data = { method: :delete,
           confirm: options[:confirm] || t('links.deletion_confirmation', name: obj.class.to_s.underscore.humanize) }
  (:a, href: path, data: data) do
    concat((:i, class: 'material-icons') do
      options[:icon_name] || 'delete'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#delete_list_tag(obj, path, options = {}) ⇒ Object

Delete a thingy in a pull down list



204
205
206
207
208
209
210
211
# File 'app/helpers/core_link_helper.rb', line 204

def delete_list_tag(obj, path, options = {})
  return unless can? :destroy, obj

  options[:label] ||= I18n.t('ui_form.actions.delete')
  (:li) do
    delete_link_tag(obj, path, options)
  end
end

Demote a publishable kb object



323
324
325
326
327
328
329
330
331
332
# File 'app/helpers/core_link_helper.rb', line 323

def demote_link_tag(obj, path, options = {})
  return unless can? :demote, obj

  (:a, href: path) do
    concat((:i, class: 'material-icons') do
      'file_download'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#demote_list_tag(obj, path, options = {}) ⇒ Object

Demote a publishable kb object in a pull down list



311
312
313
314
315
316
317
318
# File 'app/helpers/core_link_helper.rb', line 311

def demote_list_tag(obj, path, options = {})
  return unless can? :demote, obj

  options[:label] ||= I18n.t('links.demote')
  (:li) do
    demote_link_tag(obj, path, options)
  end
end

#download_tag(url, options = {}) ⇒ Object

Generate a download link with the download icon



10
11
12
13
14
# File 'app/helpers/core_link_helper.rb', line 10

def download_tag(url, options = {})
  (:a, href: url) do
    concat(materialize_icon(options[:download_icon_name] || 'cloud_download'))
  end
end

Edit a page



337
338
339
340
341
342
343
344
345
# File 'app/helpers/core_link_helper.rb', line 337

def edit_class_link_tag(klass, path)
  return unless can?(:edit, klass)

  (:div, class: 'fixed-action-btn horizontal') do
    concat((:a, href: path, class: 'btn-floating btn-large right', style: 'padding: 0;margin: 0px 15px') do
      concat((:i, class: 'material-icons') { 'edit' })
    end)
  end
end

Edit a thingy



98
99
100
101
102
103
104
105
106
107
108
109
# File 'app/helpers/core_link_helper.rb', line 98

def edit_link_tag(obj, path, options = {})
  return unless can? :edit, obj

  icon = options[:icon] || 'edit'
  tooltip = options[:tooltip] || 'Edit'
  (:a, href: path, class: 'tooltipped', data: {tooltip: tooltip}) do
    concat((:i, class: 'material-icons') do
      icon
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#edit_list_tag(obj, path, options = {}) ⇒ Object

Edit a thingy in a pull down list



86
87
88
89
90
91
92
93
# File 'app/helpers/core_link_helper.rb', line 86

def edit_list_tag(obj, path, options = {})
  return unless can? :edit, obj

  options[:label] ||= I18n.t('ui_form.actions.edit')
  (:li) do
    edit_link_tag(obj, path, options)
  end
end

#edit_modal_tag(obj, path, _options = {}) ⇒ Object



111
112
113
114
115
116
117
# File 'app/helpers/core_link_helper.rb', line 111

def edit_modal_tag(obj, path, _options = {})
  return unless can? :edit, obj

  (:a, href: path, class: 'modal-action') do
    concat(I18n.t('ui_form.actions.edit'))
  end
end

#favorite_tag(favorite) ⇒ Object

Add a favorite tag



57
58
59
60
61
62
# File 'app/helpers/core_link_helper.rb', line 57

def favorite_tag(favorite)
  (:i,
              class: 'material-icons pointer favorite',
              id: favorite.id.to_s,
              type: favorite.favorite_type) { concat('favorite_border') }
end

#form_cancel_button_tag(path, name = 'cancel') ⇒ Object

Form cancel button



376
377
378
379
380
381
# File 'app/helpers/core_link_helper.rb', line 376

def form_cancel_button_tag(path, name = 'cancel')
  options = { class: 'btn-large waves-effect waves-light secondary', href: path }
  (:a, options) do
    concat(t("ui_form.actions.#{name}"))
  end
end

#form_submit_button_tag(condition = true, options = {}) ⇒ Object

Form submit button



386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
# File 'app/helpers/core_link_helper.rb', line 386

def form_submit_button_tag(condition = true, options = {})
  return unless condition

  tag_options = { class: 'btn-large waves-effect waves-light', type: :submit }
  if options[:action].present?
    tag_options[:name] = options[:name] || 'button_action'
    tag_options[:value] = options[:action]
  end
  tag_options[:class] += ' disabled' if options[:disabled]
  tag_options[:class] += ' disabled' if options[:disabled]

  button_text = options[:text] || t('ui_form.actions.save')
  button_icon = options[:icon] || 'save'
  (:button, tag_options) do
    concat(button_text)
    concat((:i, class: 'material-icons right') { button_icon })
  end
end

Details of a thingy



160
161
162
163
164
165
166
167
168
169
170
# File 'app/helpers/core_link_helper.rb', line 160

def info_link_tag(obj, path, options = {})
  return unless can? :read, obj

  icon = options[:icon] || 'info'
  (:a, href: path) do
    concat((:i, class: 'material-icons') do
      icon
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#info_list_tag(obj, path, options = {}) ⇒ Object

Details of a thingy in a pull down list



150
151
152
153
154
155
# File 'app/helpers/core_link_helper.rb', line 150

def info_list_tag(obj, path, options = {})
  options[:label] ||= I18n.t('ui_form.actions.info')
  (:li) do
    info_link_tag(obj, path, options)
  end
end

Generic link tag



76
77
78
79
80
81
# File 'app/helpers/core_link_helper.rb', line 76

def link_tag(title, path, options = {})
  (:a, href: path, class: options[:class]) do
    concat((:i, class: 'material-icons left') { options[:icon_name] }) if options[:icon_name].present?
    concat(title)
  end
end

#materialize_icon(name, options = {}) ⇒ Object

Add a material icon by name



67
68
69
70
71
# File 'app/helpers/core_link_helper.rb', line 67

def materialize_icon(name, options = {})
  classes = %w[material-icons]
  classes += options[:classes] if options[:classes].present?
  (:i, class: classes.join(' '), title: options[:title]) { name }
end

Send notification



271
272
273
274
275
276
277
278
279
280
# File 'app/helpers/core_link_helper.rb', line 271

def notification_link_tag(obj, path, options = {})
  return unless can? :manage, obj

  (:a, href: path) do
    concat((:i, class: 'material-icons') do
      options[:icon_name] || 'email'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#notification_list_tag(obj, path, options = {}) ⇒ Object

Send notification in a pull down list



259
260
261
262
263
264
265
266
# File 'app/helpers/core_link_helper.rb', line 259

def notification_list_tag(obj, path, options = {})
  return unless can? :manage, obj

  options[:label] ||= I18n.t('customer_account_users.index.reset_password')
  (:li) do
    notification_link_tag(obj, path, options)
  end
end

Promote a publishable kb object



297
298
299
300
301
302
303
304
305
306
# File 'app/helpers/core_link_helper.rb', line 297

def promote_link_tag(obj, path, options = {})
  return unless can? :promote, obj

  (:a, href: path) do
    concat((:i, class: 'material-icons') do
      'file_upload'
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#promote_list_tag(obj, path, options = {}) ⇒ Object

Promote a publishable kb object in a pull down list



285
286
287
288
289
290
291
292
# File 'app/helpers/core_link_helper.rb', line 285

def promote_list_tag(obj, path, options = {})
  return unless can? :promote, obj

  options[:label] ||= I18n.t('links.promote')
  (:li) do
    promote_link_tag(obj, path, options)
  end
end

Restart a thingy



122
123
124
125
126
127
128
129
130
131
132
133
# File 'app/helpers/core_link_helper.rb', line 122

def replay_link_tag(obj, path, options = {})
  return unless can? :edit, obj

  icon_name = options[:icon_name] || 'replay'
  data = { confirm: options[:confirm] || t('links.replay_confirmation', name: obj.class.to_s.underscore.humanize) }
  (:a, href: path, data: data, class: options[:link_classes]) do
    concat((:i, class: 'material-icons') do
      icon_name
    end)
    concat(options[:label]) if options[:label].present?
  end
end

#replay_list_tag(obj, path, options = {}) ⇒ Object

Restart a thingy



138
139
140
141
142
143
144
145
# File 'app/helpers/core_link_helper.rb', line 138

def replay_list_tag(obj, path, options = {})
  return unless can? :edit, obj

  options[:label] ||= I18n.t('ui_form.actions.replay')
  (:li) do
    replay_link_tag(obj, path, options)
  end
end

#table_action_button(action_id, icon_name = 'more_horiz') ⇒ Object

Add the table action button and setup the drop down



44
45
46
47
48
49
50
51
52
# File 'app/helpers/core_link_helper.rb', line 44

def table_action_button(action_id, icon_name = 'more_horiz')
  datum = { target: action_id,
            constrainWidth: false,
            gutter: 28,
            alignment: 'right' }
  (:a, class: 'dropdown-trigger', data: datum) do
    concat(materialize_icon(icon_name))
  end
end