### LemonLDAP::NG Portal jQuery scripts ### # Translation mechanism translationFields = {} # Launched at startup: download language JSON and translate all HTML tags that # contains one of the following attributes using translate() function: # - trspan : set result in tag content # - trmsg : get error number and set result of PE result in tag # content # - trplaceholder: set result in "placeholder" attribute # - localtime : transform time (in ms)ing translate() setDanger = (cond, field) -> result = false if cond $("##{field}").addClass 'fa-check text-success' $("##{field}").removeClass 'fa-times text-danger' $("##{field}").attr 'role', 'status' else $("##{field}").addClass 'fa-times text-danger' $("##{field}").removeClass 'fa-check text-success' $("##{field}").attr 'role', 'alert' result = true result translatePage = (lang) -> $.getJSON "#{window.staticPrefix}languages/#{lang}.json", (data) -> translationFields = data for k,v of window.datas.trOver.all translationFields[k] = v if window.datas.trOver[lang] for k,v of window.datas.trOver[lang] translationFields[k] = v $("[trspan]").each -> args = $(this).attr('trspan').split(',') txt = translate args.shift() for v in args txt = txt.replace /%[sd]/, v $(this).html txt $("[trmsg]").each -> $(this).html translate "PE#{$(this).attr 'trmsg'}" msg = translate "PE#{$(this).attr 'trmsg'}" if msg.match /_hide_/ $(this).parent().hide() $("[trplaceholder]").each -> tmp = translate($(this).attr('trplaceholder')) $(this).attr 'placeholder', tmp $(this).attr 'aria-label', tmp $("[localtime]").each -> d = new Date $(this).attr('localtime') * 1000 $(this).text d.toLocaleString() # Translate a string translate = (str) -> return if translationFields[str] then translationFields[str] else str window.translate = translate # Initialization variables: read all