sieveMailbox.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. var sieveMailboxPresets = [
  2. {
  3. description: lang.sieve_preset_1,
  4. codeValue: 'if header :contains "x-attached"\n [".exe",".bat",".js",".com",".cmd",".ini",".dll",".bas",".cpl",".drv",".inf",".sys",".pif",".doc",".docx"] {\n discard;\n stop;\n}'
  5. },
  6. {
  7. description: lang.sieve_preset_2,
  8. codeValue: 'require ["envelope", "imap4flags"];\nif envelope "from" "mark@me-read.com"\n{\n setflag "\\\\seen";\n}'
  9. }
  10. ];
  11. /*
  12. TODO: aus API holen:
  13. /api/v1/get/rspamd/sieve/
  14. */
  15. var sieve_presetsElem = document.getElementById("sieve_presets");
  16. if (sieve_presetsElem && sieveMailboxPresets) {
  17. sieve_presetsElem.innerHTML = '';
  18. sieveMailboxPresets.forEach(function (item, index) {
  19. var elemID = 'sieve_preset_' + index;
  20. sieve_presetsElem.innerHTML += '<li><a href="#" class="small" id="' + elemID + '">' + lang.insert_preset.replace('%s', item.description) + '</a></li>';
  21. /*
  22. we need to define 0-timeout here, to prevent dom not be ready.
  23. */
  24. setTimeout(function () {
  25. document.getElementById(elemID).addEventListener('click', function (e) {
  26. e.preventDefault();
  27. document.querySelector('form[data-id=add_filter] #script_desc').value = item.description;
  28. document.querySelector('form[data-id=add_filter] #script_data').value = item.codeValue;
  29. return true;
  30. });
  31. }, 0)
  32. });
  33. }