$.rails.allowAction = (link) ->
return true unless link.attr('data-confirm')
$.rails.showConfirmDialog(link) # look bellow for implementations
false # always stops the action since code runs asynchronously
$.rails.confirmed = (link) ->
confirm = link.attr("data-confirm")
link.removeAttr('data-confirm')
link.trigger('click.rails')
link.popover('destroy')
link.attr("data-confirm", confirm)
$.rails.showConfirmDialog = (link) ->
message = link.attr 'data-confirm'
link.popover('destroy')
editable = link.closest(".editable")
editable.addClass("force-visible")
content = $("#popover-confirmation").clone().removeClass("fade")
content.find(".popover-msg").html(message)
content.find('.confirm').unbind "click"
content.find('.confirm').click ->
$.rails.confirmed(link)
editable.removeClass("force-visible")
content.find('.cancel').click ->
link.popover('hide')
editable.removeClass("force-visible")
link.popover(content: content, html: true, trigger: 'manual', title: $("#popover-confirmation").data("title"))
link.popover('show')
# Bootstrap tabs
$('.btn-default a').click (e) ->
e.preventDefault()
$(this).tab('show')
$.fn.observeField = (opts = {}) ->
field = $(this)
key_timeout = null
last_value = null
options =
onFilled: () ->
onEmpty: () ->
onChange: () ->
options = $.extend(options, opts)
keyChange = () ->
if field.val().length > 0
options.onFilled()
else
options.onEmpty()
if field.val() == last_value && field.val().length != 0
return
lastValue = field.val()
options.onChange()
field.data('observed', true)
field.bind 'keydown', (e) ->
if(key_timeout)
clearTimeout(key_timeout)
key_timeout = setTimeout(->
keyChange()
, 400)
$.fn.setup_form_inputs = (v) ->
$(this).find('input[type="radio"]:checked').parent().addClass 'radio-checked'
$(this).find('input[type="checkbox"]:checked').parent().addClass 'checkbox-checked'
$.fn.editable = (v) ->
if v == "cancel"
if $(this).data("edit-bkp")
$(this).html("")
$(this).append($(this).data("edit-bkp"))
$(this).removeData("edit-bkp")
else
$(this).editable("cancel")
children = $(this).children()
children.detach()
$(this).data("edit-bkp", children)
$(this).html(v)
$(this).setup_form_inputs()
$.fn.historyGraph = () ->
createSeries = (obj) ->
series = []
for date of obj
value = obj[date]
point =
x: Date.parse(date) / 1000
y: value
series.unshift point
series
$(this).each ->
container = $(this)
delivered = createSeries(container.data("delivered"))
skipped = createSeries(container.data("skipped"))
failed = createSeries(container.data("failed"))
if !container.data("graph")
graph = new Rickshaw.Graph(
element: container[0]
width: container.width()
height: 200
renderer: "line"
interpolation: "linear"
series: [
{
color: "#c3a323"
data: skipped
name: "Skipped"
}
{
color: "#a94442"
data: failed
name: "Failed"
}
{
color: "#3c763d"
data: delivered
name: "Delivered"
}
]
)
x_axis = new Rickshaw.Graph.Axis.Time(graph: graph)
y_axis = new Rickshaw.Graph.Axis.Y(
graph: graph
tickFormat: Rickshaw.Fixtures.Number.formatKMBT
ticksTreatment: "glow"
)
graph.render()
hoverDetail = new Rickshaw.Graph.HoverDetail(
graph: graph
yFormatter: (y) ->
Math.floor(y)
)
container.data("graph", graph)
else
graph = container.data("graph")
graph.series[0]["data"] = skipped
graph.series[1]["data"] = failed
graph.series[2]["data"] = delivered
graph.update()
$ ->
SmartListing.config.merge()
$(document).on "click", ".resource-editable button.cancel", ->
$(this).closest(".resource-editable").editable("cancel")
false
$(document).tooltip
selector: '*[data-toggle=tooltip]'
$(document).on 'hidden.bs.modal', (e) ->
$(e.target).removeData('bs.modal')
# form ui
$(document).on 'change', 'input[type=radio]', ->
$("input[type=radio][name=#{$(this).attr("name")}]").each ->
if $(this).is(":checked")
$(this).parent().addClass("radio-checked")
else
$(this).parent().removeClass("radio-checked")
$(document).on 'change', 'input[type=checkbox]', ->
if $(this).is(":checked")
$(this).parent().addClass("checkbox-checked")
else
$(this).parent().removeClass("checkbox-checked")
$(document).setup_form_inputs()
$(".select-wrap").click ->
$(this).toggleClass "select-btn"
# end form ui
$(document).on "ajax:before", "a", (e) ->
dummy = () ->
false
target = $(e.target)
target.addClass("disabled")
target.bind "click", dummy
if target.find("i.fa, span.fa").length == 0
target.prepend(" ")
target.on "ajax:success", (e) ->
target.removeClass("disabled")
target.find("i.fa-spinner").remove()
target.unbind "click", dummy
target.on "ajax:error", (e) ->
target.removeClass("disabled")
target.addClass("error")
$(document).on "ajax:before", "form", (e) ->
target = $(e.target)
button = target.find("button[type='submit']")
button.attr("disabled", "disabled")
button.prepend("")
button.on "ajax:success", (e) ->
button.removeAttr("disabled")
button.find("i.fa-spinner").remove()
$(".history-graph").historyGraph()
return