diff -Nru otrs2-6.0.4/ARCHIVE otrs2-6.0.5/ARCHIVE --- otrs2-6.0.4/ARCHIVE 2018-01-12 19:19:11.000000000 +0000 +++ otrs2-6.0.5/ARCHIVE 2018-02-05 23:48:05.000000000 +0000 @@ -18,67 +18,67 @@ 3e88ac2cae0c0d9361b642309fee950d::bin/otrs.Daemon.pl 225ef72176ece6527485e1de659a068d::bin/otrs.PostMaster.pl ca569ad8d66cb879340c698c079e5cde::bin/otrs.SetPermissions.pl -655ea00372e75a07116f8b10eee5d937::CHANGES.md +c8b19b4ed47cb94c2db0435ef55bf454::CHANGES.md 4dba12e6a77bec1d44d2f8c6ebe7926e::CONTRIBUTING.md 73f1eb20517c55bf9493b7dd6e480788::COPYING ee41191afebf169fca66500bc7ff9f92::COPYING-Third-Party 64d0faee0022f57ad6b54a0653274ec2::Custom/README -b389595681f2bb15a6f624da0fbf97bc::i18n/otrs/otrs.ar_SA.po -6ec933bb7103f418799599af0c137728::i18n/otrs/otrs.bg.po -2510a85e1f090ac64f663528797de141::i18n/otrs/otrs.ca.po -737383cca32e1e702f4e9f990f39659c::i18n/otrs/otrs.cs.po -e26b920b3045c2f871a618b54296773e::i18n/otrs/otrs.da.po -aa179a29ba0bfd79c78406714df65373::i18n/otrs/otrs.de.po -c27670359530da7a46022535e097af21::i18n/otrs/otrs.el.po -02b1c0ee05c951ffee8ea7ef190a4698::i18n/otrs/otrs.en_CA.po -6450c406871639c6aba6da2dceb570ae::i18n/otrs/otrs.en_GB.po -68f768eb16d36fcbb1e9049420c1261c::i18n/otrs/otrs.es.po -eb589a4136cfc5b2ae1af80095bd12f2::i18n/otrs/otrs.es_CO.po -6acf3f85e31fd57384b51943cce48558::i18n/otrs/otrs.es_MX.po -8ae1d5d7353113faca65b8b77af14f85::i18n/otrs/otrs.et.po -59e737ff2cbc19a5e69c5d39257e2591::i18n/otrs/otrs.fa.po -d29f523a3862615b6afeeaeb82c77832::i18n/otrs/otrs.fi.po -3a20f6d1d351560201237f4b8ed96244::i18n/otrs/otrs.fr.po -d43dde34fa0ca443595cc452a09f00a4::i18n/otrs/otrs.fr_CA.po -9b9c8e843219502288d221d30f616ff8::i18n/otrs/otrs.gl.po -58f107781883e4fc9991f937ba75cdcd::i18n/otrs/otrs.he.po -76bb4f7ff271cbce0aa3d9557be8f998::i18n/otrs/otrs.hi.po -ef4401845fb53e96169a66b90ced3af3::i18n/otrs/otrs.hr.po -857c8b45680f026f084ca6b16205f361::i18n/otrs/otrs.hu.po -2cfd92decac67ce8a82855c2da057baf::i18n/otrs/otrs.id.po -0c178e530bd56541e27ac05047c62d7e::i18n/otrs/otrs.it.po -8ae565f9b32b61da4bb242f77d341b53::i18n/otrs/otrs.ja.po -b88c8c4bd8fcdb3b55da1ba9275f8dcd::i18n/otrs/otrs.lt.po -f097736c1749d48313625116043b6b12::i18n/otrs/otrs.lv.po -bcca37a4dd01d59371ef1a3191dc1d05::i18n/otrs/otrs.ms.po -7a72ddeac216d412813f08bf2b46d179::i18n/otrs/otrs.nb_NO.po -109ad15a3e3c0c487412d57d61fc72d6::i18n/otrs/otrs.nl.po -0e49f80dd0603b30ae17384a61eb67da::i18n/otrs/otrs.pl.po -d9abae19d5c7003f650147b4c428501d::i18n/otrs/otrs.pot -4da58c79b0d75ef2726ad8d2e28fbcac::i18n/otrs/otrs.pt.po -f162467e19ede554763e7a0ef5296aef::i18n/otrs/otrs.pt_BR.po -18ef5d1a2b1e751f4c4f6b660b14aae1::i18n/otrs/otrs.ru.po -8713271fc9658316d87b2d3c93115802::i18n/otrs/otrs.sk_SK.po -916827c23931ba0196d8a84cf3302872::i18n/otrs/otrs.sl.po -92c1d55e30b4af5af86009869910dc41::i18n/otrs/otrs.sr.po -6a886321c27fe00987753bb84c116dd9::i18n/otrs/otrs.sv.po -592cd7f9c124758616d7a77cba4efcf0::i18n/otrs/otrs.sw.po -958114b2ef100ab3660352ee0d8472ad::i18n/otrs/otrs.th_TH.po -5ffe13bacb93684bcf3377e2bdc7a3c1::i18n/otrs/otrs.tr.po -d5a0ea43f00077354afb7966c28750b6::i18n/otrs/otrs.uk.po -0a766be93a20fd22b938fdbec515b478::i18n/otrs/otrs.vi_VN.po -c65e85c2bfd3134557240083b4a0cbd5::i18n/otrs/otrs.zh_CN.po -13cdd81fb14198d54d573656b946dbba::i18n/otrs/otrs.zh_TW.po +b9e9c18c349bb6b445ae8153d6287673::i18n/otrs/otrs.ar_SA.po +c9db1d4bb87ca2b0d5c152b75635dc08::i18n/otrs/otrs.bg.po +4e169b698733a7e63a59cb969897041f::i18n/otrs/otrs.ca.po +394c22d8bd74e6c362c70395712ce9a0::i18n/otrs/otrs.cs.po +871a6639a339db4dc4a20bb01e663b73::i18n/otrs/otrs.da.po +6efcb027b9dc8538242186710bc178ca::i18n/otrs/otrs.de.po +1cdd5a643432401e5b54105ecb400b0e::i18n/otrs/otrs.el.po +24efd4376a4a32cf56ce588e0adfd494::i18n/otrs/otrs.en_CA.po +95554f6645f025a30e04e1c29f4c2127::i18n/otrs/otrs.en_GB.po +c85d87024d2d581d7295aac50dbdd902::i18n/otrs/otrs.es.po +2efe3c938a53d54e3fc04801685d2180::i18n/otrs/otrs.es_CO.po +ded0177d4f396cd17e3d524ba45cbb07::i18n/otrs/otrs.es_MX.po +e6748525594b259aa0b8f70d8c363276::i18n/otrs/otrs.et.po +45ae1b07dbed1bd2f1b2579f4f6cf1dd::i18n/otrs/otrs.fa.po +da76d16822e49aa0f9b63f5bca79179e::i18n/otrs/otrs.fi.po +296642d33097d7ca878f06d4f8760347::i18n/otrs/otrs.fr.po +0fcb3c5a22d71b9850ca7fef166be055::i18n/otrs/otrs.fr_CA.po +ce9325e4f00ef4f2d1dffeecaf96f070::i18n/otrs/otrs.gl.po +c7c5c3b60ae31f9f0a85e15cdf37e33e::i18n/otrs/otrs.he.po +37b82e8625fd272cd034da72e6375bda::i18n/otrs/otrs.hi.po +ea8da1ac733315629adc96a71302b6e1::i18n/otrs/otrs.hr.po +441d1ff3a371c64098914003a02b552d::i18n/otrs/otrs.hu.po +f80a48946af56021d4d9bc5b6ba9c089::i18n/otrs/otrs.id.po +234f9afdc91a4f16eb5636e9f6dca2c5::i18n/otrs/otrs.it.po +08824fc23e2efa2274c069816d838ce6::i18n/otrs/otrs.ja.po +c85f88fc68815de47ffe5dccdcc51d11::i18n/otrs/otrs.lt.po +bb08359f59e8ed5069ed074b54d2f72b::i18n/otrs/otrs.lv.po +d9b71368124a5fe466e23b38f0a2e55d::i18n/otrs/otrs.ms.po +49157f472419a25741b8ef8e3a27d4b6::i18n/otrs/otrs.nb_NO.po +86f3019c9d1778958d2cbcfbdd1d12d5::i18n/otrs/otrs.nl.po +a5de1ec1c9370090e6704ee2ff327692::i18n/otrs/otrs.pl.po +b277897d4cc0a89432af2b602432c6eb::i18n/otrs/otrs.pot +5ee646316cd41cb54db7845f3473cf24::i18n/otrs/otrs.pt.po +ca97ccc4c96622742a9ab4719b0aadb3::i18n/otrs/otrs.pt_BR.po +1e6e76b3eac736b8c8f17b8bd3aec221::i18n/otrs/otrs.ru.po +26184dd971f66d6e7c12c5a2041de2b4::i18n/otrs/otrs.sk_SK.po +4f0ae2e8de650e2798d3a9d8649b361c::i18n/otrs/otrs.sl.po +ca9c8797bcc78729304dbd78fb7ffaea::i18n/otrs/otrs.sr.po +96c8a67176959d6b820ae583a9cca04b::i18n/otrs/otrs.sv.po +9e6bcd8b1d11d8bff5fe9b249663c18c::i18n/otrs/otrs.sw.po +e4ebb11a8d14a080dae8473bbcd132f3::i18n/otrs/otrs.th_TH.po +b4392ad1b84c8a6f2e6d352479196328::i18n/otrs/otrs.tr.po +aff0cb32c236e667addaac4b503c0a7d::i18n/otrs/otrs.uk.po +8d46cd8a99dc990bade289d3be7d8c60::i18n/otrs/otrs.vi_VN.po +3a4d3c918f6fb1ba2e2d1323dd794abe::i18n/otrs/otrs.zh_CN.po +62df021a4b9df796df362c4980c100f2::i18n/otrs/otrs.zh_TW.po 1ecf232c3773b38562ec41f78b5432f0::INSTALL.md 7c6cd1f7dfa1ef831b16217826282964::Kernel/Autoload/Test.pm a00227bfb1ccb0d0747d3acfe4e84965::Kernel/Config/Defaults.pm -4376490004676bea1c764cbb0c019789::Kernel/Config/Files/XML/Calendar.xml +5a0ea11e62c31c0278faba253fa1bae0::Kernel/Config/Files/XML/Calendar.xml e81f44604d09bc722404c5e670f1c0bb::Kernel/Config/Files/XML/CloudServices.xml 318a9c353fb5dd59004ead59d2eb4133::Kernel/Config/Files/XML/Daemon.xml -eab6b9d4dde78288ce64dd7e87d88d7d::Kernel/Config/Files/XML/Framework.xml +7efe6d82ddd471a22c817433c3b90cf8::Kernel/Config/Files/XML/Framework.xml 552a9e328f3702c21dc0bcbde4fa3053::Kernel/Config/Files/XML/GenericInterface.xml ff73fd5b9ee0aa2b89deb8b97d0ef546::Kernel/Config/Files/XML/ProcessManagement.xml -5a49af03fb19751869679054379097a3::Kernel/Config/Files/XML/Ticket.xml +4edca47e4479a4fb4de4cb4b0d34d18f::Kernel/Config/Files/XML/Ticket.xml 3ab9b2e4278727413fbb114e10d9953c::Kernel/Config.pm.dist f390cca3cd22bd64d452937221a33a65::Kernel/Config.pod.dist 7aba8930f7e657ced7bb58a708936784::Kernel/cpan-lib/Algorithm/Diff.pm @@ -729,7 +729,7 @@ 33e7c6c0482e0156a1a3014f4eb3cefc::Kernel/GenericInterface/Debugger.pm 71de385b09ca01fba2d2c2180f3b238d::Kernel/GenericInterface/ErrorHandling/RequestRetry.pm 7acae75d58e5ee071002640724e7787a::Kernel/GenericInterface/ErrorHandling.pm -ed947688681248f045abd1ef1328b624::Kernel/GenericInterface/Event/Handler.pm +41d1a1f6055eb33f8a45e78e717f0c9d::Kernel/GenericInterface/Event/Handler.pm f4924196fc14cbd70ed9bfe16c9f7ced::Kernel/GenericInterface/Event/ObjectType/Appointment.pm f817d4a894132c40010da88bfcac5bd3::Kernel/GenericInterface/Event/ObjectType/Article.pm 58555a0d1685fc291487871d2fb8f791::Kernel/GenericInterface/Event/ObjectType/Calendar.pm @@ -758,66 +758,66 @@ 44c30f73b0e5ef72fd4c8d1490677c14::Kernel/GenericInterface/Operation/Ticket/TicketCreate.pm 2794f223b6be54dc62081495b8bd5e6e::Kernel/GenericInterface/Operation/Ticket/TicketGet.pm 123a0edeed3a3387cbc38f1bc6cc55b6::Kernel/GenericInterface/Operation/Ticket/TicketHistoryGet.pm -e77a96f70e9d1d6884a8cc3ab01bc58d::Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm +94c25581b5d89f78c018ac8502204a78::Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm 6186d58eb03d31b6e5f70ddf268fff69::Kernel/GenericInterface/Operation/Ticket/TicketUpdate.pm acbbefc4bdfba44b9ced012d472fb5b5::Kernel/GenericInterface/Operation.pm 6a1eb70ea894b410570c964923e00ee7::Kernel/GenericInterface/Provider.pm 9847447ba32b43bbf9eed49401e788ab::Kernel/GenericInterface/Requester.pm -d939107baf90358cdf6eb2c9fc3c1142::Kernel/GenericInterface/Transport/HTTP/REST.pm +fba4ed54a19e2a542a11f4d88d489bfa::Kernel/GenericInterface/Transport/HTTP/REST.pm 8b3d1aaff3b4a2d91186089186409caf::Kernel/GenericInterface/Transport/HTTP/SOAP.pm 629296b8fa1095601eb76b5dad858424::Kernel/GenericInterface/Transport/HTTP/Test.pm 81432ddb55045693193ab3e61e6c9e81::Kernel/GenericInterface/Transport.pm -17f8aa95fa6df38dd58b9b7923cd9aec::Kernel/Language/ar_SA.pm -d3d123e17d1eafe23bc1601baf9bfa58::Kernel/Language/bg.pm -9b42eaec5f03390497da180fb87676d5::Kernel/Language/ca.pm -48522ab70e21879348a427b81fb18e18::Kernel/Language/cs.pm -58767e51cc06b9287589d26c3b494efe::Kernel/Language/da.pm -8af058eacd71432cb429768451e59831::Kernel/Language/de.pm -0fbd10ebe016bf76e36159a738c8cd48::Kernel/Language/el.pm -a2cd067b28ea436c58a3558cc6cda787::Kernel/Language/en.pm -c63df0b070b083ab4904e88dd0d80157::Kernel/Language/en_CA.pm -ac4c2ee8468a9435d7498bee8e8f993e::Kernel/Language/en_GB.pm -9b5f52072a68fc74ff1e532f8cf165f2::Kernel/Language/es.pm -004c7d53743ddbcf52293efe7841d0e6::Kernel/Language/es_CO.pm -3e1cf5f80ee8cf4cf3e1143236006c65::Kernel/Language/es_MX.pm -df8357d6328136a21ede77dfab21b632::Kernel/Language/et.pm -f281ff4c648a8d8e0eec578bc9a27c7a::Kernel/Language/fa.pm -a622db5de190a01bd86cd05aa4b94388::Kernel/Language/fi.pm -b8062a75a36064887816cc8a14fb8aab::Kernel/Language/fr.pm -9fe1f546fc43da4f2242f6e5d18fc3ee::Kernel/Language/fr_CA.pm -e430dd6ade9eac92b4e0776102eac858::Kernel/Language/gl.pm -bafe041524638a7ed0567c39c31e39a2::Kernel/Language/he.pm -802b398caabf18da5a724c00854763be::Kernel/Language/hi.pm -3ac84a4523ed5b1cccb4ded5b3f63d5c::Kernel/Language/hr.pm -1d596b2e01c548f63af3da1f9753b4c0::Kernel/Language/hu.pm -58a32f3c6f1b297c74bb4029825e9133::Kernel/Language/id.pm -11871c2e3795212bcf4b9796a7edcaca::Kernel/Language/it.pm -adb27a17fc0c8178c6bffa4b110e38a5::Kernel/Language/ja.pm -90c3e019c79ae086b4468eee6b37c2cc::Kernel/Language/lt.pm -8222bb0c4f3fa5114e66319818c41843::Kernel/Language/lv.pm -e24197e7b9db299ee88986ff9b097c27::Kernel/Language/ms.pm -a92ee063dfd4eba7ff48074892c42a89::Kernel/Language/nb_NO.pm -173bba767d3df47590bd2f74fb80732b::Kernel/Language/nl.pm -7225f42778128adf4cb40687de3766e3::Kernel/Language/pl.pm -4596f00c691bda7359ee2890f53c6fa4::Kernel/Language/pt.pm -c60f7e7aa6cbcbe3ae9a63b9c6007cbb::Kernel/Language/pt_BR.pm -8b4a93c48e2c0f9e8db34afd076eacb9::Kernel/Language/ru.pm -5bb64496fc4856b4c54acf4387faa66c::Kernel/Language/sk_SK.pm -00f115e6691eb856809da21217b93efa::Kernel/Language/sl.pm -06de4208758b9961f00fc551b209f538::Kernel/Language/sr_Cyrl.pm -1f17504129ac48ca3962d97bb76ee726::Kernel/Language/sr_Latn.pm -55fd497e7ccfe240513a177322ea4566::Kernel/Language/sv.pm -9cd4e6011289f26e4920ec6de032561a::Kernel/Language/sw.pm -e78bd8b45e18c0c35bebd246321bf79b::Kernel/Language/th_TH.pm -5585d1a8c29c01babe9ea8f69bf3ddaa::Kernel/Language/tr.pm -53a08563d11ba11e6619180b969ca685::Kernel/Language/uk.pm -97e6d37f03b602506f530304dc1b7356::Kernel/Language/vi_VN.pm +64f456802951f498bdeb2315a682a6e4::Kernel/Language/ar_SA.pm +1074aa3dd8dc9423229544e4396e3fdb::Kernel/Language/bg.pm +e62ce019ea633783b7ef88c791059523::Kernel/Language/ca.pm +3913c60be8eae621d5f1b093f340144d::Kernel/Language/cs.pm +40b6c1cf81f89cfdcb93b7d91d3fff8f::Kernel/Language/da.pm +805322fa9c8b030544ae5579d44a6d71::Kernel/Language/de.pm +693e5ced7cf60d607a378bc6aa552cd0::Kernel/Language/el.pm +220d197f01c4b4d4f33fca1b1ca07265::Kernel/Language/en.pm +d2bb19d42b11dda3741eba4b3cc00183::Kernel/Language/en_CA.pm +52afda35f905990c77de408ec093aaac::Kernel/Language/en_GB.pm +15937866952618ea708bf309342105ba::Kernel/Language/es.pm +20c7869e227d21930705f831d63f551e::Kernel/Language/es_CO.pm +c074c0b332291d5fbc4499526a1e835e::Kernel/Language/es_MX.pm +57be3a7ff01b6f0741d37af46c3245e1::Kernel/Language/et.pm +d9890cd221a6660498f4e1463c47e42d::Kernel/Language/fa.pm +bccf4e38d5e65ea8f0b86631e90680ea::Kernel/Language/fi.pm +5f2b7857978919f4676c2d8261f29d73::Kernel/Language/fr.pm +f1f44da2922e6656ca9e71393c6e6968::Kernel/Language/fr_CA.pm +82b15675b57c093c7b45c004ea6a16cc::Kernel/Language/gl.pm +6426120147ae1a8f668bb156dcb5e8e4::Kernel/Language/he.pm +75ab5824ab98b957a459cb7165ccc1ff::Kernel/Language/hi.pm +bb1326b1878fb542e9d647ea76d2923f::Kernel/Language/hr.pm +77cd763bf914078f3ebb0cc1d40651d1::Kernel/Language/hu.pm +4cb9fbe4feda167586762964a3b832fb::Kernel/Language/id.pm +2369796a364f41085de3c0b76ccbbe30::Kernel/Language/it.pm +eface242044471bef6ae214c349de3fe::Kernel/Language/ja.pm +d19094ed9243e3e9682cf3af010430de::Kernel/Language/lt.pm +8bb225150e5b62150a84479b76cbaa96::Kernel/Language/lv.pm +960527cba770fb75ed6b62f1ce1a1ebd::Kernel/Language/ms.pm +0ad7a15603ab13e686a7ac6cc9b42a06::Kernel/Language/nb_NO.pm +84e6354e06d6bb140a66fb9aa0fcb591::Kernel/Language/nl.pm +b70d6d20420f02c6f6224309ceceb9ac::Kernel/Language/pl.pm +1f80ef438ac60a6fdbaff6288419202f::Kernel/Language/pt.pm +67f96c03466cd93992de867c287c7d77::Kernel/Language/pt_BR.pm +9377a40e18a8bacba63f889286a78d3f::Kernel/Language/ru.pm +73c9a9c8ff8d5ad3a7943b1c38ec7384::Kernel/Language/sk_SK.pm +182fab4f740abb0480117af02cd9e498::Kernel/Language/sl.pm +6c8ef57f1bd2c895105862ed40de6f78::Kernel/Language/sr_Cyrl.pm +f7411eede0f3649ddbf94e7fc7c5846f::Kernel/Language/sr_Latn.pm +4732bb9701d0d689f4166c584bc576bb::Kernel/Language/sv.pm +ef816725899fe2eb29208b27bb968a2b::Kernel/Language/sw.pm +f4a7fd098da931aff543755a14a190be::Kernel/Language/th_TH.pm +7e1490973763146c209c3fdf7979f94a::Kernel/Language/tr.pm +30e9659d62f6a945e24b0b2510e4c6bd::Kernel/Language/uk.pm +4403781d462167caa41a24bba02bbbe1::Kernel/Language/vi_VN.pm c5f18666b5b94ec564c07d491aa98112::Kernel/Language/xx_Custom.pm -987b65ba9503f7935537bcfc810fb06c::Kernel/Language/zh_CN.pm -baf864aa737b8e256756a508c90cd27f::Kernel/Language/zh_TW.pm +a77d3e9ad0b8214a5190f7f9af010445::Kernel/Language/zh_CN.pm +513604aae5dde06c273c0b15f0290bac::Kernel/Language/zh_TW.pm 77351f360c2f3c93a79570dbd90e0ce3::Kernel/Language.pm 06347b55cbb868a9477e76b2e9039951::Kernel/Modules/Admin.pm -f1f40508d464821d24b6d97dd9753e00::Kernel/Modules/AdminACL.pm +d1d4769adebfb3f11d525beb8474ce9a::Kernel/Modules/AdminACL.pm abd958893f97e21782909c41b6e5f90e::Kernel/Modules/AdminAppointmentCalendarManage.pm ebb9fb79c3736527e3152adb17c59889::Kernel/Modules/AdminAppointmentImport.pm a86c404e66c939ffc15819e00e8a3158::Kernel/Modules/AdminAppointmentNotificationEvent.pm @@ -825,7 +825,7 @@ 70aa646e7a5cf1a941fef65b8595ba41::Kernel/Modules/AdminAutoResponse.pm 6c211e9bd633160f8c7c0907114fef82::Kernel/Modules/AdminCloudServices.pm 850a54200a5fc75813adbc88018b57fa::Kernel/Modules/AdminCloudServiceSupportDataCollector.pm -69928ea4551891f43e52ace4f591211f::Kernel/Modules/AdminCommunicationLog.pm +4a6e2835fac63f21a0929582dc895699::Kernel/Modules/AdminCommunicationLog.pm bc7e132043826fab7c0cf3c570415571::Kernel/Modules/AdminCustomerCompany.pm 42eef8743d52aada90ba9bb0ea95e1da::Kernel/Modules/AdminCustomerGroup.pm 4b205a7b75248af7d0b09d18042e55c9::Kernel/Modules/AdminCustomerUser.pm @@ -853,16 +853,16 @@ 5cc995b798483856c0f987394f25c14d::Kernel/Modules/AdminGenericInterfaceWebservice.pm 10e566fe828c67648d50acdc1e6114c2::Kernel/Modules/AdminGenericInterfaceWebserviceHistory.pm 01065fd20c44e6ec9c058e06a4a49a40::Kernel/Modules/AdminGroup.pm -25106773f68366f89dbd570f3eb8893f::Kernel/Modules/AdminInit.pm +4b73f45329accfcaabb98c3c4018587a::Kernel/Modules/AdminInit.pm 9cf765e536794f4f1f2a51c28b30dffb::Kernel/Modules/AdminLog.pm -dd7373adfb46c390a65f17675e67fed8::Kernel/Modules/AdminMailAccount.pm +27bb2467632201ed9750e9f89925de39::Kernel/Modules/AdminMailAccount.pm 18f0b624c97df420ac57ee5160df837d::Kernel/Modules/AdminNotificationEvent.pm c6ab70b308156a782698bb014a66acb3::Kernel/Modules/AdminOTRSBusiness.pm -b082a8585a56deac10cba47bc6304924::Kernel/Modules/AdminPackageManager.pm +358105e6b4219438cb17d41a7656f516::Kernel/Modules/AdminPackageManager.pm 6acd0d43f42e4d560cb2757ff9339268::Kernel/Modules/AdminPerformanceLog.pm 3005be0bb86704906c9bbe12e9bcc3d3::Kernel/Modules/AdminPGP.pm 13ec8da88ed6ee4bea13194a54be6cfb::Kernel/Modules/AdminPostMasterFilter.pm -e84072515d42537b1d5b2163bfd6b8b6::Kernel/Modules/AdminPriority.pm +0e47a5161032d27c00f1e39f05d71557::Kernel/Modules/AdminPriority.pm 97fe9aff874f3d08177c6c4408070c0e::Kernel/Modules/AdminProcessManagement.pm 4e5facbf0f9b2a09ed91a9eae381e9f5::Kernel/Modules/AdminProcessManagementActivity.pm 38cf9d80372059ebbe40b2ee4083de54::Kernel/Modules/AdminProcessManagementActivityDialog.pm @@ -887,7 +887,7 @@ 6a00909c31cd6f4f4c65119f6094ac7c::Kernel/Modules/AdminSupportDataCollector.pm 0c5b0062d2a489b39ab3f77808b374db::Kernel/Modules/AdminSystemAddress.pm 7df47712f1b90654baf63574de4631ea::Kernel/Modules/AdminSystemConfiguration.pm -7b290c33ff4349f347a9009971e86840::Kernel/Modules/AdminSystemConfigurationDeployment.pm +8e72e2e74e6d9209a56de087f37e403a::Kernel/Modules/AdminSystemConfigurationDeployment.pm 32249125b539e22086bbf85955d3865d::Kernel/Modules/AdminSystemConfigurationGroup.pm ba11f918be84092477860536aa416786::Kernel/Modules/AdminSystemMaintenance.pm 154efb717e813191787577867b17a032::Kernel/Modules/AdminTemplate.pm @@ -912,23 +912,23 @@ bcf6b156239f969ade346e97e2909362::Kernel/Modules/AgentInfo.pm ed4b4c50401e2c552b1d830faf432fdc::Kernel/Modules/AgentLinkObject.pm 9ab413115d5c7700c82b5c137607c918::Kernel/Modules/AgentOTRSBusiness.pm -1a3deca4654f87f1a8418cee273d1e10::Kernel/Modules/AgentPreferences.pm +020bd599b312d5921294ae61a48deaa5::Kernel/Modules/AgentPreferences.pm 0ee94d2a00629639ea8c55fec0f143bd::Kernel/Modules/AgentSearch.pm 85d8b7ca99d4655cbb3baf781daac143::Kernel/Modules/AgentSplitSelection.pm ebec09539e15e58389d8749df83b0064::Kernel/Modules/AgentStatistics.pm -1fed6cc2192270e40242a5091b000d74::Kernel/Modules/AgentTicketActionCommon.pm +3afb6b027d5eaed1686fc766343a28a1::Kernel/Modules/AgentTicketActionCommon.pm 7ffb6c9a1a599fb7d0363da1602c3ad8::Kernel/Modules/AgentTicketArticleContent.pm b834cbd1c1226030bd44a34f06309fb6::Kernel/Modules/AgentTicketAttachment.pm a7e8c9b29181de0d1eec112ea31d7fef::Kernel/Modules/AgentTicketBounce.pm d50613d63b35429939006b9e18bd0f9a::Kernel/Modules/AgentTicketBulk.pm 816e99e1692d80683b1f783c4df139be::Kernel/Modules/AgentTicketClose.pm -c727a3d9859398ed8f302246d2d9576a::Kernel/Modules/AgentTicketCompose.pm +17a5b16b6ec0d720419d2379b75ee772::Kernel/Modules/AgentTicketCompose.pm ea95dad850e7d41c4af60a6a2cf8efcf::Kernel/Modules/AgentTicketCustomer.pm -8888b8aab0f2d4f057550c7f03a01384::Kernel/Modules/AgentTicketEmail.pm -e8cd93b56c2c47183235d44c1419c935::Kernel/Modules/AgentTicketEmailOutbound.pm -769c670850caaad80550eb037ed1c39e::Kernel/Modules/AgentTicketEmailResend.pm +bd289534d9a02d1f00e436e337b48ba8::Kernel/Modules/AgentTicketEmail.pm +df6a2a03b737f8f341a4a2ff26ec3489::Kernel/Modules/AgentTicketEmailOutbound.pm +9a4e59292a6e2d82609d838eaf4f032e::Kernel/Modules/AgentTicketEmailResend.pm a41ac5f3be10182aef51349b6d00838b::Kernel/Modules/AgentTicketEscalationView.pm -674a786ef0f20212a18f9febbbe09060::Kernel/Modules/AgentTicketForward.pm +513001c712dc71efd840800c1434806e::Kernel/Modules/AgentTicketForward.pm ef5b3f708a061440390ffe1c99ee8cd7::Kernel/Modules/AgentTicketFreeText.pm 7967366afe28aa12fe5ba3f8a18690cb::Kernel/Modules/AgentTicketHistory.pm 801522ee5758368b0fbc8fdd3d380cc4::Kernel/Modules/AgentTicketLock.pm @@ -954,10 +954,10 @@ 138058ead6af152335f76b3e61930c6f::Kernel/Modules/AgentTicketStatusView.pm 468911a4ae0d6c2aa3586cc9bc461b94::Kernel/Modules/AgentTicketWatcher.pm d4c72d2cf428262475c483a1ebbab862::Kernel/Modules/AgentTicketWatchView.pm -2bbaa28e07de64ebe3015ce57ad57499::Kernel/Modules/AgentTicketZoom.pm +e060de7af532b6294ca5b997c061f205::Kernel/Modules/AgentTicketZoom.pm 1254974481b6999e6dde4dd232288794::Kernel/Modules/AgentUserSearch.pm 12caced5afec6b6a32d3cfdb863dbe3f::Kernel/Modules/AgentZoom.pm -96ce441faee9b9dd42e1993b7e3d81da::Kernel/Modules/AjaxAttachment.pm +5a2d5215a19fc698d9c993d91d50f747::Kernel/Modules/AjaxAttachment.pm d8746819c38fd299339e88273142771a::Kernel/Modules/CustomerAccept.pm 08660c1a26c0a55cb00c08a7110a8ade::Kernel/Modules/CustomerPreferences.pm 3db583a00461a58518eb8661e3c9db3b::Kernel/Modules/CustomerTicketArticleContent.pm @@ -967,9 +967,9 @@ e6bab77e0e2598c617a91044fc3658b1::Kernel/Modules/CustomerTicketPrint.pm c243a098bbfebc543029cd04a664ef4b::Kernel/Modules/CustomerTicketProcess.pm b4f11af47709fdd56fdad2499736cf52::Kernel/Modules/CustomerTicketSearch.pm -b58c74d84755221c540954ed131e6680::Kernel/Modules/CustomerTicketZoom.pm -c7c9de2583887e8786f957e1132241c1::Kernel/Modules/Installer.pm -4f5821583fa2e475de6381cb26029be9::Kernel/Modules/PictureUpload.pm +7b41c13cbbac876f4d1fb8ad8f8d728a::Kernel/Modules/CustomerTicketZoom.pm +fc43740228903881bf9f2ebaf0b5c042::Kernel/Modules/Installer.pm +b92a73b23ef730b18e89f8be1d8459bc::Kernel/Modules/PictureUpload.pm ac2e9d55bad89fa4d2d11fb0e151d37f::Kernel/Modules/PublicCalendar.pm feaef200b557350ad80eb241c62f10d9::Kernel/Modules/PublicDefault.pm e2d77401bea472285f74d333f493fb0a::Kernel/Modules/PublicRepository.pm @@ -999,7 +999,7 @@ 33d7917db8260f0abe8f0796ca480bf7::Kernel/Output/HTML/ArticleCheck/PGP.pm 247191a0661503deb46e56a253ac74f5::Kernel/Output/HTML/ArticleCheck/SMIME.pm 34d90af5921c8079b834768c871e6113::Kernel/Output/HTML/ArticleCompose/Crypt.pm -5cb0a2cd53d9aa5e863c5b0c9e6325ec::Kernel/Output/HTML/ArticleCompose/Security.pm +c6f777e0565bf858a3045dfd92c8370c::Kernel/Output/HTML/ArticleCompose/Security.pm dd6e0c8c411e1ec40bfd0ee53f133073::Kernel/Output/HTML/ArticleCompose/Sign.pm 8b4d987198672d90a1a10d69301cad9b::Kernel/Output/HTML/Base.pm 8091411988c96e1be1a131e9fde52ff2::Kernel/Output/HTML/CustomerNewTicket/QueueSelectionGeneric.pm @@ -1040,8 +1040,8 @@ d7103e8384e317ba539dfc937ceda595::Kernel/Output/HTML/Layout/Loader.pm d24c107d7bd232eb80e273037b00889e::Kernel/Output/HTML/Layout/Popup.pm 41903f04495d9f6d5266a32289615ff8::Kernel/Output/HTML/Layout/Template.pm -0f10305b056d057b48c990f84954b82d::Kernel/Output/HTML/Layout/Ticket.pm -d4f30774c9843ba8c4b83df917f4bc9e::Kernel/Output/HTML/Layout.pm +f78acf664399bfeab1f9fbf537e728d9::Kernel/Output/HTML/Layout/Ticket.pm +3295345b696453baad0e86d283d0ee33::Kernel/Output/HTML/Layout.pm 81894f268d97067968db040044105f85::Kernel/Output/HTML/LinkObject/Appointment.pm 7b879fa01629739359fba2b7775f2ba5::Kernel/Output/HTML/LinkObject/Ticket.pm a20092d9f30cfd7471cf83b3b7df2d0e::Kernel/Output/HTML/NavBar/AdminFavourites.pm @@ -1058,7 +1058,7 @@ 173df1edcd90d06e469705906a658d1c::Kernel/Output/HTML/Notification/AgentTimeZoneCheck.pm f4dcad4fad47d8e452219296e64a1772::Kernel/Output/HTML/Notification/CustomerOnline.pm 39178e7f841bf59c6664a15742fb6e91::Kernel/Output/HTML/Notification/CustomerOTRSBusiness.pm -a6fb5f8010e87bcf35a59dc99271b6b2::Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm +d2c54c4b92e99bac97f154f6c538c42c::Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 5c64af0c316ae7815a94917b3545a726::Kernel/Output/HTML/Notification/CustomerUserTimeZoneCheck.pm b5f4910a8ed024e6b87ffc24a95131e7::Kernel/Output/HTML/Notification/DaemonCheck.pm 2e9d290b7899458e7fe207ece2132d2b::Kernel/Output/HTML/Notification/Generic.pm @@ -1066,7 +1066,7 @@ 609ae1701d7533cc30d80e01eb837d16::Kernel/Output/HTML/Notification/SystemConfigurationInvalidCheck.pm 5563c18f4c4108794653a3863d46663b::Kernel/Output/HTML/Notification/SystemConfigurationIsDirtyCheck.pm f9fe983de45e74d9e15029cdc64a8955::Kernel/Output/HTML/Notification/SystemConfigurationOutOfSyncCheck.pm -527fc026b0c320f630f09db928b06258::Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm +ff5408e936f004a9e84bb1cb1442975b::Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm f81c62953e930f5cba6e494e1923afe6::Kernel/Output/HTML/Notification/UIDCheck.pm a63eb63eac872fd4081ff9e7d7f8d56b::Kernel/Output/HTML/Preferences/AppointmentNotificationEvent.pm 187d5adf7fee18589dd14435558c584f::Kernel/Output/HTML/Preferences/Avatar.pm @@ -1189,7 +1189,7 @@ bea30fc5647b249416b63fb751852207::Kernel/Output/HTML/Templates/Standard/AdminTemplateAttachment.tt 7f6d79859133bff3e6e576893040ce89::Kernel/Output/HTML/Templates/Standard/AdminType.tt 803ad6d3d13e731e811fcbc492fe2abb::Kernel/Output/HTML/Templates/Standard/AdminUser.tt -4e966855c4c8b0ee16757c7614d7e962::Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt +e0461fce550deddde5387941485e0691::Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt e9d8067ea5bca558982487a30235d076::Kernel/Output/HTML/Templates/Standard/AgentAppointmentAgendaOverview.tt 300459952a8f482ac8608639c654a490::Kernel/Output/HTML/Templates/Standard/AgentAppointmentCalendarOverview.tt 8cb2553717c448c4d9d3b4eda7960763::Kernel/Output/HTML/Templates/Standard/AgentAppointmentEdit.tt @@ -1228,8 +1228,8 @@ f08424a1e4bf8156548744efa8fb670e::Kernel/Output/HTML/Templates/Standard/AgentNavigationBar.tt c334ccd4e36b7a46b0b17fb03ab6d6d1::Kernel/Output/HTML/Templates/Standard/AgentOTRSBusinessBlockScreen.tt 85f0be78eab7cab7f67081a436c78a53::Kernel/Output/HTML/Templates/Standard/AgentPreferences/SettingsList.tt -c46251d0500f49f843d43e9db5cb2b56::Kernel/Output/HTML/Templates/Standard/AgentPreferences.tt -141664e9a95611f9d532caf73b7c59e0::Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt +565a68f987f2c5a8db82cab9261e4282::Kernel/Output/HTML/Templates/Standard/AgentPreferences.tt +5b2436a5ffb25516ea70914034237efd::Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt 52a8e71508915e55c76caa5ff094708c::Kernel/Output/HTML/Templates/Standard/AgentSplitSelection.tt 173cb7aa661eb88627917208c01365b0::Kernel/Output/HTML/Templates/Standard/AgentStatisticsAdd.tt b9a1bc80599f6adc1195ef34e788d40c::Kernel/Output/HTML/Templates/Standard/AgentStatisticsEdit.tt @@ -1296,7 +1296,7 @@ c3f48b5d9e763c4076bc9ed6e327e192::Kernel/Output/HTML/Templates/Standard/CustomerHTMLHead.tt a71cc028103be0c5b33db0b83ecb5a36::Kernel/Output/HTML/Templates/Standard/CustomerLogin.tt 9046515ffe2911987188f2a3dc211d88::Kernel/Output/HTML/Templates/Standard/CustomerNavigationBar.tt -5cef8bd7070980cecd4c705c5c7114fe::Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt +5db617337b998f85bac632778860309c::Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt 382fb981cbc3e36a98b0cc1ce94c6fc5::Kernel/Output/HTML/Templates/Standard/CustomerTicketMessage.tt 44074088fe71c8dca1f6aeb57a869c2b::Kernel/Output/HTML/Templates/Standard/CustomerTicketOverview.tt 6ed5a2c5d4467c9031200083111514d5::Kernel/Output/HTML/Templates/Standard/CustomerTicketProcess.tt @@ -1313,7 +1313,7 @@ b90cac72c01799c1835db48feab04493::Kernel/Output/HTML/Templates/Standard/Footer.tt f151e4df9afa11ea94ffe38ea063a927::Kernel/Output/HTML/Templates/Standard/FooterJS.tt 28f1edae1587452f9aaa07de375425f0::Kernel/Output/HTML/Templates/Standard/FooterSmall.tt -10a2ea5538a0daad2c1b7df0200bfc6d::Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt +6cbf0aca909c707b44247fcfc4b18619::Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt aaca2948d32de05b8df83f671d74c696::Kernel/Output/HTML/Templates/Standard/FormElements/DraftButtons.tt 6175f71bf585822c978263f012314d1e::Kernel/Output/HTML/Templates/Standard/FormElements/DraftNotifications.tt af68605b54d7e355ad501cf186f8e6ce::Kernel/Output/HTML/Templates/Standard/Header.tt @@ -1321,7 +1321,7 @@ 3fec48a7b07b40a629815532b37791d7::Kernel/Output/HTML/Templates/Standard/HTMLHead.tt 94f043093b0874efdeaf6128e2bc2842::Kernel/Output/HTML/Templates/Standard/HTMLHeadBlockEvents.tt a019f1fc752ff2f3e3d7c072f89bf631::Kernel/Output/HTML/Templates/Standard/HTTPHeaders.tt -be8be005dc65807e313b400a8388bd66::Kernel/Output/HTML/Templates/Standard/Installer.tt +a5997fe13c2f7c336644b6d0aa92f0bf::Kernel/Output/HTML/Templates/Standard/Installer.tt 243f1ba1899cd29104eac46a85b6f05a::Kernel/Output/HTML/Templates/Standard/InstallerConfigureMail.tt b8abd818469a911f246db853badd789a::Kernel/Output/HTML/Templates/Standard/InstallerDBmssql.tt bf3b1e28c0be181f781a2a2015e71bbd::Kernel/Output/HTML/Templates/Standard/InstallerDBmysql.tt @@ -1411,7 +1411,7 @@ e8c436301bd6432ead39b18e9c2cf8cd::Kernel/Output/HTML/TicketZoom/Customer/Phone.pm ed99f4c44ef258ac64405cc4bb585ec0::Kernel/Output/HTML/TicketZoom/CustomerInformation.pm 50c2bf25ccee70b944710dca3f8aedeb::Kernel/Output/HTML/TicketZoom/LinkTable.pm -cf1fe1d2bf873be0008af0a6c9b288b3::Kernel/Output/HTML/TicketZoom/TicketInformation.pm +a807e3602f18e42d5009ab4794b5aa4e::Kernel/Output/HTML/TicketZoom/TicketInformation.pm 56e2cf4c872331914ebbe811ba3151f2::Kernel/Output/HTML/ToolBar/Generic.pm 821ce93b2f8580e9e7485db3b8779bf7::Kernel/Output/HTML/ToolBar/Link.pm 393b90e5e227905effdadfad24f306c5::Kernel/Output/HTML/ToolBar/TicketLocked.pm @@ -1431,8 +1431,8 @@ 1e170967c43c55668054d27e7c32b026::Kernel/Output/JavaScript/Templates/Standard/Agent/TicketZoom/FormDraftDeleteDialog.html.tmpl c21c931089b8de1b9f52909e6d33eba2::Kernel/Output/JavaScript/Templates/Standard/Agent/WidgetLoading.html.tmpl 91f7753ebc6f424c33882047639a10a8::Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItem.html.tmpl -11246d69ec7e5703c7438d5ef45db37a::Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl -e27cf6889777c902de83aad701cbf58f::Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl +61b4e0f4a25c899770a1162feaa44dc7::Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl +d484c122454a1ecc8260274af25ce02e::Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl 4390bdf95fe173517b8629a6caeff4f1::Kernel/Output/JavaScript/Templates/Standard/Dialog/Waiting.html.tmpl 29a74796382738159f37263c6dd82cba::Kernel/Output/JavaScript/Templates/Standard/MetaFloater.html.tmpl 12f483f5ef4e83581cdfaa350978c3a9::Kernel/Output/JavaScript/Templates/Standard/PackageManager/InformationDialog.html.tmpl @@ -1496,7 +1496,7 @@ 247c4f243b019428e710b8522172fde6::Kernel/System/Console/Command/Admin/CommunicationChannel/Sync.pm db853c549d400268dc852e17472480f2::Kernel/System/Console/Command/Admin/Config/Read.pm ca987fbd154077d645abab086a977d9d::Kernel/System/Console/Command/Admin/Config/UnlockAll.pm -408dcc36e0127492863465ee4cf2426a::Kernel/System/Console/Command/Admin/Config/Update.pm +9d275d013dbd96ea7ab9229e880e7fef::Kernel/System/Console/Command/Admin/Config/Update.pm 7c9b9b5b91f26d861bfc507c0756b515::Kernel/System/Console/Command/Admin/CustomerCompany/Add.pm b933139a90c25dead2d33050d14522f0::Kernel/System/Console/Command/Admin/CustomerUser/Add.pm 616b2c4f8ea7183b447ec0f3239fee53::Kernel/System/Console/Command/Admin/CustomerUser/SetPassword.pm @@ -1514,7 +1514,7 @@ e25291162ee50ace7d764fa959a6c2d4::Kernel/System/Console/Command/Admin/Package/RepositoryList.pm 1907eee985a1094bfa2981d23c560540::Kernel/System/Console/Command/Admin/Package/Uninstall.pm f555cd049503ed8ae903477baebcc5b1::Kernel/System/Console/Command/Admin/Package/Upgrade.pm -a48c10da10b5012623739296a4c61f2e::Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm +de414678a91a5a6e17cc71f8c25cc3f0::Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm 95cad37b56c33498471de213a13606a6::Kernel/System/Console/Command/Admin/Queue/Add.pm 49871543565188912815933368909100::Kernel/System/Console/Command/Admin/Queue/List.pm 6c6e61615d98318e887b26b5eab9ef82::Kernel/System/Console/Command/Admin/Role/Add.pm @@ -1559,11 +1559,11 @@ 5267c8a5a95ceb185ed01a84eeba0728::Kernel/System/Console/Command/Maint/Cache/Delete.pm 3aeb796ac95a9fbe24049a843bbe55b0::Kernel/System/Console/Command/Maint/CloudServices/ConnectionCheck.pm 6948cb846ba931870acab141be1dbdc9::Kernel/System/Console/Command/Maint/Config/Dump.pm -ed9650a3751374a406f45f336c263662::Kernel/System/Console/Command/Maint/Config/Rebuild.pm +45acbc5ecc3f03e6991ad16d8ab7c473::Kernel/System/Console/Command/Maint/Config/Rebuild.pm 330a7bc84102f8f853a4bbefc18f37fc::Kernel/System/Console/Command/Maint/Config/Sync.pm aeeaf3d057e71cd867e87c3a143d32db::Kernel/System/Console/Command/Maint/Daemon/List.pm f0b2badc8a80278d445566a35cd9a98f::Kernel/System/Console/Command/Maint/Daemon/Summary.pm -8754da92076619eaeaaf3383bed06fb4::Kernel/System/Console/Command/Maint/Database/Check.pm +2ae7244252308015c583e61620db2388::Kernel/System/Console/Command/Maint/Database/Check.pm 49169eeb48a329c618bc6ab92150ad99::Kernel/System/Console/Command/Maint/Database/MySQL/InnoDBMigration.pm 4f01f23065f941b0cf1657d0cfa88650::Kernel/System/Console/Command/Maint/Database/PasswordCrypt.pm 36e921badc4a6579a9f552126dfcc9e5::Kernel/System/Console/Command/Maint/Email/MailQueue.pm @@ -1577,7 +1577,7 @@ 2efe5e013a18a9d431b4763f41c8dd3d::Kernel/System/Console/Command/Maint/Log/Print.pm d75645e97db5db0352ed69f93037a149::Kernel/System/Console/Command/Maint/OTRSBusiness/AvailabilityCheck.pm 1ca3ea0eeb3bfc79d96c6134ad5cf509::Kernel/System/Console/Command/Maint/OTRSBusiness/EntitlementCheck.pm -2271b5d72dd9e4084fbe1365db80986a::Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm +9bbcf88cff2bb186fb93ce919de5781c::Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm 83788deda1bcbd4ffd8ed5fdbb1b0411::Kernel/System/Console/Command/Maint/PostMaster/Read.pm 3a1ac9585b27a4b9f12472f7fd8ba30d::Kernel/System/Console/Command/Maint/PostMaster/SpoolMailsReprocess.pm 93cc4f6d8124c0711433825ac69e0677::Kernel/System/Console/Command/Maint/Registration/UpdateSend.pm @@ -1652,7 +1652,7 @@ 9694ca08b348253e6e69fb88903fec79::Kernel/System/DB/mssql.pm 762c0c11b251a26f0e60f96e79b55393::Kernel/System/DB/mysql.pm 2d8860853a72beabe839a1a421d93803::Kernel/System/DB/oracle.pm -d9355c3b258949398040fed22673b4cd::Kernel/System/DB/postgresql.pm +060e10d81147413d2a415e7c4c469ce2::Kernel/System/DB/postgresql.pm 88f8c27736683af0afc22cc773868a52::Kernel/System/DB.pm 76d020759d95ded6f2844cc76981bac1::Kernel/System/Diff.pm 964907dae936b8f4e4cc7ad6e35b9eb9::Kernel/System/DynamicField/Backend.pm @@ -1699,7 +1699,7 @@ 92c92e30dc82bc9231097912adce345d::Kernel/System/GenericInterface/Webservice.pm 43469e8b72f10efa4abb33e3327d5735::Kernel/System/GenericInterface/WebserviceHistory.pm d0195fb74789f0c5c1598f95d22b8786::Kernel/System/Group.pm -8e2eacd1cd21035ad4717a2b20235f0b::Kernel/System/HTMLUtils.pm +3fd8bc9b62691dd7ec00b9e5fb910f13::Kernel/System/HTMLUtils.pm 38a4f2a584c7d89f0be662a836a8d8e3::Kernel/System/JSON.pm 01c39d06f0fe059cb3d91effc1f0570e::Kernel/System/LinkObject/Appointment.pm 9251ab9613a3a19c096e9b0b8b0d8f29::Kernel/System/LinkObject/Ticket.pm @@ -1717,19 +1717,19 @@ b7b5e0138da390b52f86389a8dbd1f73::Kernel/System/MailAccount/POP3TLS.pm 51766bd2eb0dd062315cdf384d9fa610::Kernel/System/MailAccount.pm 9e731015a09a3ae6e27f23b55210c7e6::Kernel/System/MailQueue.pm -4976f372f74d15dc5e9bb1de26e75de3::Kernel/System/Main.pm +6223fd6bb25bbf151844434a2cac4ab7::Kernel/System/Main.pm d4e8797583635b967a2bb6d2f2644c11::Kernel/System/NotificationEvent.pm 4ede7e383c95bd4c7da81759db3565f9::Kernel/System/ObjectManager.pm 3ed1fc3b103226ce1a19953dcbbc094c::Kernel/System/OTRSBusiness.pm c2cd068ebcf021e36348e3fbd7adae37::Kernel/System/Package/Event/SupportDataSend.pm -11ce135edd744c5ed9c7814a32290b2a::Kernel/System/Package.pm +ae36a3627702befb609ded5186c10bc9::Kernel/System/Package.pm 556a71424f0ff47a82576524d6892289::Kernel/System/PDF.pm 3c83ffaa3d9ac5aa7fc064bc5918edc7::Kernel/System/PID.pm 52ef43b424426e8cb5d946044a52eb67::Kernel/System/PostMaster/DestQueue.pm fa1496953391fd2cf811a5fe4d85cd08::Kernel/System/PostMaster/Filter/CMD.pm 983028c91224fd7f65c8c84157582fb8::Kernel/System/PostMaster/Filter/Decrypt.pm 16d893496b6c497dba1a031f2fc788fe::Kernel/System/PostMaster/Filter/DetectAttachment.pm -190a37aa71307735e4eaebee5990568c::Kernel/System/PostMaster/Filter/DetectBounceEmail.pm +e8cd1dbf16d8635a08eb90ed56b5b869::Kernel/System/PostMaster/Filter/DetectBounceEmail.pm c392c470f37686fe536905034d4d4240::Kernel/System/PostMaster/Filter/ExternalTicketNumberRecognition.pm 65c71e10f5dde8ed2c574e2fe8b97a2f::Kernel/System/PostMaster/Filter/FollowUpArticleVisibilityCheck.pm d7bb93f6026d37f983beee5c92fd53de::Kernel/System/PostMaster/Filter/Match.pm @@ -1766,7 +1766,7 @@ 64d76ee3555b1563d39ba39a5da8637b::Kernel/System/ProcessManagement/TransitionAction/Base.pm 6924147884ea1a32c2f0b0df1eecb1a5::Kernel/System/ProcessManagement/TransitionAction/DynamicFieldSet.pm 46ec7c92d630ee77e4c88f14ead427d3::Kernel/System/ProcessManagement/TransitionAction/TicketArticleCreate.pm -342a83cd9a6b1a141197a3c82984c6b0::Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm +77832735ca3a7ab75301e3ec0859e0f3::Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm 67802e5296b9f9929b0906352d0c9711::Kernel/System/ProcessManagement/TransitionAction/TicketCustomerSet.pm ba4ade725d5830c501fa01c90fb95643::Kernel/System/ProcessManagement/TransitionAction/TicketLockSet.pm 1290087886384be54df3ee156f011d42::Kernel/System/ProcessManagement/TransitionAction/TicketOwnerSet.pm @@ -1779,7 +1779,7 @@ 3094f471a105030d31b39d96c94d45bd::Kernel/System/ProcessManagement/TransitionAction/TicketTypeSet.pm ef2a5f6a8fcd7d678ecb07e336a5d158::Kernel/System/ProcessManagement/TransitionAction.pm 51389d140c22fda8ea849e8b6e058fef::Kernel/System/ProcessManagement/TransitionValidation/ValidateDemo.pm -e63b60009a13bbb64c4b6536c5a0ecf6::Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm +ced698518d5e9d76cb99f8bc79685507::Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm 0e9f88dec4f3c0e532744d7abdaef2a9::Kernel/System/Queue/PreferencesDB.pm f0dfc5e5b5c40430287b10b008eadefc::Kernel/System/Queue.pm a18a6e605d14b0d2d6332e60f5714991::Kernel/System/ReferenceData.pm @@ -1807,16 +1807,20 @@ f5cf8b5589a0d18f75a2480440e63c77::Kernel/System/SupportDataCollector/Plugin/Database/mssql/Version.pm f6ce178e68f0f321a43ae602694b7238::Kernel/System/SupportDataCollector/Plugin/Database/mysql/Charset.pm c1bfbeaca85cc2bec317be334739a159::Kernel/System/SupportDataCollector/Plugin/Database/mysql/InnoDBLogFileSize.pm +6c38f77dbf451d13f227c35ecc996dfd::Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm 62d8726feb4e85496c0029a006a86c5f::Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 665729a2beff6782d27db1b90f20f922::Kernel/System/SupportDataCollector/Plugin/Database/mysql/Performance.pm 357f41dd1f158be0cbf799dc8ee96597::Kernel/System/SupportDataCollector/Plugin/Database/mysql/Size.pm 03a6442f35957c03ca7e988a56b62b34::Kernel/System/SupportDataCollector/Plugin/Database/mysql/StorageEngine.pm +577e898e140cbbdb4018d945577022d5::Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm 5baa4b79be4c024dbbad9d406e4c2f24::Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 77c22e60a2fa3faefb4e6258dfc52f80::Kernel/System/SupportDataCollector/Plugin/Database/oracle/NLS.pm +0c21edc6f6ebd2163c4ba7f835118908::Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm b209822a69e41450c57e4dc130dbc3e3::Kernel/System/SupportDataCollector/Plugin/Database/oracle/Version.pm 21e79f53044b0175d28c4d84df9a8780::Kernel/System/SupportDataCollector/Plugin/Database/OutdatedTables.pm c99e9cb14e2da9d7a57d7c0c1877b076::Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 299cd2778abe2f9ce789e3bd149c80e5::Kernel/System/SupportDataCollector/Plugin/Database/postgresql/DateStyle.pm +ef3e814500de7d1e3f14c7b6b06f323f::Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm 5c321bc525dd1300cbbeb6f330a4008f::Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Size.pm 2bdd61e68dd36d6ba5c59bcc49c04518::Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm e5a4279fa632b5e9b389ded6489cb5f8::Kernel/System/SupportDataCollector/Plugin/Database/TablePresence.pm @@ -1895,12 +1899,12 @@ c9a173d047c09293da0e9f0ab45d789e::Kernel/System/SysConfig/ValueType/VacationDays.pm db62a6fe810aff75656ca4640a43c759::Kernel/System/SysConfig/ValueType/VacationDaysOneTime.pm 5dd709eca40e7a11ebf06aa12e32bb49::Kernel/System/SysConfig/ValueType/WorkingHours.pm -aece9b9f9a8c4f96c778fe1488718ebc::Kernel/System/SysConfig/XML.pm -64f44195d3d45b206e6bab9bf1df2ec0::Kernel/System/SysConfig.pm +aee17acec29d68b7e70a05e99e7838ca::Kernel/System/SysConfig/XML.pm +61e3df0a3eafa69aed0401b02a5c38a3::Kernel/System/SysConfig.pm f91b300835d93692242b105e5c1d3100::Kernel/System/SystemAddress.pm ff96f47414ab6b495f47555766d0e2f1::Kernel/System/SystemData.pm -f5de7c3c96e3f62fae9f4b11f0781b6f::Kernel/System/SystemMaintenance.pm -d1d63fa03a9d9c4908ca80832d045139::Kernel/System/TemplateGenerator.pm +592dd479b061643f01e0c7a8285ba2dc::Kernel/System/SystemMaintenance.pm +56cdfd7926f7495c2ecd0b88de360d1b::Kernel/System/TemplateGenerator.pm 8f76ddccaf4ac607daddb728ea65a614::Kernel/System/Ticket/Acl/CloseParentAfterClosedChilds.pm 29189477a1f422ff663b860f22313837::Kernel/System/Ticket/Article/Backend/Base.pm 01c167e154b80e8d9b2af5b4e6f94218::Kernel/System/Ticket/Article/Backend/Chat.pm @@ -1910,10 +1914,10 @@ 9a681c33a1642e98980f1ebc51346e91::Kernel/System/Ticket/Article/Backend/MIMEBase/ArticleStorageDB.pm bb3a62f51c38604536e7e32064b89e70::Kernel/System/Ticket/Article/Backend/MIMEBase/ArticleStorageFS.pm 21d0a01bd6cbe69dde857a9d49b396fb::Kernel/System/Ticket/Article/Backend/MIMEBase/Base.pm -6e40548273fe33d376247f0409d9a957::Kernel/System/Ticket/Article/Backend/MIMEBase.pm +1d30b76773f76528e285aa57af013d76::Kernel/System/Ticket/Article/Backend/MIMEBase.pm a3590de12a26c7df0bf4238b5c5eac10::Kernel/System/Ticket/Article/Backend/Phone.pm 878c6c854c526b97536151de68aca005::Kernel/System/Ticket/Article.pm -a79c73e509aa1ec0b9b57b2fd9639709::Kernel/System/Ticket/ArticleSearchIndex/DB.pm +db97b7d084ce34915e428b1ab2e9eaab::Kernel/System/Ticket/ArticleSearchIndex/DB.pm 6f3a59788811a089b2686c64f7ddc974::Kernel/System/Ticket/ColumnFilter.pm 7cc7ecb2183a8154033da91d78a5a39a::Kernel/System/Ticket/CustomerPermission/CustomerGroupCheck.pm b3149a6f773769b930eea29dd1737afa::Kernel/System/Ticket/CustomerPermission/CustomerIDCheck.pm @@ -1930,7 +1934,7 @@ 52ab52a3c2445132a37fbeaad4931ee7::Kernel/System/Ticket/Event/LockAfterCreate.pm 878731e3c54cb91673c493b9cb8001f4::Kernel/System/Ticket/Event/NotificationEvent/Transport/Base.pm 14d7eb5b935ddc8944bb441354972a5a::Kernel/System/Ticket/Event/NotificationEvent/Transport/Email.pm -67818aca8b99f9fc4c7f52bb1d6c4fe9::Kernel/System/Ticket/Event/NotificationEvent.pm +ab769fdec2ea1da47a989a331b65cc45::Kernel/System/Ticket/Event/NotificationEvent.pm 174dddc4330823aed56f1e6bde988862::Kernel/System/Ticket/Event/ResponsibleAutoSet.pm 3719c222e6339b49b281fca4bff40e8a::Kernel/System/Ticket/Event/Test.pm 462183ae63da61f7aa5ad349daffeeb4::Kernel/System/Ticket/Event/TicketAcceleratorUpdate.pm @@ -1942,7 +1946,7 @@ bb190286a60cab1fcce5d2050cc064d0::Kernel/System/Ticket/Event/TicketProcessTransitions.pm b533b7ab1160e4ccdb7a54127487dc22::Kernel/System/Ticket/Event/TriggerEscalationStopEvents.pm 344ff8eb68f4bcb4f2e0ece53f6434c4::Kernel/System/Ticket/IndexAccelerator/RuntimeDB.pm -7e2635ad27a7a53f280ae96bb2699907::Kernel/System/Ticket/IndexAccelerator/StaticDB.pm +f9ee98a74a53dc48c3e001971c2d68ae::Kernel/System/Ticket/IndexAccelerator/StaticDB.pm 8a6da29e082a8586a3456208278dfea4::Kernel/System/Ticket/Number/AutoIncrement.pm bcac504ce14cedfb00a986d722d8282c::Kernel/System/Ticket/Number/Date.pm 8df9ca41465ec23c20a4a6348c1b757b::Kernel/System/Ticket/Number/DateChecksum.pm @@ -1958,11 +1962,11 @@ 23e71ec12da487ad7f0a596c868ecd51::Kernel/System/Ticket.pm db47ffbbf2b12c3eb2bb4904b24f9b1c::Kernel/System/Time.pm 235e3a3b9d48accfe8d592779d593b60::Kernel/System/Type.pm -27bc1f99de23d841ca3ebcd313fedba0::Kernel/System/UnitTest/Driver.pm +7e4866aa59e9663157493da006dec2af::Kernel/System/UnitTest/Driver.pm bec05bdcc92e543922765d46d1da8923::Kernel/System/UnitTest/Helper.pm -2df133abd7ee7bef707f6de3ae48062f::Kernel/System/UnitTest/Selenium/WebElement.pm -9296357ac638c3324a3cba653a34272b::Kernel/System/UnitTest/Selenium.pm -3448033779097b26fde35aa034beec64::Kernel/System/UnitTest.pm +62ab77b2252252bd26c93fb05760bccb::Kernel/System/UnitTest/Selenium/WebElement.pm +3dced12e16482d783b89161fa1962645::Kernel/System/UnitTest/Selenium.pm +caba3d77abd3b655670b1b2b46aef399::Kernel/System/UnitTest.pm 9d439f9c75cd22c9d82ee62833bf79fa::Kernel/System/User/Preferences/DB.pm 022aa24b1519fd87caa610953b0828c9::Kernel/System/User.pm bf948d56d0f70e68f0b09e77b631c1ca::Kernel/System/Valid.pm @@ -1970,7 +1974,7 @@ 938a210789bfda47ea3f68f3f049f51f::Kernel/System/VirtualFS/DB.pm d31d9f977e2e308aaefdf5e75e920021::Kernel/System/VirtualFS/FS.pm c8ec436339ae48986e9dc4018e6f846d::Kernel/System/VirtualFS.pm -2dcab9fc56d3c0ab497cb33085bbe6f6::Kernel/System/Web/InterfaceAgent.pm +caf419a3aec87bcf2b8d35e3aa5b3e94::Kernel/System/Web/InterfaceAgent.pm 3b4585a4d1611527c67e769d2d429f4a::Kernel/System/Web/InterfaceCustomer.pm 2c8a8291289496ace875598d791fce9a::Kernel/System/Web/InterfaceInstaller.pm c25698902adba258d488552db3cddfc7::Kernel/System/Web/InterfacePublic.pm @@ -1983,7 +1987,7 @@ b4b8570915e4968c9156b48ac70ac1c8::Kernel/System/XML.pm 1e08638be4ecbed5b17d06556e0bc959::Kernel/System/YAML.pm fec88798fae975f579f6fc8b1d68f3a4::README.md -4682e327dca10dd4f34f5a951594379d::RELEASE +3094e0ffc9a7d291b67b2b6d99b72d9f::RELEASE 1511d08a6fe4d84990fa5995be70a60b::scripts/apache2-httpd-plack-proxy.conf caffb9d364da24b05b01c4b371ca5ebd::scripts/apache2-httpd.include.conf 692c48e96c16229483b5c270f6c8671d::scripts/apache2-perl-startup.pl @@ -2005,7 +2009,7 @@ 103c6425fd938f28c2763582803ce70c::scripts/auto_build/spec/templates/rhel7-otrs.spec.tt 1b82491830a2d058fe6cebc45ec78476::scripts/auto_build/spec/templates/suse12-otrs.spec.tt 80198523b466d80497fd8264eb10c9b7::scripts/auto_build/spec/templates/suse13-otrs.spec.tt -1f396cbaca6718a89177cb771c6c910a::scripts/backup.pl +ce705977f03f54a16dd8ee9302835df4::scripts/backup.pl ac75b1dd57abcd6de356a71d3d115814::scripts/contrib/otrs.SyncLDAP2DB.pl 65811c7793db05c9538aa1c23ac5f1bb::scripts/database/otrs-initial_insert.mysql.sql 6b55d57db22c3ffaee5ef381dc2332d5::scripts/database/otrs-initial_insert.oracle.sql @@ -2049,6 +2053,7 @@ 7b4f4a78dc2665ffecc4c2ad9008bc20::scripts/DBUpdateTo6/MigrateTicketStorageModule.pm 3e1904d814b420896e96e89af6fcfb27::scripts/DBUpdateTo6/MigrateTimeZoneConfiguration.pm 71dc8bd29398a694053d56ce8b3e63e3::scripts/DBUpdateTo6/MigrateWebServiceConfiguration.pm +f198fafcf6e6533c84ccff57e8651b7e::scripts/DBUpdateTo6/MigrateZoomExpandConfig.pm f9ee03d420b6fe35a092def9e6fd38d4::scripts/DBUpdateTo6/PerlModulesCheck.pm 4a945928c5fd967d2b78ea49e40a56eb::scripts/DBUpdateTo6/PerlVersionCheck.pm 9779e2b8d8a47899e3b14c3c63872aa3::scripts/DBUpdateTo6/PostArticleTableStructureChanges.pm @@ -2074,8 +2079,8 @@ 5b5dba7121b75e29d47e259cf6dbcef8::scripts/DBUpdateTo6/UpgradeDatabaseStructure/TicketIndexUpdate.pm 5612a26af6542bc1c138095c0da2d4cb::scripts/DBUpdateTo6/UpgradeDatabaseStructure/UpdateNotificationTables.pm 836265c32b3a9ee61046e9477c571cc5::scripts/DBUpdateTo6/UpgradeDatabaseStructure.pm -aa11050103f982290a5d0865658feb3b::scripts/DBUpdateTo6.pm -48ea2ea5e1c077b7b3e949cc60b5d042::scripts/restore.pl +8ef40342828c330ab76910a07c017a96::scripts/DBUpdateTo6.pm +7d400d51f2d13da6768b6027a764a73f::scripts/restore.pl e629cf1045bf6bf99d3b96777372f8af::scripts/rpc-example.pl 1c0e526bfe37ff3442bccf4cd0b9bfa7::scripts/test/ACL/DB/ACL.t 185a429e380afedebe9276371483691f::scripts/test/ACL/DB/ACLImport.t @@ -2180,7 +2185,7 @@ 00cc73994b7a084301012a1715169fba::scripts/test/Console/Command/Maint/Log/Print.t f9c8b3baf233e797f26a19e20b81cbdd::scripts/test/Console/Command/Maint/OTRSBusiness/AvailabilityCheck.t 8729cc789b48f3eac6a3229a507f9d83::scripts/test/Console/Command/Maint/OTRSBusiness/EntitlementCheck.t -8da3f84ec3d8f39333d631b9ad85de06::scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t +546541efc31052b2920ea136d53094e8::scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t 566f068efd349d21f9652271b53658b3::scripts/test/Console/Command/Maint/PostMaster/Read.t fd1500241b6645563b509c7d3e354d42::scripts/test/Console/Command/Maint/PostMaster/SpoolMailsReprocess.t 16c8729ce7222bdc7d3957c1c104c586::scripts/test/Console/Command/Maint/Sessions/Commands.t @@ -2282,7 +2287,7 @@ d0aa0fe926f2618513c8d960535fdf4d::scripts/test/DB/XML/TableAlter.t 831c2778d8c3dcd5edb483ed627a7925::scripts/test/DB/XML/TableCreate.t 949cd88689f4be6e0d55859ca262f709::scripts/test/DB/XML/TableDrop.t -a162769ffa855f977fe95342a0396959::scripts/test/DB/XML/TableRename.t +679f2092ad29cfccb9dce59e8ea279a6::scripts/test/DB/XML/TableRename.t 640690e748b49a9bed6843758e25defe::scripts/test/DBUpdate/CleanGroupUserPermissionValue.t dfb23149eaafcd4cc332ae18268be668::scripts/test/DBUpdate/DBUpdateTo6.t 608beeb31327377a2d76d8bc325c8ad8::scripts/test/DBUpdate/MigrateArticleData.t @@ -2410,7 +2415,7 @@ 441191f060256f04f0aed90606b953f7::scripts/test/HTMLUtils/DocumentStrip.t edec99eb454d5e60613fa1875996b746::scripts/test/HTMLUtils/EmbeddedImagesExtract.t 18b0a3c4dab311275b51bb12087c0e42::scripts/test/HTMLUtils/LinkQuote.t -210170f5783c000e7b901a457fe2e594::scripts/test/HTMLUtils/Safety.t +e0e60a496f266c27007097fafd55cac4::scripts/test/HTMLUtils/Safety.t 2bcd0fba11502ed31b3e68cb4c4a01f1::scripts/test/HTMLUtils/ToAscii.t b740a7858bf14e523fe1fff4aaa04999::scripts/test/JSON.t bce63c8c37ba97db763976aa60215bf6::scripts/test/Language/FormatTimeString.t @@ -2421,13 +2426,13 @@ 1817a944a2c8dffc73f412adac54599a::scripts/test/Layout/Blocks.t 0bf8912c32f094b8d047198035ddd06a::scripts/test/Layout/BuildDateSelection.t 2ccf18f5210823cc9678117dcb73384f::scripts/test/Layout/BuildSelection.t -be65911c22ddd786c13f64600cbe7ae2::scripts/test/Layout/CheckParsedTemplates.t +c9fe162158095705afd99928da342fd8::scripts/test/Layout/CheckParsedTemplates.t bd09f10666299eda1b0de927dd53d5f2::scripts/test/Layout/CustomerAge.t 8b32313c2d1413d5f87a112b460181e0::scripts/test/Layout/CustomerNavigationBar.t 6aaab21df7a94e0463abd6aacb451bf0::scripts/test/Layout/HTMLLinkQuote.t fb5444f91af02ab8652906369eef6132::scripts/test/Layout/HumanReadableDataSize.t 690671688c2191cebdc60a07162a8e8a::scripts/test/Layout/LinkEncode.t -98fc57e2f6d7cf8a18ce65ea91af0b51::scripts/test/Layout/NavigationBar.t +575458dae668a94ca1085772b178d2d9::scripts/test/Layout/NavigationBar.t 87656ca032e1485fc9f2a8655dd57069::scripts/test/Layout/OutputFilterTextURL.t 31ab4aaf13e874ebb8ac46646612a8dc::scripts/test/Layout/Permission.t 8397b0d0e7b3062ccd73a36573c08f1a::scripts/test/Layout/RemoveScriptTags.t @@ -2479,12 +2484,12 @@ 0537d97343b9a57f75ae578d5c217e9f::scripts/test/ObjectManager/Singleton.pm f23d3d8a54250d25c1239b7904c22d96::scripts/test/OTRSBusiness/EntitlementCheck.t e07bd04f4631a587bd30fa170c19bff1::scripts/test/Package/CheckVersion.t -c6f27faef0536461b85ad645d2895b79::scripts/test/Package/ConfiguredRepositoryDefinitionGet.t +abf1366a547b92cdb0aaf8327f6dc781::scripts/test/Package/ConfiguredRepositoryDefinitionGet.t ad7a3835e5151b9e609db248853a1b14::scripts/test/Package/PackageFrameworkRequirements.t dc413e4f85c45d3eb887f92da8a28db4::scripts/test/Package/PackageInstallOrderListGet.t 33b33bb1ef183dc47aa1099b164220ac::scripts/test/Package/PackageParse.t ec4690a2c47dffd962643d79a5d00a60::scripts/test/Package/PackageUninstallMerged.t -3caf47771a8a9712d73e738759789c30::scripts/test/Package/PackageUpgradeAll.t +33504f2dff640f6c1e36c08e2c159cc6::scripts/test/Package/PackageUpgradeAll.t b50b7025f97c9d384b81800f8e72a826::scripts/test/Package/PackageUpgradeMerged.t b2b4bd27ba3009a897ea398d48ac6dbd::scripts/test/Package/PackageVerify.t 5386d6531380b10b24be7d2d5f6d5b03::scripts/test/Package.t @@ -2549,7 +2554,7 @@ 8a0e4ee289e03f2355af418d2ff35e09::scripts/test/ProcessManagement/TransitionAction/TicketTypeSet.t 1267463402b67efcd4f78812521ec302::scripts/test/ProcessManagement/TransitionAction.t 3be7c06ba74b94ae4041fd64b2293171::scripts/test/ProcessManagement/TransitionValidation/ValidateDemo.t -d1563978ae2f8aec52fcc8de4f2436f4::scripts/test/Queue/Event/TicketAcceleratorUpdate.t +15a6d0cd98fe656232609f4cc8d5c80d::scripts/test/Queue/Event/TicketAcceleratorUpdate.t b09aac83e58a5ec88a8ca64a05408031::scripts/test/Queue.t dc8cba7dd96fc7ffb81adc51630cd7b5::scripts/test/ReferenceData.t 6644a1b95a3e21ad7ef8f92144e22ec0::scripts/test/Salutation.t @@ -2815,143 +2820,143 @@ 3fdf18905b012508e167a97b3acf4df3::scripts/test/sample/XML/XMLSimple-Test-file.xml 3144aa905b9583da6af3ab24e92529f3::scripts/test/SearchProfile.t d2a84756b0d8096f3d6e10290667e0ae::scripts/test/Selenium/Agent/Admin/Admin.t -bab941a742e3042e75120cb22a4840ff::scripts/test/Selenium/Agent/Admin/AdminACL.t -9eef5149966e229600d083eeca791f61::scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t -c656379216a4eff03a7a4e374192d893::scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t -25adb53331cf112ab94f6a2721e24dfa::scripts/test/Selenium/Agent/Admin/AdminAttachment.t -eda0f56c2b50d92dd06dd5c870f2c32b::scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t +85c8c0d92dff9ddf228fcd35709b0391::scripts/test/Selenium/Agent/Admin/AdminACL.t +702f8f9975e62b7fdbdb2e54f022527e::scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t +a2a23f9a563a62506e634e1d16a48dc8::scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t +abe1ddee735ce24de448ba3bbcfdc173::scripts/test/Selenium/Agent/Admin/AdminAttachment.t +1c2cbf1b72848359560627bb1150a730::scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t 55008253e98ea32d9fa8cf9bd38c7f84::scripts/test/Selenium/Agent/Admin/AdminCloudServices.t -d1f7f9fe2c33410956ef8b3167559735::scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t -2fd4148c0b7dea2824d88ab37facb8fa::scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t +43181519c139ad02028ac7e04faa4944::scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t +06b8dad480f8a35b35c21cd7f2594762::scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t 665e9dd642e15df46c717274d7a96e4e::scripts/test/Selenium/Agent/Admin/AdminCustomerGroup.t -4974372376a3550ea51558c3e077eeb7::scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t +2a223b00a3e4d38c4d3aaa3aa7843c50::scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t b60858e2052a287bf194c72e92e7fbfe::scripts/test/Selenium/Agent/Admin/AdminCustomerUserCustomer.t -5a8ff7ac1f4bcbad81f4d29c976b2631::scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t -0ed18724f8581217c5e54aba94eabdd5::scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t -de378e3e314795c236677d54d968422b::scripts/test/Selenium/Agent/Admin/AdminDynamicField.t -1347c7412ac99a22c6c5e9454da56b87::scripts/test/Selenium/Agent/Admin/AdminEmail.t -79ca01cf9bba40a9745977524ab8b707::scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t -45b9a23d096109abd9cb1bdb4c23beb8::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t -61d710c95faf84b76690383dbf065f89::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t -2adc02def0fc32a5399eeb70e3c25cbb::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t -2125cf23c26d63299bffdc9cd41084e3::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t +f8167febdf3b8767dd60070a847f167f::scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t +1e4db9a0514e0bd635eab95e63c957bb::scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t +6cfb0fafeb1d224d4a6cf127bb7ee17c::scripts/test/Selenium/Agent/Admin/AdminDynamicField.t +09fb75a3a9541617bdbe7248114879be::scripts/test/Selenium/Agent/Admin/AdminEmail.t +7f4946dbf86f7c4d310bc2180707dffb::scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t +6ca75146a9427f22086d1d6831e730a1::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t +491f33492fb44cbd81cba606428b73ab::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t +792ad4aab82d7f39f0a4be76976bcb9c::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t +bbc1f0ee187a9add21d4d544e5c42b1d::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t aeb87fe780a5cce2059ba0378868b9f2::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPSOAP.t 650aff38886d49b9e4d710ba1e177283::scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceWebservice.t -bcb782ad1647eeeadc8d61e082429aff::scripts/test/Selenium/Agent/Admin/AdminGroup.t -98861592f7dfa92d08b92fa54cd9c9f8::scripts/test/Selenium/Agent/Admin/AdminLog.t +c8b45c6ed95ae9eb00cf628cd4a32ea6::scripts/test/Selenium/Agent/Admin/AdminGroup.t +d71847c784badc9b071f50923608d4c8::scripts/test/Selenium/Agent/Admin/AdminLog.t 951d19208c2c4a3794285ac6b5d1558f::scripts/test/Selenium/Agent/Admin/AdminMailAccount.t -473d718737aac22e27f7c8c935e34710::scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t +21a095afff5b936be40fff4f08a98968::scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t 22a49ae3a798bfe84ed3d2a61f3eecaf::scripts/test/Selenium/Agent/Admin/AdminPackageManager.t 88ca89787dd88f16c9b974776cfc572a::scripts/test/Selenium/Agent/Admin/AdminPerformanceLog.t c46098d4cdd47050588dd3bdc3f7362f::scripts/test/Selenium/Agent/Admin/AdminPGP.t 41acd66de4fcf125715eea7dfe68072c::scripts/test/Selenium/Agent/Admin/AdminPostMasterFilter.t d975c6a26f61a79b221ea8e7e502d460::scripts/test/Selenium/Agent/Admin/AdminPriority.t -0c55b8095701f2f8afb4b7720db55139::scripts/test/Selenium/Agent/Admin/AdminQueue.t +4921c2b081e03309a4f6db94761e3f81::scripts/test/Selenium/Agent/Admin/AdminQueue.t e832e080b55d66e47f30318ced1af851::scripts/test/Selenium/Agent/Admin/AdminQueueAutoResponse.t -f1c6599f9196ee22a7d2d8f60fbd20ab::scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t +caf2b6a824af0e9bc5ceb077ff8416df::scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t e746445423f72a2b74028bc88cdc5270::scripts/test/Selenium/Agent/Admin/AdminRegistration.t -37d3855d5e65011c823d208c00eda4f7::scripts/test/Selenium/Agent/Admin/AdminRole.t -a50d0c84daaa0e5936c06db0b5e55a86::scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t -43e2a8c8db4482797da3c0ca147d8551::scripts/test/Selenium/Agent/Admin/AdminRoleUser.t -be99a1eb0fa7e09929784223c81ab71f::scripts/test/Selenium/Agent/Admin/AdminSalutation.t -19f1af2d9e519cdf0a0f164c63d7d69e::scripts/test/Selenium/Agent/Admin/AdminSelectBox.t -3df7310570e08bf634c75de00892580b::scripts/test/Selenium/Agent/Admin/AdminService.t +bfff7f0aeeb4fecd7f11bdf791e85643::scripts/test/Selenium/Agent/Admin/AdminRole.t +5038f29eb22567df54f66b13dca3fe02::scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t +191b8064ae886caf03c17f980ebaf40a::scripts/test/Selenium/Agent/Admin/AdminRoleUser.t +1a1e7d779396d3bc47671f3717a3b845::scripts/test/Selenium/Agent/Admin/AdminSalutation.t +5cc8ab34a5fc35c8504a679634164115::scripts/test/Selenium/Agent/Admin/AdminSelectBox.t +1ec94763593eec6774b06d970eb1a7ac::scripts/test/Selenium/Agent/Admin/AdminService.t 9167d85969fe9cbca0b8efd6b3ec6b88::scripts/test/Selenium/Agent/Admin/AdminSession.t -2816cfa21996ab6acdb613f9aee5cae0::scripts/test/Selenium/Agent/Admin/AdminSignature.t -902f8672e099378738e167b8e2c97d54::scripts/test/Selenium/Agent/Admin/AdminSLA.t -8af82d89b5eb8dc6d1f8f1f3d4a7894e::scripts/test/Selenium/Agent/Admin/AdminSMIME.t -b81804be495784f3c27b7bb1376bee40::scripts/test/Selenium/Agent/Admin/AdminState.t +c7ddb9d66536afad6c919c980827f078::scripts/test/Selenium/Agent/Admin/AdminSignature.t +b1b3615af4f7e8381c946ee2339a936e::scripts/test/Selenium/Agent/Admin/AdminSLA.t +dc1def43c8b90f08cf9a978a9f43e135::scripts/test/Selenium/Agent/Admin/AdminSMIME.t +18b6df33344203bcd722c2a42d6dafc8::scripts/test/Selenium/Agent/Admin/AdminState.t e01804de19a8b37aad98555dacc55af2::scripts/test/Selenium/Agent/Admin/AdminSupportDataCollector.t -a99c8ffa7121ee21b1a39a24c8d478d7::scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t -7e7a3b5aa951b09d102145448f266d1f::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t -2428ac7cf162f92aa1465423d84a9e3a::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t -1d83c63b3d51d984239901c01d11a16d::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t -40860af85539f9c1eb7a4fd9c9744693::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t +caadbe99543de2144c5785cb42151817::scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t +5571fd9769b1f2ce9a899823294f3433::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t +60ffd8c668dae4153c48ba464fb09ec8::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t +7cb2e64f0a0910df3cb2b99e9331de96::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t +cc4347572bdd33dbcd42fbcb261b06c3::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t 02bd4b28a22c5fad7bd2c5e3e761699a::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationImportExport.t 04a52190e46d048b19e1ab58d7aab68e::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationOverridden.t -b8c31edbb82ae90649d00a23cdc2f45a::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t +8aa3964c74bd9beac17a68e5c9423fce::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t 603a6e66c5a5c2c30c41f800416f937c::scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationSearch.t -5cfe96a2dea0e5f08b261ed6395006fa::scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t -a27260af538adf66bc4314680ebc93ea::scripts/test/Selenium/Agent/Admin/AdminTemplate.t -7a8760562797a189b54c800df9017f0e::scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t -4fcd5ea085159b6af1249faa3fc14152::scripts/test/Selenium/Agent/Admin/AdminType.t -e63c3ac46770d4e4b88eece2cdcf9816::scripts/test/Selenium/Agent/Admin/AdminUser.t -bbf14bd7dce556df1559a69308c08b80::scripts/test/Selenium/Agent/Admin/AdminUserGroup.t -86cee21dbc37d9af9251fc3443f6e369::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t -921fb02b2f5c814380f153d2b1616096::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t -0914abee968ab4b43b9d5d0e89f02c34::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t -dd0c357c3ec871b737b6163261d1e738::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t -fb4c7345ea756d495b6354a7dcf400a5::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t -5324c9dcd225af13225b972bb18de568::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t -58b8efae5f75708a21139c23faa8421c::scripts/test/Selenium/Agent/Admin/Installer.t -b0d3b3f2c525c51525350389a07ca9a6::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t -a1740bfb3c03cc65f058a8d4358f52b4::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t -d82d0327b6a94e96a55c2a2e72194ac0::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t +b0f077a1941339c283042900092082c6::scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t +9943943f8e95b6be3a60fbd5e0ad5066::scripts/test/Selenium/Agent/Admin/AdminTemplate.t +7d27b3c38296dbef737f7f4465714c84::scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t +f8eb984d2292d63da89dcb8ec72eef3e::scripts/test/Selenium/Agent/Admin/AdminType.t +6403a69068891f1f13a2ad065451bcd4::scripts/test/Selenium/Agent/Admin/AdminUser.t +b8f4630488d638652aed0cbb7f95a3c3::scripts/test/Selenium/Agent/Admin/AdminUserGroup.t +bd06a1258f2207cb5810cbc40b41b29d::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t +1fa51ea2b7c228b041592b0947b2aeae::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t +928ef0ed97f6de51bc6a9be100d4a66e::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t +f7ab4e5eedb0ab0d1acf866fa10179f8::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t +f56833ece001e8e64d700be6073cba30::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t +f17a90048f3c31ab3912b83587ea4566::scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t +fc4a4d4ded4d258d8da14c0edd5ee760::scripts/test/Selenium/Agent/Admin/Installer.t +f1819195ee8abb872e121faf6fb80395::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t +b2f9356e78e80685e5f18367435a0c9b::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t +a14e6e43d5a3b2c9f4ac9344d681b08b::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t d3f159d0e50f4b8ca9cd7962fc32d713::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementTransition.t 8e2b15883c06dcc39d86461bf13bab9f::scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementTransitionAction.t -63a08cdd3233947ebe73684b92a5e463::scripts/test/Selenium/Agent/Admin/TicketAppointments.t -33b617b43dead8010b192657c0696e29::scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t +131895855a60d7ac7de8972cd683799f::scripts/test/Selenium/Agent/Admin/TicketAppointments.t +d8c2203e0f4160581aa3da2c6f7b3b11::scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t f871a91c5bedb7b6d8757265ac61fc6c::scripts/test/Selenium/Agent/AgentAppointmentCalendarOverview.t -cfd4f55f2a6d35f745fe117e221b3321::scripts/test/Selenium/Agent/AgentAppointmentCreate.t +84160ffce7fa2c6f33af1be5aaf47aa4::scripts/test/Selenium/Agent/AgentAppointmentCreate.t f91b609a243cff6028b99c744f72f7cb::scripts/test/Selenium/Agent/AgentAppointmentDashboardWidget.t fae52833376fb05cbdcd8b9f9d0cd12c::scripts/test/Selenium/Agent/AgentAppointmentLinks.t -436e97845e0d6dc5c872b0142e138457::scripts/test/Selenium/Agent/AgentAppointmentNotification.t -51f7544f00bc7fc047c33231c0ee4810::scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t +59d19687e6fbf4f154560f5d884ccd12::scripts/test/Selenium/Agent/AgentAppointmentNotification.t +c33dc2b7d4662a9e69ff301d75f4908f::scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t c24191c05946547b65cffbe89032cc6c::scripts/test/Selenium/Agent/AgentCustomerHistory.t f322011ceabdc68fb3c661a172717894::scripts/test/Selenium/Agent/AgentCustomerHistoryHideShow.t -1e79452795b79dca9e080ee05b2a153d::scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t +c7455ca30f3ddb931116ee5060772388::scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t 9c6aed08a3d9fcf645493c6ea3ed86f3::scripts/test/Selenium/Agent/AgentCustomerInformationCenterSearch.t -441acc64c9d459251d46622339c16bb0::scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t +fc5ababf51602f2bbcc40ea74beeb263::scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t 2592817ec9fc8f4a273d1b42f3921e55::scripts/test/Selenium/Agent/AgentCustomerUserInformationCenter.t cf5eeaa3de02114fdcaecacafcde4c73::scripts/test/Selenium/Agent/AgentCustomerUserInformationCenterSearch.t 69d13c676399c23183bb34f23d229053::scripts/test/Selenium/Agent/AgentDashboardCommon.t -761cd42b36f51d78499ee0578ac2e683::scripts/test/Selenium/Agent/AgentLinkObject.t +f7de3fa93069284b2f6fa474a02bff42::scripts/test/Selenium/Agent/AgentLinkObject.t 143b862df2980c6ea95c84208b3bbfe4::scripts/test/Selenium/Agent/AgentNavigationBar.t -5a7d66e8b8e7652976e3abd220184db9::scripts/test/Selenium/Agent/AgentPasswordRecovery.t +6eefbaebed2a5049995521ce46cade51::scripts/test/Selenium/Agent/AgentPasswordRecovery.t 8ad038f1cda77f720085d8732fc5d2e0::scripts/test/Selenium/Agent/AgentPreferences.t -105971e6d802bdf12fbbd2fd9b49ac39::scripts/test/Selenium/Agent/AgentStatistics/Add.t -21b4092a7aa673a75fdb34e4b0840572::scripts/test/Selenium/Agent/AgentStatistics/Import.t +34b228a7638ebdd347710f6a12562606::scripts/test/Selenium/Agent/AgentStatistics/Add.t +72e8fdff3527d4d54f8e32672c679512::scripts/test/Selenium/Agent/AgentStatistics/Import.t 989fd3a05ac5f58dc18b87c8790a85fc::scripts/test/Selenium/Agent/AgentStatistics/Overview.t -c665c9d93fa336d8bcd7ca782437b841::scripts/test/Selenium/Agent/AgentStatistics/Run.t -76087276f76d79772660e8121507df80::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t -50411ab3cda6fa7155e5e511e04339eb::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t -3246abff6e5759db524e7988685af296::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t -bab7bd467ee73b46d41249c2a6c65ff8::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t -85745557aca9ef71249e09c1ea0eb24a::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t -1e6e08f5419e937b61441f87dce92f16::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t -56024196ed23f2307a9bc83c32dd61a5::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t -5c79716a1665e1c796c46c1c13f1a2a9::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t -c5ee324c259e8f3524eecf5fc964eb47::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t -12b7a4f428c41b4552422f5b6897190f::scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t +a029a747c8cb6d3a29c2a286f0b2d4d2::scripts/test/Selenium/Agent/AgentStatistics/Run.t +31f9446e2219a8efccdab607810205d1::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t +245a7cb7f0fa7df54cbd464fab6bfe06::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t +779d8a1d73dc64ae27ffad1bc743b2cf::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t +fcae40cacf4950c15df0363c9a3f69a0::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t +307bbe2bca98c5be960f323a88004758::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t +ea270af21d5b7378b3581ecd54f0e35a::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t +6ec1a9fb79626835d390cc7f8a6c0705::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t +b098dc8bc699ce5c92c8e2f55d596cf3::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t +a64e501f469be7f9695b1ebc665b00cd::scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t +2e0f5d39f6adf1e6b0a99c93f1d036f6::scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t e589e4b54f176b14b6f06494869ed7d7::scripts/test/Selenium/Agent/AgentTicketAttachment.t -53547a2ad6d8f9ac36bdc4a034ab865f::scripts/test/Selenium/Agent/AgentTicketBounce.t -b2089a2b012aea86980f9da6009bf09e::scripts/test/Selenium/Agent/AgentTicketBulk.t -278c9a5f8edb5ddcb2b8ddff8ab3f9e5::scripts/test/Selenium/Agent/AgentTicketCompose.t +a4c5f6ae54b17f0fc3a8a3236f11016c::scripts/test/Selenium/Agent/AgentTicketBounce.t +6e7aff731af8bd0282ec5583d2a1dbb3::scripts/test/Selenium/Agent/AgentTicketBulk.t +42db34e8a68101bcc7a1825d0ead1c44::scripts/test/Selenium/Agent/AgentTicketCompose.t e96dc6f16aa1121c0368568ee7239930::scripts/test/Selenium/Agent/AgentTicketCustomer.t -24a336bbaef9476e74b3f0ec21226d3d::scripts/test/Selenium/Agent/AgentTicketEmail.t +5fd558cc12d885ec89858ae9f0376526::scripts/test/Selenium/Agent/AgentTicketEmail.t b630aded64b85078b9de3a008ecf4266::scripts/test/Selenium/Agent/AgentTicketEmailOutbound.t -e06b3ab5c46900171fbfb61642b57ef3::scripts/test/Selenium/Agent/AgentTicketEmailResend.t +64dc8264cbbb998efb8f39b8d571d336::scripts/test/Selenium/Agent/AgentTicketEmailResend.t e4161433685bbd7c3b53d059053e005c::scripts/test/Selenium/Agent/AgentTicketEscalationView.t b09853d82c3cc6e9b0c47b1a3600f3df::scripts/test/Selenium/Agent/AgentTicketEventLockAfterCreate.t -2f236eb548372698a4e90ae01fe660a3::scripts/test/Selenium/Agent/AgentTicketForward.t -ac9091701d6ffcf6e38f8c661f6ffe1c::scripts/test/Selenium/Agent/AgentTicketHistory.t -5aca1f99fdd54fc838c4b6528e03ebb9::scripts/test/Selenium/Agent/AgentTicketLock.t +99352bc7a0294cdd2372e8c0041a4376::scripts/test/Selenium/Agent/AgentTicketForward.t +79b4d52f090e0856c6536d6b7960bb29::scripts/test/Selenium/Agent/AgentTicketHistory.t +85347f9817ca7cdcc2ec7c03c3efac32::scripts/test/Selenium/Agent/AgentTicketLock.t eb0b7755efddbf5cb3c490c2e8c4b9b5::scripts/test/Selenium/Agent/AgentTicketMerge.t -190d0e3614742a337fa3eb08954e6c8f::scripts/test/Selenium/Agent/AgentTicketMove.t +91aa9992a027459932c2ca2332a56507::scripts/test/Selenium/Agent/AgentTicketMove.t 44ba9673adf0e669025c423e03cbe4d9::scripts/test/Selenium/Agent/AgentTicketPhone/CustomerAutoCompletion.t 245b93e65613716028e153a0bff49463::scripts/test/Selenium/Agent/AgentTicketPhone/ServiceDropdown.t b5369d9a702be34a97006742929e1526::scripts/test/Selenium/Agent/AgentTicketPhone/UserDefaultQueue.t -f1ee1894311667befcf4d27250db1b73::scripts/test/Selenium/Agent/AgentTicketPhone.t +feace55c34a35007a55db834e66a29f3::scripts/test/Selenium/Agent/AgentTicketPhone.t b46a7c63c62649dbad997d36f2e3bdc6::scripts/test/Selenium/Agent/AgentTicketPhoneCommon.t -bc849bb960d35eab4c0b76d7154a1952::scripts/test/Selenium/Agent/AgentTicketPlain.t -77ce0b24eb4d2604419b0aef2961c099::scripts/test/Selenium/Agent/AgentTicketProcess.t -ef0b205630bd4af0d3169a3b11021048::scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t +db65272a7d51c2bb6b5e159d09aefcee::scripts/test/Selenium/Agent/AgentTicketPlain.t +c29be9c9a719546c43e264a5270fb7ee::scripts/test/Selenium/Agent/AgentTicketProcess.t +3c57eaf33b83fb686033cfb6d35f3d18::scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t 0e4d5d7e857e2265617730402358d8f4::scripts/test/Selenium/Agent/AgentTicketQueue.t 4164fb11ef514a969117dcc5f9409784::scripts/test/Selenium/Agent/AgentTicketResponsibleView.t 071288c3014391960712c34accd8aa77::scripts/test/Selenium/Agent/AgentTicketSearch.t ddcf3cde94cebc8eab0f19055381fedb::scripts/test/Selenium/Agent/AgentTicketService.t 1493f7ef00245d8161dbab81e7b04b05::scripts/test/Selenium/Agent/AgentTicketSplit.t -e29d8ea582fe0b0629d7c051c58985f8::scripts/test/Selenium/Agent/AgentTicketStatusView.t +661bceb3f4a62ee35ba6c21a8e265bfb::scripts/test/Selenium/Agent/AgentTicketStatusView.t fef1e6ba219ef105839de91a7b90ad39::scripts/test/Selenium/Agent/AgentTicketWatchView.t 573ca88f4c4fa2f96b7170f3ff688ce5::scripts/test/Selenium/Agent/AgentTicketZoom.t 2727f99640fcbf2f8385d8746d883855::scripts/test/Selenium/Agent/AgentTicketZoomActiveArticle.t @@ -2960,42 +2965,42 @@ 5f7ddec3d497aa97f1f97887fe01430c::scripts/test/Selenium/Agent/CKEditor.t 9c82e8bda817fe5bcef9d0a2bcba8964::scripts/test/Selenium/Agent/DynamicFieldShowLink.t c323305dbec9ef97934614f10f2910db::scripts/test/Selenium/Agent/Floater.t -015b148c860a367fa2d3f2cfd14c4c2d::scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t -4be9f99b4f9758f7a95d3b9eb432f43a::scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t -9723343015b4dbf10778c3b48ccc7841::scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t +ffdb5ccd348044cc26cea67999abcd75::scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t +19a19a4c77b44c2b658d722d5ffec7a3::scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t +d83c331706fce7a7c20b91c05a1f1aff::scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t 448c130cf6897a20855bde8d4be7ae3f::scripts/test/Selenium/Agent/FormDraft/AgentTicketForwardDraft.t 298a95972b10d34a13015163521ae289::scripts/test/Selenium/Agent/FormDraft/AgentTicketMoveDraft.t -c371a4ae303bf444df652bdf32c95d9a::scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t +800bb7b4867aba22e52efbd0ba22b01f::scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t af6efc0d6185b0b2a6b8e36c4714143a::scripts/test/Selenium/Agent/FormDraft/AgentTicketZoomDraft.t ad17a4f65f5e53a3842548835d1e3ef1::scripts/test/Selenium/Agent/InlineTicketImages.t -e6e74ef8e45fbe637bff19c61d80a6e5::scripts/test/Selenium/Agent/Login.t -7bfde9f3bbce6f70fe8960f61bc21ebd::scripts/test/Selenium/Agent/MultiAttachmentUpload.t -9c64dd6f1e458f553b7bd11689eba725::scripts/test/Selenium/Agent/Responsive/Basic.t -ae7b9a067568d4a78a5846b10a98911f::scripts/test/Selenium/Agent/Responsive/Popups.t +362e7c396d1afff1dfa5d28d8ffaf008::scripts/test/Selenium/Agent/Login.t +9b1a3e15d5ec46157d7216ef7875c28f::scripts/test/Selenium/Agent/MultiAttachmentUpload.t +164b9b2717bf5271200b3f1db30b936f::scripts/test/Selenium/Agent/Responsive/Basic.t +03a5d002984d89ea258149798fe6cbb4::scripts/test/Selenium/Agent/Responsive/Popups.t 5492b461ffa4aff4da8b354fff613fc1::scripts/test/Selenium/Customer/CustomerGroupCheck.t d3203f358b9b705568eca7bc59d13dd9::scripts/test/Selenium/Customer/CustomerGroupPermission.t -6f1d644c7eb511133e5f1e40b1d01185::scripts/test/Selenium/Customer/CustomerPasswordRecovery.t +56a53376ba205706b462983144686a38::scripts/test/Selenium/Customer/CustomerPasswordRecovery.t 3a6219f527b3a0ce2a4b48c3fad928d6::scripts/test/Selenium/Customer/CustomerPreferences.t -a10a0de77cf506242aea0484d047360e::scripts/test/Selenium/Customer/CustomerTicketAttachment.t +5a38c3c211fdb651f6c393633f5bd4ba::scripts/test/Selenium/Customer/CustomerTicketAttachment.t 5e31a94500e47244436bfe179efcbfbd::scripts/test/Selenium/Customer/CustomerTicketCompanyTickets.t -00c46928d4e56069a6a6d0f6458baf0a::scripts/test/Selenium/Customer/CustomerTicketMessage.t +b8b530a57fdd7a46236bba4d3c314238::scripts/test/Selenium/Customer/CustomerTicketMessage.t a1d237478848e3574d6c39e9bfa054f5::scripts/test/Selenium/Customer/CustomerTicketOverview.t -456d60f8d66a6ac50f66d1502241768a::scripts/test/Selenium/Customer/CustomerTicketProcess.t +d82950f3aaa25e32bef734b3fc307667::scripts/test/Selenium/Customer/CustomerTicketProcess.t 4764bd7444036e22c5e91a1dd61a0e44::scripts/test/Selenium/Customer/CustomerTicketSearch.t -f5ffcd4a353f5f290cc832c454abb074::scripts/test/Selenium/Customer/CustomerTicketZoom.t +395ee98f6b15e79e0c396a25dee21998::scripts/test/Selenium/Customer/CustomerTicketZoom.t d5b09fa788b28b4851353536820de3e6::scripts/test/Selenium/Customer/DynamicFieldShowLink.t b787c513ebc89ee4654bc999860a4e44::scripts/test/Selenium/Customer/Login.t -3df1b0706bf71349cfa7b9d053e3b087::scripts/test/Selenium/Customer/MultiAttachmentUpload.t +d9242e7a03548d220b5e1529d44ea1ad::scripts/test/Selenium/Customer/MultiAttachmentUpload.t 3cf88699c00bfdc93bc3a39d0f1ccd60::scripts/test/Selenium/Customer/UpdateQueueGroup.t -46d8aab080d2362055c9715e8443ad82::scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t +8a80a23ee694dc8940dc64b6e2f6e925::scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t 00db7815940f683a310cb8319f2f6388::scripts/test/Selenium/JavaScript/JSDataAgent.t 354725720e758611ffd8aaba9c9f2020::scripts/test/Selenium/JavaScript/JSDataCustomer.t 29668768385a7f2852fb3b8a243faebc::scripts/test/Selenium/JavaScript/JSUnitTest.t -f755d12db28e63666b8881d5aa340eb6::scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t +cfc96c1589c10a00a427581b8a6e1087::scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t 27aa31d9a32ba98df63b67ad5664ca6a::scripts/test/Selenium/Output/ArticleAttachmentInline.t b8c07169d75c48bbeeea892aa33174d0::scripts/test/Selenium/Output/CustomerNewTicket/QueueSelectionGeneric.t 96d05296a559812b0f7e3ba8c0f8c9ac::scripts/test/Selenium/Output/CustomerUser/Generic.t -254fd3cb8a9bda52a3d877578d2d4c4d::scripts/test/Selenium/Output/CustomerUser/GenericTicket.t +13dfea30d965efea7917c3d5dba5fd60::scripts/test/Selenium/Output/CustomerUser/GenericTicket.t 35dd351187f0cb7dcde9342f90fac0e0::scripts/test/Selenium/Output/Dashboard/Calendar.t 6b2becde22e27807d4f75e014a13f408::scripts/test/Selenium/Output/Dashboard/CmdOutput.t f981fc95b0eb68733d58772b1aaacaf5::scripts/test/Selenium/Output/Dashboard/CustomerCompanyInformation.t @@ -3007,26 +3012,26 @@ 4da536d2ed838ba93050b785743a14bf::scripts/test/Selenium/Output/Dashboard/MOTD.t f0bbdc7fcb0bb628d84cd09e2718ace6::scripts/test/Selenium/Output/Dashboard/News.t 48f0d144c98eed5a2862a41419ed31e3::scripts/test/Selenium/Output/Dashboard/ProductNotify.t -0220101d8058b290d553f00bc8fcd4ae::scripts/test/Selenium/Output/Dashboard/RSS.t -02387556615874bf71541d712989d975::scripts/test/Selenium/Output/Dashboard/Stats.t +22d6b0c7c7eb184d10d57908aa201298::scripts/test/Selenium/Output/Dashboard/RSS.t +9d137107a2853fb3f5f719587028dbf0::scripts/test/Selenium/Output/Dashboard/Stats.t 47f5efad03697a04f405fe366c5cb6ef::scripts/test/Selenium/Output/Dashboard/Stats.xml -a2f6a58babeca7da8f905558ad6efd0d::scripts/test/Selenium/Output/Dashboard/TicketGeneric.t -b17d6b014ad1077f1f09edbb3f9a4186::scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t +cd41a0a4b4f6635b8cc90ff0758df097::scripts/test/Selenium/Output/Dashboard/TicketGeneric.t +15d8d70667b5961e5121b62ad3091832::scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t 53349c059a6ae05479e6631807d9b321::scripts/test/Selenium/Output/Dashboard/TicketGenericSortOrder.t 981477d054c99fe76422ee6a34f797ea::scripts/test/Selenium/Output/Dashboard/TicketQueueOverview.t -48abb4c535a6c209f306f4567e811b0f::scripts/test/Selenium/Output/Dashboard/UserOnline.t +792dd9ac681b33ff625a4c7c5e88c3bb::scripts/test/Selenium/Output/Dashboard/UserOnline.t 4ac63f397f0450f429a301bb20051f0a::scripts/test/Selenium/Output/Dashboard/UserOutOfOffice.t 3fd7d14ef95b65f9ffab340cfa64775d::scripts/test/Selenium/Output/FilterText/URL.t -92f9c0fee32b9f7c3b07e6ee58ce829d::scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t +0dacb69a5cbc81e00098b9ec0feb9a84::scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t fcbfafb8e4367ec8eb919b65bcc8d1fd::scripts/test/Selenium/Output/NavBar/AgentTicketService.t 7856bbbdb1a597460985ca28bb11f70c::scripts/test/Selenium/Output/NavBar/CustomerCompany.t -e560e74173f140363bd6756a71e2d0e6::scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t +9298c0e3005164a24f6da7d5251f4886::scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t 35d361bb9f49d70c5d6abdf1053a9269::scripts/test/Selenium/Output/PDFTicket.t 9c695bf5c75a0c77c91770aad745150f::scripts/test/Selenium/Output/Preferences/Agent/CustomQueue.t 685359052a4962b1fea9c4a4457b372a::scripts/test/Selenium/Output/Preferences/Agent/CustomService.t 1295b31c6c9771d4933d58524efb34cc::scripts/test/Selenium/Output/Preferences/Agent/Generic.t 36b08e8b2f4d46f380b3cedd15ee8633::scripts/test/Selenium/Output/Preferences/Agent/Language.t -ba4e73a4ab1c170191a99830d74b836a::scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t +151de50ff5b2c337dcaa6d17c2e9dbc0::scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t 77646c02bf08b4b652dcbb28a61fd917::scripts/test/Selenium/Output/Preferences/Agent/Password.t 60dbe7016864c30b5ece7c9321bb407c::scripts/test/Selenium/Output/Preferences/Agent/Skin.t d5ebf5bdc6f5a0769e2e5dd037f52123::scripts/test/Selenium/Output/Preferences/Agent/TimeZone.t @@ -3041,15 +3046,15 @@ 73a9b1ad2425c928e83a455d1af879e6::scripts/test/Selenium/Output/SLAPreferencesGeneric.t 9b8b54cecaf3761b2ff258c0ef274b6c::scripts/test/Selenium/Output/Ticket/Menu.t 9569aca82a1c7b9cd069881a6512227e::scripts/test/Selenium/Output/Ticket/MenuPermission.t -0d69298046665427088334f686e14c8a::scripts/test/Selenium/Output/Ticket/MenuProcess.t -050de67f23612791fca3458decd8fd26::scripts/test/Selenium/Output/Ticket/OverviewMedium.t -4f4c5daf76981f429d2b83d2c84d3c06::scripts/test/Selenium/Output/Ticket/OverviewPreview.t -e00ee8279cd41fc6221d0d3dfb54b95c::scripts/test/Selenium/Output/Ticket/OverviewSmall.t +35ef6ff174a417f98a868030b112daa0::scripts/test/Selenium/Output/Ticket/MenuProcess.t +feb48cd3cf1f0d2859655f7aa0779e14::scripts/test/Selenium/Output/Ticket/OverviewMedium.t +c05f30240b4bf5a34d7fe1f7b5452d07::scripts/test/Selenium/Output/Ticket/OverviewPreview.t +38c1e7157837bbf6b76324454b9e0425::scripts/test/Selenium/Output/Ticket/OverviewSmall.t 8b2fe21482cf24dcbfbeb327332d81a6::scripts/test/Selenium/Output/Ticket/OverviewSort.t -6b678e396028eac2cfe6c8efa74fb540::scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t -1411821cbd04f9bf9e8cd6e5c5750d39::scripts/test/Selenium/Output/TicketZoom/LinkTable.t +db6fa04cc42e0acf9c4470c97d358e03::scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t +5d81da76f4dfbacf1b524f6b2da9c94a::scripts/test/Selenium/Output/TicketZoom/LinkTable.t d98a0873d773a6f21406b1d5f73db477::scripts/test/Selenium/Output/TicketZoom/ProcessInformation.t -1fe1e9c57a78a137d4361ae2b1be3944::scripts/test/Selenium/Output/TicketZoom/TicketInformation.t +d116fb3fe744dce2a16821bf8f9ff2c3::scripts/test/Selenium/Output/TicketZoom/TicketInformation.t db8849b4ed9ad58d68c0b1e6496334e9::scripts/test/Selenium/Output/ToolBar/CICSearchCustomerID.t 43ba782265bc568313d10e79761227a0::scripts/test/Selenium/Output/ToolBar/CICSearchCustomerUser.t 85304b48b6a9954283ed49bd53a3b7eb::scripts/test/Selenium/Output/ToolBar/GroupRestriction.t @@ -3065,13 +3070,13 @@ 1caebf161ab9d1d35f47e95c7b83fc1f::scripts/test/Selenium/Output/ToolBar/TicketService.t def69753bc777de2087a4ca30b1fc99f::scripts/test/Selenium/Output/ToolBar/TicketStatus.t 90ab4b9af777fddd2b7673e6cbf9bf54::scripts/test/Selenium/Output/ToolBar/TicketWatcher.t -6775e51bb013357e56a6ea4eb9cb6984::scripts/test/Selenium/SysConfig/AgentSetting.t +d59ac65e48b4a5b361e1dbc4adf09ae1::scripts/test/Selenium/SysConfig/AgentSetting.t 4b914ba618adc63f3d12d025ae8dc8b7::scripts/test/Service.t b63a9db11ca6465e26b68d11f90b86b2::scripts/test/Signature.t 664fc1f1a27f27d40f65f69852a72e5c::scripts/test/SLA.t faaa059d513245a712607d7d31e5518c::scripts/test/SMIME/ConvertCertFormat.t 12b642c44c169232876168bfb9e3ba6d::scripts/test/SMIME/EmailHandling.t -e3852d22c8957c8f8e01b472636a411c::scripts/test/SMIME/FetchFromCustomer.t +f0d9b1b49ebabedc71f00295c8cfb0cc::scripts/test/SMIME/FetchFromCustomer.t d158b17711bf348012d7017bd43830f0::scripts/test/SMIME.t 3d8009a0b1cffe3de3d9750925f15a2b::scripts/test/StandardTemplate.t 9e4d0cc7d5753ba9dd2023630b9a0703::scripts/test/State.t @@ -3087,8 +3092,8 @@ 00e3d6b15505c6c812cdf1146cc8f8e9::scripts/test/SupportBundleGenerator.t bdac148047ac99facce02c71d698ae07::scripts/test/SupportDataCollector.t a637e65a9517085cd7800f75756b8cf2::scripts/test/SysConfig/ConfigurationCategoriesGet.t -816986e6277602606cbd835c93c2cbb3::scripts/test/SysConfig/ConfigurationDeploy.t -1e91bad6784add86a75450a5b980e2ae::scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t +3aafd3fe92a64ac7098f3028ee1347f5::scripts/test/SysConfig/ConfigurationDeploy.t +463e1828f21e535e8cfd12d24f847f7e::scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t 277f0b89770c9f6eee635adfacdf8481::scripts/test/SysConfig/ConfigurationDeploymentSync.t 3b0209ab7016e4cbbc341945bbcda372::scripts/test/SysConfig/ConfigurationDirtySettingsList.t 8d1d5531465c3e1095099f37b02fc127::scripts/test/SysConfig/ConfigurationDump.t @@ -3112,7 +3117,7 @@ 45cdb639b44f3fbb28f98eb6d78b7fd1::scripts/test/SysConfig/DB/DefaultSettingListGetCategory.t 0f119f1d7c04162fadd28aeb6cfbd0dd::scripts/test/SysConfig/DB/DefaultSettingSearch.t eb5c6a37215168b9c260182568829d25::scripts/test/SysConfig/DB/Deployment.t -864b3502dea2ed60a27c1b055598b045::scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t +22090b5a47e51358ae7ca480ef29bddd::scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t 6eca4c25927d4050517c5448d43b7d47::scripts/test/SysConfig/DB/ModifiedSetting.t 3b8dc1a4c0a280edcbba6db1ce9bbf9f::scripts/test/SysConfig/DB/SettingCleanup.t 2c4f8d30d88fb7f404bd2dc821eb002f::scripts/test/SysConfig/DB/SettingLock.t @@ -3137,16 +3142,16 @@ ad1f39c2dc1b36098b6a4e867a08cb25::scripts/test/SysConfig/ValueAttributeList.t 1686cc08a43d4504062da1e67f55fc73::scripts/test/SysConfig/ValueType/EffectiveValueGet.t 4f9020c22b9f427002685b3bc59fe0a8::scripts/test/SysConfig/ValueType/Entity/EntityLookupFromWebRequest.t -ae7db443118ebaee6d032e402908ff4a::scripts/test/SysConfig/XML.t +a9ef7ed57b54736f74f6cd6db3e376b3::scripts/test/SysConfig/XML.t 65bfc16e354a40ac7c6860d34b51be23::scripts/test/SysConfig/XMLToDBChangeStructure.t e7093e2816236b598494943b9cf6d8fc::scripts/test/SystemAddress.t bd885b2ebc84dd943c9c6cc84baa22f2::scripts/test/SystemData.t -bdeac964b1fd16fe9d431ddfeb1283b0::scripts/test/SystemMaintenance.t +1f83624d4fbd4fddb2fad2624dd491d1::scripts/test/SystemMaintenance.t 2f2e86027821e09ea78f090d9fd5a051::scripts/test/TemplateGenerator/AutoResponse.t 8582cc77063459dd16001e12c182f08a::scripts/test/TemplateGenerator/CustomerBody.t e6fa227a171ee5fbe81492931924e749::scripts/test/TemplateGenerator/CustomerRealName.t be5d1218e20ee93d335938e3aa97ea6b::scripts/test/TemplateGenerator/GenericAgentArticle.t -e4f104d558e4644e9481dadcbfb31491::scripts/test/TemplateGenerator/Replace.t +949305d124f8b1d3f102952f3fb55c6c::scripts/test/TemplateGenerator/Replace.t 104b2700cc4c833b850195c3288abca4::scripts/test/TemplateGenerator/Salutation.t 6977bae910fda8a50bf06e4643e6ac8e::scripts/test/TemplateGenerator/Sender.t a694f31a92e71308cc0581f1aca0e075::scripts/test/TemplateGenerator/Signature.t @@ -3212,7 +3217,7 @@ e79de0b57a1bb81d52c18641aa3996b3::scripts/test/Ticket/TicketSubject.t c34c64c5434806a29f69cc07d8ad58d6::scripts/test/Ticket/TicketWatcher.t 4ba195fecd507ef8efa346933e26a75b::scripts/test/Ticket/UnlockOnAway.t -f17a88c93516e7bedc4995261ddcb96a::scripts/test/Ticket.t +c84d672bf7229f65d94ee8e0f631e452::scripts/test/Ticket.t 471e63caa64f53daaf0e2e1aea85dc58::scripts/test/Time/DestinationTime.t ab74c244d1b377e95ed9e1a9bd670bfd::scripts/test/Time/FixedTimeHelper.t 3ab177313154d8b547f34572ad7125f1::scripts/test/Time/MailTimeStamp.t @@ -3316,7 +3321,7 @@ fcd932daf1d54fc838a352a70331838c::var/httpd/htdocs/js/Core.Agent.Admin.SupportDataCollector.js 986dd21175cae0ed1ab47f7601e4f45f::var/httpd/htdocs/js/Core.Agent.Admin.SysConfig.Entity.js 5c99cfd31bdb088dc8197484f4c0f72c::var/httpd/htdocs/js/Core.Agent.Admin.SystemAddress.js -d8696cb2b322d46b870b9383e5db7dba::var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js +2c9cf3d30a79ea8bbb8bc4b5fecfbf60::var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js e0cf00dff9efce44fb5316d6d9360846::var/httpd/htdocs/js/Core.Agent.Admin.SystemMaintenance.js a7c0b0255ceb468a2762c94f364f49df::var/httpd/htdocs/js/Core.Agent.Admin.Template.js 22a9ea0ea3880fcd5a4a37c4e34c2e3e::var/httpd/htdocs/js/Core.Agent.Admin.TemplateAttachment.js @@ -3333,7 +3338,7 @@ 4ad8c897c63358283d52aa5ab2b17e91::var/httpd/htdocs/js/Core.Agent.Daemon.js 26a46123b0fc4689461a7157a8da6c15::var/httpd/htdocs/js/Core.Agent.Dashboard.js 19e450eb9c7021d33f8fc96c6f51ec75::var/httpd/htdocs/js/Core.Agent.Header.js -ec087af667fe83a89cf39bb9205f5242::var/httpd/htdocs/js/Core.Agent.js +d3f729d80e41b0d25a8439478c0871e6::var/httpd/htdocs/js/Core.Agent.js 032e0ef0c1e91d71ba866a9011df41bb::var/httpd/htdocs/js/Core.Agent.LinkObject.js b9fe2366ccb6c8d4c543dd99b082ae67::var/httpd/htdocs/js/Core.Agent.LinkObject.SearchForm.js 1412f3f1596e4e4ef4bc9d8fd11fd5cd::var/httpd/htdocs/js/Core.Agent.Login.js @@ -3354,7 +3359,7 @@ 5aa07b851a3b950a0af00498882df2b9::var/httpd/htdocs/js/Core.Agent.TicketEmail.js e4f18a36f37dcdf81d9087f2f749449b::var/httpd/htdocs/js/Core.Agent.TicketEmailOutbound.js a9983c3e0102be1c536a87f5767191a7::var/httpd/htdocs/js/Core.Agent.TicketEmailResend.js -98fd92b942af6b54422d9fed2b2ef6b9::var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js +7bb7c5c781367c021dae4f51abe9df94::var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js 49243f81e301bb428ddff24e5b25f281::var/httpd/htdocs/js/Core.Agent.TicketForward.js 467aaaa53c5d79fcffec6f2aca8a7691::var/httpd/htdocs/js/Core.Agent.TicketHistory.js 3c518ddbb43c827514d1dfa791a5c250::var/httpd/htdocs/js/Core.Agent.TicketMerge.js @@ -3405,7 +3410,7 @@ bf1699d7c183dd9b27406f4faa57321e::var/httpd/htdocs/js/Core.UI.DnD.js 7cf7a55a1b2e0733a3d4e5100b661ac6::var/httpd/htdocs/js/Core.UI.Floater.js be05d8b425f50ecba03b8f25ad6d81da::var/httpd/htdocs/js/Core.UI.InputFields.js -10a508845d95bb5e207eba5354dfe6eb::var/httpd/htdocs/js/Core.UI.js +ab6e0400c8cb4b4308270a065551277f::var/httpd/htdocs/js/Core.UI.js a5baf14827ecc059c55de1f8596dbf75::var/httpd/htdocs/js/Core.UI.Notification.js 112f11795851e99fa537e03fd7b8117f::var/httpd/htdocs/js/Core.UI.Popup.js b631cec5bc79bc4e71bab45d8f8df6ac::var/httpd/htdocs/js/Core.UI.Resizable.js @@ -4780,13 +4785,13 @@ 13f0dca3f553360ee86a187f944b1d29::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.GenericInterface.css fdec38d07ebe69f1e49c3ecf87fb4c86::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.NotificationEvent.css b2878f4e44dcb72547b928eec4f54178::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.OTRSBusiness.css -554777d65cf6bd2616bd301a2e82f74a::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css +6ffd30c698d0ae90c1cc78aab2f50662::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css 7c0c3b55107dd63b683295fb7faae12a::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PerformanceLog.css a171bc32a3e01e9b1486ca2e998037e2::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PostMasterFilter.css d7fb40cfd82d5fdc7e775c0d440d0899::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.ProcessManagement.css 2e3ab71c906c47c5a58511261391b6d5::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.Registration.css dde91357ca17657bfcdafc0b7f67b479::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SupportDataCollector.css -aabacc57af1300ce6e3dcbfbd94283a3::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css +376b8f39523cd530d2f52b71535c7094::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css 1f8ee8d6b88257eb6c926695ec5757a4::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.CustomerUser.OpenTicket.css 359e6d84774d47e68396c1fa91da88d6::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.CustomerUserAddressBook.css 00eb5bdc9fba2651d052a8356a56e86f::var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Daemon.css @@ -4802,17 +4807,17 @@ e159811d7df1bedac47a220911d26e93::var/httpd/htdocs/skins/Agent/default/css/Core.AllocationList.css 8d6f2a0a55bfbdb1a506218321484ad9::var/httpd/htdocs/skins/Agent/default/css/Core.Animations.css 619dd4d2bfe098772c1bc9fa1f210ab6::var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.Agenda.css -86b788f8d6fc2c0ff7e14b7d78c7781c::var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css +1abdeb040e37b1aa0f56dd41adc670fe::var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css 27c766ba27c303c5fe369bea32a3092b::var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.Manage.css 80e17c3ec3e9a95780a989fee3c26d34::var/httpd/htdocs/skins/Agent/default/css/Core.Color.css -0306936fe194cc8c7c9647af79b8713b::var/httpd/htdocs/skins/Agent/default/css/Core.Default.css +e1a426ebeb87c5180a9be71c49bc016b::var/httpd/htdocs/skins/Agent/default/css/Core.Default.css 61ffacaea9ae3237a590239cb5d25239::var/httpd/htdocs/skins/Agent/default/css/Core.Dialog.css 1085c253d8c721a366b633d9528a637b::var/httpd/htdocs/skins/Agent/default/css/Core.Footer.css 0c826dae6d83e092a937157b1da9d212::var/httpd/htdocs/skins/Agent/default/css/Core.Form.css 46f3880e531bee9bc4cbc6e901e6371b::var/httpd/htdocs/skins/Agent/default/css/Core.Header.css 840da3e47dc594378db4f5e6b76de745::var/httpd/htdocs/skins/Agent/default/css/Core.InputFields.css 51b40076b5aeb3acf6ff85b938f1f0f5::var/httpd/htdocs/skins/Agent/default/css/Core.Installer.css -255441a213334ba43012a087884567de::var/httpd/htdocs/skins/Agent/default/css/Core.Login.css +fb6d72ee813ad1a1d8740390a67d785c::var/httpd/htdocs/skins/Agent/default/css/Core.Login.css 85df82d023405d90728be2ccaa217e19::var/httpd/htdocs/skins/Agent/default/css/Core.OverviewControl.css 7c623dc93bf41da377cdbe4913ad2b7b::var/httpd/htdocs/skins/Agent/default/css/Core.OverviewLarge.css f539a38cc201ac41a7515ef78b6719f3::var/httpd/htdocs/skins/Agent/default/css/Core.OverviewMedium.css @@ -4820,9 +4825,9 @@ e397289fd7d5f842c80ace9903c4c25b::var/httpd/htdocs/skins/Agent/default/css/Core.PageLayout.css beba80eb0b9f6330cf0f8271f2e82f3f::var/httpd/htdocs/skins/Agent/default/css/Core.Print.css 504c9ddb5c928152f184044f8ed0ddd1::var/httpd/htdocs/skins/Agent/default/css/Core.Reset.css -a898afa49f574e14d8c0eb5bdceb9b8b::var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css +42b3a0a3e7d7103ddf48ccd7fc2c4861::var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css 578f40c92b56c01d3b17d865b2b56363::var/httpd/htdocs/skins/Agent/default/css/Core.Table.css -fd6c6e53e8cf52979de42095c33735ea::var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css +ecdbcec7abcdd8cfedf148f4703327ec::var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css 75779ee06590ede20c4446803d206f4b::var/httpd/htdocs/skins/Agent/default/css/Core.Tooltip.css c59821b2b88fb5efe451c837473487cb::var/httpd/htdocs/skins/Agent/default/css/Core.Widget.css f53c3bcb30678d61d899947b8a6672d4::var/httpd/htdocs/skins/Agent/default/css/Core.WidgetMenu.css @@ -4992,7 +4997,7 @@ b3a0c51944970a289e78bd558f1d2f17::var/processes/examples/Application_for_leave.yml 45d8c9940f7f6cb4c443fc045a269051::var/processes/examples/Application_for_leave_post.pm 7337a8ff9e51906337250eff7ef1cdc8::var/processes/examples/Application_for_leave_pre.pm -67f1c953fbb3b0eac9b0927694db9ac6::var/processes/examples/Base.pm +6fc0213cd0f7cd4063cb49cf7cd6bea2::var/processes/examples/Base.pm e9833ee4b64aa8f1d9b4f7ae9959f85e::var/stats/ListOfOpenTicketsSortedByTimeLeftUntilEscalationDeadlineExpires.de.xml b5d0fd81daa8755615fe4319cbefabb6::var/stats/ListOfOpenTicketsSortedByTimeLeftUntilEscalationDeadlineExpires.en.xml b870b89aca5e7236d36cff51dfae61d7::var/stats/ListOfOpenTicketsSortedByTimeLeftUntilEscalationDeadlineExpires.hu.xml @@ -5026,4 +5031,4 @@ ac061499e76d7fffa3cad39eaaa20465::var/stats/Stats.TicketOverview.de.xml d7b6aa31ec19ceeaba6d971fc14bae64::var/stats/Stats.TicketOverview.en.xml ea6eee7f5bb90c7b994e80ab86c79a31::var/stats/Stats.TicketOverview.hu.xml -7372b8062927ed969b8580baa7a07eeb::var/webservices/examples/Base.pm +522f6469292e314b46e1a9941f078f6c::var/webservices/examples/Base.pm diff -Nru otrs2-6.0.4/CHANGES.md otrs2-6.0.5/CHANGES.md --- otrs2-6.0.4/CHANGES.md 2018-01-12 18:58:53.000000000 +0000 +++ otrs2-6.0.5/CHANGES.md 2018-02-05 23:46:53.000000000 +0000 @@ -1,4 +1,51 @@ -#6.0.5 2018-??-?? +#6.0.6 2018-??-?? + +#6.0.5 2018-02-13 + - 2018-02-05 Updated translations, thanks to all translators. + - 2018-02-05 Fixed bug#[13590](https://bugs.otrs.org/show_bug.cgi?id=13590) - Notification triggers not correct if a dynamic field with key value 0 is chosen in ticket selection and Additional recipient is set. + - 2018-02-05 Fixed bug#[13594](https://bugs.otrs.org/show_bug.cgi?id=13594) - Menu point of article setting window is hardly available on mobile view. + - 2018-02-03 Fixed bug#[13624](https://bugs.otrs.org/show_bug.cgi?id=13624) - Uninitialized value error in generic interface event handler. + - 2018-02-01 Implemented database integrity check and added automatic repair option for certain situations. + - 2018-01-31 Fixed bug#[13555](https://bugs.otrs.org/show_bug.cgi?id=13555) - Setting ZoomExpand in AgentTicketZoom also affects customer frontend. + - 2018-01-31 Fixed bug#[13452](https://bugs.otrs.org/show_bug.cgi?id=13452) - Security options does not preselect Signing, honoring Queue default signature. + - 2018-01-31 Fixed bug#[13595](https://bugs.otrs.org/show_bug.cgi?id=13595) - Setting of ticket number is old-style on the ticket overview screen. + - 2018-01-31 Fixed bug#[13596](https://bugs.otrs.org/show_bug.cgi?id=13596) - "S" view in mobile browser cannot be rolled horizontally. + - 2018-01-31 Fixed bug#[13557](https://bugs.otrs.org/show_bug.cgi?id=13557) - Incoming mails are not being processed. + - 2018-01-31 Fixed bug#[13561](https://bugs.otrs.org/show_bug.cgi?id=13561) - Empty strings not handled correctly in HTMLUtils::Safety(). Thanks to Paweł Bogusławski. + - 2018-01-31 Fixed bug#[13589](https://bugs.otrs.org/show_bug.cgi?id=13589) - Dynamic field choices missing for Customer User Information Center settings. + - 2018-01-31 Fixed bug#[13570](https://bugs.otrs.org/show_bug.cgi?id=13570) - Queue view display incorrect if you move a queue to be a sub-queue. + - 2018-01-31 Fixed bug#[13598](https://bugs.otrs.org/show_bug.cgi?id=13598) - Hiding AgentTicketMove menu with ACL makes draft function unusable. + - 2018-01-31 Fixed bug#[13562](https://bugs.otrs.org/show_bug.cgi?id=13562) - Drag and drop of a BMP image into the editor causes an error message. + - 2018-01-31 Fixed bug#[13284](https://bugs.otrs.org/show_bug.cgi?id=13284) - Ticket title is not included in fulltext search. + - 2018-01-31 Fixed bug#[13500](https://bugs.otrs.org/show_bug.cgi?id=13500) - Sticky footer overlaps with elements on the login screen. + - 2018-01-31 Fixed bug#[13399](https://bugs.otrs.org/show_bug.cgi?id=13399) - Agent preferences granular permission support not working correctly. + - 2018-01-31 Fixed bug#[13548](https://bugs.otrs.org/show_bug.cgi?id=13548) - Package::UpgradeAll does not warn about already updated but not correctly deployed packages. + - 2018-01-31 Fixed bug#[13604](https://bugs.otrs.org/show_bug.cgi?id=13604) - Dynamic Field Contact with Data is displayed doubled in AgentTicketZoom views. + - 2018-01-31 Fixed bug#[13519](https://bugs.otrs.org/show_bug.cgi?id=13519) - Multi file upload dialog not usable with keyboard navigation. + - 2018-01-30 Fixed bug#[13556](https://bugs.otrs.org/show_bug.cgi?id=13556) - Save draft without a title, opens window with JSON error on submit. + - 2018-01-30 Fixed bug#[13592](https://bugs.otrs.org/show_bug.cgi?id=13592) - ACL with invalid-temporarily status is not included in export file when exporting ACL. + - 2018-01-30 Fixed bug#[13468](https://bugs.otrs.org/show_bug.cgi?id=13468) - Generic interface works not with a interface which use the http status code '204'. + - 2018-01-29 Fixed bug#[13586](https://bugs.otrs.org/show_bug.cgi?id=13586) - Wrong tooltip text in customer interface (ID of the field instead of human readable text). + - 2018-01-25 Fixed bug#[13584](https://bugs.otrs.org/show_bug.cgi?id=13584)(PR#1894) - Emails sent via AgentTicketEmailOutbound are always visible for customer. Thanks to Robert Ullrich. + - 2018-01-25 Fixed bug#[13558](https://bugs.otrs.org/show_bug.cgi?id=13558) - ACL PossibleAdd ignores AgentTicketCompose and AgentTicketForward. + - 2018-01-24 Fixed bug#[13515](https://bugs.otrs.org/show_bug.cgi?id=13515) - On Login page it is impossible to insert a picture from a website (AgentLoginLogo). + - 2018-01-24 Fixed bug#[13567](https://bugs.otrs.org/show_bug.cgi?id=13567) - $GetParam{StateID} used for ACLCompatGetParam but $GetParam{NewStateID} given. + - 2018-01-24 Fixed bug#[13530](https://bugs.otrs.org/show_bug.cgi?id=13530) - Internal server error in AgentTicketForward if no article ID is provided. + - 2018-01-24 Fixed bug#[13472](https://bugs.otrs.org/show_bug.cgi?id=13472) - Conversion of Dates not accepting valid format. + - 2018-01-23 Fixed bug#[2289](https://bugs.otrs.org/show_bug.cgi?id=2289) - backup.pl - compress with bzip2 dont works. + - 2018-01-22 Fixed bug#[13235](https://bugs.otrs.org/show_bug.cgi?id=13235) - Race condition when fetching mails. + - 2018-01-22 Fixed bug#[13405](https://bugs.otrs.org/show_bug.cgi?id=13405) - CIC overlay display error. + - 2018-01-21 Updated translations, thanks to all translators. + - 2018-01-18 Fixed bug#[13552](https://bugs.otrs.org/show_bug.cgi?id=13552) - Wrong documentation in POD of TicketSearch. + - 2018-01-13 Fixed bug#[13534](https://bugs.otrs.org/show_bug.cgi?id=13534) - Comments in the Config XML files are not ignored. + - 2018-01-13 Fixed bug#[13339](https://bugs.otrs.org/show_bug.cgi?id=13339) - If deployment fails because of wrong settings, this wrong settings wouldn't be displayed. + - 2018-01-12 Fixed bug#[13543](https://bugs.otrs.org/show_bug.cgi?id=13543) - Wrong Month Name in OTRS Appoinment Calender. + - 2018-01-12 Fixed bug#[13521](https://bugs.otrs.org/show_bug.cgi?id=13521) - Article sender field contains user's OoO information. + - 2018-01-12 Fixed bug#[13498](https://bugs.otrs.org/show_bug.cgi?id=13498) - Multi-upload form is showing inline attachments after new uploads. + - 2018-01-11 Fixed bug#[13542](https://bugs.otrs.org/show_bug.cgi?id=13542) - Deep recursion error in package manager install/upgrade in a very special constellation. + - 2018-01-11 Fixed bug#[13536](https://bugs.otrs.org/show_bug.cgi?id=13536) - System maintenance does not show formatted timestamps and messages. + - 2018-01-10 Fixed bug#[13523](https://bugs.otrs.org/show_bug.cgi?id=13523) - Loading an invalid communication ID causes all to be shown. + - 2018-01-09 Follow-up fix for bug#[13325](https://bugs.otrs.org/show_bug.cgi?id=13325) - OTRS_CUSTOMER_BODY not working for most notification events. #6.0.4 2018-01-16 - 2018-01-12 Fixed bug#[13527](https://bugs.otrs.org/show_bug.cgi?id=13527) - Reset locally not working as expected. diff -Nru otrs2-6.0.4/debian/changelog otrs2-6.0.5/debian/changelog --- otrs2-6.0.4/debian/changelog 2018-01-24 13:49:12.000000000 +0000 +++ otrs2-6.0.5/debian/changelog 2018-02-15 09:36:17.000000000 +0000 @@ -1,3 +1,10 @@ +otrs2 (6.0.5-1) unstable; urgency=medium + + * New upstream release. + - Rewrite patch 03-backup. + + -- Patrick Matthäi Thu, 15 Feb 2018 10:36:17 +0100 + otrs2 (6.0.4-1) unstable; urgency=medium * New upstream release. diff -Nru otrs2-6.0.4/debian/patches/03-backup.diff otrs2-6.0.5/debian/patches/03-backup.diff --- otrs2-6.0.4/debian/patches/03-backup.diff 2018-01-24 13:49:12.000000000 +0000 +++ otrs2-6.0.5/debian/patches/03-backup.diff 2018-02-15 09:36:17.000000000 +0000 @@ -1,49 +1,49 @@ # Fix some backup and restore operations. -diff -Naur otrs-6.0.1.orig/scripts/backup.pl otrs-6.0.1/scripts/backup.pl ---- otrs-6.0.1.orig/scripts/backup.pl 2017-11-14 06:27:40.000000000 +0100 -+++ otrs-6.0.1/scripts/backup.pl 2017-11-30 10:14:25.386738555 +0100 -@@ -179,7 +179,7 @@ +diff -Naur otrs-6.0.5.orig/scripts/backup.pl otrs-6.0.5/scripts/backup.pl +--- otrs-6.0.5.orig/scripts/backup.pl 2018-02-06 00:46:54.000000000 +0100 ++++ otrs-6.0.5/scripts/backup.pl 2018-02-15 10:34:48.251880128 +0100 +@@ -182,7 +182,7 @@ else { # backup Kernel/Config.pm - print "Backup $Directory/Config.tar.gz ... "; -- if ( !system("tar -czf $Directory/Config.tar.gz Kernel/Config*") ) { -+ if ( !system("tar -czhf $Directory/Config.tar.gz Kernel/Config*") ) { + print "Backup $Directory/Config.tar.$CompressEXT ... "; +- if ( !system("tar -c -$Compress -f $Directory/Config.tar.$CompressEXT Kernel/Config*") ) { ++ if ( !system("tar -ch -$Compress -f $Directory/Config.tar.$CompressEXT Kernel/Config*") ) { print "done\n"; } else { -@@ -191,7 +191,7 @@ +@@ -194,7 +194,7 @@ if ($FullBackup) { - print "Backup $Directory/Application.tar.gz ... "; + print "Backup $Directory/Application.tar.$CompressEXT ... "; my $Excludes = "--exclude=var/tmp --exclude=js-cache --exclude=css-cache --exclude=.git"; -- if ( !system("tar $Excludes -czf $Directory/Application.tar.gz .") ) { -+ if ( !system("tar $Excludes -czhf $Directory/Application.tar.gz .") ) { +- if ( !system("tar $Excludes -c -$Compress -f $Directory/Application.tar.$CompressEXT .") ) { ++ if ( !system("tar $Excludes -ch -$Compress -f $Directory/Application.tar.$CompressEXT .") ) { print "done\n"; } else { -@@ -204,7 +204,7 @@ +@@ -207,7 +207,7 @@ # backup vardir else { - print "Backup $Directory/VarDir.tar.gz ... "; -- if ( !system("tar -czf $Directory/VarDir.tar.gz var/") ) { -+ if ( !system("tar -czhf $Directory/VarDir.tar.gz var/") ) { + print "Backup $Directory/VarDir.tar.$CompressEXT ... "; +- if ( !system("tar -c -$Compress -f $Directory/VarDir.tar.$CompressEXT var/") ) { ++ if ( !system("tar -ch -$Compress -f $Directory/VarDir.tar.$CompressEXT var/") ) { print "done\n"; } else { -@@ -217,7 +217,7 @@ +@@ -220,7 +220,7 @@ # backup datadir if ( $ArticleDir !~ m/\A\Q$Home\E/ ) { - print "Backup $Directory/DataDir.tar.gz ... "; -- if ( !system("tar -czf $Directory/DataDir.tar.gz $ArticleDir") ) { -+ if ( !system("tar -czhf $Directory/DataDir.tar.gz $ArticleDir") ) { + print "Backup $Directory/DataDir.tar.$CompressEXT ... "; +- if ( !system("tar -c -$Compress -f $Directory/DataDir.tar.$CompressEXT $ArticleDir") ) { ++ if ( !system("tar -ch -$Compress -f $Directory/DataDir.tar.$CompressEXT $ArticleDir") ) { print "done\n"; } else { -diff -Naur otrs-6.0.1.orig/scripts/restore.pl otrs-6.0.1/scripts/restore.pl ---- otrs-6.0.1.orig/scripts/restore.pl 2017-11-14 06:27:40.000000000 +0100 -+++ otrs-6.0.1/scripts/restore.pl 2017-11-30 10:14:25.386738555 +0100 -@@ -182,6 +182,20 @@ - system("tar -xzf $DataDirBackupTar"); +diff -Naur otrs-6.0.5.orig/scripts/restore.pl otrs-6.0.5/scripts/restore.pl +--- otrs-6.0.5.orig/scripts/restore.pl 2018-02-06 00:46:54.000000000 +0100 ++++ otrs-6.0.5/scripts/restore.pl 2018-02-15 10:32:24.860524202 +0100 +@@ -234,6 +234,20 @@ + system("tar -xjf $DataDirBackupBz2"); } +# restore symlinked structure diff -Nru otrs2-6.0.4/i18n/otrs/otrs.ar_SA.po otrs2-6.0.5/i18n/otrs/otrs.ar_SA.po --- otrs2-6.0.4/i18n/otrs/otrs.ar_SA.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.ar_SA.po 2018-02-05 23:46:54.000000000 +0000 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Arabic (Saudi Arabia) (http://www.transifex.com/otrs/OTRS/language/ar_SA/)\n" "MIME-Version: 1.0\n" @@ -7779,8 +7779,7 @@ msgstr "إعدادات" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9230,6 +9229,10 @@ msgid "Expand" msgstr "توسيع" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10183,6 +10186,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11295,6 +11302,12 @@ msgstr "تمت اضافة حساب البريد الإلكتروني!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "" @@ -11448,6 +11461,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11460,6 +11477,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12330,10 +12351,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13873,7 +13890,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14720,6 +14738,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14758,6 +14789,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14788,6 +14824,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14808,6 +14856,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15466,6 +15526,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16667,11 +16739,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22397,6 +22464,10 @@ msgstr "كبير" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.bg.po otrs2-6.0.5/i18n/otrs/otrs.bg.po --- otrs2-6.0.4/i18n/otrs/otrs.bg.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.bg.po 2018-02-05 23:46:54.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Bulgarian (http://www.transifex.com/otrs/OTRS/language/bg/)\n" "MIME-Version: 1.0\n" @@ -7783,8 +7783,7 @@ msgstr "Предпочитания" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9234,6 +9233,10 @@ msgid "Expand" msgstr "Разгърнат" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10187,6 +10190,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11299,6 +11306,12 @@ msgstr "Електроната поща е добавена." #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Разпределяне по поле To: от писмото." @@ -11452,6 +11465,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11464,6 +11481,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12334,10 +12355,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13877,7 +13894,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14724,6 +14742,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14762,6 +14793,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14792,6 +14828,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14812,6 +14860,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15470,6 +15530,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16671,11 +16743,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22401,6 +22468,10 @@ msgstr "Подробен" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.ca.po otrs2-6.0.5/i18n/otrs/otrs.ca.po --- otrs2-6.0.4/i18n/otrs/otrs.ca.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.ca.po 2018-02-05 23:46:54.000000000 +0000 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Catalan (http://www.transifex.com/otrs/OTRS/language/ca/)\n" "MIME-Version: 1.0\n" @@ -7779,8 +7779,7 @@ msgstr "Preferències" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9230,6 +9229,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10183,6 +10186,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11295,6 +11302,12 @@ msgstr "Compte de correu afegida!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Despatxar pel camp To: del correu" @@ -11448,6 +11461,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11460,6 +11477,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12330,10 +12351,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13873,7 +13890,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14720,6 +14738,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14758,6 +14789,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14788,6 +14824,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14808,6 +14856,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15466,6 +15526,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16667,11 +16739,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22397,6 +22464,10 @@ msgstr "Gran" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.cs.po otrs2-6.0.5/i18n/otrs/otrs.cs.po --- otrs2-6.0.4/i18n/otrs/otrs.cs.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.cs.po 2018-02-05 23:46:54.000000000 +0000 @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Czech (http://www.transifex.com/otrs/OTRS/language/cs/)\n" "MIME-Version: 1.0\n" @@ -7786,8 +7786,7 @@ msgstr "Předvolby" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9237,6 +9236,10 @@ msgid "Expand" msgstr "Rozbalit" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10190,6 +10193,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11302,6 +11309,12 @@ msgstr "Poštovní účet přidán!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Přiřadit podle emailu - pole KOMU:." @@ -11455,6 +11468,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11467,6 +11484,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12337,10 +12358,6 @@ msgstr "Nastavení nenalezeno!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13880,7 +13897,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14727,6 +14745,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maximální velikost SQL dotazu" @@ -14765,6 +14796,11 @@ msgstr "Byly nalezeny tabulky z jiným než výchozím formátem úložiště tabulek." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x a vyšší je vyžadována." @@ -14795,6 +14831,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Nastavení client_encoding musi být UNICODE nebo UTF8." @@ -14815,6 +14863,18 @@ msgstr "Nastavení stylu data musí být ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15473,6 +15533,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16674,11 +16746,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22404,6 +22471,10 @@ msgstr "Velký" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.da.po otrs2-6.0.5/i18n/otrs/otrs.da.po --- otrs2-6.0.4/i18n/otrs/otrs.da.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.da.po 2018-02-05 23:46:54.000000000 +0000 @@ -3,13 +3,13 @@ # Jens Larsen , 2016-2017 # Jens Larsen , 2015-2016 # Lars Jørgensen , 2015 -# Lars Jørgensen , 2016 +# Lars Jørgensen , 2016,2018 # Lasse Holst-Gloy , 2016 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Danish (http://www.transifex.com/otrs/OTRS/language/da/)\n" "MIME-Version: 1.0\n" @@ -324,19 +324,19 @@ #. Template: AdminAppointmentCalendarManage msgid "URL" -msgstr "" +msgstr "URL" #. Template: AdminAppointmentCalendarManage msgid "Export calendar" -msgstr "" +msgstr "Eksporter kalender" #. Template: AdminAppointmentCalendarManage msgid "Download calendar" -msgstr "" +msgstr "Download kalender" #. Template: AdminAppointmentCalendarManage msgid "Copy public calendar URL" -msgstr "" +msgstr "Kopier URL til offentlig kalender" #. Template: AdminAppointmentCalendarManage msgid "Calendar" @@ -344,19 +344,19 @@ #. Template: AdminAppointmentCalendarManage msgid "Calendar name" -msgstr "" +msgstr "Navn på kalender" #. Template: AdminAppointmentCalendarManage msgid "Calendar with same name already exists." -msgstr "" +msgstr "Der findes allerede en kalender med samme navn." #. Template: AdminAppointmentCalendarManage msgid "Color" -msgstr "" +msgstr "Farve" #. Template: AdminAppointmentCalendarManage msgid "Permission group" -msgstr "" +msgstr "Tilladelsesgruppe" #. Template: AdminAppointmentCalendarManage msgid "Ticket Appointments" @@ -364,7 +364,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Rule" -msgstr "" +msgstr "Regel" #. Template: AdminAppointmentCalendarManage msgid "Remove this entry" @@ -380,7 +380,7 @@ #. Template: AdminAppointmentCalendarManage msgid "End date" -msgstr "" +msgstr "Slutdato" #. Template: AdminAppointmentCalendarManage msgid "" @@ -394,11 +394,11 @@ #. Template: AdminAppointmentCalendarManage msgid "Please select a valid queue." -msgstr "" +msgstr "Vælg en gyldig kø." #. Template: AdminAppointmentCalendarManage msgid "Search attributes" -msgstr "" +msgstr "Søgeattributter" #. Template: AdminAppointmentCalendarManage msgid "Add entry" @@ -416,7 +416,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Add Rule" -msgstr "" +msgstr "Tilføj Regel" #. Template: AdminAppointmentCalendarManage msgid "Submit" @@ -424,7 +424,7 @@ #. Template: AdminAppointmentImport msgid "Appointment Import" -msgstr "" +msgstr "Importer Aftale" #. Template: AdminAppointmentImport msgid "Uploaded file must be in valid iCal format (.ics)." @@ -442,7 +442,7 @@ #. Template: AdminAppointmentImport msgid "Update existing appointments?" -msgstr "" +msgstr "Opdater eksisterende aftaler?" #. Template: AdminAppointmentImport msgid "" @@ -452,11 +452,11 @@ #. Template: AdminAppointmentImport msgid "Upload calendar" -msgstr "" +msgstr "Upload kalender" #. Template: AdminAppointmentImport msgid "Import appointments" -msgstr "" +msgstr "Importer aftaler" #. Template: AdminAppointmentNotificationEvent msgid "Appointment Notification Management" @@ -480,11 +480,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "Filter for Notifications" -msgstr "" +msgstr "Filter for Meddelelser" #. Template: AdminAppointmentNotificationEvent msgid "Filter for notifications" -msgstr "" +msgstr "Filter for meddelelser" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -552,7 +552,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Appointment Filter" -msgstr "" +msgstr "Aftalefilter" #. Template: AdminAppointmentNotificationEvent msgid "Type" @@ -568,11 +568,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "Team" -msgstr "" +msgstr "Hold" #. Template: AdminAppointmentNotificationEvent msgid "Resource" -msgstr "" +msgstr "Resurse" #. Template: AdminAppointmentNotificationEvent msgid "Recipients" @@ -628,7 +628,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Transport" -msgstr "" +msgstr "Transport" #. Template: AdminAppointmentNotificationEvent msgid "At least one method is needed per notification." @@ -647,7 +647,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "This feature is currently not available." -msgstr "" +msgstr "Denne funktionalitet er i øjeblikket ikke tilgængelig." #. Template: AdminAppointmentNotificationEvent msgid "Upgrade to %s" @@ -705,7 +705,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Notifications are sent to an agent." -msgstr "" +msgstr "Meddelelser sendt til agent." #. Template: AdminAppointmentNotificationEvent msgid "You can use the following tags" @@ -745,7 +745,7 @@ #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Article visible for customer" -msgstr "" +msgstr "Indlæg synligt for kunde" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "" @@ -764,7 +764,7 @@ #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Enable email security" -msgstr "" +msgstr "Aktiver sikker email" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Email security level" @@ -1027,7 +1027,7 @@ #. Template: AdminCommunicationLog msgid "Status for: %s" -msgstr "" +msgstr "Status for: %s" #. Template: AdminCommunicationLog msgid "Failing accounts" @@ -1103,7 +1103,7 @@ #. Template: AdminCommunicationLog msgid "%s s" -msgstr "" +msgstr "%s s" #. Template: AdminCommunicationLogAccounts msgid "Account Status" @@ -1137,7 +1137,7 @@ #. Template: AdminCommunicationLogAccounts msgid "Account" -msgstr "" +msgstr "Konto" #. Template: AdminCommunicationLogAccounts msgid "Edit" @@ -1145,7 +1145,7 @@ #. Template: AdminCommunicationLogAccounts msgid "No accounts found." -msgstr "" +msgstr "Ingen konti fundet." #. Template: AdminCommunicationLogAccounts msgid "Communication Log Details (%s)" @@ -1157,11 +1157,11 @@ #. Template: AdminCommunicationLogAccounts msgid "Start Time" -msgstr "" +msgstr "Starttid" #. Template: AdminCommunicationLogAccounts msgid "End Time" -msgstr "" +msgstr "Sluttid" #. Template: AdminCommunicationLogAccounts msgid "No communication log entries found." @@ -1169,11 +1169,11 @@ #. Template: AdminCommunicationLogCommunications msgid "Duration" -msgstr "" +msgstr "Varighed" #. Template: AdminCommunicationLogObjectLog msgid "#" -msgstr "" +msgstr "#" #. Template: AdminCommunicationLogObjectLog msgid "Priority" @@ -1241,7 +1241,7 @@ #. Template: AdminCustomerCompany msgid "List (only %s shown - more available)" -msgstr "" +msgstr "List (kun %s vist - der er flere)" #. Template: AdminCustomerCompany msgid "total" @@ -1446,7 +1446,7 @@ #. Template: AdminCustomerUser msgid "Group Permissions" -msgstr "" +msgstr "Gruppe-Tilladelser" #. Template: AdminCustomerUser msgid "This customer user has no group permissions." @@ -2011,7 +2011,7 @@ #. Template: AdminGenericAgent msgid "Automatic Execution (Multiple Tickets)" -msgstr "" +msgstr "Automatisk udførelse (flere sager)" #. Template: AdminGenericAgent msgid "Execution Schedule" @@ -2041,7 +2041,7 @@ #. Template: AdminGenericAgent msgid "Event Based Execution (Single Ticket)" -msgstr "" +msgstr "Handlingsbasere udførelse (Enkelt Sag)" #. Template: AdminGenericAgent msgid "Event Triggers" @@ -2357,7 +2357,7 @@ #. Template: AdminGenericAgent msgid "Visible for customer" -msgstr "" +msgstr "Synlig for kunde" #. Template: AdminGenericAgent msgid "Time units" @@ -2419,7 +2419,7 @@ msgid "" "Warning: There are %s tickets affected but only %s may be modified during " "one job execution!" -msgstr "" +msgstr "Advarsel: %s sager omfattet, men kun %s må ændres i én job-kørsel!" #. Template: AdminGenericAgent msgid "Affected Tickets" @@ -2617,7 +2617,7 @@ #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "Error code" -msgstr "" +msgstr "Fejlkode" #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "An error identifier for this error handling module." @@ -2631,7 +2631,7 @@ #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "Error message" -msgstr "" +msgstr "Fejlbesked" #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "An error explanation for this error handling module." @@ -2913,7 +2913,7 @@ #. Template: AdminGenericInterfaceInvokerEvent msgid "General Settings" -msgstr "" +msgstr "Generelle Indstillinger" #. Template: AdminGenericInterfaceInvokerEvent msgid "Event type" @@ -3041,11 +3041,11 @@ #. Template: AdminGenericInterfaceMappingXSLT msgid "General Shortcuts" -msgstr "" +msgstr "Generelle Genveje" #. Template: AdminGenericInterfaceMappingXSLT msgid "MacOS Shortcuts" -msgstr "" +msgstr "MacOS Genveje" #. Template: AdminGenericInterfaceMappingXSLT msgid "Comment code" @@ -3065,23 +3065,23 @@ #. Template: AdminGenericInterfaceMappingXSLT msgid "Find" -msgstr "" +msgstr "Find" #. Template: AdminGenericInterfaceMappingXSLT msgid "Find next" -msgstr "" +msgstr "Find næste" #. Template: AdminGenericInterfaceMappingXSLT msgid "Find previous" -msgstr "" +msgstr "Find forrige" #. Template: AdminGenericInterfaceMappingXSLT msgid "Find and replace" -msgstr "" +msgstr "Find og erstat" #. Template: AdminGenericInterfaceMappingXSLT msgid "Find and replace all" -msgstr "" +msgstr "Find og erstat alle" #. Template: AdminGenericInterfaceMappingXSLT msgid "XSLT Mapping" @@ -3135,15 +3135,15 @@ #. Template: AdminGenericInterfaceMappingXSLT msgid "Replace" -msgstr "" +msgstr "Erstat" #. Template: AdminGenericInterfaceMappingXSLT msgid "Remove regex" -msgstr "" +msgstr "Fjern regex" #. Template: AdminGenericInterfaceMappingXSLT msgid "Add regex" -msgstr "" +msgstr "Tilføj regex" #. Template: AdminGenericInterfaceMappingXSLT msgid "These filters can be used to transform keys using regular expressions." @@ -3999,7 +3999,7 @@ #. Template: AdminMailAccount msgid "System Configuration" -msgstr "" +msgstr "Systemkonfiguration" #. Template: AdminMailAccount msgid "Host" @@ -4015,7 +4015,7 @@ #. Template: AdminMailAccount msgid "Do you really want to delete this mail account?" -msgstr "" +msgstr "Vil du virkelig slette denne mail-konto?" #. Template: AdminMailAccount msgid "Password" @@ -4061,7 +4061,7 @@ #. Template: AdminNavigationBar msgid "Favorites" -msgstr "" +msgstr "Favoritter" #. Template: AdminNavigationBar msgid "" @@ -4071,7 +4071,7 @@ #. Template: AdminNavigationBar msgid "Links" -msgstr "" +msgstr "Links" #. Template: AdminNavigationBar msgid "View the admin manual on Github" @@ -4079,15 +4079,15 @@ #. Template: AdminNavigationBar msgid "No Matches" -msgstr "" +msgstr "Intet fundet" #. Template: AdminNavigationBar msgid "Sorry, your search didn't match any items." -msgstr "" +msgstr "Beklager, men din søgning matcher ikke noget." #. Template: AdminNavigationBar msgid "Set as favorite" -msgstr "" +msgstr "Vælg som favorit" #. Template: AdminNotificationEvent msgid "Ticket Notification Management" @@ -5647,7 +5647,7 @@ #. Template: AdminQueueAutoResponse msgid "Show All Queues" -msgstr "" +msgstr "Vis alle køer" #. Template: AdminQueueAutoResponse msgid "Auto Responses" @@ -6635,7 +6635,7 @@ #. Template: AdminSystemConfiguration msgid "System configuration" -msgstr "" +msgstr "Systemkonfiguration" #. Template: AdminSystemConfiguration msgid "" @@ -6759,11 +6759,11 @@ #. Template: AdminSystemConfigurationImportExport msgid "Upload system configuration" -msgstr "" +msgstr "Upload systemkonfiguration" #. Template: AdminSystemConfigurationImportExport msgid "Import system configuration" -msgstr "" +msgstr "Importer systemkonfiguration" #. Template: AdminSystemConfigurationImportExport msgid "Download current configuration settings of your system in a .yml file." @@ -7035,7 +7035,7 @@ #. Template: AdminUser msgid "Edit personal preferences for this agent" -msgstr "" +msgstr "Rediger personlige indstillinger for denne agent" #. Template: AdminUser msgid "Agents will be needed to handle tickets." @@ -7143,7 +7143,7 @@ #. Template: AgentAppointmentCalendarOverview msgid "Add new Appointment" -msgstr "" +msgstr "Tilføj ny Aftale" #. Template: AgentAppointmentCalendarOverview msgid "Calendars" @@ -7505,7 +7505,7 @@ #. Template: AgentDashboardAppointmentCalendar msgid "New Appointment" -msgstr "" +msgstr "Ny Aftale" #. Template: AgentDashboardAppointmentCalendar msgid "Tomorrow" @@ -7776,15 +7776,14 @@ #. Template: AgentPreferences msgid "Personal preferences" -msgstr "" +msgstr "Personlige indstillinger" #. Template: AgentPreferences msgid "Preferences" msgstr "Indstillinger" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -7795,7 +7794,7 @@ msgid "" "Set up your personal preferences. Save each setting by clicking the " "checkmark on the right." -msgstr "" +msgstr "Vælg dine personlige præferencer. Gem hver indstilling ved at klikke på tjekmærket til højre." #. Template: AgentPreferences msgid "" @@ -7862,7 +7861,7 @@ #. Template: AgentPreferencesOverview msgid "Personal Preferences" -msgstr "" +msgstr "Personlinge indstillinger" #. Template: AgentPreferencesOverview msgid "" @@ -8673,7 +8672,7 @@ #. Template: AgentTicketZoom msgid "Article Overview - %s Article(s)" -msgstr "" +msgstr "Indlægsoversigt - %s Indlæg" #. Template: AgentTicketZoom msgid "Page %s" @@ -9234,6 +9233,10 @@ msgid "Expand" msgstr "Udvid" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -9270,7 +9273,7 @@ #. Template: Header msgid "Notifications (OTRS Business Solution™)" -msgstr "" +msgstr "Meddelelser (OTRS Business Solution™)" #. Template: Header msgid "Logout" @@ -9976,7 +9979,7 @@ #. Template: SettingsList msgid "" "Allow users to adapt this setting from within their personal preferences" -msgstr "" +msgstr "Tillad brugere at ændre denne indstilling i deres personlige indstillinger" #. Template: SettingsList msgid "Allow users to update" @@ -9986,7 +9989,7 @@ msgid "" "Do not longer allow users to adapt this setting from within their personal " "preferences" -msgstr "" +msgstr "Lad ikke længere brugere ændre denne indstilling i deres personlige indstillinger" #. Template: SettingsList msgid "Forbid users to update" @@ -10187,10 +10190,14 @@ msgstr "" #. JS Template: UploadContainer -msgid "Click to select files or just drop them here." +msgid "Click to select a file for upload." msgstr "" #. JS Template: UploadContainer +msgid "Click to select files or just drop them here." +msgstr "Klik for at vælge filer eller træk dem hertil." + +#. JS Template: UploadContainer msgid "Click to select a file or just drop it here." msgstr "" @@ -10708,7 +10715,7 @@ #. Perl Module: Kernel/Modules/AdminCustomerGroup.pm msgid "Please check system configuration." -msgstr "" +msgstr "Tjek systemkonfigurationen." #. Perl Module: Kernel/Modules/AdminCustomerGroup.pm msgid "Invalid permission context configuration:" @@ -11299,6 +11306,12 @@ msgstr "Mail-konto tilføjet." #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Sendes via mail til: felt." @@ -11452,6 +11465,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11464,6 +11481,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12283,7 +12304,7 @@ #. Perl Module: Kernel/Modules/AgentDashboardCommon.pm msgid "Customer User Name" -msgstr "" +msgstr "Kundenavn" #. Perl Module: Kernel/Modules/AgentLinkObject.pm msgid "Need SourceObject and SourceKey!" @@ -12334,10 +12355,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13877,7 +13894,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -13908,7 +13926,7 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/SystemConfigurationOutOfSyncCheck.pm msgid "There is an error updating the system configuration!" -msgstr "" +msgstr "Der er en fejl i opdateringen af systemkonfigurationen!" #. Perl Module: Kernel/Output/HTML/Notification/UIDCheck.pm msgid "" @@ -14724,6 +14742,19 @@ msgstr "Indstillingen innodb_log_file_size skal være mindst 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maksimal størrelse på forespørgsler" @@ -14762,6 +14793,11 @@ msgstr "Der er fundet tabeller lagret med anden storage enginge end default." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x eller nyere er påkrævet." @@ -14792,6 +14828,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Indstillingen client_encoding skal være UNICODE eller UTF8." @@ -14812,6 +14860,18 @@ msgstr "Indstillingen DateStyle skal være ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -14971,7 +15031,7 @@ #. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/OTRS/DaemonRunning.pm msgid "Daemon is running." -msgstr "" +msgstr "Dæmonen kører." #. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/OTRS/DaemonRunning.pm @@ -15470,6 +15530,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16374,7 +16446,7 @@ #. JS File: Core.Agent.Admin.SystemConfiguration msgid "Search the System Configuration" -msgstr "" +msgstr "Søg i systemkonfigurationen" #. JS File: Core.Agent.Admin.SystemConfiguration msgid "Please enter at least one search word to find anything." @@ -16671,11 +16743,6 @@ msgstr "Slå venligst kompatibilitet fra i Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -16972,7 +17039,7 @@ #. SysConfig msgid "*** out of office until %s (%s d left) ***" -msgstr "" +msgstr "*** ude af kontoret til og med %s (%s dage endnu) ***" #. SysConfig msgid "0 - Disabled" @@ -17831,7 +17898,7 @@ #. SysConfig msgid "Change your password and more." -msgstr "" +msgstr "Skift password og andet" #. SysConfig msgid "Changed SLA to \"%s\" (%s)." @@ -17959,7 +18026,7 @@ #. SysConfig msgid "Choose which notifications you'd like to receive." -msgstr "" +msgstr "Vælg de beskeder, du gerne vil modtage" #. SysConfig msgid "Christmas Eve" @@ -18295,7 +18362,7 @@ #. SysConfig msgid "Create new appointment." -msgstr "" +msgstr "Opret ny aftale." #. SysConfig msgid "Create new email ticket and send this out (outbound)." @@ -21738,7 +21805,7 @@ #. SysConfig msgid "Fulltext search" -msgstr "" +msgstr "Fritekstsøgning" #. SysConfig msgid "Galician" @@ -22401,6 +22468,10 @@ msgstr "Stor" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" @@ -22605,7 +22676,7 @@ #. SysConfig msgid "Logged-In Users" -msgstr "" +msgstr "Brugere online" #. SysConfig msgid "Logout of customer panel." @@ -26283,7 +26354,7 @@ #. SysConfig msgid "Tweak the system as you wish." -msgstr "" +msgstr "Tilpas systemet, som du ønsker." #. SysConfig msgid "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.de.po otrs2-6.0.5/i18n/otrs/otrs.de.po --- otrs2-6.0.4/i18n/otrs/otrs.de.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.de.po 2018-02-05 23:46:54.000000000 +0000 @@ -8,7 +8,7 @@ # Daniel Schliemann , 2016 # Dominik , 2015 # Dorothea Doerffel , 2017 -# Ettore Atalan , 2014-2017 +# Ettore Atalan , 2014-2018 # Felix Schäfer , 2017 # Florian Edlhuber , 2015-2016 # Florian Liebe , 2017 @@ -26,7 +26,7 @@ # Mainboarder, 2014 # mainboarder, 2014-2015 # Marc A. Bonsels, 2014-2015 -# Marc A. Bonsels, 2015-2017 +# Marc A. Bonsels, 2015-2018 # Marc A. Bonsels, 2014 # Martin Gruner , 2014-2017 # mathiasbraeunling , 2014 @@ -55,8 +55,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: German (http://www.transifex.com/otrs/OTRS/language/de/)\n" "MIME-Version: 1.0\n" @@ -6926,7 +6926,7 @@ #. Template: AdminSystemMaintenanceEdit msgid "This field must have less then 250 characters." -msgstr "" +msgstr "Dieses Feld muss weniger als 250 Zeichen lang sein." #. Template: AdminSystemMaintenanceEdit msgid "Show login message" @@ -7620,7 +7620,7 @@ #. Template: AgentDashboardCustomerIDList msgid "Edit customer ID" -msgstr "" +msgstr "Kundennummer bearbeiten" #. Template: AgentDashboardCustomerIDStatus msgid "Escalated tickets" @@ -7830,9 +7830,8 @@ msgstr "Einstellungen" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." -msgstr "Achtung! Sie bearbeiten derzeit nicht Ihre eigenen Einstellungen, sondern die von %s." +msgid "Please note: you're currently editing the preferences of %s." +msgstr "" #. Template: AgentPreferences msgid "Go back to editing this agent" @@ -8998,7 +8997,7 @@ "Due to this, elements on this page could have stopped to work correctly. In " "order to be able to use all elements correctly again, it is strongly " "recommended to reload this page." -msgstr "Die Verbindungen wurde nach einer kurzen Unterbrechung wiederhergestellt. Aus diesem Grund könnte es sein das einige Elemente der Seite nicht korrekt funktionieren. Um alle Elemente erneut korrekt nutzen zu können sollten Sie ihre Seite neue laden." +msgstr "Die Verbindung wurde nach einer temporären Unterbrechung wiederhergestellt. Möglicherweise funktionieren deshalb einige Elemente der aktuellen Seite nicht (mehr) korrekt. Um alle Elemente wieder wie gewünscht nutzen zu können, sollten Sie die aktuelle Seite neu laden." #. Template: CustomerLogin msgid "JavaScript Not Available" @@ -9281,6 +9280,10 @@ msgid "Expand" msgstr "Ausklappen" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "Entwurf aktualisieren" @@ -10234,6 +10237,10 @@ msgstr "Lade, bitte warten..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "Klicken zum Auswählen oder Dateien einfach hier ablegen." @@ -10845,7 +10852,7 @@ #. Perl Module: Kernel/Modules/AdminDynamicFieldCheckbox.pm msgid "Add %s field" -msgstr "" +msgstr "%s Feld hinzufügen" #. Perl Module: Kernel/Modules/AdminDynamicFieldCheckbox.pm msgid "The field does not contain only ASCII letters and numbers." @@ -10877,7 +10884,7 @@ #. Perl Module: Kernel/Modules/AdminDynamicFieldCheckbox.pm msgid "Change %s field" -msgstr "" +msgstr "%s Feld ändern" #. Perl Module: Kernel/Modules/AdminDynamicFieldCheckbox.pm msgid "The name for this field should not change." @@ -11346,6 +11353,12 @@ msgstr "E-Mail-Konto hinzugefügt!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Verteilung nach To: Feld." @@ -11499,6 +11512,10 @@ msgstr "Installiert" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "Paket korrekt aktualisiert" @@ -11511,6 +11528,10 @@ msgstr "Abhängigkeit korrekt installiert" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "Das Paket enthält zyklische Abhängigkeiten" @@ -12381,10 +12402,6 @@ msgstr "Einstellung nicht gefunden!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "Diese Funktion ist Teil der %s. Bitte kontaktieren Sie uns unter %s bezüglich eines Upgrades." - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "Einstellung konnte nicht zurückgesetzt werden!" @@ -13924,8 +13941,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Eine Systemwartungsperiode beginnt um: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14771,6 +14789,19 @@ msgstr "Die Einstellung innodb_log_file_size muss mindestens 256 MB betragen." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maximale Anfragegröße" @@ -14809,6 +14840,11 @@ msgstr "Es wurden Tabellen gefunden, die nicht die Standard-Engine nutzen." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x oder höher wird benötigt." @@ -14839,6 +14875,18 @@ msgstr "SQL-Prüfung NLS_DATE_FORMAT" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Einstellung client_encoding muss UNICODE oder UTF8 sein." @@ -14859,6 +14907,18 @@ msgstr "Einstellung DateStyle muss ISO sein." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "PostgreSQL 9.2 oder höher wird benötigt." @@ -15517,6 +15577,18 @@ msgstr "Fehlender Schlüssel %s!" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "Alle Einstellungen" @@ -16230,7 +16302,7 @@ #. JS File: Core.Agent.Admin.PackageManager msgid "Update all packages" -msgstr "" +msgstr "Alle Pakete aktualisieren" #. JS File: Core.Agent.Admin.PackageManager msgid "Dismiss" @@ -16238,7 +16310,7 @@ #. JS File: Core.Agent.Admin.PackageManager msgid "Update All Packages" -msgstr "" +msgstr "Alle Pakete aktualisieren" #. JS File: Core.Agent.Admin.PackageManager msgid "Currently not possible" @@ -16718,11 +16790,6 @@ msgstr "Bitte schalten Sie den Kompatibilitätsmodus im Internet Explorer aus!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Diese Funktion ist Teil von %s. Bitte kontaktieren Sie uns unter %s bezüglich eines Upgrades." - -#. JS File: Core.Agent msgid "Find out more" msgstr "Mehr erfahren" @@ -22448,6 +22515,10 @@ msgstr "Groß" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "Letzter Kunden-Betreff" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.el.po otrs2-6.0.5/i18n/otrs/otrs.el.po --- otrs2-6.0.4/i18n/otrs/otrs.el.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.el.po 2018-02-05 23:46:54.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Greek (http://www.transifex.com/otrs/OTRS/language/el/)\n" "MIME-Version: 1.0\n" @@ -7783,8 +7783,7 @@ msgstr "Προτιμήσεις" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9234,6 +9233,10 @@ msgid "Expand" msgstr "Επέκταση" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10187,6 +10190,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11299,6 +11306,12 @@ msgstr "Προστέθηκε λογαριασμός email!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Αποστολή με ηλεκτρονικό ταχυδρομείο προς (πεδίο email To:)." @@ -11452,6 +11465,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11464,6 +11481,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12334,10 +12355,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13877,7 +13894,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14724,6 +14742,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14762,6 +14793,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14792,6 +14828,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14812,6 +14860,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15470,6 +15530,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16671,11 +16743,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22401,6 +22468,10 @@ msgstr "Μεγάλο" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.en_CA.po otrs2-6.0.5/i18n/otrs/otrs.en_CA.po --- otrs2-6.0.4/i18n/otrs/otrs.en_CA.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.en_CA.po 2018-02-05 23:46:54.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: English (Canada) (http://www.transifex.com/otrs/OTRS/language/en_CA/)\n" "MIME-Version: 1.0\n" @@ -7778,8 +7778,7 @@ msgstr "" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9229,6 +9228,10 @@ msgid "Expand" msgstr "" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10182,6 +10185,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11294,6 +11301,12 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "" @@ -11447,6 +11460,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11459,6 +11476,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12329,10 +12350,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13872,7 +13889,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14719,6 +14737,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14757,6 +14788,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14787,6 +14823,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14807,6 +14855,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15465,6 +15525,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16666,11 +16738,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22396,6 +22463,10 @@ msgstr "" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.en_GB.po otrs2-6.0.5/i18n/otrs/otrs.en_GB.po --- otrs2-6.0.4/i18n/otrs/otrs.en_GB.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.en_GB.po 2018-02-05 23:46:54.000000000 +0000 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/otrs/OTRS/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -7779,8 +7779,7 @@ msgstr "Preferences" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9230,6 +9229,10 @@ msgid "Expand" msgstr "Expand" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10183,6 +10186,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11295,6 +11302,12 @@ msgstr "Mail account added!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Dispatching by email To: field." @@ -11448,6 +11461,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11460,6 +11477,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12330,10 +12351,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13873,8 +13890,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14720,6 +14738,19 @@ msgstr "The setting innodb_log_file_size must be at least 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maximum Query Size" @@ -14758,6 +14789,11 @@ msgstr "Tables with a different storage engine than the default engine were found." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x or higher is required." @@ -14788,6 +14824,18 @@ msgstr "NLS_DATE_FORMAT Setting SQL Check" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Setting client_encoding needs to be UNICODE or UTF8." @@ -14808,6 +14856,18 @@ msgstr "Setting DateStyle needs to be ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15466,6 +15526,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16667,11 +16739,6 @@ msgstr "Please turn off Compatibility Mode in Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "This feature is part of the %s. Please contact us at %s for an upgrade." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22397,6 +22464,10 @@ msgstr "Large" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "Last customer subject" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.es_CO.po otrs2-6.0.5/i18n/otrs/otrs.es_CO.po --- otrs2-6.0.4/i18n/otrs/otrs.es_CO.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.es_CO.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Spanish (Colombia) (http://www.transifex.com/otrs/OTRS/language/es_CO/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Preferencias" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "¡Cuenta de correo agregada!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Despachar por el campo Para: del correo electrónico." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.es_MX.po otrs2-6.0.5/i18n/otrs/otrs.es_MX.po --- otrs2-6.0.4/i18n/otrs/otrs.es_MX.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.es_MX.po 2018-02-05 23:46:54.000000000 +0000 @@ -12,13 +12,14 @@ # Hugo Andres Gomez , 2017 # Ignacio Torres Soto , 2015 # Ivan Miron , 2015 +# Lennin Escudero , 2018 # Luis Armando Medina , 2016 # Luis Medina , 2016 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/otrs/OTRS/language/es_MX/)\n" "MIME-Version: 1.0\n" @@ -1092,7 +1093,7 @@ #. Template: AdminCommunicationLog msgid "Average processing time" -msgstr "" +msgstr "Tiempo promedio de procesamiento" #. Template: AdminCommunicationLog msgid "List of communications (%s)" @@ -7792,8 +7793,7 @@ msgstr "Preferencias" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9243,6 +9243,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10196,6 +10200,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11308,6 +11316,12 @@ msgstr "¡Cuanta de correo agregada!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Despachar por el campo Para: del correo electrónico." @@ -11461,6 +11475,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11473,6 +11491,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12343,10 +12365,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13886,8 +13904,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Un periodo de mantenimiento del sistema comenzará a las:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14733,6 +14752,19 @@ msgstr "La variable 'innodb_log_file_size' debe ser de al menos 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Tamaño Máximo de Consulta" @@ -14771,6 +14803,11 @@ msgstr "Se encontraron tablas con diferente motor de almacenamiento que el motor configurado como predeterminado." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Se requiere MySQL 5.x o superior." @@ -14801,6 +14838,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14821,6 +14870,18 @@ msgstr "La configuración DateStyle necesita ser ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15479,6 +15540,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16680,11 +16753,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Esta función es parte de %s. Por favor contacte con nosotros en %s para una adquirir esta funcionalidad." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22410,6 +22478,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.es.po otrs2-6.0.5/i18n/otrs/otrs.es.po --- otrs2-6.0.4/i18n/otrs/otrs.es.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.es.po 2018-02-05 23:46:54.000000000 +0000 @@ -2,11 +2,12 @@ # Translators: # Alvaro Gajardo, 2016 # Alvaro Gajardo, 2016 +# Alvaro Molina , 2018 # Anatoli F. Peña Castillo , 2017 # Антон Протченко :3 , 2017 # Arturo Mondelo , 2015 # Carlos Rodríguez , 2015 -# David B , 2017 +# David B , 2017-2018 # David Muñoz , 2016 # Deiry Arias , 2015 # Deiver Kiel , 2015,2017 @@ -32,8 +33,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Spanish (http://www.transifex.com/otrs/OTRS/language/es/)\n" "MIME-Version: 1.0\n" @@ -804,15 +805,15 @@ #. Template: AdminAttachment msgid "Attachment Management" -msgstr "Gestión de adjuntos" +msgstr "Gestión de archivo adjunto" #. Template: AdminAttachment msgid "Add Attachment" -msgstr "Añadir un adjunto" +msgstr "Añadir archivo adjunto" #. Template: AdminAttachment msgid "Edit Attachment" -msgstr "Editar adjunto" +msgstr "Editar Archivo adjunto" #. Template: AdminAttachment msgid "Filter for Attachments" @@ -820,7 +821,7 @@ #. Template: AdminAttachment msgid "Filter for attachments" -msgstr "Filtrar por atajos" +msgstr "Filtro para archivos adjuntos" #. Template: AdminAttachment msgid "Filename" @@ -832,7 +833,7 @@ #. Template: AdminAttachment msgid "Delete this attachment" -msgstr "Borrar este adjunto" +msgstr "Borrar este archivo adjunto" #. Template: AdminAttachment msgid "Do you really want to delete this attachment?" @@ -1265,7 +1266,7 @@ #. Template: AdminCustomerCompany msgid "List (only %s shown - more available)" -msgstr "Listar (solo %s se muestra - más disponibles)" +msgstr "Lista (solo %s se muestra - más disponibles)" #. Template: AdminCustomerCompany msgid "total" @@ -1412,7 +1413,7 @@ #. Template: AdminCustomerUser msgid "List (%s total)" -msgstr "Listar (%s total)" +msgstr "Lista (%s total)" #. Template: AdminCustomerUser msgid "Username" @@ -1462,7 +1463,7 @@ #. Template: AdminCustomerUser msgid "This CustomerID is invalid." -msgstr "Identificación del Cliente no es válido" +msgstr "La ID del cliente no es valida" #. Template: AdminCustomerUser msgid "Effective Permissions for Customer User" @@ -3342,11 +3343,11 @@ #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Additional response headers" -msgstr "" +msgstr "Encabezados de respuesta adicionales" #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Add response header" -msgstr "" +msgstr "Agregar encabezado de respuesta" #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Endpoint" @@ -3362,7 +3363,7 @@ #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Timeout" -msgstr "" +msgstr "Se acabó el tiempo" #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Timeout value for requests." @@ -7510,7 +7511,7 @@ "Make sure that the file '%s' exists (without .dist extension). This cron job" " will check every 5 minutes if the OTRS Daemon is running and start it if " "needed." -msgstr "Asegúrese de que el archivo '%s' existe (sin la extensión .dist). Este trabajo programado verificará cada 5 minutos si el Daemon de OTRS está corriendo y lo iniciará de ser necesario." +msgstr "Asegúrese de que el archivo '%s' existe (sin la extensión .dist). Este trabajo programado verificará cada 5 minutos si OTRS Daemon se esta ejecutando y se iniciará de ser necesario." #. Template: AgentDaemonInfo msgid "" @@ -7807,8 +7808,7 @@ msgstr "Preferencias" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -8160,7 +8160,7 @@ #. Template: AgentTicketActionCommon msgid "Setting a template will overwrite any text or attachment." -msgstr "Establecer una plantilla sobreescribirá cualquier texto o adjunto." +msgstr "Establecer una plantilla sobrescribirá cualquier texto o archivo adjunto." #. Template: AgentTicketActionCommon msgid "Invalid time!" @@ -8501,7 +8501,7 @@ #. Template: AgentTicketPhone msgid "To queue" -msgstr "A la cola" +msgstr "En la cola" #. Template: AgentTicketPhone msgid "Chat protocol" @@ -8673,7 +8673,7 @@ #. Template: AgentTicketZoom msgid "Drafts" -msgstr "" +msgstr "Borradores" #. Template: AgentTicketZoom msgid "by" @@ -8864,7 +8864,7 @@ #. Template: Invalid msgid "" "This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" +msgstr "Esta característica es parte de %s. Por favor contacta con nosotros en %s para una actualización." #. Template: Invalid msgid "Please re-install %s package in order to display this article." @@ -9164,7 +9164,7 @@ #. Template: CustomerTicketSearch msgid "Save Search as Template?" -msgstr "" +msgstr "¿Guardar la búsqueda como una plantilla?" #. Template: CustomerTicketSearch msgid "Save as Template?" @@ -9258,25 +9258,29 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" -msgstr "" +msgstr "Actualizar borrador" #. Template: DraftButtons msgid "Save as new draft" -msgstr "" +msgstr "Guardar como nuevo borrador" #. Template: DraftNotifications msgid "You have loaded the draft \"%s\"." -msgstr "" +msgstr "Ha cargado el borrador \"%s\"." #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". You last changed it %s." -msgstr "" +msgstr "Ha cargado el borrador \"%s\". La ultima vez que lo cambiaste %s." #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". It was last changed %s by %s." -msgstr "" +msgstr "Ha cargado el borrador \"%s\". Fue cambiado por última vez %s por %s." #. Template: DraftNotifications msgid "" @@ -10192,7 +10196,7 @@ #. JS Template: FormDraftAddDialog msgid "Draft title" -msgstr "" +msgstr "Título del borrador" #. JS Template: ArticleViewSettingsDialog msgid "Article display" @@ -10211,6 +10215,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11013,27 +11021,27 @@ #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 minute" -msgstr "" +msgstr "1 minuto" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 minutes" -msgstr "" +msgstr "2 minutos" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 minutes" -msgstr "" +msgstr "3 minutos" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 minutes" -msgstr "" +msgstr "4 minutos" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "5 minutes" -msgstr "" +msgstr "5 minutos" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm @@ -11048,77 +11056,77 @@ #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "30 minutes" -msgstr "" +msgstr "30 minutos" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 hour" -msgstr "" +msgstr "1 hora" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 hours" -msgstr "" +msgstr "2 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 hours" -msgstr "" +msgstr "3 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 hours" -msgstr "" +msgstr "4 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "5 hours" -msgstr "" +msgstr "5 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "6 hours" -msgstr "" +msgstr "6 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "12 hours" -msgstr "" +msgstr "12 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "18 hours" -msgstr "" +msgstr "18 horas" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 day" -msgstr "" +msgstr "1 día" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 days" -msgstr "" +msgstr "2 días" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 days" -msgstr "" +msgstr "3 días" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 days" -msgstr "" +msgstr "4 días" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "6 days" -msgstr "" +msgstr "6 días" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 week" -msgstr "" +msgstr "1 semana" #. Perl Module: Kernel/Modules/AdminGenericInterfaceInvokerDefault.pm msgid "Need InvokerType" @@ -11323,6 +11331,12 @@ msgstr "¡Cuenta de correo añadida!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Despachar por el campo Para: del correo electrónico" @@ -11476,6 +11490,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11488,6 +11506,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -11881,7 +11903,7 @@ #. Perl Module: Kernel/Modules/AdminRoleUser.pm msgid "Role" -msgstr "" +msgstr "Rol" #. Perl Module: Kernel/Modules/AdminRoleUser.pm msgid "Change Role Relations for Agent" @@ -11989,7 +12011,7 @@ #. Perl Module: Kernel/Modules/AdminSystemConfiguration.pm msgid "The following settings could not be found: %s" -msgstr "" +msgstr "La siguiente configuración no se pudo encontrar: %s" #. Perl Module: Kernel/Modules/AdminSystemConfiguration.pm msgid "Import not allowed!" @@ -12107,11 +12129,11 @@ #. Perl Module: Kernel/Modules/AdminTemplateAttachment.pm msgid "Change Attachment Relations for Template" -msgstr "Cambiar las relaciones de Adjuntos de la Plantilla" +msgstr "Cambiar las relaciones de Archivos adjuntos para Plantilla" #. Perl Module: Kernel/Modules/AdminTemplateAttachment.pm msgid "Change Template Relations for Attachment" -msgstr "Cambiar las relaciones de Plantillas del Adunto" +msgstr "Cambiar las relaciones de Plantilla para Archivos adjuntos" #. Perl Module: Kernel/Modules/AdminType.pm msgid "Need Type!" @@ -12271,7 +12293,7 @@ #. Perl Module: Kernel/Modules/AgentAppointmentList.pm msgid "+%s more" -msgstr "" +msgstr "+%smás" #. Perl Module: Kernel/Modules/AgentCustomerSearch.pm msgid "Customer History" @@ -12343,11 +12365,11 @@ #. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "Param Group is required!" -msgstr "Se requiere Grupo de parámetros!" +msgstr "¡Se requiere Grupo de parámetros!" #. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "Updated user preferences" -msgstr "" +msgstr "Preferencias de usuario actualizadas" #. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to deploy your changes." @@ -12358,10 +12380,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -12423,7 +12441,7 @@ #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Loading draft failed!" -msgstr "" +msgstr "¡Error al cargar el borrador!" #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Sorry, you need to be the ticket owner to perform this action." @@ -12439,7 +12457,7 @@ #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Draft name is required!" -msgstr "" +msgstr "¡Se requiere el nombre del borrador!" #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "FormDraft name %s is already in use!" @@ -12886,11 +12904,11 @@ #. Perl Module: Kernel/Modules/AgentTicketSearch.pm msgid "CustomerID (complex search)" -msgstr "Identificación del cliente (búsqueda compleja)" +msgstr "ID del cliente (búsqueda compleja)" #. Perl Module: Kernel/Modules/AgentTicketSearch.pm msgid "CustomerID (exact match)" -msgstr "Identificación del cliente (coincidencia exacta)" +msgstr "ID del cliente (coincidencia exacta)" #. Perl Module: Kernel/Modules/AgentTicketSearch.pm msgid "Invalid Users" @@ -12990,15 +13008,15 @@ #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "Note Added (Customer)" -msgstr "Nota añadida (cliente)" +msgstr "Nota añadida (Cliente)" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "SMS Added" -msgstr "" +msgstr "SMS Añadido" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "SMS Added (Customer)" -msgstr "" +msgstr "SMS añadido (Cliente)" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "State Updated" @@ -13226,7 +13244,7 @@ #. Perl Module: Kernel/Modules/CustomerTicketOverview.pm msgid "Need CustomerID!" -msgstr "¡Se necesita la Identificación del cliente!" +msgstr "¡Se necesita la ID del cliente!" #. Perl Module: Kernel/Modules/CustomerTicketOverview.pm msgid "My Tickets" @@ -13502,7 +13520,7 @@ #. Perl Module: Kernel/Output/HTML/ArticleAction/GetHelpLink.pm msgid "Contact us at sales@otrs.com" -msgstr "" +msgstr "Contactamos en sales@otrs.com" #. Perl Module: Kernel/Output/HTML/ArticleAction/GetHelpLink.pm msgid "Get Help" @@ -13901,8 +13919,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "El periodo de mantenimiento de sistema comenzará a las:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14748,6 +14767,19 @@ msgstr "El ajuste innodb_log_file_size debe ser de al menos 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Tamaño Máximo de la Consulta" @@ -14786,6 +14818,11 @@ msgstr "Tablas con diferente motor de almacenamiento que la de por defecto fueron encontradas." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x o mayor es requerida." @@ -14816,6 +14853,18 @@ msgstr "El ajuste NLS_DATE_FORMAT Comprobar SQL" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "El ajuste client_encoding necesita ser UNICODE o UTF8." @@ -14836,6 +14885,18 @@ msgstr "El ajuste DateStyle necesita ser ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15494,6 +15555,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -15535,7 +15608,7 @@ #. Perl Module: Kernel/System/Ticket.pm msgid "Reset of unlock time." -msgstr "Reajuste del tiempo desbloqueado." +msgstr "Reajuste del tiempo de desbloqueo." #. Perl Module: Kernel/System/Web/InterfaceAgent.pm msgid "Login failed! Your user name or password was entered incorrectly." @@ -15968,7 +16041,7 @@ #. Database XML Definition: scripts/database/otrs-initial_insert.xml msgid "Ticket new note notification" -msgstr "Notificación de nueva nota de ticket" +msgstr "Notificación de nueva nota en ticket" #. Database XML Definition: scripts/database/otrs-initial_insert.xml msgid "Ticket queue update notification" @@ -16056,11 +16129,11 @@ #. JS File: Core.Agent.Admin.Attachment msgid "Delete this Attachment" -msgstr "" +msgstr "Borrar este Archivo adjunto" #. JS File: Core.Agent.Admin.Attachment msgid "Deleting attachment..." -msgstr "" +msgstr "Borrando archivo adjunto..." #. JS File: Core.Agent.Admin.Attachment msgid "" @@ -16430,7 +16503,7 @@ #. JS File: Core.Agent.Admin.SystemConfiguration msgid "Reset option is required!" -msgstr "" +msgstr "¡Se requiere la opción de reinicio!" #. JS File: Core.Agent.Admin.SystemConfiguration msgid "" @@ -16660,19 +16733,19 @@ #. JS File: Core.Agent.TicketFormDraft msgid "Add new draft" -msgstr "" +msgstr "Añadir nuevo borrador" #. JS File: Core.Agent.TicketFormDraft msgid "Delete draft" -msgstr "" +msgstr "Borrar borrador" #. JS File: Core.Agent.TicketFormDraft msgid "There are no more drafts available." -msgstr "" +msgstr "No hay más borradores disponibles." #. JS File: Core.Agent.TicketFormDraft msgid "It was not possible to delete this draft." -msgstr "" +msgstr "No fue posible eliminar este borrador." #. JS File: Core.Agent.TicketZoom msgid "Article filter" @@ -16695,11 +16768,6 @@ msgstr "Por favor apague el Modo Compatibilidad en Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Esta función es parte de %s. Por favor contacte con nosotros en %s para una mejora." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -17012,7 +17080,7 @@ #. SysConfig msgid "10 Minutes" -msgstr "" +msgstr "10 Minutos" #. SysConfig msgid "100 (Expert)" @@ -17363,7 +17431,7 @@ #. SysConfig msgid "All attachments (OTRS Business Solution™)" -msgstr "" +msgstr "Todos los archivos adjuntos (OTRS Business Solution™)" #. SysConfig msgid "All customer users of a CustomerID" @@ -17690,7 +17758,7 @@ #. SysConfig msgid "Attachments ↔ Templates" -msgstr "" +msgstr "Archivos adjuntos ↔ Plantillas" #. SysConfig msgid "Auto Responses ↔ Queues" @@ -17903,7 +17971,7 @@ #. SysConfig msgid "Changed title from \"%s\" to \"%s\"." -msgstr "" +msgstr "Se cambió el título de \"%s\" a \"%s\"." #. SysConfig msgid "Changed type from \"%s\" (%s) to \"%s\" (%s)." @@ -18243,7 +18311,7 @@ #. SysConfig msgid "Create and manage attachments." -msgstr "Crea y gestiona Archivos adjuntos." +msgstr "Crear y gestionar archivos adjuntos." #. SysConfig msgid "Create and manage calendars." @@ -18463,7 +18531,7 @@ #. SysConfig msgid "Customers ↔ Groups" -msgstr "" +msgstr "Clientes ↔ Grupos" #. SysConfig msgid "" @@ -21450,7 +21518,7 @@ #. SysConfig msgid "Enter your shared secret to enable two factor authentication." -msgstr "" +msgstr "Ingrese su secreto compartido para habilitar la autenticación de dos factores." #. SysConfig msgid "Escalated Tickets" @@ -22425,6 +22493,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "Último asunto del cliente" @@ -22474,7 +22546,7 @@ #. SysConfig msgid "Link attachments to templates." -msgstr "Crea enlace de Adjuntos a Plantillas" +msgstr "Crea enlace de Archivo adjuntos a Plantillas." #. SysConfig msgid "Link customer users to customers." @@ -22629,7 +22701,7 @@ #. SysConfig msgid "Logged-In Users" -msgstr "" +msgstr "Usuarios conectados" #. SysConfig msgid "Logout of customer panel." @@ -22828,7 +22900,7 @@ #. SysConfig msgid "Merged Ticket to ." -msgstr "Combinar Ticket con ." +msgstr "Fusionar Ticket con ." #. SysConfig msgid "Minute" @@ -23126,7 +23198,7 @@ #. SysConfig msgid "Open an external link!" -msgstr "" +msgstr "¡Abrir un enlace externo!" #. SysConfig msgid "Open tickets (customer user)" @@ -23196,7 +23268,7 @@ #. SysConfig msgid "Overview of all escalated tickets." -msgstr "" +msgstr "Vista general de todos los tickets escalados." #. SysConfig msgid "Overview of all open Tickets." @@ -23950,7 +24022,7 @@ #. SysConfig msgid "Running Process Tickets" -msgstr "Corriendo Tickets de Proceso" +msgstr "Tickets de Proceso en ejecución" #. SysConfig msgid "" @@ -24061,7 +24133,7 @@ #. SysConfig msgid "Select the main interface language." -msgstr "" +msgstr "Selecciona el idioma principal de la interfaz." #. SysConfig msgid "" @@ -24082,7 +24154,7 @@ #. SysConfig msgid "Select your preferred layout for the software." -msgstr "" +msgstr "Seleccione su diseño preferido para el software." #. SysConfig msgid "Select your preferred theme for OTRS." @@ -26413,7 +26485,7 @@ #. SysConfig msgid "View all attachments of the current ticket" -msgstr "" +msgstr "Ver todos los archivos adjuntos del ticket actual" #. SysConfig msgid "View performance benchmark results." diff -Nru otrs2-6.0.4/i18n/otrs/otrs.et.po otrs2-6.0.5/i18n/otrs/otrs.et.po --- otrs2-6.0.4/i18n/otrs/otrs.et.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.et.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Estonian (http://www.transifex.com/otrs/OTRS/language/et/)\n" "MIME-Version: 1.0\n" @@ -7780,8 +7780,7 @@ msgstr "Eelistused" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9230,10 @@ msgid "Expand" msgstr "Laienda" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10187,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11303,12 @@ msgstr "E-posti konto lisatud!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Jaotamine To: päiserea järgi." @@ -11449,6 +11462,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11478,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12352,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,7 +13891,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14721,6 +14739,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14759,6 +14790,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14789,6 +14825,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14809,6 +14857,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16740,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22465,10 @@ msgstr "Suur" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.fa.po otrs2-6.0.5/i18n/otrs/otrs.fa.po --- otrs2-6.0.4/i18n/otrs/otrs.fa.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.fa.po 2018-02-05 23:46:54.000000000 +0000 @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Persian (http://www.transifex.com/otrs/OTRS/language/fa/)\n" "MIME-Version: 1.0\n" @@ -7782,8 +7782,7 @@ msgstr "تنظیمات" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9233,6 +9232,10 @@ msgid "Expand" msgstr "گسترش" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10186,6 +10189,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11298,6 +11305,12 @@ msgstr "حساب ایمیل افزوده شد." #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "ارسال با پست الکترونیکی به:فیلد" @@ -11451,6 +11464,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11463,6 +11480,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12333,10 +12354,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13876,8 +13893,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "دوره تعمیر و نگهداری سیستم شروع خواهد شد در: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14723,6 +14741,19 @@ msgstr "innodb_log_file_size تنظیم باید حداقل 256 مگابایت باشد." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "حداکثر اندازه پرس و جو" @@ -14761,6 +14792,11 @@ msgstr "جداول با یک موتور ذخیره سازی متفاوت با موتور به طور پیش فرض پیدا شد." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "5.x خروجی زیر و یا بالاتر مورد نیاز است." @@ -14791,6 +14827,18 @@ msgstr "NLS_DATE_FORMAT تنظیم SQL بررسی" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "تنظیم client_encoding نیاز به UNICODE یا UTF8." @@ -14811,6 +14859,18 @@ msgstr "تنظیم DateStyle نیاز به ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15469,6 +15529,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16670,11 +16742,6 @@ msgstr "لطفا حالت سازگاری در اینترنت اکسپلورر را خاموش کنید !" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "این ویژگی بخشی از است %s . لطفا با ما تماس بگیرید %s برای ارتقاء." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22400,6 +22467,10 @@ msgstr "بزرگ" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "آخرین موضوع مشتری" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.fi.po otrs2-6.0.5/i18n/otrs/otrs.fi.po --- otrs2-6.0.4/i18n/otrs/otrs.fi.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.fi.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Finnish (http://www.transifex.com/otrs/OTRS/language/fi/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Käyttäjäasetukset" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Laajenna" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "Sähköpostitili lisätty!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Osoittaminen perustuen sähköpostin Vastaanottaja: kenttään." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Suuri" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.fr_CA.po otrs2-6.0.5/i18n/otrs/otrs.fr_CA.po --- otrs2-6.0.4/i18n/otrs/otrs.fr_CA.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.fr_CA.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: French (Canada) (http://www.transifex.com/otrs/OTRS/language/fr_CA/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Préférences" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Développer" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "Compte de courrier électronique ajouté." #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Classement des courriels selon le champ « À : »" @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Grand (L)" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.fr.po otrs2-6.0.5/i18n/otrs/otrs.fr.po --- otrs2-6.0.4/i18n/otrs/otrs.fr.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.fr.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,7 +5,7 @@ # andre1217 , 2014 # Arnaud BECKER , 2017 # Egareg JAOUEN , 2015,2017 -# EricLF44 , 2016 +# EricLF44 , 2016,2018 # En Feng Wu , 2016 # EricLF44 , 2016 # François Delgrange, 2017 @@ -30,8 +30,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: French (http://www.transifex.com/otrs/OTRS/language/fr/)\n" "MIME-Version: 1.0\n" @@ -205,7 +205,7 @@ #. Template: AdminACLEdit msgid "Edit ACL Information" -msgstr "" +msgstr "Editer les informations ACL" #. Template: AdminACLEdit msgid "Name" @@ -217,7 +217,7 @@ #. Template: AdminACLEdit msgid "Edit ACL Structure" -msgstr "" +msgstr "Editer la structure ACL" #. Template: AdminACLEdit msgid "Save ACL" @@ -251,7 +251,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Calendar Management" -msgstr "" +msgstr "Gestion du calendrier" #. Template: AdminAppointmentCalendarManage msgid "Add Calendar" @@ -275,7 +275,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Import Appointments" -msgstr "" +msgstr "Importer des rendez-vous" #. Template: AdminAppointmentCalendarManage msgid "Calendar Import" @@ -286,15 +286,15 @@ "Here you can upload a configuration file to import a calendar to your " "system. The file needs to be in .yml format as exported by calendar " "management module." -msgstr "" +msgstr "Ici vous pouvez téléverser un fichier de configuration pour importer un calendrier vers votre système. Le fichier a besoin d'être en format \"yml\" comme exporté par le module de gestion de processus." #. Template: AdminAppointmentCalendarManage msgid "Overwrite existing entities" -msgstr "" +msgstr "Écraser les entités existantes" #. Template: AdminAppointmentCalendarManage msgid "Upload calendar configuration" -msgstr "" +msgstr "Téléverser la configuration du calendrier" #. Template: AdminAppointmentCalendarManage msgid "Import Calendar" @@ -302,7 +302,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Filter for calendars" -msgstr "" +msgstr "Filtre pour calendriers" #. Template: AdminAppointmentCalendarManage msgid "" @@ -7805,8 +7805,7 @@ msgstr "Préférences" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9256,6 +9255,10 @@ msgid "Expand" msgstr "Etendre" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10209,6 +10212,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11321,6 +11328,12 @@ msgstr "Compte de messagerie ajouté !" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Répartition par le champ 'À:' de l'e-mail" @@ -11474,6 +11487,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11486,6 +11503,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12356,10 +12377,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13899,7 +13916,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14746,6 +14764,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14784,6 +14815,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14814,6 +14850,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14834,6 +14882,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15492,6 +15552,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16693,11 +16765,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22423,6 +22490,10 @@ msgstr "Grand" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.gl.po otrs2-6.0.5/i18n/otrs/otrs.gl.po --- otrs2-6.0.4/i18n/otrs/otrs.gl.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.gl.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Galician (http://www.transifex.com/otrs/OTRS/language/gl/)\n" "MIME-Version: 1.0\n" @@ -7780,8 +7780,7 @@ msgstr "Preferencias" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9230,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10187,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11303,12 @@ msgstr "Engadiuse a conta de correo!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Enviando por email A: campo" @@ -11449,6 +11462,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11478,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12352,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,8 +13891,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Un período de mantemento do sistema comezará en:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14721,6 +14739,19 @@ msgstr "A opción innodb_log_file_size ha de ter, como mínimo, 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Tamaño Máximo da Consulta" @@ -14759,6 +14790,11 @@ msgstr "Atopáronse táboas cun motor de almacenamento disinto do predeterminado." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Requírese MySQL 5.x ou superior." @@ -14789,6 +14825,18 @@ msgstr "Axuste Comprobación SQL NLS_DATE_FORMAT" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "O axuste client_encoding ten que ser UNICODE ou UTF8." @@ -14809,6 +14857,18 @@ msgstr "O axuste DateStyle ten que ser ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16740,6 @@ msgstr "Por favor apague o Modo de Compatibilidade en Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Esta función é parte de %s. Por favor contecte con nos en %s para unha mellora." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22465,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.he.po otrs2-6.0.5/i18n/otrs/otrs.he.po --- otrs2-6.0.4/i18n/otrs/otrs.he.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.he.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Hebrew (http://www.transifex.com/otrs/OTRS/language/he/)\n" "MIME-Version: 1.0\n" @@ -7780,8 +7780,7 @@ msgstr "העדפות" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9230,10 @@ msgid "Expand" msgstr "הרחב" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10187,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11303,12 @@ msgstr "חשבון דוא\"ל נוסף!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "שליחה לפי שדה דוא\"ל אל." @@ -11449,6 +11462,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11478,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12352,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,7 +13891,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14721,6 +14739,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14759,6 +14790,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14789,6 +14825,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14809,6 +14857,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16740,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22465,10 @@ msgstr "גדול" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.hi.po otrs2-6.0.5/i18n/otrs/otrs.hi.po --- otrs2-6.0.4/i18n/otrs/otrs.hi.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.hi.po 2018-02-05 23:46:54.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Hindi (http://www.transifex.com/otrs/OTRS/language/hi/)\n" "MIME-Version: 1.0\n" @@ -7778,8 +7778,7 @@ msgstr "वरीयताएं" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9229,6 +9228,10 @@ msgid "Expand" msgstr "विस्तार" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10182,6 +10185,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11294,6 +11301,12 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "ईमेल से भेजने के लिए :क्षेत्र" @@ -11447,6 +11460,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11459,6 +11476,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12329,10 +12350,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13872,7 +13889,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14719,6 +14737,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14757,6 +14788,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14787,6 +14823,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14807,6 +14855,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15465,6 +15525,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16666,11 +16738,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22396,6 +22463,10 @@ msgstr "बड़ा" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.hr.po otrs2-6.0.5/i18n/otrs/otrs.hr.po --- otrs2-6.0.4/i18n/otrs/otrs.hr.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.hr.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Croatian (http://www.transifex.com/otrs/OTRS/language/hr/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Postavke" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Proširi" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Otprema E-pošte za: Polje." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Krupno" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.hu.po otrs2-6.0.5/i18n/otrs/otrs.hu.po --- otrs2-6.0.4/i18n/otrs/otrs.hu.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.hu.po 2018-02-05 23:46:54.000000000 +0000 @@ -2,7 +2,7 @@ # Translators: # Arnold Mátyási , 2009 # Áron Ujvári , 2007 -# Balázs Úr , 2014-2017 +# Balázs Úr , 2014-2018 # Csaba Németh , 2013 # Flóra Szabó , 2006 # Gábor Gáncs , 2006 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Hungarian (http://www.transifex.com/otrs/OTRS/language/hu/)\n" "MIME-Version: 1.0\n" @@ -4258,7 +4258,7 @@ #. Template: AdminOTRSBusinessInstalled msgid "%s not Correctly Installed" -msgstr "%s nincs helyesen telepítve" +msgstr "Az %s nincs helyesen telepítve" #. Template: AdminOTRSBusinessInstalled msgid "" @@ -4303,11 +4303,11 @@ #. Template: AdminOTRSBusinessInstalled msgid "%s Correctly Deployed" -msgstr "Az %s helyesen üzembe állítva" +msgstr "Az %s megfelelően üzembe lett állítva" #. Template: AdminOTRSBusinessInstalled msgid "Congratulations, your %s is correctly installed and up to date!" -msgstr "Gratulálunk, az %s helyesen telepített van és naprakész!" +msgstr "Gratulálunk, az %s helyesen van telepítve és naprakész!" #. Template: AdminOTRSBusinessNotInstalled msgid "Go to the OTRS customer portal" @@ -4680,7 +4680,7 @@ #. Template: AdminPackageManager msgid "Package not correctly deployed! Please reinstall the package." -msgstr "A csomag nincs rendesen üzembe állítva! Telepítse újra a csomagot." +msgstr "A csomag nincs megfelelően üzembe állítva! Telepítse újra a csomagot." #. Template: AdminPackageManager msgid "Reinstall" @@ -7788,9 +7788,8 @@ msgstr "Beállítások" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." -msgstr "Figyelmeztetés! Jelenleg nem a saját beállításait szerkeszti, hanem %s beállításait." +msgid "Please note: you're currently editing the preferences of %s." +msgstr "" #. Template: AgentPreferences msgid "Go back to editing this agent" @@ -8357,7 +8356,7 @@ #. Template: AgentTicketHistory msgid "CreateTime" -msgstr "Létrehozás ideje (CreateTime)" +msgstr "Létrehozás ideje" #. Template: AgentTicketHistory msgid "Article" @@ -9239,6 +9238,10 @@ msgid "Expand" msgstr "Kinyitás" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "Piszkozat frissítése" @@ -9253,11 +9256,11 @@ #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". You last changed it %s." -msgstr "Betöltötte a következő piszkozatot: „%s”. Utoljára %s változtatta meg." +msgstr "Betöltötte a következő piszkozatot: „%s”. Utoljára %s-kor változtatta meg." #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". It was last changed %s by %s." -msgstr "Betöltötte a következő piszkozatot: „%s”. Utoljára %s változtatta meg %s." +msgstr "Betöltötte a következő piszkozatot: „%s”. Utoljára %s-kor %s változtatta meg." #. Template: DraftNotifications msgid "" @@ -10192,6 +10195,10 @@ msgstr "Betöltés, kérem várjon…" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "Kattintson a fájlok kijelöléséhez, vagy egyszerűen dobja ide azokat." @@ -11304,6 +11311,12 @@ msgstr "Levelezőfiók hozzáadva!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Szétválogatás az e-mail címzett mezője szerint." @@ -11365,7 +11378,7 @@ #. Perl Module: Kernel/Modules/AdminOTRSBusiness.pm msgid "%s was correctly reinstalled." -msgstr "Az %s rendben újra lett telepítve." +msgstr "Az %s megfelelően újra lett telepítve." #. Perl Module: Kernel/Modules/AdminOTRSBusiness.pm msgid "There was a problem reinstalling %s." @@ -11381,7 +11394,7 @@ #. Perl Module: Kernel/Modules/AdminOTRSBusiness.pm msgid "%s was correctly uninstalled." -msgstr "Az %s rendben el lett távolítva." +msgstr "Az %s megfelelően el lett távolítva." #. Perl Module: Kernel/Modules/AdminOTRSBusiness.pm msgid "There was a problem uninstalling %s." @@ -11457,8 +11470,12 @@ msgstr "Telepítve" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" -msgstr "A csomag sikeresen frissítve" +msgstr "A csomag megfelelően frissítve" #. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package was already updated" @@ -11466,7 +11483,11 @@ #. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Dependency installed correctly" -msgstr "A függőség sikeresen telepítve" +msgstr "A függőség megfelelően telepítve" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" @@ -12339,10 +12360,6 @@ msgstr "A beállítás nem található!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "Ez a szolgáltatás az %s része. A frissítéshez lépjen velünk kapcsolatba a következő címen: %s." - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "A rendszer nem tudta visszaállítani a beállítást!" @@ -13403,7 +13420,7 @@ #. Perl Module: Kernel/Modules/Installer.pm msgid "Wrong database collation (%s is %s, but it needs to be utf8)." -msgstr "" +msgstr "Hibás adatbázis egyeztetés (a %s értéke %s, de utf8 értékűnek kell lennie)." #. Perl Module: Kernel/Modules/PublicCalendar.pm msgid "No %s!" @@ -13882,8 +13899,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Egy rendszerkarbantartás időszak fog kezdődni ekkor: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "Egy rendszerkarbantartás időszak fog kezdődni ekkor: %s, és várható befejezése: %s" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14729,6 +14747,19 @@ msgstr "Az innodb_log_file_size beállításnak legalább 256 MB értékűnek kell lennie." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Legnagyobb lekérdezési méret" @@ -14767,6 +14798,11 @@ msgstr "Az alapértelmezett motortól eltérő motorral rendelkező táblák találhatók." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x vagy újabb szükséges." @@ -14797,6 +14833,18 @@ msgstr "NLS_DATE_FORMAT beállítás SQL ellenőrzés" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "A client_encoding beállításnak UNICODE vagy UTF8 értékűnek kell lennie." @@ -14817,6 +14865,18 @@ msgstr "A DateStyle beállításnak ISO értékűnek kell lennie." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "PostgreSQL 9.2 vagy újabb szükséges." @@ -15135,7 +15195,7 @@ #. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/OTRS/PackageDeployment.pm msgid "Some packages are not correctly installed." -msgstr "Néhány csomag nincs helyesen telepítve." +msgstr "Néhány csomag nincs megfelelően telepítve." #. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/OTRS/PackageDeployment.pm @@ -15475,6 +15535,18 @@ msgstr "Hiányzó %s kulcs!" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "Érvénytelen beállítás: %s" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "Nem sikerült egyesíteni a beállítások értékeit Perl kivonatba." + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "Nem lehet zárolni az üzembe állítást a következő felhasználó-azonosítónál: „%s”!" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "Összes beállítás" @@ -16676,11 +16748,6 @@ msgstr "Kapcsolja ki a kompatibilitási módot az Internet Explorerben!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Ez a szolgáltatás az %s része. A frissítéshez lépjen velünk kapcsolatba a következő címen: %s." - -#. JS File: Core.Agent msgid "Find out more" msgstr "Tudjon meg többet" @@ -18082,7 +18149,7 @@ #. SysConfig msgid "Communication log limit per page for Communication Log Overview." -msgstr "" +msgstr "Oldalankénti kommunikációs napló korlát a kommunikációs napló áttekintőnél." #. SysConfig msgid "CommunicationLog Overview Limit" @@ -21101,7 +21168,7 @@ #. SysConfig msgid "Dynamic fields limit per page for Dynamic Fields Overview." -msgstr "" +msgstr "Oldalankénti dinamikus mező korlát a dinamikus mezők áttekintőnél." #. SysConfig msgid "" @@ -22406,6 +22473,10 @@ msgstr "Nagy" #. SysConfig +msgid "Last Screen Overview" +msgstr "Utolsó képernyő áttekintője" + +#. SysConfig msgid "Last customer subject" msgstr "Legutóbbi ügyféltárgy" @@ -26171,15 +26242,15 @@ #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Medium\"." -msgstr "" +msgstr "Oldalankénti jegykorlát a „Közepes” jegyáttekintéshez." #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Preview\"." -msgstr "" +msgstr "Oldalankénti jegykorlát az „Előnézet” jegyáttekintéshez." #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Small\"." -msgstr "" +msgstr "Oldalankénti jegykorlát a „Kis” jegyáttekintéshez." #. SysConfig msgid "Ticket notifications" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.id.po otrs2-6.0.5/i18n/otrs/otrs.id.po --- otrs2-6.0.4/i18n/otrs/otrs.id.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.id.po 2018-02-05 23:46:54.000000000 +0000 @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Indonesian (http://www.transifex.com/otrs/OTRS/language/id/)\n" "MIME-Version: 1.0\n" @@ -7785,8 +7785,7 @@ msgstr "Pilihan" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9236,6 +9235,10 @@ msgid "Expand" msgstr "Perluas" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10189,6 +10192,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11301,6 +11308,12 @@ msgstr "Akun surat telah di tambahkan!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Pengiriman melalui email Kepada: bidang." @@ -11454,6 +11467,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11466,6 +11483,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12336,10 +12357,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13879,8 +13896,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "A system maintenance period will start at:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14726,6 +14744,19 @@ msgstr "Pengaturan innodb_log_file_size harus minimal 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maksimum Ukuran Query" @@ -14764,6 +14795,11 @@ msgstr "Tabel dengan mesin penyimpanan yang berbeda dari mesin yang ditemukan." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x atau yang lebih tinggi diperlukan." @@ -14794,6 +14830,18 @@ msgstr "Pengaturan SQL check NLS_DATE_FORMAT" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Pengaturan client_encoding perlu UNICODE atau UTF 8." @@ -14814,6 +14862,18 @@ msgstr "Pengaturan DateStyle perlu ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15472,6 +15532,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16673,11 +16745,6 @@ msgstr "Silahkan matikan metode Compatibillity di Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Fitur ini merupakan salah satu dari %s. Silahkan hubungi kami di %s untuk memperbarui" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22403,6 +22470,10 @@ msgstr "Besar" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "subjek pelanggan terakhir" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.it.po otrs2-6.0.5/i18n/otrs/otrs.it.po --- otrs2-6.0.4/i18n/otrs/otrs.it.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.it.po 2018-02-05 23:46:54.000000000 +0000 @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Italian (http://www.transifex.com/otrs/OTRS/language/it/)\n" "MIME-Version: 1.0\n" @@ -7791,8 +7791,7 @@ msgstr "Preferenze" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9242,6 +9241,10 @@ msgid "Expand" msgstr "Espandi" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10195,6 +10198,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11307,6 +11314,12 @@ msgstr "Account di posta aggiunto!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Smistamento in base al campo A:." @@ -11460,6 +11473,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11472,6 +11489,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12342,10 +12363,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13885,8 +13902,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Un periodo di manutenzione del sistema inizierà alle:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14732,6 +14750,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Dimensione Massima della Query" @@ -14770,6 +14801,11 @@ msgstr "Sono state trovate tabelle che hanno una storage engine diversa dal default del database." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "È richiesto l'uso di MySQL 5.x o versioni superiori." @@ -14800,6 +14836,18 @@ msgstr "Controllo impostazione SQL NLS_DATE_FORMAT" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Il parametro client_encoding deve essere UNICODE o UTF8." @@ -14820,6 +14868,18 @@ msgstr "Il parametro DateStyle deve essere di tipo ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15478,6 +15538,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16679,11 +16751,6 @@ msgstr "Disattiva la modalità di compatibilità in Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Questa funzionalità è parte di %s. Contattaci su %s per un aggiornamento." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22409,6 +22476,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.ja.po otrs2-6.0.5/i18n/otrs/otrs.ja.po --- otrs2-6.0.4/i18n/otrs/otrs.ja.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.ja.po 2018-02-05 23:46:54.000000000 +0000 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Japanese (http://www.transifex.com/otrs/OTRS/language/ja/)\n" "MIME-Version: 1.0\n" @@ -7788,8 +7788,7 @@ msgstr "個人設定" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9239,6 +9238,10 @@ msgid "Expand" msgstr "展開" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "下書きを更新" @@ -10192,6 +10195,10 @@ msgstr "読み込み中です。お待ち下さい..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "クリックしてファイルを選択するか、ここにドロップして下さい。" @@ -11304,6 +11311,12 @@ msgstr "メールアカウントを追加しました。" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "メールの宛先で振り分け" @@ -11457,6 +11470,10 @@ msgstr "インストールしました" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "パッケージの更新は正常に終了しました。" @@ -11469,6 +11486,10 @@ msgstr "依存するモジュールは正常にインストールされました。" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "このパッケージとの依存関係が循環状態にあります。" @@ -12339,10 +12360,6 @@ msgstr "設定が見つかりません!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13882,8 +13899,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "次の時刻からシステムメンテナンスが行われます: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14729,6 +14747,19 @@ msgstr "innodb_log_file_size 設定は最低でも256MBにする必要があります。" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "最大クエリサイズ" @@ -14767,6 +14798,11 @@ msgstr "デフォルトのストレージエンジンと違うストレージエンジン設定の Table が見つかりました" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "動作要件は MySQL 5.x 以上になっています " @@ -14797,6 +14833,18 @@ msgstr "NLS_DATE_FORMAT 設定 SQL チェック" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr " client_encodingはユニコードまたはUTF8 に設定する必要があります" @@ -14817,6 +14865,18 @@ msgstr "日付の設定はISOフォーマットに従ってください" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15475,6 +15535,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "全ての設定" @@ -16676,11 +16748,6 @@ msgstr "Internet Explorerの互換モードを無効にして下さい。" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "この機能は %s の一部です。%s の更新についてサポートまでお問い合わせください。" - -#. JS File: Core.Agent msgid "Find out more" msgstr "詳細を参照" @@ -22406,6 +22473,10 @@ msgstr "大" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.lt.po otrs2-6.0.5/i18n/otrs/otrs.lt.po --- otrs2-6.0.4/i18n/otrs/otrs.lt.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.lt.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Lithuanian (http://www.transifex.com/otrs/OTRS/language/lt/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Asmeniniai nustatymai" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Išplėsti" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Išsiuntinėti pagal el. pašto Kam: laukelį." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Didelis" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.lv.po otrs2-6.0.5/i18n/otrs/otrs.lv.po --- otrs2-6.0.4/i18n/otrs/otrs.lv.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.lv.po 2018-02-05 23:46:54.000000000 +0000 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Latvian (http://www.transifex.com/otrs/OTRS/language/lv/)\n" "MIME-Version: 1.0\n" @@ -7779,8 +7779,7 @@ msgstr "Iestatījumi" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9230,6 +9229,10 @@ msgid "Expand" msgstr "Izvērst" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10183,6 +10186,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11295,6 +11302,12 @@ msgstr "Pasta konts pievienots!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Pārvietot pēc Kam: lauka pazīmes e-pastā." @@ -11448,6 +11461,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11460,6 +11477,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12330,10 +12351,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13873,7 +13890,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14720,6 +14738,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14758,6 +14789,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x vai augstāks ir nepieciešams." @@ -14788,6 +14824,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Iestatījumam client_encoding jābūt UNICODE vai UTF8." @@ -14808,6 +14856,18 @@ msgstr "Iestatījumam DateStyle jābūt ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15466,6 +15526,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16667,11 +16739,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22397,6 +22464,10 @@ msgstr "Liels" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.ms.po otrs2-6.0.5/i18n/otrs/otrs.ms.po --- otrs2-6.0.4/i18n/otrs/otrs.ms.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.ms.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Malay (http://www.transifex.com/otrs/OTRS/language/ms/)\n" "MIME-Version: 1.0\n" @@ -7780,8 +7780,7 @@ msgstr "Pilihan" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9230,10 @@ msgid "Expand" msgstr "Kembang" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10187,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11303,12 @@ msgstr "Akaun emel ditambah!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Menghantar oleh emel kepada: bidang." @@ -11449,6 +11462,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11478,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12352,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,8 +13891,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Tempoh penyelenggaraan sistem akan bermula pada:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14721,6 +14739,19 @@ msgstr "Tetapan saiz_fail_innodb haruslah sekurang-kurangnya 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Saiz Query Maksimum" @@ -14759,6 +14790,11 @@ msgstr "Jadual dengan enjin simpanan berlainan daripada enjin default dijumpai." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x atau lebih tinggi diperlukan." @@ -14789,6 +14825,18 @@ msgstr "Tetapan NLS_DATE_FORMAT Periksa SQL" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Tetapan client_encoding haruslah UNICODE atau UTF8 " @@ -14809,6 +14857,18 @@ msgstr "Tetapan JenisTarikh haruslah ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16740,6 @@ msgstr "Sila tutup Mod Keserasian dalam Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Ciri ini adalah sebahagian daripada %s. Sila hubungi kami di %s untuk naik taraf." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22465,10 @@ msgstr "Besar" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.nb_NO.po otrs2-6.0.5/i18n/otrs/otrs.nb_NO.po --- otrs2-6.0.4/i18n/otrs/otrs.nb_NO.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.nb_NO.po 2018-02-05 23:46:54.000000000 +0000 @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/otrs/OTRS/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -7787,8 +7787,7 @@ msgstr "Innstillinger" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9238,6 +9237,10 @@ msgid "Expand" msgstr "Utvid" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10191,6 +10194,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "Klikk for å velge filer eller bare slipp dem her." @@ -11303,6 +11310,12 @@ msgstr "E-postkonto lagt til!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Utsending etter oppføringer i To:-felt." @@ -11456,6 +11469,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11468,6 +11485,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12338,10 +12359,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13881,7 +13898,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14728,6 +14746,19 @@ msgstr "Innstillingen 'innodb_log_file_size' må minst være 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maksimum størrelse på spørring" @@ -14766,6 +14797,11 @@ msgstr "Tabeller med en annen lagringsmotor enn standardmotoren ble funnet" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x eller høyere er nødvendig." @@ -14796,6 +14832,18 @@ msgstr "NLS_DATE_FORMAT innstilling for SQL sjekk" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Innstillingene 'client_encoding' må være satt til UNICODE eller UTF8." @@ -14816,6 +14864,18 @@ msgstr "Innstilling DateStyle må være satt til ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15474,6 +15534,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16675,11 +16747,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22405,6 +22472,10 @@ msgstr "Stor" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.nl.po otrs2-6.0.5/i18n/otrs/otrs.nl.po --- otrs2-6.0.4/i18n/otrs/otrs.nl.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.nl.po 2018-02-05 23:46:54.000000000 +0000 @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Dutch (http://www.transifex.com/otrs/OTRS/language/nl/)\n" "MIME-Version: 1.0\n" @@ -7789,8 +7789,7 @@ msgstr "Voorkeuren" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9240,6 +9239,10 @@ msgid "Expand" msgstr "Klap uit" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10193,6 +10196,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11305,6 +11312,12 @@ msgstr "E-mailaccount toegevoegd." #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Toewijzen gebaseerd op e-mailadres." @@ -11458,6 +11471,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11470,6 +11487,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12340,10 +12361,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13883,8 +13900,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Een systeem onderhoudsperiode begint op:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14730,6 +14748,19 @@ msgstr "De instelling innodb_log_file_size meot minimaal 256MB zijn" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maximale Query Lengte" @@ -14768,6 +14799,11 @@ msgstr "Er zijn tabellen gevonden die een afwijkende storage engine gebruiken." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x of hoger is vereist." @@ -14798,6 +14834,18 @@ msgstr "NLS_DATE_FORMAT instelling SQL controle" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Instelling client_encoding moet UNICODE of UTF8 zijn" @@ -14818,6 +14866,18 @@ msgstr "Instelling DateStyle moet ISO zijn" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15476,6 +15536,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16677,11 +16749,6 @@ msgstr "Zet a.u.b. Compatibility Mode in Internet Explorer uit!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Deze feature is onderdeel van het %s. Neem contact met ons op via %s voor een upgrade" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22407,6 +22474,10 @@ msgstr "Groot" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.pl.po otrs2-6.0.5/i18n/otrs/otrs.pl.po --- otrs2-6.0.4/i18n/otrs/otrs.pl.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.pl.po 2018-02-05 23:46:54.000000000 +0000 @@ -2,7 +2,7 @@ # Translators: # Adam , 2016 # Bartosz Huczek , 2016 -# Daniel Lisiecki, 2017 +# Daniel Lisiecki, 2017-2018 # icetafax , 2015 # Jerzy Ruszczak , 2015-2017 # Kamil Zając , 2017 @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Polish (http://www.transifex.com/otrs/OTRS/language/pl/)\n" "MIME-Version: 1.0\n" @@ -543,7 +543,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Toggle this widget" -msgstr "Przełącz ten gadżet" +msgstr "Przełącz ten widget" #. Template: AdminAppointmentNotificationEvent msgid "Events" @@ -665,7 +665,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Please activate this transport in order to use it." -msgstr "" +msgstr "Aktywuj ten sposób transportu aby go użyć." #. Template: AdminAppointmentNotificationEvent msgid "No data found" @@ -1011,29 +1011,29 @@ #. Template: AdminCommunicationLog msgid "Show only communication logs created in specific time range." -msgstr "" +msgstr "Pokaż log komunikacyjny utworzony tylko w określonym zakresie czasu." #. Template: AdminCommunicationLog msgid "Filter for communications" -msgstr "" +msgstr "Filtr kanałów komunikacji" #. Template: AdminCommunicationLog msgid "" "In this screen you can see an overview about incoming and outgoing " "communications." -msgstr "" +msgstr "Na tym ekranie możesz zobaczyć podsumowanie komunikacji przychodzącej i wychodzącej." #. Template: AdminCommunicationLog msgid "" "You can change the sort and order of the columns by clicking on the column " "header." -msgstr "" +msgstr "Możesz zmienić kolejność i sortowanie kolumn klikając na nagłówek tabeli." #. Template: AdminCommunicationLog msgid "" "If you click on the different entries, you will get redirected to a detailed" " screen about the message." -msgstr "" +msgstr "Jeśli klikniesz w niektóre kolumny elementu, zostaniesz przekierowany do ekranu szczegółów." #. Template: AdminCommunicationLog msgid "Status for: %s" @@ -1041,39 +1041,39 @@ #. Template: AdminCommunicationLog msgid "Failing accounts" -msgstr "" +msgstr "Nieprawidłowe konta" #. Template: AdminCommunicationLog msgid "Some account problems" -msgstr "" +msgstr "Występują problemy kont" #. Template: AdminCommunicationLog msgid "No account problems" -msgstr "" +msgstr "Nie ma problemów z kontami" #. Template: AdminCommunicationLog msgid "No account activity" -msgstr "" +msgstr "Nie ma aktywności konta" #. Template: AdminCommunicationLog msgid "Number of accounts with problems: %s" -msgstr "" +msgstr "Ilość kont z problemami: %s" #. Template: AdminCommunicationLog msgid "Number of accounts with warnings: %s" -msgstr "" +msgstr "Ilość kont z ostrzeżeniami: %s" #. Template: AdminCommunicationLog msgid "Failing communications" -msgstr "" +msgstr "Niepowodzenia komunikacji" #. Template: AdminCommunicationLog msgid "No communication problems" -msgstr "" +msgstr "Brak problemów komunikacyjnych" #. Template: AdminCommunicationLog msgid "No communication logs" -msgstr "" +msgstr "Brak logów komunikacyjnych" #. Template: AdminCommunicationLog msgid "Number of reported problems: %s" @@ -1081,15 +1081,15 @@ #. Template: AdminCommunicationLog msgid "Open communications" -msgstr "" +msgstr "Otwarta komunikacja" #. Template: AdminCommunicationLog msgid "No active communications" -msgstr "" +msgstr "Brak aktywnej komunikacji" #. Template: AdminCommunicationLog msgid "Number of open communications: %s" -msgstr "" +msgstr "Liczba otwartych komunikacji: %s" #. Template: AdminCommunicationLog msgid "Average processing time" @@ -1097,7 +1097,7 @@ #. Template: AdminCommunicationLog msgid "List of communications (%s)" -msgstr "" +msgstr "Lista komunikacji (%s)" #. Template: AdminCommunicationLog msgid "Settings" @@ -1109,11 +1109,11 @@ #. Template: AdminCommunicationLog msgid "No communications found." -msgstr "" +msgstr "Nie znaleziono komunikacji." #. Template: AdminCommunicationLog msgid "%s s" -msgstr "" +msgstr "%s" #. Template: AdminCommunicationLogAccounts msgid "Account Status" @@ -1129,13 +1129,13 @@ #. Template: AdminCommunicationLogAccounts msgid "Filter for log entries" -msgstr "" +msgstr "Filtruj pozycje logu" #. Template: AdminCommunicationLogAccounts msgid "" "You can change the sort and order of those columns by clicking on the column" " header." -msgstr "" +msgstr "Możesz zmienić kolejność i sortowanie kolumn klikając na nagłówek tabeli." #. Template: AdminCommunicationLogAccounts msgid "Account status for: %s" @@ -1159,7 +1159,7 @@ #. Template: AdminCommunicationLogAccounts msgid "Communication Log Details (%s)" -msgstr "" +msgstr "Szczegóły logu komunikacyjnego (%s)" #. Template: AdminCommunicationLogAccounts msgid "Direction" @@ -1175,15 +1175,15 @@ #. Template: AdminCommunicationLogAccounts msgid "No communication log entries found." -msgstr "" +msgstr "Nie znaleziono pozycji logu komunikacyjnego." #. Template: AdminCommunicationLogCommunications msgid "Duration" -msgstr "" +msgstr "Czas trwania" #. Template: AdminCommunicationLogObjectLog msgid "#" -msgstr "" +msgstr "#" #. Template: AdminCommunicationLogObjectLog msgid "Priority" @@ -1199,31 +1199,31 @@ #. Template: AdminCommunicationLogObjectLog msgid "No log entries found." -msgstr "" +msgstr "Nie znaleziono pozycji logu." #. Template: AdminCommunicationLogZoom msgid "Detail view for %s communication started at %s" -msgstr "" +msgstr "Podgląd szczegółów dla %s komunikacja rozpoczęta o %s" #. Template: AdminCommunicationLogZoom msgid "Show only entries with specific priority and higher:" -msgstr "" +msgstr "Pokaż tylko te pozycje logu od określonego priorytetu wzwyż:" #. Template: AdminCommunicationLogZoom msgid "Communication Log Overview (%s)" -msgstr "" +msgstr "Przegląd Logu Komunikacyjnego (%s)" #. Template: AdminCommunicationLogZoom msgid "No communication objects found." -msgstr "" +msgstr "Nie znaleziono obiektów komunikacyjnych." #. Template: AdminCommunicationLogZoom msgid "Communication Log Details" -msgstr "" +msgstr "Szczegóły Logu Komunikacyjnego" #. Template: AdminCommunicationLogZoom msgid "Please select an entry from the list." -msgstr "" +msgstr "Wybierz pozycję z listy." #. Template: AdminCustomerCompany msgid "Customer Management" @@ -1271,7 +1271,7 @@ #. Template: AdminCustomerCompany msgid "This customer backend is read only!" -msgstr "" +msgstr "Ten backend klienta jest tylko do odczytu!" #. Template: AdminCustomerGroup msgid "Manage Customer-Group Relations" @@ -1424,7 +1424,7 @@ msgid "" "This customer backend is read only, but the customer user preferences can be" " changed!" -msgstr "" +msgstr "Ten backend klienta jest tylko do odczytu, ale preferencje użytkownika klienta mogą być zmieniane!" #. Template: AdminCustomerUser msgid "This field is required and needs to be a valid email address." @@ -1452,7 +1452,7 @@ #. Template: AdminCustomerUser msgid "Effective Permissions for Customer User" -msgstr "" +msgstr "Efektywne uprawnienia dla Użytkownika Klienta" #. Template: AdminCustomerUser msgid "Group Permissions" @@ -1468,7 +1468,7 @@ "matrix takes into account all inherited permissions (e.g. via customer " "groups). Note: The table does not consider changes made to this form without" " submitting it." -msgstr "" +msgstr "Powyższa tabela pokazuje efektywne uprawnienia do grup użytkownika klienta. Macierz pobiera wszystkie dziedziczone uprawnienia dla konta (np. poprzez grupy użytkownika). Uwaga: Tabela nie zawiera zmian dokonanych na tej formatce i jeszcze nie zapisanych." #. Template: AdminCustomerUser msgid "Customer Access" @@ -1500,15 +1500,15 @@ #. Template: AdminCustomerUserCustomer msgid "Customer Users" -msgstr "Użytkownicy klientów" +msgstr "Użytkownicy klienta" #. Template: AdminCustomerUserCustomer msgid "Change Customer Relations for Customer User" -msgstr "" +msgstr "Zmień relacje Klienta dla Użytkownika klienta" #. Template: AdminCustomerUserCustomer msgid "Change Customer User Relations for Customer" -msgstr "" +msgstr "Zmień relacje Użytkownika klienta do Klienta" #. Template: AdminCustomerUserCustomer msgid "Toggle active state for all" @@ -1530,7 +1530,7 @@ msgid "" "Just use this feature if you want to define group permissions for customer " "users." -msgstr "" +msgstr "Użyj tej funkcjonalności jeśli chcesz określić uprawnienia grup dla użytkowników klienta." #. Template: AdminCustomerUserGroup msgid "Edit Customer User Default Groups" @@ -1548,7 +1548,7 @@ #. Template: AdminCustomerUserGroup msgid "Select the customer user - group permissions." -msgstr "" +msgstr "Określ uprawnienia użytkownik klienta - grupa." #. Template: AdminCustomerUserGroup msgid "" @@ -1985,11 +1985,11 @@ #. Template: AdminGenericAgent msgid "Filter for Generic Agent Jobs" -msgstr "" +msgstr "Filtr zadań agenta automatycznego" #. Template: AdminGenericAgent msgid "Filter for generic agent jobs" -msgstr "" +msgstr "Filtr zadań agenta automatycznego" #. Template: AdminGenericAgent msgid "Last run" @@ -2367,7 +2367,7 @@ #. Template: AdminGenericAgent msgid "Visible for customer" -msgstr "Widoczne dla klienta" +msgstr "Widoczny dla klienta" #. Template: AdminGenericAgent msgid "Time units" @@ -3944,7 +3944,7 @@ #. Template: AdminLog msgid "Filter for Log Entries" -msgstr "" +msgstr "Filtruj pozycje logu" #. Template: AdminLog msgid "Here you will find log information about your system." @@ -3994,7 +3994,7 @@ msgid "" "All incoming emails with one account will be dispatched in the selected " "queue." -msgstr "" +msgstr "Wszystkie przychodzące na jedno konto wiadomości będą umieszczone w zaznacznej kolejce." #. Template: AdminMailAccount msgid "" @@ -4093,7 +4093,7 @@ #. Template: AdminNavigationBar msgid "Sorry, your search didn't match any items." -msgstr "" +msgstr "Niestety twoje kryteria wyszukiwania nie pasują do żadnych elementów." #. Template: AdminNavigationBar msgid "Set as favorite" @@ -4154,7 +4154,7 @@ #. Template: AdminNotificationEvent msgid "Customer visibility" -msgstr "" +msgstr "Widoczność Klienta" #. Template: AdminNotificationEvent msgid "Communication channel" @@ -4855,11 +4855,11 @@ #. Template: AdminPostMasterFilter msgid "Add PostMaster Filter" -msgstr "Dodaj filtr PostMaster" +msgstr "Dodaj filtr pocztowy" #. Template: AdminPostMasterFilter msgid "Edit PostMaster Filter" -msgstr "Edytuj filtr PostMaster" +msgstr "Edytuj filtr pocztowy" #. Template: AdminPostMasterFilter msgid "Add filter" @@ -4867,11 +4867,11 @@ #. Template: AdminPostMasterFilter msgid "Filter for Postmaster Filters" -msgstr "" +msgstr "Filtruj filtry pocztowe" #. Template: AdminPostMasterFilter msgid "Filter for postmaster filters" -msgstr "" +msgstr "Filtruj filtry pocztowe" #. Template: AdminPostMasterFilter msgid "" @@ -4903,7 +4903,7 @@ #. Template: AdminPostMasterFilter msgid "Do you really want to delete this postmaster filter?" -msgstr "Czy na pewno chcesz skasować filtr pocztowy?" +msgstr "Czy na pewno chcesz skasować ten filtr pocztowy?" #. Template: AdminPostMasterFilter msgid "A postmaster filter with this name already exists!" @@ -5208,7 +5208,7 @@ #. Template: AdminProcessManagementActivityDialog msgid "Is visible for customer" -msgstr "Jest widoczne dla klienta" +msgstr "Jest widoczna dla klienta" #. Template: AdminProcessManagementActivityDialog msgid "Display" @@ -6641,7 +6641,7 @@ #. Template: AdminSystemConfiguration msgid "online administrator documentation" -msgstr "" +msgstr "dokumentację administratora online" #. Template: AdminSystemConfiguration msgid "System configuration" @@ -6651,17 +6651,17 @@ msgid "" "Navigate through the available settings by using the tree in the navigation " "box on the left side." -msgstr "" +msgstr "Poruszaj się wśród dostępnych ustawień, używając drzewa w obszarze nawigacyjnym po lewej stronie." #. Template: AdminSystemConfiguration msgid "" "Find certain settings by using the search field below or from search icon " "from the top navigation." -msgstr "" +msgstr "Znajdź określone ustawienia używając poniższego pola wyszukiwania, lub przy pomocy ikony wyszukiwania w menu nawigacyjnym." #. Template: AdminSystemConfiguration msgid "Find out how to use the system configuration by reading the %s." -msgstr "" +msgstr "Przeczytaj \"%s\" i dowiedz się jak używać konfiguracji systemu." #. Template: AdminSystemConfiguration msgid "Search in all settings..." @@ -6759,7 +6759,7 @@ #. Template: AdminSystemConfigurationImportExport msgid "Import & Export" -msgstr "" +msgstr "Import i Eksport" #. Template: AdminSystemConfigurationImportExport msgid "" @@ -6797,19 +6797,19 @@ #. Template: AdminSystemConfigurationSearch msgid "Settings I'm currently editing" -msgstr "" +msgstr "Ustawienia, które aktualnie edytuję" #. Template: AdminSystemConfigurationSearch msgid "Your search for \"%s\" in category \"%s\" did not return any results." -msgstr "" +msgstr "Twoje wyszukiwanie \"%s\" w categorii \"%s\" nie zwróciło żadnego wyniku." #. Template: AdminSystemConfigurationSearch msgid "Your search for \"%s\" in category \"%s\" returned one result." -msgstr "" +msgstr "Twoje wyszukiwanie \"%s\" w categorii \"%s\" zwróciło jeden wynik." #. Template: AdminSystemConfigurationSearch msgid "Your search for \"%s\" in category \"%s\" returned %s results." -msgstr "" +msgstr "Twoje wyszukiwanie \"%s\" w categorii \"%s\" zwróciło \"%s\" wyników." #. Template: AdminSystemConfigurationSearch msgid "You're currently not editing any settings." @@ -7421,11 +7421,11 @@ #. Template: AgentCustomerUserAddressBook msgid "Create Template" -msgstr "Stwórz szablon" +msgstr "Utwórz szablon" #. Template: AgentCustomerUserAddressBook msgid "Create New" -msgstr "Stwórz nowy" +msgstr "Utwórz nowy" #. Template: AgentCustomerUserAddressBook msgid "Save changes in template" @@ -7547,7 +7547,7 @@ #. Template: AgentDashboardCommon msgid "Close this widget" -msgstr "Zamknij ten gadżet" +msgstr "Zamknij ten widget" #. Template: AgentDashboardCommon msgid "more" @@ -7607,7 +7607,7 @@ #. Template: AgentDashboardCustomerUserInformation msgid "Note: Customer User is invalid!" -msgstr "" +msgstr "Uwaga: Użytkownik klienta jest nieprawidłowy!" #. Template: AgentDashboardCustomerUserList msgid "Customer user information" @@ -7653,7 +7653,7 @@ msgid "" "The configuration for this statistic widget contains errors, please review " "your settings." -msgstr "" +msgstr "Konfiguracja tego wigdeta statystyk zawiera błędy, przejrzyj jego ustawienia." #. Template: AgentDashboardStats msgid "Download as SVG file" @@ -7698,7 +7698,7 @@ #. Template: AgentDashboardTicketGeneric msgid "Accessible for customer user" -msgstr "" +msgstr "Dostępne dla użytkownika klienta" #. Template: AgentDashboardTicketGeneric msgid "My locked tickets" @@ -7793,8 +7793,7 @@ msgstr "Ustawienia" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -7805,7 +7804,7 @@ msgid "" "Set up your personal preferences. Save each setting by clicking the " "checkmark on the right." -msgstr "" +msgstr "Dostosuj swoje ustawienia osobiste. Każdą z opcji można zapisać klikając ✓ po prawej stronie." #. Template: AgentPreferences msgid "" @@ -7815,7 +7814,7 @@ #. Template: AgentPreferences msgid "Dynamic Actions" -msgstr "" +msgstr "Akcje dynamiczne" #. Template: AgentPreferences msgid "Filter settings..." @@ -7852,11 +7851,11 @@ #. Template: AgentPreferences msgid "This setting can currently not be saved." -msgstr "" +msgstr "To ustawienie nie może być teraz zapisane" #. Template: AgentPreferences msgid "This setting can currently not be saved" -msgstr "" +msgstr "To ustawienie nie może być teraz zapisane" #. Template: AgentPreferences msgid "Save this setting" @@ -7943,7 +7942,7 @@ #. Template: AgentStatisticsAdd msgid "Create Statistic" -msgstr "Stwórz statystykę" +msgstr "Utwórz statystykę" #. Template: AgentStatisticsEdit msgid "Run now" @@ -8222,7 +8221,7 @@ #. Template: AgentTicketCompose msgid "Compose Answer for %s%s%s" -msgstr "Stwórz Odpowiedź dla %s%s%s" +msgstr "Utwórz Odpowiedź dla %s%s%s" #. Template: AgentTicketCompose msgid "This address is registered as system address and cannot be used: %s" @@ -8543,7 +8542,7 @@ #. Template: AgentTicketSearch msgid "Customer ID (exact match)" -msgstr "" +msgstr "ID Klienta (dokładne dopasowanie)" #. Template: AgentTicketSearch msgid "Assigned to Customer User Login (complex search)" @@ -8659,7 +8658,7 @@ #. Template: AgentTicketZoom msgid "Drafts" -msgstr "" +msgstr "Szkice" #. Template: AgentTicketZoom msgid "by" @@ -9244,31 +9243,35 @@ msgid "Expand" msgstr "Rozwiń" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" -msgstr "" +msgstr "Zaktualizuj szkic" #. Template: DraftButtons msgid "Save as new draft" -msgstr "" +msgstr "Zapisz jako nowy szkic" #. Template: DraftNotifications msgid "You have loaded the draft \"%s\"." -msgstr "" +msgstr "Wczytałeś szkic \"%s\"" #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". You last changed it %s." -msgstr "" +msgstr "Wczytałeś szkic \"%s\". Ostatnio zmieniałeś go %s." #. Template: DraftNotifications msgid "You have loaded the draft \"%s\". It was last changed %s by %s." -msgstr "" +msgstr "Wczytałeś szkic \"%s\". Ostatnio zmieniony %s przez %s." #. Template: DraftNotifications msgid "" "Please note that this draft is outdated because the ticket was modified " "since this draft was created." -msgstr "" +msgstr "Zauważ, że szkic jest nieaktualny ponieważ zgłoszenie zostało zmienione od czasu utworzenia szkicu." #. Template: Header msgid "View notifications" @@ -9444,7 +9447,7 @@ #. Template: InstallerDBStart msgid "Create a new database for OTRS" -msgstr "Stwórz nową baze danych dla OTRS" +msgstr "Utwórz nową baze danych dla OTRS" #. Template: InstallerDBStart msgid "Use an existing database for OTRS" @@ -10090,7 +10093,7 @@ #. Template: Actions msgid "My favourite settings" -msgstr "" +msgstr "Moje ulubione ustawienia" #. Template: Actions msgid "Invalid settings" @@ -10098,49 +10101,49 @@ #. Template: DynamicActions msgid "Filter visible settings..." -msgstr "" +msgstr "Filtruj widoczne ustawienia..." #. Template: DynamicActions msgid "Enable edit mode for all settings" -msgstr "" +msgstr "Włącz tryb edycji dla wszystkich ustawień" #. Template: DynamicActions msgid "Save all edited settings" -msgstr "" +msgstr "Zapisz wszystkie edytowane ustawienia" #. Template: DynamicActions msgid "Cancel editing for all settings" -msgstr "" +msgstr "Anuluj edycję wszystkich ustawień" #. Template: DynamicActions msgid "" "All actions from this widget apply to the visible settings on the right " "only." -msgstr "" +msgstr "Wszystkie akcje dostępne w tym widżecie stosuje się wyłącznie do ustawień widocznych po prawej stronie." #. Template: Help msgid "Currently edited by me." -msgstr "" +msgstr "Obecnie edytowane przeze mnie" #. Template: Help msgid "Modified but not yet deployed." -msgstr "" +msgstr "Zmodyfikowane, ale jeszcze nie wdrożone." #. Template: Help msgid "Currently edited by another user." -msgstr "" +msgstr "Obecnie edytowane przez innego użytkownika" #. Template: Help msgid "Different from its default value." -msgstr "" +msgstr "Wartość różna od wartości domyślnej." #. Template: Help msgid "Save current setting." -msgstr "" +msgstr "Zapisz bieżące ustawienie." #. Template: Help msgid "Cancel editing current setting." -msgstr "" +msgstr "Anuluj edycję bieżącego ustawienia." #. Template: Navigation msgid "Navigation" @@ -10178,7 +10181,7 @@ #. JS Template: FormDraftAddDialog msgid "Draft title" -msgstr "" +msgstr "Tytuł szkicu" #. JS Template: ArticleViewSettingsDialog msgid "Article display" @@ -10197,6 +10200,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11309,6 +11316,12 @@ msgstr "Konto pocztowe dodane!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Przydzielaj na podstawie pola DO:" @@ -11462,6 +11475,10 @@ msgstr "Zainstalowane" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11474,6 +11491,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12344,10 +12365,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -12409,7 +12426,7 @@ #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Loading draft failed!" -msgstr "" +msgstr "Nieudane wczytanie szkicu!" #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Sorry, you need to be the ticket owner to perform this action." @@ -12425,7 +12442,7 @@ #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Draft name is required!" -msgstr "" +msgstr "Nazwa szkicu jest wymagana!" #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "FormDraft name %s is already in use!" @@ -12441,7 +12458,7 @@ #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Could not delete draft!" -msgstr "" +msgstr "Nie można usunąć szkicu!" #. Perl Module: Kernel/Modules/AgentTicketActionCommon.pm msgid "Previous Owner" @@ -13142,15 +13159,15 @@ #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "Invisible only" -msgstr "" +msgstr "Tylko niewidoczne" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "Visible only" -msgstr "" +msgstr "Tylko widoczne" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "Visible and invisible" -msgstr "" +msgstr "Widoczne i niewidoczne" #. Perl Module: Kernel/Modules/AgentTicketZoom.pm msgid "Article could not be opened! Perhaps it is on another article page?" @@ -13212,7 +13229,7 @@ #. Perl Module: Kernel/Modules/CustomerTicketOverview.pm msgid "Need CustomerID!" -msgstr "" +msgstr "Potrzebne ID Klienta!" #. Perl Module: Kernel/Modules/CustomerTicketOverview.pm msgid "My Tickets" @@ -13250,7 +13267,7 @@ #. Perl Module: Kernel/Modules/CustomerTicketZoom.pm msgid "Create a new ticket!" -msgstr "Stwórz nowe zgłoszenie!" +msgstr "Utwórz nowe zgłoszenie!" #. Perl Module: Kernel/Modules/Installer.pm msgid "SecureMode active!" @@ -13504,7 +13521,7 @@ #. Perl Module: Kernel/Output/HTML/ArticleAction/ReinstallPackageLink.pm msgid "Upgrade to OTRS Business Solution™" -msgstr "" +msgstr "Ulepsz do wersji OTRS Business Solution™" #. Perl Module: Kernel/Output/HTML/ArticleAction/ReinstallPackageLink.pm msgid "Re-install Package" @@ -13844,7 +13861,7 @@ #. Perl Module: Kernel/Output/HTML/Notification/AgentOTRSBusiness.pm msgid "%s Upgrade to %s now! %s" -msgstr "" +msgstr "%sUlepsz do wersji %steraz! %s" #. Perl Module: Kernel/Output/HTML/Notification/AgentOTRSBusiness.pm msgid "Please verify your license data!" @@ -13887,7 +13904,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14275,7 +14293,7 @@ #. Perl Module: Kernel/System/Console/Command/Dev/Tools/Config2Docbook.pm msgid "This setting is not visible." -msgstr "" +msgstr "To ustawienie jest niewidoczne." #. Perl Module: Kernel/System/Console/Command/Dev/Tools/Config2Docbook.pm msgid "This setting can be overridden in the user preferences." @@ -14734,6 +14752,19 @@ msgstr "Parametr \"innodb_log_file_size\" musi być ustawiony na co najmniej 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Maksymalny rozmiar zapytania" @@ -14772,6 +14803,11 @@ msgstr "Znaleziono tabele z ustawionym magazynem danych innym niż domyślny." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Wymagany jest MYSQL w wersji 5.x lub wyższej." @@ -14802,6 +14838,18 @@ msgstr "NLS_DATE_FORMAT Ustawienie SQL Check" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Parametr \"client_encoding\" musi być ustawiony na UNICODE lub UTF8." @@ -14822,6 +14870,18 @@ msgstr "Parametr \"DateStyle\" musi być zgodny z ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15077,7 +15137,7 @@ #. Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/EmailQueue.pm msgid "Email Sending Queue" -msgstr "" +msgstr "Kolejka Nadawcza Email" #. Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/EmailQueue.pm msgid "Emails queued for sending" @@ -15298,7 +15358,7 @@ #. Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/TimeSettings.pm msgid "Calendar time zone is not set." -msgstr "" +msgstr "Strefa czasowa kalendarza nie jest ustawiona." #. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/OTRS/UI/AgentSkinUsage.pm @@ -15461,7 +15521,7 @@ #. Perl Module: Kernel/System/SysConfig.pm msgid "Setting value is not valid!" -msgstr "" +msgstr "Wartość ustawienia jest nieprawidłowa!" #. Perl Module: Kernel/System/SysConfig.pm msgid "Could not add modified setting!" @@ -15473,10 +15533,22 @@ #. Perl Module: Kernel/System/SysConfig.pm msgid "Setting could not be unlocked!" -msgstr "" +msgstr "Ustawienia nie można odblokować!" #. Perl Module: Kernel/System/SysConfig.pm msgid "Missing key %s!" +msgstr "Brakujący klucz %s!" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "Nieprawidłowe ustawienie: %s" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" msgstr "" #. Perl Module: Kernel/System/SysConfig.pm @@ -15493,7 +15565,7 @@ #. Perl Module: Kernel/System/SysConfig/BaseValueType.pm msgid "Value doesn't satisfy regex (%s)." -msgstr "" +msgstr "Wartość nie pasuje do regex (%s)." #. Perl Module: Kernel/System/SysConfig/ValueType/Checkbox.pm msgid "Enabled" @@ -15858,7 +15930,7 @@ #. Database XML Definition: scripts/database/otrs-initial_insert.xml msgid "Unclassified" -msgstr "Nie sklasyfikowane" +msgstr "Niesklasyfikowane" #. Database XML Definition: scripts/database/otrs-initial_insert.xml msgid "1 very low" @@ -16222,11 +16294,11 @@ #. JS File: Core.Agent.Admin.PostMasterFilter msgid "Delete this PostMasterFilter" -msgstr "" +msgstr "Usuń ten filtr pocztowy" #. JS File: Core.Agent.Admin.PostMasterFilter msgid "Deleting the postmaster filter and its data. This may take a while..." -msgstr "" +msgstr "Usuwanie filtra pocztowego i jego danych. To może chwilę potrwać...." #. JS File: Core.Agent.Admin.ProcessManagement.Canvas msgid "Remove Entity from canvas" @@ -16295,7 +16367,7 @@ #. JS File: Core.Agent.Admin.ProcessManagement msgid "" "Customer interface does not support articles not visible for customers." -msgstr "" +msgstr "Interfejs klienta nie wspiera wyświetlania artykułów niewidocznych dla klienta" #. JS File: Core.Agent.Admin.ProcessManagement msgid "Sorry, the only existing parameter can't be removed." @@ -16584,7 +16656,7 @@ "Are you using a browser plugin like AdBlock or AdBlockPlus? This can cause " "several issues and we highly recommend you to add an exception for this " "domain." -msgstr "" +msgstr "Czy używasz wtyczki typu AdBlock lub AdBlockPlus w swojej przeglądarce? To może powodować wiele problemów i dlatego gorąco zalecamy dodanie wyjątku we wtyczce dla tej domeny." #. JS File: Core.Agent.Login msgid "Do not show this warning again." @@ -16646,19 +16718,19 @@ #. JS File: Core.Agent.TicketFormDraft msgid "Add new draft" -msgstr "" +msgstr "Dodaj nowy szkic" #. JS File: Core.Agent.TicketFormDraft msgid "Delete draft" -msgstr "" +msgstr "Usuń szkic" #. JS File: Core.Agent.TicketFormDraft msgid "There are no more drafts available." -msgstr "" +msgstr "Nie ma więcej dostępnych szkiców." #. JS File: Core.Agent.TicketFormDraft msgid "It was not possible to delete this draft." -msgstr "" +msgstr "Usunięcie szkicu jest niemożliwe." #. JS File: Core.Agent.TicketZoom msgid "Article filter" @@ -16681,11 +16753,6 @@ msgstr "Proszę wyłącz Widok Zgodności w Internet Explorerze!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Ta funkcja znajduje się w %s. Proszę skontaktuj się z nami na %s w celu aktualizacji." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -17337,11 +17404,11 @@ #. SysConfig msgid "Agents ↔ Groups" -msgstr "Użytkownicy ↔ Grupy" +msgstr "Agenci ↔ Grupy" #. SysConfig msgid "Agents ↔ Roles" -msgstr "Użytkownicy ↔ Role" +msgstr "Agenci ↔ Role" #. SysConfig msgid "All CustomerIDs of a customer user." @@ -17353,7 +17420,7 @@ #. SysConfig msgid "All customer users of a CustomerID" -msgstr "Wszyscy użytkownicy z identyyfikatorem klienta" +msgstr "Wszyscy użytkownicy z identyfikatorem klienta" #. SysConfig msgid "All escalated tickets" @@ -17534,73 +17601,73 @@ msgid "" "Allows to save current work as draft in the close ticket screen of the agent" " interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie zamykania zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the email outbound screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie emaila wychodzącego w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket compose screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie tworzenia zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket forward screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przekazywania zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket free text screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie notatki tekstowej zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket move screen of the agent " "interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przenoszenia zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket note screen of the agent " "interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie notatki do zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket owner screen of the agent" " interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie właściciela zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket pending screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przypomnienia zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket phone inbound screen of " "the agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie telefonu przychodzącego do zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket phone outbound screen of " "the agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie telefonu wychodzącego do zgłoszenia w interfejsie agenta." #. SysConfig msgid "" "Allows to save current work as draft in the ticket priority screen of the " "agent interface." -msgstr "" +msgstr "Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie priorytetu zgłoszenia w interfejsie agenta." #. SysConfig msgid "" @@ -17948,11 +18015,11 @@ #. SysConfig msgid "Chinese (Simplified)" -msgstr "" +msgstr "Chiński (Uproszczony)" #. SysConfig msgid "Chinese (Traditional)" -msgstr "" +msgstr "Chiński (Tradycyjny)" #. SysConfig msgid "" @@ -17965,7 +18032,7 @@ "Choose for which kind of ticket changes you want to receive notifications. " "Please note that you can't completely disable notifications marked as " "mandatory." -msgstr "" +msgstr "Wybierz, dla jakich rodzajów zmian w zgłoszeniach, chcesz otrzymywać powiadomienia. Zauważ, że nie można całkowicie wyłączyć powiadomień oznaczonych jako obowiązkowe." #. SysConfig msgid "Choose which notifications you'd like to receive." @@ -18209,7 +18276,7 @@ #. SysConfig msgid "Create Ticket" -msgstr "Twórz Zgłoszenie" +msgstr "Utwórz Zgłoszenie" #. SysConfig msgid "Create a new calendar appointment linked to this ticket" @@ -18237,11 +18304,11 @@ #. SysConfig msgid "Create and manage customer users." -msgstr "Tworzenie i modyfikacja użytkowników." +msgstr "Tworzenie i modyfikacja użytkowników klienta." #. SysConfig msgid "Create and manage customers." -msgstr "Zarządzanie listą klientów." +msgstr "Tworzenie i modyfikacja klientów" #. SysConfig msgid "Create and manage dynamic fields." @@ -18301,7 +18368,7 @@ #. SysConfig msgid "Create new Ticket." -msgstr "Stwórz nowy Ticket" +msgstr "Utwórz nowe zgłoszenie" #. SysConfig msgid "Create new appointment." @@ -18309,19 +18376,19 @@ #. SysConfig msgid "Create new email ticket and send this out (outbound)." -msgstr "Stwórz nowe zgłoszenie email i wyślij je (na zewnątrz)" +msgstr "Utwórz nowe zgłoszenie email i wyślij je (na zewnątrz)" #. SysConfig msgid "Create new email ticket." -msgstr "Stwórz nowy zgłoszenie Email." +msgstr "Utwórz nowy zgłoszenie Email." #. SysConfig msgid "Create new phone ticket (inbound)." -msgstr "Stwórz nowe zgłoszenie telefoniczne (wewnętrzne)" +msgstr "Utwórz nowe zgłoszenie telefoniczne (wewnętrzne)" #. SysConfig msgid "Create new phone ticket." -msgstr "Stwórz nowe zgłoszenie telefoniczne." +msgstr "Utwórz nowe zgłoszenie telefoniczne." #. SysConfig msgid "Create new process ticket." @@ -18329,7 +18396,7 @@ #. SysConfig msgid "Create tickets." -msgstr "Stwórz zgłoszenia." +msgstr "Utwórz zgłoszenia." #. SysConfig msgid "Created ticket [%s] in \"%s\" with priority \"%s\" and state \"%s\"." @@ -18337,7 +18404,7 @@ #. SysConfig msgid "Croatian" -msgstr "" +msgstr "Chorwacki" #. SysConfig msgid "Custom RSS Feed" @@ -18459,11 +18526,11 @@ #. SysConfig msgid "Czech" -msgstr "" +msgstr "Czeski" #. SysConfig msgid "Danish" -msgstr "" +msgstr "Duński" #. SysConfig msgid "Data used to export the search result in CSV format." @@ -18861,7 +18928,7 @@ #. SysConfig msgid "Defines default headers for outgoing emails." -msgstr "" +msgstr "Określa domyślne nagłówki dla emaili wychodzących." #. SysConfig msgid "Defines email communication channel." @@ -18900,70 +18967,70 @@ "Defines if a ticket lock is required in the close ticket screen of the agent" " interface (if the ticket isn't locked yet, the ticket gets locked and the " "current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie zamykania zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the email outbound screen of the " "agent interface (if the ticket isn't locked yet, the ticket gets locked and " "the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie emaila wychodzącego w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the email resend screen of the agent" " interface (if the ticket isn't locked yet, the ticket gets locked and the " "current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie przesyłania dalej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket bounce screen of the " "agent interface (if the ticket isn't locked yet, the ticket gets locked and " "the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie przkazania zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket compose screen of the " "agent interface (if the ticket isn't locked yet, the ticket gets locked and " "the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie tworzenia zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket forward screen of the " "agent interface (if the ticket isn't locked yet, the ticket gets locked and " "the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie przekazania dalej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket free text screen of the " "agent interface (if the ticket isn't locked yet, the ticket gets locked and " "the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie notatki tekstowej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket merge screen of a zoomed " "ticket in the agent interface (if the ticket isn't locked yet, the ticket " "gets locked and the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie łączenia przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket note screen of the agent " "interface (if the ticket isn't locked yet, the ticket gets locked and the " "current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie notatki do zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket owner screen of a zoomed " "ticket in the agent interface (if the ticket isn't locked yet, the ticket " "gets locked and the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie właściciela przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" @@ -18971,21 +19038,21 @@ "zoomed ticket in the agent interface (if the ticket isn't locked yet, the " "ticket gets locked and the current agent will be set automatically as its " "owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie oczekującego przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket phone inbound screen of " "the agent interface (if the ticket isn't locked yet, the ticket gets locked " "and the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie rozmowy tel. przychodzącej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket phone outbound screen of " "the agent interface (if the ticket isn't locked yet, the ticket gets locked " "and the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie rozmowy tel. wychodzącej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" @@ -18993,14 +19060,14 @@ "zoomed ticket in the agent interface (if the ticket isn't locked yet, the " "ticket gets locked and the current agent will be set automatically as its " "owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie priorytetu przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" "Defines if a ticket lock is required in the ticket responsible screen of the" " agent interface (if the ticket isn't locked yet, the ticket gets locked and" " the current agent will be set automatically as its owner)." -msgstr "" +msgstr "Określa, czy wymagana jest blokada zgłoszenia na ekranie odpowiedzialnego za zgłoszenie w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem)." #. SysConfig msgid "" @@ -19177,7 +19244,7 @@ msgid "" "Defines the PostMaster header to be used on the filter for keeping the " "current state of the ticket." -msgstr "" +msgstr "Określa nagłówek poczty przychodzącej używany do zachowania bieżącego stanu zgłoszenia." #. SysConfig msgid "Defines the URL CSS path." @@ -22411,6 +22478,10 @@ msgstr "Duże" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" @@ -25883,7 +25954,7 @@ "Subject' and no ticket number. In the latter case you should verify that the" " setting PostMaster::CheckFollowUpModule###0200-References is activated to " "recognize followups based on email headers." -msgstr "" +msgstr "Formatowanie tematu. 'Lewo' oznacza '[TicketHook#:12345] Pewien Temat'. 'Prawo' oznacza 'Pewien Temat [TicketHook#:12345]', 'Brak' oznacza 'Pewien Temat' bez określania numeru zgłoszenia. W ostatnim przypadku sprawdź, czy ustawienie odpowiadające za rozpoznawanie kolejnych wiadomości w oparciu o nagłówki: PostMaster::CheckFollowUpModule###0200-References jest włączone" #. SysConfig msgid "The headline shown in the customer interface." @@ -26054,7 +26125,7 @@ #. SysConfig msgid "This setting is deprecated. Set OTRSTimeZone instead." -msgstr "" +msgstr "To ustawienie jest nieaktualne. Zamiast tego ustaw OTRSTimeZone." #. SysConfig msgid "" @@ -26160,7 +26231,7 @@ #. SysConfig msgid "Ticket Zoom" -msgstr "" +msgstr "Szczegóły zgłoszenia" #. SysConfig msgid "Ticket Zoom." @@ -26200,7 +26271,7 @@ #. SysConfig msgid "Ticket split dialog." -msgstr "" +msgstr "Okno podziału zgłoszenia" #. SysConfig msgid "Ticket title" @@ -26399,7 +26470,7 @@ #. SysConfig msgid "View all attachments of the current ticket" -msgstr "" +msgstr "Pokaż wszystkie załączniki bieżącego zgłoszenia" #. SysConfig msgid "View performance benchmark results." @@ -26419,17 +26490,17 @@ #. SysConfig msgid "We are performing scheduled maintenance." -msgstr "" +msgstr "Przeprowadzamy zaplanowane prace serwisowe." #. SysConfig msgid "" "We are performing scheduled maintenance. Login is temporarily not available." -msgstr "" +msgstr "Przeprowadzamy zaplanowane prace serwisowe. Logowanie jest tymczasowo niedostępne." #. SysConfig msgid "" "We are performing scheduled maintenance. We should be back online shortly." -msgstr "" +msgstr "Przeprowadzamy zaplanowane prace serwisowe. System zostanie niedługo udostępniony." #. SysConfig msgid "Web Services" @@ -26499,13 +26570,13 @@ msgid "" "Your queue selection of your preferred queues. You also get notified about " "those queues via email if enabled." -msgstr "" +msgstr "Wybór ulubionych kolejek spośród dostępnych. O tych kolejkach będziesz informowany emailem, o ile włączysz powiadomienia." #. SysConfig msgid "" "Your service selection of your preferred services. You also get notified " "about those services via email if enabled." -msgstr "" +msgstr "Wybór ulubionych usług spośród dostępnych. O tych usługach będziesz informowany emailem, o ile włączysz powiadomienia." #. SysConfig msgid "Zoom" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.pot otrs2-6.0.5/i18n/otrs/otrs.pot --- otrs2-6.0.4/i18n/otrs/otrs.pot 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.pot 2018-02-05 23:46:54.000000000 +0000 @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2018-01-08 18:49+0000\n" +"POT-Creation-Date: 2018-02-05 18:30+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -7215,7 +7215,7 @@ msgstr "" #. Template: AgentPreferences -msgid "Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -8618,6 +8618,10 @@ msgid "Expand" msgstr "" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -9523,6 +9527,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -10587,6 +10595,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "Email account fetch already fetched by another process. Please try again later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "" @@ -10735,6 +10747,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -10747,6 +10763,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -11599,10 +11619,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13087,7 +13103,7 @@ msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -13870,6 +13886,14 @@ msgid "The setting innodb_log_file_size must be at least 256 MB." msgstr "" +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair" +msgstr "" + #. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -13898,6 +13922,10 @@ msgid "Tables with a different storage engine than the default engine were found." msgstr "" +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + #. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -13922,6 +13950,14 @@ msgid "NLS_DATE_FORMAT Setting SQL Check" msgstr "" +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "The following sequences and/or triggers with possible wrong names have been found. Please rename them manually." +msgstr "" + #. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -13938,6 +13974,14 @@ msgid "Setting DateStyle needs to be ISO." msgstr "" +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "The following sequences with possible wrong names have been found. Please rename them manually." +msgstr "" + #. Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -14483,6 +14527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -15595,10 +15651,6 @@ msgstr "" #. JS File: Core.Agent -msgid "This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -19990,6 +20042,10 @@ msgstr "" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.pt_BR.po otrs2-6.0.5/i18n/otrs/otrs.pt_BR.po --- otrs2-6.0.4/i18n/otrs/otrs.pt_BR.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.pt_BR.po 2018-02-05 23:46:54.000000000 +0000 @@ -40,8 +40,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/otrs/OTRS/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -7815,8 +7815,7 @@ msgstr "Preferências" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9266,6 +9265,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "Atualizar rascunho" @@ -10219,6 +10222,10 @@ msgstr "Carregando, por favor aguarde..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11331,6 +11338,12 @@ msgstr "Conta de e-mail adicionada!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Distribuição por e-mail por campo: \"Para:\"" @@ -11484,6 +11497,10 @@ msgstr "Instalado" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "Pacote atualizado corretamente" @@ -11496,6 +11513,10 @@ msgstr "Dependência instalada corretamente" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12366,10 +12387,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13909,8 +13926,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Uma janela de manutenção de sistema será iniciada em: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14756,6 +14774,19 @@ msgstr "O parâmetro innodb_log_file_size deve ser ao menos 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Tamanho Máximo da Query" @@ -14794,6 +14825,11 @@ msgstr "Tabelas com um mecanismo de armazenamento diferente do mecanismo padrão foram encontrados." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x ou superior é requerido." @@ -14824,6 +14860,18 @@ msgstr "NLS_DATE_FORMAT Configurando SQL Check" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "A configuração client_encoding precisa ser UNICODE ou UTF8." @@ -14844,6 +14892,18 @@ msgstr "A configuração DateStyle precisa ser ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15502,6 +15562,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16703,11 +16775,6 @@ msgstr "Por favor desative o Modo de Compatibilidade no Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Esse recursos é parte do %s. Por favor contate-nos no %s para um upgrade. " - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22433,6 +22500,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.pt.po otrs2-6.0.5/i18n/otrs/otrs.pt.po --- otrs2-6.0.4/i18n/otrs/otrs.pt.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.pt.po 2018-02-05 23:46:54.000000000 +0000 @@ -4,7 +4,7 @@ # André Brás , 2017 # António Correia <7pacima@gmail.com>, 2017 # Helder Araújo , 2015 -# Joao Ferro , 2016-2017 +# Joao Ferro , 2016-2018 # Jorge Lima , 2017 # José Anjos , 2017 # Nuno Ricardo Santos Loureiro da Silva Ferreira , 2015 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Portuguese (http://www.transifex.com/otrs/OTRS/language/pt/)\n" "MIME-Version: 1.0\n" @@ -7788,8 +7788,7 @@ msgstr "Preferências" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -8698,7 +8697,7 @@ #. Template: AgentTicketZoom msgid "No." -msgstr "Não" +msgstr "Nr." #. Template: AgentTicketZoom msgid "Unread articles" @@ -9239,6 +9238,10 @@ msgid "Expand" msgstr "Expandir" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10192,6 +10195,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11304,6 +11311,12 @@ msgstr "Conta de Mail adicionada!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Enviado através do campo de email Para:" @@ -11457,6 +11470,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11469,6 +11486,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12339,10 +12360,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13882,8 +13899,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "O sistema entrará em manutenção às:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14729,6 +14747,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14767,6 +14798,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14797,6 +14833,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14817,6 +14865,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15475,6 +15535,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16676,11 +16748,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22406,6 +22473,10 @@ msgstr "Grande" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.ru.po otrs2-6.0.5/i18n/otrs/otrs.ru.po --- otrs2-6.0.4/i18n/otrs/otrs.ru.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.ru.po 2018-02-05 23:46:54.000000000 +0000 @@ -34,8 +34,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Russian (http://www.transifex.com/otrs/OTRS/language/ru/)\n" "MIME-Version: 1.0\n" @@ -7809,9 +7809,8 @@ msgstr "Настройки" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." -msgstr "Предупреждение! В настоящее время вы редактируете не свои настройки, а эти %s." +msgid "Please note: you're currently editing the preferences of %s." +msgstr "" #. Template: AgentPreferences msgid "Go back to editing this agent" @@ -9260,6 +9259,10 @@ msgid "Expand" msgstr "Развернуть" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "Обновить черновик" @@ -10213,6 +10216,10 @@ msgstr "Подождите, идет загрузка..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "Кликните для выбора файлов или просто перетащите их сюда." @@ -11325,6 +11332,12 @@ msgstr "Учетная запись почты добавлена!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Перенаправление по заголовку To: электронного письма" @@ -11478,6 +11491,10 @@ msgstr "Установлено" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "Приложение обновлено корректно" @@ -11490,6 +11507,10 @@ msgstr "Зависимость установлена правильно" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "Пакет содержит циклические зависимости" @@ -12360,10 +12381,6 @@ msgstr "Параметр не найден!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "Эта возможность является составной частью %s. Пожалуйста свяжитесь с нами по адресу %s для обновления." - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "Система не смогла сбросить эту настройку!" @@ -13903,8 +13920,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Период технического обслуживания начнется в:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14750,6 +14768,19 @@ msgstr "Значение параметра innodb_log_file_size должно быть больше 256 МВ." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Максимальный размер запроса" @@ -14788,6 +14819,11 @@ msgstr "Обнаружены таблицы с методом доступа отличающимся от установленного по умолчанию." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Требуется MySQL 5.х или выше" @@ -14818,6 +14854,18 @@ msgstr "Параметр NLS_DATE_FORMAT для SQL Check" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Значение кодировки для клиента должно быть UNICODE or UTF8." @@ -14838,6 +14886,18 @@ msgstr "Значение DateStyle должно быть ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "PostgreSQL 9.2 или выше необходим." @@ -15496,6 +15556,18 @@ msgstr "Пропущен ключ %s!" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "Все настройки" @@ -16697,11 +16769,6 @@ msgstr "Выключите Compatibility Mode/Режим совместимости в Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Эта возможность является составной частью %s. Пожалуйста свяжитесь с нами в %s. для обновления." - -#. JS File: Core.Agent msgid "Find out more" msgstr "Найти ещё" @@ -22427,6 +22494,10 @@ msgstr "Большой" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "Последняя заголовок клиента" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.sk_SK.po otrs2-6.0.5/i18n/otrs/otrs.sk_SK.po --- otrs2-6.0.4/i18n/otrs/otrs.sk_SK.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.sk_SK.po 2018-02-05 23:46:54.000000000 +0000 @@ -3,11 +3,12 @@ # Adam Sadovsky , 2015 # Daniel Pogač , 2015 # Jaroslav Abaffy , 2016 +# RXD RXD , 2018 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/otrs/OTRS/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -22,7 +23,7 @@ #. Template: AdminACL msgid "Actions" -msgstr "Akcia" +msgstr "Akcie" #. Template: AdminACL msgid "Create New ACL" @@ -30,7 +31,7 @@ #. Template: AdminACL msgid "Deploy ACLs" -msgstr "" +msgstr "Nasadenie ACLs" #. Template: AdminACL msgid "Export ACLs" @@ -42,17 +43,17 @@ #. Template: AdminACL msgid "Just start typing to filter..." -msgstr "" +msgstr "Začni písať pre filtrovanie..." #. Template: AdminACL msgid "Configuration Import" -msgstr "" +msgstr "Import konfigurácie" #. Template: AdminACL msgid "" "Here you can upload a configuration file to import ACLs to your system. The " "file needs to be in .yml format as exported by the ACL editor module." -msgstr "" +msgstr "Tu môžete nahrať konfiguračný súbor pre import ACLs do systému. Súbor musí byť v .yml fomáte, exportovaný z ACL editor modulu." #. Template: AdminACL msgid "This field is required." @@ -60,7 +61,7 @@ #. Template: AdminACL msgid "Overwrite existing ACLs?" -msgstr "" +msgstr "Prepísať existujúce ACLs?" #. Template: AdminACL msgid "Upload ACL configuration" @@ -78,7 +79,7 @@ msgid "" "To create a new ACL you can either import ACLs which were exported from " "another system or create a complete new one." -msgstr "" +msgstr "Na vytvorenie nových ACL môžete buď importovať ACLs exportované z iného systému alebo vytvoriť úplne nové." #. Template: AdminACL msgid "" @@ -108,7 +109,7 @@ #. Template: AdminACL msgid "Validity" -msgstr "" +msgstr "platnosť" #. Template: AdminACL msgid "Export" @@ -124,7 +125,7 @@ #. Template: AdminACL msgid "No matches found." -msgstr "Nebola nájdená zhoda" +msgstr "Nebola nájdená zhoda." #. Template: AdminACLEdit msgid "Edit ACL %s" @@ -132,7 +133,7 @@ #. Template: AdminACLEdit msgid "Edit ACL" -msgstr "" +msgstr "Upraviť ACL" #. Template: AdminACLEdit msgid "Go to overview" @@ -148,14 +149,14 @@ #. Template: AdminACLEdit msgid "Match settings" -msgstr "" +msgstr "Nastavenie zhody" #. Template: AdminACLEdit msgid "" "Set up matching criteria for this ACL. Use 'Properties' to match the current" " screen or 'PropertiesDatabase' to match attributes of the current ticket " "that are in the database." -msgstr "" +msgstr "Nastav zodpovedajúce kritériá pre toto ACL. Použi \"vlastnosti\" pre zhodu s momentálnou obrazovkou alebo \"vlastnosti databázy\" pre zhodu atribútov aktuálneho tiketu, ktorý je v databáze." #. Template: AdminACLEdit msgid "Change settings" @@ -165,11 +166,11 @@ msgid "" "Set up what you want to change if the criteria match. Keep in mind that " "'Possible' is a white list, 'PossibleNot' a black list." -msgstr "" +msgstr "Nastav, čo chceš zmeniť, ak kritériá pasujú. Mysli na to, že \"možné\" je \"white list\" a \"nemožné\" je \"black list\"." #. Template: AdminACLEdit msgid "Check the official" -msgstr "" +msgstr "Skontoroluj oficiálne" #. Template: AdminACLEdit msgid "documentation" @@ -177,11 +178,11 @@ #. Template: AdminACLEdit msgid "Show or hide the content" -msgstr "" +msgstr "Zobraziť alebo skryť obsah" #. Template: AdminACLEdit msgid "Edit ACL Information" -msgstr "" +msgstr "Edituj ACL informáciu" #. Template: AdminACLEdit msgid "Name" @@ -189,15 +190,15 @@ #. Template: AdminACLEdit msgid "Stop after match" -msgstr "" +msgstr "Zastav po zhode" #. Template: AdminACLEdit msgid "Edit ACL Structure" -msgstr "" +msgstr "Edituj ACL štruktúru" #. Template: AdminACLEdit msgid "Save ACL" -msgstr "" +msgstr "Ulož ACL" #. Template: AdminACLEdit msgid "Save" @@ -223,86 +224,86 @@ msgid "" "Create a new ACL by submitting the form data. After creating the ACL, you " "will be able to add configuration items in edit mode." -msgstr "" +msgstr "Vytvor nové ACL zaslaním dát z formuláru. Po vytvorení ACL, budete mať možnosť pridať configuračnú položku v editovacom móde." #. Template: AdminAppointmentCalendarManage msgid "Calendar Management" -msgstr "" +msgstr "Menežment kalendára" #. Template: AdminAppointmentCalendarManage msgid "Add Calendar" -msgstr "" +msgstr "Pridaj kalendár" #. Template: AdminAppointmentCalendarManage msgid "Edit Calendar" -msgstr "" +msgstr "Edituj kalendár" #. Template: AdminAppointmentCalendarManage msgid "Go back" -msgstr "" +msgstr "Choď späť" #. Template: AdminAppointmentCalendarManage msgid "Calendar Overview" -msgstr "" +msgstr "Celkový prehľad kalendára" #. Template: AdminAppointmentCalendarManage msgid "Add new Calendar" -msgstr "" +msgstr "Pridaj nový kalendár" #. Template: AdminAppointmentCalendarManage msgid "Import Appointments" -msgstr "" +msgstr "Import schôdzok" #. Template: AdminAppointmentCalendarManage msgid "Calendar Import" -msgstr "" +msgstr "Import kalendára" #. Template: AdminAppointmentCalendarManage msgid "" "Here you can upload a configuration file to import a calendar to your " "system. The file needs to be in .yml format as exported by calendar " "management module." -msgstr "" +msgstr "Tu môžete nahrať konfiguračný súbor pre import kalendára do systému. Súbor musí byť v .yml fomáte, exportovaný z modulu menežmentu kalendára." #. Template: AdminAppointmentCalendarManage msgid "Overwrite existing entities" -msgstr "" +msgstr "Prepíš existujúce entity" #. Template: AdminAppointmentCalendarManage msgid "Upload calendar configuration" -msgstr "" +msgstr "Nahraj konfiguráciu kalendára" #. Template: AdminAppointmentCalendarManage msgid "Import Calendar" -msgstr "" +msgstr "Import kalendára" #. Template: AdminAppointmentCalendarManage msgid "Filter for calendars" -msgstr "" +msgstr "Filter pre kalendáre" #. Template: AdminAppointmentCalendarManage msgid "" "Depending on the group field, the system will allow users the access to the " "calendar according to their permission level." -msgstr "" +msgstr "V závislosti od skupinového poľa, systém umožní užívateľovi prístup do kalendára v závislosti od úrovne oprávnenia." #. Template: AdminAppointmentCalendarManage msgid "Read only: users can see and export all appointments in the calendar." -msgstr "" +msgstr "Iba na čítanie: užívateľ môže vidieť a exportovať všetky schôdzky v kalendári." #. Template: AdminAppointmentCalendarManage msgid "" "Move into: users can modify appointments in the calendar, but without " "changing the calendar selection." -msgstr "" +msgstr "Presuň do: užívateľ môže upraviť schôdzky v kalendári, ale bez zmeny výberu kalendára." #. Template: AdminAppointmentCalendarManage msgid "Create: users can create and delete appointments in the calendar." -msgstr "" +msgstr "Vytvor: užívatelia môžu vytvoriť a vymazať schôdzky v kalendári." #. Template: AdminAppointmentCalendarManage msgid "Read/write: users can manage the calendar itself." -msgstr "" +msgstr "Čítať/Zapisovať: užívatelia môžu menežovať kalendár." #. Template: AdminAppointmentCalendarManage msgid "Group" @@ -318,23 +319,23 @@ #. Template: AdminAppointmentCalendarManage msgid "Download" -msgstr "" +msgstr "Stiahnuť" #. Template: AdminAppointmentCalendarManage msgid "URL" -msgstr "" +msgstr "URL" #. Template: AdminAppointmentCalendarManage msgid "Export calendar" -msgstr "" +msgstr "Export kalendára" #. Template: AdminAppointmentCalendarManage msgid "Download calendar" -msgstr "" +msgstr "Stiahni kalendár" #. Template: AdminAppointmentCalendarManage msgid "Copy public calendar URL" -msgstr "" +msgstr "Kopíruj verejnú URL kalendára" #. Template: AdminAppointmentCalendarManage msgid "Calendar" @@ -342,31 +343,31 @@ #. Template: AdminAppointmentCalendarManage msgid "Calendar name" -msgstr "" +msgstr "Názov kalendára" #. Template: AdminAppointmentCalendarManage msgid "Calendar with same name already exists." -msgstr "" +msgstr "Kalendár s rovnakým názvom už existuje." #. Template: AdminAppointmentCalendarManage msgid "Color" -msgstr "" +msgstr "Farba" #. Template: AdminAppointmentCalendarManage msgid "Permission group" -msgstr "" +msgstr "Skupina oprávnení" #. Template: AdminAppointmentCalendarManage msgid "Ticket Appointments" -msgstr "" +msgstr "Ticketové schôdzky" #. Template: AdminAppointmentCalendarManage msgid "Rule" -msgstr "" +msgstr "Pravidlo" #. Template: AdminAppointmentCalendarManage msgid "Remove this entry" -msgstr "" +msgstr "Odstrániť túto položku" #. Template: AdminAppointmentCalendarManage msgid "Remove" @@ -374,11 +375,11 @@ #. Template: AdminAppointmentCalendarManage msgid "Start date" -msgstr "" +msgstr "Počiatočný dátum" #. Template: AdminAppointmentCalendarManage msgid "End date" -msgstr "" +msgstr "Konečný dátum" #. Template: AdminAppointmentCalendarManage msgid "" @@ -392,15 +393,15 @@ #. Template: AdminAppointmentCalendarManage msgid "Please select a valid queue." -msgstr "" +msgstr "Prosím zvoľte platnú frontu." #. Template: AdminAppointmentCalendarManage msgid "Search attributes" -msgstr "" +msgstr "Atribúty vyhľadávania" #. Template: AdminAppointmentCalendarManage msgid "Add entry" -msgstr "" +msgstr "Pridať položku" #. Template: AdminAppointmentCalendarManage msgid "Add" @@ -410,29 +411,29 @@ msgid "" "Define rules for creating automatic appointments in this calendar based on " "ticket data." -msgstr "" +msgstr "Definuj pravidlá pre automatické vytvorenie schôdzky v tomto kalendári na základe dát z tiketov." #. Template: AdminAppointmentCalendarManage msgid "Add Rule" -msgstr "" +msgstr "Pridaj pravidlo" #. Template: AdminAppointmentCalendarManage msgid "Submit" -msgstr "Predloženie" +msgstr "Odoslať" #. Template: AdminAppointmentImport msgid "Appointment Import" -msgstr "" +msgstr "Import schôdzky" #. Template: AdminAppointmentImport msgid "Uploaded file must be in valid iCal format (.ics)." -msgstr "" +msgstr "Nahrávaný súbor musí byť v platnom iCAL formáte (.ics)." #. Template: AdminAppointmentImport msgid "" "If desired Calendar is not listed here, please make sure that you have at " "least 'create' permissions." -msgstr "" +msgstr "Ak požadovaný kalendár tu nie je uvedený, uistite sa, že máte minimálne oprávnenie na jeho vytvorenie." #. Template: AdminAppointmentImport msgid "Upload" @@ -440,68 +441,68 @@ #. Template: AdminAppointmentImport msgid "Update existing appointments?" -msgstr "" +msgstr "Aktualizovať existujúcu schôdzku?" #. Template: AdminAppointmentImport msgid "" "All existing appointments in the calendar with same UniqueID will be " "overwritten." -msgstr "" +msgstr "Všetky existujúce schôdzky v kalendári s rovnakým UniqueID budú prepísané." #. Template: AdminAppointmentImport msgid "Upload calendar" -msgstr "" +msgstr "Nahraj kalendár" #. Template: AdminAppointmentImport msgid "Import appointments" -msgstr "" +msgstr "Import schôdzok" #. Template: AdminAppointmentNotificationEvent msgid "Appointment Notification Management" -msgstr "" +msgstr "Menežment notifikácií schôdzok" #. Template: AdminAppointmentNotificationEvent msgid "Add Notification" -msgstr "" +msgstr "Pridaj notifikáciu" #. Template: AdminAppointmentNotificationEvent msgid "Edit Notification" -msgstr "" +msgstr "Edituj notifikáciu" #. Template: AdminAppointmentNotificationEvent msgid "Add notification" -msgstr "" +msgstr "Pridaj notifikáciu" #. Template: AdminAppointmentNotificationEvent msgid "Export Notifications" -msgstr "" +msgstr "Export notifikácií" #. Template: AdminAppointmentNotificationEvent msgid "Filter for Notifications" -msgstr "" +msgstr "Filter pre notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "Filter for notifications" -msgstr "" +msgstr "Filter pre notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "" "Here you can upload a configuration file to import appointment notifications" " to your system. The file needs to be in .yml format as exported by the " "appointment notification module." -msgstr "" +msgstr "Tu môžete nahrať konfiguračný súbor na import notifikácií schôdzok do Vášho systému. Súbor musí byť v .yml formáte exportovaný z modulu notifikácií schôdzok." #. Template: AdminAppointmentNotificationEvent msgid "Overwrite existing notifications?" -msgstr "" +msgstr "Prepísať existujúce notifikácie?" #. Template: AdminAppointmentNotificationEvent msgid "Upload Notification configuration" -msgstr "" +msgstr "Nahrať konfiguráciu notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "Import Notification configuration" -msgstr "" +msgstr "Import konfigurácie notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "List" @@ -513,15 +514,15 @@ #. Template: AdminAppointmentNotificationEvent msgid "Delete this notification" -msgstr "" +msgstr "Zmazať túto notifikáciu" #. Template: AdminAppointmentNotificationEvent msgid "Show in agent preferences" -msgstr "" +msgstr "Zobraz v nastaveniach agenta" #. Template: AdminAppointmentNotificationEvent msgid "Agent preferences tooltip" -msgstr "" +msgstr "Nástrojové tipy vlastností agenta " #. Template: AdminAppointmentNotificationEvent msgid "" @@ -550,7 +551,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Appointment Filter" -msgstr "" +msgstr "Filter schôdzok" #. Template: AdminAppointmentNotificationEvent msgid "Type" @@ -566,31 +567,31 @@ #. Template: AdminAppointmentNotificationEvent msgid "Team" -msgstr "" +msgstr "Team" #. Template: AdminAppointmentNotificationEvent msgid "Resource" -msgstr "" +msgstr "Zdroj" #. Template: AdminAppointmentNotificationEvent msgid "Recipients" -msgstr "" +msgstr "Príjemcovia" #. Template: AdminAppointmentNotificationEvent msgid "Send to" -msgstr "" +msgstr "Komu" #. Template: AdminAppointmentNotificationEvent msgid "Send to these agents" -msgstr "" +msgstr "Poslať týmto agentom" #. Template: AdminAppointmentNotificationEvent msgid "Send to all group members" -msgstr "" +msgstr "Poslať všetkým členom skupiny" #. Template: AdminAppointmentNotificationEvent msgid "Send to all role members" -msgstr "" +msgstr "Poslať všetkým členom role" #. Template: AdminAppointmentNotificationEvent msgid "Send on out of office" @@ -598,11 +599,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "Also send if the user is currently out of office." -msgstr "" +msgstr "Pošli aj v prípade, že užívateľ je mimo kanceláriu." #. Template: AdminAppointmentNotificationEvent msgid "Once per day" -msgstr "" +msgstr "Jedenkrát za deň" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -612,7 +613,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Notification Methods" -msgstr "" +msgstr "Spôsoby notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -622,7 +623,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Enable this notification method" -msgstr "" +msgstr "Aktivuj túto notifikačnú metódu" #. Template: AdminAppointmentNotificationEvent msgid "Transport" @@ -630,11 +631,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "At least one method is needed per notification." -msgstr "" +msgstr "Na notifikovanie je potrebná aspoň jedna metóda." #. Template: AdminAppointmentNotificationEvent msgid "Active by default in agent preferences" -msgstr "" +msgstr "Štandartne aktívny v nastaveniach agenta" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -645,11 +646,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "This feature is currently not available." -msgstr "" +msgstr "Táto funkcia momentálne nie je k dispozícii." #. Template: AdminAppointmentNotificationEvent msgid "Upgrade to %s" -msgstr "" +msgstr "Aktualizované na %s" #. Template: AdminAppointmentNotificationEvent msgid "Please activate this transport in order to use it." @@ -657,15 +658,15 @@ #. Template: AdminAppointmentNotificationEvent msgid "No data found" -msgstr "" +msgstr "Neboli nájdené žiadne dáta" #. Template: AdminAppointmentNotificationEvent msgid "No notification method found." -msgstr "" +msgstr "Nebola nájdená notifikačná metóda." #. Template: AdminAppointmentNotificationEvent msgid "Notification Text" -msgstr "" +msgstr "Text notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -675,7 +676,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Remove Notification Language" -msgstr "" +msgstr "Vymaž jazyk notifikácie" #. Template: AdminAppointmentNotificationEvent msgid "Subject" @@ -687,15 +688,15 @@ #. Template: AdminAppointmentNotificationEvent msgid "Message body" -msgstr "" +msgstr "Telo správy" #. Template: AdminAppointmentNotificationEvent msgid "Add new notification language" -msgstr "" +msgstr "Pridaj nový notifikačný jazyk" #. Template: AdminAppointmentNotificationEvent msgid "Save Changes" -msgstr "" +msgstr "Ulož zmeny" #. Template: AdminAppointmentNotificationEvent msgid "Tag Reference" @@ -703,7 +704,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Notifications are sent to an agent." -msgstr "" +msgstr "Notifikácie boli poslané agentovi." #. Template: AdminAppointmentNotificationEvent msgid "You can use the following tags" @@ -743,7 +744,7 @@ #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Article visible for customer" -msgstr "" +msgstr "Článok viditeľný pre zákazníka" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "" @@ -753,7 +754,7 @@ #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Email template" -msgstr "" +msgstr "Vzor emailu" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "" @@ -762,11 +763,11 @@ #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Enable email security" -msgstr "" +msgstr "Povoliť zabezpečenie e-mailu" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "Email security level" -msgstr "" +msgstr "Úroveň zabezpečenia e-mailu" #. Template: AdminAppointmentNotificationEventTransportEmailSettings msgid "If signing key/certificate is missing" @@ -790,11 +791,11 @@ #. Template: AdminAttachment msgid "Filter for Attachments" -msgstr "" +msgstr "Filter pre prílohy" #. Template: AdminAttachment msgid "Filter for attachments" -msgstr "" +msgstr "Filter pre prílohy" #. Template: AdminAttachment msgid "Filename" @@ -810,7 +811,7 @@ #. Template: AdminAttachment msgid "Do you really want to delete this attachment?" -msgstr "" +msgstr "Chceš skutočne vymazať túto prílohu?" #. Template: AdminAttachment msgid "Attachment" @@ -870,7 +871,7 @@ #. Template: AdminAutoResponse msgid "Ticket owner options" -msgstr "" +msgstr "Možnosti vlastníka tiketu" #. Template: AdminAutoResponse msgid "Ticket responsible options" @@ -991,11 +992,11 @@ #. Template: AdminCommunicationLog msgid "Communication Log" -msgstr "" +msgstr "Komunikačný log" #. Template: AdminCommunicationLog msgid "Time range" -msgstr "" +msgstr "Časové rozpätie" #. Template: AdminCommunicationLog msgid "Show only communication logs created in specific time range." @@ -7781,8 +7782,7 @@ msgstr "Nastavenia" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9232,10 @@ msgid "Expand" msgstr "Rozšíriť" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10189,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -10967,47 +10975,47 @@ #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "0 seconds" -msgstr "" +msgstr "0 sekúnd" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "15 seconds" -msgstr "" +msgstr "15 sekúnd" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "30 seconds" -msgstr "" +msgstr "30 sekúnd" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "45 seconds" -msgstr "" +msgstr "45 sekúnd" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 minute" -msgstr "" +msgstr "1 minuta" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 minutes" -msgstr "" +msgstr "2 minuty" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 minutes" -msgstr "" +msgstr "3 minuty" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 minutes" -msgstr "" +msgstr "4 minuty" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "5 minutes" -msgstr "" +msgstr "5 minút" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm @@ -11022,77 +11030,77 @@ #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "30 minutes" -msgstr "" +msgstr "30 minút" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 hour" -msgstr "" +msgstr "1 hodina" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 hours" -msgstr "" +msgstr "2 hodiny" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 hours" -msgstr "" +msgstr "3 hodiny" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 hours" -msgstr "" +msgstr "4 hodiny" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "5 hours" -msgstr "" +msgstr "5 hodín" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "6 hours" -msgstr "" +msgstr "6 hodín" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "12 hours" -msgstr "" +msgstr "12 hodín" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "18 hours" -msgstr "" +msgstr "18 hodín" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 day" -msgstr "" +msgstr "1 deň" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "2 days" -msgstr "" +msgstr "2 dni" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "3 days" -msgstr "" +msgstr "3 dni" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "4 days" -msgstr "" +msgstr "4 dni" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "6 days" -msgstr "" +msgstr "6 dní" #. Perl Module: #. Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm msgid "1 week" -msgstr "" +msgstr "1 týždeň" #. Perl Module: Kernel/Modules/AdminGenericInterfaceInvokerDefault.pm msgid "Need InvokerType" @@ -11297,6 +11305,12 @@ msgstr "Mailové konto pridané!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Posielam emailom => prijemca: pole" @@ -11450,6 +11464,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11480,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12354,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,8 +13893,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Plánovaná systémová údržba začína o:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14722,6 +14741,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14792,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14827,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14859,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15529,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16742,6 @@ msgstr "Prosím vypnite Compatibility Mode v Internet Exploreri" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Táto funkcionalita je častou %s. Prosím kontaktujte nás ak chcete vyššiu verziu %s" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22467,10 @@ msgstr "Veľký" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.sl.po otrs2-6.0.5/i18n/otrs/otrs.sl.po --- otrs2-6.0.4/i18n/otrs/otrs.sl.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.sl.po 2018-02-05 23:46:54.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Slovenian (http://www.transifex.com/otrs/OTRS/language/sl/)\n" "MIME-Version: 1.0\n" @@ -7783,8 +7783,7 @@ msgstr "Nastavitve" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9234,6 +9233,10 @@ msgid "Expand" msgstr "Razširi" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10187,6 +10190,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11299,6 +11306,12 @@ msgstr "E-račun dodan!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Razporejanje po elektronski pošti na: polje." @@ -11452,6 +11465,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11464,6 +11481,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12334,10 +12355,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13877,7 +13894,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14724,6 +14742,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14762,6 +14793,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Zahtevan je vsaj MySQL 5.x." @@ -14792,6 +14828,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14812,6 +14860,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15470,6 +15530,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16671,11 +16743,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22401,6 +22468,10 @@ msgstr "Veliko" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.sr.po otrs2-6.0.5/i18n/otrs/otrs.sr.po --- otrs2-6.0.4/i18n/otrs/otrs.sr.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.sr.po 2018-02-05 23:46:54.000000000 +0000 @@ -2,15 +2,15 @@ # Translators: # Carlos Rodríguez , 2015 # Dusan Vuckovic, 2015 -# Dusan Vuckovic, 2016-2017 +# Dusan Vuckovic, 2016-2018 # Dusan Vuckovic, 2015 # S7 Design d.o.o. , 2015 -# Милорад Јовановић , 2014-2017 +# Милорад Јовановић , 2014-2018 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Serbian (http://www.transifex.com/otrs/OTRS/language/sr/)\n" "MIME-Version: 1.0\n" @@ -188,7 +188,7 @@ #. Template: AdminACLEdit msgid "Name" -msgstr "Име" +msgstr "Назив" #. Template: AdminACLEdit msgid "Stop after match" @@ -2008,7 +2008,7 @@ #. Template: AdminGenericAgent msgid "The name you entered already exists." -msgstr "Име које сте унели већ постоји." +msgstr "Назив које сте унели већ постоји." #. Template: AdminGenericAgent msgid "Automatic Execution (Multiple Tickets)" @@ -2078,7 +2078,7 @@ #. Template: AdminGenericAgent msgid "To add a new event select the event object and event name" -msgstr "За додавање новог догађаја изаберите објект догађаја и име догађаја" +msgstr "За додавање новог догађаја изаберите објекат и назив догађаја" #. Template: AdminGenericAgent msgid "Select Tickets" @@ -2529,7 +2529,7 @@ #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "Please provide a unique name for this web service." -msgstr "Молимо да обезбедите јединствено име за овај веб сервис." +msgstr "Молимо да обезбедите јединствени назив за овај веб сервис." #. Template: AdminGenericInterfaceErrorHandlingDefault msgid "Error handling module backend" @@ -2822,11 +2822,11 @@ #. Template: AdminGenericInterfaceInvokerDefault msgid "" "The name is typically used to call up an operation of a remote web service." -msgstr "Име се обично користи за покретање операције удаљеног веб сервиса." +msgstr "Назив се обично користи за покретање операције удаљеног веб сервиса." #. Template: AdminGenericInterfaceInvokerDefault msgid "Please provide a unique name for this web service invoker." -msgstr "Молимо употребите јединствено име за овог позиваоца веб сервиса." +msgstr "Молимо употребите јединствени назив за овог позиваоца веб сервиса." #. Template: AdminGenericInterfaceInvokerDefault msgid "Invoker backend" @@ -2882,7 +2882,7 @@ msgid "" "To add a new event select the event object and event name and click on the " "\"+\" button" -msgstr "За додавање новог догађаја изаберите објект догађаја и име догађаја па кликните на \"+\" дугме" +msgstr "За додавање новог догађаја изаберите објекат и назив догађаја па кликните на \"+\" дугме" #. Template: AdminGenericInterfaceInvokerDefault msgid "" @@ -3281,7 +3281,7 @@ "Define the route that should get mapped to this operation. Variables marked " "by a ':' will get mapped to the entered name and passed along with the " "others to the mapping. (e.g. /Ticket/:TicketID)." -msgstr "Дефинише руту која ће бити мапирана на ову операцију. Променљиве обележене са ':' ће бити мапиране на унето име и прослеђене са осталима (нпр. /Ticket/:TicketID)." +msgstr "Дефинише руту која ће бити мапирана на ову операцију. Променљиве обележене са ':' ће бити мапиране за унети назив и прослеђене са осталима (нпр. /Ticket/:TicketID)." #. Template: AdminGenericInterfaceTransportHTTPREST msgid "Valid request methods for Operation" @@ -3592,7 +3592,7 @@ #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Request name scheme" -msgstr "Захтев за шему имена" +msgstr "Захтев за шему назива" #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Select how SOAP request function wrapper should be constructed." @@ -3600,7 +3600,7 @@ #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "'FunctionName' is used as example for actual invoker/operation name." -msgstr "'FunctionName' се користи као пример за стварно име позиваоца/операције." +msgstr "'FunctionName' се користи као пример за стваран назив позиваоца/операције." #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "'FreeText' is used as example for actual configured value." @@ -3608,11 +3608,11 @@ #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Request name free text" -msgstr "Слободан текст имена захтева" +msgstr "Слободан текст назива захтева" #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Text to be used to as function wrapper name suffix or replacement." -msgstr "Текст који ће бити кориштен као наставак имена или замена омотача функције." +msgstr "Текст који ће бити кориштен као наставак назива или замена омотача функције." #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "" @@ -3622,7 +3622,7 @@ #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Response name scheme" -msgstr "Шема имена одговора" +msgstr "Шема назива одговора" #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Select how SOAP response function wrapper should be constructed." @@ -3630,7 +3630,7 @@ #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "Response name free text" -msgstr "Слободан текст имена одговора" +msgstr "Слободан текст назива одговора" #. Template: AdminGenericInterfaceTransportHTTPSOAP msgid "" @@ -3682,7 +3682,7 @@ #. Template: AdminGenericInterfaceWebservice msgid "The name must be unique." -msgstr "Име мора бити јединствено." +msgstr "Назив мора бити јединствен." #. Template: AdminGenericInterfaceWebservice msgid "Clone" @@ -5511,7 +5511,7 @@ #. Template: AdminQueue msgid "A queue with this name already exists!" -msgstr "Ред са овим именом већ постоји!" +msgstr "Ред са овим називом већ постоји!" #. Template: AdminQueue msgid "" @@ -6614,7 +6614,7 @@ #. Template: AdminSystemAddress msgid "Display name" -msgstr "Прикажи име" +msgstr "Прикажи назив" #. Template: AdminSystemAddress msgid "This email address is already used as system email address." @@ -7010,7 +7010,7 @@ #. Template: AdminType msgid "A type with this name already exists!" -msgstr "Тип са овим именом већ постоји!" +msgstr "Тип са овим називом већ постоји!" #. Template: AdminType msgid "" @@ -7784,9 +7784,8 @@ msgstr "Подешавања" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." -msgstr "Упозорење! Тренутно не мењате сопствена подешавање, већ она од %s." +msgid "Please note: you're currently editing the preferences of %s." +msgstr "" #. Template: AgentPreferences msgid "Go back to editing this agent" @@ -9235,6 +9234,10 @@ msgid "Expand" msgstr "Прошири" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "Aжурирај нацрт" @@ -9543,7 +9546,7 @@ #. Template: InstallerSystem msgid "Fully qualified domain name of your system." -msgstr "Пуно име домена вашег система" +msgstr "Пун назив домена вашег система" #. Template: InstallerSystem msgid "AdminEmail" @@ -10188,6 +10191,10 @@ msgstr "Учитавање, молимо сачекајте..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "Кликните да одаберете датотеке или их једноставно превуците овде." @@ -11300,6 +11307,12 @@ msgstr "Додат имејл налог!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Отпремање путем имејла За: поље." @@ -11453,6 +11466,10 @@ msgstr "Инсталирано" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "Пакет успешно ажуриран" @@ -11465,6 +11482,10 @@ msgstr "Зависни пакети успешно инсталирани" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "Пакет садржи цикличне зависности" @@ -12335,10 +12356,6 @@ msgstr "Подешавање није пронађено!" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "Ово својство је део %s. Молимо да нас контактирате на %s за ажурирање." - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "Систем није успео да поништи подешавање!" @@ -13399,7 +13416,7 @@ #. Perl Module: Kernel/Modules/Installer.pm msgid "Wrong database collation (%s is %s, but it needs to be utf8)." -msgstr "" +msgstr "Неисправно подешена база података (%s је %s, а требало би да буде utf8)." #. Perl Module: Kernel/Modules/PublicCalendar.pm msgid "No %s!" @@ -13878,8 +13895,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Период одржавања система ће отпочети у:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "Период одржавања система ће отпочети у: %s и очекивано је да се заврши у: %s" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14725,6 +14743,19 @@ msgstr "Подешавање innodb_log_file_size мора бити барем 256 MB." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Максимална величина упита" @@ -14763,6 +14794,11 @@ msgstr "Пронађене су табеле са различитим механизмом за складиштење него што је предефинисани механизам." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "Неопходан је MySQL 5.x или више." @@ -14793,6 +14829,18 @@ msgstr "SQL провера NLS_DATE_FORMAT подешавања" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Подешавање client_encoding мора бити UNICODE или UTF8." @@ -14813,6 +14861,18 @@ msgstr "Подешавање DateStyle мора бити ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "Неопходан је PostgreSQL 9.2 или више." @@ -15471,6 +15531,18 @@ msgstr "Недостаје кључ %s!" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "Неважеће подешавање: %s" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "Није било могуће искомбиновати вредност подешавања у perl мапу." + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "Није било могуће обезбедити распоређивање за UserID '%s'!" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "Сва подешавања" @@ -16153,7 +16225,7 @@ "appropriate changes in the SysConfig, you will be locked out of the " "administrations panel! If this happens, please rename the group back to " "admin per SQL statement." -msgstr "УПОЗОРЕЊЕ: Ако промените име групе 'admin' пре адекватног подешавања у системској конфигурацији, изгубићете приступ административном панелу! Уколико се то деси, вратите име групи у admin помоћу SQL команде." +msgstr "УПОЗОРЕЊЕ: Ако промените назив групе 'admin' пре адекватног подешавања у системској конфигурацији, изгубићете приступ административном панелу! Уколико се то деси, вратите назив групи у admin помоћу SQL команде." #. JS File: Core.Agent.Admin.MailAccount msgid "Delete this Mail Account" @@ -16672,11 +16744,6 @@ msgstr "Молимо да искључите мод компатибилности у Интернет експлореру!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Ово својство је део %s. Молимо да на с контактирате на %s за ажурирање." - -#. JS File: Core.Agent msgid "Find out more" msgstr "Сазнај више" @@ -18078,7 +18145,7 @@ #. SysConfig msgid "Communication log limit per page for Communication Log Overview." -msgstr "" +msgstr "Ограничење броја логова по страни за преглед комуникационих логова." #. SysConfig msgid "CommunicationLog Overview Limit" @@ -18304,7 +18371,7 @@ #. SysConfig msgid "Create new email ticket." -msgstr "Креирање новог Имејл тикета." +msgstr "Креирање новог имејл тикета." #. SysConfig msgid "Create new phone ticket (inbound)." @@ -18532,7 +18599,7 @@ #. SysConfig msgid "Default value for NameX" -msgstr "Подразумевана вредност за ИмеХ" +msgstr "Подразумевана вредност за NameX" #. SysConfig msgid "" @@ -20689,7 +20756,7 @@ "Defines the ticket fields that are going to be displayed calendar events. " "The \"Key\" defines the field or ticket attribute and the \"Content\" " "defines the display name." -msgstr "Дефинише поља тикета која ће бити приказана у календару догађаја. \"Кључ\" дефинише поље или атрибут тикета, а \"Садржај\" дефинише приказано име." +msgstr "Дефинише поља тикета која ће бити приказана у календару догађаја. \"Кључ\" дефинише поље или атрибут тикета, а \"Садржај\" дефинише приказан назив." #. SysConfig msgid "Defines the ticket plugin for calendar appointments." @@ -21097,7 +21164,7 @@ #. SysConfig msgid "Dynamic fields limit per page for Dynamic Fields Overview." -msgstr "" +msgstr "Ограничење динамичких поља по страни за приказ динамичких поља." #. SysConfig msgid "" @@ -22402,6 +22469,10 @@ msgstr "Велико" #. SysConfig +msgid "Last Screen Overview" +msgstr "Преглед последњег екрана" + +#. SysConfig msgid "Last customer subject" msgstr "Последњи предмет поруке клијента" @@ -22982,7 +23053,7 @@ #. SysConfig msgid "NameX" -msgstr "ИмеХ" +msgstr "NameX" #. SysConfig msgid "New Ticket" @@ -25627,7 +25698,7 @@ "notifications. The sender name is used to build the complete display name " "for the notification master (i.e. \"OTRS Notifications\" " "otrs@your.example.com)." -msgstr "Дефинише име које ће апликација користити приликом слања обавештења. Име се користи у називу пошиљаоца обавештења (нпр. \"OTRS Notifications\" otrs@your.example.com)." +msgstr "Дефинише назив које ће апликација користити приликом слања обавештења. НАзив се користи у називу пошиљаоца обавештења (нпр. \"OTRS Notifications\" otrs@your.example.com)." #. SysConfig msgid "" @@ -26167,15 +26238,15 @@ #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Medium\"." -msgstr "" +msgstr "Ограничење тикета по страни за преглед типа \"средње\"." #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Preview\"." -msgstr "" +msgstr "Ограничење тикета по страни за преглед типа \"приказ\"." #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Small\"." -msgstr "" +msgstr "Ограничење тикета по страни за преглед типа \"мало\"." #. SysConfig msgid "Ticket notifications" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.sv.po otrs2-6.0.5/i18n/otrs/otrs.sv.po --- otrs2-6.0.4/i18n/otrs/otrs.sv.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.sv.po 2018-02-05 23:46:54.000000000 +0000 @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Swedish (http://www.transifex.com/otrs/OTRS/language/sv/)\n" "MIME-Version: 1.0\n" @@ -7790,8 +7790,7 @@ msgstr "Inställningar" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9241,6 +9240,10 @@ msgid "Expand" msgstr "Expandera" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10194,6 +10197,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11306,6 +11313,12 @@ msgstr "E-postkonto tillagt!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Skickar iväg enligt e-postmeddelandets till-fält." @@ -11459,6 +11472,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11471,6 +11488,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12341,10 +12362,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13884,8 +13901,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Systemunderhåll kommer att påbörjas:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14731,6 +14749,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14769,6 +14800,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x eller senare krävs." @@ -14799,6 +14835,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14819,6 +14867,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15477,6 +15537,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16678,11 +16750,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22408,6 +22475,10 @@ msgstr "Stor" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.sw.po otrs2-6.0.5/i18n/otrs/otrs.sw.po --- otrs2-6.0.4/i18n/otrs/otrs.sw.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.sw.po 2018-02-05 23:46:54.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Swahili (http://www.transifex.com/otrs/OTRS/language/sw/)\n" "MIME-Version: 1.0\n" @@ -7783,8 +7783,7 @@ msgstr "Pendekezo" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9234,6 +9233,10 @@ msgid "Expand" msgstr "Panua" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10187,6 +10190,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11299,6 +11306,12 @@ msgstr "Akaunti ya barua pepe imeongezwa!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Tuma kwa barua pepe kwenda: uga." @@ -11452,6 +11465,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11464,6 +11481,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12334,10 +12355,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13877,7 +13894,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14724,6 +14742,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Kiwango cha juu ukubwa wa ulizo" @@ -14762,6 +14793,11 @@ msgstr "Meza zenye injini ya kuifadhi za tofauti na injini chaguo-msingi zimepatikana." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "MySQL 5.x au zaidi inahitajika." @@ -14792,6 +14828,18 @@ msgstr "Mpangilio wa NLS_DATE_FORMAT angalio la SQL" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "Mpangilio client_encoding unahitaji kuwa UNICODE au UTF8" @@ -14812,6 +14860,18 @@ msgstr "Mpangilio DateStyle unahitaji kuwa ISO." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15470,6 +15530,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16671,11 +16743,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22401,6 +22468,10 @@ msgstr "Kubwa" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.th_TH.po otrs2-6.0.5/i18n/otrs/otrs.th_TH.po --- otrs2-6.0.4/i18n/otrs/otrs.th_TH.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.th_TH.po 2018-02-05 23:46:54.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/otrs/OTRS/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -7780,8 +7780,7 @@ msgstr "การกำหนดลักษณะ" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9230,10 @@ msgid "Expand" msgstr "การขยาย" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10187,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11303,12 @@ msgstr "เพิ่มบัญชีอีเมลแล้ว!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "ส่งโดยการส่งอีเมล์ไปที่: ฟิลด์" @@ -11449,6 +11462,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11478,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12352,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,8 +13891,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "ระยะเวลาการบำรุงรักษาระบบจะเริ่มต้นที่:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14721,6 +14739,19 @@ msgstr "การตั้งค่า innodb_log_file_size ต้องมีขนาดอย่างน้อย256 MB" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "ขนาดสูงสุดของ Query" @@ -14759,6 +14790,11 @@ msgstr "ตารางที่มีเครื่องมือเก็บที่แตกต่างจากเครื่องมือเริ่มต้นถูกค้นพบ" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "จำเป็นต้องใช้ MySQL 5.x หรือสูงกว่า" @@ -14789,6 +14825,18 @@ msgstr "NLS_DATE_FORMAT ตั้งค่าการตรวจสอบ SQL" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "การตั้งค่า client_encoding จะต้องเป็น UNICODE หรือ UTF8" @@ -14809,6 +14857,18 @@ msgstr "การตั้งค่า DateStyle จะต้องเป็น ISO" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15527,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16740,6 @@ msgstr "กรุณาปิดโหมดความเข้ากันได้ใน Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "ฟีเจอร์นี้เป็นส่วนหนึ่งของ%s กรุณาติดต่อได้ที่%s สำหรับการอัพเกรด" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22465,10 @@ msgstr "ขนาดใหญ่" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "หัวข้อล่าสุดของลูกค้า" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.tr.po otrs2-6.0.5/i18n/otrs/otrs.tr.po --- otrs2-6.0.4/i18n/otrs/otrs.tr.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.tr.po 2018-02-05 23:46:54.000000000 +0000 @@ -1,12 +1,13 @@ # # Translators: +# Fikret Kavak , 2018 # Kaya Zeren , 2015 # Sefer , 2015 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Turkish (http://www.transifex.com/otrs/OTRS/language/tr/)\n" "MIME-Version: 1.0\n" @@ -17,7 +18,7 @@ #. Template: AdminACL msgid "ACL Management" -msgstr "" +msgstr "ACL Yönetimi" #. Template: AdminACL msgid "Actions" @@ -25,27 +26,27 @@ #. Template: AdminACL msgid "Create New ACL" -msgstr "" +msgstr "Yeni ACL Oluştur" #. Template: AdminACL msgid "Deploy ACLs" -msgstr "" +msgstr "ACL'leri Dağıt" #. Template: AdminACL msgid "Export ACLs" -msgstr "" +msgstr "ACL'leri Dışa Aktar" #. Template: AdminACL msgid "Filter for ACLs" -msgstr "" +msgstr "ACL'leri Filtrele" #. Template: AdminACL msgid "Just start typing to filter..." -msgstr "" +msgstr "Filtrelemek için yazmaya başlayın..." #. Template: AdminACL msgid "Configuration Import" -msgstr "" +msgstr "Yapılandırmayı İçeri Aktar" #. Template: AdminACL msgid "" @@ -59,15 +60,15 @@ #. Template: AdminACL msgid "Overwrite existing ACLs?" -msgstr "" +msgstr "Varolan ACL'lerin üzerine yazılsın mı?" #. Template: AdminACL msgid "Upload ACL configuration" -msgstr "" +msgstr "Yapılandırmayı karşıya yükle" #. Template: AdminACL msgid "Import ACL configuration(s)" -msgstr "" +msgstr "ACL yapılandırma(larını) içe aktar" #. Template: AdminACL msgid "Description" @@ -99,7 +100,7 @@ #. Template: AdminACL msgid "ACL name" -msgstr "" +msgstr "ACL Adı" #. Template: AdminACL msgid "Comment" @@ -127,11 +128,11 @@ #. Template: AdminACLEdit msgid "Edit ACL %s" -msgstr "" +msgstr "ACL Düzenle" #. Template: AdminACLEdit msgid "Edit ACL" -msgstr "" +msgstr "ACL Düzenle" #. Template: AdminACLEdit msgid "Go to overview" @@ -139,15 +140,15 @@ #. Template: AdminACLEdit msgid "Delete ACL" -msgstr "" +msgstr "ACL Sil" #. Template: AdminACLEdit msgid "Delete Invalid ACL" -msgstr "" +msgstr "Geçersiz ACL'yi Sil" #. Template: AdminACLEdit msgid "Match settings" -msgstr "" +msgstr "Eşleşme Ayarları" #. Template: AdminACLEdit msgid "" @@ -158,7 +159,7 @@ #. Template: AdminACLEdit msgid "Change settings" -msgstr "" +msgstr "Ayarları Değiştir" #. Template: AdminACLEdit msgid "" @@ -172,7 +173,7 @@ #. Template: AdminACLEdit msgid "documentation" -msgstr "" +msgstr "Döküman" #. Template: AdminACLEdit msgid "Show or hide the content" @@ -180,7 +181,7 @@ #. Template: AdminACLEdit msgid "Edit ACL Information" -msgstr "" +msgstr "ACL Bilgisini Düzenle" #. Template: AdminACLEdit msgid "Name" @@ -192,11 +193,11 @@ #. Template: AdminACLEdit msgid "Edit ACL Structure" -msgstr "" +msgstr "ACL Yapısını Düzenle" #. Template: AdminACLEdit msgid "Save ACL" -msgstr "" +msgstr "ACL'yi Kaydet" #. Template: AdminACLEdit msgid "Save" @@ -208,7 +209,7 @@ #. Template: AdminACLEdit msgid "Save and finish" -msgstr "" +msgstr "Kaydet ve bitir" #. Template: AdminACLEdit msgid "Cancel" @@ -216,7 +217,7 @@ #. Template: AdminACLEdit msgid "Do you really want to delete this ACL?" -msgstr "" +msgstr "Bu ACL'yi silmek istediğinizden emin misiniz?" #. Template: AdminACLNew msgid "" @@ -226,35 +227,35 @@ #. Template: AdminAppointmentCalendarManage msgid "Calendar Management" -msgstr "" +msgstr "Takvimleri Yönet" #. Template: AdminAppointmentCalendarManage msgid "Add Calendar" -msgstr "" +msgstr "Takvime Ekle" #. Template: AdminAppointmentCalendarManage msgid "Edit Calendar" -msgstr "" +msgstr "Takvimi Düzenle" #. Template: AdminAppointmentCalendarManage msgid "Go back" -msgstr "" +msgstr "Geri" #. Template: AdminAppointmentCalendarManage msgid "Calendar Overview" -msgstr "" +msgstr "Takvim Ön İzlemesi" #. Template: AdminAppointmentCalendarManage msgid "Add new Calendar" -msgstr "" +msgstr "Yeni Takvim Ekle" #. Template: AdminAppointmentCalendarManage msgid "Import Appointments" -msgstr "" +msgstr "Atamaları Al" #. Template: AdminAppointmentCalendarManage msgid "Calendar Import" -msgstr "" +msgstr "Takvimi İçe Aktar" #. Template: AdminAppointmentCalendarManage msgid "" @@ -269,15 +270,15 @@ #. Template: AdminAppointmentCalendarManage msgid "Upload calendar configuration" -msgstr "" +msgstr "Takvim yapılandırmasını yükle" #. Template: AdminAppointmentCalendarManage msgid "Import Calendar" -msgstr "" +msgstr "Takvimi İçe Aktar" #. Template: AdminAppointmentCalendarManage msgid "Filter for calendars" -msgstr "" +msgstr "Takvimler için filtre uygula" #. Template: AdminAppointmentCalendarManage msgid "" @@ -321,19 +322,19 @@ #. Template: AdminAppointmentCalendarManage msgid "URL" -msgstr "" +msgstr "URL" #. Template: AdminAppointmentCalendarManage msgid "Export calendar" -msgstr "" +msgstr "Takvimi Dışa Aktar" #. Template: AdminAppointmentCalendarManage msgid "Download calendar" -msgstr "" +msgstr "Takvimi İndir" #. Template: AdminAppointmentCalendarManage msgid "Copy public calendar URL" -msgstr "" +msgstr "Genel takvim URL'sini kopyala" #. Template: AdminAppointmentCalendarManage msgid "Calendar" @@ -341,27 +342,27 @@ #. Template: AdminAppointmentCalendarManage msgid "Calendar name" -msgstr "" +msgstr "Takvim adı" #. Template: AdminAppointmentCalendarManage msgid "Calendar with same name already exists." -msgstr "" +msgstr "Aynı ada sahip takvim zaten mevcut." #. Template: AdminAppointmentCalendarManage msgid "Color" -msgstr "" +msgstr "Renk" #. Template: AdminAppointmentCalendarManage msgid "Permission group" -msgstr "" +msgstr "İzin grubu" #. Template: AdminAppointmentCalendarManage msgid "Ticket Appointments" -msgstr "" +msgstr "Bilet Atama" #. Template: AdminAppointmentCalendarManage msgid "Rule" -msgstr "" +msgstr "Rol" #. Template: AdminAppointmentCalendarManage msgid "Remove this entry" @@ -373,11 +374,11 @@ #. Template: AdminAppointmentCalendarManage msgid "Start date" -msgstr "" +msgstr "Başlangıç Tarihi" #. Template: AdminAppointmentCalendarManage msgid "End date" -msgstr "" +msgstr "Bitiş Tarihi" #. Template: AdminAppointmentCalendarManage msgid "" @@ -413,7 +414,7 @@ #. Template: AdminAppointmentCalendarManage msgid "Add Rule" -msgstr "" +msgstr "Rol Ekle" #. Template: AdminAppointmentCalendarManage msgid "Submit" @@ -421,7 +422,7 @@ #. Template: AdminAppointmentImport msgid "Appointment Import" -msgstr "" +msgstr "Atamayı İçeri Aktar" #. Template: AdminAppointmentImport msgid "Uploaded file must be in valid iCal format (.ics)." @@ -449,11 +450,11 @@ #. Template: AdminAppointmentImport msgid "Upload calendar" -msgstr "" +msgstr "Takvimi Yükle" #. Template: AdminAppointmentImport msgid "Import appointments" -msgstr "" +msgstr "Atamaları Al" #. Template: AdminAppointmentNotificationEvent msgid "Appointment Notification Management" @@ -477,11 +478,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "Filter for Notifications" -msgstr "" +msgstr "Bildirimler İçin Filtreleme" #. Template: AdminAppointmentNotificationEvent msgid "Filter for notifications" -msgstr "" +msgstr "Bildirimler için filtreleme" #. Template: AdminAppointmentNotificationEvent msgid "" @@ -549,7 +550,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Appointment Filter" -msgstr "" +msgstr "Atama Filtresi" #. Template: AdminAppointmentNotificationEvent msgid "Type" @@ -565,11 +566,11 @@ #. Template: AdminAppointmentNotificationEvent msgid "Team" -msgstr "" +msgstr "Takım" #. Template: AdminAppointmentNotificationEvent msgid "Resource" -msgstr "" +msgstr "Kaynak" #. Template: AdminAppointmentNotificationEvent msgid "Recipients" @@ -577,7 +578,7 @@ #. Template: AdminAppointmentNotificationEvent msgid "Send to" -msgstr "" +msgstr "Gönderildi" #. Template: AdminAppointmentNotificationEvent msgid "Send to these agents" @@ -7780,8 +7781,7 @@ msgstr "Tercihler" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9231,6 +9231,10 @@ msgid "Expand" msgstr "Genişlet" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10184,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11296,6 +11304,12 @@ msgstr "E-posta hesabı eklendi!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Elektronik posta Kime: alanına göre gönderiliyor." @@ -11449,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11461,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12331,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13874,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14721,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14759,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14789,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14809,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15467,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16668,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22398,6 +22466,10 @@ msgstr "Büyük" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.uk.po otrs2-6.0.5/i18n/otrs/otrs.uk.po --- otrs2-6.0.4/i18n/otrs/otrs.uk.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.uk.po 2018-02-05 23:46:54.000000000 +0000 @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Ukrainian (http://www.transifex.com/otrs/OTRS/language/uk/)\n" "MIME-Version: 1.0\n" @@ -7785,8 +7785,7 @@ msgstr "Налаштування" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9236,6 +9235,10 @@ msgid "Expand" msgstr "Розгорнути" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10189,6 +10192,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11301,6 +11308,12 @@ msgstr "Електронну пошту додано!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Перенаправлення за полем електронного листа Кому:" @@ -11454,6 +11467,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11466,6 +11483,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12336,10 +12357,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13879,8 +13896,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "Період обслуговування системи почнеться:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14726,6 +14744,19 @@ msgstr "Налаштування innodb_log_file_size має бути, принаймні, 256 МБ." #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "Максимальний розмір вибірки" @@ -14764,6 +14795,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14794,6 +14830,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14814,6 +14862,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15472,6 +15532,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16673,11 +16745,6 @@ msgstr "Будь ласка вимкніть Режим Сумісності в Internet Explorer!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "Ця функція є частиною %s. Будь ласка, зв'яжіться з нами за адресою %s для покращення." - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22403,6 +22470,10 @@ msgstr "Великий" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.vi_VN.po otrs2-6.0.5/i18n/otrs/otrs.vi_VN.po --- otrs2-6.0.4/i18n/otrs/otrs.vi_VN.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.vi_VN.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/otrs/OTRS/language/vi_VN/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "Tuỳ chọn" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "Mở rộng" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "Gửi bằng email tới: trường." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "Rộng" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.zh_CN.po otrs2-6.0.5/i18n/otrs/otrs.zh_CN.po --- otrs2-6.0.4/i18n/otrs/otrs.zh_CN.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.zh_CN.po 2018-02-05 23:46:54.000000000 +0000 @@ -14,14 +14,14 @@ # Stang . , 2016 # 文浩坚 , 2015-2016 # 汇民 王 , 2016-2017 -# 汇民 王 , 2016-2017 +# 汇民 王 , 2016-2018 # 洋 王 , 2017 # 陈德文 , 2014-2016 msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Chinese (China) (http://www.transifex.com/otrs/OTRS/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -3739,13 +3739,13 @@ #. Template: AdminGenericInterfaceWebservice msgid "Ready2Adopt Web Services" -msgstr "Ready2Adopt Web服务" +msgstr "即开即用的Web服务" #. Template: AdminGenericInterfaceWebservice msgid "" "Here you can activate Ready2Adopt web services showcasing our best practices" " that are a part of %s." -msgstr "你可以在这里激活Ready2Adopt WEB服务,作为%s的一部分展示我们的最佳实践。" +msgstr "你可以在这里激活即开即用的WEB服务,作为%s的一部分展示我们的最佳实践。" #. Template: AdminGenericInterfaceWebservice msgid "" @@ -3756,13 +3756,13 @@ #. Template: AdminGenericInterfaceWebservice msgid "Import Ready2Adopt web service" -msgstr "导入Ready2Adopt WEB服务" +msgstr "导入即开即用的WEB服务" #. Template: AdminGenericInterfaceWebservice msgid "" "Would you like to benefit from web services created by experts? Upgrade to " "%s to import some sophisticated Ready2Adopt web services." -msgstr "" +msgstr "你想从专家创建的WEB服务中受益吗?升级到%s 就能导入一些复杂的即开即用的WEB服务。" #. Template: AdminGenericInterfaceWebservice msgid "" @@ -5018,23 +5018,23 @@ #. Template: AdminProcessManagement msgid "Ready2Adopt Processes" -msgstr "" +msgstr "即开即用的流程" #. Template: AdminProcessManagement msgid "" "Here you can activate Ready2Adopt processes showcasing our best practices. " "Please note that some additional configuration may be required." -msgstr "" +msgstr "你可以在此激活能展示我们最佳实践的即开即用的流程,请注意这可能需要一些额外的配置。" #. Template: AdminProcessManagement msgid "" "Would you like to benefit from processes created by experts? Upgrade to %s " "to import some sophisticated Ready2Adopt processes." -msgstr "" +msgstr "你想从专家创建的流程中受益吗?升级到%s 就能导入一些复杂的即开即用的流程。" #. Template: AdminProcessManagement msgid "Import Ready2Adopt process" -msgstr "" +msgstr "导入即开即用的流程" #. Template: AdminProcessManagement msgid "" @@ -7795,9 +7795,8 @@ msgstr "偏好设置" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." -msgstr "警告! 您目前没有编辑自己的偏好设置,而是编辑%s的偏好设置。" +msgid "Please note: you're currently editing the preferences of %s." +msgstr "" #. Template: AgentPreferences msgid "Go back to editing this agent" @@ -9246,6 +9245,10 @@ msgid "Expand" msgstr "展开" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "更新草稿" @@ -10199,6 +10202,10 @@ msgstr "加载中,请稍候..." #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "单击以选择文件或将文件拖放到这里。" @@ -11311,6 +11318,12 @@ msgstr "邮件账号已添加!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "按收件人(To:)分派。" @@ -11464,6 +11477,10 @@ msgstr "安装时间" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "软件包已正确地更新" @@ -11476,6 +11493,10 @@ msgstr "依赖软件已正确地安装" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "软件包包含循环依赖项" @@ -12346,10 +12367,6 @@ msgstr "没有找到设置。" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "此功能是%s的一部分, 请通过%s与我们联系以进行升级。" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "系统无法重置该设置!" @@ -13410,7 +13427,7 @@ #. Perl Module: Kernel/Modules/Installer.pm msgid "Wrong database collation (%s is %s, but it needs to be utf8)." -msgstr "" +msgstr "错误的数据库排序规则(%s是%s,但需要是utf8)。" #. Perl Module: Kernel/Modules/PublicCalendar.pm msgid "No %s!" @@ -13889,8 +13906,9 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " -msgstr "系统维护期将开始于:" +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" +msgstr "一次系统维护将开始于:%s,预计结束时间为:%s。" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm msgid "OTRS Daemon is not running." @@ -14736,6 +14754,19 @@ msgstr "参数innodb_log_file_size必须设置为至少256MB。" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "最大查询大小" @@ -14774,6 +14805,11 @@ msgstr "以下表使用的存储引擎与默认存储引擎不同。" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "需要MySQL 5.X或更高版本。" @@ -14804,6 +14840,18 @@ msgstr "SQL检查NLS_DATE_FORMAT设置" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "client_encoding 需要设置为UNICODE或UTF8。" @@ -14824,6 +14872,18 @@ msgstr "设置日期格式为国际标准格式。" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "需要PostgreSQL 9.2或更高版本。" @@ -15482,6 +15542,18 @@ msgstr "缺失键%s!" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "无效的设置:%s" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "无法将设置值组合成一个perl哈希。" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "无法锁定用户ID为 '%s'的部署!" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "所有设置" @@ -16683,11 +16755,6 @@ msgstr "请关闭IE的兼容模式!" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "这个功能需要%s才能使用,请到%s联系我们升级。" - -#. JS File: Core.Agent msgid "Find out more" msgstr "了解更多" @@ -18089,7 +18156,7 @@ #. SysConfig msgid "Communication log limit per page for Communication Log Overview." -msgstr "" +msgstr "通信日志概览中每页的通信日志条目限制" #. SysConfig msgid "CommunicationLog Overview Limit" @@ -18573,7 +18640,7 @@ "they would have precedence over the automatically set values. To use this " "mapping, you have to also activate the " "Ticket::EventModulePost###4100-DynamicFieldFromCustomerUser setting." -msgstr "" +msgstr "定义客户用户数据(键)与工单动态字段(值)的映射。目的是在工单动态字段中存储客户用户数据。动态字段必须存在于系统中且启用了AgentTicketFreeText(服务人员工单自由文本),这样才能由服务人员手动设置/更新。动态字段不能在服务人员电话工单、邮件工单和客户工单中启用,否则他们将优先于自动设置值。要使用这些映射,还要激活Ticket::EventModulePost###4100-DynamicFieldFromCustomerUser的设置。" #. SysConfig msgid "" @@ -18620,7 +18687,7 @@ "Define which avatar default image should be used for the current agent if no" " gravatar is assigned to the mail address of the agent. Check " "http://gravatar.com/site/implement/images/ for further information." -msgstr "" +msgstr "如果没有分配给服务人员的邮件地址的gravatar(个人全球统一标识),则定义当前服务人员应该使用哪个头像作为默认图像。 查看 http://gravatar.com/site/implement/images/ 以了解更多信息。" #. SysConfig msgid "" @@ -19129,7 +19196,7 @@ "tickets. If enabled, only values which are actually used in any ticket will " "be available for filtering. Please note: The list of customers will always " "be retrieved like this." -msgstr "" +msgstr "定义过滤器的值是否应从所有可用的工单中检索。如果启用了,则只有实际用在工单中的值才能用于过滤。请注意:客户用户列表将像这样始终被检索。" #. SysConfig msgid "" @@ -19137,7 +19204,7 @@ "a note must be entered for all ticket actions (no matter if the note itself " "is configured as active or is originally mandatory for the individual ticket" " action screen)." -msgstr "" +msgstr "定义在服务人员界面工时管理是否是强制的。如果启用了,所有工单操作必须输入一个备注(不管是否启用了工单备注,也不管个别工单操作屏幕本来就是强制的)。" #. SysConfig msgid "Defines if time accounting must be set to all tickets in bulk action." @@ -19223,13 +19290,13 @@ msgid "" "Defines the body text for notification mails sent to agents, about new " "password." -msgstr "" +msgstr "定义发送给服务人员关于新密码的通知邮件的正文。" #. SysConfig msgid "" "Defines the body text for notification mails sent to agents, with token " "about new requested password." -msgstr "" +msgstr "定义发送给服务人员关于请求的新密码的链接的通知邮件的正文。" #. SysConfig msgid "" @@ -19241,13 +19308,13 @@ msgid "" "Defines the body text for notification mails sent to customers, about new " "password." -msgstr "" +msgstr "定义发送给客户关于新密码的通知邮件的正文。" #. SysConfig msgid "" "Defines the body text for notification mails sent to customers, with token " "about new requested password." -msgstr "" +msgstr "定义发送给客户关于请求的新密码的链接的通知邮件的正文。" #. SysConfig msgid "Defines the body text for rejected emails." @@ -19424,7 +19491,7 @@ msgid "" "Defines the default next state of a ticket, in the ticket bulk screen of the" " agent interface." -msgstr "" +msgstr "定义服务人员界面在工单批量操作屏幕的默认下一个工单状态。" #. SysConfig msgid "" @@ -20374,7 +20441,7 @@ msgid "" "Defines the next state of a ticket, in the ticket bulk screen of the agent " "interface." -msgstr "" +msgstr "定义服务人员界面在工单批量操作屏幕的下一个工单状态。" #. SysConfig msgid "" @@ -20999,7 +21066,7 @@ msgid "" "Disables sending reminder notifications to the responsible agent of a ticket" " (Ticket::Responsible needs to be enabled)." -msgstr "" +msgstr "禁止发送提醒通知给工单负责人(需要启用Ticket::Responsible设置)。" #. SysConfig msgid "" @@ -21008,7 +21075,7 @@ " system registration, support data sending, upgrading to and use of OTRS " "Business Solution™, OTRS Verify™, OTRS News and product News dashboard " "widgets, among others." -msgstr "" +msgstr "禁用本系统到OTRS集团提供云服务的服务器的通信。如果启用,某些功能如系统注册、发送支持数据、升级到OTRS Business Solution™(OTRS商业版)、OTRS Verify™(OTRS验证)、仪表板中的OTRS新闻和产品新闻小部件等将失效。" #. SysConfig msgid "" @@ -21023,7 +21090,7 @@ " reinstalled and the current basic configuration will be used to pre-" "populate the questions within the installer script. If enabled, it also " "disables the GenericAgent, PackageManager and SQL Box." -msgstr "" +msgstr "禁用WEB安装程序(http://yourhost.example.com/otrs/installer.pl),防止系统被劫持。如果不启用,系统能够被重新安装,当前的基本配置将被安装脚本的预设问题替换。如果启用了,还同时禁用了通用代理、软件包管理和SQL查询窗口。" #. SysConfig msgid "" @@ -21108,7 +21175,7 @@ #. SysConfig msgid "Dynamic fields limit per page for Dynamic Fields Overview." -msgstr "" +msgstr "动态字段概览视图的每页动态字段数限制。" #. SysConfig msgid "" @@ -21331,7 +21398,7 @@ msgid "" "Enable this if you trust in all your public and private pgp keys, even if " "they are not certified with a trusted signature." -msgstr "" +msgstr "如果你信任所有的公共和私有PGP密钥(即使它们不是可信任签名认证的),则启用这个参数。" #. SysConfig msgid "Enabled filters." @@ -21658,7 +21725,7 @@ "Force the storage of the original article text in the article search index, " "without executing filters or applying stop word lists. This will increase " "the size of the search index and thus may slow down fulltext searches." -msgstr "" +msgstr "强制将原始信件文本存储在信件搜索索引中,而不执行过滤器或应用停用词列表。 这将增加搜索索引的大小,从而可能减慢全文搜索。" #. SysConfig msgid "" @@ -22203,11 +22270,11 @@ #. SysConfig msgid "If enabled, the cache data be held in memory." -msgstr "" +msgstr "如果启用了,缓存数据将会保留在内存中。" #. SysConfig msgid "If enabled, the cache data will be stored in cache backend." -msgstr "" +msgstr "如果启用了,缓存数据将会存储到缓存后端。" #. SysConfig msgid "" @@ -22261,7 +22328,7 @@ "If this option is enabled, tickets created via the web interface, via " "Customers or Agents, will receive an autoresponse if configured. If this " "option is not enabled, no autoresponses will be sent." -msgstr "" +msgstr "如果这个选项启用了,服务人员或客户通过WEB界面创建的工单将收到自动响应(如果配置了自动响应)。如果这个选项不启用,则不会发送自动响应。" #. SysConfig msgid "If this regex matches, no message will be send by the autoresponder." @@ -22271,7 +22338,7 @@ msgid "" "If this setting is enabled, local modifications will not be highlighted as " "errors in the package manager and support data collector." -msgstr "" +msgstr "如果启用这个设置,本地修改内容不会在软件包管理器和支持数据收集工具中高亮显示为错误。" #. SysConfig msgid "" @@ -22413,6 +22480,10 @@ msgstr "详细" #. SysConfig +msgid "Last Screen Overview" +msgstr "最近屏幕概览" + +#. SysConfig msgid "Last customer subject" msgstr "最后客户主题" @@ -22641,7 +22712,7 @@ #. SysConfig msgid "Main menu item registration." -msgstr "" +msgstr "注册主菜单条目。" #. SysConfig msgid "Main menu registration." @@ -23083,7 +23154,7 @@ #. SysConfig msgid "Number of tickets to be displayed in each page." -msgstr "" +msgstr "每页显示的工单数量。" #. SysConfig msgid "OTRS Group Services" @@ -23106,7 +23177,7 @@ "iterations. During import process, it might happen that ICS file contains " "such Appointments. Instead, system creates all Appointments in the past, " "plus Appointments for the next N months (120 months/10 years by default)." -msgstr "" +msgstr "OTRS不支持对没有结束日期或没有重复次数的预约做循环处理。在导入过程中,可能有ICS文件包含了此类预约。作为替代,系统将所有的此类预约创建为已过去的预约,然后加上接下来的N个月(默认120个月或10年)的重复预约。" #. SysConfig msgid "Open Tickets / Need to be answered" @@ -23771,7 +23842,7 @@ "Renew existing SMIME certificates from customer backend. Note: SMIME and " "SMIME::FetchFromCustomer needs to be enabled in SysConfig and customer " "backend needs to be configured to fetch UserSMIMECertificate attribute." -msgstr "" +msgstr "从客户后端更新已有的SMIME证书。注意:需要在系统配置中启用SMIME和SMIME::FetchFromCustomer,且客户后端模块需要配置为收取UserSMIMECertificate 属性。" #. SysConfig msgid "" @@ -23958,7 +24029,7 @@ " such as selection of language and theme via the agent web interface. These " "changes are only valid for the current session. It will not be possible for " "agents to change their passwords." -msgstr "" +msgstr "以“演示”模式运行系统。如果启用了,服务人员能够修改偏好设置,如通过WEB界面选择语言和主题,这些变更内容只对当前会话有效。服务人员不能修改密码。" #. SysConfig msgid "Russian" @@ -24654,43 +24725,43 @@ msgid "" "Sets the service in the close ticket screen of the agent interface " "(Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单关闭屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket free text screen of the agent interface " "(Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单自定义字段屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket note screen of the agent interface " "(Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单备注屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket owner screen of a zoomed ticket in the agent " "interface (Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单所有者屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket pending screen of a zoomed ticket in the " "agent interface (Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单挂起屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket priority screen of a zoomed ticket in the " "agent interface (Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单优先级屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" "Sets the service in the ticket responsible screen of the agent interface " "(Ticket::Service needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单负责人屏幕的服务(需要启用Ticket::Service)。" #. SysConfig msgid "" @@ -24790,7 +24861,7 @@ msgid "" "Sets the ticket type in the close ticket screen of the agent interface " "(Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单关闭屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "Sets the ticket type in the ticket bulk screen of the agent interface." @@ -24800,37 +24871,37 @@ msgid "" "Sets the ticket type in the ticket free text screen of the agent interface " "(Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单自定义字段屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" "Sets the ticket type in the ticket note screen of the agent interface " "(Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单备注屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" "Sets the ticket type in the ticket owner screen of a zoomed ticket in the " "agent interface (Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单所有者屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" "Sets the ticket type in the ticket pending screen of a zoomed ticket in the " "agent interface (Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单挂起屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" "Sets the ticket type in the ticket priority screen of a zoomed ticket in the" " agent interface (Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单优先级屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" "Sets the ticket type in the ticket responsible screen of the agent interface" " (Ticket::Type needs to be enabled)." -msgstr "" +msgstr "设置服务人员界面工单负责人屏幕的工单类型(需要启用Ticket::Type)。" #. SysConfig msgid "" @@ -24895,7 +24966,7 @@ msgid "" "Shows a count of attachments in the ticket zoom, if the article has " "attachments." -msgstr "" +msgstr "如果信件有附件,在工单详情视图显示附件数。" #. SysConfig msgid "" @@ -25366,7 +25437,7 @@ msgid "" "Shows the enabled ticket attributes in the customer interface (0 = Disabled " "and 1 = Enabled)." -msgstr "" +msgstr "在客户界面显示已启用的工单属性(0 = 禁用,1 = 启用)。" #. SysConfig msgid "" @@ -25442,7 +25513,7 @@ #. SysConfig msgid "" "Shows the title field in the close ticket screen of the agent interface." -msgstr "" +msgstr "在服务人员界面关闭工单屏幕显示工单标题字段。" #. SysConfig msgid "" @@ -25452,43 +25523,43 @@ #. SysConfig msgid "" "Shows the title field in the ticket note screen of the agent interface." -msgstr "" +msgstr "在服务人员界面工单备注屏幕显示工单标题字段。" #. SysConfig msgid "" "Shows the title field in the ticket owner screen of a zoomed ticket in the " "agent interface." -msgstr "" +msgstr "在服务人员界面工单所有者屏幕显示工单标题字段。" #. SysConfig msgid "" "Shows the title field in the ticket pending screen of a zoomed ticket in the" " agent interface." -msgstr "" +msgstr "在服务人员界面工单挂起屏幕显示工单标题字段。" #. SysConfig msgid "" "Shows the title field in the ticket priority screen of a zoomed ticket in " "the agent interface." -msgstr "" +msgstr "在服务人员界面工单优先级屏幕显示工单标题字段。" #. SysConfig msgid "" "Shows the title field in the ticket responsible screen of the agent " "interface." -msgstr "" +msgstr "在服务人员界面工单负责人屏幕显示工单标题字段。" #. SysConfig msgid "" "Shows time in long format (days, hours, minutes), if enabled; or in short " "format (days, hours), if not enabled." -msgstr "" +msgstr "如果启用,则以长格式显示时间(天、小时、分钟);如果不启用,则以短格式显示时间(天、小时)。" #. SysConfig msgid "" "Shows time use complete description (days, hours, minutes), if enabled; or " "just first letter (d, h, m), if not enabled." -msgstr "" +msgstr "如果启用,则显示时间的完整描述(天、小时、分钟);如果不启用,则只显示时间的首字母(d-天,h-时,m-分)。" #. SysConfig msgid "Signatures" @@ -25984,7 +26055,7 @@ "This event module stores attributes from CustomerUser as DynamicFields " "tickets. Please see DynamicFieldFromCustomerUser::Mapping setting for how to" " configure the mapping." -msgstr "" +msgstr "这个事件模块将客户用户的属性存储为工单动态字段,如何配置这个映射请查看DynamicFieldFromCustomerUser::Mapping设置。" #. SysConfig msgid "This is a Description for Comment on Framework." @@ -26062,7 +26133,7 @@ msgid "" "This setting shows the sorting attributes in all overview screen, not only " "in queue view." -msgstr "" +msgstr "这个设置显示所有概览屏幕(而不是仅队列视图)中的排序属性。" #. SysConfig msgid "This will allow the system to send text messages via SMS." @@ -26178,15 +26249,15 @@ #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Medium\"." -msgstr "" +msgstr "工单概览“基本”模式每页工单数量。" #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Preview\"." -msgstr "" +msgstr "工单概览“预览”模式每页工单数量。" #. SysConfig msgid "Ticket limit per page for Ticket Overview \"Small\"." -msgstr "" +msgstr "工单概览“简洁”模式每页工单数量。" #. SysConfig msgid "Ticket notifications" diff -Nru otrs2-6.0.4/i18n/otrs/otrs.zh_TW.po otrs2-6.0.5/i18n/otrs/otrs.zh_TW.po --- otrs2-6.0.4/i18n/otrs/otrs.zh_TW.po 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/i18n/otrs/otrs.zh_TW.po 2018-02-05 23:46:54.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OTRS\n" -"POT-Creation-Date: 2018-01-08 18:29+0000\n" -"PO-Revision-Date: 2018-01-08 18:33+0000\n" +"POT-Creation-Date: 2018-02-05 18:26+0000\n" +"PO-Revision-Date: 2018-02-05 18:27+0000\n" "Last-Translator: Carlos Rodríguez \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/otrs/OTRS/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -7781,8 +7781,7 @@ msgstr "個人設置" #. Template: AgentPreferences -msgid "" -"Warning! You're currently not editing your own preferences, but those of %s." +msgid "Please note: you're currently editing the preferences of %s." msgstr "" #. Template: AgentPreferences @@ -9232,6 +9231,10 @@ msgid "Expand" msgstr "展開" +#. Template: AttachmentList +msgid "Click to delete this attachment." +msgstr "" + #. Template: DraftButtons msgid "Update draft" msgstr "" @@ -10185,6 +10188,10 @@ msgstr "" #. JS Template: UploadContainer +msgid "Click to select a file for upload." +msgstr "" + +#. JS Template: UploadContainer msgid "Click to select files or just drop them here." msgstr "" @@ -11297,6 +11304,12 @@ msgstr "郵件帳號已添加!" #. Perl Module: Kernel/Modules/AdminMailAccount.pm +msgid "" +"Email account fetch already fetched by another process. Please try again " +"later!" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminMailAccount.pm msgid "Dispatching by email To: field." msgstr "按收件人(To:)分派." @@ -11450,6 +11463,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "Not correctly deployed" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "Package updated correctly" msgstr "" @@ -11462,6 +11479,10 @@ msgstr "" #. Perl Module: Kernel/Modules/AdminPackageManager.pm +msgid "The package needs to be reinstalled" +msgstr "" + +#. Perl Module: Kernel/Modules/AdminPackageManager.pm msgid "The package contains cyclic dependencies" msgstr "" @@ -12332,10 +12353,6 @@ msgstr "" #. Perl Module: Kernel/Modules/AgentPreferences.pm -msgid "This feature is part of the %s Please contact us at %s for an upgrade." -msgstr "" - -#. Perl Module: Kernel/Modules/AgentPreferences.pm msgid "System was unable to reset the setting!" msgstr "" @@ -13875,7 +13892,8 @@ #. Perl Module: #. Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm -msgid "A system maintenance period will start at: " +msgid "" +"A system maintenance period will start at: %s and is expected to stop at: %s" msgstr "" #. Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm @@ -14722,6 +14740,19 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "Invalid Default Values" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm +msgid "" +"Tables with invalid default values were found. In order to fix it " +"automatically, please run: bin/otrs.Console.pl Maint::Database::Check " +"--repair" +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm msgid "Maximum Query Size" msgstr "" @@ -14760,6 +14791,11 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm +msgid "Table check found some problems." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm msgid "MySQL 5.x or higher is required." msgstr "" @@ -14790,6 +14826,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "Primary Key Sequences and Triggers" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm +msgid "" +"The following sequences and/or triggers with possible wrong names have been " +"found. Please rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm msgid "Setting client_encoding needs to be UNICODE or UTF8." msgstr "" @@ -14810,6 +14858,18 @@ msgstr "" #. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "Primary Key Sequences" +msgstr "" + +#. Perl Module: +#. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm +msgid "" +"The following sequences with possible wrong names have been found. Please " +"rename them manually." +msgstr "" + +#. Perl Module: #. Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm msgid "PostgreSQL 9.2 or higher is required." msgstr "" @@ -15468,6 +15528,18 @@ msgstr "" #. Perl Module: Kernel/System/SysConfig.pm +msgid "Invalid setting: %s" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Could not combine settings values into a perl hash." +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm +msgid "Can not lock the deployment for UserID '%s'!" +msgstr "" + +#. Perl Module: Kernel/System/SysConfig.pm msgid "All Settings" msgstr "" @@ -16669,11 +16741,6 @@ msgstr "" #. JS File: Core.Agent -msgid "" -"This feature is part of the %s. Please contact us at %s for an upgrade." -msgstr "" - -#. JS File: Core.Agent msgid "Find out more" msgstr "" @@ -22399,6 +22466,10 @@ msgstr "詳細" #. SysConfig +msgid "Last Screen Overview" +msgstr "" + +#. SysConfig msgid "Last customer subject" msgstr "" diff -Nru otrs2-6.0.4/Kernel/Config/Files/XML/Calendar.xml otrs2-6.0.5/Kernel/Config/Files/XML/Calendar.xml --- otrs2-6.0.4/Kernel/Config/Files/XML/Calendar.xml 2017-12-12 00:32:27.000000000 +0000 +++ otrs2-6.0.5/Kernel/Config/Files/XML/Calendar.xml 2018-02-05 23:46:53.000000000 +0000 @@ -725,7 +725,7 @@ - Transport selection for appointment notifications. + Transport selection for appointment notifications. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences diff -Nru otrs2-6.0.4/Kernel/Config/Files/XML/Framework.xml otrs2-6.0.5/Kernel/Config/Files/XML/Framework.xml --- otrs2-6.0.4/Kernel/Config/Files/XML/Framework.xml 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Config/Files/XML/Framework.xml 2018-02-05 23:46:53.000000000 +0000 @@ -3203,7 +3203,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. 'PasswordRegExp' allows to match passwords against a regular expression. Define the minimum number of characters using 'PasswordMinSize'. Define if at least 2 lowercase and 2 uppercase letter characters are needed by setting the appropriate option to '1'. 'PasswordMin2Characters' defines if the password needs to contain at least 2 letter characters (set to 0 or 1). 'PasswordNeedDigit' controls the need of at least 1 digit (set to 0 or 1 to control). 'PasswordMaxLoginFailed' allows to set an agent to invalid-temporarily if max failed logins reached. + Defines the config parameters of this item, to be shown in the preferences view. 'PasswordRegExp' allows to match passwords against a regular expression. Define the minimum number of characters using 'PasswordMinSize'. Define if at least 2 lowercase and 2 uppercase letter characters are needed by setting the appropriate option to '1'. 'PasswordMin2Characters' defines if the password needs to contain at least 2 letter characters (set to 0 or 1). 'PasswordNeedDigit' controls the need of at least 1 digit (set to 0 or 1 to control). 'PasswordMaxLoginFailed' allows to set an agent to invalid-temporarily if max failed logins reached. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3225,7 +3225,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3244,7 +3244,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3262,7 +3262,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3280,7 +3280,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3297,7 +3297,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3314,7 +3314,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3331,7 +3331,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3347,7 +3347,7 @@ - Defines the config parameters of this item, to be shown in the preferences view. + Defines the config parameters of this item, to be shown in the preferences view. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3364,7 +3364,7 @@ - Gives end users the possibility to override the separator character for CSV files, defined in the translation files. + Gives end users the possibility to override the separator character for CSV files, defined in the translation files. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -3390,7 +3390,7 @@ - Defines the users avatar. + Defines the users avatar. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences diff -Nru otrs2-6.0.4/Kernel/Config/Files/XML/Ticket.xml otrs2-6.0.5/Kernel/Config/Files/XML/Ticket.xml --- otrs2-6.0.4/Kernel/Config/Files/XML/Ticket.xml 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Config/Files/XML/Ticket.xml 2018-02-05 23:46:53.000000000 +0000 @@ -1562,8 +1562,8 @@ 0 - - Shows all the articles of the ticket (expanded) in the zoom view. + + Shows all the articles of the ticket (expanded) in the agent zoom view. Frontend::Agent::View::TicketZoom 0 @@ -4665,7 +4665,7 @@ Defines if the message in the email outbound screen of the agent interface is visible for the customer by default. Frontend::Agent::View::TicketEmailOutbound - 1 + 0 @@ -6597,29 +6597,34 @@ 0.5 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 + + 0 - Disabled + 1 - Available + 2 - Enabled by default + + + + + + + + + + + + + + + + + + + + + + + + @@ -6644,29 +6649,34 @@ 0.5 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 + + 0 - Disabled + 1 - Available + 2 - Enabled by default + + + + + + + + + + + + + + + + + + + + + + + + @@ -6691,29 +6701,34 @@ 0.5 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 + + 0 - Disabled + 1 - Available + 2 - Enabled by default + + + + + + + + + + + + + + + + + + + + + + + + @@ -6738,36 +6753,41 @@ 0.5 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 1 + + 0 - Disabled + 1 - Available + 2 - Enabled by default + + + + + + + + + + + + + + + + + + + + + + + + - Parameters for the CustomQueue object in the preference view of the agent interface. + Parameters for the CustomQueue object in the preference view of the agent interface. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6783,7 +6803,7 @@ - Parameters for the CustomService object in the preference view of the agent interface. + Parameters for the CustomService object in the preference view of the agent interface. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6798,7 +6818,7 @@ - Parameters for the RefreshTime object in the preference view of the agent interface. + Parameters for the RefreshTime object in the preference view of the agent interface. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6825,7 +6845,7 @@ - Parameters for the pages (in which the tickets are shown) of the small ticket overview. + Parameters for the pages (in which the tickets are shown) of the small ticket overview. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6852,7 +6872,7 @@ - Parameters for the column filters of the small ticket overview. + Parameters for the column filters of the small ticket overview. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6868,7 +6888,7 @@ - Parameters for the pages (in which the tickets are shown) of the medium ticket overview. + Parameters for the pages (in which the tickets are shown) of the medium ticket overview. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6895,7 +6915,7 @@ - Parameters for the pages (in which the tickets are shown) of the ticket preview overview. + Parameters for the pages (in which the tickets are shown) of the ticket preview overview. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -6922,7 +6942,7 @@ - Parameters for the CreateNextMask object in the preference view of the agent interface. + Parameters for the CreateNextMask object in the preference view of the agent interface. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -7237,6 +7257,13 @@ 0 + + Shows all the articles of the ticket (expanded) in the customer zoom view. + Frontend::Customer::View::TicketZoom + + 0 + + Maximum number of tickets to be displayed in the result of a search in the customer interface. Frontend::Customer::View::TicketSearch @@ -8587,8 +8614,8 @@ Frontend::Agent::View::TicketMove - TicketZoom - LastScreenOverview + Ticket Zoom + Last Screen Overview @@ -10553,7 +10580,7 @@ - Transport selection for ticket notifications. + Transport selection for ticket notifications. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences @@ -11832,7 +11859,7 @@ - Parameters for the pages (in which the dynamic fields are shown) of the dynamic fields overview. + Parameters for the pages (in which the dynamic fields are shown) of the dynamic fields overview. Please note: setting 'Active' to 0 will only prevent agents from editing settings of this group in their personal preferences, but will still allow administrators to edit the settings of another user's behalf. Use 'PreferenceGroup' to control in which area these settings should be shown in the user interface. Frontend::Agent::View::Preferences diff -Nru otrs2-6.0.4/Kernel/GenericInterface/Event/Handler.pm otrs2-6.0.5/Kernel/GenericInterface/Event/Handler.pm --- otrs2-6.0.4/Kernel/GenericInterface/Event/Handler.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/GenericInterface/Event/Handler.pm 2018-02-05 23:46:53.000000000 +0000 @@ -310,7 +310,7 @@ @ConfigContainer = sort keys %{ $Param{Data} }; } else { - @ConfigContainer = sort @{ $Param{Data} }; + @ConfigContainer = @{ $Param{Data} }; $DataType = 'Array'; } diff -Nru otrs2-6.0.4/Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm otrs2-6.0.5/Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm --- otrs2-6.0.4/Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/GenericInterface/Operation/Ticket/TicketSearch.pm 2018-02-05 23:46:53.000000000 +0000 @@ -133,29 +133,16 @@ # At least one operator must be specified. Operators will be connected with AND, # values in an operator with OR. # You can also pass more than one argument to an operator: ['value1', 'value2'] - DynamicField => [ # optional - { - Name => 'some name', - Empty => 1, # will return dynamic fields without a value - # set to 0 to search fields with a value present - Equals => 123, - Like => 'value*', # "equals" operator with wildcard support - GreaterThan => '2001-01-01 01:01:01', - GreaterThanEquals => '2001-01-01 01:01:01', - SmallerThan => '2002-02-02 02:02:02', - SmallerThanEquals => '2002-02-02 02:02:02', - }, - # ... - ], - # or - # DynamicField => { - # Name => 'some name', - # # ... - # Equals => 123, - # # ... - #}, - - + DynamicField_FieldNameX => { + Empty => 1, # will return dynamic fields without a value + # set to 0 to search fields with a value present. + Equals => 123, + Like => 'value*', # "equals" operator with wildcard support + GreaterThan => '2001-01-01 01:01:01', + GreaterThanEquals => '2001-01-01 01:01:01', + SmallerThan => '2002-02-02 02:02:02', + SmallerThanEquals => '2002-02-02 02:02:02', + }, # article stuff (optional) From => '%spam@example.com%', diff -Nru otrs2-6.0.4/Kernel/GenericInterface/Transport/HTTP/REST.pm otrs2-6.0.5/Kernel/GenericInterface/Transport/HTTP/REST.pm --- otrs2-6.0.4/Kernel/GenericInterface/Transport/HTTP/REST.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/GenericInterface/Transport/HTTP/REST.pm 2018-02-05 23:46:53.000000000 +0000 @@ -764,8 +764,7 @@ } my $ResponseContent = $RestClient->responseContent(); - if ( !IsStringWithData($ResponseContent) ) { - + if ( $ResponseCode ne '204' && !IsStringWithData($ResponseContent) ) { $ResponseError .= ' No content provided.'; } @@ -789,6 +788,7 @@ }; } + # Send processed data to debugger. my $SizeExeeded = 0; { my $MaxSize = $Kernel::OM->Get('Kernel::Config')->Get('GenericInterface::Operation::ResponseLoggingMaxSize') @@ -814,33 +814,32 @@ } } - # Send processed data to debugger. - $Self->{DebuggerObject}->Debug( - Summary => 'JSON data received from remote system', - Data => $ResponseContent, - ); - $ResponseContent = $EncodeObject->Convert2CharsetInternal( Text => $ResponseContent, From => 'utf-8', ); # To convert the data into a hash, use the JSON module. - my $Result = $JSONObject->Decode( - Data => $ResponseContent, - ); + my $Result; - if ( !$Result ) { - my $ResponseError = $ErrorMessage . ' Error while parsing JSON data.'; + if ( $ResponseCode ne '204' ) { - # Log to debugger. - $Self->{DebuggerObject}->Error( - Summary => $ResponseError, + $Result = $JSONObject->Decode( + Data => $ResponseContent, ); - return { - Success => 0, - ErrorMessage => $ResponseError, - }; + + if ( !$Result ) { + my $ResponseError = $ErrorMessage . ' Error while parsing JSON data.'; + + # Log to debugger. + $Self->{DebuggerObject}->Error( + Summary => $ResponseError, + ); + return { + Success => 0, + ErrorMessage => $ResponseError, + }; + } } # All OK - return result. diff -Nru otrs2-6.0.4/Kernel/Language/ar_SA.pm otrs2-6.0.5/Kernel/Language/ar_SA.pm --- otrs2-6.0.4/Kernel/Language/ar_SA.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/ar_SA.pm 2018-02-05 23:46:53.000000000 +0000 @@ -23,7 +23,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.0823386957273828; + $Self->{Completeness} = 0.0821397756686799; # csv separator $Self->{Separator} = ''; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => 'إعدادات', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => '', 'Expand' => 'توسيع', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'تمت اضافة حساب البريد الإلكتروني!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => '', 'Dispatching by selected Queue.' => '', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4952,6 +4972,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'اللغة', 'Large' => 'كبير', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/bg.pm otrs2-6.0.5/Kernel/Language/bg.pm --- otrs2-6.0.4/Kernel/Language/bg.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/bg.pm 2018-02-05 23:46:53.000000000 +0000 @@ -25,7 +25,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y - %T'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.21536066424494; + $Self->{Completeness} = 0.214840379637619; # csv separator $Self->{Separator} = ';'; @@ -2439,7 +2439,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => 'Предпочитания', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2934,6 +2934,9 @@ 'Send a bugreport' => '', 'Expand' => 'Разгърнат', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3287,6 +3290,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3647,6 +3651,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Електроната поща е добавена.', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Разпределяне по поле To: от писмото.', 'Dispatching by selected Queue.' => 'Разпределение по избрана опашка.', @@ -3696,9 +3702,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4011,8 +4019,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4578,7 +4584,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon не се изпълнява.', @@ -4916,6 +4923,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4932,6 +4944,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4943,6 +4958,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4951,6 +4971,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5197,6 +5222,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5652,8 +5680,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7426,6 +7452,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Език', 'Large' => 'Подробен', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8681,6 +8708,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8938,7 +8967,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/ca.pm otrs2-6.0.5/Kernel/Language/ca.pm --- otrs2-6.0.4/Kernel/Language/ca.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/ca.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.221414980107248; + $Self->{Completeness} = 0.220880069025022; # csv separator $Self->{Separator} = ''; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Editar les seves preferències', 'Personal preferences' => '', 'Preferences' => 'Preferències', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Enviar un informe d\'error', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Compte de correu afegida!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Despatxar pel camp To: del correu', 'Dispatching by selected Queue.' => 'Despatxar per la cua seleccionada', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Gran', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/cs.pm otrs2-6.0.5/Kernel/Language/cs.pm --- otrs2-6.0.4/Kernel/Language/cs.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/cs.pm 2018-02-05 23:46:53.000000000 +0000 @@ -31,7 +31,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.210344231101885; + $Self->{Completeness} = 0.20983606557377; # csv separator $Self->{Separator} = ';'; @@ -2445,7 +2445,7 @@ 'Edit your preferences' => 'Upravit moje preference', 'Personal preferences' => '', 'Preferences' => 'Předvolby', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2940,6 +2940,9 @@ 'Send a bugreport' => 'pošli chybové hlášení', 'Expand' => 'Rozbalit', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3293,6 +3296,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3653,6 +3657,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Poštovní účet přidán!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Přiřadit podle emailu - pole KOMU:.', 'Dispatching by selected Queue.' => 'Přiřadit do vybrané fronty.', @@ -3702,9 +3708,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4017,8 +4025,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => 'Nastavení nenalezeno!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4584,7 +4590,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS plánovač není spuštěn.', @@ -4922,6 +4929,11 @@ 'InnoDB Log File Size' => 'Velikost InnoDB logu', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maximální velikost SQL dotazu', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4938,6 +4950,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Byly nalezeny tabulky z jiným než výchozím formátem úložiště tabulek.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x a vyšší je vyžadována.', @@ -4949,6 +4964,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Nastavení client_encoding musi být UNICODE nebo UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Nastavení server_encoding musi být UNICODE nebo UTF8.', @@ -4957,6 +4977,11 @@ 'Date Format' => 'Formát datumu', 'Setting DateStyle needs to be ISO.' => 'Nastavení stylu data musí být ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5203,6 +5228,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5658,8 +5686,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7432,6 +7458,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Jazyk', 'Large' => 'Velký', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8687,6 +8714,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8944,7 +8973,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/da.pm otrs2-6.0.5/Kernel/Language/da.pm --- otrs2-6.0.4/Kernel/Language/da.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/da.pm 2018-02-05 23:46:53.000000000 +0000 @@ -25,7 +25,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.389551980626189; + $Self->{Completeness} = 0.403796376186368; # csv separator $Self->{Separator} = ''; @@ -123,44 +123,44 @@ 'Changed' => 'ændret', 'Created' => 'Oprettet', 'Download' => 'Download', - 'URL' => '', - 'Export calendar' => '', - 'Download calendar' => '', - 'Copy public calendar URL' => '', + 'URL' => 'URL', + 'Export calendar' => 'Eksporter kalender', + 'Download calendar' => 'Download kalender', + 'Copy public calendar URL' => 'Kopier URL til offentlig kalender', 'Calendar' => 'Kalender', - 'Calendar name' => '', - 'Calendar with same name already exists.' => '', - 'Color' => '', - 'Permission group' => '', + 'Calendar name' => 'Navn på kalender', + 'Calendar with same name already exists.' => 'Der findes allerede en kalender med samme navn.', + 'Color' => 'Farve', + 'Permission group' => 'Tilladelsesgruppe', 'Ticket Appointments' => '', - 'Rule' => '', + 'Rule' => 'Regel', 'Remove this entry' => 'Fjern denne parameter', 'Remove' => 'Fjern', 'Start date' => 'Start dato', - 'End date' => '', + 'End date' => 'Slutdato', 'Use options below to narrow down for which tickets appointments will be automatically created.' => '', 'Queues' => 'Køer', - 'Please select a valid queue.' => '', - 'Search attributes' => '', + 'Please select a valid queue.' => 'Vælg en gyldig kø.', + 'Search attributes' => 'Søgeattributter', 'Add entry' => 'Tilføj parameter', 'Add' => 'Tilføj', 'Define rules for creating automatic appointments in this calendar based on ticket data.' => '', - 'Add Rule' => '', + 'Add Rule' => 'Tilføj Regel', 'Submit' => 'Send', # Template: AdminAppointmentImport - 'Appointment Import' => '', + 'Appointment Import' => 'Importer Aftale', 'Uploaded file must be in valid iCal format (.ics).' => '', 'If desired Calendar is not listed here, please make sure that you have at least \'create\' permissions.' => '', 'Upload' => 'Upload', - 'Update existing appointments?' => '', + 'Update existing appointments?' => 'Opdater eksisterende aftaler?', 'All existing appointments in the calendar with same UniqueID will be overwritten.' => '', - 'Upload calendar' => '', - 'Import appointments' => '', + 'Upload calendar' => 'Upload kalender', + 'Import appointments' => 'Importer aftaler', # Template: AdminAppointmentNotificationEvent 'Appointment Notification Management' => '', @@ -168,8 +168,8 @@ 'Edit Notification' => 'Rediger besked', 'Add notification' => 'Tilføj besked', 'Export Notifications' => 'Eksporter beskeder', - 'Filter for Notifications' => '', - 'Filter for notifications' => '', + 'Filter for Notifications' => 'Filter for Meddelelser', + 'Filter for notifications' => 'Filter for meddelelser', 'Here you can upload a configuration file to import appointment notifications to your system. The file needs to be in .yml format as exported by the appointment notification module.' => '', 'Overwrite existing notifications?' => 'Overskriv eksisterende beskeder?', @@ -187,12 +187,12 @@ 'Event' => 'Hændelse', 'Here you can choose which events will trigger this notification. An additional appointment filter can be applied below to only send for appointments with certain criteria.' => '', - 'Appointment Filter' => '', + 'Appointment Filter' => 'Aftalefilter', 'Type' => 'Type', 'Title' => 'Titel', 'Location' => 'Lokation', - 'Team' => '', - 'Resource' => '', + 'Team' => 'Hold', + 'Resource' => 'Resurse', 'Recipients' => 'Modtagere', 'Send to' => 'Send til', 'Send to these agents' => 'Send til disse agenter', @@ -207,12 +207,12 @@ 'These are the possible methods that can be used to send this notification to each of the recipients. Please select at least one method below.' => '', 'Enable this notification method' => 'Aktiver denne beskedafgivelsesmetode', - 'Transport' => '', + 'Transport' => 'Transport', 'At least one method is needed per notification.' => 'Mindst en metode er krævet pr. besked', 'Active by default in agent preferences' => '', 'This is the default value for assigned recipient agents who didn\'t make a choice for this notification in their preferences yet. If the box is enabled, the notification will be sent to such agents.' => '', - 'This feature is currently not available.' => '', + 'This feature is currently not available.' => 'Denne funktionalitet er i øjeblikket ikke tilgængelig.', 'Upgrade to %s' => 'Opgrader til %s', 'Please activate this transport in order to use it.' => '', 'No data found' => 'Ingen data fundet', @@ -227,7 +227,7 @@ 'Add new notification language' => 'Tilføj beskedsprog', 'Save Changes' => 'Gem ændringer', 'Tag Reference' => '', - 'Notifications are sent to an agent.' => '', + 'Notifications are sent to an agent.' => 'Meddelelser sendt til agent.', 'You can use the following tags' => 'Du kan bruge følgende tags', 'To get the first 20 character of the appointment title.' => '', 'To get the appointment attribute' => '', @@ -239,13 +239,13 @@ # Template: AdminAppointmentNotificationEventTransportEmailSettings 'Additional recipient email addresses' => 'Yderligere modtageres email adresser', - 'Article visible for customer' => '', + 'Article visible for customer' => 'Indlæg synligt for kunde', 'An article will be created if the notification is sent to the customer or an additional email address.' => '', 'Email template' => 'Email skabelon', 'Use this template to generate the complete email (only for HTML emails).' => '', - 'Enable email security' => '', + 'Enable email security' => 'Aktiver sikker email', 'Email security level' => '', 'If signing key/certificate is missing' => '', 'If encryption key/certificate is missing' => '', @@ -327,7 +327,7 @@ '', 'If you click on the different entries, you will get redirected to a detailed screen about the message.' => '', - 'Status for: %s' => '', + 'Status for: %s' => 'Status for: %s', 'Failing accounts' => '', 'Some account problems' => '', 'No account problems' => '', @@ -346,7 +346,7 @@ 'Settings' => 'Indstillinger', 'Entries per page' => '', 'No communications found.' => '', - '%s s' => '', + '%s s' => '%s s', # Template: AdminCommunicationLogAccounts 'Account Status' => '', @@ -357,20 +357,20 @@ '', 'Account status for: %s' => '', 'Status' => 'Status', - 'Account' => '', + 'Account' => 'Konto', 'Edit' => 'Rediger', - 'No accounts found.' => '', + 'No accounts found.' => 'Ingen konti fundet.', 'Communication Log Details (%s)' => '', 'Direction' => 'Retning', - 'Start Time' => '', - 'End Time' => '', + 'Start Time' => 'Starttid', + 'End Time' => 'Sluttid', 'No communication log entries found.' => '', # Template: AdminCommunicationLogCommunications - 'Duration' => '', + 'Duration' => 'Varighed', # Template: AdminCommunicationLogObjectLog - '#' => '', + '#' => '#', 'Priority' => 'Prioritet', 'Module' => 'Modul', 'Information' => 'Information', @@ -391,7 +391,7 @@ 'Search' => 'Søg', 'Wildcards like \'*\' are allowed.' => 'Jokertegn som \'*\' er tilladt.', 'Select' => 'Vælg', - 'List (only %s shown - more available)' => '', + 'List (only %s shown - more available)' => 'List (kun %s vist - der er flere)', 'total' => 'i alt', 'Please enter a search term to look for customers.' => 'Angiv søgeord for at lede efter kunder', 'Customer ID' => 'Kunde-ID', @@ -453,7 +453,7 @@ 'The syntax of this email address is incorrect.' => 'Syntaksen på denne mail-adresse er forkert.', 'This CustomerID is invalid.' => '', 'Effective Permissions for Customer User' => '', - 'Group Permissions' => '', + 'Group Permissions' => 'Gruppe-Tilladelser', 'This customer user has no group permissions.' => '', 'Table above shows effective group permissions for the customer user. The matrix takes into account all inherited permissions (e.g. via customer groups). Note: The table does not consider changes made to this form without submitting it.' => '', @@ -631,7 +631,7 @@ 'Job Settings' => 'Job-indstillinger', 'Job name' => 'Job-navn', 'The name you entered already exists.' => 'Det indtastede navn eksisterer allerede.', - 'Automatic Execution (Multiple Tickets)' => '', + 'Automatic Execution (Multiple Tickets)' => 'Automatisk udførelse (flere sager)', 'Execution Schedule' => 'Udførelses tidsplan', 'Schedule minutes' => 'Planlæg minutter', 'Schedule hours' => 'Planlæg timer', @@ -640,7 +640,7 @@ 'Denne automatisk agent vil i øjeblikket ikke køre.', 'To enable automatic execution select at least one value from minutes, hours and days!' => 'For at aktivere automatisk kørsel, vælg mindst en værdi fra minutter, timer og dage.', - 'Event Based Execution (Single Ticket)' => '', + 'Event Based Execution (Single Ticket)' => 'Handlingsbasere udførelse (Enkelt Sag)', 'Event Triggers' => 'Hændelsens udløsere', 'List of all configured events' => 'Liste med alle konfigurerede hændelser', 'Delete this event' => 'Slet denne hændelse', @@ -720,7 +720,7 @@ 'New Dynamic Field Values' => 'Ny Dynamisk Felt-værdi', 'Archive selected tickets' => 'Arkiver valgte sager', 'Add Note' => 'Tilføj Bemærkning', - 'Visible for customer' => '', + 'Visible for customer' => 'Synlig for kunde', 'Time units' => 'Tidsenheder', 'Execute Ticket Commands' => 'Udfør Sags-kommandoer', 'Send agent/customer notifications on changes' => 'Send besked til agent/kunde ved ændringer', @@ -738,7 +738,7 @@ 'Warning: You used the DELETE option. All deleted tickets will be lost!' => 'Advarsel: Du bruger SLET-muligheden. Alle slettede sager vil gå tabt!', 'Warning: There are %s tickets affected but only %s may be modified during one job execution!' => - '', + 'Advarsel: %s sager omfattet, men kun %s må ændres i én job-kørsel!', 'Affected Tickets' => 'Berørte sager', 'Age' => 'Alder', @@ -798,11 +798,11 @@ '', 'Example: Handle only errors where mapping for outgoing data could not be applied.' => '', - 'Error code' => '', + 'Error code' => 'Fejlkode', 'An error identifier for this error handling module.' => '', 'This identifier will be available in XSLT-Mapping and shown in debugger output.' => '', - 'Error message' => '', + 'Error message' => 'Fejlbesked', 'An error explanation for this error handling module.' => '', 'This message will be available in XSLT-Mapping and shown in debugger output.' => '', @@ -892,7 +892,7 @@ 'Delete all conditions' => '', 'Do you really want to delete all the conditions for this event?' => '', - 'General Settings' => '', + 'General Settings' => 'Generelle Indstillinger', 'Event type' => '', 'Conditions' => 'Betingelser', 'Conditions can only operate on non-empty fields.' => '', @@ -928,17 +928,17 @@ 'Do you really want to delete this key mapping?' => 'Vil du virkelig fjerne denne taste-binding?', # Template: AdminGenericInterfaceMappingXSLT - 'General Shortcuts' => '', - 'MacOS Shortcuts' => '', + 'General Shortcuts' => 'Generelle Genveje', + 'MacOS Shortcuts' => 'MacOS Genveje', 'Comment code' => '', 'Uncomment code' => '', 'Auto format code' => '', 'Expand/Collapse code block' => '', - 'Find' => '', - 'Find next' => '', - 'Find previous' => '', - 'Find and replace' => '', - 'Find and replace all' => '', + 'Find' => 'Find', + 'Find next' => 'Find næste', + 'Find previous' => 'Find forrige', + 'Find and replace' => 'Find og erstat', + 'Find and replace all' => 'Find og erstat alle', 'XSLT Mapping' => '', 'XSLT stylesheet' => '', 'The entered data is not a valid XSLT style sheet.' => '', @@ -953,9 +953,9 @@ 'Data key regex filters (before mapping)' => '', 'Data key regex filters (after mapping)' => '', 'Regular expressions' => '', - 'Replace' => '', - 'Remove regex' => '', - 'Add regex' => '', + 'Replace' => 'Erstat', + 'Remove regex' => 'Fjern regex', + 'Add regex' => 'Tilføj regex', 'These filters can be used to transform keys using regular expressions.' => '', 'The data structure will be traversed recursively and all configured regexes will be applied to all keys.' => @@ -1224,11 +1224,11 @@ '', 'Outgoing email can be configured via the Sendmail* settings in %s.' => '', - 'System Configuration' => '', + 'System Configuration' => 'Systemkonfiguration', 'Host' => 'Vært', 'Delete account' => 'Slet konto', 'Fetch mail' => 'Hent mail', - 'Do you really want to delete this mail account?' => '', + 'Do you really want to delete this mail account?' => 'Vil du virkelig slette denne mail-konto?', 'Password' => 'Adgangskode', 'Example: mail.example.com' => 'F.eks. post.firma.dk', 'IMAP Folder' => 'IMAP-mappe', @@ -1242,14 +1242,14 @@ 'Administration Overview' => '', 'Filter for Items' => '', 'Filter' => 'Filter', - 'Favorites' => '', + 'Favorites' => 'Favoritter', 'You can add favorites by moving your cursor over items on the right side and clicking the star icon.' => '', - 'Links' => '', + 'Links' => 'Links', 'View the admin manual on Github' => '', - 'No Matches' => '', - 'Sorry, your search didn\'t match any items.' => '', - 'Set as favorite' => '', + 'No Matches' => 'Intet fundet', + 'Sorry, your search didn\'t match any items.' => 'Beklager, men din søgning matcher ikke noget.', + 'Set as favorite' => 'Vælg som favorit', # Template: AdminNotificationEvent 'Ticket Notification Management' => 'Håndter sagsbeskeder', @@ -1732,7 +1732,7 @@ 'This filter allow you to show queues without auto responses' => '', 'Queues without Auto Responses' => '', 'This filter allow you to show all queues' => 'Dette filter tillader dig at vise alle køer', - 'Show All Queues' => '', + 'Show All Queues' => 'Vis alle køer', 'Auto Responses' => 'Autosvar', # Template: AdminQueueTemplates @@ -2044,7 +2044,7 @@ # Template: AdminSystemConfiguration 'online administrator documentation' => '', - 'System configuration' => '', + 'System configuration' => 'Systemkonfiguration', 'Navigate through the available settings by using the tree in the navigation box on the left side.' => '', 'Find certain settings by using the search field below or from search icon from the top navigation.' => @@ -2091,8 +2091,8 @@ 'Import & Export' => '', 'Upload a file to be imported to your system (.yml format as exported from the System Configuration module).' => '', - 'Upload system configuration' => '', - 'Import system configuration' => '', + 'Upload system configuration' => 'Upload systemkonfiguration', + 'Import system configuration' => 'Importer systemkonfiguration', 'Download current configuration settings of your system in a .yml file.' => '', 'Include user settings' => '', @@ -2182,7 +2182,7 @@ 'Agent Management' => 'Administrer Agenter', 'Add Agent' => 'Tilføj agent', 'Edit Agent' => 'Rediger agent', - 'Edit personal preferences for this agent' => '', + 'Edit personal preferences for this agent' => 'Rediger personlige indstillinger for denne agent', 'Agents will be needed to handle tickets.' => 'Agenter skal oprettes for at kunne håndtere sager.', 'Don\'t forget to add a new agent to groups and/or roles!' => 'Glem ikke at tilføje nye agenter til grupper og/eller roller!', 'Please enter a search term to look for agents.' => 'Angiv en søgestreng for at lede efter agenter.', @@ -2216,7 +2216,7 @@ '', # Template: AgentAppointmentCalendarOverview - 'Add new Appointment' => '', + 'Add new Appointment' => 'Tilføj ny Aftale', 'Calendars' => '', # Template: AgentAppointmentEdit @@ -2332,7 +2332,7 @@ 'Dashboard' => 'Oversigt', # Template: AgentDashboardAppointmentCalendar - 'New Appointment' => '', + 'New Appointment' => 'Ny Aftale', 'Tomorrow' => 'I morgen', 'Soon' => '', '5 days' => '', @@ -2437,13 +2437,13 @@ # Template: AgentPreferences 'Edit your preferences' => 'Opdater dine indstillinger', - 'Personal preferences' => '', + 'Personal preferences' => 'Personlige indstillinger', 'Preferences' => 'Indstillinger', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => - '', + 'Vælg dine personlige præferencer. Gem hver indstilling ved at klikke på tjekmærket til højre.', 'You can use the navigation tree below to only show settings from certain groups.' => '', 'Dynamic Actions' => '', @@ -2465,7 +2465,7 @@ 'Reset to default' => '', # Template: AgentPreferencesOverview - 'Personal Preferences' => '', + 'Personal Preferences' => 'Personlinge indstillinger', 'Choose from the groups on the right to find the settings you\'d wish to change.' => '', 'Did you know?' => '', @@ -2736,7 +2736,7 @@ 'Der er ingen dialoger tilgængelige på dette sted i processen.', 'This item has no articles yet.' => '', 'Ticket Timeline View' => '', - 'Article Overview - %s Article(s)' => '', + 'Article Overview - %s Article(s)' => 'Indlægsoversigt - %s Indlæg', 'Page %s' => '', 'Add Filter' => 'Tilføj filter', 'Set' => 'Indstil', @@ -2934,6 +2934,9 @@ 'Send a bugreport' => 'Sende en fejlrapport', 'Expand' => 'Udvid', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -2949,7 +2952,7 @@ # Template: Header 'View notifications' => '', 'Notifications' => '', - 'Notifications (OTRS Business Solution™)' => '', + 'Notifications (OTRS Business Solution™)' => 'Meddelelser (OTRS Business Solution™)', 'Logout' => 'Log ud', 'You are logged in as' => 'Du er logget ind som', @@ -3204,10 +3207,10 @@ 'Reset this setting to its default state' => '', 'Reset setting' => '', 'Allow users to adapt this setting from within their personal preferences' => - '', + 'Tillad brugere at ændre denne indstilling i deres personlige indstillinger', 'Allow users to update' => '', 'Do not longer allow users to adapt this setting from within their personal preferences' => - '', + 'Lad ikke længere brugere ændre denne indstilling i deres personlige indstillinger', 'Forbid users to update' => '', 'Show user specific changes for this setting' => '', 'Show user settings' => '', @@ -3287,7 +3290,8 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer - 'Click to select files or just drop them here.' => '', + 'Click to select a file for upload.' => '', + 'Click to select files or just drop them here.' => 'Klik for at vælge filer eller træk dem hertil.', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3459,7 +3463,7 @@ # Perl Module: Kernel/Modules/AdminCustomerGroup.pm 'No configuration for \'CustomerGroupPermissionContext\' found!' => '', - 'Please check system configuration.' => '', + 'Please check system configuration.' => 'Tjek systemkonfigurationen.', 'Invalid permission context configuration:' => '', # Perl Module: Kernel/Modules/AdminCustomerUser.pm @@ -3647,6 +3651,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Mail-konto tilføjet.', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Sendes via mail til: felt.', 'Dispatching by selected Queue.' => 'Sendes via den valgte kø.', @@ -3696,9 +3702,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -3994,7 +4002,7 @@ 'Can\'t get element data of %s!' => '', 'Can\'t get filter content data of %s!' => '', 'Customer Name' => '', - 'Customer User Name' => '', + 'Customer User Name' => 'Kundenavn', # Perl Module: Kernel/Modules/AgentLinkObject.pm 'Need SourceObject and SourceKey!' => '', @@ -4011,8 +4019,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS-dæmonen kører ikke.', @@ -4598,7 +4605,7 @@ # Perl Module: Kernel/Output/HTML/Notification/SystemConfigurationOutOfSyncCheck.pm 'The configuration is being updated, please be patient...' => '', - 'There is an error updating the system configuration!' => '', + 'There is an error updating the system configuration!' => 'Der er en fejl i opdateringen af systemkonfigurationen!', # Perl Module: Kernel/Output/HTML/Notification/UIDCheck.pm 'Don\'t use the Superuser account to work with %s! Create new Agents and work with these accounts instead.' => @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => 'InnoDB Logfil størrelse', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Indstillingen innodb_log_file_size skal være mindst 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maksimal størrelse på forespørgsler', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Der er fundet tabeller lagret med anden storage enginge end default.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x eller nyere er påkrævet.', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Indstillingen client_encoding skal være UNICODE eller UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Indstillingen server_encoding skal være UNICODE eller UTF8.', @@ -4952,6 +4972,11 @@ 'Date Format' => 'Datoformat', 'Setting DateStyle needs to be ISO.' => 'Indstillingen DateStyle skal være ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5017,7 +5042,7 @@ # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/DaemonRunning.pm 'Daemon' => 'Tjeneste', - 'Daemon is running.' => '', + 'Daemon is running.' => 'Dæmonen kører.', 'Daemon is not running.' => 'Tjeneste kører ikke.', # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/DatabaseRecords.pm @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5526,7 +5554,7 @@ # JS File: Core.Agent.Admin.SystemConfiguration 'Loading...' => 'Indlæser...', - 'Search the System Configuration' => '', + 'Search the System Configuration' => 'Søg i systemkonfigurationen', 'Please enter at least one search word to find anything.' => '', 'Unfortunately deploying is currently not possible, maybe because another agent is already deploying. Please try again later.' => '', @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Slå venligst kompatibilitet fra i Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -5782,7 +5808,7 @@ '(UserLogin) Firstname Lastname' => '(BrugerLogin) Fornavn Efternavn', '(UserLogin) Lastname Firstname' => '(BrugerLogin) Efternavn Fornavn', '(UserLogin) Lastname, Firstname' => '(BrugerLogin) Efternavn Fornavn', - '*** out of office until %s (%s d left) ***' => '', + '*** out of office until %s (%s d left) ***' => '*** ude af kontoret til og med %s (%s dage endnu) ***', '0 - Disabled' => '', '1 - Available' => '', '1 - Enabled' => '', @@ -6039,7 +6065,7 @@ 'Change the priority for this ticket' => 'Ændr denne sags prioritet', 'Change the responsible for this ticket' => 'Skift sagens ansvarlige', 'Change your avatar image.' => '', - 'Change your password and more.' => '', + 'Change your password and more.' => 'Skift password og andet', 'Changed SLA to "%s" (%s).' => '', 'Changed archive state to "%s".' => '', 'Changed customer to "%s".' => '', @@ -6075,7 +6101,7 @@ '', 'Choose for which kind of ticket changes you want to receive notifications. Please note that you can\'t completely disable notifications marked as mandatory.' => '', - 'Choose which notifications you\'d like to receive.' => '', + 'Choose which notifications you\'d like to receive.' => 'Vælg de beskeder, du gerne vil modtage', 'Christmas Eve' => 'Juleaften', 'Close this ticket' => 'Luk denne sag', 'Closed tickets (customer user)' => 'Lukkede sager (kundebruger)', @@ -6170,7 +6196,7 @@ 'Create and manage ticket types.' => 'Administrer sagstyper.', 'Create and manage web services.' => 'Opret og administrer web-services.', 'Create new Ticket.' => '', - 'Create new appointment.' => '', + 'Create new appointment.' => 'Opret ny aftale.', 'Create new email ticket and send this out (outbound).' => '', 'Create new email ticket.' => '', 'Create new phone ticket (inbound).' => '', @@ -7231,7 +7257,7 @@ 'Frontend module registration for the customer interface.' => '', 'Full value' => '', 'Fulltext index regex filters to remove parts of the text.' => '', - 'Fulltext search' => '', + 'Fulltext search' => 'Fritekstsøgning', 'Galician' => '', 'General ticket data shown in the ticket overviews (fall-back). Note that TicketNumber can not be disabled, because it is necessary.' => '', @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Sprog', 'Large' => 'Stor', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Efternavn Fornavn', 'Lastname Firstname (UserLogin)' => 'Efternavn Fornavn (BrugerLogin)', @@ -7485,7 +7512,7 @@ 'Locked Tickets' => 'Mine sager', 'Locked Tickets.' => '', 'Locked ticket.' => 'Sag trukket.', - 'Logged-In Users' => '', + 'Logged-In Users' => 'Brugere online', 'Logout of customer panel.' => '', 'Look into a ticket!' => 'Se nærmere på en sag.', 'Loop protection: no auto-response sent to "%s".' => '', @@ -8547,7 +8574,7 @@ 'Turns on drag and drop for the main navigation.' => '', 'Turns on the remote ip address check. It should not be enabled if the application is used, for example, via a proxy farm or a dialup connection, because the remote ip address is mostly different for the requests.' => '', - 'Tweak the system as you wish.' => '', + 'Tweak the system as you wish.' => 'Tilpas systemet, som du ønsker.', 'Type of daemon log rotation to use: Choose \'OTRS\' to let OTRS system to handle the file rotation, or choose \'External\' to use a 3rd party rotation mechanism (i.e. logrotate). Note: External rotation mechanism requires its own and independent configuration.' => '', 'Ukrainian' => 'Ukrainsk', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/de.pm otrs2-6.0.5/Kernel/Language/de.pm --- otrs2-6.0.4/Kernel/Language/de.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/de.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.987891368275385; + $Self->{Completeness} = 0.985849870578085; # csv separator $Self->{Separator} = ';'; @@ -2133,7 +2133,7 @@ 'Edit System Maintenance Information' => 'Systemwartungs-Information bearbeiten', 'Date invalid!' => 'Ungültiges Datum', 'Login message' => 'Anmeldungs-Nachricht', - 'This field must have less then 250 characters.' => '', + 'This field must have less then 250 characters.' => 'Dieses Feld muss weniger als 250 Zeichen lang sein.', 'Show login message' => 'Anmeldungs-Nachricht anzeigen', 'Notify message' => 'Hinweistext', 'Manage Sessions' => 'Sitzungen verwalten', @@ -2354,7 +2354,7 @@ 'Closed' => 'Geschlossen', '%s open ticket(s) of %s' => '%s offene Tickets von %s', '%s closed ticket(s) of %s' => '%s geschlossene Tickets von %s', - 'Edit customer ID' => '', + 'Edit customer ID' => 'Kundennummer bearbeiten', # Template: AgentDashboardCustomerIDStatus 'Escalated tickets' => 'Eskalierte Tickets', @@ -2438,8 +2438,8 @@ 'Edit your preferences' => 'Persönliche Einstellungen bearbeiten', 'Personal preferences' => 'Persönliche Einstellungen', 'Preferences' => 'Einstellungen', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - 'Achtung! Sie bearbeiten derzeit nicht Ihre eigenen Einstellungen, sondern die von %s.', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => 'Zurück zur Bearbeitung des Agenten', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => 'Legen Sie Ihre persönlichen Einstellungen fest. Speichern Sie Einstellungen, indem Sie das Haken-Symbol auf der rechten Seite anklicken.', @@ -2836,7 +2836,7 @@ 'There was an error in communication with the server. Server might be experiencing some temporary problems, please reload this page to check if they have been resolved.' => 'Es gab einen Fehler in der Server-Kommunikation. Der Server könnte kurzzeitige Störungen haben. Bitte laden Sie die Seite neu, um zu prüfen, ob die Probleme zwischenzeitlich behoben wurden.', 'The connection has been re-established after a temporary connection loss. Due to this, elements on this page could have stopped to work correctly. In order to be able to use all elements correctly again, it is strongly recommended to reload this page.' => - 'Die Verbindungen wurde nach einer kurzen Unterbrechung wiederhergestellt. Aus diesem Grund könnte es sein das einige Elemente der Seite nicht korrekt funktionieren. Um alle Elemente erneut korrekt nutzen zu können sollten Sie ihre Seite neue laden.', + 'Die Verbindung wurde nach einer temporären Unterbrechung wiederhergestellt. Möglicherweise funktionieren deshalb einige Elemente der aktuellen Seite nicht (mehr) korrekt. Um alle Elemente wieder wie gewünscht nutzen zu können, sollten Sie die aktuelle Seite neu laden.', # Template: CustomerLogin 'JavaScript Not Available' => 'JavaScript nicht aktiviert oder nicht unterstützt.', @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'einen Fehlerbericht senden', 'Expand' => 'Ausklappen', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Entwurf aktualisieren', 'Save as new draft' => 'Als neuen Entwurf speichern', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => 'Lade, bitte warten...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Klicken zum Auswählen oder Dateien einfach hier ablegen.', 'Click to select a file or just drop it here.' => 'Klicken zum Auswählen oder Datei einfach hier ablegen.', 'Uploading...' => 'Wird hochgeladen...', @@ -3491,7 +3495,7 @@ # Perl Module: Kernel/Modules/AdminDynamicFieldCheckbox.pm 'Undefined subaction.' => 'Unbestimmte Subaktion.', 'Need %s' => '%s benötigt', - 'Add %s field' => '', + 'Add %s field' => '%s Feld hinzufügen', 'The field does not contain only ASCII letters and numbers.' => 'Dieses Feld enthält nicht nur ASCII-Zeichen.', 'There is another field with the same name.' => 'Es existiert bereits ein Feld mit demselben Namen.', 'The field must be numeric.' => 'Das Feld darf nur Zahlen beinhalten.', @@ -3499,7 +3503,7 @@ 'Could not create the new field' => 'Konnte das neue Feld nicht anlegen', 'Need ID' => 'Kennung benötigt', 'Could not get data for dynamic field %s' => 'Konnte keine Daten für das dynamische Feld %s ermitteln.', - 'Change %s field' => '', + 'Change %s field' => '%s Feld ändern', 'The name for this field should not change.' => 'Der Name dieses Feldes sollte sich nicht ändern.', 'Could not update the field %s' => 'Das Feld %s konnte nicht aktualisiert werden', 'Currently' => 'Aktuell', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-Mail-Konto hinzugefügt!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Verteilung nach To: Feld.', 'Dispatching by selected Queue.' => 'Verteilung nach ausgewählter Queue.', @@ -3695,9 +3701,11 @@ 'Updated' => 'Aktualisiert', 'Already up-to-date' => 'Bereits aktuell', 'Installed' => 'Installiert', + 'Not correctly deployed' => '', 'Package updated correctly' => 'Paket korrekt aktualisiert', 'Package was already updated' => 'Paket wurde bereits aktualisiert', 'Dependency installed correctly' => 'Abhängigkeit korrekt installiert', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'Das Paket enthält zyklische Abhängigkeiten', 'Not found in on-line repositories' => 'Nicht im Online-Verzeichnis gefunden', 'Required version is higher than available' => 'Erforderliche Version höher als verfügbar', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => 'Benutzereinstellungen aktualisiert', 'System was unable to deploy your changes.' => 'Das System konnte Ihre Einstellungen nicht in Betrieb nehmen.', 'Setting not found!' => 'Einstellung nicht gefunden!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - 'Diese Funktion ist Teil der %s. Bitte kontaktieren Sie uns unter %s bezüglich eines Upgrades.', 'System was unable to reset the setting!' => 'Einstellung konnte nicht zurückgesetzt werden!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'System Wartung ist aktiv!', - 'A system maintenance period will start at: ' => 'Eine Systemwartungsperiode beginnt um: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Der OTRS Daemon läuft nicht.', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => 'InnoDB Log Datei Größe', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Die Einstellung innodb_log_file_size muss mindestens 256 MB betragen.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maximale Anfragegröße', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Es wurden Tabellen gefunden, die nicht die Standard-Engine nutzen.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x oder höher wird benötigt.', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT muss auf \'YYYY-MM-DD HH24:MI:SS\' gesetzt sein.', 'NLS_DATE_FORMAT Setting SQL Check' => 'SQL-Prüfung NLS_DATE_FORMAT', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Einstellung client_encoding muss UNICODE oder UTF8 sein.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Einstellung server_encoding muss UNICODE oder UTF8 sein.', @@ -4950,6 +4970,11 @@ 'Date Format' => 'Datumsformat', 'Setting DateStyle needs to be ISO.' => 'Einstellung DateStyle muss ISO sein.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => 'PostgreSQL 9.2 oder höher wird benötigt.', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => 'Konnte geänderte Einstellung nicht aktualisieren!', 'Setting could not be unlocked!' => 'Einstellung konnte nicht freigegeben werden!', 'Missing key %s!' => 'Fehlender Schlüssel %s!', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => 'Alle Einstellungen', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5453,9 +5481,9 @@ 'Derzeit läuft ein Prozess zur Paketaktualisierung. Klicken Sie hier, um Statusinformationen zu erhalten.', 'A package upgrade was recently finished. Click here to see the results.' => 'Eine Paketaktualisierung wurde kürzlich beendet. Klicken Sie hier, um die Ergebnisse zu betrachten.', - 'Update all packages' => '', + 'Update all packages' => 'Alle Pakete aktualisieren', 'Dismiss' => 'Verwerfen', - 'Update All Packages' => '', + 'Update All Packages' => 'Alle Pakete aktualisieren', 'Currently not possible' => 'Derzeit nicht möglich', 'This is currently disabled because of an ongoing package upgrade.' => 'Dies ist derzeit nicht möglich, da eine Paketaktualisierung läuft.', @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Verschieben Sie die Navigationsleiste', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Bitte schalten Sie den Kompatibilitätsmodus im Internet Explorer aus!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Diese Funktion ist Teil von %s. Bitte kontaktieren Sie uns unter %s bezüglich eines Upgrades.', 'Find out more' => 'Mehr erfahren', # JS File: Core.App.Responsive @@ -7435,6 +7461,7 @@ 'JavaScript function for the search frontend.' => 'JavaScript-Funktion für das Suche-Frontend.', 'Language' => 'Sprache', 'Large' => 'Groß', + 'Last Screen Overview' => '', 'Last customer subject' => 'Letzter Kunden-Betreff', 'Lastname Firstname' => 'Nachname Vorname', 'Lastname Firstname (UserLogin)' => 'Nachname Vorname (BenutzerAnmeldung)', @@ -8690,6 +8717,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8947,7 +8976,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/el.pm otrs2-6.0.5/Kernel/Language/el.pm --- otrs2-6.0.4/Kernel/Language/el.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/el.pm 2018-02-05 23:46:53.000000000 +0000 @@ -25,7 +25,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.149455111572392; + $Self->{Completeness} = 0.14909404659189; # csv separator $Self->{Separator} = ';'; @@ -2444,7 +2444,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => 'Προτιμήσεις', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2939,6 +2939,9 @@ 'Send a bugreport' => '', 'Expand' => 'Επέκταση', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3292,6 +3295,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3652,6 +3656,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Προστέθηκε λογαριασμός email!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Αποστολή με ηλεκτρονικό ταχυδρομείο προς (πεδίο email To:).', 'Dispatching by selected Queue.' => 'Αποστολή με την επιλεγμένη ουρά.', @@ -3701,9 +3707,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4016,8 +4024,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4583,7 +4589,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Ο διεργασία παρασκηνίου του OTRS δεν εκτελείται.', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4956,6 +4976,11 @@ 'Date Format' => 'Μορφή Ημερομηνίας', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7431,6 +7457,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Γλώσσα', 'Large' => 'Μεγάλο', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8686,6 +8713,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8943,7 +8972,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/en_CA.pm otrs2-6.0.5/Kernel/Language/en_CA.pm --- otrs2-6.0.4/Kernel/Language/en_CA.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/en_CA.pm 2018-02-05 23:46:53.000000000 +0000 @@ -30,7 +30,7 @@ $Self->{DateFormatShort} = '%Y-%M-%D'; $Self->{DateInputFormat} = '%Y-%M-%D'; $Self->{DateInputFormatLong} = '%Y-%M-%D - %T'; - $Self->{Completeness} = 0.00259470679813181; + $Self->{Completeness} = 0.00258843830888697; # csv separator $Self->{Separator} = ','; @@ -2444,7 +2444,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => '', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2939,6 +2939,9 @@ 'Send a bugreport' => '', 'Expand' => '', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3292,6 +3295,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3652,6 +3656,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => '', 'Dispatching by selected Queue.' => '', @@ -3701,9 +3707,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4016,8 +4024,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4583,7 +4589,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4956,6 +4976,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7431,6 +7457,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => '', 'Large' => '', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8686,6 +8713,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8943,7 +8972,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/en_GB.pm otrs2-6.0.5/Kernel/Language/en_GB.pm --- otrs2-6.0.4/Kernel/Language/en_GB.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/en_GB.pm 2018-02-05 23:46:53.000000000 +0000 @@ -27,7 +27,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.699878913682754; + $Self->{Completeness} = 0.697842968075927; # csv separator $Self->{Separator} = ','; @@ -2441,7 +2441,7 @@ 'Edit your preferences' => 'Edit your preferences', 'Personal preferences' => '', 'Preferences' => 'Preferences', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2936,6 +2936,9 @@ 'Send a bugreport' => 'Send a bugreport', 'Expand' => 'Expand', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3289,6 +3292,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3649,6 +3653,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Mail account added!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Dispatching by email To: field.', 'Dispatching by selected Queue.' => 'Dispatching by selected Queue.', @@ -3698,9 +3704,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4013,8 +4021,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4580,7 +4586,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'A system maintenance period will start at: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon is not running.', @@ -4918,6 +4925,11 @@ 'InnoDB Log File Size' => 'InnoDB Log File Size', 'The setting innodb_log_file_size must be at least 256 MB.' => 'The setting innodb_log_file_size must be at least 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maximum Query Size', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4934,6 +4946,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Tables with a different storage engine than the default engine were found.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x or higher is required.', @@ -4945,6 +4960,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT Setting SQL Check', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Setting client_encoding needs to be UNICODE or UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Setting server_encoding needs to be UNICODE or UTF8.', @@ -4953,6 +4973,11 @@ 'Date Format' => 'Date Format', 'Setting DateStyle needs to be ISO.' => 'Setting DateStyle needs to be ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5199,6 +5224,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5654,8 +5682,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Slide the navigation bar', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Please turn off Compatibility Mode in Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7439,6 +7465,7 @@ 'JavaScript function for the search frontend.' => 'JavaScript function for the search frontend.', 'Language' => 'Language', 'Large' => 'Large', + 'Last Screen Overview' => '', 'Last customer subject' => 'Last customer subject', 'Lastname Firstname' => 'Lastname Firstname', 'Lastname Firstname (UserLogin)' => 'Lastname Firstname (UserLogin)', @@ -8694,6 +8721,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8951,7 +8980,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/en.pm otrs2-6.0.5/Kernel/Language/en.pm --- otrs2-6.0.4/Kernel/Language/en.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/en.pm 2018-02-05 23:46:53.000000000 +0000 @@ -19,10 +19,10 @@ # month-day-year (e.g., "12/31/99") # $$START$$ - # Last translation file sync: Thu Apr 9 10:12:50 2009 + # Last translation file sync: Fri Jan 12 14:50:51 2018 # possible charsets - $Self->{Charset} = ['utf-8', ]; + $Self->{Charset} = ['utf-8']; # date formats (%A=WeekDay;%B=LongMonth;%T=Time;%D=Day;%M=Month;%Y=Year;) $Self->{DateFormat} = '%M/%D/%Y %T'; @@ -38,6 +38,10 @@ 'May_long' => 'May', }; + $Self->{JavaScriptStrings} = [ + 'May_long', + ]; + # $$STOP$$ return; } diff -Nru otrs2-6.0.4/Kernel/Language/es_CO.pm otrs2-6.0.5/Kernel/Language/es_CO.pm --- otrs2-6.0.4/Kernel/Language/es_CO.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/es_CO.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.354090987718388; + $Self->{Completeness} = 0.353235547886109; # csv separator $Self->{Separator} = ';'; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Modificar mis preferencias', 'Personal preferences' => '', 'Preferences' => 'Preferencias', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Enviar un reporte de error', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '¡Cuenta de correo agregada!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Despachar por el campo Para: del correo electrónico.', 'Dispatching by selected Queue.' => 'Despachar por la fila seleccionada.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'El vigilante de', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/es_MX.pm otrs2-6.0.5/Kernel/Language/es_MX.pm --- otrs2-6.0.4/Kernel/Language/es_MX.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/es_MX.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.521190105518076; + $Self->{Completeness} = 0.519758412424504; # csv separator $Self->{Separator} = ';'; @@ -340,7 +340,7 @@ 'Open communications' => 'Comunicaciones abiertas', 'No active communications' => 'No existen comunicaciones activas', 'Number of open communications: %s' => 'Número de comunicaciones abiertas: %s', - 'Average processing time' => '', + 'Average processing time' => 'Tiempo promedio de procesamiento', 'List of communications (%s)' => 'Lista de comunicaciones (%s)', 'Settings' => 'Configuraciones', 'Entries per page' => 'Entradas por página', @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Modificar mis preferencias', 'Personal preferences' => '', 'Preferences' => 'Preferencias', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Enviar un reporte de error', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '¡Cuanta de correo agregada!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Despachar por el campo Para: del correo electrónico.', 'Dispatching by selected Queue.' => 'Despachar por la fila seleccionada.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Un periodo de mantenimiento del sistema comenzará a las:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'El Daemon OTRS no está en ejecución.', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => 'Tamaño del Archivo Log de InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'La variable \'innodb_log_file_size\' debe ser de al menos 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Tamaño Máximo de Consulta', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Se encontraron tablas con diferente motor de almacenamiento que el motor configurado como predeterminado.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Se requiere MySQL 5.x o superior.', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => 'Formato de fecha', 'Setting DateStyle needs to be ISO.' => 'La configuración DateStyle necesita ser ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Deslice la barra de navegación', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Esta función es parte de %s. Por favor contacte con nosotros en %s para una adquirir esta funcionalidad.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/es.pm otrs2-6.0.5/Kernel/Language/es.pm --- otrs2-6.0.4/Kernel/Language/es.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/es.pm 2018-02-05 23:46:53.000000000 +0000 @@ -29,7 +29,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.657844663553019; + $Self->{Completeness} = 0.666264020707506; # csv separator $Self->{Separator} = ';'; @@ -255,14 +255,14 @@ 'If encryption key/certificate is missing' => 'Si la llave/certificado de cifrado no está', # Template: AdminAttachment - 'Attachment Management' => 'Gestión de adjuntos', - 'Add Attachment' => 'Añadir un adjunto', - 'Edit Attachment' => 'Editar adjunto', + 'Attachment Management' => 'Gestión de archivo adjunto', + 'Add Attachment' => 'Añadir archivo adjunto', + 'Edit Attachment' => 'Editar Archivo adjunto', 'Filter for Attachments' => 'Filtro para Archivos adjuntos', - 'Filter for attachments' => 'Filtrar por atajos', + 'Filter for attachments' => 'Filtro para archivos adjuntos', 'Filename' => 'Nombre del archivo', 'Download file' => 'Descargar el archivo', - 'Delete this attachment' => 'Borrar este adjunto', + 'Delete this attachment' => 'Borrar este archivo adjunto', 'Do you really want to delete this attachment?' => '¿Realmente desea eliminar este archivo adjunto?', 'Attachment' => 'Archivo adjunto', @@ -395,7 +395,7 @@ 'Search' => 'Buscar', 'Wildcards like \'*\' are allowed.' => 'Se permiten caracteres comodín como \'*\'.', 'Select' => 'Seleccionar', - 'List (only %s shown - more available)' => 'Listar (solo %s se muestra - más disponibles)', + 'List (only %s shown - more available)' => 'Lista (solo %s se muestra - más disponibles)', 'total' => 'Total', 'Please enter a search term to look for customers.' => 'Introduzca un término de búsqueda para buscar clientes.', 'Customer ID' => 'ID del cliente', @@ -439,7 +439,7 @@ 'Back to search results' => 'Volver a los resultados de la búsqueda', 'Customer user are needed to have a customer history and to login via customer panel.' => 'Los usuarios cliente necesitan tener un historial de cliente e iniciar sesión por medio del panel de cliente.', - 'List (%s total)' => 'Listar (%s total)', + 'List (%s total)' => 'Lista (%s total)', 'Username' => 'Nombre de usuario', 'Email' => 'Correo', 'Last Login' => 'Última sesión', @@ -455,7 +455,7 @@ 'DNS problem, please check your configuration and the error log.' => 'Problema con el DNS. Por favor, verifique su configuración y el registro de errores.', 'The syntax of this email address is incorrect.' => 'La sintaxis de esta dirección de correo es incorrecta', - 'This CustomerID is invalid.' => 'Identificación del Cliente no es válido', + 'This CustomerID is invalid.' => 'La ID del cliente no es valida', 'Effective Permissions for Customer User' => 'Los Permisos Efectivos para el Cliente', 'Group Permissions' => 'Permisos del Grupo', 'This customer user has no group permissions.' => 'Éste Cliente no tiene permisos del grupo.', @@ -1018,14 +1018,14 @@ 'Send Keep-Alive' => 'Enviar Mantener-Activo', 'This configuration defines if incoming connections should get closed or kept alive.' => 'Esta configuración define si las conexiones entrantes deben quedar cerrados o mantenerse activas.', - 'Additional response headers' => '', - 'Add response header' => '', + 'Additional response headers' => 'Encabezados de respuesta adicionales', + 'Add response header' => 'Agregar encabezado de respuesta', 'Endpoint' => 'Puntofinal', 'URI to indicate specific location for accessing a web service.' => '', 'e.g https://www.otrs.com:10745/api/v1.0 (without trailing backslash)' => 'ej. https://www.otrs.com:10745/api/v1.0 (sin la barra invertida)', - 'Timeout' => '', + 'Timeout' => 'Se acabó el tiempo', 'Timeout value for requests.' => '', 'Authentication' => 'Autenticación', 'An optional authentication mechanism to access the remote system.' => @@ -2326,7 +2326,7 @@ 'Un Daemon funcionando de OTRS es obligatorio para su correcta operación.', 'Starting the OTRS Daemon' => 'Iniciando el Daemon de OTRS', 'Make sure that the file \'%s\' exists (without .dist extension). This cron job will check every 5 minutes if the OTRS Daemon is running and start it if needed.' => - 'Asegúrese de que el archivo \'%s\' existe (sin la extensión .dist). Este trabajo programado verificará cada 5 minutos si el Daemon de OTRS está corriendo y lo iniciará de ser necesario.', + 'Asegúrese de que el archivo \'%s\' existe (sin la extensión .dist). Este trabajo programado verificará cada 5 minutos si OTRS Daemon se esta ejecutando y se iniciará de ser necesario.', 'Execute \'%s start\' to make sure the cron jobs of the \'otrs\' user are active.' => 'Ejecute \'%s start\' para asegurarse de que el trabajo programado del usuario \'otrs\' está activo.', 'After 5 minutes, check that the OTRS Daemon is running in the system (\'bin/otrs.Daemon.pl status\').' => @@ -2443,7 +2443,7 @@ 'Edit your preferences' => 'Editar sus preferencias', 'Personal preferences' => '', 'Preferences' => 'Preferencias', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2554,7 +2554,7 @@ 'Aquí puede seleccionar agentes adicionales que deben recibir una notificación sobre el nuevo artículo.', 'Text will also be received by' => 'El texto también será recibido también por', 'Text Template' => 'Plantilla de texto', - 'Setting a template will overwrite any text or attachment.' => 'Establecer una plantilla sobreescribirá cualquier texto o adjunto.', + 'Setting a template will overwrite any text or attachment.' => 'Establecer una plantilla sobrescribirá cualquier texto o archivo adjunto.', 'Invalid time!' => '¡Hora no válida!', # Template: AgentTicketBounce @@ -2678,7 +2678,7 @@ 'Save Chat Into New Phone Ticket' => 'Guardar Chat En Nuevo Ticket Telefónico', 'Create New Phone Ticket' => 'Crear un nuevo ticket telefónico', 'Please include at least one customer for the ticket.' => 'Incluya al menos un cliente para el ticket', - 'To queue' => 'A la cola', + 'To queue' => 'En la cola', 'Chat protocol' => 'Protocolo chat', 'The chat will be appended as a separate article.' => 'El chat se agregará como un artículo separado.', @@ -2733,7 +2733,7 @@ 'Save filter settings as default' => 'Guardar los ajustes del filtro como predeterminados', 'Event Type' => 'Tipo Evento', 'Save as default' => 'Guardar como Por Defecto', - 'Drafts' => '', + 'Drafts' => 'Borradores', 'by' => 'por', 'Change Queue' => 'Cambiar de cola', 'There are no dialogs available at this point in the process.' => @@ -2795,7 +2795,7 @@ 'Preview of this article is not possible because %s channel is missing in the system.' => '', 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', + 'Esta característica es parte de %s. Por favor contacta con nosotros en %s para una actualización.', 'Please re-install %s package in order to display this article.' => '', @@ -2900,7 +2900,7 @@ 'Date range' => 'Rango de fecha', 'Only tickets created between' => 'Sólo los tickets creados entre', 'Ticket Archive System' => '', - 'Save Search as Template?' => '', + 'Save Search as Template?' => '¿Guardar la búsqueda como una plantilla?', 'Save as Template?' => '¿Guardar como plantilla?', 'Save as Template' => 'Guardar como plantilla', 'Template Name' => 'Nombre de la plantilla', @@ -2938,15 +2938,18 @@ 'Send a bugreport' => 'Enviar un informe de error', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons - 'Update draft' => '', - 'Save as new draft' => '', + 'Update draft' => 'Actualizar borrador', + 'Save as new draft' => 'Guardar como nuevo borrador', # Template: DraftNotifications - 'You have loaded the draft "%s".' => '', - 'You have loaded the draft "%s". You last changed it %s.' => '', + 'You have loaded the draft "%s".' => 'Ha cargado el borrador "%s".', + 'You have loaded the draft "%s". You last changed it %s.' => 'Ha cargado el borrador "%s". La ultima vez que lo cambiaste %s.', 'You have loaded the draft "%s". It was last changed %s by %s.' => - '', + 'Ha cargado el borrador "%s". Fue cambiado por última vez %s por %s.', 'Please note that this draft is outdated because the ticket was modified since this draft was created.' => '', @@ -3278,7 +3281,7 @@ 'Show' => 'Mostrar', # JS Template: FormDraftAddDialog - 'Draft title' => '', + 'Draft title' => 'Título del borrador', # JS Template: ArticleViewSettingsDialog 'Article display' => '', @@ -3291,6 +3294,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3558,28 +3562,28 @@ '15 seconds' => '', '30 seconds' => '', '45 seconds' => '', - '1 minute' => '', - '2 minutes' => '', - '3 minutes' => '', - '4 minutes' => '', - '5 minutes' => '', + '1 minute' => '1 minuto', + '2 minutes' => '2 minutos', + '3 minutes' => '3 minutos', + '4 minutes' => '4 minutos', + '5 minutes' => '5 minutos', '10 minutes' => '10 minutos', '15 minutes' => '15 minutos', - '30 minutes' => '', - '1 hour' => '', - '2 hours' => '', - '3 hours' => '', - '4 hours' => '', - '5 hours' => '', - '6 hours' => '', - '12 hours' => '', - '18 hours' => '', - '1 day' => '', - '2 days' => '', - '3 days' => '', - '4 days' => '', - '6 days' => '', - '1 week' => '', + '30 minutes' => '30 minutos', + '1 hour' => '1 hora', + '2 hours' => '2 horas', + '3 hours' => '3 horas', + '4 hours' => '4 horas', + '5 hours' => '5 horas', + '6 hours' => '6 horas', + '12 hours' => '12 horas', + '18 hours' => '18 horas', + '1 day' => '1 día', + '2 days' => '2 días', + '3 days' => '3 días', + '4 days' => '4 días', + '6 days' => '6 días', + '1 week' => '1 semana', # Perl Module: Kernel/Modules/AdminGenericInterfaceInvokerDefault.pm 'Need InvokerType' => 'Requiere el Tipo de Invocador', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '¡Cuenta de correo añadida!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Despachar por el campo Para: del correo electrónico', 'Dispatching by selected Queue.' => 'Despachar por la cola seleccionada', @@ -3700,9 +3706,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -3843,7 +3851,7 @@ 'Change Role Relations for Group' => 'Cambiar las relaciones de Rol del Grupo', # Perl Module: Kernel/Modules/AdminRoleUser.pm - 'Role' => '', + 'Role' => 'Rol', 'Change Role Relations for Agent' => 'Cambiar las relaciones de Rol del Agente', 'Change Agent Relations for Role' => 'Cambiar las relaciones de Agente del Rol', @@ -3887,7 +3895,7 @@ 'Invalid Settings' => '', 'There are no invalid settings active at this time.' => '', 'You currently don\'t have any favourite settings.' => '', - 'The following settings could not be found: %s' => '', + 'The following settings could not be found: %s' => 'La siguiente configuración no se pudo encontrar: %s', 'Import not allowed!' => 'No se permite Importar!', 'System Configuration could not be imported due to an unknown error, please check OTRS logs for more information.' => '', @@ -3928,8 +3936,8 @@ 'Template added!' => '¡Plantilla añadida!', # Perl Module: Kernel/Modules/AdminTemplateAttachment.pm - 'Change Attachment Relations for Template' => 'Cambiar las relaciones de Adjuntos de la Plantilla', - 'Change Template Relations for Attachment' => 'Cambiar las relaciones de Plantillas del Adunto', + 'Change Attachment Relations for Template' => 'Cambiar las relaciones de Archivos adjuntos para Plantilla', + 'Change Template Relations for Attachment' => 'Cambiar las relaciones de Plantilla para Archivos adjuntos', # Perl Module: Kernel/Modules/AdminType.pm 'Need Type!' => '¡Se requiere el Tipo!', @@ -3983,7 +3991,7 @@ 'No permissions!' => '¡No tiene permisos!', # Perl Module: Kernel/Modules/AgentAppointmentList.pm - '+%s more' => '', + '+%s more' => '+%smás', # Perl Module: Kernel/Modules/AgentCustomerSearch.pm 'Customer History' => 'Historial del Cliente', @@ -4011,12 +4019,10 @@ 'The object %s cannot link with other object!' => 'El objeto %s no puede vincularse con otro objeto!', # Perl Module: Kernel/Modules/AgentPreferences.pm - 'Param Group is required!' => 'Se requiere Grupo de parámetros!', - 'Updated user preferences' => '', + 'Param Group is required!' => '¡Se requiere Grupo de parámetros!', + 'Updated user preferences' => 'Preferencias de usuario actualizadas', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4038,12 +4044,12 @@ # Perl Module: Kernel/Modules/AgentTicketActionCommon.pm 'No TicketID is given!' => 'Ningún TicketID está dado!', 'You need %s permissions!' => 'Necesita permisos %s!', - 'Loading draft failed!' => '', + 'Loading draft failed!' => '¡Error al cargar el borrador!', 'Sorry, you need to be the ticket owner to perform this action.' => 'Disculpe, necesita ser el propietario del ticket para realizar esta acción.', 'Please change the owner first.' => 'Por favor, cambie antes el propietario.', 'FormDraft functionality disabled!' => '', - 'Draft name is required!' => '', + 'Draft name is required!' => '¡Se requiere el nombre del borrador!', 'FormDraft name %s is already in use!' => '', 'Could not perform validation on field %s!' => 'No se pudo realizar validación en campo %s!', 'No subject' => 'Sin asunto', @@ -4210,8 +4216,8 @@ 'Ticket Number' => 'Número de Ticket', 'Ticket' => 'Ticket', 'printed by' => 'impreso por', - 'CustomerID (complex search)' => 'Identificación del cliente (búsqueda compleja)', - 'CustomerID (exact match)' => 'Identificación del cliente (coincidencia exacta)', + 'CustomerID (complex search)' => 'ID del cliente (búsqueda compleja)', + 'CustomerID (exact match)' => 'ID del cliente (coincidencia exacta)', 'Invalid Users' => 'Usuarios no válidos', 'Normal' => 'Normal', 'CSV' => 'CSV', @@ -4246,9 +4252,9 @@ 'Internal Chat' => 'Chat interno', 'Automatic Follow-Up Sent' => 'Seguimiento Automático Enviado', 'Note Added' => 'Nota añadida', - 'Note Added (Customer)' => 'Nota añadida (cliente)', - 'SMS Added' => '', - 'SMS Added (Customer)' => '', + 'Note Added (Customer)' => 'Nota añadida (Cliente)', + 'SMS Added' => 'SMS Añadido', + 'SMS Added (Customer)' => 'SMS añadido (Cliente)', 'State Updated' => 'Estado actualizado', 'Outgoing Answer' => 'Respuesta Saliente', 'Service Updated' => 'Servicio actualizado', @@ -4317,7 +4323,7 @@ 'Check SysConfig setting for %s::TicketTypeDefault.' => 'Revise los ajustes de la Configuración del Sistema para %s::TipodeTicketPredeterminado.', # Perl Module: Kernel/Modules/CustomerTicketOverview.pm - 'Need CustomerID!' => '¡Se necesita la Identificación del cliente!', + 'Need CustomerID!' => '¡Se necesita la ID del cliente!', 'My Tickets' => 'Mis Tickets', 'Company Tickets' => 'Tickets de Empresa', 'Untitled!' => '¡Sin título!', @@ -4418,7 +4424,7 @@ 'Print this article' => 'Imprimir este artículo', # Perl Module: Kernel/Output/HTML/ArticleAction/GetHelpLink.pm - 'Contact us at sales@otrs.com' => '', + 'Contact us at sales@otrs.com' => 'Contactamos en sales@otrs.com', 'Get Help' => '', # Perl Module: Kernel/Output/HTML/ArticleAction/MarkAsImportant.pm @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'El periodo de mantenimiento de sistema comenzará a las:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Daemon OTRS no se está ejecutando.', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => 'Tamaño del Archivo Log InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'El ajuste innodb_log_file_size debe ser de al menos 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Tamaño Máximo de la Consulta', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Tablas con diferente motor de almacenamiento que la de por defecto fueron encontradas.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x o mayor es requerida.', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT debe ser configurado a \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'El ajuste NLS_DATE_FORMAT Comprobar SQL', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'El ajuste client_encoding necesita ser UNICODE o UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'El ajuste server_encoding necesita ser UNICODE o UTF8.', @@ -4956,6 +4976,11 @@ 'Date Format' => 'Formato de Fecha', 'Setting DateStyle needs to be ISO.' => 'El ajuste DateStyle necesita ser ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5229,7 +5257,7 @@ '', # Perl Module: Kernel/System/Ticket.pm - 'Reset of unlock time.' => 'Reajuste del tiempo desbloqueado.', + 'Reset of unlock time.' => 'Reajuste del tiempo de desbloqueo.', # Perl Module: Kernel/System/Web/InterfaceAgent.pm 'Login failed! Your user name or password was entered incorrectly.' => @@ -5359,7 +5387,7 @@ 'Recibirá una notificación tan pronto como un ticket del cual seas propietario sea automáticamente desbloqueado.', 'Ticket owner update notification' => 'Notificación de actualización de propietario de Ticket', 'Ticket responsible update notification' => 'Notificación de actualización de responsable de Ticket', - 'Ticket new note notification' => 'Notificación de nueva nota de ticket', + 'Ticket new note notification' => 'Notificación de nueva nota en ticket', 'Ticket queue update notification' => 'Notificación de actualización de cola de Ticket', 'You will receive a notification if a ticket is moved into one of your "My Queues".' => 'Recibirá una notificación si un ticket es movido a "Mis colas".', @@ -5391,8 +5419,8 @@ 'Press Ctrl+C (Cmd+C) to copy to clipboard' => '', # JS File: Core.Agent.Admin.Attachment - 'Delete this Attachment' => '', - 'Deleting attachment...' => '', + 'Delete this Attachment' => 'Borrar este Archivo adjunto', + 'Deleting attachment...' => 'Borrando archivo adjunto...', 'There was an error deleting the attachment. Please check the logs for more information.' => '', 'Attachment was deleted successfully.' => '', @@ -5539,7 +5567,7 @@ 'Deployment successful. You\'re being redirected...' => '', 'There was an error. Please save all settings you are editing and check the logs for more information.' => '', - 'Reset option is required!' => '', + 'Reset option is required!' => '¡Se requiere la opción de reinicio!', 'By restoring this deployment all settings will be reverted to the value they had at the time of the deployment. Do you really want to continue?' => '', 'Keys with values can\'t be renamed. Please remove this key/value pair instead and re-add it afterwards.' => @@ -5644,10 +5672,10 @@ ' ...show less' => '', # JS File: Core.Agent.TicketFormDraft - 'Add new draft' => '', - 'Delete draft' => '', - 'There are no more drafts available.' => '', - 'It was not possible to delete this draft.' => '', + 'Add new draft' => 'Añadir nuevo borrador', + 'Delete draft' => 'Borrar borrador', + 'There are no more drafts available.' => 'No hay más borradores disponibles.', + 'It was not possible to delete this draft.' => 'No fue posible eliminar este borrador.', # JS File: Core.Agent.TicketZoom 'Article filter' => 'Filtro de artículos', @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Deslice la barra de navegación', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Por favor apague el Modo Compatibilidad en Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Esta función es parte de %s. Por favor contacte con nosotros en %s para una mejora.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -5801,7 +5827,7 @@ '0 - Disabled' => '', '1 - Available' => '', '1 - Enabled' => '', - '10 Minutes' => '', + '10 Minutes' => '10 Minutos', '100 (Expert)' => '100 (Experto)', '15 Minutes' => '', '2 - Enabled and required' => '', @@ -5906,7 +5932,7 @@ 'Agents ↔ Groups' => '', 'Agents ↔ Roles' => '', 'All CustomerIDs of a customer user.' => '', - 'All attachments (OTRS Business Solution™)' => '', + 'All attachments (OTRS Business Solution™)' => 'Todos los archivos adjuntos (OTRS Business Solution™)', 'All customer users of a CustomerID' => 'Todos los clientes de un IDCliente', 'All escalated tickets' => 'Todos los Tickets escalados', 'All new tickets, these tickets have not been worked on yet' => 'Todos los Tickets nuevos, todavía no se ha trabajado en estos tickets', @@ -6012,7 +6038,7 @@ 'Arabic (Saudi Arabia)' => 'Árabe (Arabia Saudita)', 'ArticleTree' => 'Árbol de Artículos', 'Attachment Name' => 'Nombre del archivo adjunto', - 'Attachments ↔ Templates' => '', + 'Attachments ↔ Templates' => 'Archivos adjuntos ↔ Plantillas', 'Auto Responses ↔ Queues' => '', 'Automated line break in text messages after x number of chars.' => 'Salto de linea automático en mensajes de texto después de x número de caracteres.', @@ -6072,7 +6098,7 @@ 'Changed responsible to "%s" (%s).' => '', 'Changed service to "%s" (%s).' => '', 'Changed state from "%s" to "%s".' => '', - 'Changed title from "%s" to "%s".' => '', + 'Changed title from "%s" to "%s".' => 'Se cambió el título de "%s" a "%s".', 'Changed type from "%s" (%s) to "%s" (%s).' => '', 'Changes the owner of tickets to everyone (useful for ASP). Normally only agent with rw permissions in the queue of the ticket will be shown.' => 'Cambia el propietario de tickets a todos (útil para ASP). Normalmente se mostrará un único agente con permisos rw en la cola de ticket.', @@ -6172,7 +6198,7 @@ 'Create and manage Service Level Agreements (SLAs).' => 'Crea y gestiona Acuerdos de Nivel de Servicio (SLAs).', 'Create and manage agents.' => 'Crea y gestiona agentes.', 'Create and manage appointment notifications.' => 'Crea y gestiona las notificaciones de citas.', - 'Create and manage attachments.' => 'Crea y gestiona Archivos adjuntos.', + 'Create and manage attachments.' => 'Crear y gestionar archivos adjuntos.', 'Create and manage calendars.' => '', 'Create and manage customer users.' => 'Crea y gestiona usuarios clientes.', 'Create and manage customers.' => 'Crea y gestiona clientes.', @@ -6229,7 +6255,7 @@ 'CustomerID search' => 'Búsqueda de ClienteID', 'CustomerName' => 'Nombre del cliente', 'CustomerUser' => 'Usuario del cliente', - 'Customers ↔ Groups' => '', + 'Customers ↔ Groups' => 'Clientes ↔ Grupos', 'Customizable stop words for fulltext index. These words will be removed from the search index.' => 'Palabras vacías personalizables para el índice de texto completo. Estas palabras serán eliminadas del índice de búsqueda.', 'Czech' => 'Checo', @@ -7156,7 +7182,7 @@ 'Palabras vacías en ingles para el índice de texto completo. Estas palabras serán eliminadas del índice de búsqueda.', 'Enroll process for this ticket' => '', 'Enter your shared secret to enable two factor authentication.' => - '', + 'Ingrese su secreto compartido para habilitar la autenticación de dos factores.', 'Escalated Tickets' => 'Tickets Escalados', 'Escalation view' => 'Vista de escaladas', 'EscalationTime' => 'Tiempo para escalada', @@ -7448,6 +7474,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => 'Último asunto del cliente', 'Lastname Firstname' => 'Apellidos Nombre', 'Lastname Firstname (UserLogin)' => 'Apellidos Nombre (LoginUsuario) ', @@ -7460,7 +7487,7 @@ 'Link Object.' => 'Enlazar objeto.', 'Link agents to groups.' => 'Crea enlace de Agentes a Grupos', 'Link agents to roles.' => 'Crea enlace de Agentes a Roles', - 'Link attachments to templates.' => 'Crea enlace de Adjuntos a Plantillas', + 'Link attachments to templates.' => 'Crea enlace de Archivo adjuntos a Plantillas.', 'Link customer users to customers.' => '', 'Link customer users to groups.' => '', 'Link customer users to services.' => '', @@ -7506,7 +7533,7 @@ 'Locked Tickets' => 'Tickets Bloqueados', 'Locked Tickets.' => 'Tickets bloqueados.', 'Locked ticket.' => 'Ticket bloqueado.', - 'Logged-In Users' => '', + 'Logged-In Users' => 'Usuarios conectados', 'Logout of customer panel.' => 'Salir del panel de cliente.', 'Look into a ticket!' => '¡Revisar un ticket!', 'Loop protection: no auto-response sent to "%s".' => '', @@ -7566,7 +7593,7 @@ 'Medium' => 'Mediano', 'Merge this ticket and all articles into another ticket' => '', 'Merged Ticket (%s/%s) to (%s/%s).' => '', - 'Merged Ticket to .' => 'Combinar Ticket con .', + 'Merged Ticket to .' => 'Fusionar Ticket con .', 'Minute' => '', 'Miscellaneous' => 'Misceláneo', 'Module for To-selection in new ticket screen in the customer interface.' => @@ -7655,7 +7682,7 @@ 'OTRS doesn\'t support recurring Appointments without end date or number of iterations. During import process, it might happen that ICS file contains such Appointments. Instead, system creates all Appointments in the past, plus Appointments for the next N months (120 months/10 years by default).' => '', 'Open Tickets / Need to be answered' => 'Tickets Abiertos / Que necesitan de una respuesta', - 'Open an external link!' => '', + 'Open an external link!' => '¡Abrir un enlace externo!', 'Open tickets (customer user)' => 'Tickets abiertos (usuario cliente)', 'Open tickets (customer)' => 'Tickets abiertos (cliente)', 'Option' => 'Opción', @@ -7675,7 +7702,7 @@ 'Overview Escalated Tickets.' => '', 'Overview Refresh Time' => 'Tiempo de actualización de la vista general', 'Overview of all appointments.' => 'Resumen de todas las citas', - 'Overview of all escalated tickets.' => '', + 'Overview of all escalated tickets.' => 'Vista general de todos los tickets escalados.', 'Overview of all open Tickets.' => 'Vista general de todos los Tickets abiertos.', 'Overview of all open tickets.' => 'Vista general de todos los tickets abiertos.', 'Overview of customer tickets.' => 'Visión general de los tickets del cliente.', @@ -7867,7 +7894,7 @@ 'Roles ↔ Groups' => '', 'Run file based generic agent jobs (Note: module name needs to be specified in -configuration-module param e.g. "Kernel::System::GenericAgent").' => '', - 'Running Process Tickets' => 'Corriendo Tickets de Proceso', + 'Running Process Tickets' => 'Tickets de Proceso en ejecución', 'Runs an initial wildcard search of the existing customer company when accessing the AdminCustomerCompany module.' => '', 'Runs an initial wildcard search of the existing customer users when accessing the AdminCustomerUser module.' => @@ -7897,13 +7924,13 @@ '', 'Select how many tickets should be shown in overviews by default.' => '', - 'Select the main interface language.' => '', + 'Select the main interface language.' => 'Selecciona el idioma principal de la interfaz.', 'Select the separator character used in CSV files (stats and searches). If you don\'t select a separator here, the default separator for your language will be used.' => 'Seleccione el carácter separador a usar en los archivos CSV (estadísticas y búsquedas). Si no selecciona ningún separador aquí, se usará el separador predeterminado para su idioma.', 'Select your frontend Theme.' => 'Seleccione su tema', 'Select your personal time zone. All times will be displayed relative to this time zone.' => '', - 'Select your preferred layout for the software.' => '', + 'Select your preferred layout for the software.' => 'Seleccione su diseño preferido para el software.', 'Select your preferred theme for OTRS.' => 'Seleccione su tema preferido para OTRS.', 'Selects the cache backend to use.' => '', 'Selects the module to handle uploads via the web interface. "DB" stores all uploads in the database, "FS" uses the file system.' => @@ -8598,7 +8625,7 @@ 'Uses richtext for viewing and editing: articles, salutations, signatures, standard templates, auto responses and notifications.' => '', 'Vietnam' => 'Vietnamita', - 'View all attachments of the current ticket' => '', + 'View all attachments of the current ticket' => 'Ver todos los archivos adjuntos del ticket actual', 'View performance benchmark results.' => 'Ver resultados de la prueba de desempeño.', 'Watch this ticket' => 'Vigilar este ticket', 'Watched Tickets' => 'Tickets Vistos', @@ -8703,6 +8730,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8960,7 +8989,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/et.pm otrs2-6.0.5/Kernel/Language/et.pm --- otrs2-6.0.4/Kernel/Language/et.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/et.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.181975436775644; + $Self->{Completeness} = 0.18153580672994; # csv separator $Self->{Separator} = ''; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Muuda enese eelistusi', 'Personal preferences' => '', 'Preferences' => 'Eelistused', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Saada vearaport', 'Expand' => 'Laienda', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-posti konto lisatud!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Jaotamine To: päiserea järgi.', 'Dispatching by selected Queue.' => 'Jaotamine valitud järjekorra järgi.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => 'kuupäevavorming', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Keel', 'Large' => 'Suur', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/fa.pm otrs2-6.0.5/Kernel/Language/fa.pm --- otrs2-6.0.4/Kernel/Language/fa.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/fa.pm 2018-02-05 23:46:53.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.717349939456841; + $Self->{Completeness} = 0.715271786022433; # csv separator $Self->{Separator} = ''; @@ -2443,7 +2443,7 @@ 'Edit your preferences' => 'تنظیمات شخصی خودتان را ویرایش نمایید', 'Personal preferences' => '', 'Preferences' => 'تنظیمات', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2938,6 +2938,9 @@ 'Send a bugreport' => 'ارسال گزارش خطا', 'Expand' => 'گسترش', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3291,6 +3294,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'حساب ایمیل افزوده شد.', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'ارسال با پست الکترونیکی به:فیلد', 'Dispatching by selected Queue.' => 'ارسال بوسیله لیست انتخاب شده', @@ -3700,9 +3706,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4015,8 +4023,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'دوره تعمیر و نگهداری سیستم شروع خواهد شد در: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'سرویس OTRS در حال اجرا نیست.', @@ -4920,6 +4927,11 @@ 'InnoDB Log File Size' => 'سازی InnoDB ورود حجم فایل', 'The setting innodb_log_file_size must be at least 256 MB.' => 'innodb_log_file_size تنظیم باید حداقل 256 مگابایت باشد.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'حداکثر اندازه پرس و جو', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4936,6 +4948,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'جداول با یک موتور ذخیره سازی متفاوت با موتور به طور پیش فرض پیدا شد.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '5.x خروجی زیر و یا بالاتر مورد نیاز است.', @@ -4947,6 +4962,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT باید روی ": MI: SS YYYY-MM-DD HH24، تنظیم شده است.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT تنظیم SQL بررسی', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'تنظیم client_encoding نیاز به UNICODE یا UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'تنظیم server_encoding نیاز به UNICODE یا UTF8.', @@ -4955,6 +4975,11 @@ 'Date Format' => 'فرمت تاریخ', 'Setting DateStyle needs to be ISO.' => 'تنظیم DateStyle نیاز به ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5201,6 +5226,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5656,8 +5684,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'اسلاید نوار ناوبری', 'Please turn off Compatibility Mode in Internet Explorer!' => 'لطفا حالت سازگاری در اینترنت اکسپلورر را خاموش کنید !', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'این ویژگی بخشی از است %s . لطفا با ما تماس بگیرید %s برای ارتقاء.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7441,6 +7467,7 @@ 'JavaScript function for the search frontend.' => 'جاوا اسکریپت تابع برای ظاهر جستجو.', 'Language' => 'زبان', 'Large' => 'بزرگ', + 'Last Screen Overview' => '', 'Last customer subject' => 'آخرین موضوع مشتری', 'Lastname Firstname' => 'نام خانوادگی', 'Lastname Firstname (UserLogin)' => 'نام خانوادگی نام (صفحهی)', @@ -8696,6 +8723,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8953,7 +8982,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/fi.pm otrs2-6.0.5/Kernel/Language/fi.pm --- otrs2-6.0.4/Kernel/Language/fi.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/fi.pm 2018-02-05 23:46:53.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.206192700224875; + $Self->{Completeness} = 0.205694564279551; # csv separator $Self->{Separator} = ';'; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => 'Muokkaa asetuksiasi', 'Personal preferences' => '', 'Preferences' => 'Käyttäjäasetukset', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => 'Lähetä bugiraportti', 'Expand' => 'Laajenna', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Sähköpostitili lisätty!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Osoittaminen perustuen sähköpostin Vastaanottaja: kenttään.', 'Dispatching by selected Queue.' => 'Osoittaminen perustuen valittuun jonoon.', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4952,6 +4972,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Kieli', 'Large' => 'Suuri', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/fr_CA.pm otrs2-6.0.5/Kernel/Language/fr_CA.pm --- otrs2-6.0.4/Kernel/Language/fr_CA.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/fr_CA.pm 2018-02-05 23:46:53.000000000 +0000 @@ -31,7 +31,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.360664244940322; + $Self->{Completeness} = 0.359792924935289; # csv separator $Self->{Separator} = ';'; @@ -2445,7 +2445,7 @@ 'Edit your preferences' => 'Éditer vos préférences', 'Personal preferences' => '', 'Preferences' => 'Préférences', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2940,6 +2940,9 @@ 'Send a bugreport' => 'Envoyer un rapport d\'erreur', 'Expand' => 'Développer', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3293,6 +3296,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3653,6 +3657,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Compte de courrier électronique ajouté.', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Classement des courriels selon le champ « À : »', 'Dispatching by selected Queue.' => 'Classement selon la file sélectionnée', @@ -3702,9 +3708,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4017,8 +4025,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4584,7 +4590,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4922,6 +4929,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4938,6 +4950,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4949,6 +4964,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4957,6 +4977,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5203,6 +5228,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5658,8 +5686,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7432,6 +7458,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Langue', 'Large' => 'Grand (L)', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8687,6 +8714,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8944,7 +8973,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/fr.pm otrs2-6.0.5/Kernel/Language/fr.pm --- otrs2-6.0.4/Kernel/Language/fr.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/fr.pm 2018-02-05 23:46:53.000000000 +0000 @@ -32,7 +32,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.352880124545926; + $Self->{Completeness} = 0.353408110440035; # csv separator $Self->{Separator} = ';'; @@ -87,10 +87,10 @@ 'Check the official' => 'Vérifier l\'officiel', 'documentation' => 'documentation', 'Show or hide the content' => 'Montrer ou cacher le contenu', - 'Edit ACL Information' => '', + 'Edit ACL Information' => 'Editer les informations ACL', 'Name' => 'Nom', 'Stop after match' => 'Stopper après correspondance', - 'Edit ACL Structure' => '', + 'Edit ACL Structure' => 'Editer la structure ACL', 'Save ACL' => 'Sauvegarder l\'ACL', 'Save' => 'Sauver', 'or' => 'ou', @@ -103,20 +103,20 @@ 'Créer un nouveau ACL en envoyer le contenu du formulaire. Après avoir créé l\'ACL, vous pourrez ajouter des données de configuration en mode édition.', # Template: AdminAppointmentCalendarManage - 'Calendar Management' => '', + 'Calendar Management' => 'Gestion du calendrier', 'Add Calendar' => 'Ajouter un calendrier', 'Edit Calendar' => 'Modifier le calendrier', 'Go back' => 'Retour', 'Calendar Overview' => 'Vue d\'ensemble calendrier', 'Add new Calendar' => 'Ajouter un nouveau calendrier', - 'Import Appointments' => '', + 'Import Appointments' => 'Importer des rendez-vous', 'Calendar Import' => 'Import de calendrier', 'Here you can upload a configuration file to import a calendar to your system. The file needs to be in .yml format as exported by calendar management module.' => - '', - 'Overwrite existing entities' => '', - 'Upload calendar configuration' => '', + 'Ici vous pouvez téléverser un fichier de configuration pour importer un calendrier vers votre système. Le fichier a besoin d\'être en format "yml" comme exporté par le module de gestion de processus.', + 'Overwrite existing entities' => 'Écraser les entités existantes', + 'Upload calendar configuration' => 'Téléverser la configuration du calendrier', 'Import Calendar' => 'Importer un calendrier', - 'Filter for calendars' => '', + 'Filter for calendars' => 'Filtre pour calendriers', 'Depending on the group field, the system will allow users the access to the calendar according to their permission level.' => '', 'Read only: users can see and export all appointments in the calendar.' => @@ -2446,7 +2446,7 @@ 'Edit your preferences' => 'Editer vos préférences', 'Personal preferences' => '', 'Preferences' => 'Préférences', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2941,6 +2941,9 @@ 'Send a bugreport' => 'Envoyer un rapport de bug', 'Expand' => 'Etendre', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3294,6 +3297,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3654,6 +3658,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Compte de messagerie ajouté !', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Répartition par le champ \'À:\' de l\'e-mail', 'Dispatching by selected Queue.' => 'Répartition selon la file sélectionnée', @@ -3703,9 +3709,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4018,8 +4026,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4585,7 +4591,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'La tâche de fond d\'OTRS n\'est pas lancée', @@ -4923,6 +4930,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4939,6 +4951,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4950,6 +4965,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4958,6 +4978,11 @@ 'Date Format' => 'Format de la Date', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5204,6 +5229,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5659,8 +5687,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Déplacer la barre de navigation', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7433,6 +7459,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Langue', 'Large' => 'Grand', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8688,6 +8715,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8945,7 +8974,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/gl.pm otrs2-6.0.5/Kernel/Language/gl.pm --- otrs2-6.0.4/Kernel/Language/gl.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/gl.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.533644698149109; + $Self->{Completeness} = 0.532010353753236; # csv separator $Self->{Separator} = ';'; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Edite as súas preferencias', 'Personal preferences' => '', 'Preferences' => 'Preferencias', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Enviar un reporte de bugs', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Engadiuse a conta de correo!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Enviando por email A: campo', 'Dispatching by selected Queue.' => 'Enviando a cola seleccionada', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Un período de mantemento do sistema comezará en:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Daemon OTRS non se está a executar', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => 'Tamaño do ficheiro de rexistro de InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'A opción innodb_log_file_size ha de ter, como mínimo, 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Tamaño Máximo da Consulta', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Atopáronse táboas cun motor de almacenamento disinto do predeterminado.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Requírese MySQL 5.x ou superior.', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT debe ser posto como \'YYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Axuste Comprobación SQL NLS_DATE_FORMAT', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'O axuste client_encoding ten que ser UNICODE ou UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'O axuste server_encoding ten que ser UNICODE ou UTF8.', @@ -4950,6 +4970,11 @@ 'Date Format' => 'Formato de data', 'Setting DateStyle needs to be ISO.' => 'O axuste DateStyle ten que ser ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Desprazar a barra de navegación', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Por favor apague o Modo de Compatibilidade en Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Esta función é parte de %s. Por favor contecte con nos en %s para unha mellora.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/he.pm otrs2-6.0.5/Kernel/Language/he.pm --- otrs2-6.0.4/Kernel/Language/he.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/he.pm 2018-02-05 23:46:53.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.247016087182148; + $Self->{Completeness} = 0.24641932700604; # csv separator $Self->{Separator} = ''; @@ -2443,7 +2443,7 @@ 'Edit your preferences' => 'ערכו את ההעדפות שלכם', 'Personal preferences' => '', 'Preferences' => 'העדפות', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2938,6 +2938,9 @@ 'Send a bugreport' => 'לשלוח דיווח על שגיאה', 'Expand' => 'הרחב', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3291,6 +3294,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'חשבון דוא"ל נוסף!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'שליחה לפי שדה דוא"ל אל.', 'Dispatching by selected Queue.' => 'שליחה לפי התור שנבחר.', @@ -3700,9 +3706,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4015,8 +4023,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4920,6 +4927,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4936,6 +4948,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4947,6 +4962,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4955,6 +4975,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5201,6 +5226,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5656,8 +5684,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7430,6 +7456,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'שפה', 'Large' => 'גדול', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8685,6 +8712,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8942,7 +8971,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/hi.pm otrs2-6.0.5/Kernel/Language/hi.pm --- otrs2-6.0.4/Kernel/Language/hi.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/hi.pm 2018-02-05 23:46:53.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.284206884622038; + $Self->{Completeness} = 0.283520276100086; # csv separator $Self->{Separator} = ';'; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => 'अपनी वरीयताएँ संपादित करें', 'Personal preferences' => '', 'Preferences' => 'वरीयताएं', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => 'दोष रिपोर्ट भेजें', 'Expand' => 'विस्तार', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'ईमेल से भेजने के लिए :क्षेत्र', 'Dispatching by selected Queue.' => 'चयनित श्रेणी से भेजने के लिए।', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4952,6 +4972,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'भाषा', 'Large' => 'बड़ा', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/hr.pm otrs2-6.0.5/Kernel/Language/hr.pm --- otrs2-6.0.4/Kernel/Language/hr.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/hr.pm 2018-02-05 23:46:53.000000000 +0000 @@ -28,7 +28,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.215533644698149; + $Self->{Completeness} = 0.215012942191544; # csv separator $Self->{Separator} = ';'; @@ -2442,7 +2442,7 @@ 'Edit your preferences' => 'Uredi osobne postavke', 'Personal preferences' => '', 'Preferences' => 'Postavke', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2937,6 +2937,9 @@ 'Send a bugreport' => 'Pošalji izvještaj o pogrešci', 'Expand' => 'Proširi', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3290,6 +3293,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3650,6 +3654,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Otprema E-pošte za: Polje.', 'Dispatching by selected Queue.' => 'Otprema kroz izabrani red.', @@ -3699,9 +3705,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4014,8 +4022,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4581,7 +4587,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4919,6 +4926,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4935,6 +4947,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4946,6 +4961,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4954,6 +4974,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5200,6 +5225,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5655,8 +5683,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7429,6 +7455,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Jezik', 'Large' => 'Krupno', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8684,6 +8711,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8941,7 +8970,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/hu.pm otrs2-6.0.5/Kernel/Language/hu.pm --- otrs2-6.0.4/Kernel/Language/hu.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/hu.pm 2018-02-05 23:46:53.000000000 +0000 @@ -29,7 +29,7 @@ $Self->{DateFormatShort} = '%Y-%M-%D'; $Self->{DateInputFormat} = '%Y-%M-%D'; $Self->{DateInputFormatLong} = '%Y-%M-%D - %T'; - $Self->{Completeness} = 0.998962117280747; + $Self->{Completeness} = 0.997756686798965; # csv separator $Self->{Separator} = ';'; @@ -1309,7 +1309,7 @@ 'Unauthorized Usage Detected' => 'Jogosulatlan használat észlelhető', 'This system uses the %s without a proper license! Please make contact with %s to renew or activate your contract!' => 'Ez a rendszer a megfelelő licenc nélkül használja az %s programot. A szerződés megújításához vagy aktiválásához vegye fel a kapcsolatot a következővel: %s!', - '%s not Correctly Installed' => '%s nincs helyesen telepítve', + '%s not Correctly Installed' => 'Az %s nincs helyesen telepítve', 'Your %s is not correctly installed. Please reinstall it with the button below.' => 'Az %s nincs helyesen telepítve. Telepítse újra a lenti gombbal.', 'Reinstall %s' => '%s újratelepítése', @@ -1323,9 +1323,9 @@ '%s Update Available' => '%s frissítés érhető el', 'An update for your %s is available! Please update at your earliest!' => 'Frissítés érhető el az %s programhoz! Frissítsen a lehető leghamarabb!', - '%s Correctly Deployed' => 'Az %s helyesen üzembe állítva', + '%s Correctly Deployed' => 'Az %s megfelelően üzembe lett állítva', 'Congratulations, your %s is correctly installed and up to date!' => - 'Gratulálunk, az %s helyesen telepített van és naprakész!', + 'Gratulálunk, az %s helyesen van telepítve és naprakész!', # Template: AdminOTRSBusinessNotInstalled 'Go to the OTRS customer portal' => 'Ugrás az OTRS ügyfélportáljára', @@ -1444,7 +1444,7 @@ 'This package is verified by OTRSverify (tm)' => 'Ezt a csomagot az OTRSverify (tm) ellenőrizte.', 'Uninstall' => 'Eltávolítás', 'Package not correctly deployed! Please reinstall the package.' => - 'A csomag nincs rendesen üzembe állítva! Telepítse újra a csomagot.', + 'A csomag nincs megfelelően üzembe állítva! Telepítse újra a csomagot.', 'Reinstall' => 'Újratelepítés', 'Features for %s customers only' => 'Csak a(z) %s ügyfelek szolgáltatásai', 'With %s, you can benefit from the following optional features. Please make contact with %s if you need more information.' => @@ -2443,8 +2443,8 @@ 'Edit your preferences' => 'Beállítások szerkesztése', 'Personal preferences' => 'Személyes beállítások', 'Preferences' => 'Beállítások', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - 'Figyelmeztetés! Jelenleg nem a saját beállításait szerkeszti, hanem %s beállításait.', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => 'Vissza az ügyintéző szerkesztéséhez', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => 'Állítsa be a személyes beállításait. Az egyes beállításokat a jobb oldalán lévő pipára kattintva mentheti el.', @@ -2632,7 +2632,7 @@ 'History of %s%s%s' => '%s%s%s előzményei', 'Filter for history items' => 'Szűrő az előzményelemekhez', 'Expand/collapse all' => 'Összes kinyitása vagy összecsukása', - 'CreateTime' => 'Létrehozás ideje (CreateTime)', + 'CreateTime' => 'Létrehozás ideje', 'Article' => 'Bejegyzés', # Template: AgentTicketMerge @@ -2938,15 +2938,18 @@ 'Send a bugreport' => 'Hibajelentés küldése', 'Expand' => 'Kinyitás', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Piszkozat frissítése', 'Save as new draft' => 'Mentés új piszkozatként', # Template: DraftNotifications 'You have loaded the draft "%s".' => 'Betöltötte a következő piszkozatot: „%s”.', - 'You have loaded the draft "%s". You last changed it %s.' => 'Betöltötte a következő piszkozatot: „%s”. Utoljára %s változtatta meg.', + 'You have loaded the draft "%s". You last changed it %s.' => 'Betöltötte a következő piszkozatot: „%s”. Utoljára %s-kor változtatta meg.', 'You have loaded the draft "%s". It was last changed %s by %s.' => - 'Betöltötte a következő piszkozatot: „%s”. Utoljára %s változtatta meg %s.', + 'Betöltötte a következő piszkozatot: „%s”. Utoljára %s-kor %s változtatta meg.', 'Please note that this draft is outdated because the ticket was modified since this draft was created.' => 'Ne feledje, hogy ez a piszkozat elavult, mert a jegyet módosították a piszkozat létrehozása óta.', @@ -3291,6 +3294,7 @@ 'Loading, please wait...' => 'Betöltés, kérem várjon…', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Kattintson a fájlok kijelöléséhez, vagy egyszerűen dobja ide azokat.', 'Click to select a file or just drop it here.' => 'Kattintson egy fájl kijelöléséhez, vagy egyszerűen dobja ide azt.', 'Uploading...' => 'Feltöltés…', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Levelezőfiók hozzáadva!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Szétválogatás az e-mail címzett mezője szerint.', 'Dispatching by selected Queue.' => 'Szétválogatás a kiválasztott várólista szerint.', @@ -3671,11 +3677,11 @@ # Perl Module: Kernel/Modules/AdminOTRSBusiness.pm 'Your system was successfully upgraded to %s.' => 'A rendszere sikeresen frissítve lett a következő verzióra: %s.', 'There was a problem during the upgrade to %s.' => 'Hiba történt az %s verzióra való frissítés közben.', - '%s was correctly reinstalled.' => 'Az %s rendben újra lett telepítve.', + '%s was correctly reinstalled.' => 'Az %s megfelelően újra lett telepítve.', 'There was a problem reinstalling %s.' => 'Hiba történt az %s újratelepítésekor.', 'Your %s was successfully updated.' => 'Az %s sikeresen frissítve lett.', 'There was a problem during the upgrade of %s.' => 'Hiba történt az %s frissítése közben.', - '%s was correctly uninstalled.' => 'Az %s rendben el lett távolítva.', + '%s was correctly uninstalled.' => 'Az %s megfelelően el lett távolítva.', 'There was a problem uninstalling %s.' => 'Hiba történt az %s eltávolításakor.', # Perl Module: Kernel/Modules/AdminPGP.pm @@ -3700,9 +3706,11 @@ 'Updated' => 'Frissítve', 'Already up-to-date' => 'Már naprakész', 'Installed' => 'Telepítve', - 'Package updated correctly' => 'A csomag sikeresen frissítve', + 'Not correctly deployed' => '', + 'Package updated correctly' => 'A csomag megfelelően frissítve', 'Package was already updated' => 'A csomag már frissítve lett', - 'Dependency installed correctly' => 'A függőség sikeresen telepítve', + 'Dependency installed correctly' => 'A függőség megfelelően telepítve', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'A csomag körkörös függőségeket tartalmaz', 'Not found in on-line repositories' => 'Nem található az internetes tárolókban', 'Required version is higher than available' => 'A szükséges verzió magasabb az elérhetőnél', @@ -4015,8 +4023,6 @@ 'Updated user preferences' => 'Felhasználói beállítások frissítve', 'System was unable to deploy your changes.' => 'A rendszer nem tudta üzembe állítani a változtatásokat.', 'Setting not found!' => 'A beállítás nem található!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - 'Ez a szolgáltatás az %s része. A frissítéshez lépjen velünk kapcsolatba a következő címen: %s.', 'System was unable to reset the setting!' => 'A rendszer nem tudta visszaállítani a beállítást!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4376,7 +4382,7 @@ 'Error: Please set the value for innodb_log_file_size on your database to at least %s MB (current: %s MB, recommended: %s MB). For more information, please have a look at %s.' => 'Hiba: Állítsa be az adatbázison az innodb_log_file_size értékét legalább %s MB méretűre (jelenleg: %s MB, ajánlott: %s MB). További információkért nézze meg a következőt: %s.', 'Wrong database collation (%s is %s, but it needs to be utf8).' => - '', + 'Hibás adatbázis egyeztetés (a %s értéke %s, de utf8 értékűnek kell lennie).', # Perl Module: Kernel/Modules/PublicCalendar.pm 'No %s!' => 'Nincs %s!', @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'A rendszerkarbantartás aktív!', - 'A system maintenance period will start at: ' => 'Egy rendszerkarbantartás időszak fog kezdődni ekkor: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + 'Egy rendszerkarbantartás időszak fog kezdődni ekkor: %s, és várható befejezése: %s', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Az OTRS démon nem fut.', @@ -4920,6 +4927,11 @@ 'InnoDB Log File Size' => 'InnoDB naplófájl méret', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Az innodb_log_file_size beállításnak legalább 256 MB értékűnek kell lennie.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Legnagyobb lekérdezési méret', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4936,6 +4948,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Az alapértelmezett motortól eltérő motorral rendelkező táblák találhatók.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x vagy újabb szükséges.', @@ -4947,6 +4962,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'Az NLS_DATE_FORMAT értékét „YYYY-MM-DD HH24:MI:SS” értékre kell állítani.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT beállítás SQL ellenőrzés', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'A client_encoding beállításnak UNICODE vagy UTF8 értékűnek kell lennie.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'A server_encoding beállításnak UNICODE vagy UTF8 értékűnek kell lennie.', @@ -4955,6 +4975,11 @@ 'Date Format' => 'Dátumformátum', 'Setting DateStyle needs to be ISO.' => 'A DateStyle beállításnak ISO értékűnek kell lennie.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => 'PostgreSQL 9.2 vagy újabb szükséges.', @@ -5073,7 +5098,7 @@ # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/PackageDeployment.pm 'Package Installation Status' => 'Csomagtelepítési állapot', 'Some packages have locally modified files.' => 'Néhány csomag helyileg módosított fájlokkal rendelkezik.', - 'Some packages are not correctly installed.' => 'Néhány csomag nincs helyesen telepítve.', + 'Some packages are not correctly installed.' => 'Néhány csomag nincs megfelelően telepítve.', 'Package Verification Status' => 'Csomagellenőrzési állapot', 'Some packages are not verified by the OTRS Group! It is recommended not to use this packages.' => 'Néhány csomagot nem ellenőrzött az OTRS csoport! Nem javasolt a csomagok használata.', @@ -5201,6 +5226,9 @@ 'Could not update modified setting!' => 'Nem sikerült frissíteni a módosított beállítást!', 'Setting could not be unlocked!' => 'A beállítást nem sikerült feloldani!', 'Missing key %s!' => 'Hiányzó %s kulcs!', + 'Invalid setting: %s' => 'Érvénytelen beállítás: %s', + 'Could not combine settings values into a perl hash.' => 'Nem sikerült egyesíteni a beállítások értékeit Perl kivonatba.', + 'Can not lock the deployment for UserID \'%s\'!' => 'Nem lehet zárolni az üzembe állítást a következő felhasználó-azonosítónál: „%s”!', 'All Settings' => 'Összes beállítás', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5656,8 +5684,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Csúsztassa a navigációs sávot', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Kapcsolja ki a kompatibilitási módot az Internet Explorerben!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ez a szolgáltatás az %s része. A frissítéshez lépjen velünk kapcsolatba a következő címen: %s.', 'Find out more' => 'Tudjon meg többet', # JS File: Core.App.Responsive @@ -6121,7 +6147,7 @@ 'Communication & Notifications' => 'Kommunikáció és értesítések', 'Communication Log GUI' => 'Kommunikációs napló grafikus felhasználói felület', 'Communication log limit per page for Communication Log Overview.' => - '', + 'Oldalankénti kommunikációs napló korlát a kommunikációs napló áttekintőnél.', 'CommunicationLog Overview Limit' => 'Kommunikációs napló áttekintő korlát', 'Company Status' => 'Vállalat állapot', 'Company Tickets.' => 'Vállalati jegyek.', @@ -7042,7 +7068,7 @@ 'Dinamikus mezők, amelyek a keresési eredmények CSV formátumba való exportálásához használhatók.', 'Dynamic fields groups for process widget. The key is the name of the group, the value contains the fields to be shown. Example: \'Key => My Group\', \'Content: Name_X, NameY\'.' => 'Dinamikus mezők csoportjai a feldolgozó felületi elemhez. A kulcs a csoport neve, az érték a megjelenítendő mezőket tartalmazza. Példa: „Kulcs => Saját csoport”, „Tartalom: Név_X, Név_Y”.', - 'Dynamic fields limit per page for Dynamic Fields Overview.' => '', + 'Dynamic fields limit per page for Dynamic Fields Overview.' => 'Oldalankénti dinamikus mező korlát a dinamikus mezők áttekintőnél.', 'Dynamic fields options shown in the ticket message screen of the customer interface. NOTE. If you want to display these fields also in the ticket zoom of the customer interface, you have to enable them in CustomerTicketZoom###DynamicField.' => 'Az ügyfélfelület jegy üzenet képernyőjén megjelenő dinamikus mezők lehetőségei. MEGJEGYZÉS: Ha az ügyfélfelület jegy nagyításában is meg szeretné jeleníteni ezeket a mezőket, akkor engedélyeznie kell azokat ebben: CustomerTicketZoom###DynamicField.', 'Dynamic fields options shown in the ticket reply section in the ticket zoom screen of the customer interface.' => @@ -7441,6 +7467,7 @@ 'JavaScript function for the search frontend.' => 'JavaScript függvény a keresési előtétprogramhoz.', 'Language' => 'Nyelv', 'Large' => 'Nagy', + 'Last Screen Overview' => 'Utolsó képernyő áttekintője', 'Last customer subject' => 'Legutóbbi ügyféltárgy', 'Lastname Firstname' => 'Vezetéknév Keresztnév', 'Lastname Firstname (UserLogin)' => 'Vezetéknév Keresztnév (Felhasználónév)', @@ -8528,9 +8555,9 @@ 'Ticket bulk module.' => 'Jegy tömeges modul.', 'Ticket event module that triggers the escalation stop events.' => 'Jegyesemény modul, amely aktiválja az eszkaláció leállítás eseményeket.', - 'Ticket limit per page for Ticket Overview "Medium".' => '', - 'Ticket limit per page for Ticket Overview "Preview".' => '', - 'Ticket limit per page for Ticket Overview "Small".' => '', + 'Ticket limit per page for Ticket Overview "Medium".' => 'Oldalankénti jegykorlát a „Közepes” jegyáttekintéshez.', + 'Ticket limit per page for Ticket Overview "Preview".' => 'Oldalankénti jegykorlát az „Előnézet” jegyáttekintéshez.', + 'Ticket limit per page for Ticket Overview "Small".' => 'Oldalankénti jegykorlát a „Kis” jegyáttekintéshez.', 'Ticket notifications' => 'Jegyértesítések', 'Ticket overview' => 'Jegyáttekintő', 'Ticket plain view of an email.' => 'Egy e-mail egyszerű jegynézete.', @@ -8696,6 +8723,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8953,7 +8982,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/id.pm otrs2-6.0.5/Kernel/Language/id.pm --- otrs2-6.0.4/Kernel/Language/id.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/id.pm 2018-02-05 23:46:53.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.702992561840512; + $Self->{Completeness} = 0.700949094046592; # csv separator $Self->{Separator} = ','; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => 'Mengedit preferensi anda', 'Personal preferences' => '', 'Preferences' => 'Pilihan', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => 'Hantar laporan kesalahan', 'Expand' => 'Perluas', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Akun surat telah di tambahkan!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Pengiriman melalui email Kepada: bidang.', 'Dispatching by selected Queue.' => 'Pengiriman melalui Antrian yang dipilih.', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'A system maintenance period will start at:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon tidak berjalan', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => 'InnoDB Log Ukuran File', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Pengaturan innodb_log_file_size harus minimal 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maksimum Ukuran Query', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Tabel dengan mesin penyimpanan yang berbeda dari mesin yang ditemukan.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x atau yang lebih tinggi diperlukan.', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT harus diatur menjadi \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Pengaturan SQL check NLS_DATE_FORMAT', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Pengaturan client_encoding perlu UNICODE atau UTF 8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Pengaturan encoding server harus UNICODE atau UTF 8.', @@ -4952,6 +4972,11 @@ 'Date Format' => 'Format tanggal', 'Setting DateStyle needs to be ISO.' => 'Pengaturan DateStyle perlu ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Geserkan navigasi bar', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Silahkan matikan metode Compatibillity di Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Fitur ini merupakan salah satu dari %s. Silahkan hubungi kami di %s untuk memperbarui', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7439,6 +7465,7 @@ 'JavaScript function for the search frontend.' => 'Fungsi JavaScript untuk pencarian frontend ', 'Language' => 'Bahasa', 'Large' => 'Besar', + 'Last Screen Overview' => '', 'Last customer subject' => 'subjek pelanggan terakhir', 'Lastname Firstname' => 'Nama Pertama Nama Akhir', 'Lastname Firstname (UserLogin)' => 'Nama Akhir Nama Pertama (Pengguna masuk)', @@ -8694,6 +8721,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8951,7 +8980,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/it.pm otrs2-6.0.5/Kernel/Language/it.pm --- otrs2-6.0.4/Kernel/Language/it.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/it.pm 2018-02-05 23:46:53.000000000 +0000 @@ -32,7 +32,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.476734129043418; + $Self->{Completeness} = 0.475237273511648; # csv separator $Self->{Separator} = ''; @@ -2446,7 +2446,7 @@ 'Edit your preferences' => 'Modifica preferenze', 'Personal preferences' => '', 'Preferences' => 'Preferenze', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2941,6 +2941,9 @@ 'Send a bugreport' => 'Invia una segnalazione di bug', 'Expand' => 'Espandi', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3294,6 +3297,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3654,6 +3658,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Account di posta aggiunto!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Smistamento in base al campo A:.', 'Dispatching by selected Queue.' => 'Smistamento in base alla coda selezionata.', @@ -3703,9 +3709,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4018,8 +4026,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4585,7 +4591,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Un periodo di manutenzione del sistema inizierà alle:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Il demone OTRS non è in esecuzione.', @@ -4923,6 +4930,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Dimensione Massima della Query', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4939,6 +4951,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Sono state trovate tabelle che hanno una storage engine diversa dal default del database.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'È richiesto l\'uso di MySQL 5.x o versioni superiori.', @@ -4950,6 +4965,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'Il parametro NLS_DATE_FORMAT deve essere impostato nel formato \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Controllo impostazione SQL NLS_DATE_FORMAT', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Il parametro client_encoding deve essere UNICODE o UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Il parametro server_encoding deve essere UNICODE o UTF8.', @@ -4958,6 +4978,11 @@ 'Date Format' => 'Formato Data', 'Setting DateStyle needs to be ISO.' => 'Il parametro DateStyle deve essere di tipo ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5204,6 +5229,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5659,8 +5687,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Disattiva la modalità di compatibilità in Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Questa funzionalità è parte di %s. Contattaci su %s per un aggiornamento.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7433,6 +7459,7 @@ 'JavaScript function for the search frontend.' => 'Funzione JavaScript per l\'interfaccia di ricerca.', 'Language' => 'Lingua', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Cognome Nome', 'Lastname Firstname (UserLogin)' => 'Cognome Nome (Utente)', @@ -8688,6 +8715,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8945,7 +8974,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/ja.pm otrs2-6.0.5/Kernel/Language/ja.pm --- otrs2-6.0.4/Kernel/Language/ja.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/ja.pm 2018-02-05 23:46:53.000000000 +0000 @@ -27,7 +27,7 @@ $Self->{DateFormatShort} = '%Y/%M/%D'; $Self->{DateInputFormat} = '%Y/%M/%D'; $Self->{DateInputFormatLong} = '%Y/%M/%D - %T'; - $Self->{Completeness} = 0.756270541428819; + $Self->{Completeness} = 0.754098360655738; # csv separator $Self->{Separator} = ';'; @@ -2442,7 +2442,7 @@ 'Edit your preferences' => '個人設定を編集', 'Personal preferences' => '個人設定', 'Preferences' => '個人設定', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => 'このエージェントの編集に戻る', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2937,6 +2937,9 @@ 'Send a bugreport' => 'バグ報告を送信', 'Expand' => '展開', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '下書きを更新', 'Save as new draft' => '新しい下書きとして保存', @@ -3290,6 +3293,7 @@ 'Loading, please wait...' => '読み込み中です。お待ち下さい...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'クリックしてファイルを選択するか、ここにドロップして下さい。', 'Click to select a file or just drop it here.' => 'クリックしてファイルを選択するか、ここにドロップします。', 'Uploading...' => 'アップロード中...', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'メールアカウントを追加しました。', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'メールの宛先で振り分け', 'Dispatching by selected Queue.' => '選択したキューで振り分け', @@ -3700,9 +3706,11 @@ 'Updated' => '更新しました', 'Already up-to-date' => 'すでに最新版です。', 'Installed' => 'インストールしました', + 'Not correctly deployed' => '', 'Package updated correctly' => 'パッケージの更新は正常に終了しました。', 'Package was already updated' => 'パッケージはすでに更新済みです。', 'Dependency installed correctly' => '依存するモジュールは正常にインストールされました。', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'このパッケージとの依存関係が循環状態にあります。', 'Not found in on-line repositories' => 'オンライン・リポジトリからは見つかりませんでした。', 'Required version is higher than available' => '現在お使いのものより新しいバージョンが必要です。', @@ -4015,8 +4023,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '設定が見つかりません!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '次の時刻からシステムメンテナンスが行われます: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRSデーモンが起動していません。', @@ -4920,6 +4927,11 @@ 'InnoDB Log File Size' => 'InnoDBログのファイルサイズ', 'The setting innodb_log_file_size must be at least 256 MB.' => 'innodb_log_file_size 設定は最低でも256MBにする必要があります。', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '最大クエリサイズ', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4936,6 +4948,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'デフォルトのストレージエンジンと違うストレージエンジン設定の Table が見つかりました', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '動作要件は MySQL 5.x 以上になっています ', @@ -4947,6 +4962,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT は YYYY-MM-DD HH24:MI:SS に設定されている必要があります', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT 設定 SQL チェック', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => ' client_encodingはユニコードまたはUTF8 に設定する必要があります', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'server_encodingはユニコードまたはUTF8 に設定する必要があります', @@ -4955,6 +4975,11 @@ 'Date Format' => 'データーフォーマット', 'Setting DateStyle needs to be ISO.' => '日付の設定はISOフォーマットに従ってください', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5201,6 +5226,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '全ての設定', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5656,8 +5684,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'ナビゲーションバーを操作してください', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Internet Explorerの互換モードを無効にして下さい。', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'この機能は %s の一部です。%s の更新についてサポートまでお問い合わせください。', 'Find out more' => '詳細を参照', # JS File: Core.App.Responsive @@ -7448,6 +7474,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => '言語', 'Large' => '大', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8704,6 +8731,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8961,7 +8990,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/lt.pm otrs2-6.0.5/Kernel/Language/lt.pm --- otrs2-6.0.4/Kernel/Language/lt.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/lt.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%Y-%M-%D'; $Self->{DateInputFormat} = '%Y-%M-%D'; $Self->{DateInputFormatLong} = '%Y-%M-%D - %T'; - $Self->{Completeness} = 0.196159833938765; + $Self->{Completeness} = 0.195685936151855; # csv separator $Self->{Separator} = ';'; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Redaguoti savo nustatymus', 'Personal preferences' => '', 'Preferences' => 'Asmeniniai nustatymai', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Siųsti pranešimą apie defektą', 'Expand' => 'Išplėsti', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Išsiuntinėti pagal el. pašto Kam: laukelį.', 'Dispatching by selected Queue.' => 'Išsiuntinėti pagal pasirinktą eilę.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Kalba', 'Large' => 'Didelis', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/lv.pm otrs2-6.0.5/Kernel/Language/lv.pm --- otrs2-6.0.4/Kernel/Language/lv.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/lv.pm 2018-02-05 23:46:54.000000000 +0000 @@ -23,7 +23,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.166580176440062; + $Self->{Completeness} = 0.166177739430544; # csv separator $Self->{Separator} = ''; @@ -2437,7 +2437,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => 'Iestatījumi', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2932,6 +2932,9 @@ 'Send a bugreport' => '', 'Expand' => 'Izvērst', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3285,6 +3288,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3645,6 +3649,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Pasta konts pievienots!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Pārvietot pēc Kam: lauka pazīmes e-pastā.', 'Dispatching by selected Queue.' => 'Pārvietot uz norādīto rindu.', @@ -3694,9 +3700,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4009,8 +4017,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4576,7 +4582,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4914,6 +4921,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4930,6 +4942,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x vai augstāks ir nepieciešams.', @@ -4941,6 +4956,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT ir jāiestata kā \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Iestatījumam client_encoding jābūt UNICODE vai UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Iestatījumam server_encoding jābūt UNICODE vai UTF8.', @@ -4949,6 +4969,11 @@ 'Date Format' => 'Datuma formāts', 'Setting DateStyle needs to be ISO.' => 'Iestatījumam DateStyle jābūt ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5195,6 +5220,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5650,8 +5678,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7424,6 +7450,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Valoda', 'Large' => 'Liels', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8679,6 +8706,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8936,7 +8965,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/ms.pm otrs2-6.0.5/Kernel/Language/ms.pm --- otrs2-6.0.4/Kernel/Language/ms.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/ms.pm 2018-02-05 23:46:54.000000000 +0000 @@ -23,7 +23,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.626016260162602; + $Self->{Completeness} = 0.624158757549612; # csv separator $Self->{Separator} = ';'; @@ -2437,7 +2437,7 @@ 'Edit your preferences' => 'Edit pilihan anda', 'Personal preferences' => '', 'Preferences' => 'Pilihan', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2932,6 +2932,9 @@ 'Send a bugreport' => 'Hantar laporan bug', 'Expand' => 'Kembang', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3285,6 +3288,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3645,6 +3649,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Akaun emel ditambah!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Menghantar oleh emel kepada: bidang.', 'Dispatching by selected Queue.' => 'Menghantar oleh Barisan dipilih.', @@ -3694,9 +3700,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4009,8 +4017,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4576,7 +4582,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Tempoh penyelenggaraan sistem akan bermula pada:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon tidak berjalan.', @@ -4914,6 +4921,11 @@ 'InnoDB Log File Size' => 'Saiz Fail Log InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Tetapan saiz_fail_innodb haruslah sekurang-kurangnya 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Saiz Query Maksimum', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4930,6 +4942,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Jadual dengan enjin simpanan berlainan daripada enjin default dijumpai.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x atau lebih tinggi diperlukan.', @@ -4941,6 +4956,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT mestilah disetkan ke \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Tetapan NLS_DATE_FORMAT Periksa SQL', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Tetapan client_encoding haruslah UNICODE atau UTF8 ', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Tetapan server_encoding haruslah UNICODE atau UTF8 ', @@ -4949,6 +4969,11 @@ 'Date Format' => 'Format Tarikh', 'Setting DateStyle needs to be ISO.' => 'Tetapan JenisTarikh haruslah ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5195,6 +5220,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5650,8 +5678,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Gelongsor bar navigasi', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Sila tutup Mod Keserasian dalam Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ciri ini adalah sebahagian daripada %s. Sila hubungi kami di %s untuk naik taraf.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7438,6 +7464,7 @@ 'JavaScript function for the search frontend.' => 'Fungsi JavaScript untuk muka hadapan carian.', 'Language' => 'Bahasa', 'Large' => 'Besar', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Namaakhir Namapertama', 'Lastname Firstname (UserLogin)' => 'Namaakhir Namapertama (LogmasukPengguna)', @@ -8693,6 +8720,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8950,7 +8979,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/nb_NO.pm otrs2-6.0.5/Kernel/Language/nb_NO.pm --- otrs2-6.0.4/Kernel/Language/nb_NO.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/nb_NO.pm 2018-02-05 23:46:54.000000000 +0000 @@ -32,7 +32,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.42933748486421; + $Self->{Completeness} = 0.428300258843831; # csv separator $Self->{Separator} = ';'; @@ -2446,7 +2446,7 @@ 'Edit your preferences' => 'Endre dine innstillinger', 'Personal preferences' => '', 'Preferences' => 'Innstillinger', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2941,6 +2941,9 @@ 'Send a bugreport' => 'Sende en feilrapport', 'Expand' => 'Utvid', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3294,6 +3297,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Klikk for å velge filer eller bare slipp dem her.', 'Click to select a file or just drop it here.' => 'Klikk for å velge en fil eller bare slipp den her.', 'Uploading...' => 'Laster opp...', @@ -3654,6 +3658,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-postkonto lagt til!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Utsending etter oppføringer i To:-felt.', 'Dispatching by selected Queue.' => 'Utsending etter valgt kø.', @@ -3703,9 +3709,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4018,8 +4026,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4585,7 +4591,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS tjenesten kjører ikke', @@ -4923,6 +4930,11 @@ 'InnoDB Log File Size' => 'InnoDB logfilstørrelse', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Innstillingen \'innodb_log_file_size\' må minst være 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maksimum størrelse på spørring', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4939,6 +4951,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Tabeller med en annen lagringsmotor enn standardmotoren ble funnet', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x eller høyere er nødvendig.', @@ -4950,6 +4965,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT må bli satt til \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT innstilling for SQL sjekk', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Innstillingene \'client_encoding\' må være satt til UNICODE eller UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Innstilling \'server_encoding\' må være satt til UNIDOCE eller UTF8.', @@ -4958,6 +4978,11 @@ 'Date Format' => 'Datoformat', 'Setting DateStyle needs to be ISO.' => 'Innstilling DateStyle må være satt til ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5204,6 +5229,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5659,8 +5687,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7433,6 +7459,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Språk', 'Large' => 'Stor', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Etternavn Fornavn', 'Lastname Firstname (UserLogin)' => 'Etternavn Fornavn (Brukernavn)', @@ -8688,6 +8715,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8945,7 +8974,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/nl.pm otrs2-6.0.5/Kernel/Language/nl.pm --- otrs2-6.0.4/Kernel/Language/nl.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/nl.pm 2018-02-05 23:46:54.000000000 +0000 @@ -30,7 +30,7 @@ $Self->{DateFormatShort} = '%D-%M-%Y'; $Self->{DateInputFormat} = '%D-%M-%Y'; $Self->{DateInputFormatLong} = '%D-%M-%Y - %T'; - $Self->{Completeness} = 0.480539699014011; + $Self->{Completeness} = 0.479033649698016; # csv separator $Self->{Separator} = ';'; @@ -2444,7 +2444,7 @@ 'Edit your preferences' => 'Bewerk uw voorkeuren', 'Personal preferences' => '', 'Preferences' => 'Voorkeuren', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2939,6 +2939,9 @@ 'Send a bugreport' => 'Een bug report indienen', 'Expand' => 'Klap uit', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3292,6 +3295,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3652,6 +3656,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-mailaccount toegevoegd.', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Toewijzen gebaseerd op e-mailadres.', 'Dispatching by selected Queue.' => 'Toewijzen gebaseerd op geselecteerde wachtrij.', @@ -3701,9 +3707,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4016,8 +4024,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4583,7 +4589,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Een systeem onderhoudsperiode begint op:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon is niet actief.', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => 'InnoDB Log bestandsgrootte', 'The setting innodb_log_file_size must be at least 256 MB.' => 'De instelling innodb_log_file_size meot minimaal 256MB zijn', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maximale Query Lengte', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Er zijn tabellen gevonden die een afwijkende storage engine gebruiken.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x of hoger is vereist.', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT moet ingesteld zijn op \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT instelling SQL controle', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Instelling client_encoding moet UNICODE of UTF8 zijn', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Instelling server_encoding moet UNICODE of UTF8 zijn', @@ -4956,6 +4976,11 @@ 'Date Format' => 'Datum Format', 'Setting DateStyle needs to be ISO.' => 'Instelling DateStyle moet ISO zijn', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Schuif de navigaiebalk', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Zet a.u.b. Compatibility Mode in Internet Explorer uit!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Deze feature is onderdeel van het %s. Neem contact met ons op via %s voor een upgrade', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7442,6 +7468,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Taal', 'Large' => 'Groot', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8697,6 +8724,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8954,7 +8983,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/pl.pm otrs2-6.0.5/Kernel/Language/pl.pm --- otrs2-6.0.4/Kernel/Language/pl.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/pl.pm 2018-02-05 23:46:54.000000000 +0000 @@ -27,7 +27,7 @@ $Self->{DateFormatShort} = '%Y-%M-%D'; $Self->{DateInputFormat} = '%Y-%M-%D'; $Self->{DateInputFormatLong} = '%Y-%M-%D - %T'; - $Self->{Completeness} = 0.631378654212074; + $Self->{Completeness} = 0.656773080241588; # csv separator $Self->{Separator} = ';'; @@ -184,7 +184,7 @@ 'Agent preferences tooltip' => 'Podpowiedź (etykieta) w preferencjach agenta', 'This message will be shown on the agent preferences screen as a tooltip for this notification.' => 'Ten komunikat agent zobaczy na ekranie ustawień jako podpowiedź opisująca te powiadomienie.', - 'Toggle this widget' => 'Przełącz ten gadżet', + 'Toggle this widget' => 'Przełącz ten widget', 'Events' => 'Zdarzenia', 'Event' => 'Zdarzenie', 'Here you can choose which events will trigger this notification. An additional appointment filter can be applied below to only send for appointments with certain criteria.' => @@ -216,7 +216,7 @@ '', 'This feature is currently not available.' => 'Ta funkcja jest obecnie niedostępna.', 'Upgrade to %s' => 'Zaktualizuj do %s', - 'Please activate this transport in order to use it.' => '', + 'Please activate this transport in order to use it.' => 'Aktywuj ten sposób transportu aby go użyć.', 'No data found' => 'Nie znaleziono danych', 'No notification method found.' => 'Nie znaleziono metody powiadomienia', 'Notification Text' => 'Treść powiadomienia', @@ -321,70 +321,70 @@ 'Communication Log' => 'Log komunikacji', 'Time range' => 'Zakres czasu', 'Show only communication logs created in specific time range.' => - '', - 'Filter for communications' => '', + 'Pokaż log komunikacyjny utworzony tylko w określonym zakresie czasu.', + 'Filter for communications' => 'Filtr kanałów komunikacji', 'In this screen you can see an overview about incoming and outgoing communications.' => - '', + 'Na tym ekranie możesz zobaczyć podsumowanie komunikacji przychodzącej i wychodzącej.', 'You can change the sort and order of the columns by clicking on the column header.' => - '', + 'Możesz zmienić kolejność i sortowanie kolumn klikając na nagłówek tabeli.', 'If you click on the different entries, you will get redirected to a detailed screen about the message.' => - '', + 'Jeśli klikniesz w niektóre kolumny elementu, zostaniesz przekierowany do ekranu szczegółów.', 'Status for: %s' => 'Status dla: 1 %s', - 'Failing accounts' => '', - 'Some account problems' => '', - 'No account problems' => '', - 'No account activity' => '', - 'Number of accounts with problems: %s' => '', - 'Number of accounts with warnings: %s' => '', - 'Failing communications' => '', - 'No communication problems' => '', - 'No communication logs' => '', + 'Failing accounts' => 'Nieprawidłowe konta', + 'Some account problems' => 'Występują problemy kont', + 'No account problems' => 'Nie ma problemów z kontami', + 'No account activity' => 'Nie ma aktywności konta', + 'Number of accounts with problems: %s' => 'Ilość kont z problemami: %s', + 'Number of accounts with warnings: %s' => 'Ilość kont z ostrzeżeniami: %s', + 'Failing communications' => 'Niepowodzenia komunikacji', + 'No communication problems' => 'Brak problemów komunikacyjnych', + 'No communication logs' => 'Brak logów komunikacyjnych', 'Number of reported problems: %s' => 'Liczba zaraportowanych problemów: %s', - 'Open communications' => '', - 'No active communications' => '', - 'Number of open communications: %s' => '', + 'Open communications' => 'Otwarta komunikacja', + 'No active communications' => 'Brak aktywnej komunikacji', + 'Number of open communications: %s' => 'Liczba otwartych komunikacji: %s', 'Average processing time' => 'Średni czas przetwarzania', - 'List of communications (%s)' => '', + 'List of communications (%s)' => 'Lista komunikacji (%s)', 'Settings' => 'Ustawienia', 'Entries per page' => 'Pozycji na stronie', - 'No communications found.' => '', - '%s s' => '', + 'No communications found.' => 'Nie znaleziono komunikacji.', + '%s s' => '%s', # Template: AdminCommunicationLogAccounts 'Account Status' => 'Status konta', 'Back' => 'Powrót', 'Filter for accounts' => 'Filtr dla kont', - 'Filter for log entries' => '', + 'Filter for log entries' => 'Filtruj pozycje logu', 'You can change the sort and order of those columns by clicking on the column header.' => - '', + 'Możesz zmienić kolejność i sortowanie kolumn klikając na nagłówek tabeli.', 'Account status for: %s' => 'Stan konta dla: 1 %s', 'Status' => 'Stan', 'Account' => 'Konto', 'Edit' => 'Edytuj', 'No accounts found.' => 'Brak znalezionych kont.', - 'Communication Log Details (%s)' => '', + 'Communication Log Details (%s)' => 'Szczegóły logu komunikacyjnego (%s)', 'Direction' => 'Kierunek', 'Start Time' => 'Czas rozpoczęcia', 'End Time' => 'Czas zakończenia', - 'No communication log entries found.' => '', + 'No communication log entries found.' => 'Nie znaleziono pozycji logu komunikacyjnego.', # Template: AdminCommunicationLogCommunications - 'Duration' => '', + 'Duration' => 'Czas trwania', # Template: AdminCommunicationLogObjectLog - '#' => '', + '#' => '#', 'Priority' => 'Priorytet', 'Module' => 'Moduł', 'Information' => 'Informacje', - 'No log entries found.' => '', + 'No log entries found.' => 'Nie znaleziono pozycji logu.', # Template: AdminCommunicationLogZoom - 'Detail view for %s communication started at %s' => '', - 'Show only entries with specific priority and higher:' => '', - 'Communication Log Overview (%s)' => '', - 'No communication objects found.' => '', - 'Communication Log Details' => '', - 'Please select an entry from the list.' => '', + 'Detail view for %s communication started at %s' => 'Podgląd szczegółów dla %s komunikacja rozpoczęta o %s', + 'Show only entries with specific priority and higher:' => 'Pokaż tylko te pozycje logu od określonego priorytetu wzwyż:', + 'Communication Log Overview (%s)' => 'Przegląd Logu Komunikacyjnego (%s)', + 'No communication objects found.' => 'Nie znaleziono obiektów komunikacyjnych.', + 'Communication Log Details' => 'Szczegóły Logu Komunikacyjnego', + 'Please select an entry from the list.' => 'Wybierz pozycję z listy.', # Template: AdminCustomerCompany 'Customer Management' => 'Zarządzanie klientami', @@ -398,7 +398,7 @@ 'Please enter a search term to look for customers.' => 'Prosimy wprowadź frazę wyszukiwania by odszukać klientów.', 'Customer ID' => 'Identyfikator klienta', 'Please note' => 'Proszę zanotuj', - 'This customer backend is read only!' => '', + 'This customer backend is read only!' => 'Ten backend klienta jest tylko do odczytu!', # Template: AdminCustomerGroup 'Manage Customer-Group Relations' => 'Zarządzaj relacjami Klient-Grupa', @@ -445,7 +445,7 @@ 'Login as' => 'Nazwa użytkownika', 'Switch to customer' => 'Zmień klienta', 'This customer backend is read only, but the customer user preferences can be changed!' => - '', + 'Ten backend klienta jest tylko do odczytu, ale preferencje użytkownika klienta mogą być zmieniane!', 'This field is required and needs to be a valid email address.' => 'To pole jest wymagane i musi być poprawnym adresem e-mail.', 'This email address is not allowed due to the system configuration.' => @@ -455,11 +455,11 @@ 'Problem z DNS, sprawdź konfigurację i log błędów.', 'The syntax of this email address is incorrect.' => 'Składnia tego adresu e-mail jest niepoprawna.', 'This CustomerID is invalid.' => 'CustomerID jest nieprawidłowy.', - 'Effective Permissions for Customer User' => '', + 'Effective Permissions for Customer User' => 'Efektywne uprawnienia dla Użytkownika Klienta', 'Group Permissions' => 'Uprawnienia Grupy', 'This customer user has no group permissions.' => 'Ten użytkownik klienta, nie jest członkiem żadnej z grup zabezpieczeń,', 'Table above shows effective group permissions for the customer user. The matrix takes into account all inherited permissions (e.g. via customer groups). Note: The table does not consider changes made to this form without submitting it.' => - '', + 'Powyższa tabela pokazuje efektywne uprawnienia do grup użytkownika klienta. Macierz pobiera wszystkie dziedziczone uprawnienia dla konta (np. poprzez grupy użytkownika). Uwaga: Tabela nie zawiera zmian dokonanych na tej formatce i jeszcze nie zapisanych.', 'Customer Access' => 'Dostęp Klienta', 'Customer' => 'Nazwa klienta', 'This customer user has no customer access.' => '', @@ -469,9 +469,9 @@ # Template: AdminCustomerUserCustomer 'Manage Customer User-Customer Relations' => '', 'Select the customer user:customer relations.' => '', - 'Customer Users' => 'Użytkownicy klientów', - 'Change Customer Relations for Customer User' => '', - 'Change Customer User Relations for Customer' => '', + 'Customer Users' => 'Użytkownicy klienta', + 'Change Customer Relations for Customer User' => 'Zmień relacje Klienta dla Użytkownika klienta', + 'Change Customer User Relations for Customer' => 'Zmień relacje Użytkownika klienta do Klienta', 'Toggle active state for all' => 'Przełącz stan aktywności dla wszystkich', 'Active' => 'Aktywne', 'Toggle active state for %s' => 'Przełącz stan aktywności dla %s', @@ -479,13 +479,13 @@ # Template: AdminCustomerUserGroup 'Manage Customer User-Group Relations' => 'Zarządzaj relacjami Użytkownik klienta - Grupa', 'Just use this feature if you want to define group permissions for customer users.' => - '', + 'Użyj tej funkcjonalności jeśli chcesz określić uprawnienia grup dla użytkowników klienta.', 'Edit Customer User Default Groups' => 'Zmień Domyślną Grupę Użytkownika Klienta', 'These groups are automatically assigned to all customer users.' => 'Te grupy zostaną automatycznie przypisane do wszystkich użytkowników klienta.', 'You can manage these groups via the configuration setting "CustomerGroupAlwaysGroups".' => 'Możesz zarządzać tymi grupami poprzez parametr "CustomerGroupAlwaysGroups".', - 'Select the customer user - group permissions.' => '', + 'Select the customer user - group permissions.' => 'Określ uprawnienia użytkownik klienta - grupa.', 'If nothing is selected, then there are no permissions in this group (tickets will not be available for the customer user).' => '', 'Customer User Default Groups:' => 'Domyślna Grupa Użytkownika klienta', @@ -625,8 +625,8 @@ 'Edit job' => 'Edytuj zadanie', 'Add job' => 'Dodaj zadanie', 'Run job' => 'Wykonaj zadanie', - 'Filter for Generic Agent Jobs' => '', - 'Filter for generic agent jobs' => '', + 'Filter for Generic Agent Jobs' => 'Filtr zadań agenta automatycznego', + 'Filter for generic agent jobs' => 'Filtr zadań agenta automatycznego', 'Last run' => 'Ostatnie uruchomienie', 'Run Now!' => 'Uruchom teraz', 'Delete this task' => 'Usuń to zadanie', @@ -723,7 +723,7 @@ 'New Dynamic Field Values' => 'Nowe wartości pól dodatkowych', 'Archive selected tickets' => 'Zarchiwizuj zaznaczone zgłoszenia', 'Add Note' => 'Dodaj notatkę', - 'Visible for customer' => 'Widoczne dla klienta', + 'Visible for customer' => 'Widoczny dla klienta', 'Time units' => 'Zaraportowany czas obsługi', 'Execute Ticket Commands' => 'Wykonaj polecenia zgłoszeń', 'Send agent/customer notifications on changes' => 'Wyślij powidomienia agentowi/klientowi przy zmianie ', @@ -1207,7 +1207,7 @@ # Template: AdminLog 'System Log' => 'Log systemu', - 'Filter for Log Entries' => '', + 'Filter for Log Entries' => 'Filtruj pozycje logu', 'Here you will find log information about your system.' => 'Tutaj znajdziesz informacje o swoim systemie OTRS', 'Hide this message' => 'Ukryj tę wiadomość', 'Recent Log Entries' => 'Ostatnie pozycje loga', @@ -1222,7 +1222,7 @@ 'Filter for Mail Accounts' => 'Filtruj po Konta E-Mail', 'Filter for mail accounts' => 'Filtruj po konta e-mail', 'All incoming emails with one account will be dispatched in the selected queue.' => - '', + 'Wszystkie przychodzące na jedno konto wiadomości będą umieszczone w zaznacznej kolejce.', 'If your account is marked as trusted, the X-OTRS headers already existing at arrival time (for priority etc.) will be kept and used, for example in PostMaster filters.' => '', 'Outgoing email can be configured via the Sendmail* settings in %s.' => @@ -1251,7 +1251,7 @@ 'Links' => 'Linki', 'View the admin manual on Github' => 'Zobacz Instrukcję administratora na Github', 'No Matches' => 'Brak Dopasowań', - 'Sorry, your search didn\'t match any items.' => '', + 'Sorry, your search didn\'t match any items.' => 'Niestety twoje kryteria wyszukiwania nie pasują do żadnych elementów.', 'Set as favorite' => 'Ustaw jako ulubiony', # Template: AdminNotificationEvent @@ -1269,7 +1269,7 @@ 'Article sender type' => 'Typ nadawcy wiadomości', 'If ArticleCreate or ArticleSend is used as a trigger event, you need to specify an article filter as well. Please select at least one of the article filter fields.' => 'Jeśli UtworzenieWiadomości lub WysłanieWiadomości inicjuje jakieś zdarzenie, konieczne jest również określenie filtra wiadomości. Należy wybrać co najmniej jedno pole pole filtrowania wiadomości.', - 'Customer visibility' => '', + 'Customer visibility' => 'Widoczność Klienta', 'Communication channel' => 'Kanał komunikacji', 'Include attachments to notification' => 'Umieść załączniki w powiadomieniu', 'Notify user just once per day about a single ticket using a selected transport.' => @@ -1491,11 +1491,11 @@ # Template: AdminPostMasterFilter 'PostMaster Filter Management' => 'Zarządzanie filtrami poczty przychodzącej', - 'Add PostMaster Filter' => 'Dodaj filtr PostMaster', - 'Edit PostMaster Filter' => 'Edytuj filtr PostMaster', + 'Add PostMaster Filter' => 'Dodaj filtr pocztowy', + 'Edit PostMaster Filter' => 'Edytuj filtr pocztowy', 'Add filter' => 'Dodaj filtr', - 'Filter for Postmaster Filters' => '', - 'Filter for postmaster filters' => '', + 'Filter for Postmaster Filters' => 'Filtruj filtry pocztowe', + 'Filter for postmaster filters' => 'Filtruj filtry pocztowe', 'To dispatch or filter incoming emails based on email headers. Matching using Regular Expressions is also possible.' => 'Aby rozdzielić lub odfiltrować napływające wiadomości e-mail na podstawie nagłówków e-mail. Możliwe dopasowywanie przy użyciu wyrażeń regularnych.', 'If you want to match only the email address, use EMAILADDRESS:info@example.com in From, To or Cc.' => @@ -1505,7 +1505,7 @@ 'You can also use named captures %s and use the names in the \'Set\' action %s (e.g. Regexp: %s, Set action: %s). A matched EMAILADDRESS has the name \'%s\'.' => '', 'Delete this filter' => 'Usuń ten filtr', - 'Do you really want to delete this postmaster filter?' => 'Czy na pewno chcesz skasować filtr pocztowy?', + 'Do you really want to delete this postmaster filter?' => 'Czy na pewno chcesz skasować ten filtr pocztowy?', 'A postmaster filter with this name already exists!' => 'Filtr poczty o takiej nazwie już istnieje!', 'Filter Condition' => 'Warunek filtra', 'AND Condition' => 'Warunek ORAZ', @@ -1597,7 +1597,7 @@ 'Name: %s' => 'Nazwa: %s', 'Assigned Fields' => 'Przypisane pola', 'Communication Channel' => 'Kanał Komunikacji', - 'Is visible for customer' => 'Jest widoczne dla klienta', + 'Is visible for customer' => 'Jest widoczna dla klienta', 'Display' => 'Wyświetl', # Template: AdminProcessManagementPath @@ -2046,14 +2046,14 @@ '', # Template: AdminSystemConfiguration - 'online administrator documentation' => '', + 'online administrator documentation' => 'dokumentację administratora online', 'System configuration' => 'Konfiguracja systemu', 'Navigate through the available settings by using the tree in the navigation box on the left side.' => - '', + 'Poruszaj się wśród dostępnych ustawień, używając drzewa w obszarze nawigacyjnym po lewej stronie.', 'Find certain settings by using the search field below or from search icon from the top navigation.' => - '', + 'Znajdź określone ustawienia używając poniższego pola wyszukiwania, lub przy pomocy ikony wyszukiwania w menu nawigacyjnym.', 'Find out how to use the system configuration by reading the %s.' => - '', + 'Przeczytaj "%s" i dowiedz się jak używać konfiguracji systemu.', 'Search in all settings...' => '', 'There are currently no settings available. Please make sure to run \'otrs.Console.pl Maint::Config::Rebuild\' before using the software.' => '', @@ -2091,7 +2091,7 @@ '', # Template: AdminSystemConfigurationImportExport - 'Import & Export' => '', + 'Import & Export' => 'Import i Eksport', 'Upload a file to be imported to your system (.yml format as exported from the System Configuration module).' => '', 'Upload system configuration' => '', @@ -2104,11 +2104,11 @@ # Template: AdminSystemConfigurationSearch 'Search for' => '', 'Search for category' => '', - 'Settings I\'m currently editing' => '', + 'Settings I\'m currently editing' => 'Ustawienia, które aktualnie edytuję', 'Your search for "%s" in category "%s" did not return any results.' => - '', - 'Your search for "%s" in category "%s" returned one result.' => '', - 'Your search for "%s" in category "%s" returned %s results.' => '', + 'Twoje wyszukiwanie "%s" w categorii "%s" nie zwróciło żadnego wyniku.', + 'Your search for "%s" in category "%s" returned one result.' => 'Twoje wyszukiwanie "%s" w categorii "%s" zwróciło jeden wynik.', + 'Your search for "%s" in category "%s" returned %s results.' => 'Twoje wyszukiwanie "%s" w categorii "%s" zwróciło "%s" wyników.', 'You\'re currently not editing any settings.' => '', 'You\'re currently editing %s setting(s).' => '', @@ -2296,8 +2296,8 @@ 'Customer User Address Book' => '', 'Search for recipients and add the results as \'%s\'.' => '', 'Search template' => 'Szablon wyszukiwania', - 'Create Template' => 'Stwórz szablon', - 'Create New' => 'Stwórz nowy', + 'Create Template' => 'Utwórz szablon', + 'Create New' => 'Utwórz nowy', 'Save changes in template' => 'Zapisz zmiany w szablonie', 'Filters in use' => 'Filtry w użyciu', 'Additional filters' => 'Dodatkowe filtry', @@ -2347,7 +2347,7 @@ # Template: AgentDashboardCommon 'Save settings' => 'Zapisz ustawienia', - 'Close this widget' => 'Zamknij ten gadżet', + 'Close this widget' => 'Zamknij ten widget', 'more' => 'więcej', 'Available Columns' => 'Dostępne kolumny', 'Visible Columns (order by drag & drop)' => 'Widoczne kolumny (sortuj poprzez przeciągnij i upuść)', @@ -2368,7 +2368,7 @@ 'Archived tickets' => 'Zarchiwizowane zgłoszenia', # Template: AgentDashboardCustomerUserInformation - 'Note: Customer User is invalid!' => '', + 'Note: Customer User is invalid!' => 'Uwaga: Użytkownik klienta jest nieprawidłowy!', # Template: AgentDashboardCustomerUserList 'Customer user information' => '', @@ -2388,7 +2388,7 @@ # Template: AgentDashboardStats 'The configuration for this statistic widget contains errors, please review your settings.' => - '', + 'Konfiguracja tego wigdeta statystyk zawiera błędy, przejrzyj jego ustawienia.', 'Download as SVG file' => 'Pobierz jako plik SVG', 'Download as PNG file' => 'Pobierz jako plik PNG', 'Download as CSV file' => 'Pobierz jako plik CSV', @@ -2403,7 +2403,7 @@ # Template: AgentDashboardTicketGeneric 'Assigned to customer user' => 'Przypisane do użytkownika klienta', - 'Accessible for customer user' => '', + 'Accessible for customer user' => 'Dostępne dla użytkownika klienta', 'My locked tickets' => 'Zablokowane', 'My watched tickets' => 'Obserwowane', 'My responsibilities' => 'Odpowiedzialny', @@ -2442,14 +2442,14 @@ 'Edit your preferences' => 'Zmień swoje ustawienia', 'Personal preferences' => 'Ustawienia osobiste', 'Preferences' => 'Ustawienia', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => - '', + 'Dostosuj swoje ustawienia osobiste. Każdą z opcji można zapisać klikając ✓ po prawej stronie.', 'You can use the navigation tree below to only show settings from certain groups.' => '', - 'Dynamic Actions' => '', + 'Dynamic Actions' => 'Akcje dynamiczne', 'Filter settings...' => 'Ustawienia filtru...', 'Filter for settings' => 'Filtr dla ustawień', 'Save all settings' => 'Zapisz wszystkie ustawienia', @@ -2459,8 +2459,8 @@ '', 'Off' => 'Wyłączone', 'End' => 'Koniec', - 'This setting can currently not be saved.' => '', - 'This setting can currently not be saved' => '', + 'This setting can currently not be saved.' => 'To ustawienie nie może być teraz zapisane', + 'This setting can currently not be saved' => 'To ustawienie nie może być teraz zapisane', 'Save this setting' => 'Zapisz ustawienie', 'Did you know? You can help translating OTRS at %s.' => 'Czy wiesz, że możesz pomóc w tłumaczeniu OTRS na %s', @@ -2491,7 +2491,7 @@ 'Static' => 'statyczny', 'Non-configurable complex statistics.' => '', 'General Specification' => '', - 'Create Statistic' => 'Stwórz statystykę', + 'Create Statistic' => 'Utwórz statystykę', # Template: AgentStatisticsEdit 'Run now' => 'Uruchom teraz', @@ -2579,7 +2579,7 @@ 'Execute Bulk Action' => 'Wykonaj działanie zbiorcze', # Template: AgentTicketCompose - 'Compose Answer for %s%s%s' => 'Stwórz Odpowiedź dla %s%s%s', + 'Compose Answer for %s%s%s' => 'Utwórz Odpowiedź dla %s%s%s', 'This address is registered as system address and cannot be used: %s' => 'Ten adres został zarejestrowany jako adres systemowy i nie może zostać użyty: %s', 'Please include at least one recipient' => 'Wprowadź przynajmniej jednego odbiorcę', @@ -2701,7 +2701,7 @@ 'Fulltext' => 'Pełnotekstowe', 'Customer ID (complex search)' => 'ID Klienta (wyszukiwanie kompleksowe)', '(e. g. 234*)' => '(np. 234*)', - 'Customer ID (exact match)' => '', + 'Customer ID (exact match)' => 'ID Klienta (dokładne dopasowanie)', 'Assigned to Customer User Login (complex search)' => '', '(e. g. U51*)' => '(np. U51*)', 'Assigned to Customer User Login (exact match)' => '', @@ -2732,7 +2732,7 @@ 'Save filter settings as default' => 'Zapisz ustawienia filtru jako domyślne', 'Event Type' => 'Typ zdarzenia', 'Save as default' => 'Zapisz jako domyślny', - 'Drafts' => '', + 'Drafts' => 'Szkice', 'by' => 'przez', 'Change Queue' => 'Zmień kolejkę', 'There are no dialogs available at this point in the process.' => @@ -2937,17 +2937,20 @@ 'Send a bugreport' => 'Wysłać raport na temat błędu', 'Expand' => 'Rozwiń', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons - 'Update draft' => '', - 'Save as new draft' => '', + 'Update draft' => 'Zaktualizuj szkic', + 'Save as new draft' => 'Zapisz jako nowy szkic', # Template: DraftNotifications - 'You have loaded the draft "%s".' => '', - 'You have loaded the draft "%s". You last changed it %s.' => '', + 'You have loaded the draft "%s".' => 'Wczytałeś szkic "%s"', + 'You have loaded the draft "%s". You last changed it %s.' => 'Wczytałeś szkic "%s". Ostatnio zmieniałeś go %s.', 'You have loaded the draft "%s". It was last changed %s by %s.' => - '', + 'Wczytałeś szkic "%s". Ostatnio zmieniony %s przez %s.', 'Please note that this draft is outdated because the ticket was modified since this draft was created.' => - '', + 'Zauważ, że szkic jest nieaktualny ponieważ zgłoszenie zostało zmienione od czasu utworzenia szkicu.', # Template: Header 'View notifications' => 'Pokaż powiadomienia', @@ -3001,7 +3004,7 @@ # Template: InstallerDBStart 'Install Type' => 'Zainstaluj typ', - 'Create a new database for OTRS' => 'Stwórz nową baze danych dla OTRS', + 'Create a new database for OTRS' => 'Utwórz nową baze danych dla OTRS', 'Use an existing database for OTRS' => 'Użyj istniejącej bazy danych dla OTRS', # Template: InstallerDBmssql @@ -3238,24 +3241,24 @@ 'Edit search' => '', 'Go back to admin: ' => '', 'Deployment' => 'Wdrożenie', - 'My favourite settings' => '', + 'My favourite settings' => 'Moje ulubione ustawienia', 'Invalid settings' => '', # Template: DynamicActions - 'Filter visible settings...' => '', - 'Enable edit mode for all settings' => '', - 'Save all edited settings' => '', - 'Cancel editing for all settings' => '', + 'Filter visible settings...' => 'Filtruj widoczne ustawienia...', + 'Enable edit mode for all settings' => 'Włącz tryb edycji dla wszystkich ustawień', + 'Save all edited settings' => 'Zapisz wszystkie edytowane ustawienia', + 'Cancel editing for all settings' => 'Anuluj edycję wszystkich ustawień', 'All actions from this widget apply to the visible settings on the right only.' => - '', + 'Wszystkie akcje dostępne w tym widżecie stosuje się wyłącznie do ustawień widocznych po prawej stronie.', # Template: Help - 'Currently edited by me.' => '', - 'Modified but not yet deployed.' => '', - 'Currently edited by another user.' => '', - 'Different from its default value.' => '', - 'Save current setting.' => '', - 'Cancel editing current setting.' => '', + 'Currently edited by me.' => 'Obecnie edytowane przeze mnie', + 'Modified but not yet deployed.' => 'Zmodyfikowane, ale jeszcze nie wdrożone.', + 'Currently edited by another user.' => 'Obecnie edytowane przez innego użytkownika', + 'Different from its default value.' => 'Wartość różna od wartości domyślnej.', + 'Save current setting.' => 'Zapisz bieżące ustawienie.', + 'Cancel editing current setting.' => 'Anuluj edycję bieżącego ustawienia.', # Template: Navigation 'Navigation' => 'Nawigacja', @@ -3277,7 +3280,7 @@ 'Show' => 'Pokaż', # JS Template: FormDraftAddDialog - 'Draft title' => '', + 'Draft title' => 'Tytuł szkicu', # JS Template: ArticleViewSettingsDialog 'Article display' => '', @@ -3290,6 +3293,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3650,6 +3654,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Konto pocztowe dodane!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Przydzielaj na podstawie pola DO:', 'Dispatching by selected Queue.' => 'Przydzielaj na podstawie wybranej kolejki.', @@ -3699,9 +3705,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => 'Zainstalowane', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => 'Nie znaleziono w repozytoriach on-line', 'Required version is higher than available' => '', @@ -4014,8 +4022,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4037,16 +4043,16 @@ # Perl Module: Kernel/Modules/AgentTicketActionCommon.pm 'No TicketID is given!' => '', 'You need %s permissions!' => 'Potrzebujesz uprawnień do %s !', - 'Loading draft failed!' => '', + 'Loading draft failed!' => 'Nieudane wczytanie szkicu!', 'Sorry, you need to be the ticket owner to perform this action.' => 'Przykro mi, musisz być właścicielem zgłoszenia aby wykonać tę operację.', 'Please change the owner first.' => 'Najpierw zmień właściciela.', 'FormDraft functionality disabled!' => '', - 'Draft name is required!' => '', + 'Draft name is required!' => 'Nazwa szkicu jest wymagana!', 'FormDraft name %s is already in use!' => '', 'Could not perform validation on field %s!' => '', 'No subject' => 'Brak tematu', - 'Could not delete draft!' => '', + 'Could not delete draft!' => 'Nie można usunąć szkicu!', 'Previous Owner' => 'Poprzedni właściciel', 'wrote' => 'napisał(a)', 'Message from' => 'Wiadomość od', @@ -4287,9 +4293,9 @@ 'Forward article via mail' => 'Prześlij wiadomość dalej przez e-mail', 'Forward' => 'Prześlij dalej', 'Fields with no group' => '', - 'Invisible only' => '', - 'Visible only' => '', - 'Visible and invisible' => '', + 'Invisible only' => 'Tylko niewidoczne', + 'Visible only' => 'Tylko widoczne', + 'Visible and invisible' => 'Widoczne i niewidoczne', 'Article could not be opened! Perhaps it is on another article page?' => 'Wiadomość nie może być otwarta! Być może znajduje się na innej stronie wiadomości.', 'Show one article' => 'Pokaż tylko jedną wiadomość', @@ -4316,7 +4322,7 @@ 'Check SysConfig setting for %s::TicketTypeDefault.' => '', # Perl Module: Kernel/Modules/CustomerTicketOverview.pm - 'Need CustomerID!' => '', + 'Need CustomerID!' => 'Potrzebne ID Klienta!', 'My Tickets' => 'Moje zgłoszenia', 'Company Tickets' => 'Zgłoszenia firmy', 'Untitled!' => 'Bez tytułu!', @@ -4330,7 +4336,7 @@ # Perl Module: Kernel/Modules/CustomerTicketZoom.pm 'Can\'t reopen ticket, not possible in this queue!' => '', - 'Create a new ticket!' => 'Stwórz nowe zgłoszenie!', + 'Create a new ticket!' => 'Utwórz nowe zgłoszenie!', # Perl Module: Kernel/Modules/Installer.pm 'SecureMode active!' => '', @@ -4425,7 +4431,7 @@ 'Unmark' => 'Odznacz', # Perl Module: Kernel/Output/HTML/ArticleAction/ReinstallPackageLink.pm - 'Upgrade to OTRS Business Solution™' => '', + 'Upgrade to OTRS Business Solution™' => 'Ulepsz do wersji OTRS Business Solution™', 'Re-install Package' => 'Zainstaluj ponownie Paczkę', 'Upgrade' => 'Aktualizacja', 'Re-install' => 'Zainstaluj ponownie', @@ -4559,7 +4565,7 @@ 'Enable cloud services to unleash all OTRS features!' => 'W celu uruchomienia wszystkich funkcji OTRS włącz usługi w chmurze!', # Perl Module: Kernel/Output/HTML/Notification/AgentOTRSBusiness.pm - '%s Upgrade to %s now! %s' => '', + '%s Upgrade to %s now! %s' => '%sUlepsz do wersji %steraz! %s', 'Please verify your license data!' => '', 'The license for your %s is about to expire. Please make contact with %s to renew your contract!' => 'Twoja licencja na %s niedługo wygaśnie. Proszę skontaktuj się z %s w celu przedłużenia umowy!', @@ -4581,7 +4587,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Demon OTRS nie jest uruchomiony.', @@ -4746,7 +4753,7 @@ 'This setting can not be changed.' => '', 'This setting is not active by default.' => '', 'This setting can not be deactivated.' => '', - 'This setting is not visible.' => '', + 'This setting is not visible.' => 'To ustawienie jest niewidoczne.', 'This setting can be overridden in the user preferences.' => '', 'This setting can be overridden in the user preferences, but is not active by default.' => '', @@ -4919,6 +4926,11 @@ 'InnoDB Log File Size' => 'Rozmiar pliku dziennika InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Parametr "innodb_log_file_size" musi być ustawiony na co najmniej 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maksymalny rozmiar zapytania', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4935,6 +4947,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Znaleziono tabele z ustawionym magazynem danych innym niż domyślny.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Wymagany jest MYSQL w wersji 5.x lub wyższej.', @@ -4946,6 +4961,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT musi mieć postać "RRRR-MM-DD GG:MM:SS".', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT Ustawienie SQL Check', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Parametr "client_encoding" musi być ustawiony na UNICODE lub UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Parametr "server_encoding" musi być ustawiony na UNICODE lub UTF8.', @@ -4954,6 +4974,11 @@ 'Date Format' => 'Format daty', 'Setting DateStyle needs to be ISO.' => 'Parametr "DateStyle" musi być zgodny z ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5048,7 +5073,7 @@ 'Zagrożenie bezpieczeństwa: Konto agenta "root@localhost" nadal ma ustawione domyślne hasło. Należy je zmienić lub wyłączyć konto.', # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/EmailQueue.pm - 'Email Sending Queue' => '', + 'Email Sending Queue' => 'Kolejka Nadawcza Email', 'Emails queued for sending' => '', # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/ErrorLog.pm @@ -5134,7 +5159,7 @@ 'User default time zone' => '', 'User default time zone is not set.' => '', 'OTRS time zone setting for calendar' => '', - 'Calendar time zone is not set.' => '', + 'Calendar time zone is not set.' => 'Strefa czasowa kalendarza nie jest ustawiona.', # Perl Module: Kernel/System/SupportDataCollector/Plugin/OTRS/UI/AgentSkinUsage.pm 'UI - Agent Skin Usage' => '', @@ -5195,17 +5220,20 @@ # Perl Module: Kernel/System/SysConfig.pm 'Setting %s does not exists!' => '', 'Setting %s is not locked to this user!' => '', - 'Setting value is not valid!' => '', + 'Setting value is not valid!' => 'Wartość ustawienia jest nieprawidłowa!', 'Could not add modified setting!' => '', 'Could not update modified setting!' => '', - 'Setting could not be unlocked!' => '', - 'Missing key %s!' => '', + 'Setting could not be unlocked!' => 'Ustawienia nie można odblokować!', + 'Missing key %s!' => 'Brakujący klucz %s!', + 'Invalid setting: %s' => 'Nieprawidłowe ustawienie: %s', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => 'Wszystkie Ustawienia', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm 'Default' => 'Domyślne', 'Value is not correct! Please, consider updating this field.' => '', - 'Value doesn\'t satisfy regex (%s).' => '', + 'Value doesn\'t satisfy regex (%s).' => 'Wartość nie pasuje do regex (%s).', # Perl Module: Kernel/System/SysConfig/ValueType/Checkbox.pm 'Enabled' => 'Włączony', @@ -5331,7 +5359,7 @@ 'default follow-up (after a ticket follow-up has been added)' => '', 'default reject/new ticket created (after closed follow-up with new ticket creation)' => '', - 'Unclassified' => 'Nie sklasyfikowane', + 'Unclassified' => 'Niesklasyfikowane', '1 very low' => '1 bardzo niski', '2 low' => '2 niski', '3 normal' => '3 normalny', @@ -5468,9 +5496,9 @@ 'Are you sure you want to update all installed packages?' => 'Czy na pewno chcesz zaktualizować wszystkie zainstalowane pakiety?', # JS File: Core.Agent.Admin.PostMasterFilter - 'Delete this PostMasterFilter' => '', + 'Delete this PostMasterFilter' => 'Usuń ten filtr pocztowy', 'Deleting the postmaster filter and its data. This may take a while...' => - '', + 'Usuwanie filtra pocztowego i jego danych. To może chwilę potrwać....', # JS File: Core.Agent.Admin.ProcessManagement.Canvas 'Remove Entity from canvas' => 'Usuń Entity z obszaru projektu', @@ -5497,7 +5525,7 @@ 'Hide EntityIDs' => 'Ukryj EntityID', 'Edit Field Details' => 'Edytuj szczegóły pola', 'Customer interface does not support articles not visible for customers.' => - '', + 'Interfejs klienta nie wspiera wyświetlania artykułów niewidocznych dla klienta', 'Sorry, the only existing parameter can\'t be removed.' => '', # JS File: Core.Agent.Admin.SMIME @@ -5606,7 +5634,7 @@ # JS File: Core.Agent.Login 'Are you using a browser plugin like AdBlock or AdBlockPlus? This can cause several issues and we highly recommend you to add an exception for this domain.' => - '', + 'Czy używasz wtyczki typu AdBlock lub AdBlockPlus w swojej przeglądarce? To może powodować wiele problemów i dlatego gorąco zalecamy dodanie wyjątku we wtyczce dla tej domeny.', 'Do not show this warning again.' => '', # JS File: Core.Agent.Preferences @@ -5642,10 +5670,10 @@ ' ...show less' => '...pokaż mniej', # JS File: Core.Agent.TicketFormDraft - 'Add new draft' => '', - 'Delete draft' => '', - 'There are no more drafts available.' => '', - 'It was not possible to delete this draft.' => '', + 'Add new draft' => 'Dodaj nowy szkic', + 'Delete draft' => 'Usuń szkic', + 'There are no more drafts available.' => 'Nie ma więcej dostępnych szkiców.', + 'It was not possible to delete this draft.' => 'Usunięcie szkicu jest niemożliwe.', # JS File: Core.Agent.TicketZoom 'Article filter' => 'Filtr wiadomości', @@ -5655,8 +5683,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Wysuń panel nawigacji', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Proszę wyłącz Widok Zgodności w Internet Explorerze!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ta funkcja znajduje się w %s. Proszę skontaktuj się z nami na %s w celu aktualizacji.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -5884,11 +5910,11 @@ '', 'AgentTicketZoom widget that displays ticket data in the side bar.' => '', - 'Agents ↔ Groups' => 'Użytkownicy ↔ Grupy', - 'Agents ↔ Roles' => 'Użytkownicy ↔ Role', + 'Agents ↔ Groups' => 'Agenci ↔ Grupy', + 'Agents ↔ Roles' => 'Agenci ↔ Role', 'All CustomerIDs of a customer user.' => '', 'All attachments (OTRS Business Solution™)' => '', - 'All customer users of a CustomerID' => 'Wszyscy użytkownicy z identyyfikatorem klienta', + 'All customer users of a CustomerID' => 'Wszyscy użytkownicy z identyfikatorem klienta', 'All escalated tickets' => 'Wszystkie eskalowane zgłoszenia', 'All new tickets, these tickets have not been worked on yet' => 'Wszystkie nowe zgłoszenia, nie podjęto jeszcze prac w związku z nimi', 'All open tickets, these tickets have already been worked on, but need a response' => @@ -5950,29 +5976,29 @@ 'Allows the administrators to login as other users, via the users administration panel.' => 'Pozwala administratorom na logowanie się jako inni użytkownicy poprzez panel administracyjny użytkowników.', 'Allows to save current work as draft in the close ticket screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie zamykania zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the email outbound screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie emaila wychodzącego w interfejsie agenta.', 'Allows to save current work as draft in the ticket compose screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie tworzenia zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket forward screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przekazywania zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket free text screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie notatki tekstowej zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket move screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przenoszenia zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket note screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie notatki do zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket owner screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie właściciela zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket pending screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie przypomnienia zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket phone inbound screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie telefonu przychodzącego do zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket phone outbound screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie telefonu wychodzącego do zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket priority screen of the agent interface.' => - '', + 'Pozwala na zapisanie bieżącej pracy jako szkicu na ekranie priorytetu zgłoszenia w interfejsie agenta.', 'Allows to save current work as draft in the ticket responsible screen of the agent interface.' => '', 'Allows to set a new ticket state in the move ticket screen of the agent interface.' => @@ -6071,12 +6097,12 @@ '', 'Checks the entitlement status of OTRS Business Solution™.' => '', 'Child' => 'Potomek', - 'Chinese (Simplified)' => '', - 'Chinese (Traditional)' => '', + 'Chinese (Simplified)' => 'Chiński (Uproszczony)', + 'Chinese (Traditional)' => 'Chiński (Tradycyjny)', 'Choose for which kind of appointment changes you want to receive notifications.' => 'Wybierz, dla jakiego rodzaju zmian w wydarzeniach, chcesz otrzymywać powiadomienia.', 'Choose for which kind of ticket changes you want to receive notifications. Please note that you can\'t completely disable notifications marked as mandatory.' => - '', + 'Wybierz, dla jakich rodzajów zmian w zgłoszeniach, chcesz otrzymywać powiadomienia. Zauważ, że nie można całkowicie wyłączyć powiadomień oznaczonych jako obowiązkowe.', 'Choose which notifications you\'d like to receive.' => '', 'Christmas Eve' => 'Wigilia Bożego Narodzenia', 'Close this ticket' => 'Zamknij to zgłoszenie', @@ -6148,15 +6174,15 @@ 'Kontroluje czy flagi zgłoszenia i artykułu są usunięte kiedy zgłoszenie jest zarchiwizowane.', 'Converts HTML mails into text messages.' => 'Konwertuję e-maile HTML do tekstowych', 'Create New process ticket.' => '', - 'Create Ticket' => 'Twórz Zgłoszenie', + 'Create Ticket' => 'Utwórz Zgłoszenie', 'Create a new calendar appointment linked to this ticket' => 'Utwórz nowy kalendarz wydarzeń połączony z tym zgłoszeniem', 'Create and manage Service Level Agreements (SLAs).' => 'Twórz i zarządzaj poziomami SLA.', 'Create and manage agents.' => 'Zarządzanie listą agentów.', 'Create and manage appointment notifications.' => 'Utwórz i zarządzaj powiadomieniami wydarzeń.', 'Create and manage attachments.' => 'Ustawienia standardowych załączników.', 'Create and manage calendars.' => 'Twórz i zarządzaj kalendarzami.', - 'Create and manage customer users.' => 'Tworzenie i modyfikacja użytkowników.', - 'Create and manage customers.' => 'Zarządzanie listą klientów.', + 'Create and manage customer users.' => 'Tworzenie i modyfikacja użytkowników klienta.', + 'Create and manage customers.' => 'Tworzenie i modyfikacja klientów', 'Create and manage dynamic fields.' => 'Zarządzanie polami dynamicznymi.', 'Create and manage groups.' => 'Ustawienia grup agentów.', 'Create and manage queues.' => 'Ustawienia kolejek zgłoszeń.', @@ -6171,17 +6197,17 @@ 'Create and manage ticket states.' => 'Twórz i zarządzaj stanami zgłoszeń.', 'Create and manage ticket types.' => 'Ustawienia typów zgłoszeń.', 'Create and manage web services.' => 'Zarządzanie serwisami sieciowymi.', - 'Create new Ticket.' => 'Stwórz nowy Ticket', + 'Create new Ticket.' => 'Utwórz nowe zgłoszenie', 'Create new appointment.' => 'Utwórz nowe wydarzenie.', - 'Create new email ticket and send this out (outbound).' => 'Stwórz nowe zgłoszenie email i wyślij je (na zewnątrz)', - 'Create new email ticket.' => 'Stwórz nowy zgłoszenie Email.', - 'Create new phone ticket (inbound).' => 'Stwórz nowe zgłoszenie telefoniczne (wewnętrzne)', - 'Create new phone ticket.' => 'Stwórz nowe zgłoszenie telefoniczne.', + 'Create new email ticket and send this out (outbound).' => 'Utwórz nowe zgłoszenie email i wyślij je (na zewnątrz)', + 'Create new email ticket.' => 'Utwórz nowy zgłoszenie Email.', + 'Create new phone ticket (inbound).' => 'Utwórz nowe zgłoszenie telefoniczne (wewnętrzne)', + 'Create new phone ticket.' => 'Utwórz nowe zgłoszenie telefoniczne.', 'Create new process ticket.' => '', - 'Create tickets.' => 'Stwórz zgłoszenia.', + 'Create tickets.' => 'Utwórz zgłoszenia.', 'Created ticket [%s] in "%s" with priority "%s" and state "%s".' => '', - 'Croatian' => '', + 'Croatian' => 'Chorwacki', 'Custom RSS Feed' => '', 'Custom text for the page shown to customers that have no tickets yet (if you need those text translated add them to a custom translation module).' => '', @@ -6213,8 +6239,8 @@ 'Customers ↔ Groups' => '', 'Customizable stop words for fulltext index. These words will be removed from the search index.' => '', - 'Czech' => '', - 'Danish' => '', + 'Czech' => 'Czeski', + 'Danish' => 'Duński', 'Data used to export the search result in CSV format.' => 'Dane używane przy eksporcie wyników wyszukiwania do formatu CSV.', 'Date / Time' => 'Data / Czas', 'Default (Slim)' => '', @@ -6326,7 +6352,7 @@ 'Defines available article actions for invalid articles.' => '', 'Defines available groups for the admin overview screen.' => '', 'Defines chat communication channel.' => '', - 'Defines default headers for outgoing emails.' => '', + 'Defines default headers for outgoing emails.' => 'Określa domyślne nagłówki dla emaili wychodzących.', 'Defines email communication channel.' => '', 'Defines from which ticket attributes the agent can select the result order.' => 'Definiuje wśród których atrybutów agent może wybrać kolejność wyszukiwania.', @@ -6339,35 +6365,35 @@ 'Defines if a pre-sorting by priority should be done in the service view.' => '', 'Defines if a ticket lock is required in the close ticket screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie zamykania zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the email outbound screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie emaila wychodzącego w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the email resend screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie przesyłania dalej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket bounce screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie przkazania zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket compose screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie tworzenia zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket forward screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie przekazania dalej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket free text screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie notatki tekstowej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket merge screen of a zoomed ticket in the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie łączenia przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket note screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie notatki do zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket owner screen of a zoomed ticket in the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie właściciela przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket pending screen of a zoomed ticket in the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie oczekującego przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket phone inbound screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie rozmowy tel. przychodzącej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket phone outbound screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie rozmowy tel. wychodzącej zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket priority screen of a zoomed ticket in the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie priorytetu przybliżonego zgłoszenia w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required in the ticket responsible screen of the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => - '', + 'Określa, czy wymagana jest blokada zgłoszenia na ekranie odpowiedzialnego za zgłoszenie w interfejsie agenta (jeśli zgłoszenie nie jest jeszcze zablokowane, zostaje nałożona blokada, a bieżący agent staje się automatycznie właścicielem).', 'Defines if a ticket lock is required to change the customer of a ticket in the agent interface (if the ticket isn\'t locked yet, the ticket gets locked and the current agent will be set automatically as its owner).' => 'Określa czy blokada zgłoszenia jest wymagana, aby zmienić klienta powiązanego ze zgłoszeniem (jeżeli zgłoszenie nie zostało jeszcze zablokowane, blokuje się ono automatycznie i aktualny agent zostaje jego właścicielem).', 'Defines if agents should be allowed to login if they have no shared secret stored in their preferences and therefore are not using two-factor authentication.' => @@ -6423,7 +6449,7 @@ 'Defines the IP regular expression for accessing the local repository. You need to enable this to have access to your local repository and the package::RepositoryList is required on the remote host.' => '', 'Defines the PostMaster header to be used on the filter for keeping the current state of the ticket.' => - '', + 'Określa nagłówek poczty przychodzącej używany do zachowania bieżącego stanu zgłoszenia.', 'Defines the URL CSS path.' => 'Definiuje ścieżkę dla CSS', 'Defines the URL base path of icons, CSS and Java Script.' => 'Definiuje ścieżkę dla ikon, CSS i skryptów Java.', 'Defines the URL image path of icons for navigation.' => 'Definiuje ścieżkę dla ikon nawigacyjnych.', @@ -7429,6 +7455,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Język', 'Large' => 'Duże', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Nazwisko Imię', 'Lastname Firstname (UserLogin)' => 'Nazwisko Imię (Login)', @@ -8431,7 +8458,7 @@ 'The duration in minutes after emitting an event, in which the new escalation notify and start events are suppressed.' => '', 'The format of the subject. \'Left\' means \'[TicketHook#:12345] Some Subject\', \'Right\' means \'Some Subject [TicketHook#:12345]\', \'None\' means \'Some Subject\' and no ticket number. In the latter case you should verify that the setting PostMaster::CheckFollowUpModule###0200-References is activated to recognize followups based on email headers.' => - '', + 'Formatowanie tematu. \'Lewo\' oznacza \'[TicketHook#:12345] Pewien Temat\'. \'Prawo\' oznacza \'Pewien Temat [TicketHook#:12345]\', \'Brak\' oznacza \'Pewien Temat\' bez określania numeru zgłoszenia. W ostatnim przypadku sprawdź, czy ustawienie odpowiadające za rozpoznawanie kolejnych wiadomości w oparciu o nagłówki: PostMaster::CheckFollowUpModule###0200-References jest włączone', 'The headline shown in the customer interface.' => 'Nagłówek widoczny w interfejsie klienta.', 'The identifier for a ticket, e.g. Ticket#, Call#, MyTicket#. The default is Ticket#.' => 'Identyfikator zgłoszenia np. Ticket#, Call#, MyTicket#. Domyślny to Ticket#.', @@ -8484,7 +8511,7 @@ 'Opcja blokuje dostęp do zgłoszeń firmowych, które nie zostały utworzone przez użytkownika klienta.', 'This setting allows you to override the built-in country list with your own list of countries. This is particularly handy if you just want to use a small select group of countries.' => '', - 'This setting is deprecated. Set OTRSTimeZone instead.' => '', + 'This setting is deprecated. Set OTRSTimeZone instead.' => 'To ustawienie jest nieaktualne. Zamiast tego ustaw OTRSTimeZone.', 'This setting shows the sorting attributes in all overview screen, not only in queue view.' => '', 'This will allow the system to send text messages via SMS.' => '', @@ -8511,7 +8538,7 @@ 'Ticket Queue Overview' => 'Przegląd zgłoszeń na kolejkach', 'Ticket Responsible.' => 'Odpowiedzialny za zgłoszenie.', 'Ticket Watcher' => 'Obserwujący zgłoszenie', - 'Ticket Zoom' => '', + 'Ticket Zoom' => 'Szczegóły zgłoszenia', 'Ticket Zoom.' => 'Szczegóły zgłoszenia.', 'Ticket bulk module.' => '', 'Ticket event module that triggers the escalation stop events.' => @@ -8522,7 +8549,7 @@ 'Ticket notifications' => 'Powiadomienia o zgłoszeniach', 'Ticket overview' => 'Lista zgłoszeń', 'Ticket plain view of an email.' => '', - 'Ticket split dialog.' => '', + 'Ticket split dialog.' => 'Okno podziału zgłoszenia', 'Ticket title' => 'Tytuł zgłoszenia', 'Ticket zoom view.' => 'Widok szczegółów zgłoszenia.', 'TicketNumber' => 'Numer zgłoszenia', @@ -8579,16 +8606,16 @@ 'Uses richtext for viewing and editing: articles, salutations, signatures, standard templates, auto responses and notifications.' => '', 'Vietnam' => 'Wietnam', - 'View all attachments of the current ticket' => '', + 'View all attachments of the current ticket' => 'Pokaż wszystkie załączniki bieżącego zgłoszenia', 'View performance benchmark results.' => 'Objerzyj wyniki testów wydajności systemu', 'Watch this ticket' => 'Obserwuj to zgłoszenie', 'Watched Tickets' => 'Obserwowane zgłoszenia', 'Watched Tickets.' => 'Obserwowane zgłoszenia.', - 'We are performing scheduled maintenance.' => '', + 'We are performing scheduled maintenance.' => 'Przeprowadzamy zaplanowane prace serwisowe.', 'We are performing scheduled maintenance. Login is temporarily not available.' => - '', + 'Przeprowadzamy zaplanowane prace serwisowe. Logowanie jest tymczasowo niedostępne.', 'We are performing scheduled maintenance. We should be back online shortly.' => - '', + 'Przeprowadzamy zaplanowane prace serwisowe. System zostanie niedługo udostępniony.', 'Web Services' => 'Usługi Sieciowe', 'Web View' => 'Widok strony', 'When agent creates a ticket, whether or not the ticket is automatically locked to the agent.' => @@ -8609,9 +8636,9 @@ 'Your email with ticket number "" is merged to "".' => 'Twoje zgłoszenie o numerze "" zostało scalone z "".', 'Your queue selection of your preferred queues. You also get notified about those queues via email if enabled.' => - '', + 'Wybór ulubionych kolejek spośród dostępnych. O tych kolejkach będziesz informowany emailem, o ile włączysz powiadomienia.', 'Your service selection of your preferred services. You also get notified about those services via email if enabled.' => - '', + 'Wybór ulubionych usług spośród dostępnych. O tych usługach będziesz informowany emailem, o ile włączysz powiadomienia.', 'Zoom' => 'Podgląd', 'attachment' => 'załącznik', 'bounce' => 'przekaż', @@ -8684,6 +8711,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8941,7 +8970,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/pt_BR.pm otrs2-6.0.5/Kernel/Language/pt_BR.pm --- otrs2-6.0.4/Kernel/Language/pt_BR.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/pt_BR.pm 2018-02-05 23:46:54.000000000 +0000 @@ -29,7 +29,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.690019027849853; + $Self->{Completeness} = 0.688006902502157; # csv separator $Self->{Separator} = ';'; @@ -2443,7 +2443,7 @@ 'Edit your preferences' => 'Alterar Suas Preferências', 'Personal preferences' => 'Preferências Pessoais', 'Preferences' => 'Preferências', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => 'Retornar para a edição deste agente', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2938,6 +2938,9 @@ 'Send a bugreport' => 'Enviar um relatório de erro', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Atualizar rascunho', 'Save as new draft' => 'Salvar como novo rascunho', @@ -3291,6 +3294,7 @@ 'Loading, please wait...' => 'Carregando, por favor aguarde...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => 'Carregando...', @@ -3651,6 +3655,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Conta de e-mail adicionada!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Distribuição por e-mail por campo: "Para:"', 'Dispatching by selected Queue.' => 'Distribuição por Fila selecionada', @@ -3700,9 +3706,11 @@ 'Updated' => 'Atualizado', 'Already up-to-date' => 'Atual', 'Installed' => 'Instalado', + 'Not correctly deployed' => '', 'Package updated correctly' => 'Pacote atualizado corretamente', 'Package was already updated' => 'Pacote já foi atualizado', 'Dependency installed correctly' => 'Dependência instalada corretamente', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => 'Não encontrado nos repositórios on-line', 'Required version is higher than available' => '', @@ -4015,8 +4023,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4582,7 +4588,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'Manutenção de sistema está ativa!', - 'A system maintenance period will start at: ' => 'Uma janela de manutenção de sistema será iniciada em: ', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon não esta executando', @@ -4920,6 +4927,11 @@ 'InnoDB Log File Size' => 'Tamanho de arquivo de log InooDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'O parâmetro innodb_log_file_size deve ser ao menos 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Tamanho Máximo da Query', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4936,6 +4948,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Tabelas com um mecanismo de armazenamento diferente do mecanismo padrão foram encontrados.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x ou superior é requerido.', @@ -4947,6 +4962,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT deve ser definido para \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT Configurando SQL Check', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'A configuração client_encoding precisa ser UNICODE ou UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'A configuração server_encoding precisa ser UNICODE ou UTF8.', @@ -4955,6 +4975,11 @@ 'Date Format' => 'Formato da data', 'Setting DateStyle needs to be ISO.' => 'A configuração DateStyle precisa ser ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5201,6 +5226,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5656,8 +5684,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Deslize a barra de navegação', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Por favor desative o Modo de Compatibilidade no Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Esse recursos é parte do %s. Por favor contate-nos no %s para um upgrade. ', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7430,6 +7456,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'ÚltimoNome PrimeiroNome', 'Lastname Firstname (UserLogin)' => 'ÚltimoNome PrimeiroNome (Login de Usuário)', @@ -8685,6 +8712,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8942,7 +8971,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/pt.pm otrs2-6.0.5/Kernel/Language/pt.pm --- otrs2-6.0.4/Kernel/Language/pt.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/pt.pm 2018-02-05 23:46:54.000000000 +0000 @@ -25,7 +25,7 @@ $Self->{DateFormatShort} = '%Y-%M-%D'; $Self->{DateInputFormat} = '%Y-%M-%D'; $Self->{DateInputFormatLong} = '%Y-%M-%D - %T'; - $Self->{Completeness} = 0.303234734475004; + $Self->{Completeness} = 0.302329594477998; # csv separator $Self->{Separator} = ';'; @@ -2439,7 +2439,7 @@ 'Edit your preferences' => 'Editar preferências', 'Personal preferences' => '', 'Preferences' => 'Preferências', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2741,7 +2741,7 @@ 'Add Filter' => 'Adicionar filtro', 'Set' => 'Definir', 'Reset Filter' => 'Reiniciar filtro', - 'No.' => 'Não', + 'No.' => 'Nr.', 'Unread articles' => 'Artigos por ler', 'Via' => '', 'Important' => 'Importante', @@ -2934,6 +2934,9 @@ 'Send a bugreport' => 'Enviar um relatório de erro', 'Expand' => 'Expandir', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3287,6 +3290,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3647,6 +3651,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Conta de Mail adicionada!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Enviado através do campo de email Para:', 'Dispatching by selected Queue.' => 'Enviado para a Fila selecionada.', @@ -3696,9 +3702,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4011,8 +4019,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4578,7 +4584,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'O sistema entrará em manutenção às:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'O Daemon OTRS não está em execução.', @@ -4916,6 +4923,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4932,6 +4944,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4943,6 +4958,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4951,6 +4971,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5197,6 +5222,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5652,8 +5680,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7426,6 +7452,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Idioma', 'Large' => 'Grande', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8681,6 +8708,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8938,7 +8967,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/ru.pm otrs2-6.0.5/Kernel/Language/ru.pm --- otrs2-6.0.4/Kernel/Language/ru.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/ru.pm 2018-02-05 23:46:54.000000000 +0000 @@ -35,7 +35,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.915931499740529; + $Self->{Completeness} = 0.913028472821398; # csv separator $Self->{Separator} = ';'; @@ -2449,8 +2449,8 @@ 'Edit your preferences' => 'Измените ваши личные настройки', 'Personal preferences' => 'Персональные настройки', 'Preferences' => 'Настройки', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - 'Предупреждение! В настоящее время вы редактируете не свои настройки, а эти %s.', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => 'Возврат к редактированию этого агента', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => 'Установите свои личные настройки. Сохраните каждый параметр поставив "галочку" в квадратике справа.', @@ -2944,6 +2944,9 @@ 'Send a bugreport' => 'Отправить сообщение об ошибке', 'Expand' => 'Развернуть', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Обновить черновик', 'Save as new draft' => 'Сохранить как новый черновик', @@ -3297,6 +3300,7 @@ 'Loading, please wait...' => 'Подождите, идет загрузка...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Кликните для выбора файлов или просто перетащите их сюда.', 'Click to select a file or just drop it here.' => 'Кликните для выбора файла или просто перетащите его сюда.', 'Uploading...' => 'Выгружается...', @@ -3657,6 +3661,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Учетная запись почты добавлена!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Перенаправление по заголовку To: электронного письма', 'Dispatching by selected Queue.' => 'Перенаправление по выбранной очереди', @@ -3706,9 +3712,11 @@ 'Updated' => 'Обновлено', 'Already up-to-date' => 'Уже обновлено', 'Installed' => 'Установлено', + 'Not correctly deployed' => '', 'Package updated correctly' => 'Приложение обновлено корректно', 'Package was already updated' => 'Приложение уже обновлено', 'Dependency installed correctly' => 'Зависимость установлена правильно', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'Пакет содержит циклические зависимости', 'Not found in on-line repositories' => 'Не найдено в онлайн репозиториях', 'Required version is higher than available' => 'Требуемая версия выше доступной', @@ -4021,8 +4029,6 @@ 'Updated user preferences' => 'Обновленные настройки пользователя', 'System was unable to deploy your changes.' => 'Система не смогла применить ваше изменение.', 'Setting not found!' => 'Параметр не найден!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - 'Эта возможность является составной частью %s. Пожалуйста свяжитесь с нами по адресу %s для обновления.', 'System was unable to reset the setting!' => 'Система не смогла сбросить эту настройку!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4588,7 +4594,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'Система на техническом обслуживании!', - 'A system maintenance period will start at: ' => 'Период технического обслуживания начнется в:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'Служба OTRS не запущена', @@ -4926,6 +4933,11 @@ 'InnoDB Log File Size' => 'Размер файла журнала InnoDB ', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Значение параметра innodb_log_file_size должно быть больше 256 МВ.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Максимальный размер запроса', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4942,6 +4954,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Обнаружены таблицы с методом доступа отличающимся от установленного по умолчанию.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Требуется MySQL 5.х или выше', @@ -4953,6 +4968,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT должен быть задан в виде \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Параметр NLS_DATE_FORMAT для SQL Check', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Значение кодировки для клиента должно быть UNICODE or UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Значение кодировки для сервера должно быть UNICODE или UTF8. ', @@ -4961,6 +4981,11 @@ 'Date Format' => 'Формат даты', 'Setting DateStyle needs to be ISO.' => 'Значение DateStyle должно быть ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => 'PostgreSQL 9.2 или выше необходим.', @@ -5207,6 +5232,9 @@ 'Could not update modified setting!' => 'Не удалось обновить измененную настройку!', 'Setting could not be unlocked!' => 'Настройка не может быть разблокирована!', 'Missing key %s!' => 'Пропущен ключ %s!', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => 'Все настройки', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5662,8 +5690,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Прокрутите панель навигации', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Выключите Compatibility Mode/Режим совместимости в Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Эта возможность является составной частью %s. Пожалуйста свяжитесь с нами в %s. для обновления.', 'Find out more' => 'Найти ещё', # JS File: Core.App.Responsive @@ -7447,6 +7473,7 @@ 'JavaScript function for the search frontend.' => 'Функция JavaScript для фронтэнд поиска.', 'Language' => 'Язык', 'Large' => 'Большой', + 'Last Screen Overview' => '', 'Last customer subject' => 'Последняя заголовок клиента', 'Lastname Firstname' => 'Фамилия Имя', 'Lastname Firstname (UserLogin)' => 'Фамилия Имя (UserLogin)', @@ -8702,6 +8729,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8959,7 +8988,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sk_SK.pm otrs2-6.0.5/Kernel/Language/sk_SK.pm --- otrs2-6.0.4/Kernel/Language/sk_SK.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sk_SK.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.163466528282304; + $Self->{Completeness} = 0.185849870578085; # csv separator $Self->{Separator} = ';'; @@ -35,22 +35,22 @@ # Template: AdminACL 'ACL Management' => 'Správa ACL', - 'Actions' => 'Akcia', + 'Actions' => 'Akcie', 'Create New ACL' => 'Vytvoriť nové ACL', - 'Deploy ACLs' => '', + 'Deploy ACLs' => 'Nasadenie ACLs', 'Export ACLs' => 'Exportovať ACL', 'Filter for ACLs' => 'Filter pre ACL', - 'Just start typing to filter...' => '', - 'Configuration Import' => '', + 'Just start typing to filter...' => 'Začni písať pre filtrovanie...', + 'Configuration Import' => 'Import konfigurácie', 'Here you can upload a configuration file to import ACLs to your system. The file needs to be in .yml format as exported by the ACL editor module.' => - '', + 'Tu môžete nahrať konfiguračný súbor pre import ACLs do systému. Súbor musí byť v .yml fomáte, exportovaný z ACL editor modulu.', 'This field is required.' => 'Toto pole je povinné.', - 'Overwrite existing ACLs?' => '', + 'Overwrite existing ACLs?' => 'Prepísať existujúce ACLs?', 'Upload ACL configuration' => 'Nahrať ACL konfiguráciu', 'Import ACL configuration(s)' => 'Importovať ACL konfiguráciu', 'Description' => 'Popis ', 'To create a new ACL you can either import ACLs which were exported from another system or create a complete new one.' => - '', + 'Na vytvorenie nových ACL môžete buď importovať ACLs exportované z iného systému alebo vytvoriť úplne nové.', 'Changes to the ACLs here only affect the behavior of the system, if you deploy the ACL data afterwards. By deploying the ACL data, the newly made changes will be written to the configuration.' => '', 'ACLs' => 'ACL', @@ -58,32 +58,32 @@ '', 'ACL name' => 'Názov ACL', 'Comment' => 'poznámka', - 'Validity' => '', + 'Validity' => 'platnosť', 'Export' => 'Export', 'Copy' => 'Kopírovať', 'No data found.' => 'Neboli nájdene žiadne dáta.', - 'No matches found.' => 'Nebola nájdená zhoda', + 'No matches found.' => 'Nebola nájdená zhoda.', # Template: AdminACLEdit 'Edit ACL %s' => 'Upraviť ACL %', - 'Edit ACL' => '', + 'Edit ACL' => 'Upraviť ACL', 'Go to overview' => 'Prejsť na prehľad', 'Delete ACL' => 'Zmazať ACL', 'Delete Invalid ACL' => 'Zmazať chybný ACL', - 'Match settings' => '', + 'Match settings' => 'Nastavenie zhody', 'Set up matching criteria for this ACL. Use \'Properties\' to match the current screen or \'PropertiesDatabase\' to match attributes of the current ticket that are in the database.' => - '', + 'Nastav zodpovedajúce kritériá pre toto ACL. Použi "vlastnosti" pre zhodu s momentálnou obrazovkou alebo "vlastnosti databázy" pre zhodu atribútov aktuálneho tiketu, ktorý je v databáze.', 'Change settings' => 'Zmena nastavenia', 'Set up what you want to change if the criteria match. Keep in mind that \'Possible\' is a white list, \'PossibleNot\' a black list.' => - '', - 'Check the official' => '', + 'Nastav, čo chceš zmeniť, ak kritériá pasujú. Mysli na to, že "možné" je "white list" a "nemožné" je "black list".', + 'Check the official' => 'Skontoroluj oficiálne', 'documentation' => 'dokumentácia', - 'Show or hide the content' => '', - 'Edit ACL Information' => '', + 'Show or hide the content' => 'Zobraziť alebo skryť obsah', + 'Edit ACL Information' => 'Edituj ACL informáciu', 'Name' => 'Meno', - 'Stop after match' => '', - 'Edit ACL Structure' => '', - 'Save ACL' => '', + 'Stop after match' => 'Zastav po zhode', + 'Edit ACL Structure' => 'Edituj ACL štruktúru', + 'Save ACL' => 'Ulož ACL', 'Save' => 'Uložiť', 'or' => 'alebo', 'Save and finish' => 'Uložiť a skončiť', @@ -92,93 +92,93 @@ # Template: AdminACLNew 'Create a new ACL by submitting the form data. After creating the ACL, you will be able to add configuration items in edit mode.' => - '', + 'Vytvor nové ACL zaslaním dát z formuláru. Po vytvorení ACL, budete mať možnosť pridať configuračnú položku v editovacom móde.', # Template: AdminAppointmentCalendarManage - 'Calendar Management' => '', - 'Add Calendar' => '', - 'Edit Calendar' => '', - 'Go back' => '', - 'Calendar Overview' => '', - 'Add new Calendar' => '', - 'Import Appointments' => '', - 'Calendar Import' => '', + 'Calendar Management' => 'Menežment kalendára', + 'Add Calendar' => 'Pridaj kalendár', + 'Edit Calendar' => 'Edituj kalendár', + 'Go back' => 'Choď späť', + 'Calendar Overview' => 'Celkový prehľad kalendára', + 'Add new Calendar' => 'Pridaj nový kalendár', + 'Import Appointments' => 'Import schôdzok', + 'Calendar Import' => 'Import kalendára', 'Here you can upload a configuration file to import a calendar to your system. The file needs to be in .yml format as exported by calendar management module.' => - '', - 'Overwrite existing entities' => '', - 'Upload calendar configuration' => '', - 'Import Calendar' => '', - 'Filter for calendars' => '', + 'Tu môžete nahrať konfiguračný súbor pre import kalendára do systému. Súbor musí byť v .yml fomáte, exportovaný z modulu menežmentu kalendára.', + 'Overwrite existing entities' => 'Prepíš existujúce entity', + 'Upload calendar configuration' => 'Nahraj konfiguráciu kalendára', + 'Import Calendar' => 'Import kalendára', + 'Filter for calendars' => 'Filter pre kalendáre', 'Depending on the group field, the system will allow users the access to the calendar according to their permission level.' => - '', + 'V závislosti od skupinového poľa, systém umožní užívateľovi prístup do kalendára v závislosti od úrovne oprávnenia.', 'Read only: users can see and export all appointments in the calendar.' => - '', + 'Iba na čítanie: užívateľ môže vidieť a exportovať všetky schôdzky v kalendári.', 'Move into: users can modify appointments in the calendar, but without changing the calendar selection.' => - '', + 'Presuň do: užívateľ môže upraviť schôdzky v kalendári, ale bez zmeny výberu kalendára.', 'Create: users can create and delete appointments in the calendar.' => - '', - 'Read/write: users can manage the calendar itself.' => '', + 'Vytvor: užívatelia môžu vytvoriť a vymazať schôdzky v kalendári.', + 'Read/write: users can manage the calendar itself.' => 'Čítať/Zapisovať: užívatelia môžu menežovať kalendár.', 'Group' => 'Skupina', 'Changed' => 'Zmenený', 'Created' => 'Vytvorený', - 'Download' => '', - 'URL' => '', - 'Export calendar' => '', - 'Download calendar' => '', - 'Copy public calendar URL' => '', + 'Download' => 'Stiahnuť', + 'URL' => 'URL', + 'Export calendar' => 'Export kalendára', + 'Download calendar' => 'Stiahni kalendár', + 'Copy public calendar URL' => 'Kopíruj verejnú URL kalendára', 'Calendar' => 'Kalendár', - 'Calendar name' => '', - 'Calendar with same name already exists.' => '', - 'Color' => '', - 'Permission group' => '', - 'Ticket Appointments' => '', - 'Rule' => '', - 'Remove this entry' => '', + 'Calendar name' => 'Názov kalendára', + 'Calendar with same name already exists.' => 'Kalendár s rovnakým názvom už existuje.', + 'Color' => 'Farba', + 'Permission group' => 'Skupina oprávnení', + 'Ticket Appointments' => 'Ticketové schôdzky', + 'Rule' => 'Pravidlo', + 'Remove this entry' => 'Odstrániť túto položku', 'Remove' => 'Vymazať', - 'Start date' => '', - 'End date' => '', + 'Start date' => 'Počiatočný dátum', + 'End date' => 'Konečný dátum', 'Use options below to narrow down for which tickets appointments will be automatically created.' => '', 'Queues' => 'Fronty', - 'Please select a valid queue.' => '', - 'Search attributes' => '', - 'Add entry' => '', + 'Please select a valid queue.' => 'Prosím zvoľte platnú frontu.', + 'Search attributes' => 'Atribúty vyhľadávania', + 'Add entry' => 'Pridať položku', 'Add' => 'Pridať ', 'Define rules for creating automatic appointments in this calendar based on ticket data.' => - '', - 'Add Rule' => '', - 'Submit' => 'Predloženie', + 'Definuj pravidlá pre automatické vytvorenie schôdzky v tomto kalendári na základe dát z tiketov.', + 'Add Rule' => 'Pridaj pravidlo', + 'Submit' => 'Odoslať', # Template: AdminAppointmentImport - 'Appointment Import' => '', - 'Uploaded file must be in valid iCal format (.ics).' => '', + 'Appointment Import' => 'Import schôdzky', + 'Uploaded file must be in valid iCal format (.ics).' => 'Nahrávaný súbor musí byť v platnom iCAL formáte (.ics).', 'If desired Calendar is not listed here, please make sure that you have at least \'create\' permissions.' => - '', + 'Ak požadovaný kalendár tu nie je uvedený, uistite sa, že máte minimálne oprávnenie na jeho vytvorenie.', 'Upload' => 'Nahrať', - 'Update existing appointments?' => '', + 'Update existing appointments?' => 'Aktualizovať existujúcu schôdzku?', 'All existing appointments in the calendar with same UniqueID will be overwritten.' => - '', - 'Upload calendar' => '', - 'Import appointments' => '', + 'Všetky existujúce schôdzky v kalendári s rovnakým UniqueID budú prepísané.', + 'Upload calendar' => 'Nahraj kalendár', + 'Import appointments' => 'Import schôdzok', # Template: AdminAppointmentNotificationEvent - 'Appointment Notification Management' => '', - 'Add Notification' => '', - 'Edit Notification' => '', - 'Add notification' => '', - 'Export Notifications' => '', - 'Filter for Notifications' => '', - 'Filter for notifications' => '', + 'Appointment Notification Management' => 'Menežment notifikácií schôdzok', + 'Add Notification' => 'Pridaj notifikáciu', + 'Edit Notification' => 'Edituj notifikáciu', + 'Add notification' => 'Pridaj notifikáciu', + 'Export Notifications' => 'Export notifikácií', + 'Filter for Notifications' => 'Filter pre notifikácie', + 'Filter for notifications' => 'Filter pre notifikácie', 'Here you can upload a configuration file to import appointment notifications to your system. The file needs to be in .yml format as exported by the appointment notification module.' => - '', - 'Overwrite existing notifications?' => '', - 'Upload Notification configuration' => '', - 'Import Notification configuration' => '', + 'Tu môžete nahrať konfiguračný súbor na import notifikácií schôdzok do Vášho systému. Súbor musí byť v .yml formáte exportovaný z modulu notifikácií schôdzok.', + 'Overwrite existing notifications?' => 'Prepísať existujúce notifikácie?', + 'Upload Notification configuration' => 'Nahrať konfiguráciu notifikácie', + 'Import Notification configuration' => 'Import konfigurácie notifikácie', 'List' => 'Zoznam', 'Delete' => 'Zmazať', - 'Delete this notification' => '', - 'Show in agent preferences' => '', - 'Agent preferences tooltip' => '', + 'Delete this notification' => 'Zmazať túto notifikáciu', + 'Show in agent preferences' => 'Zobraz v nastaveniach agenta', + 'Agent preferences tooltip' => 'Nástrojové tipy vlastností agenta ', 'This message will be shown on the agent preferences screen as a tooltip for this notification.' => '', 'Toggle this widget' => '', @@ -186,47 +186,47 @@ 'Event' => 'Udalosť', 'Here you can choose which events will trigger this notification. An additional appointment filter can be applied below to only send for appointments with certain criteria.' => '', - 'Appointment Filter' => '', + 'Appointment Filter' => 'Filter schôdzok', 'Type' => 'Typ', 'Title' => 'Názov', 'Location' => 'Poloha', - 'Team' => '', - 'Resource' => '', - 'Recipients' => '', - 'Send to' => '', - 'Send to these agents' => '', - 'Send to all group members' => '', - 'Send to all role members' => '', + 'Team' => 'Team', + 'Resource' => 'Zdroj', + 'Recipients' => 'Príjemcovia', + 'Send to' => 'Komu', + 'Send to these agents' => 'Poslať týmto agentom', + 'Send to all group members' => 'Poslať všetkým členom skupiny', + 'Send to all role members' => 'Poslať všetkým členom role', 'Send on out of office' => 'Pošli Neprítomnosť v kancelárii', - 'Also send if the user is currently out of office.' => '', - 'Once per day' => '', + 'Also send if the user is currently out of office.' => 'Pošli aj v prípade, že užívateľ je mimo kanceláriu.', + 'Once per day' => 'Jedenkrát za deň', 'Notify user just once per day about a single appointment using a selected transport.' => '', - 'Notification Methods' => '', + 'Notification Methods' => 'Spôsoby notifikácie', 'These are the possible methods that can be used to send this notification to each of the recipients. Please select at least one method below.' => '', - 'Enable this notification method' => '', + 'Enable this notification method' => 'Aktivuj túto notifikačnú metódu', 'Transport' => '', - 'At least one method is needed per notification.' => '', - 'Active by default in agent preferences' => '', + 'At least one method is needed per notification.' => 'Na notifikovanie je potrebná aspoň jedna metóda.', + 'Active by default in agent preferences' => 'Štandartne aktívny v nastaveniach agenta', 'This is the default value for assigned recipient agents who didn\'t make a choice for this notification in their preferences yet. If the box is enabled, the notification will be sent to such agents.' => '', - 'This feature is currently not available.' => '', - 'Upgrade to %s' => '', + 'This feature is currently not available.' => 'Táto funkcia momentálne nie je k dispozícii.', + 'Upgrade to %s' => 'Aktualizované na %s', 'Please activate this transport in order to use it.' => '', - 'No data found' => '', - 'No notification method found.' => '', - 'Notification Text' => '', + 'No data found' => 'Neboli nájdené žiadne dáta', + 'No notification method found.' => 'Nebola nájdená notifikačná metóda.', + 'Notification Text' => 'Text notifikácie', 'This language is not present or enabled on the system. This notification text could be deleted if it is not needed anymore.' => '', - 'Remove Notification Language' => '', + 'Remove Notification Language' => 'Vymaž jazyk notifikácie', 'Subject' => 'Predmet', 'Text' => 'Text', - 'Message body' => '', - 'Add new notification language' => '', - 'Save Changes' => '', + 'Message body' => 'Telo správy', + 'Add new notification language' => 'Pridaj nový notifikačný jazyk', + 'Save Changes' => 'Ulož zmeny', 'Tag Reference' => '', - 'Notifications are sent to an agent.' => '', + 'Notifications are sent to an agent.' => 'Notifikácie boli poslané agentovi.', 'You can use the following tags' => '', 'To get the first 20 character of the appointment title.' => '', 'To get the appointment attribute' => '', @@ -238,14 +238,14 @@ # Template: AdminAppointmentNotificationEventTransportEmailSettings 'Additional recipient email addresses' => '', - 'Article visible for customer' => '', + 'Article visible for customer' => 'Článok viditeľný pre zákazníka', 'An article will be created if the notification is sent to the customer or an additional email address.' => '', - 'Email template' => '', + 'Email template' => 'Vzor emailu', 'Use this template to generate the complete email (only for HTML emails).' => '', - 'Enable email security' => '', - 'Email security level' => '', + 'Enable email security' => 'Povoliť zabezpečenie e-mailu', + 'Email security level' => 'Úroveň zabezpečenia e-mailu', 'If signing key/certificate is missing' => '', 'If encryption key/certificate is missing' => '', @@ -253,12 +253,12 @@ 'Attachment Management' => 'riadenie príloh', 'Add Attachment' => 'Pridať prílohu', 'Edit Attachment' => 'Upraviť prílohu', - 'Filter for Attachments' => '', - 'Filter for attachments' => '', + 'Filter for Attachments' => 'Filter pre prílohy', + 'Filter for attachments' => 'Filter pre prílohy', 'Filename' => 'Názov súboru', 'Download file' => 'Stiahnúť prílohu', 'Delete this attachment' => 'Vymazať túto prílohu', - 'Do you really want to delete this attachment?' => '', + 'Do you really want to delete this attachment?' => 'Chceš skutočne vymazať túto prílohu?', 'Attachment' => 'Príloha', # Template: AdminAutoResponse @@ -275,7 +275,7 @@ 'To get the name of the ticket\'s customer user (if given).' => '', 'To get the article attribute' => '', 'Options of the current customer user data' => '', - 'Ticket owner options' => '', + 'Ticket owner options' => 'Možnosti vlastníka tiketu', 'Ticket responsible options' => '', 'Options of the current user who requested this action' => '', 'Options of the ticket data' => '', @@ -315,8 +315,8 @@ 'Available Cloud Services' => '', # Template: AdminCommunicationLog - 'Communication Log' => '', - 'Time range' => '', + 'Communication Log' => 'Komunikačný log', + 'Time range' => 'Časové rozpätie', 'Show only communication logs created in specific time range.' => '', 'Filter for communications' => '', @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Zmeniť nastavenia', 'Personal preferences' => '', 'Preferences' => 'Nastavenia', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Pošli report o chybách', 'Expand' => 'Rozšíriť', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3549,32 +3553,32 @@ 'Invoker deleted' => '', # Perl Module: Kernel/Modules/AdminGenericInterfaceErrorHandlingRequestRetry.pm - '0 seconds' => '', - '15 seconds' => '', - '30 seconds' => '', - '45 seconds' => '', - '1 minute' => '', - '2 minutes' => '', - '3 minutes' => '', - '4 minutes' => '', - '5 minutes' => '', + '0 seconds' => '0 sekúnd', + '15 seconds' => '15 sekúnd', + '30 seconds' => '30 sekúnd', + '45 seconds' => '45 sekúnd', + '1 minute' => '1 minuta', + '2 minutes' => '2 minuty', + '3 minutes' => '3 minuty', + '4 minutes' => '4 minuty', + '5 minutes' => '5 minút', '10 minutes' => ' 10 minút', '15 minutes' => ' 15 minút', - '30 minutes' => '', - '1 hour' => '', - '2 hours' => '', - '3 hours' => '', - '4 hours' => '', - '5 hours' => '', - '6 hours' => '', - '12 hours' => '', - '18 hours' => '', - '1 day' => '', - '2 days' => '', - '3 days' => '', - '4 days' => '', - '6 days' => '', - '1 week' => '', + '30 minutes' => '30 minút', + '1 hour' => '1 hodina', + '2 hours' => '2 hodiny', + '3 hours' => '3 hodiny', + '4 hours' => '4 hodiny', + '5 hours' => '5 hodín', + '6 hours' => '6 hodín', + '12 hours' => '12 hodín', + '18 hours' => '18 hodín', + '1 day' => '1 deň', + '2 days' => '2 dni', + '3 days' => '3 dni', + '4 days' => '4 dni', + '6 days' => '6 dní', + '1 week' => '1 týždeň', # Perl Module: Kernel/Modules/AdminGenericInterfaceInvokerDefault.pm 'Need InvokerType' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Mailové konto pridané!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Posielam emailom => prijemca: pole', 'Dispatching by selected Queue.' => 'Posielam vybraným queue.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Plánovaná systémová údržba začína o:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS démon nebeží.', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Posuňte navigačný panel', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Prosím vypnite Compatibility Mode v Internet Exploreri', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Táto funkcionalita je častou %s. Prosím kontaktujte nás ak chcete vyššiu verziu %s', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Jazyk', 'Large' => 'Veľký', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sl.pm otrs2-6.0.5/Kernel/Language/sl.pm --- otrs2-6.0.4/Kernel/Language/sl.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sl.pm 2018-02-05 23:46:54.000000000 +0000 @@ -28,7 +28,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.23248572911261; + $Self->{Completeness} = 0.231924072476273; # csv separator $Self->{Separator} = ';'; @@ -2442,7 +2442,7 @@ 'Edit your preferences' => 'Uredite vaše nastavitve', 'Personal preferences' => '', 'Preferences' => 'Nastavitve', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2937,6 +2937,9 @@ 'Send a bugreport' => 'pošlji poročilo o napaki', 'Expand' => 'Razširi', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3290,6 +3293,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3650,6 +3654,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-račun dodan!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Razporejanje po elektronski pošti na: polje.', 'Dispatching by selected Queue.' => 'Razporejanje po redu velikosti.', @@ -3699,9 +3705,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4014,8 +4022,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4581,7 +4587,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4919,6 +4926,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4935,6 +4947,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Zahtevan je vsaj MySQL 5.x.', @@ -4946,6 +4961,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4954,6 +4974,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5200,6 +5225,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5655,8 +5683,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7429,6 +7455,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Jezik', 'Large' => 'Veliko', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8684,6 +8711,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8941,7 +8970,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sr_Cyrl.pm otrs2-6.0.5/Kernel/Language/sr_Cyrl.pm --- otrs2-6.0.4/Kernel/Language/sr_Cyrl.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sr_Cyrl.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.998962117280747; + $Self->{Completeness} = 0.997756686798965; # csv separator $Self->{Separator} = ';'; @@ -80,7 +80,7 @@ 'documentation' => 'документација', 'Show or hide the content' => 'Покажи или сакриј садржај', 'Edit ACL Information' => 'Уреди информације о ACL', - 'Name' => 'Име', + 'Name' => 'Назив', 'Stop after match' => 'Заустави после поклапања', 'Edit ACL Structure' => 'Уреди структуру ACL', 'Save ACL' => 'Сачувај ACL', @@ -629,7 +629,7 @@ 'Run this task' => 'Покрени овај посао', 'Job Settings' => 'Подешавање посла', 'Job name' => 'Назив посла', - 'The name you entered already exists.' => 'Име које сте унели већ постоји.', + 'The name you entered already exists.' => 'Назив које сте унели већ постоји.', 'Automatic Execution (Multiple Tickets)' => 'Аутоматско извршење (вишеструки тикети)', 'Execution Schedule' => 'Распоред извршења', 'Schedule minutes' => 'Планирано минута', @@ -649,7 +649,7 @@ 'Уколико је догађај тикета отказао, биће примењен тикет филтер да потврди да ли тикет одговара. Само тада ће се посао на тикету покренути.', 'Do you really want to delete this event trigger?' => 'Да ли стварно желите да обришете овај окидач догађаја?', 'Add Event Trigger' => 'Додај окидач догађаја', - 'To add a new event select the event object and event name' => 'За додавање новог догађаја изаберите објект догађаја и име догађаја', + 'To add a new event select the event object and event name' => 'За додавање новог догађаја изаберите објекат и назив догађаја', 'Select Tickets' => 'Изабери тикете', '(e. g. 10*5155 or 105658*)' => 'нпр. 10*5144 или 105658*', '(e. g. 234321)' => 'нпр. 234321', @@ -770,7 +770,7 @@ 'General options' => 'Општа подешавања', 'The name can be used to distinguish different error handling configurations.' => 'Назив се може користити за прављење разлике између појединачних конфигурација за обраду грешке.', - 'Please provide a unique name for this web service.' => 'Молимо да обезбедите јединствено име за овај веб сервис.', + 'Please provide a unique name for this web service.' => 'Молимо да обезбедите јединствени назив за овај веб сервис.', 'Error handling module backend' => 'Модул за обраду грешке', 'This OTRS error handling backend module will be called internally to process the error handling mechanism.' => 'Овај модул за отклањање грешака ће бити позван интерно да обради грешку.', @@ -862,8 +862,8 @@ 'Do you really want to delete this invoker?' => 'Да ли стварно желите да избришете овог позиваоца?', 'Invoker Details' => 'Детаљи позиваоца', 'The name is typically used to call up an operation of a remote web service.' => - 'Име се обично користи за покретање операције удаљеног веб сервиса.', - 'Please provide a unique name for this web service invoker.' => 'Молимо употребите јединствено име за овог позиваоца веб сервиса.', + 'Назив се обично користи за покретање операције удаљеног веб сервиса.', + 'Please provide a unique name for this web service invoker.' => 'Молимо употребите јединствени назив за овог позиваоца веб сервиса.', 'Invoker backend' => 'Модул позиваоца', 'This OTRS invoker backend module will be called to prepare the data to be sent to the remote system, and to process its response data.' => 'Овај модул позиваоца биће позван да припреми податке за слање на удаљени систем и да обради податке његовог одговора.', @@ -879,7 +879,7 @@ 'Edit this event' => 'Уреди овај догађај', 'This invoker will be triggered by the configured events.' => 'Овај позиваоц ће бити активиран преко подешених догађаја.', 'To add a new event select the event object and event name and click on the "+" button' => - 'За додавање новог догађаја изаберите објект догађаја и име догађаја па кликните на "+" дугме', + 'За додавање новог догађаја изаберите објекат и назив догађаја па кликните на "+" дугме', 'Asynchronous event triggers are handled by the OTRS Scheduler Daemon in background (recommended).' => 'Асинхроним окидачима догађаја управља планер OTRS системског сервиса у позадини (препоручено).', 'Synchronous event triggers would be processed directly during the web request.' => @@ -1002,7 +1002,7 @@ 'Properties' => 'Својства', 'Route mapping for Operation' => 'Мапирање руте за операцију', 'Define the route that should get mapped to this operation. Variables marked by a \':\' will get mapped to the entered name and passed along with the others to the mapping. (e.g. /Ticket/:TicketID).' => - 'Дефинише руту која ће бити мапирана на ову операцију. Променљиве обележене са \':\' ће бити мапиране на унето име и прослеђене са осталима (нпр. /Ticket/:TicketID).', + 'Дефинише руту која ће бити мапирана на ову операцију. Променљиве обележене са \':\' ће бити мапиране за унети назив и прослеђене са осталима (нпр. /Ticket/:TicketID).', 'Valid request methods for Operation' => 'Важеће методе захтева за операцију', 'Limit this Operation to specific request methods. If no method is selected all requests will be accepted.' => 'Ограничи ову опреацију на поједине методе захтева. Ако ни једна метода није изабрана сви захтеви ће бити прихваћени.', @@ -1093,22 +1093,22 @@ 'URI to give SOAP methods a context, reducing ambiguities.' => 'URI који даје контекст SOAP методама, смањује двосмислености.', 'e.g urn:otrs-com:soap:functions or http://www.otrs.com/GenericInterface/actions' => 'нпр. urn:otrs-com:soap:functions или http://www.otrs.com/GenericInterface/actions', - 'Request name scheme' => 'Захтев за шему имена', + 'Request name scheme' => 'Захтев за шему назива', 'Select how SOAP request function wrapper should be constructed.' => 'Изаберите како ће бити конструисан омотач функције SOAP захтева.', '\'FunctionName\' is used as example for actual invoker/operation name.' => - '\'FunctionName\' се користи као пример за стварно име позиваоца/операције.', + '\'FunctionName\' се користи као пример за стваран назив позиваоца/операције.', '\'FreeText\' is used as example for actual configured value.' => '\'FreeText\' се користи као пример за стварну подешену вредност.', - 'Request name free text' => 'Слободан текст имена захтева', + 'Request name free text' => 'Слободан текст назива захтева', 'Text to be used to as function wrapper name suffix or replacement.' => - 'Текст који ће бити кориштен као наставак имена или замена омотача функције.', + 'Текст који ће бити кориштен као наставак назива или замена омотача функције.', 'Please consider XML element naming restrictions (e.g. don\'t use \'<\' and \'&\').' => 'Молимо да узмете у обзир XML оганичења именовања (нпр. немојте користити \'<\' и \'&\').', - 'Response name scheme' => 'Шема имена одговора', + 'Response name scheme' => 'Шема назива одговора', 'Select how SOAP response function wrapper should be constructed.' => 'Изаберите како ће бити конструисан омотач функције SOAP одговора.', - 'Response name free text' => 'Слободан текст имена одговора', + 'Response name free text' => 'Слободан текст назива одговора', 'Here you can specify the maximum size (in bytes) of SOAP messages that OTRS will process.' => 'Овде можете унети максималну величину (у бајтима) SOAP порука које ће OTRS да обради.', 'Encoding' => 'Кодни распоред', @@ -1124,7 +1124,7 @@ 'Add Web Service' => 'Додај веб сервис', 'Edit Web Service' => 'Уреди веб сервис', 'Clone Web Service' => 'Клонирај веб сервис', - 'The name must be unique.' => 'Име мора бити јединствено.', + 'The name must be unique.' => 'Назив мора бити јединствен.', 'Clone' => 'Клонирај', 'Export Web Service' => 'Извези веб сервис', 'Import web service' => 'Увези веб сервис', @@ -1692,7 +1692,7 @@ 'Edit Queue' => 'Уреди Ред', 'Filter for Queues' => 'Филтер за редове', 'Filter for queues' => 'Филтер за редове', - 'A queue with this name already exists!' => 'Ред са овим именом већ постоји!', + 'A queue with this name already exists!' => 'Ред са овим називом већ постоји!', 'This queue is present in a SysConfig setting, confirmation for updating settings to point to the new queue is needed!' => 'Овај ред се користи у системској конфигурацији, неопходна је додатна потврда за промену подешавања на нову вредност!', 'Sub-queue of' => 'Под-ред од', @@ -2034,7 +2034,7 @@ 'All incoming email with this address in To or Cc will be dispatched to the selected queue.' => 'Све долазне поруке са овом адресом у пољу To или Cc биће отпремљене у изабрани ред.', 'Email address' => 'Имејл адреса', - 'Display name' => 'Прикажи име', + 'Display name' => 'Прикажи назив', 'This email address is already used as system email address.' => 'Ова имејл адреса је већ употребљена као системска имејл адреса.', 'The display name and email address will be shown on mail you send.' => 'Приказано име и имејл адреса ће бити приказани на поруци коју сте послали.', @@ -2172,7 +2172,7 @@ 'Add ticket type' => 'Додај тип тикета', 'Filter for Types' => 'Филтер за типове', 'Filter for types' => 'Филтер за типове', - 'A type with this name already exists!' => 'Тип са овим именом већ постоји!', + 'A type with this name already exists!' => 'Тип са овим називом већ постоји!', 'This type is present in a SysConfig setting, confirmation for updating settings to point to the new type is needed!' => 'Овај тип се користи у системској конфигурацији, неопходна је додатна потврда за промену подешавања на нову вредност!', 'This type is used in the following config settings:' => 'Овај тип се користи у следећим системским подешавањима:', @@ -2438,8 +2438,8 @@ 'Edit your preferences' => 'Уреди личне поставке', 'Personal preferences' => 'Лична подешавања', 'Preferences' => 'Подешавања', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - 'Упозорење! Тренутно не мењате сопствена подешавање, већ она од %s.', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => 'Назад на уређивање овог оператера', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => 'Подесите своја лична подешавања. Сачувајте свако подешавање штиклирањем са десне стране.', @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Пошаљи извештај о грешци', 'Expand' => 'Прошири', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Aжурирај нацрт', 'Save as new draft' => 'Сачувај као нови нацрт', @@ -3038,7 +3041,7 @@ 'The identifier of the system. Each ticket number and each HTTP session ID contain this number.' => 'Системски идентификатор. Сваки број тикета и сваки ID HTTP сесије садржи овај број.', 'System FQDN' => 'Sistemski FQDN', - 'Fully qualified domain name of your system.' => 'Пуно име домена вашег система', + 'Fully qualified domain name of your system.' => 'Пун назив домена вашег система', 'AdminEmail' => 'Имејл администратор', 'Email address of the system administrator.' => 'Имејл адреса систем администратора.', 'Organization' => 'Организација', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => 'Учитавање, молимо сачекајте...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Кликните да одаберете датотеке или их једноставно превуците овде.', 'Click to select a file or just drop it here.' => 'Кликните да одаберете датотеку или је једноставно превуците овде.', 'Uploading...' => 'Отпремање...', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Додат имејл налог!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Отпремање путем имејла За: поље.', 'Dispatching by selected Queue.' => 'Отпремање путем изабраног реда.', @@ -3695,9 +3701,11 @@ 'Updated' => 'Ажурирано', 'Already up-to-date' => 'Већ ажурно', 'Installed' => 'Инсталирано', + 'Not correctly deployed' => '', 'Package updated correctly' => 'Пакет успешно ажуриран', 'Package was already updated' => 'Пакет је већ ажуран', 'Dependency installed correctly' => 'Зависни пакети успешно инсталирани', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'Пакет садржи цикличне зависности', 'Not found in on-line repositories' => 'Није пронађен у мрежном спремишту', 'Required version is higher than available' => 'Неопходна верзија је већа од тренутне', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => 'Ажуриране корисничке поставке', 'System was unable to deploy your changes.' => 'Систем није успео да распореди ваше промене.', 'Setting not found!' => 'Подешавање није пронађено!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - 'Ово својство је део %s. Молимо да нас контактирате на %s за ажурирање.', 'System was unable to reset the setting!' => 'Систем није успео да поништи подешавање!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4371,7 +4377,7 @@ 'Error: Please set the value for innodb_log_file_size on your database to at least %s MB (current: %s MB, recommended: %s MB). For more information, please have a look at %s.' => 'Грешка: Молимо да подесете вредност за innodb_log_file_size у вашој бази података на најмање %s MB (тренутно: %s MB, препоручено: %s MB). За више информација, молимо погледајте на %s.', 'Wrong database collation (%s is %s, but it needs to be utf8).' => - '', + 'Неисправно подешена база података (%s је %s, а требало би да буде utf8).', # Perl Module: Kernel/Modules/PublicCalendar.pm 'No %s!' => 'Без %s!', @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'Одржавање система је активно!', - 'A system maintenance period will start at: ' => 'Период одржавања система ће отпочети у:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + 'Период одржавања система ће отпочети у: %s и очекивано је да се заврши у: %s', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS системски сервис не ради.', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => 'Величина InnoDB лог датотеке', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Подешавање innodb_log_file_size мора бити барем 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Максимална величина упита', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Пронађене су табеле са различитим механизмом за складиштење него што је предефинисани механизам.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Неопходан је MySQL 5.x или више.', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT мора бити подешен на \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'SQL провера NLS_DATE_FORMAT подешавања', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Подешавање client_encoding мора бити UNICODE или UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Подешавање server_encoding мора бити UNICODE или UTF8.', @@ -4950,6 +4970,11 @@ 'Date Format' => 'Формат датума', 'Setting DateStyle needs to be ISO.' => 'Подешавање DateStyle мора бити ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => 'Неопходан је PostgreSQL 9.2 или више.', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => 'Није могуће ажурирати промењено подешавање!', 'Setting could not be unlocked!' => 'Није могуће откључати подешавање!', 'Missing key %s!' => 'Недостаје кључ %s!', + 'Invalid setting: %s' => 'Неважеће подешавање: %s', + 'Could not combine settings values into a perl hash.' => 'Није било могуће искомбиновати вредност подешавања у perl мапу.', + 'Can not lock the deployment for UserID \'%s\'!' => 'Није било могуће обезбедити распоређивање за UserID \'%s\'!', 'All Settings' => 'Сва подешавања', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5437,7 +5465,7 @@ # JS File: Core.Agent.Admin.Group 'WARNING: When you change the name of the group \'admin\', before making the appropriate changes in the SysConfig, you will be locked out of the administrations panel! If this happens, please rename the group back to admin per SQL statement.' => - 'УПОЗОРЕЊЕ: Ако промените име групе \'admin\' пре адекватног подешавања у системској конфигурацији, изгубићете приступ административном панелу! Уколико се то деси, вратите име групи у admin помоћу SQL команде.', + 'УПОЗОРЕЊЕ: Ако промените назив групе \'admin\' пре адекватног подешавања у системској конфигурацији, изгубићете приступ административном панелу! Уколико се то деси, вратите назив групи у admin помоћу SQL команде.', # JS File: Core.Agent.Admin.MailAccount 'Delete this Mail Account' => 'Обриши овај имејл налог', @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Померите навигациону траку', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Молимо да искључите мод компатибилности у Интернет експлореру!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ово својство је део %s. Молимо да на с контактирате на %s за ажурирање.', 'Find out more' => 'Сазнај више', # JS File: Core.App.Responsive @@ -6116,7 +6142,7 @@ 'Communication & Notifications' => 'Комуникација & обавештења', 'Communication Log GUI' => 'Графички интерфеј комуникационог лога', 'Communication log limit per page for Communication Log Overview.' => - '', + 'Ограничење броја логова по страни за преглед комуникационих логова.', 'CommunicationLog Overview Limit' => 'Ограничење прегледа комуникационих логова', 'Company Status' => 'Статус фирме', 'Company Tickets.' => 'Тикети фирми.', @@ -6181,7 +6207,7 @@ 'Create new Ticket.' => 'Креирање новог тикета.', 'Create new appointment.' => 'Креира нови термин.', 'Create new email ticket and send this out (outbound).' => 'Отвори нови имејл тикет и пошаљи (одлазну) поруку.', - 'Create new email ticket.' => 'Креирање новог Имејл тикета.', + 'Create new email ticket.' => 'Креирање новог имејл тикета.', 'Create new phone ticket (inbound).' => 'Креирај нови тикет (долазног) позива.', 'Create new phone ticket.' => 'Креирање новог тикета позива.', 'Create new process ticket.' => 'Креирај нови процес тикет.', @@ -6245,7 +6271,7 @@ 'Подразумевани ID тикета који користи систем у интерфејсу оператера.', 'Default ticket ID used by the system in the customer interface.' => 'Подразумевани ID тикета који користи систем у клијентском интерфејсу.', - 'Default value for NameX' => 'Подразумевана вредност за ИмеХ', + 'Default value for NameX' => 'Подразумевана вредност за NameX', 'Define Actions where a settings button is available in the linked objects widget (LinkObject::ViewMode = "complex"). Please note that these Actions must have registered the following JS and CSS files: Core.AllocationList.css, Core.UI.AllocationList.js, Core.UI.Table.Sort.js, Core.Agent.TableFilters.js.' => 'Дефинише акције на којима је омогућен приказ дугмета за подешавање у апликативном додатку линкованих објеката (LinkObject::ViewMode = "complex"). Напомињемо да ове акције морају имати регистроване следеће JS и CSS датотеке: Core.AllocationList.css, Core.UI.AllocationList.js, Core.UI.Table.Sort.js, Core.Agent.TableFilters.js.', 'Define a filter for html output to add links behind a defined string. The element Image allows two input kinds. At once the name of an image (e.g. faq.png). In this case the OTRS image path will be used. The second possiblity is to insert the link to the image.' => @@ -6914,7 +6940,7 @@ 'Defines the ticket appointment type backend for ticket pending time.' => 'Дефинише модул термина тикета за време чекања.', 'Defines the ticket fields that are going to be displayed calendar events. The "Key" defines the field or ticket attribute and the "Content" defines the display name.' => - 'Дефинише поља тикета која ће бити приказана у календару догађаја. "Кључ" дефинише поље или атрибут тикета, а "Садржај" дефинише приказано име.', + 'Дефинише поља тикета која ће бити приказана у календару догађаја. "Кључ" дефинише поље или атрибут тикета, а "Садржај" дефинише приказан назив.', 'Defines the ticket plugin for calendar appointments.' => 'Дефинише тикет модул за календарске термине.', 'Defines the time zone of the indicated calendar, which can be assigned later to a specific queue.' => 'Дефинише временску зону назначеног календара, која касније може бити додељена одређеном реду.', @@ -7037,7 +7063,7 @@ 'Динамичка поља коришћена за извоз резултата претраге у CSV формат.', 'Dynamic fields groups for process widget. The key is the name of the group, the value contains the fields to be shown. Example: \'Key => My Group\', \'Content: Name_X, NameY\'.' => 'Групе динамичких поља за процесни додатак. Кључ је назив групе, вредност садржи поље које ће бити приказано. Пример: \'Key => My Group\', \'Content: Name_X, NameY\'.', - 'Dynamic fields limit per page for Dynamic Fields Overview.' => '', + 'Dynamic fields limit per page for Dynamic Fields Overview.' => 'Ограничење динамичких поља по страни за приказ динамичких поља.', 'Dynamic fields options shown in the ticket message screen of the customer interface. NOTE. If you want to display these fields also in the ticket zoom of the customer interface, you have to enable them in CustomerTicketZoom###DynamicField.' => 'Опције динамичких поља приказаних у екрану отварања тикета у интерфејсу клијента. Напомена: уколико желите да прикажете ова поља и у детаљном прегледу тикета, морате их укључити у CustomerTicketZoom###DynamicField.', 'Dynamic fields options shown in the ticket reply section in the ticket zoom screen of the customer interface.' => @@ -7436,6 +7462,7 @@ 'JavaScript function for the search frontend.' => 'JavaScript функција за модул претраге.', 'Language' => 'Језик', 'Large' => 'Велико', + 'Last Screen Overview' => 'Преглед последњег екрана', 'Last customer subject' => 'Последњи предмет поруке клијента', 'Lastname Firstname' => 'Презиме, Име', 'Lastname Firstname (UserLogin)' => 'Презиме, Име (Корисничко име)', @@ -7610,7 +7637,7 @@ 'Назив наменског реда. Наменски ред је избор редова по вашој жељи и може се изабрати у подешавањима.', 'Name of custom service. The custom service is a service selection of your preferred services and can be selected in the preferences settings.' => 'Назив наменске услуге. Наменска услуга је избор услуга по вашој жељи и може се изабрати у подешавањима.', - 'NameX' => 'ИмеХ', + 'NameX' => 'NameX', 'New Ticket' => 'Нови тикет', 'New Tickets' => 'Нови тикети', 'New Window' => 'Нови прозор', @@ -8362,7 +8389,7 @@ 'Specifies the group where the user needs rw permissions so that they can edit other users preferences.' => 'Одређује групу где су кориснику потребне rw дозволе како би могли да уређују лична подешавања других корисника.', 'Specifies the name that should be used by the application when sending notifications. The sender name is used to build the complete display name for the notification master (i.e. "OTRS Notifications" otrs@your.example.com).' => - 'Дефинише име које ће апликација користити приликом слања обавештења. Име се користи у називу пошиљаоца обавештења (нпр. "OTRS Notifications" otrs@your.example.com).', + 'Дефинише назив које ће апликација користити приликом слања обавештења. НАзив се користи у називу пошиљаоца обавештења (нпр. "OTRS Notifications" otrs@your.example.com).', 'Specifies the order in which the firstname and the lastname of agents will be displayed.' => 'Одређује облик у коме ће бити приказано име и презиме оператера.', 'Specifies the path of the file for the logo in the page header (gif|jpg|png, 700 x 100 pixel).' => @@ -8523,9 +8550,9 @@ 'Ticket bulk module.' => 'Модул масовне акције на тикетима.', 'Ticket event module that triggers the escalation stop events.' => 'Модул догађаја тикета који окида догађаје заустављања ескалације.', - 'Ticket limit per page for Ticket Overview "Medium".' => '', - 'Ticket limit per page for Ticket Overview "Preview".' => '', - 'Ticket limit per page for Ticket Overview "Small".' => '', + 'Ticket limit per page for Ticket Overview "Medium".' => 'Ограничење тикета по страни за преглед типа "средње".', + 'Ticket limit per page for Ticket Overview "Preview".' => 'Ограничење тикета по страни за преглед типа "приказ".', + 'Ticket limit per page for Ticket Overview "Small".' => 'Ограничење тикета по страни за преглед типа "мало".', 'Ticket notifications' => 'Обавештења о тикету', 'Ticket overview' => 'Pregled tiketa', 'Ticket plain view of an email.' => 'Приказ неформатиране имејл поруке у тикету.', @@ -8691,6 +8718,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8948,7 +8977,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sr_Latn.pm otrs2-6.0.5/Kernel/Language/sr_Latn.pm --- otrs2-6.0.4/Kernel/Language/sr_Latn.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sr_Latn.pm 2018-02-05 23:46:54.000000000 +0000 @@ -30,7 +30,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.998789136827538; + $Self->{Completeness} = 0.997756686798965; # csv separator $Self->{Separator} = ';'; @@ -86,7 +86,7 @@ 'documentation' => 'dokumentacija', 'Show or hide the content' => 'Pokaži ili sakrij sadržaj', 'Edit ACL Information' => 'Uredi informacije o ACL', - 'Name' => 'Ime', + 'Name' => 'Naziv', 'Stop after match' => 'Zaustavi posle poklapanja', 'Edit ACL Structure' => 'Uredi strukturu ACL', 'Save ACL' => 'Sačuvaj ACL', @@ -635,7 +635,7 @@ 'Run this task' => 'Pokreni ovaj posao', 'Job Settings' => 'Podešavanje posla', 'Job name' => 'Naziv posla', - 'The name you entered already exists.' => 'Ime koje ste uneli već postoji.', + 'The name you entered already exists.' => 'Naziv koje ste uneli već postoji.', 'Automatic Execution (Multiple Tickets)' => 'Automatsko izvršenje (višestruki tiketi)', 'Execution Schedule' => 'Raspored izvršenja', 'Schedule minutes' => 'Planirano minuta', @@ -655,7 +655,7 @@ 'Ukoliko je događaj tiketa otkazao, biće primenjen tiket filter da potvrdi da li tiket odgovara. Samo tada će se posao na tiketu pokrenuti.', 'Do you really want to delete this event trigger?' => 'Da li stvarno želite da obrišete ovaj okidač događaja?', 'Add Event Trigger' => 'Dodaj okidač događaja', - 'To add a new event select the event object and event name' => 'Za dodavanje novog događaja izaberite objekt događaja i ime događaja', + 'To add a new event select the event object and event name' => 'Za dodavanje novog događaja izaberite objekat i naziv događaja', 'Select Tickets' => 'Izaberi tikete', '(e. g. 10*5155 or 105658*)' => 'npr. 10*5144 ili 105658*', '(e. g. 234321)' => 'npr. 234321', @@ -776,7 +776,7 @@ 'General options' => 'Opšta podešavanja', 'The name can be used to distinguish different error handling configurations.' => 'Naziv se može koristiti za pravljenje razlike između pojedinačnih konfiguracija za obradu greške.', - 'Please provide a unique name for this web service.' => 'Molimo da obezbedite jedinstveno ime za ovaj veb servis.', + 'Please provide a unique name for this web service.' => 'Molimo da obezbedite jedinstveni naziv za ovaj veb servis.', 'Error handling module backend' => 'Modul za obradu greške', 'This OTRS error handling backend module will be called internally to process the error handling mechanism.' => 'Ovaj modul za otklanjanje grešaka će biti pozvan interno da obradi grešku.', @@ -868,8 +868,8 @@ 'Do you really want to delete this invoker?' => 'Da li stvarno želite da izbrišete ovog pozivaoca?', 'Invoker Details' => 'Detalji pozivaoca', 'The name is typically used to call up an operation of a remote web service.' => - 'Ime se obično koristi za pokretanje operacije udaljenog veb servisa.', - 'Please provide a unique name for this web service invoker.' => 'Molimo upotrebite jedinstveno ime za ovog pozivaoca veb servisa.', + 'Naziv se obično koristi za pokretanje operacije udaljenog veb servisa.', + 'Please provide a unique name for this web service invoker.' => 'Molimo upotrebite jedinstveni naziv za ovog pozivaoca veb servisa.', 'Invoker backend' => 'Modul pozivaoca', 'This OTRS invoker backend module will be called to prepare the data to be sent to the remote system, and to process its response data.' => 'Ovaj modul pozivaoca biće pozvan da pripremi podatke za slanje na udaljeni sistem i da obradi podatke njegovog odgovora.', @@ -885,7 +885,7 @@ 'Edit this event' => 'Uredi ovaj događaj', 'This invoker will be triggered by the configured events.' => 'Ovaj pozivaoc će biti aktiviran preko podešenih događaja.', 'To add a new event select the event object and event name and click on the "+" button' => - 'Za dodavanje novog događaja izaberite objekt događaja i ime događaja pa kliknite na "+" dugme', + 'Za dodavanje novog događaja izaberite objekat i naziv događaja pa kliknite na "+" dugme', 'Asynchronous event triggers are handled by the OTRS Scheduler Daemon in background (recommended).' => 'Asinhronim okidačima događaja upravlja planer OTRS sistemskog servisa u pozadini (preporučeno).', 'Synchronous event triggers would be processed directly during the web request.' => @@ -1008,7 +1008,7 @@ 'Properties' => 'Svojstva', 'Route mapping for Operation' => 'Mapiranje rute za operaciju', 'Define the route that should get mapped to this operation. Variables marked by a \':\' will get mapped to the entered name and passed along with the others to the mapping. (e.g. /Ticket/:TicketID).' => - 'Definiše rutu koja će biti mapirana na ovu operaciju. Promenljive obeležene sa \':\' će biti mapirane na uneto ime i prosleđene sa ostalima (npr. /Ticket/:TicketID).', + 'Definiše rutu koja će biti mapirana na ovu operaciju. Promenljive obeležene sa \':\' će biti mapirane za uneti naziv i prosleđene sa ostalima (npr. /Ticket/:TicketID).', 'Valid request methods for Operation' => 'Važeće metode zahteva za operaciju', 'Limit this Operation to specific request methods. If no method is selected all requests will be accepted.' => 'Ograniči ovu opreaciju na pojedine metode zahteva. Ako ni jedna metoda nije izabrana svi zahtevi će biti prihvaćeni.', @@ -1099,22 +1099,22 @@ 'URI to give SOAP methods a context, reducing ambiguities.' => 'URI koji daje kontekst SOAP metodama, smanjuje dvosmislenosti.', 'e.g urn:otrs-com:soap:functions or http://www.otrs.com/GenericInterface/actions' => 'npr. urn:otrs-com:soap:functions ili http://www.otrs.com/GenericInterface/actions', - 'Request name scheme' => 'Zahtev za šemu imena', + 'Request name scheme' => 'Zahtev za šemu naziva', 'Select how SOAP request function wrapper should be constructed.' => 'Izaberite kako će biti konstruisan omotač funkcije SOAP zahteva.', '\'FunctionName\' is used as example for actual invoker/operation name.' => - '\'FunctionName\' se koristi kao primer za stvarno ime pozivaoca/operacije.', + '\'FunctionName\' se koristi kao primer za stvaran naziv pozivaoca/operacije.', '\'FreeText\' is used as example for actual configured value.' => '\'FreeText\' se koristi kao primer za stvarnu podešenu vrednost.', - 'Request name free text' => 'Slobodan tekst imena zahteva', + 'Request name free text' => 'Slobodan tekst naziva zahteva', 'Text to be used to as function wrapper name suffix or replacement.' => - 'Tekst koji će biti korišten kao nastavak imena ili zamena omotača funkcije.', + 'Tekst koji će biti korišten kao nastavak naziva ili zamena omotača funkcije.', 'Please consider XML element naming restrictions (e.g. don\'t use \'<\' and \'&\').' => 'Molimo da uzmete u obzir XML oganičenja imenovanja (npr. nemojte koristiti \'<\' i \'&\').', - 'Response name scheme' => 'Šema imena odgovora', + 'Response name scheme' => 'Šema naziva odgovora', 'Select how SOAP response function wrapper should be constructed.' => 'Izaberite kako će biti konstruisan omotač funkcije SOAP odgovora.', - 'Response name free text' => 'Slobodan tekst imena odgovora', + 'Response name free text' => 'Slobodan tekst naziva odgovora', 'Here you can specify the maximum size (in bytes) of SOAP messages that OTRS will process.' => 'Ovde možete uneti maksimalnu veličinu (u bajtima) SOAP poruka koje će OTRS da obradi.', 'Encoding' => 'Kodni raspored', @@ -1130,7 +1130,7 @@ 'Add Web Service' => 'Dodaj veb servis', 'Edit Web Service' => 'Uredi veb servis', 'Clone Web Service' => 'Kloniraj veb servis', - 'The name must be unique.' => 'Ime mora biti jedinstveno.', + 'The name must be unique.' => 'Naziv mora biti jedinstven.', 'Clone' => 'Kloniraj', 'Export Web Service' => 'Izvezi veb servis', 'Import web service' => 'Uvezi veb servis', @@ -1698,7 +1698,7 @@ 'Edit Queue' => 'Uredi Red', 'Filter for Queues' => 'Filter za redove', 'Filter for queues' => 'Filter za redove', - 'A queue with this name already exists!' => 'Red sa ovim imenom već postoji!', + 'A queue with this name already exists!' => 'Red sa ovim nazivom već postoji!', 'This queue is present in a SysConfig setting, confirmation for updating settings to point to the new queue is needed!' => 'Ovaj red se koristi u sistemskoj konfiguraciji, neophodna je dodatna potvrda za promenu podešavanja na novu vrednost!', 'Sub-queue of' => 'Pod-red od', @@ -2040,7 +2040,7 @@ 'All incoming email with this address in To or Cc will be dispatched to the selected queue.' => 'Sve dolazne poruke sa ovom adresom u polju To ili Cc biće otpremljene u izabrani red.', 'Email address' => 'Imejl adresa', - 'Display name' => 'Prikaži ime', + 'Display name' => 'Prikaži naziv', 'This email address is already used as system email address.' => 'Ova imejl adresa je već upotrebljena kao sistemska imejl adresa.', 'The display name and email address will be shown on mail you send.' => 'Prikazano ime i imejl adresa će biti prikazani na poruci koju ste poslali.', @@ -2178,7 +2178,7 @@ 'Add ticket type' => 'Dodaj tip tiketa', 'Filter for Types' => 'Filter za tipove', 'Filter for types' => 'Filter za tipove', - 'A type with this name already exists!' => 'Tip sa ovim imenom već postoji!', + 'A type with this name already exists!' => 'Tip sa ovim nazivom već postoji!', 'This type is present in a SysConfig setting, confirmation for updating settings to point to the new type is needed!' => 'Ovaj tip se koristi u sistemskoj konfiguraciji, neophodna je dodatna potvrda za promenu podešavanja na novu vrednost!', 'This type is used in the following config settings:' => 'Ovaj tip se koristi u sledećim sistemskim podešavanjima:', @@ -2444,8 +2444,8 @@ 'Edit your preferences' => 'Uredi lične postavke', 'Personal preferences' => 'Lična podešavanja', 'Preferences' => 'Podešavanja', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - 'Upozorenje! Trenutno ne menjate sopstvena podešavanje, već ona od %s.', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => 'Nazad na uređivanje ovog operatera', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => 'Podesite svoja lična podešavanja. Sačuvajte svako podešavanje štikliranjem sa desne strane.', @@ -2633,7 +2633,7 @@ 'History of %s%s%s' => 'Istorijat od %s%s%s', 'Filter for history items' => 'Filter za stavke istorijata', 'Expand/collapse all' => 'Proširi/skupi sve', - 'CreateTime' => '', + 'CreateTime' => 'Vreme kreiranja', 'Article' => 'Članak', # Template: AgentTicketMerge @@ -2939,6 +2939,9 @@ 'Send a bugreport' => 'Pošalji izveštaj o grešci', 'Expand' => 'Proširi', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => 'Ažuriraj nacrt', 'Save as new draft' => 'Sačuvaj kao novi nacrt', @@ -3044,7 +3047,7 @@ 'The identifier of the system. Each ticket number and each HTTP session ID contain this number.' => 'Sistemski identifikator. Svaki broj tiketa i svaki ID HTTP sesije sadrži ovaj broj.', 'System FQDN' => 'Sistemski FQDN', - 'Fully qualified domain name of your system.' => 'Puno ime domena vašeg sistema', + 'Fully qualified domain name of your system.' => 'Pun naziv domena vašeg sistema', 'AdminEmail' => 'Imejl administrator', 'Email address of the system administrator.' => 'Imejl adresa sistem administratora.', 'Organization' => 'Organizacija', @@ -3292,6 +3295,7 @@ 'Loading, please wait...' => 'Učitavanje, molimo sačekajte...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => 'Kliknite da odaberete datoteke ili ih jednostavno prevucite ovde.', 'Click to select a file or just drop it here.' => 'Kliknite da odaberete datoteku ili je jednostavno prevucite ovde.', 'Uploading...' => 'Otpremanje...', @@ -3652,6 +3656,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Dodat imejl nalog!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Otpremanje putem imejla Za: polje.', 'Dispatching by selected Queue.' => 'Otpremanje putem izabranog reda.', @@ -3701,9 +3707,11 @@ 'Updated' => 'Ažurirano', 'Already up-to-date' => 'Već ažurno', 'Installed' => 'Instalirano', + 'Not correctly deployed' => '', 'Package updated correctly' => 'Paket uspešno ažuriran', 'Package was already updated' => 'Paket je već ažuran', 'Dependency installed correctly' => 'Zavisni paketi uspešno instalirani', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => 'Paket sadrži ciklične zavisnosti', 'Not found in on-line repositories' => 'Nije pronađen u mrežnom spremištu', 'Required version is higher than available' => 'Neophodna verzija je veća od trenutne', @@ -4016,8 +4024,6 @@ 'Updated user preferences' => 'Ažurirane korisničke postavke', 'System was unable to deploy your changes.' => 'Sistem nije uspeo da rasporedi vaše promene.', 'Setting not found!' => 'Podešavanje nije pronađeno!', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - 'Ovo svojstvo je deo %s. Molimo da nas kontaktirate na %s za ažuriranje.', 'System was unable to reset the setting!' => 'Sistem nije uspeo da poništi podešavanje!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4377,7 +4383,7 @@ 'Error: Please set the value for innodb_log_file_size on your database to at least %s MB (current: %s MB, recommended: %s MB). For more information, please have a look at %s.' => 'Greška: Molimo da podesete vrednost za innodb_log_file_size u vašoj bazi podataka na najmanje %s MB (trenutno: %s MB, preporučeno: %s MB). Za više informacija, molimo pogledajte na %s.', 'Wrong database collation (%s is %s, but it needs to be utf8).' => - '', + 'Neispravno podešena baza podataka (%s je %s, a trebalo bi da bude utf8).', # Perl Module: Kernel/Modules/PublicCalendar.pm 'No %s!' => 'Bez %s!', @@ -4583,7 +4589,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => 'Održavanje sistema je aktivno!', - 'A system maintenance period will start at: ' => 'Period održavanja sistema će otpočeti u:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + 'Period održavanja sistema će otpočeti u: %s i očekivano je da se završi u: %s', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS sistemski servis ne radi.', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => 'Veličina InnoDB log datoteke', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Podešavanje innodb_log_file_size mora biti barem 256 MB.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Maksimalna veličina upita', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Pronađene su tabele sa različitim mehanizmom za skladištenje nego što je predefinisani mehanizam.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'Neophodan je MySQL 5.x ili više.', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT mora biti podešen na \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'SQL provera NLS_DATE_FORMAT podešavanja', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Podešavanje client_encoding mora biti UNICODE ili UTF8.', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Podešavanje server_encoding mora biti UNICODE ili UTF8.', @@ -4956,6 +4976,11 @@ 'Date Format' => 'Format datuma', 'Setting DateStyle needs to be ISO.' => 'Podešavanje DateStyle mora biti ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => 'Neophodan je PostgreSQL 9.2 ili više.', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => 'Nije moguće ažurirati promenjeno podešavanje!', 'Setting could not be unlocked!' => 'Nije moguće otključati podešavanje!', 'Missing key %s!' => 'Nedostaje ključ %s!', + 'Invalid setting: %s' => 'Nevažeće podešavanje: %s', + 'Could not combine settings values into a perl hash.' => 'Nije bilo moguće iskombinovati vrednost podešavanja u perl mapu.', + 'Can not lock the deployment for UserID \'%s\'!' => 'Nije bilo moguće obezbediti raspoređivanje za UserID \'%s\'!', 'All Settings' => 'Sva podešavanja', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5443,7 +5471,7 @@ # JS File: Core.Agent.Admin.Group 'WARNING: When you change the name of the group \'admin\', before making the appropriate changes in the SysConfig, you will be locked out of the administrations panel! If this happens, please rename the group back to admin per SQL statement.' => - 'UPOZORENJE: Ako promenite ime grupe \'admin\' pre adekvatnog podešavanja u sistemskoj konfiguraciji, izgubićete pristup administrativnom panelu! Ukoliko se to desi, vratite ime grupi u admin pomoću SQL komande.', + 'UPOZORENJE: Ako promenite naziv grupe \'admin\' pre adekvatnog podešavanja u sistemskoj konfiguraciji, izgubićete pristup administrativnom panelu! Ukoliko se to desi, vratite naziv grupi u admin pomoću SQL komande.', # JS File: Core.Agent.Admin.MailAccount 'Delete this Mail Account' => 'Obriši ovaj imejl nalog', @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Pomerite navigacionu traku', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Molimo da isključite mod kompatibilnosti u Internet eksploreru!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ovo svojstvo je deo %s. Molimo da na s kontaktirate na %s za ažuriranje.', 'Find out more' => 'Saznaj više', # JS File: Core.App.Responsive @@ -6122,7 +6148,7 @@ 'Communication & Notifications' => 'Komunikacija & obaveštenja', 'Communication Log GUI' => 'Grafički interfej komunikacionog loga', 'Communication log limit per page for Communication Log Overview.' => - '', + 'Ograničenje broja logova po strani za pregled komunikacionih logova.', 'CommunicationLog Overview Limit' => 'Ograničenje pregleda komunikacionih logova', 'Company Status' => 'Status firme', 'Company Tickets.' => 'Tiketi firmi.', @@ -6187,7 +6213,7 @@ 'Create new Ticket.' => 'Kreiranje novog tiketa.', 'Create new appointment.' => 'Kreira novi termin.', 'Create new email ticket and send this out (outbound).' => 'Otvori novi imejl tiket i pošalji (odlaznu) poruku.', - 'Create new email ticket.' => 'Kreiranje novog Imejl tiketa.', + 'Create new email ticket.' => 'Kreiranje novog imejl tiketa.', 'Create new phone ticket (inbound).' => 'Kreiraj novi tiket (dolaznog) poziva.', 'Create new phone ticket.' => 'Kreiranje novog tiketa poziva.', 'Create new process ticket.' => 'Kreiraj novi proces tiket.', @@ -6251,7 +6277,7 @@ 'Podrazumevani ID tiketa koji koristi sistem u interfejsu operatera.', 'Default ticket ID used by the system in the customer interface.' => 'Podrazumevani ID tiketa koji koristi sistem u klijentskom interfejsu.', - 'Default value for NameX' => 'Podrazumevana vrednost za ImeH', + 'Default value for NameX' => 'Podrazumevana vrednost za NameX', 'Define Actions where a settings button is available in the linked objects widget (LinkObject::ViewMode = "complex"). Please note that these Actions must have registered the following JS and CSS files: Core.AllocationList.css, Core.UI.AllocationList.js, Core.UI.Table.Sort.js, Core.Agent.TableFilters.js.' => 'Definiše akcije na kojima je omogućen prikaz dugmeta za podešavanje u aplikativnom dodatku linkovanih objekata (LinkObject::ViewMode = "complex"). Napominjemo da ove akcije moraju imati registrovane sledeće JS i CSS datoteke: Core.AllocationList.css, Core.UI.AllocationList.js, Core.UI.Table.Sort.js, Core.Agent.TableFilters.js.', 'Define a filter for html output to add links behind a defined string. The element Image allows two input kinds. At once the name of an image (e.g. faq.png). In this case the OTRS image path will be used. The second possiblity is to insert the link to the image.' => @@ -6920,7 +6946,7 @@ 'Defines the ticket appointment type backend for ticket pending time.' => 'Definiše modul termina tiketa za vreme čekanja.', 'Defines the ticket fields that are going to be displayed calendar events. The "Key" defines the field or ticket attribute and the "Content" defines the display name.' => - 'Definiše polja tiketa koja će biti prikazana u kalendaru događaja. "Ključ" definiše polje ili atribut tiketa, a "Sadržaj" definiše prikazano ime.', + 'Definiše polja tiketa koja će biti prikazana u kalendaru događaja. "Ključ" definiše polje ili atribut tiketa, a "Sadržaj" definiše prikazan naziv.', 'Defines the ticket plugin for calendar appointments.' => 'Definiše tiket modul za kalendarske termine.', 'Defines the time zone of the indicated calendar, which can be assigned later to a specific queue.' => 'Definiše vremensku zonu naznačenog kalendara, koja kasnije može biti dodeljena određenom redu.', @@ -7043,7 +7069,7 @@ 'Dinamička polja korišćena za izvoz rezultata pretrage u CSV format.', 'Dynamic fields groups for process widget. The key is the name of the group, the value contains the fields to be shown. Example: \'Key => My Group\', \'Content: Name_X, NameY\'.' => 'Grupe dinamičkih polja za procesni dodatak. Ključ je naziv grupe, vrednost sadrži polje koje će biti prikazano. Primer: \'Key => My Group\', \'Content: Name_X, NameY\'.', - 'Dynamic fields limit per page for Dynamic Fields Overview.' => '', + 'Dynamic fields limit per page for Dynamic Fields Overview.' => 'Ograničenje dinamičkih polja po strani za prikaz dinamičkih polja.', 'Dynamic fields options shown in the ticket message screen of the customer interface. NOTE. If you want to display these fields also in the ticket zoom of the customer interface, you have to enable them in CustomerTicketZoom###DynamicField.' => 'Opcije dinamičkih polja prikazanih u ekranu otvaranja tiketa u interfejsu klijenta. Napomena: ukoliko želite da prikažete ova polja i u detaljnom pregledu tiketa, morate ih uključiti u CustomerTicketZoom###DynamicField.', 'Dynamic fields options shown in the ticket reply section in the ticket zoom screen of the customer interface.' => @@ -7442,6 +7468,7 @@ 'JavaScript function for the search frontend.' => 'JavaScript funkcija za modul pretrage.', 'Language' => 'Jezik', 'Large' => 'Veliko', + 'Last Screen Overview' => 'Pregled poslednjeg ekrana', 'Last customer subject' => 'Poslednji predmet poruke klijenta', 'Lastname Firstname' => 'Prezime, Ime', 'Lastname Firstname (UserLogin)' => 'Prezime, Ime (Korisničko ime)', @@ -7616,7 +7643,7 @@ 'Naziv namenskog reda. Namenski red je izbor redova po vašoj želji i može se izabrati u podešavanjima.', 'Name of custom service. The custom service is a service selection of your preferred services and can be selected in the preferences settings.' => 'Naziv namenske usluge. Namenska usluga je izbor usluga po vašoj želji i može se izabrati u podešavanjima.', - 'NameX' => 'ImeH', + 'NameX' => 'NameX', 'New Ticket' => 'Novi tiket', 'New Tickets' => 'Novi tiketi', 'New Window' => 'Novi prozor', @@ -8368,7 +8395,7 @@ 'Specifies the group where the user needs rw permissions so that they can edit other users preferences.' => 'Određuje grupu gde su korisniku potrebne rw dozvole kako bi mogli da uređuju lična podešavanja drugih korisnika.', 'Specifies the name that should be used by the application when sending notifications. The sender name is used to build the complete display name for the notification master (i.e. "OTRS Notifications" otrs@your.example.com).' => - 'Definiše ime koje će aplikacija koristiti prilikom slanja obaveštenja. Ime se koristi u nazivu pošiljaoca obaveštenja (npr. "OTRS Notifications" otrs@your.example.com).', + 'Definiše naziv koje će aplikacija koristiti prilikom slanja obaveštenja. NAziv se koristi u nazivu pošiljaoca obaveštenja (npr. "OTRS Notifications" otrs@your.example.com).', 'Specifies the order in which the firstname and the lastname of agents will be displayed.' => 'Određuje oblik u kome će biti prikazano ime i prezime operatera.', 'Specifies the path of the file for the logo in the page header (gif|jpg|png, 700 x 100 pixel).' => @@ -8529,9 +8556,9 @@ 'Ticket bulk module.' => 'Modul masovne akcije na tiketima.', 'Ticket event module that triggers the escalation stop events.' => 'Modul događaja tiketa koji okida događaje zaustavljanja eskalacije.', - 'Ticket limit per page for Ticket Overview "Medium".' => '', - 'Ticket limit per page for Ticket Overview "Preview".' => '', - 'Ticket limit per page for Ticket Overview "Small".' => '', + 'Ticket limit per page for Ticket Overview "Medium".' => 'Ograničenje tiketa po strani za pregled tipa "srednje".', + 'Ticket limit per page for Ticket Overview "Preview".' => 'Ograničenje tiketa po strani za pregled tipa "prikaz".', + 'Ticket limit per page for Ticket Overview "Small".' => 'Ograničenje tiketa po strani za pregled tipa "malo".', 'Ticket notifications' => 'Obaveštenja o tiketu', 'Ticket overview' => 'Pregled tiketa', 'Ticket plain view of an email.' => 'Prikaz neformatirane imejl poruke u tiketu.', @@ -8697,6 +8724,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8954,7 +8983,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sv.pm otrs2-6.0.5/Kernel/Language/sv.pm --- otrs2-6.0.4/Kernel/Language/sv.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sv.pm 2018-02-05 23:46:54.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%Y.%M.%D'; $Self->{DateInputFormat} = '%Y.%M.%D'; $Self->{DateInputFormatLong} = '%Y.%M.%D - %T'; - $Self->{Completeness} = 0.38522746929597; + $Self->{Completeness} = 0.384124245038827; # csv separator $Self->{Separator} = ';'; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => 'Ändra dina inställningar', 'Personal preferences' => '', 'Preferences' => 'Inställningar', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => 'Skicka en buggrapport', 'Expand' => 'Expandera', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-postkonto tillagt!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Skickar iväg enligt e-postmeddelandets till-fält.', 'Dispatching by selected Queue.' => 'Skickar iväg enligt vald kö.', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Systemunderhåll kommer att påbörjas:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS-demonen körs inte.', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x eller senare krävs.', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4952,6 +4972,11 @@ 'Date Format' => 'Datumformat', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Språk', 'Large' => 'Stor', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => 'Efternamn förnamn', 'Lastname Firstname (UserLogin)' => '', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/sw.pm otrs2-6.0.5/Kernel/Language/sw.pm --- otrs2-6.0.4/Kernel/Language/sw.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/sw.pm 2018-02-05 23:46:54.000000000 +0000 @@ -27,7 +27,7 @@ $Self->{DateFormatShort} = '%M/%D/%Y'; $Self->{DateInputFormat} = '%M/%D/%Y'; $Self->{DateInputFormatLong} = '%M/%D/%Y - %T'; - $Self->{Completeness} = 0.501470333852275; + $Self->{Completeness} = 0.500258843830889; # csv separator $Self->{Separator} = ','; @@ -2441,7 +2441,7 @@ 'Edit your preferences' => 'Harir mapendeleo yako', 'Personal preferences' => '', 'Preferences' => 'Pendekezo', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2936,6 +2936,9 @@ 'Send a bugreport' => 'Tuma repoti yenye makosa', 'Expand' => 'Panua', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3289,6 +3292,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3649,6 +3653,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Akaunti ya barua pepe imeongezwa!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Tuma kwa barua pepe kwenda: uga.', 'Dispatching by selected Queue.' => 'Tuma kwa foleni iliyochaguliwa.', @@ -3698,9 +3704,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4013,8 +4021,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4580,7 +4586,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4918,6 +4925,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Kiwango cha juu ukubwa wa ulizo', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4934,6 +4946,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'Meza zenye injini ya kuifadhi za tofauti na injini chaguo-msingi zimepatikana.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'MySQL 5.x au zaidi inahitajika.', @@ -4945,6 +4960,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT lazima iwekwe kuwa \'YYYY-MM-DD HH24:MI:SS\'.', 'NLS_DATE_FORMAT Setting SQL Check' => 'Mpangilio wa NLS_DATE_FORMAT angalio la SQL', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'Mpangilio client_encoding unahitaji kuwa UNICODE au UTF8', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'Mpangilio server_encoding unahitaji kuwa UNICODE au UTF8.', @@ -4953,6 +4973,11 @@ 'Date Format' => 'Mpangilio wa tarehe', 'Setting DateStyle needs to be ISO.' => 'Mpangilio DateStyle unahitaji kuwa ISO.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5199,6 +5224,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5654,8 +5682,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Telezesha mwambaa wa uabiri', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Tafadhali zima hali timizi tangamanifu ya kitafuta wavuti! ', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7431,6 +7457,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Lugha', 'Large' => 'Kubwa', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8686,6 +8713,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8943,7 +8972,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/th_TH.pm otrs2-6.0.5/Kernel/Language/th_TH.pm --- otrs2-6.0.4/Kernel/Language/th_TH.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/th_TH.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D/%M/%Y'; $Self->{DateInputFormat} = '%D/%M/%Y'; $Self->{DateInputFormatLong} = '%D/%M/%Y - %T'; - $Self->{Completeness} = 0.6062964884968; + $Self->{Completeness} = 0.604486626402071; # csv separator $Self->{Separator} = ','; @@ -2441,7 +2441,7 @@ 'Edit your preferences' => 'แก้ไขการตั้งค่าของคุณ', 'Personal preferences' => '', 'Preferences' => 'การกำหนดลักษณะ', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2936,6 +2936,9 @@ 'Send a bugreport' => 'ส่งรายงานข้อบกพร่อง', 'Expand' => 'การขยาย', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3289,6 +3292,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3649,6 +3653,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'เพิ่มบัญชีอีเมลแล้ว!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'ส่งโดยการส่งอีเมล์ไปที่: ฟิลด์', 'Dispatching by selected Queue.' => 'ส่งโดยคิวที่เลือก', @@ -3698,9 +3704,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4013,8 +4021,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4580,7 +4586,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'ระยะเวลาการบำรุงรักษาระบบจะเริ่มต้นที่:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemonไม่ทำงาน', @@ -4918,6 +4925,11 @@ 'InnoDB Log File Size' => 'ขนาดInnoDB Log File', 'The setting innodb_log_file_size must be at least 256 MB.' => 'การตั้งค่า innodb_log_file_size ต้องมีขนาดอย่างน้อย256 MB', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'ขนาดสูงสุดของ Query', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4934,6 +4946,9 @@ 'Tables with a different storage engine than the default engine were found.' => 'ตารางที่มีเครื่องมือเก็บที่แตกต่างจากเครื่องมือเริ่มต้นถูกค้นพบ', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => 'จำเป็นต้องใช้ MySQL 5.x หรือสูงกว่า', @@ -4945,6 +4960,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT ต้องกำหนดเป็น \'YYYY-MM-DD HH24: MI: SS\'', 'NLS_DATE_FORMAT Setting SQL Check' => 'NLS_DATE_FORMAT ตั้งค่าการตรวจสอบ SQL', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'การตั้งค่า client_encoding จะต้องเป็น UNICODE หรือ UTF8', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'การตั้งค่า server_encoding จะต้องเป็น UNICODE หรือ UTF8', @@ -4953,6 +4973,11 @@ 'Date Format' => 'รูปแบบวันที่', 'Setting DateStyle needs to be ISO.' => 'การตั้งค่า DateStyle จะต้องเป็น ISO', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5199,6 +5224,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5654,8 +5682,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'เลื่อนแถบนำทาง', 'Please turn off Compatibility Mode in Internet Explorer!' => 'กรุณาปิดโหมดความเข้ากันได้ใน Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'ฟีเจอร์นี้เป็นส่วนหนึ่งของ%s กรุณาติดต่อได้ที่%s สำหรับการอัพเกรด', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7442,6 +7468,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'ภาษา', 'Large' => 'ขนาดใหญ่', + 'Last Screen Overview' => '', 'Last customer subject' => 'หัวข้อล่าสุดของลูกค้า', 'Lastname Firstname' => 'ชื่อนามสกุล', 'Lastname Firstname (UserLogin)' => 'ชื่อนามสกุล (ผู้ใช้เข้าสู่ระบบ)', @@ -8697,6 +8724,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8954,7 +8983,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/tr.pm otrs2-6.0.5/Kernel/Language/tr.pm --- otrs2-6.0.4/Kernel/Language/tr.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/tr.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.189067635357205; + $Self->{Completeness} = 0.198274374460742; # csv separator $Self->{Separator} = ';'; @@ -34,20 +34,20 @@ $Self->{Translation} = { # Template: AdminACL - 'ACL Management' => '', + 'ACL Management' => 'ACL Yönetimi', 'Actions' => 'Eylemler', - 'Create New ACL' => '', - 'Deploy ACLs' => '', - 'Export ACLs' => '', - 'Filter for ACLs' => '', - 'Just start typing to filter...' => '', - 'Configuration Import' => '', + 'Create New ACL' => 'Yeni ACL Oluştur', + 'Deploy ACLs' => 'ACL\'leri Dağıt', + 'Export ACLs' => 'ACL\'leri Dışa Aktar', + 'Filter for ACLs' => 'ACL\'leri Filtrele', + 'Just start typing to filter...' => 'Filtrelemek için yazmaya başlayın...', + 'Configuration Import' => 'Yapılandırmayı İçeri Aktar', 'Here you can upload a configuration file to import ACLs to your system. The file needs to be in .yml format as exported by the ACL editor module.' => '', 'This field is required.' => 'Bu alan zorunludur', - 'Overwrite existing ACLs?' => '', - 'Upload ACL configuration' => '', - 'Import ACL configuration(s)' => '', + 'Overwrite existing ACLs?' => 'Varolan ACL\'lerin üzerine yazılsın mı?', + 'Upload ACL configuration' => 'Yapılandırmayı karşıya yükle', + 'Import ACL configuration(s)' => 'ACL yapılandırma(larını) içe aktar', 'Description' => 'Açıklama', 'To create a new ACL you can either import ACLs which were exported from another system or create a complete new one.' => '', @@ -56,7 +56,7 @@ 'ACLs' => '', 'Please note: This table represents the execution order of the ACLs. If you need to change the order in which ACLs are executed, please change the names of the affected ACLs.' => '', - 'ACL name' => '', + 'ACL name' => 'ACL Adı', 'Comment' => 'Yorum', 'Validity' => 'Doğrula', 'Export' => 'Dışarıya aktar', @@ -65,50 +65,50 @@ 'No matches found.' => 'Sonuç bulunamadı.', # Template: AdminACLEdit - 'Edit ACL %s' => '', - 'Edit ACL' => '', + 'Edit ACL %s' => 'ACL Düzenle', + 'Edit ACL' => 'ACL Düzenle', 'Go to overview' => 'Genel Bakışa git', - 'Delete ACL' => '', - 'Delete Invalid ACL' => '', - 'Match settings' => '', + 'Delete ACL' => 'ACL Sil', + 'Delete Invalid ACL' => 'Geçersiz ACL\'yi Sil', + 'Match settings' => 'Eşleşme Ayarları', 'Set up matching criteria for this ACL. Use \'Properties\' to match the current screen or \'PropertiesDatabase\' to match attributes of the current ticket that are in the database.' => '', - 'Change settings' => '', + 'Change settings' => 'Ayarları Değiştir', 'Set up what you want to change if the criteria match. Keep in mind that \'Possible\' is a white list, \'PossibleNot\' a black list.' => '', 'Check the official' => '', - 'documentation' => '', + 'documentation' => 'Döküman', 'Show or hide the content' => 'İçeriği göster yada gizle', - 'Edit ACL Information' => '', + 'Edit ACL Information' => 'ACL Bilgisini Düzenle', 'Name' => 'Isim', 'Stop after match' => 'Karşılaşmadan sonra dur', - 'Edit ACL Structure' => '', - 'Save ACL' => '', + 'Edit ACL Structure' => 'ACL Yapısını Düzenle', + 'Save ACL' => 'ACL\'yi Kaydet', 'Save' => 'Kaydet', 'or' => 'veya', - 'Save and finish' => '', + 'Save and finish' => 'Kaydet ve bitir', 'Cancel' => 'İptal', - 'Do you really want to delete this ACL?' => '', + 'Do you really want to delete this ACL?' => 'Bu ACL\'yi silmek istediğinizden emin misiniz?', # Template: AdminACLNew 'Create a new ACL by submitting the form data. After creating the ACL, you will be able to add configuration items in edit mode.' => '', # Template: AdminAppointmentCalendarManage - 'Calendar Management' => '', - 'Add Calendar' => '', - 'Edit Calendar' => '', - 'Go back' => '', - 'Calendar Overview' => '', - 'Add new Calendar' => '', - 'Import Appointments' => '', - 'Calendar Import' => '', + 'Calendar Management' => 'Takvimleri Yönet', + 'Add Calendar' => 'Takvime Ekle', + 'Edit Calendar' => 'Takvimi Düzenle', + 'Go back' => 'Geri', + 'Calendar Overview' => 'Takvim Ön İzlemesi', + 'Add new Calendar' => 'Yeni Takvim Ekle', + 'Import Appointments' => 'Atamaları Al', + 'Calendar Import' => 'Takvimi İçe Aktar', 'Here you can upload a configuration file to import a calendar to your system. The file needs to be in .yml format as exported by calendar management module.' => '', 'Overwrite existing entities' => '', - 'Upload calendar configuration' => '', - 'Import Calendar' => '', - 'Filter for calendars' => '', + 'Upload calendar configuration' => 'Takvim yapılandırmasını yükle', + 'Import Calendar' => 'Takvimi İçe Aktar', + 'Filter for calendars' => 'Takvimler için filtre uygula', 'Depending on the group field, the system will allow users the access to the calendar according to their permission level.' => '', 'Read only: users can see and export all appointments in the calendar.' => @@ -122,21 +122,21 @@ 'Changed' => 'Değiştirildi', 'Created' => 'Oluşturuldu', 'Download' => 'İndir', - 'URL' => '', - 'Export calendar' => '', - 'Download calendar' => '', - 'Copy public calendar URL' => '', + 'URL' => 'URL', + 'Export calendar' => 'Takvimi Dışa Aktar', + 'Download calendar' => 'Takvimi İndir', + 'Copy public calendar URL' => 'Genel takvim URL\'sini kopyala', 'Calendar' => 'TAKVİM', - 'Calendar name' => '', - 'Calendar with same name already exists.' => '', - 'Color' => '', - 'Permission group' => '', - 'Ticket Appointments' => '', - 'Rule' => '', + 'Calendar name' => 'Takvim adı', + 'Calendar with same name already exists.' => 'Aynı ada sahip takvim zaten mevcut.', + 'Color' => 'Renk', + 'Permission group' => 'İzin grubu', + 'Ticket Appointments' => 'Bilet Atama', + 'Rule' => 'Rol', 'Remove this entry' => 'Bu kaydı kaldır', 'Remove' => 'Kaldır', - 'Start date' => '', - 'End date' => '', + 'Start date' => 'Başlangıç Tarihi', + 'End date' => 'Bitiş Tarihi', 'Use options below to narrow down for which tickets appointments will be automatically created.' => '', 'Queues' => 'Kuyruklar', @@ -146,11 +146,11 @@ 'Add' => 'Ekle', 'Define rules for creating automatic appointments in this calendar based on ticket data.' => '', - 'Add Rule' => '', + 'Add Rule' => 'Rol Ekle', 'Submit' => 'Gönder', # Template: AdminAppointmentImport - 'Appointment Import' => '', + 'Appointment Import' => 'Atamayı İçeri Aktar', 'Uploaded file must be in valid iCal format (.ics).' => '', 'If desired Calendar is not listed here, please make sure that you have at least \'create\' permissions.' => '', @@ -158,8 +158,8 @@ 'Update existing appointments?' => '', 'All existing appointments in the calendar with same UniqueID will be overwritten.' => '', - 'Upload calendar' => '', - 'Import appointments' => '', + 'Upload calendar' => 'Takvimi Yükle', + 'Import appointments' => 'Atamaları Al', # Template: AdminAppointmentNotificationEvent 'Appointment Notification Management' => '', @@ -167,8 +167,8 @@ 'Edit Notification' => 'Bildirim Düzenle', 'Add notification' => 'Uyarı Ekle', 'Export Notifications' => '', - 'Filter for Notifications' => '', - 'Filter for notifications' => '', + 'Filter for Notifications' => 'Bildirimler İçin Filtreleme', + 'Filter for notifications' => 'Bildirimler için filtreleme', 'Here you can upload a configuration file to import appointment notifications to your system. The file needs to be in .yml format as exported by the appointment notification module.' => '', 'Overwrite existing notifications?' => '', @@ -186,14 +186,14 @@ 'Event' => 'Olay', 'Here you can choose which events will trigger this notification. An additional appointment filter can be applied below to only send for appointments with certain criteria.' => '', - 'Appointment Filter' => '', + 'Appointment Filter' => 'Atama Filtresi', 'Type' => 'Tip', 'Title' => 'Başlık', 'Location' => 'konum', - 'Team' => '', - 'Resource' => '', + 'Team' => 'Takım', + 'Resource' => 'Kaynak', 'Recipients' => '', - 'Send to' => '', + 'Send to' => 'Gönderildi', 'Send to these agents' => '', 'Send to all group members' => '', 'Send to all role members' => '', @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Tercihleri düzenle', 'Personal preferences' => '', 'Preferences' => 'Tercihler', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Hata raporu gönder', 'Expand' => 'Genişlet', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'E-posta hesabı eklendi!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Elektronik posta Kime: alanına göre gönderiliyor.', 'Dispatching by selected Queue.' => 'Seçili Kuyruğa göre gönderiliyor.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Dil', 'Large' => 'Büyük', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/uk.pm otrs2-6.0.5/Kernel/Language/uk.pm --- otrs2-6.0.4/Kernel/Language/uk.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/uk.pm 2018-02-05 23:46:54.000000000 +0000 @@ -24,7 +24,7 @@ $Self->{DateFormatShort} = '%M/%D/%Y'; $Self->{DateInputFormat} = '%M/%D/%Y'; $Self->{DateInputFormatLong} = '%M/%D/%Y - %T'; - $Self->{Completeness} = 0.513405985123681; + $Self->{Completeness} = 0.511820534943917; # csv separator $Self->{Separator} = ','; @@ -2438,7 +2438,7 @@ 'Edit your preferences' => 'Змінити налаштування', 'Personal preferences' => '', 'Preferences' => 'Налаштування', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2933,6 +2933,9 @@ 'Send a bugreport' => 'Відправити повідомлення про помилку', 'Expand' => 'Розгорнути', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3286,6 +3289,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3646,6 +3650,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => 'Електронну пошту додано!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Перенаправлення за полем електронного листа Кому:', 'Dispatching by selected Queue.' => 'Перенаправлення за обраною чергою.', @@ -3695,9 +3701,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4010,8 +4018,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4577,7 +4583,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => 'Період обслуговування системи почнеться:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon не працює.', @@ -4915,6 +4922,11 @@ 'InnoDB Log File Size' => 'Розмір файлу журналу InnoDB', 'The setting innodb_log_file_size must be at least 256 MB.' => 'Налаштування innodb_log_file_size має бути, принаймні, 256 МБ.', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => 'Максимальний розмір вибірки', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4931,6 +4943,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4942,6 +4957,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4950,6 +4970,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5196,6 +5221,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5651,8 +5679,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => 'Посунути панель навігації', 'Please turn off Compatibility Mode in Internet Explorer!' => 'Будь ласка вимкніть Режим Сумісності в Internet Explorer!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - 'Ця функція є частиною %s. Будь ласка, зв\'яжіться з нами за адресою %s для покращення.', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7425,6 +7451,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Мова', 'Large' => 'Великий', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8680,6 +8707,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8937,7 +8966,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/vi_VN.pm otrs2-6.0.5/Kernel/Language/vi_VN.pm --- otrs2-6.0.4/Kernel/Language/vi_VN.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/vi_VN.pm 2018-02-05 23:46:54.000000000 +0000 @@ -23,7 +23,7 @@ $Self->{DateFormatShort} = '%D.%M.%Y'; $Self->{DateInputFormat} = '%D.%M.%Y'; $Self->{DateInputFormatLong} = '%D.%M.%Y - %T'; - $Self->{Completeness} = 0.161390762843799; + $Self->{Completeness} = 0.16100086281277; # csv separator $Self->{Separator} = ';'; @@ -2437,7 +2437,7 @@ 'Edit your preferences' => '', 'Personal preferences' => '', 'Preferences' => 'Tuỳ chọn', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2932,6 +2932,9 @@ 'Send a bugreport' => '', 'Expand' => 'Mở rộng', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3285,6 +3288,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3645,6 +3649,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => 'Gửi bằng email tới: trường.', 'Dispatching by selected Queue.' => 'Gửi bởi hàng đợi đã chọn.', @@ -3694,9 +3700,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4009,8 +4017,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4576,7 +4582,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => '', @@ -4914,6 +4921,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4930,6 +4942,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4941,6 +4956,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4949,6 +4969,11 @@ 'Date Format' => '', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5195,6 +5220,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5650,8 +5678,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7424,6 +7450,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => 'Ngôn ngữ', 'Large' => 'Rộng', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '', 'Lastname Firstname (UserLogin)' => '', @@ -8679,6 +8706,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8936,7 +8965,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/zh_CN.pm otrs2-6.0.5/Kernel/Language/zh_CN.pm --- otrs2-6.0.4/Kernel/Language/zh_CN.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/zh_CN.pm 2018-02-05 23:46:54.000000000 +0000 @@ -30,7 +30,7 @@ $Self->{DateFormatShort} = '%Y.%M.%D'; $Self->{DateInputFormat} = '%Y.%M.%D'; $Self->{DateInputFormatLong} = '%Y.%M.%D - %T'; - $Self->{Completeness} = 0.989448192354264; + $Self->{Completeness} = 0.997756686798965; # csv separator $Self->{Separator} = ''; @@ -1143,14 +1143,14 @@ 'Configuration History' => '配置历史', 'Delete web service' => '删除Web服务', 'Do you really want to delete this web service?' => '您真的想要删除这个Web服务吗?', - 'Ready2Adopt Web Services' => 'Ready2Adopt Web服务', + 'Ready2Adopt Web Services' => '即开即用的Web服务', 'Here you can activate Ready2Adopt web services showcasing our best practices that are a part of %s.' => - '你可以在这里激活Ready2Adopt WEB服务,作为%s的一部分展示我们的最佳实践。', + '你可以在这里激活即开即用的WEB服务,作为%s的一部分展示我们的最佳实践。', 'Please note that these web services may depend on other modules only available with certain %s contract levels (there will be a notification with further details when importing).' => '请注意:这些WEB服务可能依赖于其它仅在某些%s合同级别中才可用的模块(导入时会有详细提示信息)。', - 'Import Ready2Adopt web service' => '导入Ready2Adopt WEB服务', + 'Import Ready2Adopt web service' => '导入即开即用的WEB服务', 'Would you like to benefit from web services created by experts? Upgrade to %s to import some sophisticated Ready2Adopt web services.' => - '', + '你想从专家创建的WEB服务中受益吗?升级到%s 就能导入一些复杂的即开即用的WEB服务。', 'After you save the configuration you will be redirected again to the edit screen.' => '保存配置文件后,页面将再次转到编辑页面。', 'If you want to return to overview please click the "Go to overview" button.' => @@ -1541,12 +1541,12 @@ '你可以上传流程配置文件,以便将流程配置导入到你的系统中。流程配置文件采用.yml格式,它可以从流程管理模块中导出。', 'Upload process configuration' => '上传流程配置', 'Import process configuration' => '导入流程配置', - 'Ready2Adopt Processes' => '', + 'Ready2Adopt Processes' => '即开即用的流程', 'Here you can activate Ready2Adopt processes showcasing our best practices. Please note that some additional configuration may be required.' => - '', + '你可以在此激活能展示我们最佳实践的即开即用的流程,请注意这可能需要一些额外的配置。', 'Would you like to benefit from processes created by experts? Upgrade to %s to import some sophisticated Ready2Adopt processes.' => - '', - 'Import Ready2Adopt process' => '', + '你想从专家创建的流程中受益吗?升级到%s 就能导入一些复杂的即开即用的流程。', + 'Import Ready2Adopt process' => '导入即开即用的流程', 'To create a new Process you can either import a Process that was exported from another system or create a complete new one.' => '为了创建新的流程,你可以导入从其它系统导出的流程配置文件,或者重新创建一个。', 'Changes to the Processes here only affect the behavior of the system, if you synchronize the Process data. By synchronizing the Processes, the newly made changes will be written to the Configuration.' => @@ -2444,8 +2444,8 @@ 'Edit your preferences' => '编辑个人设置', 'Personal preferences' => '个人偏好设置', 'Preferences' => '偏好设置', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => - '警告! 您目前没有编辑自己的偏好设置,而是编辑%s的偏好设置。', + 'Please note: you\'re currently editing the preferences of %s.' => + '', 'Go back to editing this agent' => '去编辑这个服务人员', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => '设置你的个人偏好。 通过单击右侧的钩形符号来保存每个设置。', @@ -2939,6 +2939,9 @@ 'Send a bugreport' => '发送一个BUG报告', 'Expand' => '展开', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '更新草稿', 'Save as new draft' => '另存为新的草稿', @@ -3292,6 +3295,7 @@ 'Loading, please wait...' => '加载中,请稍候...', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '单击以选择文件或将文件拖放到这里。', 'Click to select a file or just drop it here.' => '单击以选择一个文件或将文件拖放到这里。', 'Uploading...' => '上传中...', @@ -3652,6 +3656,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '邮件账号已添加!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => '按收件人(To:)分派。', 'Dispatching by selected Queue.' => '按所选队列分派。', @@ -3701,9 +3707,11 @@ 'Updated' => '更新时间', 'Already up-to-date' => '已经是最新的', 'Installed' => '安装时间', + 'Not correctly deployed' => '', 'Package updated correctly' => '软件包已正确地更新', 'Package was already updated' => '软件包已经更新', 'Dependency installed correctly' => '依赖软件已正确地安装', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '软件包包含循环依赖项', 'Not found in on-line repositories' => '在线软件库中找不到', 'Required version is higher than available' => '所需版本高于可用版本', @@ -4016,8 +4024,6 @@ 'Updated user preferences' => '用户偏好设置已更新', 'System was unable to deploy your changes.' => '系统无法部署你的变更。', 'Setting not found!' => '没有找到设置。', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '此功能是%s的一部分, 请通过%s与我们联系以进行升级。', 'System was unable to reset the setting!' => '系统无法重置该设置!', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4377,7 +4383,7 @@ 'Error: Please set the value for innodb_log_file_size on your database to at least %s MB (current: %s MB, recommended: %s MB). For more information, please have a look at %s.' => '错误:请设置数据库参数innodb_log_file_size至少为%s MB(当前:%s MB,推荐:%s MB),请参阅 %s 获取更多信息。', 'Wrong database collation (%s is %s, but it needs to be utf8).' => - '', + '错误的数据库排序规则(%s是%s,但需要是utf8)。', # Perl Module: Kernel/Modules/PublicCalendar.pm 'No %s!' => '没有%s!', @@ -4583,7 +4589,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '正在进行系统维护!', - 'A system maintenance period will start at: ' => '系统维护期将开始于:', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '一次系统维护将开始于:%s,预计结束时间为:%s。', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS守护进程没有运行。', @@ -4921,6 +4928,11 @@ 'InnoDB Log File Size' => 'InnoDB日志文件大小', 'The setting innodb_log_file_size must be at least 256 MB.' => '参数innodb_log_file_size必须设置为至少256MB。', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '最大查询大小', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4937,6 +4949,9 @@ 'Tables with a different storage engine than the default engine were found.' => '以下表使用的存储引擎与默认存储引擎不同。', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '需要MySQL 5.X或更高版本。', @@ -4948,6 +4963,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => 'NLS_DATE_FORMAT 必须设置为\'YYYY-MM-DD HH24:MI:SS\'。', 'NLS_DATE_FORMAT Setting SQL Check' => 'SQL检查NLS_DATE_FORMAT设置', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => 'client_encoding 需要设置为UNICODE或UTF8。', 'Setting server_encoding needs to be UNICODE or UTF8.' => 'server_encoding 需要设置为UNICODE或UTF8。', @@ -4956,6 +4976,11 @@ 'Date Format' => '日期格式', 'Setting DateStyle needs to be ISO.' => '设置日期格式为国际标准格式。', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '需要PostgreSQL 9.2或更高版本。', @@ -5202,6 +5227,9 @@ 'Could not update modified setting!' => '无法更新修改过的设置!', 'Setting could not be unlocked!' => '设置无法解锁!', 'Missing key %s!' => '缺失键%s!', + 'Invalid setting: %s' => '无效的设置:%s', + 'Could not combine settings values into a perl hash.' => '无法将设置值组合成一个perl哈希。', + 'Can not lock the deployment for UserID \'%s\'!' => '无法锁定用户ID为 \'%s\'的部署!', 'All Settings' => '所有设置', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5657,8 +5685,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '滑动导航栏', 'Please turn off Compatibility Mode in Internet Explorer!' => '请关闭IE的兼容模式!', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '这个功能需要%s才能使用,请到%s联系我们升级。', 'Find out more' => '了解更多', # JS File: Core.App.Responsive @@ -6120,7 +6146,7 @@ 'Communication & Notifications' => '通信和通知', 'Communication Log GUI' => '通信日志图形用户界面', 'Communication log limit per page for Communication Log Overview.' => - '', + '通信日志概览中每页的通信日志条目限制', 'CommunicationLog Overview Limit' => '通信日志概览限制', 'Company Status' => '单位状态', 'Company Tickets.' => '单位工单。', @@ -6255,7 +6281,7 @@ 'Define a filter for html output to add links behind a defined string. The element Image allows two input kinds. At once the name of an image (e.g. faq.png). In this case the OTRS image path will be used. The second possiblity is to insert the link to the image.' => '在HTML输出结果中为预定义字符串添加链接的过滤器。图像元素允许两种输入方式:第一种是用图像的名称(例如:faq.png),在这种情况下会使用OTRS的图像路径;第二种是插入图像的链接。', 'Define a mapping between variables of the customer user data (keys) and dynamic fields of a ticket (values). The purpose is to store customer user data in ticket dynamic fields. The dynamic fields must be present in the system and should be enabled for AgentTicketFreeText, so that they can be set/updated manually by the agent. They mustn\'t be enabled for AgentTicketPhone, AgentTicketEmail and AgentTicketCustomer. If they were, they would have precedence over the automatically set values. To use this mapping, you have to also activate the Ticket::EventModulePost###4100-DynamicFieldFromCustomerUser setting.' => - '', + '定义客户用户数据(键)与工单动态字段(值)的映射。目的是在工单动态字段中存储客户用户数据。动态字段必须存在于系统中且启用了AgentTicketFreeText(服务人员工单自由文本),这样才能由服务人员手动设置/更新。动态字段不能在服务人员电话工单、邮件工单和客户工单中启用,否则他们将优先于自动设置值。要使用这些映射,还要激活Ticket::EventModulePost###4100-DynamicFieldFromCustomerUser的设置。', 'Define dynamic field name for end time. This field has to be manually added to the system as Ticket: "Date / Time" and must be activated in ticket creation screens and/or in any other ticket action screens.' => '定义结束时间的动态字段名称。这个字段需要手动加入到系统作为工单的一种“日期/时间”,并且要在工单创建屏幕和/或其它任何工单操作屏幕激活。', 'Define dynamic field name for start time. This field has to be manually added to the system as Ticket: "Date / Time" and must be activated in ticket creation screens and/or in any other ticket action screens.' => @@ -6268,7 +6294,7 @@ '为选定的日历定义日期选择器中一周的起始日。', 'Define the start day of the week for the date picker.' => '定义日期选择器中一周的起始日。', 'Define which avatar default image should be used for the current agent if no gravatar is assigned to the mail address of the agent. Check http://gravatar.com/site/implement/images/ for further information.' => - '', + '如果没有分配给服务人员的邮件地址的gravatar(个人全球统一标识),则定义当前服务人员应该使用哪个头像作为默认图像。 查看 http://gravatar.com/site/implement/images/ 以了解更多信息。', 'Define which avatar engine should be used for the agent avatar on the header and the sender images in AgentTicketZoom. If \'None\' is selected, initials will be displayed instead. Please note that selecting anything other than \'None\' will transfer the encrypted email address of the particular user to an external service.' => '定义服务人员工单详情中的服务人员头像和的发件人图片使用哪个头像引擎。 如果选择“无”,则用缩写替代。 请注意,选择除“无”之外的任何内容都会将特定用户的加密过的电子邮件地址传输到外部服务。', 'Define which columns are shown in the linked appointment widget (LinkObject::ViewMode = "complex"). Possible settings: 0 = Disabled, 1 = Available, 2 = Enabled by default.' => @@ -6418,9 +6444,9 @@ 'Defines if the previously valid token should be accepted for authentication. This is slightly less secure but gives users 30 seconds more time to enter their one-time password.' => '定义在身份验证时是否接受先前有效的链接令牌。这稍微降低了安全性但是给用户多了30秒时间来输入他们的一次性密码。', 'Defines if the values for filters should be retrieved from all available tickets. If enabled, only values which are actually used in any ticket will be available for filtering. Please note: The list of customers will always be retrieved like this.' => - '', + '定义过滤器的值是否应从所有可用的工单中检索。如果启用了,则只有实际用在工单中的值才能用于过滤。请注意:客户用户列表将像这样始终被检索。', 'Defines if time accounting is mandatory in the agent interface. If enabled, a note must be entered for all ticket actions (no matter if the note itself is configured as active or is originally mandatory for the individual ticket action screen).' => - '', + '定义在服务人员界面工时管理是否是强制的。如果启用了,所有工单操作必须输入一个备注(不管是否启用了工单备注,也不管个别工单操作屏幕本来就是强制的)。', 'Defines if time accounting must be set to all tickets in bulk action.' => '定义在批量操作中是否设置所有工单的工时管理。', 'Defines internal communication channel.' => '定义内部通信渠道。', @@ -6447,15 +6473,15 @@ 'Defines the available steps in time selections. Select "Minute" to be able to select all minutes of one hour from 1-59. Select "30 Minutes" to only make full and half hours available.' => '定义时间选择中可用的增量。 选择“分钟”可以从1-59选择一小时的所有分钟数;选择“30分钟”,则只能选择一小时和半小时。', 'Defines the body text for notification mails sent to agents, about new password.' => - '', + '定义发送给服务人员关于新密码的通知邮件的正文。', 'Defines the body text for notification mails sent to agents, with token about new requested password.' => - '', + '定义发送给服务人员关于请求的新密码的链接的通知邮件的正文。', 'Defines the body text for notification mails sent to customers, about new account.' => '定义发送给客户关于新帐户信息的通知邮件的正文文本。', 'Defines the body text for notification mails sent to customers, about new password.' => - '', + '定义发送给客户关于新密码的通知邮件的正文。', 'Defines the body text for notification mails sent to customers, with token about new requested password.' => - '', + '定义发送给客户关于请求的新密码的链接的通知邮件的正文。', 'Defines the body text for rejected emails.' => '定义拒绝邮件的正文文本。', 'Defines the calendar width in percent. Default is 95%.' => '定义日历的宽度(%),默认为95%。', 'Defines the column to store the keys for the preferences table.' => @@ -6511,7 +6537,7 @@ 'Defines the default next state of a ticket if it is composed / answered in the ticket compose screen of the agent interface.' => '定义服务人员界面在工单编写屏幕编写或答复工单后的默认下一个工单状态。', 'Defines the default next state of a ticket, in the ticket bulk screen of the agent interface.' => - '', + '定义服务人员界面在工单批量操作屏幕的默认下一个工单状态。', 'Defines the default note body text for phone tickets in the ticket phone inbound screen of the agent interface.' => '定义服务人员界面在工单电话接入屏幕电话工单的默认备注正文文本。', 'Defines the default note body text for phone tickets in the ticket phone outbound screen of the agent interface.' => @@ -6820,7 +6846,7 @@ 'Defines the next state of a ticket after being moved to another queue, in the move ticket screen of the agent interface.' => '定义服务人员界面转移工单屏幕转移工单到另一队列后的下一个工单状态。', 'Defines the next state of a ticket, in the ticket bulk screen of the agent interface.' => - '', + '定义服务人员界面在工单批量操作屏幕的下一个工单状态。', 'Defines the number of character per line used in case an HTML article preview replacement on TemplateGenerator for EventNotifications.' => '定义HTML信件预览时的每行字符数,替换事件通知模块的模板生成器设置。', 'Defines the number of days to keep the daemon log files.' => '定义保留守护进程日志文件的天数。', @@ -7010,13 +7036,13 @@ 'Disable HTTP header "X-Frame-Options: SAMEORIGIN" to allow OTRS to be included as an IFrame in other websites. Disabling this HTTP header can be a security issue! Only disable it, if you know what you are doing!' => '禁用HHTP头"X-Frame-Options: SAMEORIGIN" 以便允许OTRS可以包含在其它网址的IFrame框架中。禁用这个HTTP头可能有安全问题!仅在您知道您在干什么时才禁用它!', 'Disables sending reminder notifications to the responsible agent of a ticket (Ticket::Responsible needs to be enabled).' => - '', + '禁止发送提醒通知给工单负责人(需要启用Ticket::Responsible设置)。', 'Disables the communication between this system and OTRS Group servers that provides cloud services. If enabled, some functionality will be lost such as system registration, support data sending, upgrading to and use of OTRS Business Solution™, OTRS Verify™, OTRS News and product News dashboard widgets, among others.' => - '', + '禁用本系统到OTRS集团提供云服务的服务器的通信。如果启用,某些功能如系统注册、发送支持数据、升级到OTRS Business Solution™(OTRS商业版)、OTRS Verify™(OTRS验证)、仪表板中的OTRS新闻和产品新闻小部件等将失效。', 'Disables the redirection to the last screen overview / dashboard after a ticket is created.' => '禁用创建工单后重定向到最近的概览屏幕或仪表板。', 'Disables the web installer (http://yourhost.example.com/otrs/installer.pl), to prevent the system from being hijacked. If not enabled, the system can be reinstalled and the current basic configuration will be used to pre-populate the questions within the installer script. If enabled, it also disables the GenericAgent, PackageManager and SQL Box.' => - '', + '禁用WEB安装程序(http://yourhost.example.com/otrs/installer.pl),防止系统被劫持。如果不启用,系统能够被重新安装,当前的基本配置将被安装脚本的预设问题替换。如果启用了,还同时禁用了通用代理、软件包管理和SQL查询窗口。', 'Display a warning and prevent search when using stop words within fulltext search.' => '在全文搜索使用了停止词时显示一个警告并阻止搜索。', 'Display communication log entries.' => '显示通信日志条目。', @@ -7041,7 +7067,7 @@ '用于输出搜索结果为CSV格式的动态字段。', 'Dynamic fields groups for process widget. The key is the name of the group, the value contains the fields to be shown. Example: \'Key => My Group\', \'Content: Name_X, NameY\'.' => '流程小部件的动态字段组。键是组名,值是要显示的动态字段。例如:\'键 => My Group\',\'值: Name_X, NameY\'。', - 'Dynamic fields limit per page for Dynamic Fields Overview.' => '', + 'Dynamic fields limit per page for Dynamic Fields Overview.' => '动态字段概览视图的每页动态字段数限制。', 'Dynamic fields options shown in the ticket message screen of the customer interface. NOTE. If you want to display these fields also in the ticket zoom of the customer interface, you have to enable them in CustomerTicketZoom###DynamicField.' => '在客户界面的工单消息屏幕中显示的动态字段选项。 注意。 如果要在客户界面的工单详情屏幕中显示这些字段,则必须在CustomerTicketZoom ### DynamicField中启用它们。', 'Dynamic fields options shown in the ticket reply section in the ticket zoom screen of the customer interface.' => @@ -7116,7 +7142,7 @@ 'Enable highlighting queues based on ticket age.' => '启用基于工单年龄的突出显示队列。', 'Enable keep-alive connection header for SOAP responses.' => '启用SOAP响应的持久连接头。', 'Enable this if you trust in all your public and private pgp keys, even if they are not certified with a trusted signature.' => - '', + '如果你信任所有的公共和私有PGP密钥(即使它们不是可信任签名认证的),则启用这个参数。', 'Enabled filters.' => '启用的过滤器。', 'Enables PGP support. When PGP support is enabled for signing and encrypting mail, it is HIGHLY recommended that the web server runs as the OTRS user. Otherwise, there will be problems with the privileges when accessing .gnupg folder.' => '启用PGP支持。当启用PGP签名和加密邮件时,强烈推荐以OTRS用户运行WEB服务器,否则,访问.pnugp目录会有权限问题。', @@ -7216,7 +7242,7 @@ 'For these state types the ticket numbers are striked through in the link table.' => '对于这些状态类型,在链表中的工单编号将被划线。', 'Force the storage of the original article text in the article search index, without executing filters or applying stop word lists. This will increase the size of the search index and thus may slow down fulltext searches.' => - '', + '强制将原始信件文本存储在信件搜索索引中,而不执行过滤器或应用停用词列表。 这将增加搜索索引的大小,从而可能减慢全文搜索。', 'Forces encoding of outgoing emails (7bit|8bit|quoted-printable|base64).' => '外发邮件强制编码为(7bit|8bit|可打印|base64)。', 'Forces to choose a different ticket state (from current) after lock action. Define the current state as key, and the next state after lock action as content.' => @@ -7382,8 +7408,8 @@ '如果启用了此选项,电话工单和邮件工单将在新窗口中打开。', 'If enabled, the OTRS version tag will be removed from the Webinterface, the HTTP headers and the X-Headers of outgoing mails. NOTE: If you change this option, please make sure to delete the cache.' => '如果启用了此选项,将从WEB界面、HTTP头信息和外发邮件的X-Headers头信息中移除OTRS版本标签。注意:如果你要修改这个选项,请确保清空缓存。', - 'If enabled, the cache data be held in memory.' => '', - 'If enabled, the cache data will be stored in cache backend.' => '', + 'If enabled, the cache data be held in memory.' => '如果启用了,缓存数据将会保留在内存中。', + 'If enabled, the cache data will be stored in cache backend.' => '如果启用了,缓存数据将会存储到缓存后端。', 'If enabled, the customer can search for tickets in all services (regardless what services are assigned to the customer).' => '如果启用了此选项,客户可以搜索所有服务的工单(不管这个客户分配了什么服务)。', 'If enabled, the different overviews (Dashboard, LockedView, QueueView) will automatically refresh after the specified time.' => @@ -7399,11 +7425,11 @@ 'If set, this address is used as envelope sender in outgoing messages (not notifications - see below). If no address is specified, the envelope sender is equal to queue e-mail address.' => '如果设置了此参数,这个地址将用于外发消息(不是通知-通知在下面查看)的信件发件人头。如果不指定地址,信件发件人头就为空。', 'If this option is enabled, tickets created via the web interface, via Customers or Agents, will receive an autoresponse if configured. If this option is not enabled, no autoresponses will be sent.' => - '', + '如果这个选项启用了,服务人员或客户通过WEB界面创建的工单将收到自动响应(如果配置了自动响应)。如果这个选项不启用,则不会发送自动响应。', 'If this regex matches, no message will be send by the autoresponder.' => '如果这个正则表达式匹配了,自动响应不会发送任何消息。', 'If this setting is enabled, local modifications will not be highlighted as errors in the package manager and support data collector.' => - '', + '如果启用这个设置,本地修改内容不会在软件包管理器和支持数据收集工具中高亮显示为错误。', 'If you\'re going to be out of office, you may wish to let other users know by setting the exact dates of your absence.' => '如果你要外出,通过设置你不在办公室的确切日期,你可能希望让其他用户知道。', 'Ignore system sender article types (e. g. auto responses or email notifications) to be flagged as \'Unread Article\' in AgentTicketZoom or expanded automatically in Large view screens.' => @@ -7440,6 +7466,7 @@ 'JavaScript function for the search frontend.' => '搜索界面的JavaScript函数。', 'Language' => '语言', 'Large' => '详细', + 'Last Screen Overview' => '最近屏幕概览', 'Last customer subject' => '最后客户主题', 'Lastname Firstname' => '姓 名', 'Lastname Firstname (UserLogin)' => '姓 名(登录用户名)', @@ -7504,7 +7531,7 @@ 'Loop protection: no auto-response sent to "%s".' => '环路保护:没有自动响应发送到“%s”。', 'Mail Accounts' => '邮件帐户', 'MailQueue configuration settings.' => '邮件队列配置设置。', - 'Main menu item registration.' => '', + 'Main menu item registration.' => '注册主菜单条目。', 'Main menu registration.' => '主菜单注册。', 'Makes the application check the MX record of email addresses before sending an email or submitting a telephone or email ticket.' => '在发送邮件或提交电话工单/邮件工单前让系统检查邮件地址的MX记录。', @@ -7639,13 +7666,13 @@ '服务人员界面搜索结果每页显示的工单数。', 'Number of tickets to be displayed in each page of a search result in the customer interface.' => '客户界面搜索结果每页显示的工单数。', - 'Number of tickets to be displayed in each page.' => '', + 'Number of tickets to be displayed in each page.' => '每页显示的工单数量。', 'OTRS Group Services' => 'OTRS集团服务', 'OTRS News' => 'OTRS新闻', 'OTRS can use one or more readonly mirror databases for expensive operations like fulltext search or statistics generation. Here you can specify the DSN for the first mirror database.' => 'OTRS能够使用一个或多个只读镜像数据库以扩展操作(如全文搜索或生成统计报表)。您可以在这里指定第一个镜像数据库的DSN(数据源名称)。', 'OTRS doesn\'t support recurring Appointments without end date or number of iterations. During import process, it might happen that ICS file contains such Appointments. Instead, system creates all Appointments in the past, plus Appointments for the next N months (120 months/10 years by default).' => - '', + 'OTRS不支持对没有结束日期或没有重复次数的预约做循环处理。在导入过程中,可能有ICS文件包含了此类预约。作为替代,系统将所有的此类预约创建为已过去的预约,然后加上接下来的N个月(默认120个月或10年)的重复预约。', 'Open Tickets / Need to be answered' => '正在处理/需要回复的工单', 'Open an external link!' => '打开一个外部链接!', 'Open tickets (customer user)' => '处理中的工单(客户用户)', @@ -7805,7 +7832,7 @@ 'Removes the ticket watcher information when a ticket is archived.' => '工单归档时移除该工单的关注人信息。', 'Renew existing SMIME certificates from customer backend. Note: SMIME and SMIME::FetchFromCustomer needs to be enabled in SysConfig and customer backend needs to be configured to fetch UserSMIMECertificate attribute.' => - '', + '从客户后端更新已有的SMIME证书。注意:需要在系统配置中启用SMIME和SMIME::FetchFromCustomer,且客户后端模块需要配置为收取UserSMIMECertificate 属性。', 'Replaces the original sender with current customer\'s email address on compose answer in the ticket compose screen of the agent interface.' => '服务人员界面工单编写屏幕,用客户当前的邮件地址替换编写回复时的原始发件人。', 'Reports' => '报表', @@ -7865,7 +7892,7 @@ 'Runs an initial wildcard search of the existing customer users when accessing the AdminCustomerUser module.' => '访问管理客户用户模块时执行一个初始的已有全部客户用户的搜索。', 'Runs the system in "Demo" mode. If enabled, agents can change preferences, such as selection of language and theme via the agent web interface. These changes are only valid for the current session. It will not be possible for agents to change their passwords.' => - '', + '以“演示”模式运行系统。如果启用了,服务人员能够修改偏好设置,如通过WEB界面选择语言和主题,这些变更内容只对当前会话有效。服务人员不能修改密码。', 'Russian' => '俄语', 'S/MIME Certificates' => 'S/MIME证书', 'SMS' => '短信', @@ -8079,19 +8106,19 @@ 'Sets the responsible agent of the ticket in the ticket responsible screen of the agent interface.' => '设置服务人员界面工单负责人屏幕的服务人员负责人。', 'Sets the service in the close ticket screen of the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单关闭屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket free text screen of the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单自定义字段屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket note screen of the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单备注屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket owner screen of a zoomed ticket in the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单所有者屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket pending screen of a zoomed ticket in the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单挂起屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket priority screen of a zoomed ticket in the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单优先级屏幕的服务(需要启用Ticket::Service)。', 'Sets the service in the ticket responsible screen of the agent interface (Ticket::Service needs to be enabled).' => - '', + '设置服务人员界面工单负责人屏幕的服务(需要启用Ticket::Service)。', 'Sets the state of a ticket in the close ticket screen of the agent interface.' => '设置服务人员界面关闭工单屏幕的工单状态。', 'Sets the state of a ticket in the ticket bulk screen of the agent interface.' => @@ -8126,21 +8153,21 @@ 'Sets the ticket owner in the ticket responsible screen of the agent interface.' => '设置服务人员界面工单负责人屏幕的工单所有者。', 'Sets the ticket type in the close ticket screen of the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单关闭屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket bulk screen of the agent interface.' => '设置服务人员界面工单批量操作屏幕的工单类型。', 'Sets the ticket type in the ticket free text screen of the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单自定义字段屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket note screen of the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单备注屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket owner screen of a zoomed ticket in the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单所有者屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket pending screen of a zoomed ticket in the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单挂起屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket priority screen of a zoomed ticket in the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单优先级屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the ticket type in the ticket responsible screen of the agent interface (Ticket::Type needs to be enabled).' => - '', + '设置服务人员界面工单负责人屏幕的工单类型(需要启用Ticket::Type)。', 'Sets the time zone being used internally by OTRS to e. g. store dates and times in the database. WARNING: This setting must not be changed once set and tickets or any other data containing date/time have been created.' => '将OTRS内部使用的时区设置如在数据库中存储日期和时间。 警告:此设置一旦设置就不能更改,包含日期/时间的工单或其他数据已据此创建。', 'Sets the time zone that will be assigned to newly created users and will be used for users that haven\'t yet set a time zone. This is the time zone being used as default to convert date and time between the OTRS time zone and the user\'s time zone.' => @@ -8159,7 +8186,7 @@ 'Show the history for this ticket' => '显示这个工单的历史', 'Show the ticket history' => '显示工单历史信息', 'Shows a count of attachments in the ticket zoom, if the article has attachments.' => - '', + '如果信件有附件,在工单详情视图显示附件数。', 'Shows a link in the menu for creating a calendar appointment linked to the ticket directly from the ticket zoom view of the agent interface. Additional access control to show or not show this link can be done by using Key "Group" and Content like "rw:group1;move_into:group2". To cluster menu items use for Key "ClusterName" and for the Content any name you want to see in the UI. Use "ClusterPriority" to configure the order of a certain cluster within the toolbar.' => '在服务人员界面工单详情屏幕,在菜单上显示一个链接,以创建一个日历预约并直接链接到此工单。可通过键“Group”和值如“rw:group1;move_into:group2”进行额外的访问控制,以显示或不显示这个链接。如果要放到菜单组中,使用键“ClusterName”,值可以是界面上能看到的任意名称。使用键“ClusterPriority”来配置菜单组在工具栏中显示的顺序。', 'Shows a link in the menu for subscribing / unsubscribing from a ticket in the ticket zoom view of the agent interface. Additional access control to show or not show this link can be done by using Key "Group" and Content like "rw:group1;move_into:group2". To cluster menu items use for Key "ClusterName" and for the Content any name you want to see in the UI. Use "ClusterPriority" to configure the order of a certain cluster within the toolbar.' => @@ -8281,7 +8308,7 @@ 'Shows the customer user information (phone and email) in the compose screen.' => '在工单编写屏幕显示客户用户信息(电话和邮件)。', 'Shows the enabled ticket attributes in the customer interface (0 = Disabled and 1 = Enabled).' => - '', + '在客户界面显示已启用的工单属性(0 = 禁用,1 = 启用)。', 'Shows the message of the day (MOTD) in the agent dashboard. "Group" is used to restrict access to the plugin (e. g. Group: admin;group1;group2;). "Default" indicates if the plugin is enabled by default or if the user needs to enable it manually. "Mandatory" determines if the plugin is always shown and can not be removed by agents.' => '在服务人员仪表板中显示当天的消息(MOTD)。 “组”用于限制对插件的访问(例如,组:admin; group1; group2;)。 “默认”表示插件是默认启用,还是需要用户手动启用插件。 “强制”确定插件是否始终显示,不能被服务人员移除。', 'Shows the message of the day on login screen of the agent interface.' => @@ -8307,23 +8334,23 @@ 'Shows the ticket priority options in the ticket responsible screen of the agent interface.' => '在服务人员界面工单负责人屏幕显示工单优先级选项。', 'Shows the title field in the close ticket screen of the agent interface.' => - '', + '在服务人员界面关闭工单屏幕显示工单标题字段。', 'Shows the title field in the ticket free text screen of the agent interface.' => '在服务人员界面工单自定义字段屏幕显示工单标题标题字段。', 'Shows the title field in the ticket note screen of the agent interface.' => - '', + '在服务人员界面工单备注屏幕显示工单标题字段。', 'Shows the title field in the ticket owner screen of a zoomed ticket in the agent interface.' => - '', + '在服务人员界面工单所有者屏幕显示工单标题字段。', 'Shows the title field in the ticket pending screen of a zoomed ticket in the agent interface.' => - '', + '在服务人员界面工单挂起屏幕显示工单标题字段。', 'Shows the title field in the ticket priority screen of a zoomed ticket in the agent interface.' => - '', + '在服务人员界面工单优先级屏幕显示工单标题字段。', 'Shows the title field in the ticket responsible screen of the agent interface.' => - '', + '在服务人员界面工单负责人屏幕显示工单标题字段。', 'Shows time in long format (days, hours, minutes), if enabled; or in short format (days, hours), if not enabled.' => - '', + '如果启用,则以长格式显示时间(天、小时、分钟);如果不启用,则以短格式显示时间(天、小时)。', 'Shows time use complete description (days, hours, minutes), if enabled; or just first letter (d, h, m), if not enabled.' => - '', + '如果启用,则显示时间的完整描述(天、小时、分钟);如果不启用,则只显示时间的首字母(d-天,h-时,m-分)。', 'Signatures' => '签名', 'Simple' => '简单', 'Skin' => '皮肤', @@ -8474,7 +8501,7 @@ '转发邮件中加在主题前的文字,如FW、Fwd或WG。', 'Theme' => '主题', 'This event module stores attributes from CustomerUser as DynamicFields tickets. Please see DynamicFieldFromCustomerUser::Mapping setting for how to configure the mapping.' => - '', + '这个事件模块将客户用户的属性存储为工单动态字段,如何配置这个映射请查看DynamicFieldFromCustomerUser::Mapping设置。', 'This is a Description for Comment on Framework.' => '这是在框架中关于注释的描述信息。', 'This is a Description for DynamicField on Framework.' => '这是在框架中关于动态字段的描述信息。', 'This is the default orange - black skin for the customer interface.' => @@ -8497,7 +8524,7 @@ '这个设置允许您使用自己的国家列表覆盖内置的国家列表,如果您只想用到一小部分的国家时格外有用。', 'This setting is deprecated. Set OTRSTimeZone instead.' => '此设置已弃用。 替代方式是设置OTRSTimeZone。', 'This setting shows the sorting attributes in all overview screen, not only in queue view.' => - '', + '这个设置显示所有概览屏幕(而不是仅队列视图)中的排序属性。', 'This will allow the system to send text messages via SMS.' => '这个选项允许系统通过短信发送文本消息。', 'Ticket Close.' => '工单关闭。', 'Ticket Compose Bounce Email.' => '工单编写退回邮件。', @@ -8527,9 +8554,9 @@ 'Ticket bulk module.' => '工单批量操作模块。', 'Ticket event module that triggers the escalation stop events.' => '触发升级停止事件的工单事件模块。', - 'Ticket limit per page for Ticket Overview "Medium".' => '', - 'Ticket limit per page for Ticket Overview "Preview".' => '', - 'Ticket limit per page for Ticket Overview "Small".' => '', + 'Ticket limit per page for Ticket Overview "Medium".' => '工单概览“基本”模式每页工单数量。', + 'Ticket limit per page for Ticket Overview "Preview".' => '工单概览“预览”模式每页工单数量。', + 'Ticket limit per page for Ticket Overview "Small".' => '工单概览“简洁”模式每页工单数量。', 'Ticket notifications' => '工单通知', 'Ticket overview' => '工单概览', 'Ticket plain view of an email.' => '显示工单邮件的纯文本。', @@ -8695,6 +8722,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8952,7 +8981,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Language/zh_TW.pm otrs2-6.0.5/Kernel/Language/zh_TW.pm --- otrs2-6.0.4/Kernel/Language/zh_TW.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Language/zh_TW.pm 2018-02-05 23:46:54.000000000 +0000 @@ -26,7 +26,7 @@ $Self->{DateFormatShort} = '%Y.%M.%D'; $Self->{DateInputFormat} = '%Y.%M.%D'; $Self->{DateInputFormatLong} = '%Y.%M.%D - %T'; - $Self->{Completeness} = 0.342155336446981; + $Self->{Completeness} = 0.341328731665229; # csv separator $Self->{Separator} = ''; @@ -2440,7 +2440,7 @@ 'Edit your preferences' => '編輯個人設置', 'Personal preferences' => '', 'Preferences' => '個人設置', - 'Warning! You\'re currently not editing your own preferences, but those of %s.' => + 'Please note: you\'re currently editing the preferences of %s.' => '', 'Go back to editing this agent' => '', 'Set up your personal preferences. Save each setting by clicking the checkmark on the right.' => @@ -2935,6 +2935,9 @@ 'Send a bugreport' => '發送一個錯誤報告', 'Expand' => '展開', + # Template: AttachmentList + 'Click to delete this attachment.' => '', + # Template: DraftButtons 'Update draft' => '', 'Save as new draft' => '', @@ -3288,6 +3291,7 @@ 'Loading, please wait...' => '', # JS Template: UploadContainer + 'Click to select a file for upload.' => '', 'Click to select files or just drop them here.' => '', 'Click to select a file or just drop it here.' => '', 'Uploading...' => '', @@ -3648,6 +3652,8 @@ # Perl Module: Kernel/Modules/AdminMailAccount.pm 'Mail account added!' => '郵件帳號已添加!', + 'Email account fetch already fetched by another process. Please try again later!' => + '', 'Dispatching by email To: field.' => '按收件人(To:)分派.', 'Dispatching by selected Queue.' => '按所選隊列分派.', @@ -3697,9 +3703,11 @@ 'Updated' => '', 'Already up-to-date' => '', 'Installed' => '', + 'Not correctly deployed' => '', 'Package updated correctly' => '', 'Package was already updated' => '', 'Dependency installed correctly' => '', + 'The package needs to be reinstalled' => '', 'The package contains cyclic dependencies' => '', 'Not found in on-line repositories' => '', 'Required version is higher than available' => '', @@ -4012,8 +4020,6 @@ 'Updated user preferences' => '', 'System was unable to deploy your changes.' => '', 'Setting not found!' => '', - 'This feature is part of the %s Please contact us at %s for an upgrade.' => - '', 'System was unable to reset the setting!' => '', # Perl Module: Kernel/Modules/AgentSplitSelection.pm @@ -4579,7 +4585,8 @@ # Perl Module: Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 'System maintenance is active!' => '', - 'A system maintenance period will start at: ' => '', + 'A system maintenance period will start at: %s and is expected to stop at: %s' => + '', # Perl Module: Kernel/Output/HTML/Notification/DaemonCheck.pm 'OTRS Daemon is not running.' => 'OTRS Daemon未在運行', @@ -4917,6 +4924,11 @@ 'InnoDB Log File Size' => '', 'The setting innodb_log_file_size must be at least 256 MB.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm + 'Invalid Default Values' => '', + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/MaxAllowedPacket.pm 'Maximum Query Size' => '', 'The setting \'max_allowed_packet\' must be higher than 64 MB.' => @@ -4933,6 +4945,9 @@ 'Tables with a different storage engine than the default engine were found.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm + 'Table check found some problems.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/mysql/Version.pm 'MySQL 5.x or higher is required.' => '', @@ -4944,6 +4959,11 @@ 'NLS_DATE_FORMAT must be set to \'YYYY-MM-DD HH24:MI:SS\'.' => '', 'NLS_DATE_FORMAT Setting SQL Check' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm + 'Primary Key Sequences and Triggers' => '', + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Charset.pm 'Setting client_encoding needs to be UNICODE or UTF8.' => '', 'Setting server_encoding needs to be UNICODE or UTF8.' => '', @@ -4952,6 +4972,11 @@ 'Date Format' => '日期格式', 'Setting DateStyle needs to be ISO.' => '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm + 'Primary Key Sequences' => '', + 'The following sequences with possible wrong names have been found. Please rename them manually.' => + '', + # Perl Module: Kernel/System/SupportDataCollector/Plugin/Database/postgresql/Version.pm 'PostgreSQL 9.2 or higher is required.' => '', @@ -5198,6 +5223,9 @@ 'Could not update modified setting!' => '', 'Setting could not be unlocked!' => '', 'Missing key %s!' => '', + 'Invalid setting: %s' => '', + 'Could not combine settings values into a perl hash.' => '', + 'Can not lock the deployment for UserID \'%s\'!' => '', 'All Settings' => '', # Perl Module: Kernel/System/SysConfig/BaseValueType.pm @@ -5653,8 +5681,6 @@ # JS File: Core.Agent 'Slide the navigation bar' => '', 'Please turn off Compatibility Mode in Internet Explorer!' => '', - 'This feature is part of the %s. Please contact us at %s for an upgrade.' => - '', 'Find out more' => '', # JS File: Core.App.Responsive @@ -7427,6 +7453,7 @@ 'JavaScript function for the search frontend.' => '', 'Language' => '語言', 'Large' => '詳細', + 'Last Screen Overview' => '', 'Last customer subject' => '', 'Lastname Firstname' => '姓氏 名字', 'Lastname Firstname (UserLogin)' => '姓氏 名字 (用戶登錄)', @@ -8682,6 +8709,8 @@ 'Clear all', 'Clear debug log', 'Clear search', + 'Click to delete this attachment.', + 'Click to select a file for upload.', 'Click to select a file or just drop it here.', 'Click to select files or just drop them here.', 'Clone web service', @@ -8939,7 +8968,7 @@ 'This address already exists on the address list.', 'This element has children elements and can currently not be removed.', 'This event is already attached to the job, Please use a different one.', - 'This feature is part of the %s. Please contact us at %s for an upgrade.', + 'This feature is part of the %s. Please contact us at %s for an upgrade.', 'This field is required.', 'This is %s', 'This is a repeating appointment', diff -Nru otrs2-6.0.4/Kernel/Modules/AdminACL.pm otrs2-6.0.5/Kernel/Modules/AdminACL.pm --- otrs2-6.0.4/Kernel/Modules/AdminACL.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminACL.pm 2018-02-05 23:46:54.000000000 +0000 @@ -472,9 +472,14 @@ } else { + # Get all IDs from valid table including invalid-temporarily status. + # See bug#13592 (https://bugs.otrs.org/show_bug.cgi?id=13592). + my %ValidList = $Kernel::OM->Get('Kernel::System::Valid')->ValidList(); + my @ValidListIDs = grep { $ValidList{$_} } sort keys %ValidList; + $ACLData = $ACLObject->ACLListGet( UserID => 1, - ValidIDs => [ '1', '2' ], + ValidIDs => \@ValidListIDs, ); } diff -Nru otrs2-6.0.4/Kernel/Modules/AdminCommunicationLog.pm otrs2-6.0.5/Kernel/Modules/AdminCommunicationLog.pm --- otrs2-6.0.4/Kernel/Modules/AdminCommunicationLog.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminCommunicationLog.pm 2018-02-05 23:46:54.000000000 +0000 @@ -48,7 +48,7 @@ CommunicationID => $GetParam{CommunicationID}, ); - if ( !$Communication ) { + if ( !IsHashRefWithData($Communication) ) { my $LayoutObject = $Kernel::OM->Get('Kernel::Output::HTML::Layout'); return $LayoutObject->FatalError( Message => Translatable('Invalid CommunicationID '), diff -Nru otrs2-6.0.4/Kernel/Modules/AdminInit.pm otrs2-6.0.5/Kernel/Modules/AdminInit.pm --- otrs2-6.0.4/Kernel/Modules/AdminInit.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminInit.pm 2018-02-05 23:46:54.000000000 +0000 @@ -48,15 +48,14 @@ } # Create initial deployment (write ZZZAAuto file). - if ( - !$SysConfigObject->ConfigurationDeploy( - Comments => "Deployed by AdminInit", - AllSettings => 1, - UserID => 1, - Force => 1, - ) - ) - { + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( + Comments => "Deployed by AdminInit", + AllSettings => 1, + UserID => 1, + Force => 1, + ); + + if ( !$DeploymentResult{Success} ) { return $LayoutObject->ErrorScreen(); } diff -Nru otrs2-6.0.4/Kernel/Modules/AdminMailAccount.pm otrs2-6.0.5/Kernel/Modules/AdminMailAccount.pm --- otrs2-6.0.4/Kernel/Modules/AdminMailAccount.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminMailAccount.pm 2018-02-05 23:46:54.000000000 +0000 @@ -48,8 +48,28 @@ # challenge token check for write action $LayoutObject->ChallengeTokenCheck(); + # Lock process with PID to prevent race conditions with console command + # Maint::PostMaster::MailAccountFetch executed by the OTRS daemon or manually. + # Please see bug#13235 + my $PIDObject = $Kernel::OM->Get('Kernel::System::PID'); + + my $PIDCreated = $PIDObject->PIDCreate( + Name => 'MailAccountFetch', + TTL => 600, # 10 minutes + ); + + if ( !$PIDCreated ) { + $Kernel::OM->Get('Kernel::System::Log')->Log( + Priority => 'error', + Message => "Unable to register the process in the database. Is another instance still running?" + ); + return $LayoutObject->Redirect( OP => 'Action=AdminMailAccount;Locked=1' ); + } + my %Data = $MailAccount->MailAccountGet(%GetParam); if ( !%Data ) { + + $PIDObject->PIDDelete( Name => 'MailAccountFetch' ); return $LayoutObject->ErrorScreen(); } @@ -58,6 +78,9 @@ Limit => 15, UserID => $Self->{UserID}, ); + + $PIDObject->PIDDelete( Name => 'MailAccountFetch' ); + if ( !$Ok ) { return $LayoutObject->ErrorScreen(); } @@ -265,12 +288,21 @@ else { $Self->_Overview(); - my $Ok = $ParamObject->GetParam( Param => 'Ok' ); + my $Ok = $ParamObject->GetParam( Param => 'Ok' ); + my $Locked = $ParamObject->GetParam( Param => 'Locked' ); + my $Output = $LayoutObject->Header(); $Output .= $LayoutObject->NavigationBar(); + if ($Ok) { $Output .= $LayoutObject->Notify( Info => Translatable('Finished') ); } + if ($Locked) { + $Output .= $LayoutObject->Notify( + Info => Translatable('Email account fetch already fetched by another process. Please try again later!'), + ); + } + $Output .= $LayoutObject->Output( TemplateFile => 'AdminMailAccount', Data => \%Param, diff -Nru otrs2-6.0.4/Kernel/Modules/AdminPackageManager.pm otrs2-6.0.5/Kernel/Modules/AdminPackageManager.pm --- otrs2-6.0.4/Kernel/Modules/AdminPackageManager.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminPackageManager.pm 2018-02-05 23:46:54.000000000 +0000 @@ -1373,12 +1373,14 @@ Updated => $LayoutObject->{LanguageObject}->Translate('Updated'), AlreadyUpdated => $LayoutObject->{LanguageObject}->Translate('Already up-to-date'), Installed => $LayoutObject->{LanguageObject}->Translate('Installed'), + Undeployed => $LayoutObject->{LanguageObject}->Translate('Not correctly deployed'), Failed => $LayoutObject->{LanguageObject}->Translate('Failed'), ); my %StatusMessages = ( Updated => $LayoutObject->{LanguageObject}->Translate('Package updated correctly'), AlreadyUpdated => $LayoutObject->{LanguageObject}->Translate('Package was already updated'), Installed => $LayoutObject->{LanguageObject}->Translate('Dependency installed correctly'), + Undeployed => $LayoutObject->{LanguageObject}->Translate('The package needs to be reinstalled'), Cyclic => $LayoutObject->{LanguageObject}->Translate('The package contains cyclic dependencies'), NotFound => $LayoutObject->{LanguageObject}->Translate('Not found in on-line repositories'), WrongVersion => $LayoutObject->{LanguageObject}->Translate('Required version is higher than available'), @@ -1388,14 +1390,18 @@ ); if ( IsHashRefWithData($UpgradeResult) ) { - for my $StatusType (qw(Updated Installed AlreadyUpdated)) { + for my $StatusType (qw(Updated Installed AlreadyUpdated Undeployed)) { for my $PackageName ( sort keys %{ $UpgradeResult->{$StatusType} } ) { + my $Class = 'Success'; + if ( $StatusType eq 'Installed' || $StatusType eq 'Undeployed' ) { + $Class = 'Warning'; + } $PackageList{$PackageName} = { Name => $PackageName, Status => $StatusType, StatusDisplay => $StatusStings{$StatusType}, StatusMessage => $StatusMessages{$StatusType}, - Class => $StatusType eq 'Installed' ? 'Warning' : 'Success', + Class => $Class, }; } } diff -Nru otrs2-6.0.4/Kernel/Modules/AdminPriority.pm otrs2-6.0.5/Kernel/Modules/AdminPriority.pm --- otrs2-6.0.4/Kernel/Modules/AdminPriority.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminPriority.pm 2018-02-05 23:46:54.000000000 +0000 @@ -161,7 +161,7 @@ } - my $DeploymentResult = $SysConfigObject->ConfigurationDeploy( + $SysConfigObject->ConfigurationDeploy( Comments => "Priority name change", DirtySettings => \@IsPriorityInSysConfig, UserID => $Self->{UserID}, diff -Nru otrs2-6.0.4/Kernel/Modules/AdminSystemConfigurationDeployment.pm otrs2-6.0.5/Kernel/Modules/AdminSystemConfigurationDeployment.pm --- otrs2-6.0.4/Kernel/Modules/AdminSystemConfigurationDeployment.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AdminSystemConfigurationDeployment.pm 2018-02-05 23:46:54.000000000 +0000 @@ -71,14 +71,14 @@ my $SysConfigObject = $Kernel::OM->Get('Kernel::System::SysConfig'); - my $Result = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => $Comments, UserID => $Self->{UserID}, AllSettings => ($AdvancedMode) ? 1 : 0, DirtySettings => $SelectedSettings || undef, ); - $ReturnData{Result} = $Result; + $ReturnData{Result} = \%DeploymentResult; if ( $Self->{LastEntityType} ) { diff -Nru otrs2-6.0.4/Kernel/Modules/AgentPreferences.pm otrs2-6.0.5/Kernel/Modules/AgentPreferences.pm --- otrs2-6.0.4/Kernel/Modules/AgentPreferences.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentPreferences.pm 2018-02-05 23:46:54.000000000 +0000 @@ -37,12 +37,11 @@ $Self->{CurrentUserID} = $Self->{UserID}; if ( $EditUserID - && $EditUserID != $Self->{UserID} && $Self->_CheckEditPreferencesPermission() ) { $Self->{CurrentUserID} = $EditUserID; - $Self->{CurrentUserIDNotice} = 1; + $Self->{EditingAnotherAgent} = 1; } # ------------------------------------------------------------ # @@ -540,7 +539,7 @@ TemplateFile => 'AgentPreferencesOverview', Data => { Items => \@PreferencesGroups, - CurrentUserIDNotice => $Self->{CurrentUserIDNotice}, + EditingAnotherAgent => $Self->{EditingAnotherAgent}, CurrentUserFullname => $UserObject->UserName( UserID => $Self->{CurrentUserID} ), CurrentUserID => $Self->{CurrentUserID}, View => $UserPreferences{AgentPreferencesView} || 'Grid', @@ -572,12 +571,11 @@ $Self->{CurrentUserID} = $Self->{UserID}; if ( $EditUserID - && $EditUserID != $Self->{UserID} && $Self->_CheckEditPreferencesPermission() ) { + $Self->{EditingAnotherAgent} = 1; $Self->{CurrentUserID} = $EditUserID; - $Self->{CurrentUserIDNotice} = 1; } # Show navigation in advanced group @@ -638,7 +636,7 @@ %Param, CategoriesStrg => $Self->_GetCategoriesStrg(), RootNavigation => $RootNavigation, - CurrentUserIDNotice => $Self->{CurrentUserIDNotice}, + EditingAnotherAgent => $Self->{EditingAnotherAgent}, CurrentUserFullname => $Kernel::OM->Get('Kernel::System::User')->UserName( UserID => $Self->{CurrentUserID} ), CurrentUserID => $Self->{CurrentUserID}, @@ -689,7 +687,10 @@ next PRIO if !$ConfigObject->{PreferencesGroups}->{$Group}; my %Preference = %{ $ConfigObject->{PreferencesGroups}->{$Group} }; - next PRIO if !$Preference{Active}; + + if ( !$Self->{EditingAnotherAgent} && !$Preference{Active} ) { + next PRIO; + } # load module my $Module = $Preference{Module} || 'Kernel::Output::HTML::Preferences::Generic'; @@ -865,7 +866,7 @@ } elsif ( !$SysConfigObject->can('UserSettingValueDelete') ) { # OTRS Business Solution™ $Result{Data}->{Error} = $LayoutObject->{LanguageObject}->Translate( - "This feature is part of the %s Please contact us at %s for an upgrade." + "This feature is part of the %s. Please contact us at %s for an upgrade." , 'OTRS Business Solution™' , 'sales@otrs.com' ); diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketActionCommon.pm otrs2-6.0.5/Kernel/Modules/AgentTicketActionCommon.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketActionCommon.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketActionCommon.pm 2018-02-05 23:46:54.000000000 +0000 @@ -321,7 +321,7 @@ # ACL compatibility translation my %ACLCompatGetParam = ( - StateID => $GetParam{StateID}, + StateID => $GetParam{NewStateID}, PriorityID => $GetParam{NewPriorityID}, QueueID => $GetParam{NewQueueID}, OwnerID => $GetParam{NewOwnerID}, diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketCompose.pm otrs2-6.0.5/Kernel/Modules/AgentTicketCompose.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketCompose.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketCompose.pm 2018-02-05 23:46:54.000000000 +0000 @@ -1792,6 +1792,9 @@ # run compose modules if ( ref $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') eq 'HASH' ) { + # use ticket QueueID in compose modules + $GetParam{QueueID} = $Ticket{QueueID}; + my %Jobs = %{ $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') }; for my $Job ( sort keys %Jobs ) { @@ -1813,7 +1816,13 @@ } # run module - $Object->Run( %GetParam, Config => $Jobs{$Job} ); + my $NewParams = $Object->Run( %GetParam, Config => $Jobs{$Job} ); + + if ($NewParams) { + for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { + $GetParam{$Parameter} = $NewParams; + } + } # get errors %Error = ( diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketEmailOutbound.pm otrs2-6.0.5/Kernel/Modules/AgentTicketEmailOutbound.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketEmailOutbound.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketEmailOutbound.pm 2018-02-05 23:46:54.000000000 +0000 @@ -633,6 +633,10 @@ # run compose modules if ( ref( $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') ) eq 'HASH' ) { + + # use ticket QueueID in compose modules + $GetParam{QueueID} = $Ticket{QueueID}; + my %Jobs = %{ $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') }; for my $Job ( sort keys %Jobs ) { @@ -659,7 +663,13 @@ } # run module - $Object->Run( %Data, %GetParam, Config => $Jobs{$Job} ); + my $NewParams = $Object->Run( %Data, %GetParam, Config => $Jobs{$Job} ); + + if ($NewParams) { + for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { + $GetParam{$Parameter} = $NewParams; + } + } # get errors %Error = ( %Error, $Object->Error( %GetParam, Config => $Jobs{$Job} ) ); diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketEmail.pm otrs2-6.0.5/Kernel/Modules/AgentTicketEmail.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketEmail.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketEmail.pm 2018-02-05 23:46:54.000000000 +0000 @@ -738,6 +738,17 @@ 'HASH' ) { + + # Get Queue settings if 'Dest' param was set in the URL. + my %GetParam; + $GetParam{Dest} = $ParamObject->GetParam( Param => 'Dest' ); + + if ( $GetParam{Dest} && $GetParam{Dest} =~ /^(\d{1,100})\|\|.+?$/ ) { + $GetParam{QueueID} = $1; + my %Queue = $QueueObject->GetSystemAddress( QueueID => $GetParam{QueueID} ); + $GetParam{From} = $Queue{Email}; + } + my %Jobs = %{ $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') }; for my $Job ( sort keys %Jobs ) { @@ -752,7 +763,6 @@ ); # get params - my %GetParam; PARAMETER: for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { if ( $Jobs{$Job}->{ParamType} && $Jobs{$Job}->{ParamType} ne 'Single' ) { @@ -764,7 +774,13 @@ } # run module - $Object->Run( %GetParam, Config => $Jobs{$Job} ); + my $NewParams = $Object->Run( %GetParam, Config => $Jobs{$Job} ); + + if ($NewParams) { + for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { + $GetParam{$Parameter} = $NewParams; + } + } } } diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketEmailResend.pm otrs2-6.0.5/Kernel/Modules/AgentTicketEmailResend.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketEmailResend.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketEmailResend.pm 2018-02-05 23:46:54.000000000 +0000 @@ -840,6 +840,9 @@ # Run compose modules. if ( ref $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') eq 'HASH' ) { + # use ticket QueueID in compose modules + $GetParam{QueueID} = $Ticket{QueueID}; + my %Jobs = %{ $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') }; for my $Job ( sort keys %Jobs ) { @@ -860,7 +863,13 @@ } # Run module. - $Object->Run( %GetParam, Config => $Jobs{$Job} ); + my $NewParams = $Object->Run( %GetParam, Config => $Jobs{$Job} ); + + if ($NewParams) { + for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { + $GetParam{$Parameter} = $NewParams; + } + } # Get errors. %Error = ( diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketForward.pm otrs2-6.0.5/Kernel/Modules/AgentTicketForward.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketForward.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketForward.pm 2018-02-05 23:46:54.000000000 +0000 @@ -270,10 +270,6 @@ } } else { - %Data = $ArticleObject->ArticleLastCustomerArticle( - TicketID => $Self->{TicketID}, - DynamicFields => 1, - ); # Get last customer article. my @Articles = $ArticleObject->ArticleList( @@ -491,6 +487,10 @@ # run compose modules if ( ref( $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') ) eq 'HASH' ) { + + # use ticket QueueID in compose modules + $GetParam{QueueID} = $Ticket{QueueID}; + my %Jobs = %{ $ConfigObject->Get('Ticket::Frontend::ArticleComposeModule') }; for my $Job ( sort keys %Jobs ) { @@ -515,7 +515,13 @@ } # run module - $Object->Run( %Data, %GetParam, Config => $Jobs{$Job} ); + my $NewParams = $Object->Run( %Data, %GetParam, Config => $Jobs{$Job} ); + + if ($NewParams) { + for my $Parameter ( $Object->Option( %GetParam, Config => $Jobs{$Job} ) ) { + $GetParam{$Parameter} = $NewParams; + } + } # get errors %Error = ( %Error, $Object->Error( %GetParam, Config => $Jobs{$Job} ) ); diff -Nru otrs2-6.0.4/Kernel/Modules/AgentTicketZoom.pm otrs2-6.0.5/Kernel/Modules/AgentTicketZoom.pm --- otrs2-6.0.4/Kernel/Modules/AgentTicketZoom.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AgentTicketZoom.pm 2018-02-05 23:46:54.000000000 +0000 @@ -54,7 +54,7 @@ && !defined $Self->{ZoomTimeline} ) { - $Self->{ZoomExpand} = $ConfigObject->Get('Ticket::Frontend::ZoomExpand'); + $Self->{ZoomExpand} = $ConfigObject->Get('Ticket::Frontend::AgentZoomExpand'); if ( $UserPreferences{UserLastUsedZoomViewType} ) { if ( $UserPreferences{UserLastUsedZoomViewType} eq 'Expand' ) { $Self->{ZoomExpand} = 1; @@ -89,7 +89,7 @@ $Self->{ZoomTimeline} = 1; } else { - $LastUsedZoomViewType = $ConfigObject->Get('Ticket::Frontend::ZoomExpand') + $LastUsedZoomViewType = $ConfigObject->Get('Ticket::Frontend::AgentZoomExpand') ? 'Expand' : 'Collapse'; } @@ -1479,7 +1479,7 @@ Name => 'FormDraftTable', Data => { FormDrafts => \@FormDrafts, - TicketID => $Param{TicketID}, + TicketID => $Self->{TicketID}, }, ); } @@ -2917,6 +2917,7 @@ # show article actions my @MenuItems = $LayoutObject->ArticleActions( + %Param, TicketID => $Param{Ticket}->{TicketID}, ArticleID => $Param{Article}->{ArticleID}, Type => $Param{Type}, diff -Nru otrs2-6.0.4/Kernel/Modules/AjaxAttachment.pm otrs2-6.0.5/Kernel/Modules/AjaxAttachment.pm --- otrs2-6.0.4/Kernel/Modules/AjaxAttachment.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/AjaxAttachment.pm 2018-02-05 23:46:54.000000000 +0000 @@ -66,17 +66,26 @@ FormID => $Self->{FormID}, ); - # add human readable data size + my @AttachmentData; + + ATTACHMENT: for my $Attachment (@Attachments) { + + # Hide inline attachments from the display. Please see bug#13498 for more information. + next ATTACHMENT if $Attachment->{Disposition} eq 'inline'; + + # Add human readable data size. $Attachment->{HumanReadableDataSize} = $LayoutObject->HumanReadableDataSize( Size => $Attachment->{Filesize}, ); + + push @AttachmentData, $Attachment; } return $LayoutObject->Attachment( ContentType => 'application/json; charset=' . $LayoutObject->{Charset}, Content => $Kernel::OM->Get('Kernel::System::JSON')->Encode( - Data => \@Attachments, + Data => \@AttachmentData, ), Type => 'inline', NoCache => 1, @@ -105,9 +114,20 @@ FormID => $Self->{FormID}, ); + my @AttachmentData; + + ATTACHMENT: + for my $Attachment (@Attachments) { + + # Hide inline attachments from the display. Please see bug#13498 for more information. + next ATTACHMENT if $Attachment->{Disposition} eq 'inline'; + + push @AttachmentData, $Attachment; + } + $Return = { Message => 'Success', - Data => \@Attachments, + Data => \@AttachmentData, }; } } diff -Nru otrs2-6.0.4/Kernel/Modules/CustomerTicketZoom.pm otrs2-6.0.5/Kernel/Modules/CustomerTicketZoom.pm --- otrs2-6.0.4/Kernel/Modules/CustomerTicketZoom.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/CustomerTicketZoom.pm 2018-02-05 23:46:54.000000000 +0000 @@ -1464,7 +1464,7 @@ # get params my $ZoomExpand = $ParamObject->GetParam( Param => 'ZoomExpand' ); if ( !defined $ZoomExpand ) { - $ZoomExpand = $ConfigObject->Get('Ticket::Frontend::ZoomExpand') || ''; + $ZoomExpand = $ConfigObject->Get('Ticket::Frontend::CustomerTicketZoom')->{CustomerZoomExpand} || ''; } # Expand option diff -Nru otrs2-6.0.4/Kernel/Modules/Installer.pm otrs2-6.0.5/Kernel/Modules/Installer.pm --- otrs2-6.0.4/Kernel/Modules/Installer.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/Installer.pm 2018-02-05 23:46:54.000000000 +0000 @@ -928,7 +928,7 @@ # There is no need to unlock the setting as it was already unlocked in the update. # 'Rebuild' the configuration. - my $Success = $SysConfigObject->ConfigurationDeploy( + $SysConfigObject->ConfigurationDeploy( Comments => "Installer deployment", AllSettings => 1, Force => 1, diff -Nru otrs2-6.0.4/Kernel/Modules/PictureUpload.pm otrs2-6.0.5/Kernel/Modules/PictureUpload.pm --- otrs2-6.0.4/Kernel/Modules/PictureUpload.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Modules/PictureUpload.pm 2018-02-05 23:46:54.000000000 +0000 @@ -94,7 +94,7 @@ } # return error if file is not possible to show inline - if ( $File{Filename} !~ /\.(png|gif|jpg|jpeg)$/i ) { + if ( $File{Filename} !~ /\.(png|gif|jpg|jpeg|bmp)$/i ) { $LayoutObject->Block( Name => 'ErrorNoImageFile', Data => { diff -Nru otrs2-6.0.4/Kernel/Output/HTML/ArticleCompose/Security.pm otrs2-6.0.5/Kernel/Output/HTML/ArticleCompose/Security.pm --- otrs2-6.0.4/Kernel/Output/HTML/ArticleCompose/Security.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/ArticleCompose/Security.pm 2018-02-05 23:46:54.000000000 +0000 @@ -20,6 +20,7 @@ 'Kernel::Config', 'Kernel::System::Crypt::PGP', 'Kernel::System::Crypt::SMIME', + 'Kernel::System::Queue', 'Kernel::Output::HTML::Layout', ); @@ -46,6 +47,21 @@ my %OptionsList = $Self->Data(%Param); + if ( !$Param{EmailSecurityOptions} && $Param{QueueID} ) { + + # Get default signing key from queue data. + my %Queue = $Kernel::OM->Get('Kernel::System::Queue')->QueueGet( ID => $Param{QueueID} ); + + # Check if queue has a default signature, in such case check its backend and preselect + # email signing security option. + if ( $Queue{DefaultSignKey} && $Queue{DefaultSignKey} =~ m{\A SMIME}msxi ) { + $Param{EmailSecurityOptions} = 'SMIME::Sign::-'; + } + elsif ( $Queue{DefaultSignKey} && $Queue{DefaultSignKey} =~ m{\A PGP}msxi ) { + $Param{EmailSecurityOptions} = 'PGP::Sign::-'; + } + } + # get layout object my $LayoutObject = $Kernel::OM->Get('Kernel::Output::HTML::Layout'); @@ -78,7 +94,11 @@ }, ); - return; + # Normal return if no EmailSecurityOptions was set. + return if !$Param{EmailSecurityOptions}; + + # Return EmailSecurityOptions to cascade into other ArticleCompose modules. + return $Param{EmailSecurityOptions}; } sub Data { @@ -151,6 +171,41 @@ return; } +sub GetParamAJAX { + my ( $Self, %Param ) = @_; + + # Get config object. + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + + # Check if PGP and SMIME are disabled + return if !$ConfigObject->Get('PGP') && !$ConfigObject->Get('SMIME'); + + return if !$Param{QueueID}; + + my $EmailSecurityOptions = $Param{EmailSecurityOptions} || ''; + + # Get default signing key from queue data. + my %Queue = $Kernel::OM->Get('Kernel::System::Queue')->QueueGet( ID => $Param{QueueID} ); + + if ( !$Queue{DefaultSignKey} || $EmailSecurityOptions ) { + return ( + EmailSecurityOptions => $EmailSecurityOptions, + ); + } + + # Check if queue has a default signature, in such case check its backend and preselect + # email signing security option. + if ( $Queue{DefaultSignKey} =~ m{\A SMIME}msxi ) { + $EmailSecurityOptions = 'SMIME::Sign::-'; + } + elsif ( $Queue{DefaultSignKey} =~ m{\A PGP}msxi ) { + $EmailSecurityOptions = 'PGP::Sign::-'; + } + return ( + EmailSecurityOptions => $EmailSecurityOptions, + ); +} + sub Error { my ( $Self, %Param ) = @_; diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Layout/Ticket.pm otrs2-6.0.5/Kernel/Output/HTML/Layout/Ticket.pm --- otrs2-6.0.4/Kernel/Output/HTML/Layout/Ticket.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Layout/Ticket.pm 2018-02-05 23:46:54.000000000 +0000 @@ -792,6 +792,7 @@ Translation => 0, Data => \%Data, Sort => 'NumericValue', + Class => 'Modernize', ); # nav bar at the beginning of a overview diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Layout.pm otrs2-6.0.5/Kernel/Output/HTML/Layout.pm --- otrs2-6.0.4/Kernel/Output/HTML/Layout.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Layout.pm 2018-02-05 23:46:54.000000000 +0000 @@ -756,7 +756,10 @@ for my $CSSStatement ( sort keys %AgentLoginLogo ) { if ( $CSSStatement eq 'URL' ) { - my $WebPath = $ConfigObject->Get('Frontend::WebPath'); + my $WebPath = ''; + if ( $AgentLoginLogo{$CSSStatement} !~ /(http|ftp|https):\//i ) { + $WebPath = $ConfigObject->Get('Frontend::WebPath'); + } $Data{'URL'} = 'url(' . $WebPath . $AgentLoginLogo{$CSSStatement} . ')'; } else { diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm otrs2-6.0.5/Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm --- otrs2-6.0.4/Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Notification/CustomerSystemMaintenanceCheck.pm 2018-02-05 23:46:54.000000000 +0000 @@ -13,8 +13,6 @@ use strict; use warnings; -use Kernel::Language qw(Translatable); - our @ObjectDependencies = ( 'Kernel::System::DateTime', 'Kernel::System::SystemMaintenance', @@ -42,7 +40,7 @@ my $NotifyMessage = $SystemMaintenanceData->{NotifyMessage} || $Kernel::OM->Get('Kernel::Config')->Get('SystemMaintenance::IsActiveDefaultNotification') - || Translatable('System maintenance is active!'); + || $LayoutObject->{LanguageObject}->Translate('System maintenance is active!'); return $LayoutObject->Notify( Priority => 'Notice', @@ -53,23 +51,41 @@ ); } - my $SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); + my %SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); + + if (%SystemMaintenanceIsComing) { - if ($SystemMaintenanceIsComing) { + my $MaintenanceStartDateTimeObject = $Kernel::OM->Create( + 'Kernel::System::DateTime', + ObjectParams => { + Epoch => $SystemMaintenanceIsComing{StartDate}, + }, + ); + my $MaintenanceStartDateTime = $LayoutObject->{LanguageObject}->FormatTimeString( + $MaintenanceStartDateTimeObject->ToString(), + 'DateFormat', + 1, + ); - my $MaintenanceDateTimeObject = $Kernel::OM->Create( + my $MaintenanceStopDateTimeObject = $Kernel::OM->Create( 'Kernel::System::DateTime', ObjectParams => { - Epoch => $SystemMaintenanceIsComing, + Epoch => $SystemMaintenanceIsComing{StopDate}, }, ); + my $MaintenanceStopDateTime = $LayoutObject->{LanguageObject}->FormatTimeString( + $MaintenanceStopDateTimeObject->ToString(), + 'DateFormat', + 1, + ); + return $LayoutObject->Notify( Priority => 'Notice', Data => $LayoutObject->{LanguageObject}->Translate( - "A system maintenance period will start at: " - ) - . $MaintenanceDateTimeObject ? $MaintenanceDateTimeObject->ToString() : '', + "A system maintenance period will start at: %s and is expected to stop at: %s", + $MaintenanceStartDateTime, $MaintenanceStopDateTime + ), ); } diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm otrs2-6.0.5/Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm --- otrs2-6.0.4/Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Notification/SystemMaintenanceCheck.pm 2018-02-05 23:46:54.000000000 +0000 @@ -42,7 +42,7 @@ my $NotifyMessage = $SystemMaintenanceData->{NotifyMessage} || $Kernel::OM->Get('Kernel::Config')->Get('SystemMaintenance::IsActiveDefaultNotification') - || "System maintenance is active!"; + || $LayoutObject->{LanguageObject}->Translate("System maintenance is active!"); return $LayoutObject->Notify( Priority => 'Notice', @@ -53,23 +53,41 @@ ); } - my $SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); + my %SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); - if ($SystemMaintenanceIsComing) { + if (%SystemMaintenanceIsComing) { - my $MaintenanceDateTimeObject = $Kernel::OM->Create( + my $MaintenanceStartDateTimeObject = $Kernel::OM->Create( 'Kernel::System::DateTime', ObjectParams => { - Epoch => $SystemMaintenanceIsComing, + Epoch => $SystemMaintenanceIsComing{StartDate}, }, ); + my $MaintenanceStartDateTime = $LayoutObject->{LanguageObject}->FormatTimeString( + $MaintenanceStartDateTimeObject->ToString(), + 'DateFormat', + 1, + ); + + my $MaintenanceStopDateTimeObject = $Kernel::OM->Create( + 'Kernel::System::DateTime', + ObjectParams => { + Epoch => $SystemMaintenanceIsComing{StopDate}, + }, + ); + my $MaintenanceStopDateTime = $LayoutObject->{LanguageObject}->FormatTimeString( + $MaintenanceStopDateTimeObject->ToString(), + 'DateFormat', + 1, + ); + return $LayoutObject->Notify( Priority => 'Notice', Data => $LayoutObject->{LanguageObject}->Translate( - "A system maintenance period will start at: " - ) - . $MaintenanceDateTimeObject ? $MaintenanceDateTimeObject->ToString() : '', + "A system maintenance period will start at: %s and is expected to stop at: %s", + $MaintenanceStartDateTime, $MaintenanceStopDateTime + ), ); } diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt --- otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/AdminUserGroup.tt 2018-02-05 23:46:54.000000000 +0000 @@ -106,7 +106,7 @@ [% RenderBlockEnd("Overview") %] [% RenderBlockStart("Change") %]
-

[% Translate("Manage Agent-Group Relations") | html %]

+

[% Translate("Manage Agent-Group Relations") | html %]

[% USE EditTitle = String(Data.BreadcrumbTitle) %] diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt --- otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/AgentPreferencesOverview.tt 2018-02-05 23:46:54.000000000 +0000 @@ -25,9 +25,9 @@

[% Translate("Preferences") | html %]

- [% IF Data.CurrentUserIDNotice %] + [% IF Data.EditingAnotherAgent %]
-

[% Translate("Warning! You're currently not editing your own preferences, but those of %s.", Data.CurrentUserFullname) | html %]

+

[% Translate("Please note: you're currently editing the preferences of %s.", Data.CurrentUserFullname) | html %]

  • @@ -42,7 +42,7 @@
- [% IF !Data.CurrentUserIDNotice && Config("Frontend::AvatarEngine") == 'Gravatar' %] + [% IF !Data.EditingAnotherAgent && Config("Frontend::AvatarEngine") == 'Gravatar' %]
- [% IF Data.CurrentUserIDNotice %] + [% IF Data.EditingAnotherAgent %]
-

[% Translate("Warning! You're currently not editing your own preferences, but those of %s.", Data.CurrentUserFullname) | html %]

+

[% Translate("Please note: you're currently editing the preferences of %s.", Data.CurrentUserFullname) | html %]

  • diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt --- otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/CustomerPreferences.tt 2018-02-05 23:46:54.000000000 +0000 @@ -54,7 +54,7 @@ [% RenderBlockStart("Password") %]
    - +
    [% RenderBlockEnd("Password") %] diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt --- otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/FormElements/AttachmentList.tt 2018-02-05 23:46:54.000000000 +0000 @@ -50,7 +50,7 @@ [% Data.ContentType | html %] [% Data.Filesize | Localize('Filesize') | html %] -
    + diff -Nru otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/Installer.tt otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/Installer.tt --- otrs2-6.0.4/Kernel/Output/HTML/Templates/Standard/Installer.tt 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/Templates/Standard/Installer.tt 2018-02-05 23:46:54.000000000 +0000 @@ -103,11 +103,11 @@
    -

    Malaysia

    -

    OTRS Solution Shd. Bdn.

    -

    No 17-1B, Jalan Puteri 2/7, Bandar Puteri, 47100 Puchong

    -

    Selangor

    -

    [% Translate("Phone") | html %]: +603 2725 8088

    +

    Singapore

    +

    OTRS ASIA Pte. Ltd.

    +

    7 Temasek Blvd#44-01, The Penthouse, Suntec Tower One

    +

    Singapore 038987

    +

    [% Translate("Phone") | html %]: +65 6430 6756

    Hong Kong

    diff -Nru otrs2-6.0.4/Kernel/Output/HTML/TicketZoom/TicketInformation.pm otrs2-6.0.5/Kernel/Output/HTML/TicketZoom/TicketInformation.pm --- otrs2-6.0.4/Kernel/Output/HTML/TicketZoom/TicketInformation.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/HTML/TicketZoom/TicketInformation.pm 2018-02-05 23:46:54.000000000 +0000 @@ -381,6 +381,18 @@ next DYNAMICFIELD if !defined $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} }; next DYNAMICFIELD if $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} } eq ''; + # Check if this field is supposed to be hidden from the ticket information box. + # For example, it's displayed by a different mechanism (i.e. async widget). + if ( + $DynamicFieldBeckendObject->HasBehavior( + DynamicFieldConfig => $DynamicFieldConfig, + Behavior => 'IsHiddenInTicketInformation', + ) + ) + { + next DYNAMICFIELD; + } + # use translation here to be able to reduce the character length in the template my $Label = $LayoutObject->{LanguageObject}->Translate( $DynamicFieldConfig->{Label} ); diff -Nru otrs2-6.0.4/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl otrs2-6.0.5/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl --- otrs2-6.0.4/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/AttachmentItemUploading.html.tmpl 2018-02-05 23:46:54.000000000 +0000 @@ -13,6 +13,6 @@ - + diff -Nru otrs2-6.0.4/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl otrs2-6.0.5/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl --- otrs2-6.0.4/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/Output/JavaScript/Templates/Standard/AjaxDnDUpload/UploadContainer.html.tmpl 2018-02-05 23:46:54.000000000 +0000 @@ -6,7 +6,7 @@ # did not receive this file, see http://www.gnu.org/licenses/agpl.txt. # -- -
    +
    diff -Nru otrs2-6.0.4/Kernel/System/Console/Command/Admin/Config/Update.pm otrs2-6.0.5/Kernel/System/Console/Command/Admin/Config/Update.pm --- otrs2-6.0.4/Kernel/System/Console/Command/Admin/Config/Update.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Console/Command/Admin/Config/Update.pm 2018-02-05 23:46:54.000000000 +0000 @@ -167,14 +167,14 @@ return $Self->ExitCodeOk(); } - $Success = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "Admin::Config::Update $SettingName", UserID => 1, Force => 1, DirtySettings => [$SettingName], ); - if ( !$Success ) { + if ( !$DeploymentResult{Success} ) { $Self->PrintError("Deployment failed!\n"); return $Self->ExitCodeError(); } diff -Nru otrs2-6.0.4/Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm otrs2-6.0.5/Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm --- otrs2-6.0.4/Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm 2018-01-08 23:52:13.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Console/Command/Admin/Package/UpgradeAll.pm 2018-02-05 23:46:54.000000000 +0000 @@ -144,6 +144,7 @@ if ( !IsHashRefWithData( $Result{Updated} ) && !IsHashRefWithData( $Result{Installed} ) + && !IsHashRefWithData( $Result{Undeployed} ) && !IsHashRefWithData( $Result{Failed} ) ) { @@ -155,14 +156,15 @@ my %SuccessMessages = ( Updated => 'updated', Installed => 'installed', - AlreadyUpdated => 'already up-to-date' + AlreadyUpdated => 'already up-to-date', + Undeployed => 'already up-to-date but not deployed correctly', ); - for my $ResultPart (qw(AlreadyUpdated Updated Installed)) { + for my $ResultPart (qw(AlreadyUpdated Undeployed Updated Installed)) { if ( IsHashRefWithData( $Result{$ResultPart} ) ) { $Self->Print( ' The following packages were ' . $SuccessMessages{$ResultPart} . "...\n" ); my $Color = 'green'; - if ( $ResultPart eq 'Installed' ) { + if ( $ResultPart eq 'Installed' || $ResultPart eq 'Undeployed' ) { $Color = 'yellow'; } for my $PackageName ( sort keys %{ $Result{$ResultPart} } ) { @@ -197,6 +199,13 @@ return $Self->ExitCodeError(); } + if ( IsHashRefWithData( $Result{Undeployed} ) ) { + my $Message = "\nPlease reinstall not correctly deployed packages using" + . " Admin::Package::Reinstall" + . " or Admin::Package::ReinstallAll console commands.\n"; + $Self->Print($Message); + } + $Self->Print("\nDone.\n"); return $Self->ExitCodeOk(); } diff -Nru otrs2-6.0.4/Kernel/System/Console/Command/Maint/Config/Rebuild.pm otrs2-6.0.5/Kernel/System/Console/Command/Maint/Config/Rebuild.pm --- otrs2-6.0.4/Kernel/System/Console/Command/Maint/Config/Rebuild.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Console/Command/Maint/Config/Rebuild.pm 2018-02-05 23:46:54.000000000 +0000 @@ -66,13 +66,13 @@ return $Self->ExitCodeError(); } - my $DeploySuccess = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "Configuration Rebuild", AllSettings => 1, UserID => 1, Force => 1, ); - if ( !$DeploySuccess ) { + if ( !$DeploymentResult{Success} ) { # Disable in memory cache. $CacheObject->Configure( diff -Nru otrs2-6.0.4/Kernel/System/Console/Command/Maint/Database/Check.pm otrs2-6.0.5/Kernel/System/Console/Command/Maint/Database/Check.pm --- otrs2-6.0.4/Kernel/System/Console/Command/Maint/Database/Check.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Console/Command/Maint/Database/Check.pm 2018-02-05 23:46:54.000000000 +0000 @@ -14,6 +14,8 @@ use parent qw(Kernel::System::Console::BaseCommand); our @ObjectDependencies = ( + 'Kernel::Config', + 'Kernel::System::Cache', 'Kernel::System::DB', ); @@ -21,13 +23,20 @@ my ( $Self, %Param ) = @_; $Self->Description('Check OTRS database connectivity.'); - + $Self->AddOption( + Name => 'repair', + Description => 'Repairs invalid database schema (like deleting invalid default values for datetime fields).', + Required => 0, + HasValue => 0, + ); return; } sub Run { my ( $Self, %Param ) = @_; + $Param{Options}->{Repair} = $Self->GetOption('repair'); + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); # print database information @@ -36,69 +45,335 @@ $Self->Print("Trying to connect to database '$DatabaseDSN' with user '$DatabaseUser'...\n"); - # check database state - if ($DBObject) { - $DBObject->Prepare( SQL => "SELECT * FROM valid" ); - my $Check = 0; + # Check for database state error. + if ( !$DBObject ) { + $Self->PrintError('Connection failed.'); + return $Self->ExitCodeError(); + } + + # Try to get some data from the database. + $DBObject->Prepare( SQL => "SELECT * FROM valid" ); + my $Check = 0; + while ( my @Row = $DBObject->FetchrowArray() ) { + $Check++; + } + if ( !$Check ) { + $Self->PrintError("Connection was successful, but database content is missing."); + return $Self->ExitCodeError(); + } + $Self->Print("Connection successful.\n"); + + if ( $DBObject->{'DB::Type'} eq 'mysql' ) { + $Self->_CheckMySQLDefaultStorageEngine(%Param); + $Self->_CheckMySQLInvalidDefaultValues(%Param); + } + elsif ( $DBObject->{'DB::Type'} eq 'postgresql' ) { + $Self->_CheckPostgresPrimaryKeySequences(%Param); + } + elsif ( $DBObject->{'DB::Type'} eq 'oracle' ) { + $Self->_CheckOraclePrimaryKeySequencesAndTrigers(%Param); + } + + return $Self->ExitCodeOk(); +} + +sub _CheckMySQLDefaultStorageEngine { + my ( $Self, %Param ) = @_; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + # Only for MySQL. + return 1 if $DBObject->{'DB::Type'} ne 'mysql'; + + # Check for common MySQL issue where default storage engine is different + # from initial OTRS table; this can happen when MySQL is upgraded from + # 5.1 > 5.5. + # Default storage engine variable has changed its name in MySQL 5.5.3, we need to support both of them for now. + # <= 5.5.2 storage_engine + # >= 5.5.3 default_storage_engine + my $StorageEngine; + $DBObject->Prepare( + SQL => "SHOW VARIABLES WHERE variable_name = 'storage_engine'", + ); + while ( my @Row = $DBObject->FetchrowArray() ) { + $StorageEngine = $Row[1]; + } + + if ( !$StorageEngine ) { + $DBObject->Prepare( + SQL => "SHOW VARIABLES WHERE variable_name = 'default_storage_engine'", + ); while ( my @Row = $DBObject->FetchrowArray() ) { - $Check++; + $StorageEngine = $Row[1]; } - if ( !$Check ) { - $Self->PrintError("Connection was successful, but database content is missing."); - return $Self->ExitCodeError(); + } + + $DBObject->Prepare( + SQL => "SHOW TABLE STATUS WHERE engine != ?", + Bind => [ \$StorageEngine ], + ); + my @Tables; + while ( my @Row = $DBObject->FetchrowArray() ) { + push @Tables, $Row[0]; + } + if (@Tables) { + my $Error = "Your storage engine is $StorageEngine.\n"; + $Error .= "These tables use a different storage engine:\n\n"; + $Error .= join( "\n", sort @Tables ); + $Error .= "\n\n *** Please correct these problems! *** \n\n"; + + $Self->PrintError($Error); + return $Self->ExitCodeError(); + } + + return 1; +} + +sub _CheckMySQLInvalidDefaultValues { + my ( $Self, %Param ) = @_; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + # Only for MySQL. + return 1 if $DBObject->{'DB::Type'} ne 'mysql'; + + my $DatabaseName = $Kernel::OM->Get('Kernel::Config')->Get('Database'); + + # Check for datetime fields with invalid default values + # (default values with a date of "0000-00-00 00:00:00"). + $DBObject->Prepare( + SQL => ' + SELECT TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.COLUMNS + WHERE table_schema = ? + AND DATA_TYPE = "datetime" + AND COLUMN_DEFAULT = "0000-00-00 00:00:00" + ', + Bind => [ \$DatabaseName ], + ); + + # Collect all tables, their columns and default values like described above. + my %TablesWithWrongDefaultColumns; + while ( my @Row = $DBObject->FetchrowArray() ) { + my $Table = $Row[0]; + my $Column = $Row[1]; + my $Default = $Row[2]; + $TablesWithWrongDefaultColumns{$Table}->{$Column} = $Default; + } + + # Everything was ok. + return 1 if !%TablesWithWrongDefaultColumns; + + # Only if something wrong was found. + my $Error = "Your database contains tables with some wrong default values."; + + # Show different error message depending on repair mode. + if ( $Param{Options}->{Repair} ) { + $Error .= "\nRepairing now ...\n"; + } + else { + $Error + .= "\n\n *** Please correct these problems manually with the following SQL statements or use 'otrs.Console.pl $Self->{Name} --repair'. *** \n\n"; + } + + my @SQLRepairStatements; + + TABLE: + for my $Table ( sort keys %TablesWithWrongDefaultColumns ) { + + my @AlterColumnsSQL; + + for my $Column ( sort keys %{ $TablesWithWrongDefaultColumns{$Table} } ) { + + my $Default = $TablesWithWrongDefaultColumns{$Table}->{$Column}; + + push @AlterColumnsSQL, "ALTER COLUMN $Column DROP DEFAULT"; + } + + next TABLE if !@AlterColumnsSQL; + + my $SQL = "ALTER TABLE $Table "; + $SQL .= join ', ', @AlterColumnsSQL; + push @SQLRepairStatements, $SQL; + } + + # Show the SQL statements to the user for manually repair. + if ( !$Param{Options}->{Repair} ) { + $Error .= join ";\n", @SQLRepairStatements; + $Error .= ";\n\n"; + } + + if ( $Param{Options}->{Repair} ) { + $Error = "$Error\n"; + $Self->Print($Error); + } + else { + $Self->PrintError($Error); + } + + # Repair the default values. + if ( $Param{Options}->{Repair} ) { + for my $SQL (@SQLRepairStatements) { + return if !$DBObject->Do( SQL => $SQL ); } - $Self->Print("Connection successful.\n"); + # Clean up the support data collector cache. + $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( + Type => 'SupportDataCollector', + ); + + $Self->Print("Done.\n"); + } + + return 1; +} + +sub _CheckPostgresPrimaryKeySequences { + my ( $Self, %Param ) = @_; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + # Only for Postgres. + return 1 if $DBObject->{'DB::Type'} ne 'postgresql'; + + # Get all table names + my @Tables = $DBObject->ListTables(); - # check for common MySQL issue where default storage engine is different - # from initial OTRS table; this can happen when MySQL is upgraded from - # 5.1 > 5.5. - if ( $DBObject->{'DB::Type'} eq 'mysql' ) { - - # Default storage engine variable has changed its name in MySQL 5.5.3, we need to support both of them for now. - # <= 5.5.2 storage_engine - # >= 5.5.3 default_storage_engine - my $StorageEngine; - $DBObject->Prepare( - SQL => "SHOW VARIABLES WHERE variable_name = 'storage_engine'", - ); - while ( my @Row = $DBObject->FetchrowArray() ) { - $StorageEngine = $Row[1]; - } - - if ( !$StorageEngine ) { - $DBObject->Prepare( - SQL => "SHOW VARIABLES WHERE variable_name = 'default_storage_engine'", - ); - while ( my @Row = $DBObject->FetchrowArray() ) { - $StorageEngine = $Row[1]; - } - } - - $DBObject->Prepare( - SQL => "SHOW TABLE STATUS WHERE engine != ?", - Bind => [ \$StorageEngine ], - ); - my @Tables; - while ( my @Row = $DBObject->FetchrowArray() ) { - push @Tables, $Row[0]; - } - if (@Tables) { - my $Error = "Your storage engine is $StorageEngine.\n"; - $Error .= "These tables use a different storage engine:\n\n"; - $Error .= join( "\n", sort @Tables ); - $Error .= "\n\n *** Please correct these problems! *** \n\n"; - - $Self->PrintError($Error); - return $Self->ExitCodeError(); - } + my %SequenceNameFromTableName; + for my $TableName (@Tables) { + + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); + + # Special handling for a table with no id column but with a object_id column. + if ( $TableName eq 'dynamic_field_obj_id_name' ) { + $Sequence = 'dynamic_field_obj_id_name_object_id_seq'; } - return $Self->ExitCodeOk(); + # Convert to lower case. + $Sequence = lc $Sequence; + + $SequenceNameFromTableName{$Sequence} = 1; + } + + # Get all sequence names. + $DBObject->Prepare( + SQL => "SELECT relname FROM pg_class WHERE relkind = 'S'", + ); + + my @SequenceNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + push @SequenceNames, lc $Row[0]; + } + + my @WrongSequenceNames; + SEQUENCE: + for my $SequenceName (@SequenceNames) { + + next SEQUENCE if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong sequence name. + push @WrongSequenceNames, $SequenceName; + } + + # Show error message. + if (@WrongSequenceNames) { + my $Error = "The following sequences with possible wrong names have been found. Please rename them manually.\n" + . join "\n", @WrongSequenceNames; + $Self->PrintError($Error); + } + + return 1; +} + +sub _CheckOraclePrimaryKeySequencesAndTrigers { + my ( $Self, %Param ) = @_; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + # Only for Oracle. + return 1 if $DBObject->{'DB::Type'} ne 'oracle'; + + # Get all table names. + my @Tables = $DBObject->ListTables(); + + my %SequenceNameFromTableName; + for my $TableName (@Tables) { + + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); + + # Convert to lower case. + $Sequence = lc $Sequence; + + $SequenceNameFromTableName{$Sequence} = 1; + } + + # Get all sequence names. + $DBObject->Prepare( + SQL => 'SELECT sequence_name FROM user_sequences', + ); + + my @SequenceNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + + # Convert to lower case. + push @SequenceNames, lc $Row[0]; + } + + my @WrongSequenceNames; + SEQUENCE: + for my $SequenceName (@SequenceNames) { + + next SEQUENCE if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong sequence name. + push @WrongSequenceNames, $SequenceName; + } + + # Get all trigger names. + $DBObject->Prepare( + SQL => 'SELECT trigger_name FROM user_triggers', + ); + + my @TriggerNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + + # Convert to lower case. + push @TriggerNames, lc $Row[0]; + } + + my @WrongTriggerNames; + TRIGGER: + for my $TriggerName (@TriggerNames) { + + my $SequenceName = $TriggerName; + + # Remove the last part of the sequence name. + $SequenceName =~ s{ _t \z }{}xms; + + next TRIGGER if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong trigger name. + push @WrongTriggerNames, $TriggerName; + } + + # Show error messages. + my $Error; + if (@WrongSequenceNames) { + $Error = "The following sequences with possible wrong names have been found. Please rename them manually.\n" + . join "\n", @WrongSequenceNames; + $Self->PrintError($Error); + } + if (@WrongTriggerNames) { + $Error = "The following triggers with possible wrong names have been found. Please rename them manually.\n" + . join "\n", @WrongTriggerNames; + $Self->PrintError($Error); } - $Self->PrintError('Connection failed.'); - return $Self->ExitCodeError(); + return 1; } 1; diff -Nru otrs2-6.0.4/Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm otrs2-6.0.5/Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm --- otrs2-6.0.4/Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Console/Command/Maint/PostMaster/MailAccountFetch.pm 2018-02-05 23:46:54.000000000 +0000 @@ -65,7 +65,7 @@ my $PIDObject = $Kernel::OM->Get('Kernel::System::PID'); my $PIDCreated = $PIDObject->PIDCreate( - Name => $Self->Name(), + Name => 'MailAccountFetch', Force => $Self->GetOption('force-pid'), TTL => 600, # 10 minutes ); @@ -263,7 +263,7 @@ ); } - return $Kernel::OM->Get('Kernel::System::PID')->PIDDelete( Name => $Self->Name() ); + return $Kernel::OM->Get('Kernel::System::PID')->PIDDelete( Name => 'MailAccountFetch' ); } 1; diff -Nru otrs2-6.0.4/Kernel/System/DB/postgresql.pm otrs2-6.0.5/Kernel/System/DB/postgresql.pm --- otrs2-6.0.4/Kernel/System/DB/postgresql.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/DB/postgresql.pm 2018-02-05 23:46:54.000000000 +0000 @@ -81,7 +81,7 @@ $Self->{'DB::ShellConnect'} = 'SET standard_conforming_strings TO ON'; # init sql setting on db connect - $Self->{'DB::Connect'} = "SET standard_conforming_strings TO ON;\n SET NAMES 'utf8';"; + $Self->{'DB::Connect'} = "SET standard_conforming_strings TO ON;\n SET datestyle TO 'iso';\n SET NAMES 'utf8';"; return 1; } diff -Nru otrs2-6.0.4/Kernel/System/HTMLUtils.pm otrs2-6.0.5/Kernel/System/HTMLUtils.pm --- otrs2-6.0.4/Kernel/System/HTMLUtils.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/HTMLUtils.pm 2018-02-05 23:46:54.000000000 +0000 @@ -1186,7 +1186,7 @@ } while ($Replaced); ## no critic # check ref && return result like called - if ($StringScalar) { + if ( defined $StringScalar ) { $Safety{String} = ${$String}; } else { diff -Nru otrs2-6.0.4/Kernel/System/Main.pm otrs2-6.0.5/Kernel/System/Main.pm --- otrs2-6.0.4/Kernel/System/Main.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Main.pm 2018-02-05 23:46:54.000000000 +0000 @@ -911,10 +911,12 @@ my @Results; for my $Filename (@GlobResults) { - # first convert filename to utf-8 if utf-8 is used internally + # First convert filename to utf-8, with additional Check parameter + # to replace possible malformed characters and prevent further errors. $Filename = $EncodeObject->Convert2CharsetInternal( - Text => $Filename, - From => 'utf-8', + Text => $Filename, + From => 'utf-8', + Check => 1, ); push @Results, $Filename; diff -Nru otrs2-6.0.4/Kernel/System/Package.pm otrs2-6.0.5/Kernel/System/Package.pm --- otrs2-6.0.4/Kernel/System/Package.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Package.pm 2018-02-05 23:46:54.000000000 +0000 @@ -458,12 +458,7 @@ my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); # cleanup cache - $CacheObject->CleanUp( - Type => 'RepositoryList', - ); - $CacheObject->CleanUp( - Type => 'RepositoryGet', - ); + $Self->_RepositoryCacheClear(); return 1; } @@ -492,6 +487,10 @@ return; } + # Cleanup the repository cache before the package installation to have the current state + # during the installation. + $Self->_RepositoryCacheClear(); + # get from cloud flag my $FromCloud = $Param{FromCloud} || 0; @@ -682,6 +681,10 @@ return; } + # Cleanup the repository cache before the package reinstallation to have the current state + # during the reinstallation. + $Self->_RepositoryCacheClear(); + # parse source file my %Structure = $Self->PackageParse(%Param); @@ -786,6 +789,10 @@ return; } + # Cleanup the repository cache before the package upgrade to have the current state + # during the upgrade. + $Self->_RepositoryCacheClear(); + # conflict check my %Structure = $Self->PackageParse(%Param); @@ -1208,6 +1215,10 @@ return; } + # Cleanup the repository cache before the package uninstallation to have the current state + # during the uninstallation. + $Self->_RepositoryCacheClear(); + # parse source file my %Structure = $Self->PackageParse(%Param); @@ -3032,7 +3043,9 @@ is entitled and there is an update. my %Result = $PackageObject->PackageUpgradeAll( - Force => 1, # optional 1 or 0, Upgrades packages even if validation fails. + Force => 1, # optional 1 or 0, Upgrades packages even if validation fails. + SkipDeployCheck => 1, # optional 1 or 0, If active it does not check file deployment status + # for already updated packages. ); %Result = ( @@ -3048,6 +3061,11 @@ }, AlreadyInstalled { # packages that are already installed with the latest version PackageE => 1, + # ... + } + Undeployed { # packages not correctly deployed + PackageK => 1, + # ... } Failed => { # or {} if no failures Cyclic => { # packages with cyclic dependencies @@ -3154,6 +3172,7 @@ my %Installed; my %Updated; my %AlreadyUpdated; + my %Undeployed; my %InstalledVersions = map { $_->{Name} => $_->{Version} } @PackageInstalledList; @@ -3177,6 +3196,21 @@ next PACKAGENAME if !$MetaPackage; if ( $MetaPackage->{Version} eq ( $InstalledVersions{$PackageName} || '' ) ) { + + if ( $Param{SkipDeployCheck} ) { + $AlreadyUpdated{$PackageName} = 1; + next PACKAGENAME; + } + + my $CheckSuccess = $Self->DeployCheck( + Name => $PackageName, + Version => $MetaPackage->{Version}, + Log => 0 + ); + if ( !$CheckSuccess ) { + $Undeployed{$PackageName} = 1; + next PACKAGENAME; + } $AlreadyUpdated{$PackageName} = 1; next PACKAGENAME; } @@ -3219,6 +3253,7 @@ Updated => \%Updated, Installed => \%Installed, AlreadyUpdated => \%AlreadyUpdated, + Undeployed => \%Undeployed, Failed => \%Failed, }, ); @@ -3250,6 +3285,7 @@ Updated => \%Updated, Installed => \%Installed, AlreadyUpdated => \%AlreadyUpdated, + Undeployed => \%Undeployed, Failed => \%Failed, ); } @@ -5216,6 +5252,29 @@ return %RepositoryList; } +=head2 _RepositoryCacheClear() + +Remove all caches related to the package repository. + + my $Success = $PackageObject->_RepositoryCacheClear(); + +=cut + +sub _RepositoryCacheClear { + my ( $Self, %Param ) = @_; + + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + $CacheObject->CleanUp( + Type => 'RepositoryList', + ); + $CacheObject->CleanUp( + Type => 'RepositoryGet', + ); + + return 1; +} + sub DESTROY { my $Self = shift; diff -Nru otrs2-6.0.4/Kernel/System/PostMaster/Filter/DetectBounceEmail.pm otrs2-6.0.5/Kernel/System/PostMaster/Filter/DetectBounceEmail.pm --- otrs2-6.0.4/Kernel/System/PostMaster/Filter/DetectBounceEmail.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/PostMaster/Filter/DetectBounceEmail.pm 2018-02-05 23:46:54.000000000 +0000 @@ -51,8 +51,11 @@ return 1 if !$BounceMessage; - my $BounceData = Sisimai::Data->make( data => $BounceMessage )->[0]; - my $MessageID = $BounceData->messageid(); + my $BounceData = Sisimai::Data->make( data => $BounceMessage ); + + return 1 if !$BounceData || !@{$BounceData}; + + my $MessageID = $BounceData->[0]->messageid(); return 1 if !$MessageID; diff -Nru otrs2-6.0.4/Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm otrs2-6.0.5/Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm --- otrs2-6.0.4/Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/ProcessManagement/TransitionAction/TicketCreate.pm 2018-02-05 23:46:54.000000000 +0000 @@ -35,7 +35,7 @@ =head1 DESCRIPTION -All TicketArticleCreate functions. +All TicketCreate functions. =head1 PUBLIC INTERFACE @@ -61,7 +61,7 @@ Run Data - my $TicketArticleCreateResult = $TicketArticleCreateActionObject->Run( + my $TicketCreateResult = $TicketCreateActionObject->Run( UserID => 123, Ticket => \%Ticket, # required ProcessEntityID => 'P123', diff -Nru otrs2-6.0.4/Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm otrs2-6.0.5/Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm --- otrs2-6.0.4/Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Queue/Event/TicketAcceleratorUpdate.pm 2018-02-05 23:46:54.000000000 +0000 @@ -14,7 +14,7 @@ our @ObjectDependencies = ( 'Kernel::Config', 'Kernel::System::Log', - 'Kernel::System::Ticket', + 'Kernel::System::Ticket::IndexAccelerator::StaticDB', ); sub new { @@ -42,9 +42,9 @@ } } - # only run for StaticDB - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - return 1 if ( !$TicketObject->isa('Kernel::System::Ticket::IndexAccelerator::StaticDB') ); + # Only run for StaticDB IndexModule. + my $IndexModule = $Kernel::OM->Get('Kernel::Config')->Get('Ticket::IndexModule'); + return 1 if $IndexModule ne 'Kernel::System::Ticket::IndexAccelerator::StaticDB'; # only run if we have the correct data for my $Needed (qw(Queue OldQueue)) { @@ -62,7 +62,7 @@ return 1 if $Param{Data}->{Queue}->{Name} eq $Param{Data}->{OldQueue}->{Name}; # update ticket_index - return $TicketObject->TicketAcceleratorUpdateOnQueueUpdate( + return $Kernel::OM->Get('Kernel::System::Ticket::IndexAccelerator::StaticDB')->TicketAcceleratorUpdateOnQueueUpdate( NewQueueName => $Param{Data}->{Queue}->{Name}, OldQueueName => $Param{Data}->{OldQueue}->{Name}, ); diff -Nru otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm --- otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm 1970-01-01 00:00:00.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/mysql/InvalidDefaultValues.pm 2018-02-05 23:46:54.000000000 +0000 @@ -0,0 +1,82 @@ +# -- +# Copyright (C) 2001-2018 OTRS AG, http://otrs.com/ +# -- +# This software comes with ABSOLUTELY NO WARRANTY. For details, see +# the enclosed file COPYING for license information (AGPL). If you +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. +# -- + +package Kernel::System::SupportDataCollector::Plugin::Database::mysql::InvalidDefaultValues; + +use strict; +use warnings; + +use parent qw(Kernel::System::SupportDataCollector::PluginBase); + +use Kernel::Language qw(Translatable); + +our @ObjectDependencies = ( + 'Kernel::Config', + 'Kernel::System::DB', +); + +sub GetDisplayPath { + return Translatable('Database'); +} + +sub Run { + my $Self = shift; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + if ( $DBObject->GetDatabaseFunction('Type') ne 'mysql' ) { + return $Self->GetResults(); + } + + my $DatabaseName = $Kernel::OM->Get('Kernel::Config')->Get('Database'); + + # Check for datetime fields with invalid default values + # (default values with a date of "0000-00-00 00:00:00"). + $DBObject->Prepare( + SQL => ' + SELECT TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.COLUMNS + WHERE table_schema = ? + AND DATA_TYPE = "datetime" + AND COLUMN_DEFAULT = "0000-00-00 00:00:00" + ', + Bind => [ \$DatabaseName ], + ); + + # Collect all tables, their columns and default values like described above. + my $ErrorMessage; + while ( my @Row = $DBObject->FetchrowArray() ) { + my $Table = $Row[0]; + my $Column = $Row[1]; + my $Default = $Row[2]; + $ErrorMessage .= "$Table ($Column) '$Default'\n"; + } + + if ($ErrorMessage) { + + $Self->AddResultProblem( + Identifier => 'TablesWithInvalidDefaultValues', + Label => Translatable('Invalid Default Values'), + Value => $ErrorMessage, + Message => Translatable( + 'Tables with invalid default values were found. In order to fix it automatically, please run: bin/otrs.Console.pl Maint::Database::Check --repair' + ), + ); + } + else { + $Self->AddResultOk( + Identifier => 'TablesWithInvalidDefaultValues', + Label => Translatable('Invalid Default Values'), + Value => '', + ); + } + + return $Self->GetResults(); +} + +1; diff -Nru otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm --- otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm 1970-01-01 00:00:00.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/mysql/TableCheck.pm 2018-02-05 23:46:54.000000000 +0000 @@ -0,0 +1,83 @@ +# -- +# Copyright (C) 2001-2018 OTRS AG, http://otrs.com/ +# -- +# This software comes with ABSOLUTELY NO WARRANTY. For details, see +# the enclosed file COPYING for license information (AGPL). If you +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. +# -- + +package Kernel::System::SupportDataCollector::Plugin::Database::mysql::TableCheck; + +use strict; +use warnings; + +use parent qw(Kernel::System::SupportDataCollector::PluginBase); + +use Kernel::Language qw(Translatable); + +our @ObjectDependencies = ( + 'Kernel::Config', + 'Kernel::System::DB', +); + +sub GetDisplayPath { + return Translatable('Database'); +} + +sub Run { + my $Self = shift; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + if ( $DBObject->GetDatabaseFunction('Type') ne 'mysql' ) { + return $Self->GetResults(); + } + + # Get all table names. + my @Tables = $DBObject->ListTables(); + + my $ErrorMessage; + for my $Table (@Tables) { + + # Check each table. + $DBObject->Prepare( + SQL => "CHECK TABLE $Table", + ); + + ROW: + while ( my @Row = $DBObject->FetchrowArray() ) { + my $TableName = $Row[0]; + my $Status = $Row[3]; + + # Collect only tables with problems or errors. + next ROW if $Status eq 'OK'; + + # Remove the database name from the beginning of the table name. + $TableName =~ s{ ( \A .+ \. ) }{}xms; + + # Remember only tables with problems. + $ErrorMessage .= "$TableName ($Status)\n"; + } + } + + if ($ErrorMessage) { + + $Self->AddResultProblem( + Identifier => 'TableCheck', + Label => Translatable('Table Check'), + Value => $ErrorMessage, + Message => Translatable('Table check found some problems.'), + ); + } + else { + $Self->AddResultOk( + Identifier => 'TableCheck', + Label => Translatable('Table Check'), + Value => '', + ); + } + + return $Self->GetResults(); +} + +1; diff -Nru otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm --- otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm 1970-01-01 00:00:00.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/oracle/PrimaryKeySequencesAndTriggers.pm 2018-02-05 23:46:54.000000000 +0000 @@ -0,0 +1,135 @@ +# -- +# Copyright (C) 2001-2018 OTRS AG, http://otrs.com/ +# -- +# This software comes with ABSOLUTELY NO WARRANTY. For details, see +# the enclosed file COPYING for license information (AGPL). If you +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. +# -- + +package Kernel::System::SupportDataCollector::Plugin::Database::oracle::PrimaryKeySequencesAndTriggers; + +use strict; +use warnings; + +use parent qw(Kernel::System::SupportDataCollector::PluginBase); + +use Kernel::Language qw(Translatable); + +our @ObjectDependencies = ( + 'Kernel::System::DB', +); + +sub GetDisplayPath { + return Translatable('Database'); +} + +sub Run { + my $Self = shift; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + if ( $DBObject->GetDatabaseFunction('Type') ne 'oracle' ) { + return $Self->GetResults(); + } + + # Get all table names. + my @Tables = $DBObject->ListTables(); + + my %SequenceNameFromTableName; + for my $TableName (@Tables) { + + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); + + # Convert to lower case. + $Sequence = lc $Sequence; + + $SequenceNameFromTableName{$Sequence} = 1; + } + + # Get all sequence names. + $DBObject->Prepare( + SQL => 'SELECT sequence_name FROM user_sequences', + ); + + my @SequenceNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + + # Convert to lower case. + push @SequenceNames, lc $Row[0]; + } + + my @WrongSequenceNames; + SEQUENCE: + for my $SequenceName (@SequenceNames) { + + next SEQUENCE if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong sequence name. + push @WrongSequenceNames, $SequenceName; + } + + # Get all trigger names. + $DBObject->Prepare( + SQL => 'SELECT trigger_name FROM user_triggers', + ); + + my @TriggerNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + + # Convert to lower case. + push @TriggerNames, lc $Row[0]; + } + + my @WrongTriggerNames; + TRIGGER: + for my $TriggerName (@TriggerNames) { + + my $SequenceName = $TriggerName; + + # Remove the last part of the sequence name. + $SequenceName =~ s{ _t \z }{}xms; + + next TRIGGER if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong trigger name. + push @WrongTriggerNames, $TriggerName; + } + + my $Error; + if (@WrongSequenceNames) { + + $Error .= "Seqences:\n"; + $Error .= join "\n", @WrongSequenceNames; + $Error .= "\n\n"; + } + + if (@WrongTriggerNames) { + $Error .= "Triggers:\n"; + $Error .= join "\n", @WrongTriggerNames; + $Error .= "\n\n"; + } + + if ($Error) { + $Self->AddResultProblem( + Identifier => 'PrimaryKeySequencesAndTriggers', + Label => Translatable('Primary Key Sequences and Triggers'), + Value => $Error, + Message => Translatable( + 'The following sequences and/or triggers with possible wrong names have been found. Please rename them manually.' + ), + ); + } + else { + $Self->AddResultOk( + Identifier => 'PrimaryKeySequencesAndTriggers', + Label => Translatable('Primary Key Sequences and Triggers'), + Value => '', + ); + } + + return $Self->GetResults(); +} + +1; diff -Nru otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm --- otrs2-6.0.4/Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm 1970-01-01 00:00:00.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SupportDataCollector/Plugin/Database/postgresql/PrimaryKeySequences.pm 2018-02-05 23:46:54.000000000 +0000 @@ -0,0 +1,101 @@ +# -- +# Copyright (C) 2001-2018 OTRS AG, http://otrs.com/ +# -- +# This software comes with ABSOLUTELY NO WARRANTY. For details, see +# the enclosed file COPYING for license information (AGPL). If you +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. +# -- + +package Kernel::System::SupportDataCollector::Plugin::Database::postgresql::PrimaryKeySequences; + +use strict; +use warnings; + +use parent qw(Kernel::System::SupportDataCollector::PluginBase); + +use Kernel::Language qw(Translatable); + +our @ObjectDependencies = ( + 'Kernel::System::DB', +); + +sub GetDisplayPath { + return Translatable('Database'); +} + +sub Run { + my $Self = shift; + + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + if ( $DBObject->GetDatabaseFunction('Type') !~ m{^postgresql} ) { + return $Self->GetResults(); + } + + # Get all table names. + my @Tables = $DBObject->ListTables(); + + my %SequenceNameFromTableName; + for my $TableName (@Tables) { + + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); + + # Special handling for a table with no id column but with a object_id column. + if ( $TableName eq 'dynamic_field_obj_id_name' ) { + $Sequence = 'dynamic_field_obj_id_name_object_id_seq'; + } + + # Convert to lower case. + $Sequence = lc $Sequence; + + $SequenceNameFromTableName{$Sequence} = 1; + } + + # Get all sequence names. + $DBObject->Prepare( + SQL => "SELECT relname FROM pg_class WHERE relkind = 'S'", + ); + + my @SequenceNames; + while ( my @Row = $DBObject->FetchrowArray() ) { + push @SequenceNames, lc $Row[0]; + } + + my @WrongSequenceNames; + SEQUENCE: + for my $SequenceName (@SequenceNames) { + + next SEQUENCE if $SequenceNameFromTableName{$SequenceName}; + + # Remember wrong sequence name. + push @WrongSequenceNames, $SequenceName; + } + + if (@WrongSequenceNames) { + + my $Error = join "\n", @WrongSequenceNames; + $Error .= "\n"; + + $Self->AddResultProblem( + Identifier => 'PrimaryKeySequences', + Label => Translatable('Primary Key Sequences'), + Value => $Error, + Message => Translatable( + 'The following sequences with possible wrong names have been found. Please rename them manually.' + ), + ); + } + else { + $Self->AddResultOk( + Identifier => 'PrimaryKeySequences', + Label => Translatable('Primary Key Sequences'), + Value => '', + ); + } + + return $Self->GetResults(); +} + +1; diff -Nru otrs2-6.0.4/Kernel/System/SysConfig/XML.pm otrs2-6.0.5/Kernel/System/SysConfig/XML.pm --- otrs2-6.0.4/Kernel/System/SysConfig/XML.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SysConfig/XML.pm 2018-02-05 23:46:54.000000000 +0000 @@ -128,7 +128,15 @@ my $XMLSimpleObject = $Kernel::OM->Get('Kernel::System::XML::Simple'); - $Param{XMLInput} =~ m{otrs_config.*?version="(.*?)"}; + my $XMLContent = $Param{XMLInput}; + + # Remove all lines that starts with comment (#). + $XMLContent =~ s{^#.*?$}{}gm; + + # Remove comments . + $XMLContent =~ s{}{}gsm; + + $XMLContent =~ m{otrs_config.*?version="(.*?)"}; my $ConfigVersion = $1; if ( $ConfigVersion ne '2.0' ) { @@ -139,7 +147,7 @@ return; } - while ( $Param{XMLInput} =~ m{ .*? )}smxg + $XMLContent =~ m{(? .*? )}smxg ) { diff -Nru otrs2-6.0.4/Kernel/System/SysConfig.pm otrs2-6.0.5/Kernel/System/SysConfig.pm --- otrs2-6.0.4/Kernel/System/SysConfig.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SysConfig.pm 2018-02-05 23:46:54.000000000 +0000 @@ -3271,7 +3271,7 @@ Write configuration items from database into a perl module file. - my $Success = $SysConfigObject->ConfigurationDeploy( + my %Result = $SysConfigObject->ConfigurationDeploy( Comments => "Some comments", # (optional) NoValidation => 0, # (optional) 1 or 0, default 0, skips settings validation UserID => 123, # if ExclusiveLockGUID is used, UserID must match the user that creates the lock @@ -3286,29 +3286,44 @@ Returns: - $Success = 1; # or false in case of an error + %Result = ( + Success => 1, # Deployment successful. + ); + + or + + %Result = ( + Success => 0, # Deployment failed. + Error => 'Error...', # Error message (if available) + ); =cut sub ConfigurationDeploy { my ( $Self, %Param ) = @_; + my %Result = ( + Success => 0, + ); + if ( !$Param{UserID} ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "Need UserID!", ); - return; + return %Result; } if ( !IsPositiveInteger( $Param{UserID} ) ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "UserID is invalid!", ); - return; + return %Result; } + my $LanguageObject = $Kernel::OM->Get('Kernel::Language'); + if ( $Param{AllSettings} ) { $Param{NotDirty} = 0; $Param{DirtySettings} = undef; @@ -3451,7 +3466,9 @@ Priority => 'error', Message => "Setting $CurrentSetting->{Name} Effective value is not correct: $EffectiveValueCheck{Error}", ); - return; + + $Result{Error} = $LanguageObject->Translate( "Invalid setting: %s", $CurrentSetting->{Name} ); + return %Result; } # Set cache for SettingEffectiveValueCheck(). @@ -3472,7 +3489,8 @@ Message => "Could not combine settings values into a perl hash", ); - return; + $Result{Error} = $LanguageObject->Translate("Could not combine settings values into a perl hash."); + return %Result; } } @@ -3501,7 +3519,11 @@ Message => "Can not lock the deployment for UserID '$Param{UserID}'!", ); - return; + $Result{Error} = $LanguageObject->Translate( + "Can not lock the deployment for UserID '%s'!", + $Param{UserID}, + ); + return %Result; } # Get system time stamp (string formated). @@ -3551,7 +3573,7 @@ # Make sure to return on errors after we unlock the deployment. if ( !$HandleSettingsSuccess || !$DeploymentID ) { - return; + return %Result; } # If setting is updated on global level, check all user specific settings, maybe it's needed @@ -3598,10 +3620,12 @@ mkdir $BasePath; } - return $Self->_FileWriteAtomic( + $Result{Success} = $Self->_FileWriteAtomic( Filename => "$Self->{Home}/$TargetPath", Content => \$EffectiveValueStrg, ); + + return %Result; } =head2 ConfigurationDeployList() @@ -4667,14 +4691,14 @@ } # Deploy successfully updated settings. - my $DeploymentSuccess = $Self->ConfigurationDeploy( + my %DeploymentResult = $Self->ConfigurationDeploy( Comments => $Param{Comments} || '', UserID => $Param{UserID}, Force => 1, DirtySettings => \@DeploySettings ); - return $DeploymentSuccess; + return $DeploymentResult{Success}; } =head2 OverriddenFileNameGet() diff -Nru otrs2-6.0.4/Kernel/System/SystemMaintenance.pm otrs2-6.0.5/Kernel/System/SystemMaintenance.pm --- otrs2-6.0.4/Kernel/System/SystemMaintenance.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/SystemMaintenance.pm 2018-02-05 23:46:54.000000000 +0000 @@ -512,13 +512,16 @@ =head2 SystemMaintenanceIsComing() -get a SystemMaintenance flag +Get a upcoming SystemMaintenance start and stop date. - my $SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); + my %SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing(); Returns: - $SystemMaintenanceIsComing = 1 # 1 or 0 + %SystemMaintenanceIsComing = { + StartDate => 1515614400, + StopDate => 1515607200 + }; =cut @@ -538,7 +541,7 @@ my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $SQL = " - SELECT start_date + SELECT start_date, stop_date FROM system_maintenance WHERE start_date > $SystemTime and start_date <= $TargetTime "; @@ -554,16 +557,17 @@ return if !$DBObject->Prepare( SQL => $SQL ); - my $Result; + my %Result; RESULT: while ( my @Row = $DBObject->FetchrowArray() ) { - $Result = $Row[0]; + $Result{StartDate} = $Row[0]; + $Result{StopDate} = $Row[1]; last RESULT; } - return if !$Result; + return if !%Result; - return $Result; + return %Result; } 1; diff -Nru otrs2-6.0.4/Kernel/System/TemplateGenerator.pm otrs2-6.0.5/Kernel/System/TemplateGenerator.pm --- otrs2-6.0.4/Kernel/System/TemplateGenerator.pm 2018-01-09 19:14:20.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/TemplateGenerator.pm 2018-02-05 23:46:32.000000000 +0000 @@ -1284,10 +1284,20 @@ # Generate one single matching string for all keys to save performance. my $Keys = join '|', map {quotemeta} grep { defined $H{$_} } keys %H; - # Add all keys also as lowercase to be able to match case insensitive, + # Set all keys as lowercase to be able to match case insensitive, # e. g. and . - for my $Key ( sort keys %H ) { - $H{ lc $Key } = $H{$Key}; + %H = map { lc $_ => $H{$_} } sort keys %H; + + # If tag is 'OTRS_CUSTOMER_' add the body alias 'email/note' to be replaced. + if ( $Tag =~ m/OTRS_(CUSTOMER|AGENT)_/ ) { + KEY: + for my $Key (qw( email note )) { + my $Value = $H{$Key}; + next KEY if defined($Value); + + $H{$Key} = $H{'body'}; + $Keys .= '|' . ucfirst $Key; + } } $Param{Text} =~ s/(?:$Tag)($Keys)$End/$H{ lc $1 }/ieg; @@ -1546,7 +1556,14 @@ # prepare body (insert old email) , # , ..., - if ( $Param{Text} =~ /$Start(?:(?:$DataType(EMAIL|NOTE|BODY)\[(.+?)\])|(?:OTRS_COMMENT))$End/g ) { + + # Changed this to a 'while' to allow the same key/tag multiple times and different number of lines. + while ( + $Param{Text} =~ /$Start(?:$DataType(EMAIL|NOTE|BODY)\[(.+?)\])$End/ + || + $Param{Text} =~ /$Start(?:OTRS_COMMENT(\[(.+?)\])?)$End/ + ) + { my $Line = $2 || 2500; my $NewOldBody = ''; @@ -1595,7 +1612,7 @@ # replace tag $Param{Text} - =~ s/$Start(?:(?:$DataType(EMAIL|NOTE|BODY)\[(.+?)\])|(?:OTRS_COMMENT))$End/$NewOldBody/g; + =~ s/$Start(?:(?:$DataType(EMAIL|NOTE|BODY)\[(.+?)\]|(?:OTRS_COMMENT(\[(.+?)\])?)))$End/$NewOldBody/; } # replace and tags diff -Nru otrs2-6.0.4/Kernel/System/Ticket/Article/Backend/MIMEBase.pm otrs2-6.0.5/Kernel/System/Ticket/Article/Backend/MIMEBase.pm --- otrs2-6.0.4/Kernel/System/Ticket/Article/Backend/MIMEBase.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Ticket/Article/Backend/MIMEBase.pm 2018-02-05 23:46:54.000000000 +0000 @@ -55,7 +55,7 @@ Don't instantiate this class directly, get instances of the real backends instead: - my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Article)->BackendForChannel(ChannelName => 'Email'); + my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Ticket::Article')->BackendForChannel(ChannelName => 'Email'); =cut diff -Nru otrs2-6.0.4/Kernel/System/Ticket/ArticleSearchIndex/DB.pm otrs2-6.0.5/Kernel/System/Ticket/ArticleSearchIndex/DB.pm --- otrs2-6.0.4/Kernel/System/Ticket/ArticleSearchIndex/DB.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Ticket/ArticleSearchIndex/DB.pm 2018-02-05 23:46:54.000000000 +0000 @@ -300,7 +300,7 @@ if ( $Param{SearchParams}->{ConditionInline} ) { $SQLQuery .= $DBObject->QueryCondition( - Key => $Field eq 'Fulltext' ? 'ArticleFulltext.article_value' : "$Field.article_value", + Key => $Field eq 'Fulltext' ? [ 'ArticleFulltext.article_value', 'st.title' ] : "$Field.article_value", Value => lc $Param{SearchParams}->{$Field}, SearchPrefix => $Param{SearchParams}->{ContentSearchPrefix}, SearchSuffix => $Param{SearchParams}->{ContentSearchSuffix}, @@ -329,6 +329,10 @@ $Value = lc $DBObject->Quote( $Value, 'Like' ); $SQLQuery .= " $Label.article_value LIKE '$Value'"; + + if ( $Field eq 'Fulltext' ) { + $SQLQuery .= " OR st.title LIKE '$Value'"; + } } } diff -Nru otrs2-6.0.4/Kernel/System/Ticket/Event/NotificationEvent.pm otrs2-6.0.5/Kernel/System/Ticket/Event/NotificationEvent.pm --- otrs2-6.0.4/Kernel/System/Ticket/Event/NotificationEvent.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Ticket/Event/NotificationEvent.pm 2018-02-05 23:46:54.000000000 +0000 @@ -414,15 +414,15 @@ } # check ticket attributes - next KEY if !$Notification{Data}->{$Key}; + next KEY if !defined $Notification{Data}->{$Key}; + next KEY if !defined $Notification{Data}->{$Key}->[0]; next KEY if !@{ $Notification{Data}->{$Key} }; - next KEY if !$Notification{Data}->{$Key}->[0]; my $Match = 0; VALUE: for my $Value ( @{ $Notification{Data}->{$Key} } ) { - next VALUE if !$Value; + next VALUE if !defined $Value; # check if key is a search dynamic field if ( $Key =~ m{\A Search_DynamicField_}xms ) { diff -Nru otrs2-6.0.4/Kernel/System/Ticket/IndexAccelerator/StaticDB.pm otrs2-6.0.5/Kernel/System/Ticket/IndexAccelerator/StaticDB.pm --- otrs2-6.0.4/Kernel/System/Ticket/IndexAccelerator/StaticDB.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Ticket/IndexAccelerator/StaticDB.pm 2018-02-05 23:46:54.000000000 +0000 @@ -20,6 +20,7 @@ 'Kernel::System::State', 'Kernel::System::Ticket', 'Kernel::System::DateTime', + 'Kernel::System::Queue', ); sub new { @@ -165,8 +166,10 @@ } } - #update ticket_index for changed queue name - return if !$Kernel::OM->Get('Kernel::System::DB')->Do( + my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + + # Update ticket_index for changed queue name. + return if !$DBObject->Do( SQL => ' UPDATE ticket_index SET queue = ? @@ -177,6 +180,36 @@ ], ); + # Updated ticket_index for all sub queue names when parent name is changed. + # See bug#13570 for more information. + my %AllQueue = $Kernel::OM->Get('Kernel::System::Queue')->QueueList( Valid => 0 ); + my @ParentQueue = split( /::/, $Param{OldQueueName} ); + + for my $QueueID ( sort keys %AllQueue ) { + + my @SubQueue = split( /::/, $AllQueue{$QueueID} ); + + if ( $#SubQueue > $#ParentQueue ) { + + if ( $AllQueue{$QueueID} =~ /^\Q$Param{OldQueueName}::\E/i ) { + + my $NewQueueName = $AllQueue{$QueueID}; + $NewQueueName =~ s/\Q$Param{OldQueueName}\E/$Param{NewQueueName}/; + + return if !$DBObject->Do( + SQL => ' + UPDATE ticket_index + SET queue = ? + WHERE queue = ?', + Bind => [ + \$NewQueueName, + \$AllQueue{$QueueID}, + ], + ); + } + } + } + return 1; } diff -Nru otrs2-6.0.4/Kernel/System/UnitTest/Driver.pm otrs2-6.0.5/Kernel/System/UnitTest/Driver.pm --- otrs2-6.0.4/Kernel/System/UnitTest/Driver.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/UnitTest/Driver.pm 2018-02-05 23:46:54.000000000 +0000 @@ -126,7 +126,7 @@ $Self->{OutputBuffer} = ''; local *STDOUT = *STDOUT; local *STDERR = *STDERR; - if ( !$Param{Verbose} ) { + if ( !$Self->{Verbose} ) { undef *STDOUT; undef *STDERR; open STDOUT, '>:utf8', \$Self->{OutputBuffer}; ## no critic diff -Nru otrs2-6.0.4/Kernel/System/UnitTest/Selenium/WebElement.pm otrs2-6.0.5/Kernel/System/UnitTest/Selenium/WebElement.pm --- otrs2-6.0.4/Kernel/System/UnitTest/Selenium/WebElement.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/UnitTest/Selenium/WebElement.pm 2018-02-05 23:46:54.000000000 +0000 @@ -53,6 +53,8 @@ sub VerifiedClick { ## no critic my $Self = shift; + $Self->driver()->execute_script('window.Core.App.PageLoadComplete = false;'); + $Self->SUPER::click(@_); $Self->driver()->WaitFor( diff -Nru otrs2-6.0.4/Kernel/System/UnitTest/Selenium.pm otrs2-6.0.5/Kernel/System/UnitTest/Selenium.pm --- otrs2-6.0.4/Kernel/System/UnitTest/Selenium.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/UnitTest/Selenium.pm 2018-02-05 23:46:54.000000000 +0000 @@ -416,6 +416,40 @@ die "WaitFor($Argument) failed."; } +=head2 SwitchToFrame() + +Change focus to another frame on the page. If C is passed, it will wait until the frame has loaded the +page completely. + + my $Success = $SeleniumObject->SwitchToFrame( + FrameSelector => '.Iframe', # (required) CSS selector of the frame element + WaitForLoad => 1, # (optional) Wait until the frame has loaded, if necessary + Time => 20, # (optional) Wait time in seconds (default 20) + ); + +=cut + +sub SwitchToFrame { + my ( $Self, %Param ) = @_; + + if ( !$Param{FrameSelector} ) { + die 'Need FrameSelector.'; + } + + if ( $Param{WaitForLoad} ) { + $Self->WaitFor( + JavaScript => "return typeof(\$('$Param{FrameSelector}').get(0).contentWindow.Core) == 'object' + && typeof(\$('$Param{FrameSelector}').get(0).contentWindow.Core.App) == 'object' + && \$('$Param{FrameSelector}').get(0).contentWindow.Core.App.PageLoadComplete;", + Time => $Param{Time}, + ); + } + + $Self->switch_to_frame( $Self->find_element( $Param{FrameSelector}, 'css' ) ); + + return 1; +} + =head2 DragAndDrop() Drag and drop an element. diff -Nru otrs2-6.0.4/Kernel/System/UnitTest.pm otrs2-6.0.5/Kernel/System/UnitTest.pm --- otrs2-6.0.4/Kernel/System/UnitTest.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/UnitTest.pm 2018-02-05 23:46:54.000000000 +0000 @@ -15,6 +15,8 @@ use Storable(); use Term::ANSIColor(); +use Kernel::System::VariableCheck qw(IsHashRefWithData IsArrayRefWithData); + our @ObjectDependencies = ( 'Kernel::Config', 'Kernel::System::Encode', @@ -238,6 +240,53 @@ my %SupportData = $Kernel::OM->Get('Kernel::System::SupportDataCollector')->Collect(); die "Could not collect SupportData.\n" if !$SupportData{Success}; + # Limit number of screenshots in the result data, since it can grow very large. + # Allow only up to 25 screenshots per submission (average size of 80kb per screenshot for a total of 2MB). + my $ScreenshotCountLimit = 25; + my $ScreenshotCount = 0; + + RESULT: + for my $Result ( sort keys %{ $Self->{ResultData} } ) { + next RESULT if !IsHashRefWithData( $Self->{ResultData}->{$Result}->{Results} ); + + TEST: + for my $Test ( sort keys %{ $Self->{ResultData}->{$Result}->{Results} } ) { + next TEST if !IsArrayRefWithData( $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Screenshots} ); + + # Get number of screenshots in this test. Note that this key is an array, and we support multiple + # screenshots per one test. + my $TestScreenshotCount = scalar @{ $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Screenshots} }; + + # Check if number of screenshots for this result breaks the limit. + if ( $ScreenshotCount + $TestScreenshotCount > $ScreenshotCountLimit ) { + my $ScreenshotCountRemaining = $ScreenshotCountLimit - $ScreenshotCount; + + # Allow only remaining number of screenshots. + if ( $ScreenshotCountRemaining > 0 ) { + @{ $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Screenshots} } + = @{ $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Screenshots} }[ + 0, + $ScreenshotCountRemaining + ]; + $ScreenshotCount = $ScreenshotCountLimit; + } + + # Remove all screenshots. + else { + delete $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Screenshots}; + } + + # Include message about removal of screenshots. + $Self->{ResultData}->{$Result}->{Results}->{$Test}->{Message} + .= ' (Additional screenshots have been omitted from the report because of size constraint.)'; + + next TEST; + } + + $ScreenshotCount += $TestScreenshotCount; + } + } + my %SubmitData = ( Auth => $Param{SubmitAuth} // '', JobID => $Param{JobID} // '', diff -Nru otrs2-6.0.4/Kernel/System/Web/InterfaceAgent.pm otrs2-6.0.5/Kernel/System/Web/InterfaceAgent.pm --- otrs2-6.0.4/Kernel/System/Web/InterfaceAgent.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/Kernel/System/Web/InterfaceAgent.pm 2018-02-05 23:46:54.000000000 +0000 @@ -306,8 +306,9 @@ # login is successful my %UserData = $UserObject->GetUserData( - User => $User, - Valid => 1 + User => $User, + Valid => 1, + NoOutOfOffice => 1, ); # check if the browser supports cookies diff -Nru otrs2-6.0.4/RELEASE otrs2-6.0.5/RELEASE --- otrs2-6.0.4/RELEASE 2018-01-12 19:19:10.000000000 +0000 +++ otrs2-6.0.5/RELEASE 2018-02-05 23:48:04.000000000 +0000 @@ -1,4 +1,4 @@ PRODUCT = OTRS -VERSION = 6.0.4 -BUILDDATE = Fri Jan 12 20:19:10 CET 2018 +VERSION = 6.0.5 +BUILDDATE = Tue Feb 6 00:48:04 CET 2018 BUILDHOST = otrsbuild.otrs.com diff -Nru otrs2-6.0.4/scripts/backup.pl otrs2-6.0.5/scripts/backup.pl --- otrs2-6.0.4/scripts/backup.pl 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/backup.pl 2018-02-05 23:46:54.000000000 +0000 @@ -35,6 +35,7 @@ my %Opts; my $Compress = ''; my $CompressCMD = ''; +my $CompressEXT = ''; my $DB = ''; my $DBDump = ''; getopt( 'hcrtd', \%Opts ); @@ -44,7 +45,7 @@ Backup an OTRS system. Usage: - backup.pl -d /data_backup_dir/ [-c gzip|bzip2] [-r DAYS] [-t fullbackup|nofullbackup|dbonly] + backup.pl -d /data_backup_dir [-c gzip|bzip2] [-r DAYS] [-t fullbackup|nofullbackup|dbonly] Options: -d - Directory where the backup files should place to. @@ -83,10 +84,12 @@ if ( $Opts{c} && $Opts{c} =~ m/bzip2/i ) { $Compress = 'j'; $CompressCMD = 'bzip2'; + $CompressEXT = 'bz2'; } else { $Compress = 'z'; $CompressCMD = 'gzip'; + $CompressEXT = 'gz'; } # check backup type @@ -178,8 +181,8 @@ } else { # backup Kernel/Config.pm - print "Backup $Directory/Config.tar.gz ... "; - if ( !system("tar -czf $Directory/Config.tar.gz Kernel/Config*") ) { + print "Backup $Directory/Config.tar.$CompressEXT ... "; + if ( !system("tar -c -$Compress -f $Directory/Config.tar.$CompressEXT Kernel/Config*") ) { print "done\n"; } else { @@ -189,9 +192,9 @@ } if ($FullBackup) { - print "Backup $Directory/Application.tar.gz ... "; + print "Backup $Directory/Application.tar.$CompressEXT ... "; my $Excludes = "--exclude=var/tmp --exclude=js-cache --exclude=css-cache --exclude=.git"; - if ( !system("tar $Excludes -czf $Directory/Application.tar.gz .") ) { + if ( !system("tar $Excludes -c -$Compress -f $Directory/Application.tar.$CompressEXT .") ) { print "done\n"; } else { @@ -203,8 +206,8 @@ # backup vardir else { - print "Backup $Directory/VarDir.tar.gz ... "; - if ( !system("tar -czf $Directory/VarDir.tar.gz var/") ) { + print "Backup $Directory/VarDir.tar.$CompressEXT ... "; + if ( !system("tar -c -$Compress -f $Directory/VarDir.tar.$CompressEXT var/") ) { print "done\n"; } else { @@ -216,8 +219,8 @@ # backup datadir if ( $ArticleDir !~ m/\A\Q$Home\E/ ) { - print "Backup $Directory/DataDir.tar.gz ... "; - if ( !system("tar -czf $Directory/DataDir.tar.gz $ArticleDir") ) { + print "Backup $Directory/DataDir.tar.$CompressEXT ... "; + if ( !system("tar -c -$Compress -f $Directory/DataDir.tar.$CompressEXT $ArticleDir") ) { print "done\n"; } else { @@ -230,11 +233,16 @@ # backup database if ( $DB =~ m/mysql/i ) { - print "Dump $DB data to $Directory/DatabaseBackup.sql ... "; + print "Dump $DB data to $Directory/DatabaseBackup.sql.$CompressEXT ... "; if ($DatabasePw) { $DatabasePw = "-p'$DatabasePw'"; } - if ( !system("$DBDump -u $DatabaseUser $DatabasePw -h $DatabaseHost $Database > $Directory/DatabaseBackup.sql") ) { + if ( + !system( + "$DBDump -u $DatabaseUser $DatabasePw -h $DatabaseHost $Database | $CompressCMD > $Directory/DatabaseBackup.sql.$CompressEXT" + ) + ) + { print "done\n"; } else { @@ -255,7 +263,12 @@ $DatabaseHost = "-h $DatabaseHost" } - if ( !system("$DBDump -f $Directory/DatabaseBackup.sql $DatabaseHost -U $DatabaseUser $Database") ) { + if ( + !system( + "$DBDump $DatabaseHost -U $DatabaseUser $Database | $CompressCMD > $Directory/DatabaseBackup.sql.$CompressEXT" + ) + ) + { print "done\n"; } else { @@ -265,17 +278,6 @@ } } -# compressing database -print "Compress SQL-file... "; -if ( !system("$CompressCMD $Directory/DatabaseBackup.sql") ) { - print "done\n"; -} -else { - print "failed\n"; - RemoveIncompleteBackup($Directory); - die "Backup failed\n"; -} - # remove old backups only after everything worked well if ( defined $Opts{r} ) { my %LeaveBackups; diff -Nru otrs2-6.0.4/scripts/DBUpdateTo6/MigrateZoomExpandConfig.pm otrs2-6.0.5/scripts/DBUpdateTo6/MigrateZoomExpandConfig.pm --- otrs2-6.0.4/scripts/DBUpdateTo6/MigrateZoomExpandConfig.pm 1970-01-01 00:00:00.000000000 +0000 +++ otrs2-6.0.5/scripts/DBUpdateTo6/MigrateZoomExpandConfig.pm 2018-02-05 23:46:54.000000000 +0000 @@ -0,0 +1,107 @@ +# -- +# Copyright (C) 2001-2018 OTRS AG, http://otrs.com/ +# -- +# This software comes with ABSOLUTELY NO WARRANTY. For details, see +# the enclosed file COPYING for license information (AGPL). If you +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. +# -- + +package scripts::DBUpdateTo6::MigrateZoomExpandConfig; ## no critic + +use strict; +use warnings; + +use parent qw(scripts::DBUpdateTo6::Base); + +our @ObjectDependencies = ( + 'Kernel::Config', + 'Kernel::System::Main', + 'Kernel::System::SysConfig', + 'Kernel::System::SysConfig::DB', +); + +=head1 NAME + +scripts::DBUpdateTo6::MigrateZoomExpandConfig - Migrate modified ZoomExpand config value to AgentZoomExpand and CustomerZoomExpand configs. + +=cut + +sub Run { + my ( $Self, %Param ) = @_; + + my $Home = $Kernel::OM->Get('Kernel::Config')->Get('Home'); + my $FilePath = "$Home/Kernel/Config/Backups/ZZZAutoOTRS5.pm"; + my $Verbose = $Param{CommandlineOptions}->{Verbose} || 0; + + # Check for modified ZoomExpand value for migration from OTRS 5 to OTRS 6 + my %OTRS5Config; + if ( -f $FilePath ) { + $Kernel::OM->Get('Kernel::System::Main')->Require( + 'Kernel::Config::Backups::ZZZAutoOTRS5' + ); + Kernel::Config::Backups::ZZZAutoOTRS5->Load( \%OTRS5Config ); + } + + # Check for modified ZoomExpand value for patch level update from less then OTRS 6.0.5. + my $SysConfigDBObject = $Kernel::OM->Get('Kernel::System::SysConfig::DB'); + my %ZoomExpandModified = $SysConfigDBObject->ModifiedSettingGet( + Name => 'Ticket::Frontend::ZoomExpand', + ); + + my $ZoomExpandValue = $ZoomExpandModified{EffectiveValue} || $OTRS5Config{'Ticket::Frontend::ZoomExpand'}; + + # If original ZoomExpand config is not modified there is nothing to migrate. + if ( !$ZoomExpandValue ) { + print "\n There is no modified ZoomExpand config value, skipping migration... \n" if $Verbose; + return 1; + } + + # Migrate modified ZoomExpand config value to AgentZoomExpand and CustomerZoomExpand configs. + my $SysConfigObject = $Kernel::OM->Get('Kernel::System::SysConfig'); + for my $Config ( 'AgentZoomExpand', 'CustomerTicketZoom###CustomerZoomExpand' ) { + my $ExclusiveLockGUID = $SysConfigObject->SettingLock( + Name => 'Ticket::Frontend::' . $Config, + Force => 1, + UserID => 1, + ); + + my %Result = $SysConfigObject->SettingUpdate( + Name => 'Ticket::Frontend::' . $Config, + IsValid => 1, + EffectiveValue => $ZoomExpandValue, + ExclusiveLockGUID => $ExclusiveLockGUID, + UserID => 1, + ); + + if ( !$Result{Success} ) { + print + "\n Could not migrate config 'Ticket::Frontend::ZoomExpand' value to 'Ticket::Frontend::$Config'.. \n" + if $Verbose; + } + } + + # Delete old ZoomExpand config modification from the DB. + if ( $ZoomExpandModified{ModifiedID} ) { + my $Success = $SysConfigDBObject->ModifiedSettingDelete( + ModifiedID => $ZoomExpandModified{ModifiedID}, + ); + + if ($Success) { + print "\n Deleted obsolete modified config 'Ticket::Frontend::ZoomExpand' from the DB. \n" if $Verbose; + } + } + + return 1; +} + +1; + +=head1 TERMS AND CONDITIONS + +This software is part of the OTRS project (L). + +This software comes with ABSOLUTELY NO WARRANTY. For details, see +the enclosed file COPYING for license information (AGPL). If you +did not receive this file, see L. + +=cut diff -Nru otrs2-6.0.4/scripts/DBUpdateTo6.pm otrs2-6.0.5/scripts/DBUpdateTo6.pm --- otrs2-6.0.4/scripts/DBUpdateTo6.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/DBUpdateTo6.pm 2018-02-05 23:46:54.000000000 +0000 @@ -246,6 +246,10 @@ Module => 'MigratePossibleNextActions', }, { + Message => 'Migrate ZoomExpand setting', + Module => 'MigrateZoomExpandConfig', + }, + { Message => 'Migrating time zone configuration', Module => 'MigrateTimeZoneConfiguration', }, diff -Nru otrs2-6.0.4/scripts/restore.pl otrs2-6.0.5/scripts/restore.pl --- otrs2-6.0.4/scripts/restore.pl 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/restore.pl 2018-02-05 23:46:54.000000000 +0000 @@ -34,8 +34,10 @@ # get options my %Opts; -my $DB = ''; -my $DBDump = ''; +my $DB = ''; +my $DBDump = ''; +my $DecompressCMD = ''; +my $Installed = 0; getopt( 'hbd', \%Opts ); if ( exists $Opts{h} ) { print <catfile( $Opts{b}, 'DatabaseBackup.sql.bz2' ) ) { + $DecompressCMD = 'bunzip2'; +} +else { + $DecompressCMD = 'gunzip'; +} + +# check needed programs +for my $CMD ( 'cp', 'tar', $DecompressCMD ) { + $Installed = 0; + open( my $Input, '-|', "which $CMD" ); ## no critic + while (<$Input>) { + $Installed = 1; + } + close $Input; + if ( !$Installed ) { + print STDERR "ERROR: Can't locate $CMD!\n"; + exit 1; + } +} + # restore config -my $ConfigBackupTar = File::Spec->catfile( $Opts{b}, 'Config.tar.gz' ); -print "Restore $ConfigBackupTar ...\n"; chdir( $Opts{d} ); -if ( -e $ConfigBackupTar ) { - system("tar -xzf $ConfigBackupTar"); + +my $ConfigBackupGz = File::Spec->catfile( $Opts{b}, 'Config.tar.gz' ); +my $ConfigBackupBz2 = File::Spec->catfile( $Opts{b}, 'Config.tar.bz2' ); +if ( -e $ConfigBackupGz ) { + print "Restore $ConfigBackupGz ...\n"; + system("tar -xzf $ConfigBackupGz"); +} +elsif ( -e $ConfigBackupBz2 ) { + print "Restore $ConfigBackupBz2 ...\n"; + system("tar -xjf $ConfigBackupBz2"); } # create common objects @@ -101,6 +130,17 @@ if ( $DatabaseDSN =~ m/:mysql/i ) { $DB = 'MySQL'; $DBDump = 'mysql'; + + $Installed = 0; + open( my $Input, '-|', "which $DBDump" ); ## no critic + while (<$Input>) { + $Installed = 1; + } + close $Input; + if ( !$Installed ) { + print STDERR "ERROR: Can't locate $DBDump!\n"; + exit 1; + } } elsif ( $DatabaseDSN =~ m/:pg/i ) { $DB = 'PostgreSQL'; @@ -108,25 +148,22 @@ if ( $DatabaseDSN !~ m/host=/i ) { $DatabaseHost = '' } -} -else { - print STDERR "ERROR: Can't backup, no database dump support!\n"; - exit 1; -} -# check needed programs -for my $CMD ( 'cp', 'tar', $DBDump ) { - my $Installed = 0; - open( my $Input, '-|', "which $CMD" ); ## no critic + $Installed = 0; + open( my $Input, '-|', "which $DBDump" ); ## no critic while (<$Input>) { $Installed = 1; } close $Input; if ( !$Installed ) { - print STDERR "ERROR: Can't locate $CMD!\n"; + print STDERR "ERROR: Can't locate $DBDump!\n"; exit 1; } } +else { + print STDERR "ERROR: Can't backup, no database dump support!\n"; + exit 1; +} # check database env if ( $DB =~ m/mysql/i ) { @@ -162,24 +199,39 @@ chdir($Home); # extract application -my $ApplicationBackupTar = File::Spec->catfile( $Opts{b}, 'Application.tar.gz' ); -if ( -e $ApplicationBackupTar ) { - print "Restore $ApplicationBackupTar ...\n"; - system("tar -xzf $ApplicationBackupTar"); +my $ApplicationBackupGz = File::Spec->catfile( $Opts{b}, 'Application.tar.gz' ); +my $ApplicationBackupBz2 = File::Spec->catfile( $Opts{b}, 'Application.tar.bz2' ); +if ( -e $ApplicationBackupGz ) { + print "Restore $ApplicationBackupGz ...\n"; + system("tar -xzf $ApplicationBackupGz"); +} +elsif ( -e $ApplicationBackupBz2 ) { + print "Restore $ApplicationBackupBz2 ...\n"; + system("tar -xjf $ApplicationBackupBz2"); } # extract vardir -my $VarDirBackupTar = File::Spec->catfile( $Opts{b}, 'VarDir.tar.gz' ); -if ( -e $VarDirBackupTar ) { - print "Restore $VarDirBackupTar ...\n"; - system("tar -xzf $VarDirBackupTar"); +my $VarDirBackupGz = File::Spec->catfile( $Opts{b}, 'VarDir.tar.gz' ); +my $VarDirBackupBz2 = File::Spec->catfile( $Opts{b}, 'VarDir.tar.bz2' ); +if ( -e $VarDirBackupGz ) { + print "Restore $VarDirBackupGz ...\n"; + system("tar -xzf $VarDirBackupGz"); +} +elsif ( -e $VarDirBackupBz2 ) { + print "Restore $VarDirBackupBz2 ...\n"; + system("tar -xjf $VarDirBackupBz2"); } # extract datadir -my $DataDirBackupTar = File::Spec->catfile( $Opts{b}, 'DataDir.tar.gz' ); -if ( -e $DataDirBackupTar ) { - print "Restore $DataDirBackupTar ...\n"; - system("tar -xzf $DataDirBackupTar"); +my $DataDirBackupGz = File::Spec->catfile( $Opts{b}, 'DataDir.tar.gz' ); +my $DataDirBackupBz2 = File::Spec->catfile( $Opts{b}, 'DataDir.tar.bz2' ); +if ( -e $DataDirBackupGz ) { + print "Restore $DataDirBackupGz ...\n"; + system("tar -xzf $DataDirBackupGz"); +} +if ( -e $DataDirBackupBz2 ) { + print "Restore $DataDirBackupBz2 ...\n"; + system("tar -xjf $DataDirBackupBz2"); } # import database @@ -191,24 +243,16 @@ $DatabasePw = "-p'$DatabasePw'"; } if ( -e $DatabaseBackupGz ) { - print "decompresses SQL-file ...\n"; - system("gunzip $DatabaseBackupGz"); - print "cat SQL-file into $DB database\n"; + print "Restore database into $DB ...\n"; system( - "mysql -f -u$DatabaseUser $DatabasePw -h$DatabaseHost $Database < $Opts{b}/DatabaseBackup.sql" + "gunzip -c $DatabaseBackupGz | mysql -f -u$DatabaseUser $DatabasePw -h$DatabaseHost $Database" ); - print "compress SQL-file...\n"; - system("gzip $Opts{b}/DatabaseBackup.sql"); } elsif ( -e $DatabaseBackupBz2 ) { - print "decompresses SQL-file ...\n"; - system("bunzip2 $DatabaseBackupBz2"); - print "cat SQL-file into $DB database\n"; + print "Restore database into $DB ...\n"; system( - "mysql -f -u$DatabaseUser $DatabasePw -h$DatabaseHost $Database < $Opts{b}/DatabaseBackup.sql" + "bunzip2 -c $DatabaseBackupBz2 | mysql -f -u$DatabaseUser $DatabasePw -h$DatabaseHost $Database" ); - print "compress SQL-file...\n"; - system("bzip2 $Opts{b}/DatabaseBackup.sql"); } } else { @@ -217,33 +261,25 @@ } if ( -e $DatabaseBackupGz ) { - print "decompresses SQL-file ...\n"; - system("gunzip $DatabaseBackupGz"); # set password via environment variable if there is one if ($DatabasePw) { $ENV{'PGPASSWORD'} = $DatabasePw; ## no critic } - print "cat SQL-file into $DB database\n"; + print "Restore database into $DB ...\n"; system( - "cat $Opts{b}/DatabaseBackup.sql | psql -U$DatabaseUser $DatabaseHost $Database" + "gunzip -c $DatabaseBackupGz | psql -U$DatabaseUser $DatabaseHost $Database" ); - print "compress SQL-file...\n"; - system("gzip $Opts{b}/DatabaseBackup.sql"); } elsif ( -e $DatabaseBackupBz2 ) { - print "decompresses SQL-file ...\n"; - system("bunzip2 $DatabaseBackupBz2"); # set password via environment variable if there is one if ($DatabasePw) { $ENV{'PGPASSWORD'} = $DatabasePw; ## no critic } - print "cat SQL-file into $DB database\n"; + print "Restore database into $DB ...\n"; system( - "cat $Opts{b}/DatabaseBackup.sql | psql -U$DatabaseUser $DatabaseHost $Database" + "bunzip2 -c $DatabaseBackupBz2 | psql -U$DatabaseUser $DatabaseHost $Database" ); - print "compress SQL-file...\n"; - system("bzip2 $Opts{b}/DatabaseBackup.sql"); } } diff -Nru otrs2-6.0.4/scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t otrs2-6.0.5/scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t --- otrs2-6.0.4/scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Console/Command/Maint/PostMaster/MailAccountFetch.t 2018-02-05 23:46:54.000000000 +0000 @@ -15,11 +15,41 @@ my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $CommandObject = $Kernel::OM->Get('Kernel::System::Console::Command::Maint::PostMaster::MailAccountFetch'); +my $PIDObject = $Kernel::OM->Get('Kernel::System::PID'); my $ExitCode = $CommandObject->Execute(); # Just check exit code; should be 0 also if no accounts are configured. $Self->Is( + $ExitCode, + 0, + 'Maint::PostMaster::MailAccountFetch exit code', +); + +# lock the mail account fetch process +$PIDObject->PIDCreate( + Name => 'MailAccountFetch', + Force => 1, + TTL => 600, # 10 minutes +); + +$ExitCode = $CommandObject->Execute(); + +# Just check exit code; should be 0 also if no accounts are configured. +$Self->Is( + $ExitCode, + 1, + 'Maint::PostMaster::MailAccountFetch exit code with already locked MailAccountFetch', +); + +# unlock the mail account fetch process again +$PIDObject->PIDDelete( Name => 'MailAccountFetch' ); + +# test a normal fetch again with unlocked process +$ExitCode = $CommandObject->Execute(); + +# Just check exit code; should be 0 also if no accounts are configured. +$Self->Is( $ExitCode, 0, 'Maint::PostMaster::MailAccountFetch exit code', diff -Nru otrs2-6.0.4/scripts/test/DB/XML/TableRename.t otrs2-6.0.5/scripts/test/DB/XML/TableRename.t --- otrs2-6.0.4/scripts/test/DB/XML/TableRename.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/DB/XML/TableRename.t 2018-02-05 23:46:54.000000000 +0000 @@ -331,18 +331,18 @@ if ( $DBType eq 'oracle' ) { - my $SEName = uc "SE_$TableName"; + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); # verify if the sequence exists return if !$DBObject->Prepare( - SQL => " + SQL => ' SELECT COUNT(*) FROM user_sequences - WHERE sequence_name = ?", + WHERE LOWER(sequence_name) = LOWER(?)', + Bind => [ \$Sequence ], Limit => 1, - Bind => [ - \$SEName, - ], ); while ( my @Row = $DBObject->FetchrowArray() ) { @@ -351,17 +351,17 @@ } elsif ( $DBType eq 'postgresql' ) { - my $SEName = $TableName . '_id_seq'; + my $Sequence = $DBObject->{Backend}->_SequenceName( + TableName => $TableName, + ); # check if sequence exists return if !$DBObject->Prepare( SQL => " - SELECT - 1 - FROM pg_class c - WHERE - c.relkind = 'S' AND - c.relname = '$SEName'", + SELECT 1 + FROM pg_class c + WHERE c.relkind = 'S' + AND LOWER(c.relname) = LOWER('$Sequence')", Limit => 1, ); diff -Nru otrs2-6.0.4/scripts/test/HTMLUtils/Safety.t otrs2-6.0.5/scripts/test/HTMLUtils/Safety.t --- otrs2-6.0.4/scripts/test/HTMLUtils/Safety.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/HTMLUtils/Safety.t 2018-02-05 23:46:54.000000000 +0000 @@ -807,6 +807,15 @@ Replace => 0, }, }, + { + Name => 'Safety - bug 13561 - Handling empty strings', + Input => '', + Config => {}, + Result => { + Output => '', + Replace => 0, + }, + }, ); for my $Test (@Tests) { diff -Nru otrs2-6.0.4/scripts/test/Layout/CheckParsedTemplates.t otrs2-6.0.5/scripts/test/Layout/CheckParsedTemplates.t --- otrs2-6.0.4/scripts/test/Layout/CheckParsedTemplates.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Layout/CheckParsedTemplates.t 2018-02-05 23:46:54.000000000 +0000 @@ -24,6 +24,12 @@ ); my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); +# Unregister all notification modules. +$Helper->ConfigSettingChange( + Valid => 0, + Key => 'Frontend::NotifyModule', +); + $Kernel::OM->ObjectParamAdd( 'Kernel::Output::HTML::Layout' => { UserID => 1, diff -Nru otrs2-6.0.4/scripts/test/Layout/NavigationBar.t otrs2-6.0.5/scripts/test/Layout/NavigationBar.t --- otrs2-6.0.4/scripts/test/Layout/NavigationBar.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Layout/NavigationBar.t 2018-02-05 23:46:54.000000000 +0000 @@ -19,6 +19,12 @@ ); my $HelperObject = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); +# Unregister all notification modules. +$HelperObject->ConfigSettingChange( + Valid => 0, + Key => 'Frontend::NotifyModule', +); + # Add test user. my $TestUserLogin = $HelperObject->TestUserCreate( Groups => ['users'], diff -Nru otrs2-6.0.4/scripts/test/Package/ConfiguredRepositoryDefinitionGet.t otrs2-6.0.5/scripts/test/Package/ConfiguredRepositoryDefinitionGet.t --- otrs2-6.0.4/scripts/test/Package/ConfiguredRepositoryDefinitionGet.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Package/ConfiguredRepositoryDefinitionGet.t 2018-02-05 23:46:54.000000000 +0000 @@ -20,6 +20,17 @@ ); my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); +# Make sure repository root setting is set to default for duration of the test. +my %Setting = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( + Name => 'Package::RepositoryRoot', + Default => 1, +); +$Helper->ConfigSettingChange( + Valid => 1, + Key => 'Package::RepositoryRoot', + Value => $Setting{DefaultValue}, +); + my @FrameworkVersionParts = split /\./, $Kernel::OM->Get('Kernel::Config')->Get('Version'); my $FrameworkVersion = $FrameworkVersionParts[0]; diff -Nru otrs2-6.0.4/scripts/test/Package/PackageUpgradeAll.t otrs2-6.0.5/scripts/test/Package/PackageUpgradeAll.t --- otrs2-6.0.4/scripts/test/Package/PackageUpgradeAll.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Package/PackageUpgradeAll.t 2018-02-05 23:46:54.000000000 +0000 @@ -84,6 +84,7 @@ AlreadyUpdated => {}, Failed => {}, Installed => {}, + Undeployed => {}, Updated => { TestGeneralCatalog => 1, TestImportExport => 1, @@ -129,7 +130,8 @@ TestGeneralCatalog => 1, TestITSMCore => 1, }, - Updated => { + Undeployed => {}, + Updated => { TestImportExport => 1, TestITSMIncidentProblemManagement => 1, TestITSMConfigurationManagement => 1, @@ -182,8 +184,9 @@ TestITSMServiceLevelManagement => 1, }, }, - Installed => {}, - Updated => { + Installed => {}, + Undeployed => {}, + Updated => { TestGeneralCatalog => 1, TestImportExport => 1, }, diff -Nru otrs2-6.0.4/scripts/test/Queue/Event/TicketAcceleratorUpdate.t otrs2-6.0.5/scripts/test/Queue/Event/TicketAcceleratorUpdate.t --- otrs2-6.0.4/scripts/test/Queue/Event/TicketAcceleratorUpdate.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Queue/Event/TicketAcceleratorUpdate.t 2018-02-05 23:46:54.000000000 +0000 @@ -150,6 +150,84 @@ "Queue:\'$QueueBefore\' is restored", ); +# Create a ticket in sub queue, then rename parent queue. Make sure the index update +# picks up this change for sub queue name (see bug#13570 for more information). +my $SubQueueName = 'SubUnittest-' . $Helper->GetRandomID(); +my $SubQueueID = $QueueObject->QueueAdd( + Name => $QueueBefore . '::' . $SubQueueName, + GroupID => 1, + ValidID => 1, + SystemAddressID => 1, + SalutationID => 1, + SignatureID => 1, + Comment => 'Unittest sub queue', + UserID => 1, +); +$Self->True( + $SubQueueID, + "Queue:\'$SubQueueName\' is created new for testing.", +); + +my $TicketID2 = $TicketObject->TicketCreate( + Title => 'Ticket 2', + QueueID => $SubQueueID, + Lock => 'unlock', + Priority => '3 normal', + State => 'new', + CustomerNo => '123456', + CustomerUser => 'customer1@example.com', + OwnerID => 1, + UserID => 1, +); +push( @TicketIDs, $TicketID2 ); +$Self->True( + $TicketID2, + "TicketCreate() - $TicketID2", +); + +my %SubQueueIndex = $TicketObject->TicketAcceleratorIndex( + UserID => 1, + QueueID => $SubQueueID, + ShownQueueIDs => [$SubQueueID], +); + +for my $QueueIndex ( @{ $SubQueueIndex{Queues} } ) { + if ( $QueueIndex->{QueueID} == $SubQueueID ) { + $Self->Is( + $QueueIndex->{Queue}, + $QueueBefore . '::' . $SubQueueName, + "TicketAcceleratorIndex() is correct before parent queue update" + ); + } +} + +my $UpdatedParentQueueName = 'ChangedQueue-' . $Helper->GetRandomID(); +my $ParenQueueUpdate = $QueueObject->QueueUpdate( + %Queue, + Name => $UpdatedParentQueueName, + UserID => 1, +); +$Self->True( + $ParenQueueUpdate, + "QueueUpdate() - Parent queue '$QueueBefore' is changed to '$UpdatedParentQueueName'", +); + +%SubQueueIndex = $TicketObject->TicketAcceleratorIndex( + UserID => 1, + QueueID => $SubQueueID, + ShownQueueIDs => [$SubQueueID], +); + +for my $QueueIndex ( @{ $SubQueueIndex{Queues} } ) { + if ( $QueueIndex->{QueueID} == $SubQueueID ) { + $Self->Is( + $QueueIndex->{Queue}, + $UpdatedParentQueueName . '::' . $SubQueueName, + "TicketAcceleratorIndex() is correct after parent queue update" + ); + } +} + # delete tickets for my $TicketID (@TicketIDs) { $Self->True( diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminACL.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminACL.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminACL.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminACL.t 2018-02-05 23:46:54.000000000 +0000 @@ -15,13 +15,11 @@ use Selenium::Remote::WDKeys; use Kernel::Language; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); # defined user language for testing if message is being translated correctly @@ -43,7 +41,6 @@ UserLanguage => $Language, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # navigate to AdminACL screen @@ -86,7 +83,9 @@ # check client side validation my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#Name.Error').length" ); $Self->Is( $Selenium->execute_script( @@ -108,7 +107,7 @@ $Selenium->find_element( "#Name", 'css' )->send_keys( $TestACLNames[0] ); $Selenium->find_element( "#Comment", 'css' )->send_keys('Selenium Test ACL'); $Selenium->find_element( "#Description", 'css' )->send_keys('Selenium Test ACL'); - $Selenium->find_element( "#StopAfterMatch", 'css' )->VerifiedClick(); + $Selenium->find_element( "#StopAfterMatch", 'css' )->click(); $Selenium->execute_script("\$('#ValidID').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAppointmentCalendarManage.t 2018-02-05 23:46:54.000000000 +0000 @@ -122,10 +122,12 @@ $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('div.Dialog button#DialogButton1').length" ); - $Selenium->find_element( 'div.Dialog button#DialogButton1', 'css' )->VerifiedClick(); + $Selenium->find_element( 'div.Dialog button#DialogButton1', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('div.Dialog').length" + ); # Update calendar name - $Selenium->find_element( 'form#CalendarFrom input#CalendarName', 'css' )->VerifiedClick(); $Selenium->find_element( 'form#CalendarFrom input#CalendarName', 'css' )->clear(); $Selenium->find_element( 'form#CalendarFrom input#CalendarName', 'css' )->send_keys($CalendarName2); @@ -133,8 +135,15 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); # Add ticket appointment rule. - $Selenium->find_element( '.WidgetSimple.Collapsed .WidgetAction.Toggle a', 'css' )->VerifiedClick(); - $Selenium->find_element( '#AddRuleButton', 'css' )->VerifiedClick(); + $Selenium->execute_script( + "\$('.WidgetSimple.Collapsed:contains(Ticket Appointments) .WidgetAction.Toggle a').trigger('click')" + ); + $Selenium->WaitFor( + JavaScript => "return \$('.WidgetSimple.Expanded:contains(Ticket Appointments)').length" + ); + + $Selenium->find_element( '#AddRuleButton', 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#QueueID_1').length" ); $Selenium->execute_script( "\$('#QueueID_1').val('$QueueID').trigger('redraw.InputField').trigger('change');" ); @@ -143,14 +152,18 @@ $Selenium->execute_script( "\$('#SearchParams').val('Title').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( '.AddButton', 'css' )->VerifiedClick(); + $Selenium->find_element( '.AddButton', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#SearchParam_1_Title').length" + ); $Selenium->find_element( '#SearchParam_1_Title', 'css' )->send_keys('Test*'); $Selenium->find_element( 'form#CalendarFrom button#Submit', 'css' )->VerifiedClick(); # Filter added calendars. $Selenium->find_element( 'input#FilterCalendars', 'css' )->send_keys($RandomID); - - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.ContentColumn table tbody tr:visible').length === 2" + ); # Verify two calendars are shown. $Self->Is( @@ -164,7 +177,9 @@ # Filter just added calendar. $Selenium->find_element( 'input#FilterCalendars', 'css' )->clear(); $Selenium->find_element( 'input#FilterCalendars', 'css' )->send_keys($CalendarName2); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.ContentColumn table tbody tr:visible').length === 1" + ); # Verify only one calendar is shown. $Self->Is( @@ -211,15 +226,19 @@ ); # Remove the rule. - $Selenium->find_element( '.RemoveButton', 'css' )->VerifiedClick(); + $Selenium->find_element( '.RemoveButton', 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && !\$('#QueueID_1').length" ); $Selenium->find_element( 'form#CalendarFrom button#Submit', 'css' )->VerifiedClick(); # Verify the calendar is invalid temporarily. $Selenium->find_element( 'input#FilterCalendars', 'css' )->clear(); $Selenium->find_element( 'input#FilterCalendars', 'css' )->send_keys($CalendarName2); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.ContentColumn table tbody tr:visible').length === 1" + ); + $Self->Is( - $Selenium->execute_script("return \$('tbody tr:visible:eq(0) td:eq(3)').text()"),, + $Selenium->execute_script("return \$('tbody tr:visible:eq(0) td:eq(3)').text()"), $LanguageObject->Translate('invalid-temporarily'), 'Calendar is marked invalid temporarily', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAppointmentNotificationEvent.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,13 +12,11 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); # do not check RichText @@ -46,7 +44,6 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # navigate to AdminNotificationEvent screen @@ -90,10 +87,13 @@ } # toggle Ticket filter widget - $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_1')]")->VerifiedClick(); - - # toggle Article filter (Only for ArticleCreate and ArticleSend event) widget - $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_2')]")->VerifiedClick(); + $Selenium->execute_script( + "\$('.WidgetSimple.Collapsed:contains(Appointment Filter) .Toggle > a').trigger('click')" + ); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('.WidgetSimple.Expanded:contains(Appointment Filter)').length" + ); # create test NotificationEvent my $NotifEventRandomID = 'NotificationEvent' . $Helper->GetRandomID(); @@ -168,9 +168,6 @@ # edit test NotificationEvent and set it to invalid my $EditNotifEventText = "Selenium edited NotificationEvent test"; - # toggle Article filter (Only for ArticleCreate and ArticleSend event) widget - $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_2')]")->VerifiedClick(); - $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element( "#en_Body", 'css' )->clear(); $Selenium->find_element( "#en_Body", 'css' )->send_keys($EditNotifEventText); @@ -227,10 +224,13 @@ ); for my $Test (@Tests) { - $Selenium->find_element( "#EmailSecuritySettings", 'css' )->VerifiedClick(); - sleep 1; + $Selenium->find_element( "#EmailSecuritySettings", 'css' )->click(); for my $InputField (@InputFields) { + $Selenium->WaitFor( + JavaScript => "return \$('.AlreadyDisabled > input#$InputField').length === $Test->{HasClass}" + ); + $Self->Is( $Selenium->execute_script( "return \$('#$InputField').parent().hasClass('AlreadyDisabled')" @@ -296,7 +296,7 @@ . "/scripts/test/sample/NotificationEvent/Export_Notification_Appointment_reminder_notification.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingNotifications", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingNotifications", 'css' )->click(); $Selenium->find_element("//button[\@value=\'Upload Notification configuration']")->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAttachment.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAttachment.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAttachment.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAttachment.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,18 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $AttachmentObject = $Kernel::OM->Get('Kernel::System::StdAttachment'); - # get needed variables my $Home = $ConfigObject->Get('Home'); my %Attachments; my $Count; @@ -40,7 +37,6 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); # navigate to AdminAttachment screen @@ -219,7 +215,6 @@ }, ); - # run test for my $Test (@Tests) { $Selenium->find_element( "#FilterAttachments", 'css' )->clear(); $Selenium->find_element( "#FilterAttachments", 'css' )->send_keys( $Test->{Content}, "\N{U+E007}" ); @@ -258,28 +253,33 @@ $Selenium->execute_script( "\$('tbody tr:contains($Attachments{$File}) td .TrashCan').trigger('click')" ); + $Selenium->WaitFor( JavaScript => 'return $(".Dialog:visible").length === 1;' ); - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 1;' ); - - # verify delete dialog message + # Verify delete dialog message. my $DeleteMessage = "Do you really want to delete this attachment?"; $Self->True( - index( $Selenium->get_page_source(), $DeleteMessage ) > -1, - "Delete message is found", + $Selenium->execute_script( + "return \$('#DeleteAttachmentDialog:contains($DeleteMessage)').length" + ), + "Delete dialog message is found", ); - # confirm delete action - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); - - # if deleting was successful, the entry should have disappeared + # Confirm delete action. + $Selenium->find_element( "#DialogButton1", 'css' )->click(); $Selenium->WaitFor( JavaScript => - "return typeof(\$) === 'function' && \$('tbody tr:contains($Attachments{$File})').length === 0;" + "return !\$('.Dialog:visible').length && !\$('tbody tr:contains($Attachments{$File})').length" ); - # also, the dialog should be gone - $Selenium->WaitFor( JavaScript => 'return $(".Dialog:visible").length === 0;' ); + $Self->True( + $Selenium->execute_script( + "return \$('tbody tr:contains($Attachments{$File})').length === 0" + ), + "Attachment $Attachments{$File} is deleted", + ); } + + $Kernel::OM->Get('Kernel::System::Cache')->CleanUp(); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminAutoResponse.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,23 +12,21 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -39,30 +37,28 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminAutoResponse screen + # Navigate to AdminAutoResponse screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminAutoResponse"); - # check overview AdminAutoResponse + # Check overview AdminAutoResponse. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add auto response' + # Click 'Add auto response'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminAutoResponse;Subaction=Add' )]")->VerifiedClick(); - # get needed variables my $Count; - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. $Count = 1; for my $BreadcrumbText ( 'Auto Response Management', 'Add Auto Response' ) { $Self->Is( @@ -74,7 +70,7 @@ $Count++; } - # check page + # Check page. for my $ID ( qw(Name Subject RichText TypeID AddressID ValidID Comment) ) @@ -84,10 +80,12 @@ $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#Name.Error').length" ); $Self->Is( $Selenium->execute_script( @@ -97,20 +95,18 @@ 'Client side validation correctly detected missing input value', ); - # check form action + # Check form action. $Self->True( $Selenium->find_element( '#Submit', 'css' ), "Submit is found on Add screen.", ); - # get needed variables my $RandomNumber = $Helper->GetRandomNumber(); my @AutoResponseNames; - # create a real test auto responses for my $Item (qw(First Second)) { - # navigate to 'Add auto response' screen in second case + # Navigate to 'Add auto response' screen in second case. if ( $Item eq 'Second' ) { $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminAutoResponse;Subaction=Add"); } @@ -126,7 +122,7 @@ $Selenium->execute_script("\$('#ValidID').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check if test auto response show on AdminAutoResponse screen + # Check if test auto response show on AdminAutoResponse screen. $Self->Is( $Selenium->execute_script( "return \$('table tbody tr td:contains($AutoResponseName)').length" @@ -138,10 +134,10 @@ push @AutoResponseNames, $AutoResponseName; } - # edit test job and set it to invalid + # Edit test job and set it to invalid. $Selenium->find_element( $AutoResponseNames[0], 'link_text' )->VerifiedClick(); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Auto Response Management', @@ -157,7 +153,7 @@ $Count++; } - # check form actions + # Check form actions. for my $Action (qw(Submit SubmitAndContinue)) { $Self->True( $Selenium->find_element( "#$Action", 'css' ), @@ -171,7 +167,7 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check if edited auto response show on AdminAutoResponse + # Check if edited auto response show on AdminAutoResponse. $Self->Is( $Selenium->execute_script( "return \$('table tbody tr td:contains($AutoResponseNames[0])').length" @@ -180,7 +176,7 @@ "Auto response job '$AutoResponseNames[0]' is found in the table", ); - # check class of invalid AutoResponse in the overview table + # Check class of invalid AutoResponse in the overview table. $Self->Is( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($AutoResponseNames[0])').length" @@ -189,13 +185,16 @@ "There is a class 'Invalid' for auto response $AutoResponseNames[0]", ); - # navigate to AdminAutoResponse screen + # Navigate to AdminAutoResponse screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminAutoResponse"); - # filter auto responses + # Filter auto responses. $Selenium->find_element( "#FilterAutoResponses", 'css' )->clear(); $Selenium->find_element( "#FilterAutoResponses", 'css' )->send_keys( $AutoResponseNames[0], "\N{U+E007}" ); - sleep 1; + + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('table tbody tr:visible').length === 1" + ); $Self->Is( $Selenium->execute_script( @@ -213,9 +212,9 @@ "Auto response '$AutoResponseNames[1]' is not found in the table" ); - # cleanup - # since there are no tickets that rely on our test auto response, - # we can remove them from the DB + # Cleanup + # Since there are no tickets that rely on our test auto response, + # we can remove them from the DB. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Success; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCommunicationLog.t 2018-02-05 23:46:54.000000000 +0000 @@ -467,6 +467,16 @@ 'Error log filtered correctly' ); + # Try to navigate to invalid Communication ID, + # see bug#13523 (https://bugs.otrs.org/show_bug.cgi?id=13523). + my $RandomNumber = $Helper->GetRandomNumber(); + $Selenium->VerifiedGet( + "${ScriptAlias}index.pl?Action=AdminCommunicationLog;Subaction=Zoom;CommunicationID=$RandomNumber" + ); + + # Verify error screen. + $Selenium->find_element( 'div.ErrorScreen', 'css' ); + # Clean up all communications created by the test. $Self->True( $CommunicationLogDBObj->CommunicationDelete(), diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerCompany.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,29 +30,28 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminCustomerCompany screen + # Navigate to AdminCustomerCompany screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminCustomerCompany"); - # check overview AdminCustomerCompany + # Check overview AdminCustomerCompany. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); $Selenium->find_element( "#Source", 'css' ); $Selenium->find_element( "#Search", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add customer' link + # Click 'Add customer' link. $Selenium->find_element( "button.CallForAction", 'css' )->VerifiedClick(); - # check add customer screen + # Check add customer screen. for my $ID ( qw(CustomerID CustomerCompanyName CustomerCompanyComment ValidID) ) @@ -64,7 +61,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( 'Customer Management', 'Add Customer' ) { @@ -77,9 +74,12 @@ $Count++; } - # check client side validation + # Check client side validation. $Selenium->find_element( "#CustomerID", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#CustomerID.Error').length" + ); $Self->Is( $Selenium->execute_script( "return \$('#CustomerID').hasClass('Error')" @@ -88,7 +88,7 @@ 'Client side validation correctly detected missing input value', ); - # create a real test customer company + # Create a real test customer company. my $RandomID = 'TestCustomerCompany' . $Helper->GetRandomID(); $Selenium->find_element( "#CustomerID", 'css' )->send_keys($RandomID); $Selenium->find_element( "#CustomerCompanyName", 'css' )->send_keys($RandomID); @@ -97,20 +97,20 @@ $Selenium->find_element( "#CustomerCompanyZIP", 'css' )->send_keys('0'); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "$RandomID found on page", ); - #check is there notification 'Customer company added!' after customer is added + # Check is there notification 'Customer company added!' after customer is added. my $Notification = 'Customer company added!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # create another test customer company for filter search test + # Create another test customer company for filter search test. my $RandomID2 = 'TestCustomerCompany' . $Helper->GetRandomID(); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); $Selenium->find_element( "button.CallForAction", 'css' )->VerifiedClick(); @@ -118,18 +118,18 @@ $Selenium->find_element( "#CustomerCompanyName", 'css' )->send_keys($RandomID2); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # test search filter only for test Customer companies + # Test search filter only for test Customer companies. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys('TestCustomerCompany'); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check for another customer company + # Check for another customer company. $Self->True( index( $Selenium->get_page_source(), $RandomID2 ) > -1, "$RandomID2 found on page", ); - # test search filter by test customers $RandomID + # Test search filter by test customers $RandomID. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($RandomID); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); @@ -143,7 +143,7 @@ "$RandomID2 not found on page", ); - # check and edit new customer company + # Check and edit new customer company. my $LinkText = substr( $RandomID, 0, 17 ) . '...'; $Selenium->find_element( $LinkText, 'link_text' )->VerifiedClick(); @@ -174,7 +174,7 @@ "#CustomerCompanyComment updated value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Customer Management', 'Edit Customer: ' . $RandomID ) { $Self->Is( @@ -186,30 +186,30 @@ $Count++; } - # set test customer company to invalid and clear comment + # Set test customer company to invalid and clear comment. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#CustomerCompanyComment", 'css' )->clear(); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification 'Customer company updated!' after customer is updated + # Check is there notification 'Customer company updated!' after customer is updated. $Notification = 'Customer company updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # test search filter + # Test search filter. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($RandomID); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check class of invalid customer user in the overview table + # Check class of invalid customer user in the overview table. $Self->True( $Selenium->find_element( "tr.Invalid", 'css' ), "There is a class 'Invalid' for test Customer Company", ); - # delete created test customer companies + # Delete created test customer companies. for my $CustomerID ( $RandomID, $RandomID2 ) { my $Success = $Kernel::OM->Get('Kernel::System::DB')->Do( SQL => "DELETE FROM customer_company WHERE customer_id = ?", @@ -221,7 +221,7 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'CustomerCompany', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUserGroup.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,29 +12,27 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable check email address + # Disable check email address. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0 ); - # enable CustomerGroupSupport + # Enable CustomerGroupSupport. $Helper->ConfigSettingChange( Valid => 1, Key => 'CustomerGroupSupport', Value => 1 ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -45,7 +43,7 @@ Password => $TestUserLogin, ); - # create new CustomerUser for the tests + # Create new CustomerUser for the tests. my $UserRandomID = "user" . $Helper->GetRandomID(); my $CustomerUserID = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserAdd( UserFirstname => $UserRandomID, @@ -61,7 +59,7 @@ "CustomerUserAdd - $CustomerUserID", ); - # create new Group for the tests + # Create new Group for the tests. my $GroupRandomID = "group" . $Helper->GetRandomID(); my $GroupID = $Kernel::OM->Get('Kernel::System::Group')->GroupAdd( Name => $GroupRandomID, @@ -73,29 +71,27 @@ "GroupAdd - $GroupID", ); - # get config object my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AdminCustomerUserGroup + # Navigate to AdminCustomerUserGroup. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminCustomerUserGroup"); - # check overview AdminCustomerUserGroup + # Check overview AdminCustomerUserGroup. $Selenium->find_element( "#Customers", 'css' ); $Selenium->find_element( "#Group", 'css' ); $Selenium->find_element( "#CustomerUserSearch", 'css' ); $Selenium->find_element( "#FilterGroups", 'css' ); $Selenium->find_element( "#AlwaysGroups", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - #check for Customer default Groups + # Check for Customer default Groups. my @CustomerAlwaysGroups = @{ $ConfigObject->Get('CustomerGroupAlwaysGroups') }; if (@CustomerAlwaysGroups) { for my $AlwaysGroupID (@CustomerAlwaysGroups) { @@ -106,7 +102,7 @@ } } - # check for created test CustomerUser and Group on screen + # Check for created test CustomerUser and Group on screen. $Self->True( index( $Selenium->get_page_source(), $UserRandomID ) > -1, "$UserRandomID user found on page", @@ -116,7 +112,7 @@ "$GroupRandomID group found on page", ); - # test CustomerUser filter + # Test CustomerUser filter. $Selenium->find_element( "#CustomerUserSearch", 'css' )->clear(); $Selenium->find_element( "#CustomerUserSearch", 'css' )->send_keys($UserRandomID); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); @@ -126,23 +122,25 @@ "$UserRandomID user found on page", ); - # clear CustomerUser filter + # Clear CustomerUser filter. $Selenium->find_element( "#CustomerUserSearch", 'css' )->clear(); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); - # test Filter for Groups + # Test Filter for Groups. $Selenium->find_element( "#FilterGroups", 'css' )->send_keys($GroupRandomID); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Group li:not(.Header):visible').length === 1" + ); $Self->True( $Selenium->find_element( "$GroupRandomID", 'link_text' )->is_displayed(), "$GroupRandomID group found on page", ); - # change test CustomerUser relations for test Group + # Change test CustomerUser relations for test Group. $Selenium->find_element( $GroupRandomID, 'link_text' )->VerifiedClick(); - # check breadcrumb on change screen + # Check breadcrumb on change screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( @@ -162,8 +160,12 @@ $Selenium->find_element("//input[\@value='$UserRandomID'][\@name='rw']")->click(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check test Group relation for test CustomerUser + # Check test Group relation for test CustomerUser. my $CustomerUserLink = "$UserRandomID $UserRandomID <$UserRandomID\@localhost.com> ($UserRandomID)"; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('a:contains($CustomerUserLink)').length" + ); + $Selenium->find_element( $CustomerUserLink, 'link_text' )->VerifiedClick(); $Self->Is( @@ -177,16 +179,27 @@ "Read only permission for $GroupRandomID is enabled", ); - # remove test Group relation for test CustomerUser - $Selenium->find_element("//input[\@value='$GroupID'][\@name='rw']")->VerifiedClick(); - $Selenium->find_element("//input[\@value='$GroupID'][\@name='ro']")->VerifiedClick(); + # Remove test Group relation for test CustomerUser. + $Selenium->find_element("//input[\@value='$GroupID'][\@name='rw']")->click(); + $Selenium->find_element("//input[\@value='$GroupID'][\@name='ro']")->click(); + + $Self->Is( + $Selenium->find_element("//input[\@value='$GroupID'][\@name='rw']")->is_selected(), + 0, + "Full read and write permission for $GroupRandomID is disabled", + ); + $Self->Is( + $Selenium->find_element("//input[\@value='$GroupID'][\@name='ro']")->is_selected(), + 0, + "Read only permission for $GroupRandomID is disabled", + ); + $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); # Since there are no tickets that rely on our test CustomerUserGroup we can remove - # it from DB, delete test CustomerUser and test Group + # it from DB, delete test CustomerUser and test Group. if ($UserRandomID) { my $Success = $DBObject->Do( SQL => "DELETE FROM customer_user WHERE customer_id = ?", @@ -208,12 +221,11 @@ ); } - # make sure cache is correct - for my $Cache ( - qw(Group User DBGroupUserGet) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. + for my $Cache (qw(Group User DBGroupUserGet)) { + $CacheObject->CleanUp( Type => $Cache ); } } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUserService.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,36 +12,20 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable check email address + # Disable check email address. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0 ); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => ['admin'], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get script alias - my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - - # create test CustomerUser + # Create test CustomerUser. my $CustomerUserName = "CustomerUser" . $Helper->GetRandomID(); my $CustomerUserID = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserAdd( UserFirstname => $CustomerUserName, @@ -57,7 +41,7 @@ "CustomerUserAdd - $CustomerUserID", ); - # create test Service + # Create test Service. my $ServiceName = 'SomeService' . $Helper->GetRandomID(); my $ServiceID = $Kernel::OM->Get('Kernel::System::Service')->ServiceAdd( Name => $ServiceName, @@ -70,22 +54,35 @@ "ServiceAdd - $ServiceID", ); - # navigate AdminCustomerUserService screen + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => ['admin'], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + + # Navigate AdminCustomerUserService screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminCustomerUserService"); - # check overview AdminCustomerUserService + # Check overview AdminCustomerUserService. $Selenium->find_element( "#FilterServices", 'css' ); $Selenium->find_element( "#CustomerUserSearch", 'css' ); $Selenium->find_element( "#Customers", 'css' ); $Selenium->find_element( "#Service", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # test search filter for CustomerUser + # Test search filter for CustomerUser. $Selenium->find_element( "#CustomerUserSearch", 'css' )->clear(); $Selenium->find_element( "#CustomerUserSearch", 'css' )->send_keys($CustomerUserName); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); @@ -96,7 +93,7 @@ $Selenium->find_element( "#CustomerUserSearch", 'css' )->clear(); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); - # filter for service. It is auto complete, submit is not necessary + # Filter for service. It is auto complete, submit is not necessary. $Selenium->find_element( "#FilterServices", 'css' )->send_keys($ServiceName); $Self->True( $Selenium->find_element( "$ServiceName", 'link_text' )->is_displayed(), @@ -104,10 +101,10 @@ ); $Selenium->find_element( "#FilterServices", 'css' )->clear(); - # allocate test service to test customer user + # Allocate test service to test customer user. $Selenium->find_element("//a[contains(\@href, \'CustomerUserLogin=$CustomerUserName' )]")->VerifiedClick(); - # check breadcrumb on allocate screen + # Check breadcrumb on allocate screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( @@ -127,10 +124,10 @@ $Count++; } - $Selenium->find_element("//input[\@value='$ServiceID']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$ServiceID']")->click(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check test customer user allocation to test service + # Check test customer user allocation to test service. $Selenium->find_element( $ServiceName, 'link_text' )->VerifiedClick(); $Self->Is( @@ -139,11 +136,11 @@ "Service $ServiceName is active for CustomerUser $CustomerUserName", ); - # remove test customer user allocations from test service - $Selenium->find_element("//input[\@value=\"$CustomerUserName\"]")->VerifiedClick(); + # Remove test customer user allocations from test service. + $Selenium->find_element("//input[\@value=\"$CustomerUserName\"]")->click(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check if there is any test service allocation towards test customer user + # Check if there is any test service allocation towards test customer user $Selenium->find_element("//a[contains(\@href, \'CustomerUserLogin=$CustomerUserName' )]")->VerifiedClick(); $Self->Is( @@ -152,10 +149,9 @@ "Service $ServiceName is not active for CustomerUser $CustomerUserName", ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # delete created test customer user + # Delete created test customer user. if ($ServiceID) { my $Success = $DBObject->Do( SQL => "DELETE FROM service_customer_user WHERE service_id = $ServiceID", @@ -187,9 +183,11 @@ ); } - # make sure the cache is correct. + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw( CustomerUser Service )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( + $CacheObject->CleanUp( Type => $Cache, ); } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminCustomerUser.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,37 +12,22 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany'); - # disable check email address + # Disable check email address. $Helper->ConfigSettingChange( Valid => 1, Key => 'CheckEmailAddresses', Value => 0 ); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => ['admin'], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get customer company object - my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany'); - - # also create a CustomerCompany so that it can be selected in the dropdown + # Also create a CustomerCompany so that it can be selected in the dropdown. my $RandomID = 'TestCustomer' . $Helper->GetRandomID(); my $CustomerCompany = $CustomerCompanyObject->CustomerCompanyAdd( CustomerID => $RandomID, @@ -61,7 +46,7 @@ "CustomerCompanyAdd - $CustomerCompany", ); - # Also create a CustomerCompany so that it can be selected in the dropdown + # Also create a CustomerCompany so that it can be selected in the dropdown. my $RandomID2 = 'TestCustomer' . $Helper->GetRandomID(); my $CustomerCompany2 = $CustomerCompanyObject->CustomerCompanyAdd( CustomerID => $RandomID2, @@ -80,29 +65,39 @@ "CustomerCompanyAdd - $CustomerCompany2", ); - # get script alias + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => ['admin'], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminCustomerUser screen + # Navigate to AdminCustomerUser screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminCustomerUser"); - # check overview AdminCustomerCompany + # Check overview AdminCustomerCompany. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); $Selenium->find_element( "#Source", 'css' ); $Selenium->find_element( "#Search", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add customer' + # Click 'Add customer'. $Selenium->find_element( "button.CallForAction", 'css' )->VerifiedClick(); - # check add customer user screen + # Check add customer user screen. for my $ID ( qw(UserFirstname UserLastname UserLogin UserEmail UserCustomerID ValidID) ) @@ -112,7 +107,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( 'Customer User Management', 'Add Customer User' ) { @@ -125,9 +120,10 @@ $Count++; } - # check client side validation + # Check client side validation. $Selenium->find_element( "#UserFirstname", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#UserFirstname.Error').length" ); $Self->Is( $Selenium->execute_script( "return \$('#UserFirstname').hasClass('Error')" @@ -136,13 +132,13 @@ 'Client side validation correctly detected missing input value', ); - # navigate to AdminCustomerUser screen again + # Navigate to AdminCustomerUser screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminCustomerUser"); - # click 'Add customer' + # Click 'Add customer'. $Selenium->find_element( "button.CallForAction", 'css' )->VerifiedClick(); - # create a real test customer user + # Create a real test customer user. $Selenium->find_element( "#UserFirstname", 'css' )->send_keys($RandomID); $Selenium->find_element( "#UserLastname", 'css' )->send_keys($RandomID); $Selenium->find_element( "#UserLogin", 'css' )->send_keys($RandomID); @@ -158,13 +154,13 @@ $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "$RandomID found on page", ); - #check is there notification after customer user is added + # Check is there notification after customer user is added. my $Notification = "Customer $RandomID added ( New phone ticket - New email ticket )!"; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), @@ -180,7 +176,7 @@ $Selenium->find_element( "button.CallForAction", 'css' )->VerifiedClick(); - # Check add customer screen if auto complete is activated + # Check add customer screen if auto complete is activated. my $AutoCompleteElement = $Selenium->find_element( '.CustomerAutoCompleteSimple', 'css' ); $AutoCompleteElement->is_enabled(); $AutoCompleteElement->is_displayed(); @@ -190,12 +186,14 @@ $Selenium->find_element( "#UserLogin", 'css' )->send_keys($RandomID2); $Selenium->find_element( "#UserEmail", 'css' )->send_keys( $RandomID2 . "\@localhost.com" ); - # Try to add a not existing CustomerID + # Try to add a not existing CustomerID. $Selenium->find_element( "#UserCustomerID", 'css' )->send_keys( $RandomID2 . '-wrong' ); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal #DialogButton1').length" ); # Confirm JS error. $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return !\$('.Dialog.Modal').length" ); $Selenium->find_element( "#UserCustomerID", 'css' )->clear(); $Selenium->find_element( "#UserCustomerID", 'css' )->send_keys($RandomID2); @@ -210,18 +208,18 @@ Value => 0, ); - # test search filter only for test Customer users + # Test search filter only for test Customer users. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys('TestCustomer'); $Selenium->find_element( ".SearchBox button", 'css' )->VerifiedClick(); - # check for another customer user + # Check for another customer user. $Self->True( index( $Selenium->get_page_source(), $RandomID2 ) > -1, "$RandomID2 found on page", ); - # test search filter by customer user $RandomID + # Test search filter by customer user $RandomID. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($RandomID); $Selenium->find_element( ".SearchBox button", 'css' )->VerifiedClick(); @@ -236,7 +234,7 @@ "$RandomID2 not found on page", ); - # check and edit new customer user + # Check and edit new customer user. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -270,7 +268,7 @@ "#UserTimeZone updated value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Customer User Management', 'Edit Customer User: ' . $RandomID ) { $Self->Is( @@ -282,44 +280,43 @@ $Count++; } - # set test customer user to invalid + # Set test customer user to invalid. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check is there notification after customer user is updated + # Check is there notification after customer user is updated. $Notification = "Customer user updated!"; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # test search filter + # Test search filter. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($RandomID); $Selenium->find_element( ".SearchBox button", 'css' )->VerifiedClick(); - # check class of invalid customer user in the overview table + # Check class of invalid customer user in the overview table. $Self->True( $Selenium->find_element( "tr.Invalid", 'css' ), "There is a class 'Invalid' for test Customer User", ); - # navigate to AgentTicketPhone + # Navigate to AgentTicketPhone. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketPhone"); - # click on '[ Customer User ]' to test customer user creation from iframe + # Click on '[ Customer User ]' to test customer user creation from iframe. $Selenium->find_element( "#OptionCustomer", 'css' )->click(); - $Selenium->switch_to_frame( $Selenium->find_element( '.TextOption', 'css' ) ); - - # click to 'Add customer user' - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + $Selenium->SwitchToFrame( + FrameSelector => '.TextOption', + WaitForLoad => 1, ); + + # Click on 'Add customer user' button. $Selenium->find_element("//button[\@class='CallForAction Fullsize Center']")->VerifiedClick(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#UserFirstname").length' ); - # create new test customer user + # Create new test customer user. my $RandomID3 = 'TestCustomer' . $Helper->GetRandomID(); my $UserEmail = $RandomID3 . "\@localhost.com"; $Selenium->find_element( "#UserFirstname", 'css' )->send_keys($RandomID3); @@ -331,10 +328,10 @@ ); $Selenium->execute_script("\$('#Submit').click();"); - # return focus back on AgentTicketPhone window + # Return focus back on AgentTicketPhone window. $Selenium->switch_to_frame(); - # verify created customer user is added directly in AgentTicketPhone form + # Verify created customer user is added directly in AgentTicketPhone form. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#CustomerID").val().length' ); $Self->Is( $Selenium->find_element( "#CustomerID", 'css' )->get_value(), @@ -342,7 +339,7 @@ "Test customer user $RandomID3 is successfully created from AgentTicketPhone screen" ); - # verify created customer user is added directly in AgentTicketPhone form + # Verify created customer user is added directly in AgentTicketPhone form. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#CustomerID").val().length' ); $Self->Is( $Selenium->find_element( "#CustomerID", 'css' )->get_value(), @@ -376,12 +373,12 @@ $Selenium->find_element( "#UserLastname", 'css' )->send_keys('-edit'); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # test search filter only for test Customer users + # Test search filter only for test Customer users. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($RandomID2); $Selenium->find_element( ".SearchBox button", 'css' )->VerifiedClick(); - # check for another customer user + # Check for another customer user. $Self->True( index( $Selenium->get_page_source(), $RandomID2 ) > -1, "$RandomID2 found on page", @@ -400,10 +397,9 @@ "#UserLastname updated value", ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # delete created test customer user and customer company + # Delete created test customer user and customer company. for my $ID ( $RandomID, $RandomID2, $RandomID3 ) { my $Success = $DBObject->Do( SQL => "DELETE FROM customer_user WHERE login = ?", @@ -424,9 +420,11 @@ ); } - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw(CustomerCompany CustomerUser CustomerUser_CustomerSearch)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( + $CacheObject->CleanUp( Type => $Cache, ); } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminDynamicField.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminDynamicField.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminDynamicField.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminDynamicField.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,7 +14,6 @@ use Kernel::Language; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); my $CheckBredcrumb = sub { @@ -39,7 +38,6 @@ $Selenium->RunTest( sub { - # Get needed objects. my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); @@ -71,13 +69,11 @@ Password => $TestUserLogin, ); - # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # Navigate to AdminDynamiField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # Get language object. my $LanguageObject = Kernel::Language->new( UserLanguage => $Language, ); @@ -219,59 +215,21 @@ Name => $RandomID )->{ID}; - # Click on delete icon. - my $CheckConfirmJSBlock = <<"JAVASCRIPT"; -(function () { - var lastConfirm = undefined; - window.confirm = function (message) { - lastConfirm = message; - return false; // stop procedure at first try - }; - window.getLastConfirm = function () { - var result = lastConfirm; - lastConfirm = undefined; - return result; - }; -}()); -JAVASCRIPT - $Selenium->execute_script($CheckConfirmJSBlock); - $Selenium->find_element( "//a[contains(\@data-query-string, \'Subaction=DynamicFieldDelete;ID=$DynamicFieldID' )]" - )->VerifiedClick(); + )->click(); + + $Selenium->WaitFor( AlertPresent => 1 ); $Self->Is( - $Selenium->execute_script("return window.getLastConfirm()"), + $Selenium->get_alert_text(), $LanguageObject->Translate( 'Do you really want to delete this dynamic field? ALL associated data will be LOST!' ), - 'Check for opened confirm text', + 'Check for open confirm text', ); - my $CheckConfirmJSProceed = <<"JAVASCRIPT"; -(function () { - var lastConfirm = undefined; - window.confirm = function (message) { - lastConfirm = message; - return true; // allow procedure at second try - }; - window.getLastConfirm = function () { - var result = lastConfirm; - lastConfirm = undefined; - return result; - }; -}()); -JAVASCRIPT - $Selenium->execute_script($CheckConfirmJSProceed); - - $Selenium->find_element( - "//a[contains(\@data-query-string, \'Subaction=DynamicFieldDelete;ID=$DynamicFieldID' )]" - )->VerifiedClick(); - - # Wait for delete dialog to disappear. - $Selenium->WaitFor( - JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 0;' - ); + $Selenium->accept_alert(); # Navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); @@ -325,9 +283,12 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); # Set 10 fields per page. - $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->VerifiedClick(); + $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("#AdminDynamicFieldsOverviewPageShown").length' + ); $Selenium->execute_script( - "\$('#UserTicketOverviewMediumPageShown').val('10').trigger('redraw.InputField').trigger('change');" + "\$('#AdminDynamicFieldsOverviewPageShown').val('10').trigger('redraw.InputField').trigger('change');" ); $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminEmail.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminEmail.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminEmail.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminEmail.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,25 +14,23 @@ use Kernel::Language; -# get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $Language = 'de'; - # do not validate email addresses + # Do not validate email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -54,7 +52,7 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminEmail"); - # check page + # Check page. for my $ID ( qw(From UserIDs GroupIDs GroupPermissionRO GroupPermissionRW Subject RichText) ) @@ -64,7 +62,7 @@ $Element->is_displayed(); } - # if there are roles, there will be select box for roles in AdminEmail + # If there are roles, there will be select box for roles in AdminEmail. my %RoleList = $Kernel::OM->Get('Kernel::System::Group')->RoleList( Valid => 1 ); if (%RoleList) { my $Element = $Selenium->find_element( "#RoleIDs", 'css' ); @@ -78,10 +76,11 @@ "#From stored value", ); - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Subject", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Subject.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -91,7 +90,7 @@ 'Client side validation correctly detected missing input value', ); - # create test admin notification + # Create test admin notification. my $RandomID = $Helper->GetRandomID(); my $Text = "Selenium Admin Notification test"; my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( @@ -103,7 +102,7 @@ $Selenium->find_element( "#RichText", 'css' )->send_keys($Text); $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); - # check if test admin notification is success + # Check if test admin notification is success. my $LanguageObject = Kernel::Language->new( UserLanguage => $Language, ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericAgent.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,13 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # get needed variable my $RandomID = $Helper->GetRandomID(); # set generic agent run limit @@ -38,23 +35,16 @@ Value => 1, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - # get test user ID my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get dynamic field object my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); # create test dynamic field of type date @@ -135,7 +125,13 @@ } - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # navigate to AdminGenericAgent screen @@ -289,7 +285,7 @@ # see bug#12210 for more information $Selenium->find_element( "#DynamicField_${DynamicFieldName}Year", 'css' )->send_keys('2015'); - $Selenium->find_element( "#DynamicField_${CheckboxDynamicFieldName}Used1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DynamicField_${CheckboxDynamicFieldName}Used1", 'css' )->click(); # save job $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); @@ -303,7 +299,11 @@ # verify filter will show no result for invalid input my $InvalidName = 'Invalid' . $RandomID; $Selenium->find_element( "#FilterGenericAgentJobs", 'css' )->send_keys($InvalidName); - sleep 1; + + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('table tbody tr td:contains($GenericAgentJob):hidden').length === 1" + ); my $CSSDisplay = $Selenium->execute_script( "return \$('table tbody tr td:contains($GenericAgentJob)').parent().css('display')" @@ -318,7 +318,10 @@ # verify filter show correct result for valid input $Selenium->find_element( "#FilterGenericAgentJobs", 'css' )->clear(); $Selenium->find_element( "#FilterGenericAgentJobs", 'css' )->send_keys($GenericAgentJob); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('table tbody tr td:contains($GenericAgentJob):visible').length === 1" + ); $CSSDisplay = $Selenium->execute_script( "return \$('table tbody tr td:contains($GenericAgentJob)').parent().css('display')" diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceDebugger.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,21 +14,18 @@ use Kernel::GenericInterface::Debugger; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $WebserviceObject = $Kernel::OM->Get('Kernel::System::GenericInterface::Webservice'); - # define needed variables my $RandomID = $Helper->GetRandomID(); my $WebserviceName = "Selenium $RandomID web service"; - # create test web service + # Create test web service. my $WebserviceID = $WebserviceObject->WebserviceAdd( Config => { Debugger => { @@ -51,7 +48,7 @@ "Web service ID $WebserviceID is created" ); - # create debugger object + # Create debugger object. my $DebuggerObject = Kernel::GenericInterface::Debugger->new( DebuggerConfig => { DebugThreshold => 'debug', @@ -67,7 +64,7 @@ 'DebuggerObject instantiate correctly', ); - # create different debug log types + # Create different debug log types. my $Count = 1; my @Summaries; for my $LogType (qw( Debug Info Notice Error )) { @@ -87,7 +84,7 @@ push @Summaries, $Summary; } - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -98,25 +95,24 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminGenericInterfaceWebservice screen + # Navigate to AdminGenericInterfaceWebservice screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGenericInterfaceWebservice"); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click on created web service + # Click on created web service. $Selenium->find_element("//a[contains(\@href, 'WebserviceID=$WebserviceID')]")->VerifiedClick(); - # click on 'Debugger' button + # Click on 'Debugger' button. $Selenium->find_element( "span .fa.fa-bug", 'css' )->VerifiedClick(); - # check screen + # Check screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); @@ -131,7 +127,7 @@ $Element->is_displayed(); } - # check breadcrumb on Debugger screen + # Check breadcrumb on Debugger screen. my @Breadcrumbs = ( { Text => 'Web Service Management', @@ -155,41 +151,38 @@ $Count++; } - # verify CommunicationDetails are not visible + # Verify CommunicationDetails are not visible. $Self->Is( $Selenium->execute_script("return \$('#CommunicationDetails:visible').length;"), 0, "Communication details are not visible" ); - # wait if necessary $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".RequestListWidget.Loading").length' ); - # verify Provider log is present in table + # Verify Provider log is present in table. $Self->True( $Selenium->execute_script("return \$('#RequestList').find('tbody tr td a').text().trim();") =~ /^Provider/, "Debugger log type Provider is found in table" ); - # click on it - $Selenium->find_element( "Provider", 'link_text' )->VerifiedClick(); - - # wait if necessary + # Click on it. + $Selenium->find_element( "Provider", 'link_text' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#CommunicationDetails:visible").length' ); - # verify CommunicationDetails are visible + # Verify CommunicationDetails are visible. $Self->Is( $Selenium->execute_script("return \$('#CommunicationDetails:visible').length;"), 1, "Communication details are visible" ); - # verify request details are present + # Verify request details are present. for my $RequestSummary (@Summaries) { $Self->True( index( $Selenium->get_page_source(), $RequestSummary ) > -1, @@ -197,46 +190,51 @@ ); } - # change filter type to Requester + # Change filter type to Requester. $Selenium->execute_script("\$('#FilterType').val('Requester').trigger('redraw.InputField').trigger('change');"); - # click on 'Refresh' button and test JS GetRequestList function, expecting no result to find - $Selenium->find_element( "#FilterRefresh", 'css' )->VerifiedClick(); - - # wait if necessary + # Click on 'Refresh' button and test JS GetRequestList function, expecting no result to find. + $Selenium->find_element( "#FilterRefresh", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".RequestListWidget.Loading").length' ); - # verify log table is empty + # Verify log table is empty. $Self->Is( $Selenium->execute_script("return \$('#RequestList').find('tbody tr td a').text().trim();"), "", "Debugger log type Requester is not found in table- JS success" ); - # click to clear debugger log - $Selenium->find_element( "#DeleteButton", 'css' )->VerifiedClick(); + # Click to clear debugger log. + $Selenium->find_element( "#DeleteButton", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#DeleteDialog").length' + ); - # verify delete dialog text + # Verify delete dialog text. $Self->Is( - $Selenium->execute_script("return \$('p#DeleteDialog').text().trim();"), + $Selenium->execute_script("return \$('#DeleteDialog').text().trim();"), "Do you really want to clear the debug log of this web service?", 'Delete dialog text is found' ); - # click to clear debug log - $Selenium->find_element( "#DialogButton2", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton2", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && !$(".Dialog.Modal").length' + ); - # verify log table is empty + # Verify log table is empty. $Self->Is( $Selenium->execute_script("return \$('#RequestList').find('tbody tr td a').text().trim();"), "", "Debugger log table is empty after clear" ); - # delete test created web service + # Delete test created web service. my $Success = $WebserviceObject->WebserviceDelete( ID => $WebserviceID, UserID => 1, @@ -246,7 +244,7 @@ "Web service ID $WebserviceID is deleted" ); - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Webservice' ); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingSimple.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,20 +14,17 @@ use Kernel::GenericInterface::Debugger; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $WebserviceObject = $Kernel::OM->Get('Kernel::System::GenericInterface::Webservice'); - # define needed variable my $RandomID = $Helper->GetRandomID(); - # create test web service + # Create test web service. my $WebserviceID = $WebserviceObject->WebserviceAdd( Config => { Debugger => { @@ -50,7 +47,7 @@ "Web service ID $WebserviceID is created" ); - # create debugger object + # Create debugger object. my $DebuggerObject = Kernel::GenericInterface::Debugger->new( DebuggerConfig => { DebugThreshold => 'debug', @@ -66,7 +63,7 @@ 'DebuggerObject instantiate correctly', ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -77,22 +74,21 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminGenericInterfaceWebservice screen + # Navigate to AdminGenericInterfaceWebservice screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGenericInterfaceWebservice"); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click on created web service + # Click on created web service. $Selenium->find_element("//a[contains(\@href, 'WebserviceID=$WebserviceID')]")->VerifiedClick(); - # select 'Ticket::TicketCreate' as option + # Select 'Ticket::TicketCreate' as option. $Selenium->execute_script( "\$('#OperationList').val('Ticket::TicketCreate').trigger('redraw.InputField').trigger('change');" ); @@ -103,10 +99,10 @@ 'return typeof($) === "function" && $("#MappingInbound").length === 1 && $("#MappingOutbound").length === 1;' ); - # create web service operation + # Create web service operation. $Selenium->find_element( "#Operation", 'css' )->send_keys('SeleniumOperation'); - # select simple mapping for inbound and outbound data + # Select simple mapping for inbound and outbound data. $Selenium->execute_script( "\$('#MappingInbound').val('Simple').trigger('redraw.InputField').trigger('change');" ); @@ -119,7 +115,6 @@ "\$('#IncludeTicketData').val('1').trigger('redraw.InputField').trigger('change');" ); - # submit operation $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); # Verify ticket data option. @@ -129,10 +124,10 @@ 'Include ticket data set to Yes' ); - # click to configure inbound mapping simple + # Click to configure inbound mapping simple. $Selenium->find_element("//button[\@id='MappingInboundConfigureButton']")->VerifiedClick(); - # check screen + # Check screen. for my $ID ( qw(DefaultKeyType_Search DefaultValueType_Search DefaultKeyMapTo DefaultValueMapTo AddKeyMapping) ) @@ -142,7 +137,7 @@ $Element->is_displayed(); } - # check for breadcrumb on screen + # Check for breadcrumb on screen. my @Breadcrumbs = ( { Text => 'Web Service Management', @@ -169,7 +164,7 @@ $Count++; } - # verify DefaultKeyMapTo and DefaultValueMapTo are hidden with 'Keep (leave unchanged)' DefaultMapTo + # Verify DefaultKeyMapTo and DefaultValueMapTo are hidden with 'Keep (leave unchanged)' DefaultMapTo # and JS will show them when Map to (use provided value as default) is selected for my $DefaultMapTo (qw(DefaultKeyMapTo DefaultValueMapTo)) { $Self->True( @@ -179,7 +174,7 @@ "Field $DefaultMapTo is hidden" ); - # change default type + # Change default type. if ( $DefaultMapTo eq 'DefaultKeyMapTo' ) { $Selenium->execute_script( "\$('#DefaultKeyType').val('MapTo').trigger('redraw.InputField').trigger('change');" @@ -198,8 +193,11 @@ "Field $DefaultMapTo is shown" ); - # submit and check client side validation on MapTo fields - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + # Submit and check client side validation on MapTo fields. + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#$DefaultMapTo.Error').length" + ); $Self->Is( $Selenium->execute_script( @@ -209,21 +207,19 @@ "Client side validation correctly detected missing input value for field $DefaultMapTo", ); - # input field $Selenium->find_element( "#$DefaultMapTo", 'css' )->send_keys($DefaultMapTo); } - # add key map - $Selenium->find_element( "#AddKeyMapping", 'css' )->click(); - - # add value map + # Add key map and value map. + $Selenium->find_element( "#AddKeyMapping", 'css' )->click(); $Selenium->find_element( "#AddValueMapping1", 'css' )->click(); + $Selenium->find_element( "#Submit", 'css' )->click(); - # click on 'Save' - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - - # verify key and value mapping fields and check client side validation + # Verify key and value mapping fields and check client side validation. for my $MapFields (qw(KeyName1 KeyMapNew1 ValueName1_1 ValueMapNew1_1)) { + $Selenium->WaitFor( + JavaScript => "return \$('#$MapFields.Error').length" + ); $Self->Is( $Selenium->execute_script( "return \$('#$MapFields').hasClass('Error')" @@ -232,21 +228,20 @@ "Client side validation correctly detected missing input value for field $MapFields", ); - # input checked field my $InputField = $MapFields . $RandomID; $Selenium->find_element( "#$MapFields", 'css' )->send_keys($InputField); } - # click on 'Save' + # Click on 'Save'. $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); - # verify after 'Save' click it is the same screen + # Verify after 'Save' click it is the same screen. $Self->True( $Selenium->find_element( "#AddKeyMapping", 'css' ), 'After click on Save it is the same screen' ); - # click on 'Save and finish' test JS redirection + # Click on 'Save and finish' test JS redirection. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); $Self->True( @@ -254,10 +249,10 @@ 'JS redirection is successful to AdminGenericInterfaceOperationDefault screen' ); - # click to configure inbound mapping simple again + # Click to configure inbound mapping simple again. $Selenium->find_element("//button[\@id='MappingInboundConfigureButton']")->VerifiedClick(); - # verify inputed values + # Verify inputed values. my %FieldValues = ( DefaultKeyMapTo => 'DefaultKeyMapTo', DefaultValueMapTo => 'DefaultValueMapTo', @@ -275,7 +270,7 @@ ); } - # delete test created web service + # Delete test created web service. my $Success = $WebserviceObject->WebserviceDelete( ID => $WebserviceID, UserID => 1, @@ -285,7 +280,7 @@ "Web service ID $WebserviceID is deleted" ); - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Webservice' ); } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceMappingXSLT.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,13 +14,11 @@ use Kernel::GenericInterface::Debugger; -# Get selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # Get needed objects. my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $WebserviceObject = $Kernel::OM->Get('Kernel::System::GenericInterface::Webservice'); @@ -31,7 +29,6 @@ Value => 0, ); - # Define needed variable. my $RandomID = $Helper->GetRandomID(); # Create test web service. @@ -84,7 +81,6 @@ Password => $TestUserLogin, ); - # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # Navigate to AdminGenericInterfaceWebservice screen. @@ -158,7 +154,10 @@ } # Submit empty form and check client side validation. - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Template.Error').length" + ); $Self->Is( $Selenium->execute_script( @@ -172,10 +171,19 @@ $Selenium->find_element( "#Template", 'css' )->send_keys($RandomID); # Submit invalid XSLT. - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return $(".Dialog.Modal #DialogButton1").length' + ); # Click to confirm error and verify it. - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return !$(".Dialog.Modal").length' + ); + $Self->True( $Selenium->find_element( "#Accessibility_AlertMessage", 'css' ), "Error for invalid XSLT data is found" @@ -194,11 +202,20 @@ $Selenium->find_element( "#Template", 'css' )->send_keys($XSLTData); # Add invalid pre XSLT regex. - $Selenium->find_element( '#WidgetRegExFiltersPre', 'css' )->VerifiedClick(); - $Selenium->find_element( "#PreAddValue", 'css' )->VerifiedClick(); + $Selenium->find_element( '#WidgetRegExFiltersPre', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#WidgetRegExFiltersPre.Expanded').length" + ); + $Selenium->find_element( "#PreAddValue", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('.PreValueInsert .ValueRow #PreKey_1').length" + ); # Submit invalid pre XSLT regex. - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#PreKey_1.Error').length" + ); # Check client side validation. $Self->Is( @@ -210,20 +227,32 @@ ); # Add correct pre XSLT regex. - $Selenium->find_element( "#PreKey_1", 'css' )->send_keys( $RandomID . 'PreKey_1' ); - $Selenium->find_element( "#PreValue_1", 'css' )->send_keys( $RandomID . 'PreValue_1' ); - $Selenium->find_element( "#PreAddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#PreAddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#PreKey_2", 'css' )->send_keys( $RandomID . 'PreKey_2' ); - $Selenium->find_element( "#PreKey_3", 'css' )->send_keys( $RandomID . 'PreKey_3' ); - $Selenium->find_element( "#PreValue_3", 'css' )->send_keys( $RandomID . 'PreValue_3' ); + $Selenium->find_element( "#PreKey_1", 'css' )->send_keys( $RandomID . 'PreKey_1' ); + $Selenium->find_element( "#PreValue_1", 'css' )->send_keys( $RandomID . 'PreValue_1' ); + + $Selenium->find_element( "#PreAddValue", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('.PreValueInsert .ValueRow #PreKey_2').length" + ); + + $Selenium->find_element( "#PreAddValue", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('.PreValueInsert .ValueRow #PreKey_3').length" + ); + + $Selenium->find_element( "#PreKey_2", 'css' )->send_keys( $RandomID . 'PreKey_2' ); + $Selenium->find_element( "#PreKey_3", 'css' )->send_keys( $RandomID . 'PreKey_3' ); + $Selenium->find_element( "#PreValue_3", 'css' )->send_keys( $RandomID . 'PreValue_3' ); # Add post XSLT regex. - $Selenium->find_element( '#WidgetRegExFiltersPost', 'css' )->VerifiedClick(); - $Selenium->execute_script("\$('#PostAddValue').click();"); + $Selenium->find_element( '#WidgetRegExFiltersPost', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#WidgetRegExFiltersPost.Expanded').length" + ); + $Selenium->find_element( '#PostAddValue', 'css' )->click(); $Selenium->WaitFor( - JavaScript => 'return typeof($) === "function" && $("#PostKey_1").length' + JavaScript => "return \$('.PostValueInsert .ValueRow #PostKey_1').length" ); my $PostKey = $RandomID . 'PostKey_1'; @@ -237,19 +266,13 @@ ); # Click on 'Save and finish' test JS redirection. - $Selenium->execute_script("\$('#Submit').click();"); - - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' - ); + $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); $Self->True( index( $Selenium->get_current_url(), 'AdminGenericInterfaceOperationDefault' ) > -1, 'JS redirection is successful to AdminGenericInterfaceOperationDefault screen' ); - # Wait for page to load if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#MappingInboundConfigureButton").length' ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGenericInterfaceTransportHTTPREST.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,17 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $WebserviceObject = $Kernel::OM->Get('Kernel::System::GenericInterface::Webservice'); - # define needed variable my $RandomID = $Helper->GetRandomID(); - # create test web service + # Create test web service. my $WebserviceID = $WebserviceObject->WebserviceAdd( Config => { Debugger => { @@ -48,7 +45,7 @@ "Web service ID $WebserviceID is created" ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -59,34 +56,33 @@ Password => $TestUserLogin, ); - # get some variables my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); my $Home = $ConfigObject->Get('Home'); - # navigate to AdminGenericInterfaceWebservice screen + # Navigate to AdminGenericInterfaceWebservice screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGenericInterfaceWebservice"); - # click on created web service + # Click on created web service. $Selenium->find_element("//a[contains(\@href, 'WebserviceID=$WebserviceID')]")->VerifiedClick(); - # select 'HTTP::REST' as provider network transport + # Select 'HTTP::REST' as provider network transport. $Selenium->execute_script( "\$('#ProviderTransportList').val('HTTP::REST').trigger('redraw.InputField').trigger('change');" ); - # select 'HTTP::REST' as requester network transport + # Select 'HTTP::REST' as requester network transport. $Selenium->execute_script( "\$('#RequesterTransportList').val('HTTP::REST').trigger('redraw.InputField').trigger('change');" ); - # click on 'Save' + # Click on 'Save'. $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); - # click to configure provider network transport + # Click to configure provider network transport. $Selenium->find_element("//button[\@id='ProviderTransportProperties']")->VerifiedClick(); - # verify screen + # Verify screen. for my $ID ( qw(MaxLength KeepAlive) ) @@ -94,14 +90,13 @@ $Selenium->find_element( "#$ID", 'css' )->is_enabled(); } - # verify URL + # Verify URL. $Self->True( $Selenium->get_current_url() =~ /CommunicationType=Provider;Action=AdminGenericInterfaceTransportHTTPREST;Subaction=Add/, "Current URL on Add action is correct" ); - # input fields $Selenium->find_element( "#MaxLength", 'css' )->send_keys('1000'); $Selenium->execute_script("\$('#KeepAlive').val('1').trigger('redraw.InputField').trigger('change');"); @@ -109,7 +104,10 @@ $Selenium->find_element( "#AddValue", 'css' )->click(); # Click on 'Save' without entering anything to trigger client-side validation. - $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SubmitAndContinue", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('.DefaultValueKeyItem.Error').length && \$('.DefaultValueItem.Error').length" + ); # Check if errors are shown. $Self->True( @@ -129,16 +127,16 @@ $Selenium->find_element( '.DefaultValueKeyItem', 'css' )->send_keys('Key1'); $Selenium->find_element( '.DefaultValueItem', 'css' )->send_keys('Value1'); - # click on 'Save' + # Click on 'Save'. $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); - # verify URL is changed while we are on the same screen + # Verify URL is changed while we are on the same screen. $Self->True( $Selenium->get_current_url() =~ /Action=AdminGenericInterfaceTransportHTTPREST;Subaction=Change/, "Current URL after 'Save' button click is correct" ); - # verify saved fields + # Verify saved fields. $Self->Is( $Selenium->find_element( "#MaxLength", 'css' )->get_value(), '1000', @@ -160,17 +158,17 @@ 'Inputed value for DefaultValueItem field is correct' ); - # click on 'Save and finish' verify JS redirection + # Click on 'Save and finish' verify JS redirection. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); $Self->True( $Selenium->get_current_url() =~ /Action=AdminGenericInterfaceWebservice/, "Click on 'Save and finish' button - JS is successful" ); - # click to configure requester network transport + # Click to configure requester network transport. $Selenium->find_element("//button[\@id='RequesterTransportProperties']")->VerifiedClick(); - # verify screen + # Verify screen. for my $ID ( qw( Host DefaultCommand Timeout @@ -183,16 +181,19 @@ $Selenium->find_element( "#$ID", 'css' )->is_enabled(); } - # verify URL + # Verify URL. $Self->True( $Selenium->get_current_url() =~ /CommunicationType=Requester;Action=AdminGenericInterfaceTransportHTTPREST;Subaction=Add/, "Current URL on Add action is correct" ); - # click to 'Save' and verify client side validation for missing fields - $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); + # Click to 'Save' and verify client side validation for missing fields. + $Selenium->find_element( "#SubmitAndContinue", 'css' )->click(); for my $ValidationField (qw( Host )) { + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#$ValidationField.Error').length" + ); $Self->Is( $Selenium->execute_script( "return \$('#$ValidationField').hasClass('Error')" @@ -202,7 +203,8 @@ ); } - # verify certain fields are Hidden with default options, select appropriate option to trigger JS to remove Hidden class + # Verify certain fields are Hidden with default options, + # select appropriate option to trigger JS to remove Hidden class. my @RequesterJSFields = ( { CheckField => 'BasicAuthField', @@ -223,14 +225,14 @@ for my $Field (@RequesterJSFields) { - # change field to trigger JS (if necessary) + # Change field to trigger JS (if necessary). if ( $Field->{OptionValuePre} ) { $Selenium->execute_script( "\$('#$Field->{OptionField}').val('$Field->{OptionValuePre}').trigger('redraw.InputField').trigger('change');" ); } - # verify field is hidden + # Verify field is hidden. $Self->Is( $Selenium->execute_script( "return \$('.$Field->{CheckField}').hasClass('Hidden')" @@ -239,12 +241,12 @@ "$Field->{CheckField} field is hidden", ); - # change field to trigger JS + # Change field to trigger JS. $Selenium->execute_script( "\$('#$Field->{OptionField}').val('$Field->{OptionValue}').trigger('redraw.InputField').trigger('change');" ); - # verify JS removed Hidden class, fields are shown + # Verify JS removed Hidden class, fields are shown. $Self->Is( $Selenium->execute_script( "return \$('.$Field->{CheckField}').hasClass('Hidden')" @@ -254,7 +256,7 @@ ); } - # input fields + # Input fields. my %RequesterInputData = ( Host => 'TransportHost-' . $RandomID, BasicAuthUser => 'User' . $RandomID, @@ -272,16 +274,16 @@ $Selenium->find_element( "#$InputField", 'css' )->send_keys( $RequesterInputData{$InputField} ); } - # click on 'Save' + # Click on 'Save'. $Selenium->find_element( "#SubmitAndContinue", 'css' )->VerifiedClick(); - # verify URL is changed while we are on the same screen + # Verify URL is changed while we are on the same screen. $Self->True( $Selenium->get_current_url() =~ /Action=AdminGenericInterfaceTransportHTTPREST;Subaction=Change/, "Current URL after 'Save' button click is correct" ); - # verify saved fields + # Verify saved fields. for my $VerifyField ( sort keys %RequesterInputData ) { $Self->Is( $Selenium->find_element( "#$VerifyField", 'css' )->get_value(), @@ -290,14 +292,14 @@ ); } - # click on 'Save and finish' verify JS redirection + # Click on 'Save and finish' verify JS redirection. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); $Self->True( $Selenium->get_current_url() =~ /Action=AdminGenericInterfaceWebservice/, "Click on 'Save and finish' button - JS is successful" ); - # delete test created web service + # Delete test created web service. my $Success = $WebserviceObject->WebserviceDelete( ID => $WebserviceID, UserID => 1, @@ -307,7 +309,7 @@ "Web service ID $WebserviceID is deleted" ); - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Webservice' ); } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGroup.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGroup.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminGroup.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminGroup.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); @@ -42,28 +41,28 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGroup"); - # check overview AdminGroup + # Check overview AdminGroup. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add group' linK + # Click 'Add group' link. $Selenium->find_element("//button[\@value='Add'][\@type='submit']")->VerifiedClick(); - # check add page + # Check add page. my $Element = $Selenium->find_element( "#GroupName", 'css' ); $Element->is_displayed(); $Element->is_enabled(); $Selenium->find_element( "#Comment", 'css' ); $Selenium->find_element( "#ValidID", 'css' ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( 'Group Management', 'Add Group' ) { @@ -76,9 +75,13 @@ $Count++; } - # check client side validation + # Check client side validation. $Selenium->find_element( "#GroupName", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#GroupName.Error').length" + ); + $Self->Is( $Selenium->execute_script( "return \$('#GroupName').hasClass('Error')" @@ -87,15 +90,15 @@ 'Client side validation correctly detected missing input value', ); - # create a real test group + # Create a real test group. my $GroupName = 'TestGroup' . $Helper->GetRandomID(); $Selenium->find_element( "#GroupName", 'css' )->send_keys($GroupName); $Selenium->execute_script("\$('#ValidID').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->send_keys('Selenium test group'); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # after add group followed screen is AddUserGroup(Subaction=Group), - # there is posible to set permission for added group + # After add group followed screen is AddUserGroup(Subaction=Group), + # there is posible to set permission for added group. $Self->True( index( $Selenium->get_page_source(), $GroupName ) > -1, "$GroupName found on page", @@ -104,28 +107,28 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->click(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check if test group is present in AdminUserGroup + # Check if test group is present in AdminUserGroup. $Self->True( index( $Selenium->get_page_source(), $GroupName ) > -1, "$GroupName found on page", ); - # check overview AdminUserGroup + # Check overview AdminUserGroup. $Selenium->find_element( "div.Size1of2 #Users", 'css' ); $Selenium->find_element( "div.Size1of2 #Groups", 'css' ); - # edit test group permissions + # Edit test group permissions. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->VerifiedClick(); - $Selenium->find_element("//input[\@value='$UserID'][\@name='ro']")->VerifiedClick(); - $Selenium->find_element("//input[\@value='$UserID'][\@name='note']")->VerifiedClick(); - $Selenium->find_element("//input[\@value='$UserID'][\@name='owner']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->click(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='ro']")->click(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='note']")->click(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='owner']")->click(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check edited test group permissions + # Check edited test group permissions. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); $Self->Is( @@ -144,27 +147,31 @@ "rw permission for group $GroupName is disabled", ); - # go back to overview + # Go back to overview. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGroup"); - # try to change the name of the admin group and see if validation kicks in + # Try to change the name of the admin group and see if validation kicks in. $Selenium->find_element( 'admin', 'link_text' )->VerifiedClick(); $Selenium->find_element( "#GroupName", 'css' )->send_keys('some_other_name'); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + + # We should now see a dialog telling us changing the admin group name has some implications. + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length' + ); - # we should now see a dialog telling us changing the admin group name has some implications + # Cancel the action & go back to the overview. + $Selenium->find_element( "#DialogButton1", 'css' )->click(); $Selenium->WaitFor( - JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 1;' + JavaScript => 'return typeof($) === "function" && !$(".Dialog:visible").length' ); - # cancel the action & go back to the overview - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminGroup"); - # check link to AdminGroup from AdminUserGroup + # Check link to AdminGroup from AdminUserGroup. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - # check test group values + # Check test group values. $Self->Is( $Selenium->find_element( '#GroupName', 'css' )->get_value(), $GroupName, @@ -181,7 +188,7 @@ "#Comment stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Group Management', 'Edit Group: ' . $GroupName ) { $Self->Is( @@ -193,19 +200,19 @@ $Count++; } - # set test group to invalid + # Set test group to invalid. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification after group is updated + # Check is there notification after group is updated. my $Notification = 'Group updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # chack class of invalid Group in the overview table + # Check class of invalid Group in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($GroupName)').length" @@ -215,25 +222,21 @@ # Navigate to Admin User Group page. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUserGroup"); + $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + JavaScript => "return typeof(\$) === 'function' && \$('a[href*=\"ID=$UserID\"]').length" ); # Select test agent. $Selenium->find_element("//a[contains(\@href, \'ID=$UserID' )]")->VerifiedClick(); - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' - ); - # Test checkboxes... + # Test checkboxes. if ( $Selenium->execute_script("return \$('#SelectAllrw:checked').length") ) { # Check if top level inputs are disabled. $Self->Is( $Selenium->execute_script( - "return \$('table th:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table th:nth-child(2) input:not([name=rw])').prop('disabled')" ), 1, "Top row inputs are disabled.", @@ -242,19 +245,24 @@ # Check if bottom level inputs are disabled. $Self->Is( $Selenium->execute_script( - "return \$('table td:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table td:nth-child(2) input:not([name=rw])').prop('disabled')" ), 1, "Table inputs are disabled.", ); # Click on Master Switch. - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); + + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('table th:nth-child(2) input:not([name=rw])').prop('disabled') === false && \$('table td:nth-child(2) input:not([name=rw])').prop('disabled') === false" + ); # Check if top level inputs are enabled. $Self->Is( $Selenium->execute_script( - "return \$('table th:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table th:nth-child(2) input:not([name=rw])').prop('disabled')" ), 0, "Top row inputs are enabled.", @@ -263,7 +271,7 @@ # Check if bottom level inputs are enabled. $Self->Is( $Selenium->execute_script( - "return \$('table td:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table td:nth-child(2) input:not([name=rw])').prop('disabled')" ), 0, "Table inputs are enabled.", @@ -273,12 +281,17 @@ else { # Click on Master Switch. - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); + + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('table th:nth-child(2) input:not([name=rw])').prop('disabled') === true && \$('table td:nth-child(2) input:not([name=rw])').prop('disabled') === true" + ); # Check if top level inputs are disabled. $Self->Is( $Selenium->execute_script( - "return \$('table th:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table th:nth-child(2) input:not([name=rw])').prop('disabled')" ), 1, "Top row inputs are disabled.", @@ -287,7 +300,7 @@ # Check if bottom level inputs are disabled. $Self->Is( $Selenium->execute_script( - "return \$('table td:nth-child(2) input:not([name=\"rw\"])').prop('disabled')" + "return \$('table td:nth-child(2) input:not([name=rw])').prop('disabled')" ), 1, "Table inputs are disabled.", @@ -305,7 +318,7 @@ # Click on Master check if not already checked. if ( !$Selenium->execute_script("return \$('#SelectAllrw:checked').length") ) { - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); } $Selenium->WaitFor( @@ -313,16 +326,21 @@ ); # Remove selected filter. - $Selenium->find_element( ".FilterRemove", 'css' )->VerifiedClick(); + $Selenium->find_element( ".FilterRemove", 'css' )->click(); + + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("table td:nth-child(2) input:not([name=rw])").prop("disabled") === true' + ); # Check if first line is disabled. $Self->Is( - $Selenium->execute_script("return \$('table td:nth-child(2) input:not([name=\"rw\"])').prop('disabled')"), + $Selenium->execute_script("return \$('table td:nth-child(2) input:not([name=rw])').prop('disabled')"), 1, "First line is disabled.", ); - # since there are no tickets that rely on our test group, we can remove them again + # Since there are no tickets that rely on our test group, we can remove them again # from the DB. if ($GroupName) { my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); @@ -351,11 +369,9 @@ ); } - # make sure the cache is correct. + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Group' ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminLog.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminLog.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminLog.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminLog.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,29 +12,25 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get log object my $LogObject = $Kernel::OM->Get('Kernel::System::Log'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - - # set log module in sysconfig + # Set log module in sysconfig. $Helper->ConfigSettingChange( Valid => 1, Key => 'LogModule', Value => 'Kernel::System::Log::SysLog', ); - # clear log + # Clear log. $LogObject->CleanUp(); - # destroy and instantiate log object + # Destroy and instantiate log object. $Kernel::OM->ObjectsDiscard( Objects => ['Kernel::System::Log'] ); $Kernel::OM->ObjectParamAdd( 'Kernel::System::Log' => { @@ -45,7 +41,7 @@ my @LogMessages; - # create log entries + # Create log entries. for ( 0 .. 1 ) { my $LogMessage = 'LogMessage' . $Helper->GetRandomNumber(); @@ -57,7 +53,7 @@ push @LogMessages, $LogMessage; } - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -68,10 +64,9 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminLog screen + # Navigate to AdminLog screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminLog"); # filter with the first log entry @@ -79,7 +74,7 @@ $Selenium->find_element( "#FilterLogEntries", 'css' )->send_keys( $LogMessages[0], "\N{U+E007}" ); sleep 1; - # check if the first log entry is shown in the table + # Check if the first log entry is shown in the table. $Self->Is( $Selenium->execute_script( "return \$('#LogEntries tr td:contains($LogMessages[0])').parent().css('display')" @@ -88,7 +83,7 @@ "First log entry exists in the table", ); - # check if the second log entry is not shown in the table + # Check if the second log entry is not shown in the table. $Self->Is( $Selenium->execute_script( "return \$('#LogEntries tr td:contains($LogMessages[1])').parent().css('display')" @@ -97,11 +92,13 @@ "Second log entry does not exist in the table", ); - # click on 'Hide this message' - $Selenium->find_element( "#HideHint", 'css' )->VerifiedClick(); - sleep 1; + # Click on 'Hide this message'. + $Selenium->find_element( "#HideHint", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $(".SidebarColumn:hidden").length' + ); - # check if sidebar column is shown + # Check if sidebar column is shown. $Self->Is( $Selenium->execute_script( "return \$('.SidebarColumn').css('display')" @@ -110,10 +107,10 @@ "Sidebar column is not visible on the screen", ); - # clear log + # Clear log. $LogObject->CleanUp(); - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp(); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminNotificationEvent.t 2018-02-05 23:46:54.000000000 +0000 @@ -314,10 +314,13 @@ ); for my $Test (@Tests) { - $Selenium->find_element( "#EmailSecuritySettings", 'css' )->VerifiedClick(); - sleep 1; + $Selenium->find_element( "#EmailSecuritySettings", 'css' )->click(); for my $InputField (@InputFields) { + $Selenium->WaitFor( + JavaScript => "return \$('.AlreadyDisabled #$InputField').length === $Test->{HasClass}" + ); + $Self->Is( $Selenium->execute_script( "return \$('#$InputField').parent().hasClass('AlreadyDisabled')" @@ -344,18 +347,10 @@ Name => $NotifEventRandomID ); - # Click on delete icon. - my $CheckConfirmJS = <<"JAVASCRIPT"; -(function () { - window.confirm = function (message) { - return true; - }; -}()); -JAVASCRIPT - $Selenium->execute_script($CheckConfirmJS); - # Delete test SLA with delete button. - $Selenium->find_element("//a[contains(\@href, \'Subaction=Delete;ID=$NotifEventID{ID}' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@href, \'Subaction=Delete;ID=$NotifEventID{ID}' )]")->click(); + $Selenium->WaitFor( AlertPresent => 1 ); + $Selenium->accept_alert(); # Check if test NotificationEvent is deleted. $Self->False( @@ -383,7 +378,7 @@ . "/scripts/test/sample/NotificationEvent/Export_Notification_Ticket_create_notification.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingNotifications", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingNotifications", 'css' )->click(); $Selenium->find_element("//button[\@value=\'Upload Notification configuration']")->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminQueue.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminQueue.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminQueue.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminQueue.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,27 +30,26 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminQueue screen + # Navigate to AdminQueue screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminQueue"); - # check overview AdminQueue + # Check overview AdminQueue. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'add new queue' link + # Click 'add new queue' link. $Selenium->find_element( "a.Create", 'css' )->VerifiedClick(); - # check add page + # Check add page. for my $ID ( qw(Name GroupID FollowUpID FollowUpLock SalutationID SystemAddressID SignatureID ValidID) ) @@ -62,7 +59,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Queues', 'Add Queue' ) { $Self->Is( @@ -74,12 +71,15 @@ $Count++; } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #$Element->VerifiedClick("button#Submit"); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("#Name.Error").length' + ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -88,13 +88,13 @@ 'Client side validation correctly detected missing input value', ); - # navigate to AdminQueue screen again + # Navigate to AdminQueue screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminQueue"); - # create test queue + # Create test queue. $Selenium->find_element( "a.Create", 'css' )->VerifiedClick(); - # create a real test queue + # Create a real test queue. my $RandomID = "Queue" . $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); @@ -107,10 +107,10 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys('Selenium test queue'); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # navigate to AdminQueue screen again + # Navigate to AdminQueue screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminQueue"); - # check Queue - Responses page + # Check Queue - Responses page. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, 'New queue found on table' @@ -119,10 +119,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new queue again + # Go to new queue again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new queue values + # Check new queue values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -169,7 +169,7 @@ "#Comment stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Manage Queues', 'Edit Queue: ' . $RandomID ) { $Self->Is( @@ -181,24 +181,24 @@ $Count++; } - # set test queue to invalid + # Set test queue to invalid. $Selenium->execute_script("\$('#GroupID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#FollowUpLock').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification after queue is updated + # Check is there notification after queue is updated. my $Notification = 'Queue updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # navigate to AdminQueue screen again + # Navigate to AdminQueue screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminQueue"); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, 'New queue found on table' @@ -208,7 +208,7 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check class of invalid Queue in the overview table + # Check class of invalid Queue in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($RandomID)').length" @@ -216,10 +216,10 @@ "There is a class 'Invalid' for test Queue", ); - # go to new state again + # Go to new state again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new queue values + # Check new queue values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -246,8 +246,8 @@ "#Comment updated value", ); - # since there are no tickets that rely on our test queue, we can remove them again - # from the DB + # Since there are no tickets that rely on our test queue, we can remove them again + # from the DB. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $QueueID = $Kernel::OM->Get('Kernel::System::Queue')->QueueLookup( Queue => $RandomID, @@ -267,7 +267,7 @@ "QueueDelete - $RandomID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Queue', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminQueueTemplates.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,34 +12,24 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - - # add test queue + # Add test queue. my $QueueName = "queue" . $Helper->GetRandomID(); my $QueueID = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd( Name => $QueueName, @@ -56,11 +46,10 @@ "Created Queue - $QueueName", ); - # get standard template object my $StandardTemplateObject = $Kernel::OM->Get('Kernel::System::StandardTemplate'); my @Templates; - # create test template + # Create test templates. for ( 1 .. 2 ) { my $StandardTemplateName = "standard template" . $Helper->GetRandomID(); my $TemplateID = $StandardTemplateObject->StandardTemplateAdd( @@ -84,10 +73,18 @@ push @Templates, \%Template; } - # check overview AdminQueueTemplates screen + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + + # Check overview AdminQueueTemplates screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminQueueTemplates"); - # check overview AdminQueueTemplates + # Check overview AdminQueueTemplates. for my $ID ( qw(Templates Queues FilterTemplates FilterQueues) ) @@ -97,13 +94,13 @@ $Element->is_displayed(); } - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # check for test template and test queue on screen + # Check for test template and test queue on screen. $Self->True( index( $Selenium->get_page_source(), $Templates[0]->{Name} ) > -1, "$Templates[0]->{Name} found on screen" @@ -113,10 +110,13 @@ "$QueueName found on screen" ); - # test search filters + # Test search filters. $Selenium->find_element( "#FilterTemplates", 'css' )->send_keys( $Templates[0]->{Name} ); $Selenium->find_element( "#FilterQueues", 'css' )->send_keys($QueueName); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('a[href*=\"Subaction=Template;ID=$Templates[0]->{TemplateID}\"]').length && \$('a[href*=\"Subaction=Queue;ID=$QueueID\"]').length" + ); $Self->True( $Selenium->find_element("//a[contains(\@href, \'Subaction=Template;ID=$Templates[0]->{TemplateID}' )]") @@ -129,11 +129,11 @@ "$QueueName found on screen with filter on", ); - # change test Queue relation for the first Template + # Change test Queue relation for the first Template. $Selenium->find_element("//a[contains(\@href, \'Subaction=Template;ID=$Templates[0]->{TemplateID}' )]") ->VerifiedClick(); - # check breadcrumb on change screen + # Check breadcrumb on change screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Template-Queue Relations', @@ -149,37 +149,53 @@ $Count++; } - $Selenium->find_element("//input[\@value='$QueueID'][\@type='checkbox']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$QueueID'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$QueueID][type=checkbox]:checked').length" + ); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # change test Template relation for test Queue + # Change test Template relation for test Queue. $Selenium->find_element("//a[contains(\@href, \'Subaction=Queue;ID=$QueueID' )]")->VerifiedClick(); - $Selenium->find_element("//input[\@value='$Templates[1]->{TemplateID}'][\@type='checkbox']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$Templates[1]->{TemplateID}'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$Templates[1]->{TemplateID}][type=checkbox]:checked').length" + ); - # test checked and unchecked values while filter is used for Template - # test filter with "WrongFilterTemplate" to uncheck all values + # Test checked and unchecked values while filter is used for Template. + # Test filter with "WrongFilterTemplate" to uncheck all values. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterTemplate"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.FilterMessage.Hidden > td:visible').length" + ); - # test is no data matches + # Test is no data matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); - # check template filter with existing Template + # Check template filter with existing Template. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys( $Templates[1]->{Name} ); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$Templates[1]->{TemplateID}][type=checkbox]:visible').length" + ); - # uncheck the second test standard template - $Selenium->find_element("//input[\@value='$Templates[1]->{TemplateID}'][\@type='checkbox']")->VerifiedClick(); + # Uncheck the second test standard template. + $Selenium->find_element("//input[\@value='$Templates[1]->{TemplateID}'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => "return !\$('input[value=$Templates[1]->{TemplateID}][type=checkbox]:checked').length" + ); - # test checked and unchecked values after using filter + # Test checked and unchecked values after using filter. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("StandardTemplate"); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return \$('input[value=$Templates[0]->{TemplateID}][type=checkbox]').length && \$('input[value=$Templates[1]->{TemplateID}][type=checkbox]').length" + ); $Self->Is( $Selenium->find_element("//input[\@value='$Templates[0]->{TemplateID}'][\@type='checkbox']")->is_selected(), @@ -192,8 +208,8 @@ "$QueueName is not in a relation with $Templates[1]->{Name}", ); - # since there are no tickets that rely on our test QueueTemplate, - # we can remove test template and test queue from the DB + # Since there are no tickets that rely on our test QueueTemplate, + # we can remove test template and test queue from the DB. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Success; if ($QueueID) { @@ -225,7 +241,7 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "Queue", ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRoleGroup.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,27 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => ['admin'], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - #add test role + # Add test role. my $RoleName = $Helper->GetRandomID(); my $RoleID = $Kernel::OM->Get('Kernel::System::Group')->RoleAdd( Name => $RoleName, @@ -44,7 +31,7 @@ "Created Role - $RoleName", ); - # add test group + # Add test group. my $GroupName = $Helper->GetRandomID(); my $GroupID = $Kernel::OM->Get('Kernel::System::Group')->GroupAdd( Name => $GroupName, @@ -56,17 +43,27 @@ "Created Group - $RoleName", ); - # get script alias + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => ['admin'], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminRoleGroup screen + # Navigate to AdminRoleGroup screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminRoleGroup"); - # check overview AdminRoleGroup + # Check overview AdminRoleGroup. $Selenium->find_element( "#Roles", 'css' ); $Selenium->find_element( "#Groups", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", @@ -82,31 +79,10 @@ "$GroupName group found on page", ); - # test filter for Roles - $Selenium->find_element( "#FilterRoles", 'css' )->send_keys($RoleName); - sleep 1; - $Self->True( - $Selenium->find_element( "$RoleName", 'link_text' )->is_displayed(), - "$RoleName role found on page", - ); - - # test filter for Groups - $Selenium->find_element( "#FilterGroups", 'css' )->send_keys($GroupName); - sleep 1; - $Self->True( - $Selenium->find_element( "$GroupName", 'link_text' )->is_displayed(), - "$GroupName group found on page", - ); - - # clear test filter for Roles and Groups - $Selenium->find_element( "#FilterRoles", 'css' )->clear(); - $Selenium->find_element( "#FilterGroups", 'css' )->clear(); - sleep 1; - - # edit group relations for test role + # Edit group relations for test role. $Selenium->find_element( $RoleName, 'link_text' )->VerifiedClick(); - # check breadcrumb on change screen + # Check breadcrumb on change screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Role-Group Relations', @@ -122,9 +98,12 @@ $Count++; } - # set permissions + # Set permissions. for my $Permission (qw(ro note owner)) { - $Selenium->find_element("//input[\@value='$GroupID'][\@name='$Permission']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$GroupID'][\@name='$Permission']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$GroupID][name=$Permission]:checked').length" + ); } $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); @@ -149,10 +128,10 @@ 'rw' => 0, ); - # check edited test group permissions + # Check edited test group permissions. $Selenium->find_element( $RoleName, 'link_text' )->VerifiedClick(); - # check permissions + # Check permissions. for my $Permission ( sort keys %TestFirst ) { my $Enabled = $TestFirst{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -162,20 +141,22 @@ ); } - # test checked and unchecked values while filter by group is used - # test filter with "WrongFilterGroup" to uncheck all values + # Test checked and unchecked values while filter by group is used. + # Test filter with "WrongFilterGroup" to uncheck all values. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterGroup"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('.FilterMessage.Hidden > td:visible').length" + ); - # test if no data is matches + # Test if no data is matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); $Selenium->find_element( "#Filter", 'css' )->clear(); - # check permissions + # Check permissions. for my $Permission ( sort keys %TestFirst ) { my $Enabled = $TestFirst{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -185,22 +166,27 @@ ); } - # navigate to AdminRoleGroup screen again + # Navigate to AdminRoleGroup screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminRoleGroup"); - # edit role relations for test group + # Edit role relations for test group. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - # set permissions + # Set permissions. for my $Permission (qw(note move_into priority create)) { - $Selenium->find_element("//input[\@value='$RoleID'][\@name='$Permission']")->VerifiedClick(); + my $Length = $Permission eq 'note' ? 0 : 1; + + $Selenium->find_element("//input[\@value='$RoleID'][\@name='$Permission']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$RoleID][name=$Permission]:checked').length === $Length" + ); } $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check edited test group permissions + # Check edited test group permissions. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - # check permissions + # Check permissions. for my $Permission ( sort keys %TestSecond ) { my $Enabled = $TestSecond{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -210,21 +196,23 @@ ); } - # test checked and unchecked values while filter is used for Role - # test filter with "WrongFilterRole" to uncheck all values + # Test checked and unchecked values while filter is used for Role. + # Test filter with "WrongFilterRole" to uncheck all values. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterRole"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('.FilterMessage.Hidden > td:visible').length" + ); - # test is no data matches + # Test is no data matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); $Selenium->find_element( "#Filter", 'css' )->clear(); - # check role relations for group after using filter by role - # check permissions + # Check role relations for group after using filter by role. + # Check permissions. for my $Permission ( sort keys %TestSecond ) { my $Enabled = $TestSecond{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -234,7 +222,7 @@ ); } - # since there are no tickets that rely on our test group and role, we can remove them again + # Since there are no tickets that rely on our test group and role, we can remove them again # from the DB my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); if ($GroupID) { @@ -269,14 +257,11 @@ ); } - # make sure the cache is correct. - for my $Cache ( - qw (Group Role) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. + for my $Cache (qw(Group Role)) { + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRole.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRole.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRole.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRole.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,16 +14,14 @@ use Kernel::Language; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $Language = 'de'; my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], @@ -36,26 +34,24 @@ Password => $TestUserLogin, ); - # get language object my $LanguageObject = Kernel::Language->new( UserLanguage => $Language, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminRole screen + # Navigate to AdminRole screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminRole"); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # check roles overview screen, + # Check roles overview screen, # if there are roles, check is there table on screen - # otherwise check is there a message that no roles are defined + # otherwise check is there a message that no roles are defined. my %RoleList = $Kernel::OM->Get('Kernel::System::Group')->RoleList(); if (%RoleList) { $Selenium->find_element( "table", 'css' ); @@ -74,20 +70,20 @@ ); } - # click 'add new role' linK + # Click 'add new role' link. $Selenium->find_element("//a[contains(\@href, \'Action=AdminRole;Subaction=Add' )]")->VerifiedClick(); - # check add page + # Check add page. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->is_displayed(); $Element->is_enabled(); $Selenium->find_element( "#Comment", 'css' ); $Selenium->find_element( "#ValidID", 'css' ); - # define translated strings + # Define translated strings. my $RoleManagement = $LanguageObject->Translate('Role Management'); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( $RoleManagement, @@ -103,9 +99,13 @@ $Count++; } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); + $Selenium->find_element("//button[\@type='submit']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#Name.Error').length" + ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -114,7 +114,7 @@ 'Client side validation correctly detected missing input value', ); - # create a real test role + # Create a real test role. my $RandomID = 'TestRole' . $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); $Selenium->execute_script("\$('#ValidID').val('1').trigger('redraw.InputField').trigger('change');"); @@ -129,17 +129,17 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - #check is there notification 'Role added!' after role is added + # Check is there notification 'Role added!' after role is added. my $Notification = $LanguageObject->Translate('Role added!'); $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # go to new role again + # Go to new role again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new role values + # Check new role values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -156,7 +156,7 @@ "#Comment stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( $RoleManagement, @@ -172,25 +172,25 @@ $Count++; } - # set test role to invalid + # Set test role to invalid. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "$RandomID found on page", ); - #check is there notification 'Role updated!' after role is updated + # Check is there notification 'Role updated!' after role is updated. $Notification = $LanguageObject->Translate('Role updated!'); $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # chack class of invalid Role in the overview table + # Check class of invalid Role in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($RandomID)').length" @@ -202,10 +202,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new role again + # Go to new role again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new role values + # Check new role values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -222,8 +222,8 @@ "#Comment updated value", ); - # since there are no tickets that rely on our test roles, we can remove them again - # from the DB + # Since there are no tickets that rely on our test roles, we can remove them again + # from the DB. if ($RandomID) { my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); $RandomID = $DBObject->Quote($RandomID); @@ -237,7 +237,7 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Group', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRoleUser.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRoleUser.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminRoleUser.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminRoleUser.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,32 +12,24 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - #add test role + # Add test role. my $RoleName = "role" . $Helper->GetRandomID(); my $RoleID = $Kernel::OM->Get('Kernel::System::Group')->RoleAdd( @@ -50,13 +42,19 @@ "Created Role - $RoleName", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminRoleUser screen + # Navigate to AdminRoleUser screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminRoleUser"); - # check overview AdminRoleUser + # Check overview AdminRoleUser. $Selenium->find_element( "#Users", 'css' ); $Selenium->find_element( "#Roles", 'css' ); $Selenium->find_element( "#FilterUsers", 'css' ); @@ -72,40 +70,26 @@ "$RoleName role found on page", ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # test filter for Users - $Selenium->find_element( "#FilterUsers", 'css' )->send_keys($TestUserLogin); - sleep 1; - - $Self->True( - $Selenium->find_element( "$FullUserID", 'link_text' )->is_displayed(), - "$TestUserLogin user found on page", - ); - - # test filter for Roles - $Selenium->find_element( "#FilterRoles", 'css' )->send_keys($RoleName); - sleep 1; + # Change test role relation for test user. + $Selenium->find_element( $FullUserID, 'link_text' )->VerifiedClick(); - $Self->True( - $Selenium->find_element( "$RoleName", 'link_text' )->is_displayed(), - "$RoleName role found on page", + $Selenium->find_element("//input[\@value='$RoleID']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$RoleID]:checked:visible').length" ); - # change test role relation for test user - $Selenium->find_element( $FullUserID, 'link_text' )->VerifiedClick(); - - $Selenium->find_element("//input[\@value='$RoleID']")->VerifiedClick(); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - #check and edit test user relation for test role + # Check and edit test user relation for test role. $Selenium->find_element( $RoleName, 'link_text' )->VerifiedClick(); - # check breadcrumb on change screen + # Check breadcrumb on change screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Role-Agent Relations', @@ -127,33 +111,42 @@ "Role $RoleName relation for user $TestUserLogin is enabled", ); - # test checked and unchecked values while filter by role is used - # test filter with "WrongFilterRole" to uncheck a value + # Test checked and unchecked values while filter by role is used. + # Test filter with "WrongFilterRole" to uncheck a value. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterRole"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('.FilterMessage.Hidden > td:visible').length" + ); - # test if no data is matches + # Test if no data is matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); + $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys($TestUserLogin); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$UserID]:checked:visible').length" + ); - # check role relation for agent after using filter by agent + # Check role relation for agent after using filter by agent. $Self->Is( $Selenium->find_element("//input[\@value='$UserID']")->is_selected(), 1, "Role $RoleName relation for user $TestUserLogin is enabled", ); - # remove test relation - $Selenium->find_element("//input[\@value='$UserID']")->VerifiedClick(); + # Remove test relation. + $Selenium->find_element("//input[\@value='$UserID']")->click(); + $Selenium->WaitFor( + JavaScript => "return !\$('input[value=$RoleID]:checked:visible').length" + ); + $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check if relation is clear + # Check if relation is clear. $Selenium->find_element( $RoleName, 'link_text' )->VerifiedClick(); $Self->Is( @@ -162,29 +155,34 @@ "User $TestUserLogin is not in relation with role $RoleName", ); - # test checked and unchecked values while filter by user is used - # test filter with "WrongFilterRole" to uncheck a value + # Test checked and unchecked values while filter by user is used. + # Test filter with "WrongFilterRole" to uncheck a value. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterRole"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('.FilterMessage.Hidden > td:visible').length" + ); - # test if no data is matches + # Test if no data is matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); + $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys($RoleName); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return !\$('input[value=$RoleID]:checked:visible').length" + ); - # check role relation for agent after using filter by role + # Check role relation for agent after using filter by role. $Self->Is( $Selenium->find_element("//input[\@value='$RoleID']")->is_selected(), 0, "User $TestUserLogin is not in relation with role $RoleName", ); - # since there are no tickets that rely on our test role we can remove it from DB + # Since there are no tickets that rely on our test role we can remove it from DB. if ($RoleID) { my $Success = $Kernel::OM->Get('Kernel::System::DB')->Do( SQL => "DELETE FROM roles WHERE id = $RoleID", @@ -195,13 +193,11 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Group' ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSalutation.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSalutation.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSalutation.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSalutation.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); @@ -20,16 +19,16 @@ $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -43,18 +42,18 @@ my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSalutation"); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add salutation' + # Click 'Add salutation'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminSalutation;Subaction=Add' )]")->VerifiedClick(); for my $ID ( qw(Name RichText ValidID Comment) @@ -65,7 +64,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Salutation Management', 'Add Salutation' ) { $Self->Is( @@ -77,10 +76,13 @@ $Count++; } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); + $Selenium->find_element("//button[\@type='submit']")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" + ); $Self->Is( $Selenium->execute_script( @@ -90,7 +92,7 @@ 'Client side validation correctly detected missing input value', ); - # create real test Salutation + # Create real test Salutation. my $SalutationRandomID = "Salutation" . $Helper->GetRandomID(); my $SalutationRichText = "Dear >,\n\nThank you for your request."; my $SalutationComment = "Selenium Salutation test"; @@ -100,13 +102,13 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($SalutationComment); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check if test Salutation show on AdminSalutation screen + # Check if test Salutation show on AdminSalutation screen. $Self->True( index( $Selenium->get_page_source(), $SalutationRandomID ) > -1, "$SalutationRandomID Salutation found on page", ); - # check test Salutation values + # Check test Salutation values. $Selenium->find_element( $SalutationRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -130,7 +132,7 @@ "#ValidID stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Salutation Management', 'Edit Salutation: ' . $SalutationRandomID ) { $Self->Is( @@ -142,7 +144,7 @@ $Count++; } - # edit test Salutation, clear comment and set it to invalid + # Edit test Salutation, clear comment and set it to invalid. my $EditSalutationRichText = "Dear ,\n\nThank you for your request."; $Selenium->find_element( "#RichText", 'css' )->clear(); @@ -151,7 +153,7 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check edited Salutation + # Check edited Salutation. $Selenium->find_element( $SalutationRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -170,10 +172,10 @@ "#ValidID updated value", ); - # go back to AdminSalutation overview screen + # Go back to AdminSalutation overview screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSalutation"); - # chack class of invalid Salutation in the overview table + # Check class of invalid Salutation in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($SalutationRandomID)').length" @@ -181,7 +183,7 @@ "There is a class 'Invalid' for test Salutation", ); - # since there are no tickets that rely on our test Salutation, we can remove them + # Since there are no tickets that rely on our test Salutation, we can remove them # again from the DB. if ($SalutationRandomID) { $SalutationRandomID = $DBObject->Quote($SalutationRandomID); @@ -197,13 +199,11 @@ } } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Salutation' ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSelectBox.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSelectBox.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSelectBox.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSelectBox.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,15 +30,18 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminSelectBox screen + # Navigate to AdminSelectBox screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSelectBox"); - # empty SQL statement, check client side validation + # Empty SQL statement, check client side validation. $Selenium->find_element( "#SQL", 'css' )->clear(); - $Selenium->find_element( "#Run", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Run", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#SQL.Error').length" + ); + $Self->Is( $Selenium->execute_script( "return \$('#SQL').hasClass('Error')" @@ -49,10 +50,11 @@ 'Client side validation correctly detected missing input value for #SQL', ); - # wrong SQL statement, check server side validation + # Wrong SQL statement, check server side validation. $Selenium->find_element( "#SQL", 'css' )->clear(); $Selenium->find_element( "#SQL", 'css' )->send_keys("SELECT * FROM"); $Selenium->find_element( "#Run", 'css' )->VerifiedClick(); + $Self->Is( $Selenium->execute_script( "return \$('#SQL').hasClass('ServerError')" @@ -61,14 +63,20 @@ 'Server side validation correctly detected missing input value for #SQL', ); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.Dialog.Modal #DialogButton1').length" + ); $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return !\$('.Dialog.Modal').length" + ); - # correct SQL statement + # Correct SQL statement. $Selenium->find_element( "#SQL", 'css' )->clear(); $Selenium->find_element( "#SQL", 'css' )->send_keys("SELECT * FROM valid"); $Selenium->find_element( "#Run", 'css' )->VerifiedClick(); - # verify results + # Verify results. my @Elements = $Selenium->find_elements( 'table thead tr', 'css' ); $Self->Is( scalar @Elements, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminService.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminService.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminService.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminService.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,29 +30,30 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminService screen + # Navigate to AdminService screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminService"); - # check overview AdminService screen + # Check overview AdminService screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add Service' + # Click 'Add Service'. $Selenium->find_element("//a[contains(\@href, \'ServiceEdit;ServiceID=NEW' )]")->VerifiedClick(); - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -63,13 +62,13 @@ 'Client side validation correctly detected missing input value', ); - # navigate to AdminService screen again + # Navigate to AdminService screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminService"); - # click 'Add new service' + # Click 'Add new service'. $Selenium->find_element("//a[contains(\@href, \'ServiceEdit;ServiceID=NEW' )]")->VerifiedClick(); - # check add Service screen + # Check add Service screen. for my $ID ( qw(Name ParentID ValidID Comment) ) @@ -79,7 +78,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Service Management', 'Add Service' ) { $Self->Is( @@ -91,7 +90,7 @@ $Count++; } - # create first test Service + # Create first test Service. my $ServiceRandomID = "service" . $Helper->GetRandomID(); my $ServiceComment = "Selenium test Service"; @@ -99,7 +98,7 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($ServiceComment); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # create second test Service + # Create second test Service. $Selenium->find_element("//a[contains(\@href, \'ServiceEdit;ServiceID=NEW' )]")->VerifiedClick(); my $ServiceRandomID2 = "service" . $Helper->GetRandomID(); @@ -108,7 +107,7 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($ServiceComment); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for created test Services on AdminService screen + # Check for created test Services on AdminService screen. $Self->True( index( $Selenium->get_page_source(), $ServiceRandomID ) > -1, "$ServiceRandomID Service found on page", @@ -118,7 +117,7 @@ "$ServiceRandomID2 Service found on page", ); - # check new test Service values + # Check new test Service values. $Selenium->find_element( $ServiceRandomID2, 'link_text' )->VerifiedClick(); $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), @@ -136,7 +135,7 @@ "#ValidID stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Service Management', 'Edit Service: ' . $ServiceRandomID2 ) { $Self->Is( @@ -148,10 +147,9 @@ $Count++; } - # get service object my $ServiceObject = $Kernel::OM->Get('Kernel::System::Service'); - # get test Services IDs + # Get test Services IDs. my @ServiceIDs; my $ServiceID = $ServiceObject->ServiceLookup( Name => $ServiceRandomID, @@ -163,13 +161,13 @@ ); push @ServiceIDs, $ServiceID2; - # edit second test Service + # Edit second test Service. $Selenium->execute_script("\$('#ParentID').val('$ServiceID').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check class of invalid Service in the overview table + # Check class of invalid Service in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($ServiceRandomID)').length" @@ -177,7 +175,7 @@ "There is a class 'Invalid' for test Service", ); - # check edited test Selenium values + # Check edited test Selenium values. my $ServiceUpdatedRandomID2 = "$ServiceRandomID\::$ServiceRandomID2"; $Selenium->find_element( $ServiceUpdatedRandomID2, 'link_text' )->VerifiedClick(); @@ -199,7 +197,7 @@ $Selenium->execute_script("\$('#ParentID').val('').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # create third test Service + # Create third test Service. $Selenium->find_element("//a[contains(\@href, \'ServiceEdit;ServiceID=NEW' )]")->VerifiedClick(); my $ServiceRandomID3 = "Long service" . $Helper->GetRandomID(); @@ -217,11 +215,14 @@ index( $Selenium->get_page_source(), $ServiceRandomID3 ) > -1, "$ServiceRandomID3 Service found on page", ); + $Selenium->WaitFor( JavaScript => 'return $(".Dialog:visible button.Close").length', ); - - $Selenium->find_element( ".Dialog button.Close", "css" )->VerifiedClick(); + $Selenium->find_element( ".Dialog button.Close", "css" )->click(); + $Selenium->WaitFor( + JavaScript => 'return !$(".Dialog:visible button.Close").length', + ); # Check if tooltip error message is there. $Self->True( @@ -248,13 +249,11 @@ ); } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Service' ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSignature.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSignature.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSignature.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSignature.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); @@ -20,10 +19,9 @@ $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -43,18 +41,18 @@ my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSignature"); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add signature' + # Click 'Add signature'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminSignature;Subaction=Add' )]")->VerifiedClick(); for my $ID ( qw(Name RichText ValidID Comment) @@ -65,10 +63,11 @@ $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); $Self->Is( $Selenium->execute_script( @@ -78,7 +77,7 @@ 'Client side validation correctly detected missing input value', ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Signature Management', 'Add Signature' ) { $Self->Is( @@ -90,7 +89,7 @@ $Count++; } - # create real test Signature + # Create real test Signature. my $SignatureRandomID = "Signature" . $Helper->GetRandomID(); # Also check leading and trailing white space. @@ -102,20 +101,20 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($SignatureComment); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check if test Signature show on AdminSignature screen + # Check if test Signature show on AdminSignature screen. $Self->True( index( $Selenium->get_page_source(), $SignatureRandomID ) > -1, "$SignatureRandomID Signature found on page", ); - #check is there notification after service is added + # Check is there notification after service is added. my $Notification = 'Signature added!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # check test Signature values + # Check test Signature values. $Selenium->find_element( $SignatureRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -139,7 +138,7 @@ "#ValidID stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Signature Management', 'Edit Signature: ' . $SignatureRandomID ) { $Self->Is( @@ -151,7 +150,7 @@ $Count++; } - # edit test Signature, clear comment and set it to invalid + # Edit test Signature, clear comment and set it to invalid. my $EditSignatureRichText = "Your Ticket-Team \n\n "; @@ -161,14 +160,14 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification after service is updated + # Check is there notification after service is updated. $Notification = 'Signature updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # check class of invalid Signature in the overview table + # Check class of invalid Signature in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($SignatureRandomID)').length" @@ -176,7 +175,7 @@ "There is a class 'Invalid' for test Signature", ); - # check edited Signature + # Check edited Signature. $Selenium->find_element( $SignatureRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -211,7 +210,7 @@ } } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Signature' ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSLA.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSLA.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSLA.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSLA.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get needed objects my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); @@ -36,21 +35,21 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSLA"); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click "Add SLA" + # Click "Add SLA". $Selenium->find_element("//a[contains(\@href, \'Subaction=SLAEdit' )]")->VerifiedClick(); - # check add SLA screen + # Check add SLA screen. for my $ID ( qw(Name ServiceIDs Calendar FirstResponseTime FirstResponseNotify UpdateTime UpdateNotify SolutionTime SolutionNotify ValidID Comment) @@ -61,9 +60,13 @@ $Element->is_displayed(); } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); + $Selenium->find_element("//button[\@type='submit']")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" + ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -72,7 +75,7 @@ 'Client side validation correctly detected missing input value', ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'SLA Management', 'Add SLA' ) { $Self->Is( @@ -84,7 +87,7 @@ $Count++; } - # create test SLA + # Create test SLA. my $SLARandomID = "SLA" . $Helper->GetRandomID(); my $SLAComment = "Selenium SLA test"; @@ -92,13 +95,13 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($SLAComment); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check if test SLA show on AdminSLA screen + # Check if test SLA show on AdminSLA screen. $Self->True( index( $Selenium->get_page_source(), $SLARandomID ) > -1, "$SLARandomID SLA found on page", ); - # check test SLA values + # Check test SLA values. $Selenium->find_element( $SLARandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -117,7 +120,7 @@ "#ValidID stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'SLA Management', 'Edit SLA: ' . $SLARandomID ) { $Self->Is( @@ -129,12 +132,12 @@ $Count++; } - # remove test SLA comment and set it to invalid + # Remove test SLA comment and set it to invalid. $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # check class of invalid SLA in the overview table + # Check class of invalid SLA in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($SLARandomID)').length" @@ -142,7 +145,7 @@ "There is a class 'Invalid' for test SLA", ); - # check edited SLA values + # Check edited SLA values. $Selenium->find_element( $SLARandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -156,7 +159,7 @@ "#ValidID stored value", ); - # since there are no tickets that rely on our test SLA we can remove it from DB + # Since there are no tickets that rely on our test SLA we can remove it from DB. my $SLAID = $Kernel::OM->Get('Kernel::System::SLA')->SLALookup( Name => $SLARandomID, ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSMIME.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSMIME.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSMIME.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSMIME.t 2018-02-05 23:46:54.000000000 +0000 @@ -13,30 +13,15 @@ use vars (qw($Self)); use File::Path (); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => ['admin'], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get needed objects + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # create directory for certificates and private keys + # Create directory for certificates and private keys. my $CertPath = $ConfigObject->Get('Home') . "/var/tmp/certs"; my $PrivatePath = $ConfigObject->Get('Home') . "/var/tmp/private"; File::Path::rmtree($CertPath); @@ -44,26 +29,36 @@ File::Path::make_path( $CertPath, { chmod => 0770 } ); ## no critic File::Path::make_path( $PrivatePath, { chmod => 0770 } ); ## no critic - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - - # disabled SMIME in config + # Disabled SMIME in config. $Helper->ConfigSettingChange( Valid => 1, Key => 'SMIME', Value => 0 ); - # navigate to AdminSMIME screen + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => ['admin'], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + + # Navigate to AdminSMIME screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSMIME"); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # check widget sidebar when SMIME sysconfig is disabled + # Check widget sidebar when SMIME sysconfig is disabled. $Self->True( $Selenium->find_element( 'h3 span.Warning', 'css' ), "Widget sidebar with warning message is displayed.", @@ -73,14 +68,14 @@ "Button 'Enable it here!' to the SMIME SysConfig is displayed.", ); - # enable SMIME in config + # Enable SMIME in config. $Helper->ConfigSettingChange( Valid => 1, Key => 'SMIME', Value => 1 ); - # set SMIME paths in sysConfig + # Set SMIME paths in sysConfig. $Helper->ConfigSettingChange( Valid => 1, Key => 'SMIME::CertPath', @@ -92,10 +87,10 @@ Value => '/SomePrivatePath', ); - # refresh AdminSMIME screen + # Refresh AdminSMIME screen. $Selenium->VerifiedRefresh(); - # check widget sidebar when SMIME sysconfig does not work + # Check widget sidebar when SMIME sysconfig does not work. $Self->True( $Selenium->find_element( 'h3 span.Error', 'css' ), "Widget sidebar with error message is displayed.", @@ -105,7 +100,7 @@ "Button 'Configure it here!' to the SMIME SysConfig is displayed.", ); - # set SMIME paths in sysConfig + # Set SMIME paths in sysConfig. $Helper->ConfigSettingChange( Valid => 1, Key => 'SMIME::CertPath', @@ -117,19 +112,19 @@ Value => $PrivatePath, ); - # refresh AdminSMIME screen + # Refresh AdminSMIME screen. $Selenium->VerifiedRefresh(); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); $Selenium->find_element( "#FilterSMIME", 'css' ); - # click 'Add certificate' + # Click 'Add certificate'. $Selenium->find_element("//a[contains(\@href, \'Subaction=ShowAddCertificate' )]")->VerifiedClick(); - # check breadcrumb on 'Add Certificate' screen + # Check breadcrumb on 'Add Certificate' screen. my $Count = 1; for my $BreadcrumbText ( 'S/MIME Management', 'Add Certificate' ) { $Self->Is( @@ -141,17 +136,17 @@ $Count++; } - # add certificate + # Add certificate. my $CertLocation = $ConfigObject->Get('Home') . "/scripts/test/sample/SMIME/SMIMECertificate-smimeuser1.crt"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($CertLocation); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # click 'Add private key' + # Click 'Add private key'. $Selenium->find_element("//a[contains(\@href, \'Subaction=ShowAddPrivate' )]")->VerifiedClick(); - # check breadcrumb on 'Add Private Key' screen + # Check breadcrumb on 'Add Private Key' screen. $Count = 1; for my $BreadcrumbText ( 'S/MIME Management', 'Add Private Key' ) { $Self->Is( @@ -163,7 +158,7 @@ $Count++; } - # add private key + # Add private key. my $PrivateLocation = $ConfigObject->Get('Home') . "/scripts/test/sample/SMIME/SMIMEPrivateKey-smimeuser1.pem"; @@ -171,14 +166,14 @@ $Selenium->find_element( "#Secret", 'css' )->send_keys("secret"); $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); - # click to 'Read certificate', verify JS will open a pop up window - $Selenium->find_element( ".CertificateRead", 'css' )->VerifiedClick(); + # Click to 'Read certificate', verify JS will open a pop up window. + $Selenium->find_element( ".CertificateRead", 'css' )->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # Wait for page to be fully loaded + # Wait for page to be fully loaded. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("a.CancelClosePopup:visible").length === 1;' ); @@ -188,11 +183,11 @@ "Pop-up window is found - JS is successful" ); - # switch window back + # Switch window back. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # check for test created Certificate and Privatekey and delete them + # Check for test created Certificate and Privatekey and delete them. for my $TestSMIME (qw(key cert)) { $Self->True( @@ -201,10 +196,7 @@ ); $Selenium->find_element("//a[contains(\@href, \'Subaction=Delete;Type=$TestSMIME;Filename=' )]")->click(); - $Selenium->WaitFor( AlertPresent => 1 ); - - # accept JS delete confirmation dialog $Selenium->accept_alert(); $Selenium->WaitFor( @@ -213,7 +205,7 @@ ); } - # delete needed test directories + # Delete needed test directories. for my $Directory ( $CertPath, $PrivatePath ) { my $Success = File::Path::rmtree( [$Directory] ); $Self->True( diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminState.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminState.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminState.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminState.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,10 +30,9 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminState screen + # Navigate to AdminState screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminState"); $Self->True( @@ -46,23 +43,23 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'add new state' link + # Click 'add new state' link. $Selenium->find_element( "a.Create", 'css' )->VerifiedClick(); - # check add page + # Check add page. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->is_displayed(); $Element->is_enabled(); $Selenium->find_element( "#TypeID", 'css' ); $Selenium->find_element( "#ValidID", 'css' ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'State Management', 'Add State' ) { $Self->Is( @@ -74,9 +71,11 @@ $Count++; } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -85,7 +84,7 @@ 'Client side validation correctly detected missing input value', ); - # create a real test state + # Create a real test state. my $RandomID = "State" . $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); @@ -94,7 +93,7 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys('Selenium test state'); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), 'closed successful' ) > -1, 'closed successful found on page', @@ -107,10 +106,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new state again + # Go to new state again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new state values + # Check new state values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -132,7 +131,7 @@ "#Comment stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'State Management', 'Edit State: ' . $RandomID ) { $Self->Is( @@ -144,13 +143,13 @@ $Count++; } - # set test state to invalid + # Set test state to invalid. $Selenium->execute_script("\$('#TypeID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check class of invalid State in the overview table + # Check class of invalid State in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($RandomID)').length" @@ -158,7 +157,7 @@ "There is a class 'Invalid' for test State", ); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), 'closed successful' ) > -1, 'closed successful found on page', @@ -171,10 +170,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new state again + # Go to new state again. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check new state values + # Check new state values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $RandomID, @@ -196,8 +195,8 @@ "#Comment updated value", ); - # since there are no tickets that rely on our test state, we can remove them again - # from the DB + # Since there are no tickets that rely on our test state, we can remove them again + # from the DB. my $StateID = $Kernel::OM->Get('Kernel::System::State')->StateLookup( State => $RandomID, ); @@ -209,7 +208,7 @@ "StateDelete - $RandomID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'State', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemAddress.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); my $CheckBreadcrumb = sub { @@ -36,33 +35,26 @@ $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable check email address + # Disable check email address. $Helper->ConfigSettingChange( Valid => 1, Key => 'CheckEmailAddresses', Value => 0, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # add test Queue + # Add test Queue. my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue'); my $QueueRandomID = "queue" . $Helper->GetRandomID(); my $QueueID = $QueueObject->QueueAdd( @@ -80,27 +72,33 @@ "Created Queue - $QueueRandomID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminSystemAddress screen + # Navigate to AdminSystemAddress screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminSystemAddress"); - # check overview AdminSystemAddress screen + # Check overview AdminSystemAddress screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add system address' + # Click 'Add system address'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminSystemAddress;Subaction=Add')]")->VerifiedClick(); - # check add new SystemAddress screen + # Check add new SystemAddress screen. for my $ID ( qw(Name Realname QueueID ValidID Comment) ) @@ -110,12 +108,14 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. $CheckBreadcrumb->( BreadcrumbText => 'Add System Email Address' ); - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -124,7 +124,7 @@ 'Client side validation correctly detected missing input value', ); - # create real test SystemAddress + # Create real test SystemAddress. my $SysAddRandom = 'sysadd' . $Helper->GetRandomID() . '@localhost.com'; my $SysAddComment = "Selenium test SystemAddress"; @@ -134,26 +134,26 @@ $Selenium->find_element( "#Comment", 'css' )->send_keys($SysAddComment); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for created test SystemAddress + # Check for created test SystemAddress. $Self->True( index( $Selenium->get_page_source(), $SysAddRandom ) > -1, "$SysAddRandom found on page", ); - # click 'Add system address' + # Click 'Add system address'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminSystemAddress;Subaction=Add')]")->VerifiedClick(); $Selenium->find_element( "#Name", 'css' )->send_keys($SysAddRandom); $Selenium->find_element( "#Realname", 'css' )->send_keys($SysAddRandom); $Selenium->execute_script("\$('#QueueID').val('$QueueID').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->send_keys($SysAddComment); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#DialogButton1").length' ); + $Selenium->find_element( "#Submit", 'css' )->click(); - # Confirm JS error. + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $(".Dialog.Modal #DialogButton1").length' + ); $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' ); $Self->Is( $Selenium->execute_script( @@ -188,10 +188,10 @@ "QueueID $QueueID is updated with system address ID $SysAddList{$SysAddRandom}" ); - # click 'Go to overview' + # Click 'Go to overview'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminSystemAddress')]")->VerifiedClick(); - # go to the new test SystemAddress and check values + # Go to the new test SystemAddress and check values. $Selenium->find_element( $SysAddRandom, 'link_text' )->VerifiedClick(); $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), @@ -261,13 +261,13 @@ # Refresh screen. $Selenium->VerifiedRefresh(); - # edit test SystemAddress and set it to invalid + # Edit test SystemAddress and set it to invalid. $Selenium->find_element( "#Realname", 'css' )->send_keys(" Edited"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check class of invalid SystemAddress in the overview table + # Check class of invalid SystemAddress in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($SysAddRandom)').length" @@ -275,7 +275,7 @@ "There is a class 'Invalid' for test SystemAddress", ); - # check edited test SystemAddress values + # Check edited test SystemAddress values. $Selenium->find_element( $SysAddRandom, 'link_text' )->VerifiedClick(); $Self->Is( $Selenium->find_element( '#Realname', 'css' )->get_value(), @@ -293,10 +293,9 @@ "#Comment updated value", ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # since we no longer need them, delete test Queue and SystemAddress from the DB + # Since we no longer need them, delete test Queue and SystemAddress from the DB. my $Success = $DBObject->Do( SQL => "DELETE FROM system_address WHERE value0 = \'$SysAddRandom\'", ); @@ -312,16 +311,13 @@ "Deleted - $QueueRandomID", ); - # make sure cache is correct - for my $Cache (qw (Queue SystemAddress)) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); - } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure cache is correct. + for my $Cache (qw(Queue SystemAddress)) { + $CacheObject->CleanUp( Type => $Cache ); + } } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationComplex.t 2018-02-05 23:46:54.000000000 +0000 @@ -1423,7 +1423,7 @@ "ExampleComplex XML loaded.", ); - my $DeploymentSuccess = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "test deployment", UserID => 1, Force => 1, @@ -1431,7 +1431,7 @@ ); $Self->True( - $DeploymentSuccess, + $DeploymentResult{Success}, "Deployment successful.", ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleArray.t 2018-02-05 23:46:54.000000000 +0000 @@ -966,7 +966,7 @@ "Example XML loaded.", ); - my $DeploymentSuccess = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "AdminSystemConfiguration.t deployment", UserID => 1, Force => 1, @@ -974,7 +974,7 @@ ); $Self->True( - $DeploymentSuccess, + $DeploymentResult{Success}, "Deployment successful.", ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleBasic.t 2018-02-05 23:46:54.000000000 +0000 @@ -1092,7 +1092,7 @@ "Example XML loaded.", ); - my $DeploymentSuccess = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "AdminSystemConfiguration.t deployment", UserID => 1, Force => 1, @@ -1100,7 +1100,7 @@ ); $Self->True( - $DeploymentSuccess, + $DeploymentResult{Success}, "Deployment successful.", ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationExampleHash.t 2018-02-05 23:46:54.000000000 +0000 @@ -1582,7 +1582,7 @@ "Example XML loaded.", ); - my $DeploymentSuccess = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "AdminSystemConfiguration.t deployment", UserID => 1, Force => 1, @@ -1590,7 +1590,7 @@ ); $Self->True( - $DeploymentSuccess, + $DeploymentResult{Success}, "Deployment successful.", ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t 2018-01-12 18:58:53.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemConfigurationReset.t 2018-02-05 23:46:54.000000000 +0000 @@ -88,7 +88,7 @@ ); # Click on reset. - $Selenium->find_element( ".ResetSetting", "css" )->click(); + $Selenium->execute_script('$(".ResetSetting").click()'); # Wait. $Selenium->WaitFor( @@ -179,7 +179,7 @@ ); # Click on reset. - $Selenium->find_element( ".ResetSetting", "css" )->click(); + $Selenium->execute_script('$(".ResetSetting").click()'); # Wait. $Selenium->WaitFor( diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminSystemMaintenance.t 2018-02-05 23:46:54.000000000 +0000 @@ -39,17 +39,39 @@ # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + # Make sure system is based on UTC. + $Helper->ConfigSettingChange( + Valid => 1, + Key => 'OTRSTimeZone', + Value => 'UTC', + ); + # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); # get SystemMaintenance object my $SystemMaintenanceObject = $Kernel::OM->Get('Kernel::System::SystemMaintenance'); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; + # Get UserID for later manipulation of preferences. + my $UserObject = $Kernel::OM->Get('Kernel::System::User'); + my $UserID = $UserObject->UserLookup( + UserLogin => $TestUserLogin, + ); + + # Set user's time zone. + my $UserTimeZone = 'Europe/Berlin'; + $UserObject->SetPreferences( + Key => 'UserTimeZone', + Value => $UserTimeZone, + UserID => $UserID, + ); + + # Login test user $Selenium->Login( Type => 'Agent', User => $TestUserLogin, @@ -137,14 +159,14 @@ "Error message correctly displayed" ) || die "Did not get notification message"; - # get test start time + 1 hour of system time + # get test start time + 2 hour of system time my $DTStartObj = $DTObj->Clone(); - $DTStartObj->Add( Hours => 1 ); + $DTStartObj->Add( Hours => 2 ); my $DTStart = $DTStartObj->Get(); - # get test end time + 2 hour of system time + # get test end time + 3 hour of system time my $DTEndObj = $DTObj->Clone(); - $DTEndObj->Add( Hours => 2 ); + $DTEndObj->Add( Hours => 3 ); my $DTEnd = $DTEndObj->Get(); # create real test SystemMaintenance @@ -207,6 +229,35 @@ "$Notification - notification is found." ); + # Get test start time + 1 hour of system. + my $LayoutObject = Kernel::Output::HTML::Layout->new( UserTimeZone => $UserTimeZone ); + my $DTStartObjStr = $DTObj->Clone(); + $DTStartObjStr->Add( Hours => 1 ); + my $StartTimeString = $LayoutObject->{LanguageObject}->FormatTimeString( + $DTStartObjStr->ToString(), + 'DateFormat', + 1, + ); + + # Get test end time + 2 hour of system. + my $DTEndObjStr = $DTObj->Clone(); + $DTEndObjStr->Add( Hours => 2 ); + my $EndTimeString = $LayoutObject->{LanguageObject}->FormatTimeString( + $DTEndObjStr->ToString(), + 'DateFormat', + 1, + ); + + # Check for upcoming System Maintenance notification. + my $UpcomingSysMaintenanceNotif + = "A system maintenance period will start at: $StartTimeString and is expected to stop at: $EndTimeString"; + $Self->True( + $Selenium->execute_script( + "return \$('.MessageBox.Notice p:contains(\"$UpcomingSysMaintenanceNotif\")').length" + ), + "$UpcomingSysMaintenanceNotif - notification is found." + ); + # check for created test SystemMaintenance $Self->True( index( $Selenium->get_page_source(), $SysMainComment ) > -1, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminTemplateAttachment.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,41 +12,28 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $StdAttachmentObject = $Kernel::OM->Get('Kernel::System::StdAttachment'); + my $StandardTemplateObject = $Kernel::OM->Get('Kernel::System::StandardTemplate'); + my $MainObject = $Kernel::OM->Get('Kernel::System::Main'); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get needed objects - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - my $StdAttachmentObject = $Kernel::OM->Get('Kernel::System::StdAttachment'); - my $StandardTemplateObject = $Kernel::OM->Get('Kernel::System::StandardTemplate'); - my $MainObject = $Kernel::OM->Get('Kernel::System::Main'); - - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - - # create test attachment + # Create test attachment. my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/StdAttachment/StdAttachment-Test1.txt"; @@ -73,7 +60,7 @@ "Created StdAttachment - $AttachmentRandomID", ); - # create test template + # Create test template. my $TemplateRandomID = "template" . $Helper->GetRandomID(); my $TemplateType = 'Answer'; my $TemplateID = $StandardTemplateObject->StandardTemplateAdd( @@ -89,10 +76,19 @@ "Created Template - $TemplateRandomID", ); - # navigate to AdminTemplateAttachment screen + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + + # Navigate to AdminTemplateAttachment screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminTemplateAttachment"); - # check overview AdminTemplateAttachment screen + # Check overview AdminTemplateAttachment screen. for my $ID ( qw(Templates Attachments FilterTemplates FilterAttachments) ) @@ -102,26 +98,34 @@ $Element->is_displayed(); } - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # check for test template and test attachment on screen + # Check for test template and test attachment on screen. $Self->True( - index( $Selenium->get_page_source(), $TemplateRandomID ) > -1, + $Selenium->execute_script("return \$('#Templates li:contains($TemplateRandomID)').length"), "$TemplateRandomID found on screen" ); $Self->True( - index( $Selenium->get_page_source(), $AttachmentRandomID ) > -1, + $Selenium->execute_script("return \$('#Attachments li:contains($AttachmentRandomID)').length"), "$AttachmentRandomID found on screen" ); - # test search filters - $Selenium->find_element( "#FilterTemplates", 'css' )->send_keys($TemplateRandomID); + # Test search filters. + $Selenium->find_element( "#FilterTemplates", 'css' )->send_keys($TemplateRandomID); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#Templates li:not(.Header):visible').length === 1" + ); + $Selenium->find_element( "#FilterAttachments", 'css' )->send_keys($AttachmentRandomID); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#Attachments li:not(.Header):visible').length === 1" + ); $Self->True( $Selenium->find_element("//a[contains(\@href, \'Subaction=Template;ID=$TemplateID' )]")->is_displayed(), @@ -133,10 +137,10 @@ "$AttachmentRandomID found on screen with filter on", ); - # change test Attachment relation for test Template + # Change test Attachment relation for test Template. $Selenium->find_element("//a[contains(\@href, \'Subaction=Template;ID=$TemplateID' )]")->VerifiedClick(); - # check breadcrumb on relations screen + # Check breadcrumb on relations screen. my $Count = 1; my $IsLinkedBreadcrumbText; for my $BreadcrumbText ( @@ -153,10 +157,14 @@ $Count++; } - $Selenium->find_element("//input[\@value='$AttachmentID'][\@type='checkbox']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$AttachmentID'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('input[value=$AttachmentID][type=checkbox]:checked').length" + ); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check test Template relation for test Attachment + # Check test Template relation for test Attachment. $Selenium->find_element("//a[contains(\@href, \'Subaction=Attachment;ID=$AttachmentID' )]")->VerifiedClick(); $Self->True( @@ -164,11 +172,15 @@ "$AttachmentRandomID is in a relation with $TemplateRandomID", ); - $Selenium->find_element("//input[\@value='$TemplateID'][\@type='checkbox']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$TemplateID'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && !\$('input[value=$TemplateID][type=checkbox]:checked').length" + ); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # since there are no tickets that rely on our test TemplateAttachment, - # we can remove test template and test attachment from the DB + # Since there are no tickets that rely on our test TemplateAttachment, + # we can remove test template and test attachment from the DB. my $Success = $StdAttachmentObject->StdAttachmentStandardTemplateMemberAdd( AttachmentID => $AttachmentID, StandardTemplateID => $TemplateID, @@ -194,9 +206,7 @@ $Success, "StandardTemplateDelete() for Attachment -> Template tests | with True", ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminTemplate.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminTemplate.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminTemplate.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminTemplate.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,25 +30,24 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminTemplate screen + # Navigate to AdminTemplate screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminTemplate"); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); $Selenium->find_element( "#Filter", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'Add template' + # Click 'Add template'. $Selenium->find_element("//a[contains(\@href, \'Action=AdminTemplate;Subaction=Add' )]")->VerifiedClick(); for my $ID ( @@ -62,9 +59,11 @@ $Element->is_displayed(); } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -73,7 +72,7 @@ 'Client side validation correctly detected missing input value', ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Templates', 'Add Template' ) { $Self->Is( @@ -85,32 +84,32 @@ $Count++; } - # create real test template + # Create real test template. my $TemplateRandomID = "Template" . $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($TemplateRandomID); $Selenium->find_element( "#Comment", 'css' )->send_keys("Selenium template test"); $Selenium->execute_script("\$('#ValidID').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check overview screen for test template + # Check overview screen for test template. $Self->True( - index( $Selenium->get_page_source(), $TemplateRandomID ) > -1, + $Selenium->execute_script("return \$('#Templates tbody tr:contains($TemplateRandomID)').length"), "Template $TemplateRandomID found on page", ); - # test search filter + # Test search filter. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys($TemplateRandomID); - - # Wait for filter to kick in. - sleep 1; + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Templates tbody tr:visible').length === 1" + ); $Self->True( $Selenium->find_element( $TemplateRandomID, 'link_text' )->is_displayed(), "Template $TemplateRandomID found on screen", ); - # check test template values + # Check test template values. $Selenium->find_element( $TemplateRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -134,7 +133,7 @@ "#ValidID stored value", ); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Manage Templates', 'Edit Template: ' . $TemplateRandomID ) { $Self->Is( @@ -146,33 +145,33 @@ $Count++; } - # edit test template + # Edit test template. $Selenium->find_element( "#Comment", 'css' )->clear(); $Selenium->execute_script("\$('#TemplateType').val('Create').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification after template is updated + # Check is there notification after template is updated. my $Notification = 'Template updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # test search filter + # Test search filter. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys($TemplateRandomID); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Templates tbody tr:visible').length === 1" + ); - # Wait for filter to kick in. - sleep 1; - - # check class of invalid Template in the overview table + # Check class of invalid Template in the overview table. $Self->True( $Selenium->find_element( "tr.Invalid", 'css' ), "There is a class 'Invalid' for test Template", ); - # check edited test template + # Check edited test template. $Selenium->find_element( $TemplateRandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -191,39 +190,34 @@ "#ValidID updated value", ); - # go back to AdminTemplate overview screen + # Go back to AdminTemplate overview screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminTemplate"); - # test template delete button + # Test template delete button. my $TemplateID = $Kernel::OM->Get('Kernel::System::StandardTemplate')->StandardTemplateLookup( StandardTemplate => $TemplateRandomID, ); $Selenium->find_element("//a[contains(\@data-query-string, \'Subaction=Delete;ID=$TemplateID' )]")->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $(".Dialog.Modal #DialogButton1").length' + ); - # wait for dialog appearance - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 1;' ); - - # verify delete dialog message + # Verify delete dialog message. my $DeleteMessage = "Do you really want to delete this template?"; $Self->True( - index( $Selenium->get_page_source(), $DeleteMessage ) > -1, + $Selenium->execute_script("return \$('#DeleteTemplateDialog:contains($DeleteMessage)').length"), "Delete message is found", ); - # confirm delete action + # Confirm delete action. $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); - # wait for the dialog to disappear and than check that the new page is loaded completely - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 0;' ); - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Templates").length > 0;' ); - - # check if template sits on overview page + # Check if template sits on overview page. $Self->True( - index( $Selenium->get_page_source(), $TemplateRandomID ) == -1, + $Selenium->execute_script("return !\$('#Templates tbody tr:contains($TemplateRandomID)').length"), "Template '$TemplateRandomID' is deleted" ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminType.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminType.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminType.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminType.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,38 +31,36 @@ Password => $TestUserLogin, ); - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AdminType screen + # Navigate to AdminType screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminType"); - # check overview screen + # Check overview screen. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click 'add new type' link + # click 'add new type' link. $Selenium->find_element("//a[contains(\@href, \'Action=AdminType;Subaction=Add' )]")->VerifiedClick(); - # check add page + # check add page. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->is_displayed(); $Element->is_enabled(); $Selenium->find_element( "#ValidID", 'css' ); - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name.Error').length" ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -72,7 +69,7 @@ 'Client side validation correctly detected missing input value', ); - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Type Management', 'Add Type' ) { $Self->Is( @@ -84,13 +81,13 @@ $Count++; } - # check form action + # Check form action. $Self->True( $Selenium->find_element( '#Submit', 'css' ), "Submit is found on Add screen.", ); - # create a real test type + # Create a real test type. my $TypeRandomID = "Type" . $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($TypeRandomID); @@ -105,10 +102,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new type again + # Go to new type again. $Selenium->find_element( $TypeRandomID, 'link_text' )->VerifiedClick(); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Type Management', 'Edit Type: ' . $TypeRandomID ) { $Self->Is( @@ -120,7 +117,7 @@ $Count++; } - # check form actions + # Check form actions. for my $Action (qw(Submit SubmitAndContinue)) { $Self->True( $Selenium->find_element( "#$Action", 'css' ), @@ -128,7 +125,7 @@ ); } - # check new type values + # Check new type values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $TypeRandomID, @@ -140,10 +137,10 @@ "#ValidID stored value", ); - # get current value of Ticket::Type::Default + # Get current value of Ticket::Type::Default. my $DefaultTicketType = $ConfigObject->Get('Ticket::Type::Default'); - # set test Type as a default ticket type + # Set test Type as a default ticket type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Type::Default', @@ -153,11 +150,11 @@ # Allow apache to pick up the changed SysConfig via Apache::Reload. sleep 1; - # try to set test type to invalid + # Try to set test type to invalid. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # default ticket type cannot be set to invalid + # Default ticket type cannot be set to invalid. $Self->True( index( $Selenium->get_page_source(), @@ -166,7 +163,7 @@ "$TypeRandomID ticket type is set as a default ticket type, so it cannot be set to invalid!", ) || die; - # reset default ticket type + # Reset default ticket type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Type::Default', @@ -176,13 +173,13 @@ # Allow apache to pick up the changed SysConfig via Apache::Reload. sleep 1; - # set test type to invalid + # Set test type to invalid. $Selenium->find_element( "#Name", 'css' )->clear(); $Selenium->find_element( "#Name", 'css' )->send_keys($TypeRandomID); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check class of invalid Type in the overview table + # Check class of invalid Type in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td a:contains($TypeRandomID)').length" @@ -190,7 +187,7 @@ "There is a class 'Invalid' for test Type", ); - # check overview page + # Check overview page. $Self->True( index( $Selenium->get_page_source(), $TypeRandomID ) > -1, "$TypeRandomID found on page", @@ -199,10 +196,10 @@ $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # go to new type again + # Go to new type again. $Selenium->find_element( $TypeRandomID, 'link_text' )->VerifiedClick(); - # check new type values + # Check new type values. $Self->Is( $Selenium->find_element( '#Name', 'css' )->get_value(), $TypeRandomID, @@ -214,8 +211,8 @@ "#ValidID updated value", ); - # since there are no tickets that rely on our test types, we can remove them again - # from the DB + # Since there are no tickets that rely on our test types, we can remove them again + # from the DB. if ($TypeRandomID) { my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); $TypeRandomID = $DBObject->Quote($TypeRandomID); @@ -229,7 +226,7 @@ ); } - # make sure the cache is corrects + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Type', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminUserGroup.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminUserGroup.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminUserGroup.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminUserGroup.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get needed objects my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,18 +30,17 @@ Password => $TestUserLogin, ); - # get test user ID + # Get test user ID. my $UserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Group' ); - # create test group + # Create test group. my $GroupName = 'group' . $Helper->GetRandomID(); my $GroupID = $Kernel::OM->Get('Kernel::System::Group')->GroupAdd( Name => $GroupName, @@ -56,23 +53,23 @@ "Created Group - $GroupName", ); - # navigate to AdminUserGroup screen + # Navigate to AdminUserGroup screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUserGroup"); - # check overview AdminUserGroup + # Check overview AdminUserGroup. $Selenium->find_element( "#Users", 'css' ); $Selenium->find_element( "#Groups", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # click on created test group + # Click on created test group. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - # check breadcrumb on change screen + # Check breadcrumb on change screen. my $Count = 1; for my $BreadcrumbText ( 'Manage Agent-Group Relations', @@ -88,33 +85,38 @@ $Count++; } - # give full read and write access to the tickets in test group for test user - $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->VerifiedClick(); + # Give full read and write access to the tickets in test group for test user. + $Selenium->find_element("//input[\@value='$UserID'][\@name='rw']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('input[value=$UserID][name=rw]:checked').length" + ); $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # test filter for Users + # Test filter for Users. my $FullTestUserLogin = "$TestUserLogin ($TestUserLogin $TestUserLogin)"; $Selenium->find_element( "#FilterUsers", 'css' )->send_keys($FullTestUserLogin); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#Users li:not(.Header):visible').length === 1" + ); $Self->True( $Selenium->find_element( "$FullTestUserLogin", 'link_text' )->is_displayed(), "$FullTestUserLogin user found on page", ); - # test filter for groups + # Test filter for groups. $Selenium->find_element( "#FilterGroups", 'css' )->send_keys($GroupName); - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#Groups li:not(.Header):visible').length === 1" + ); $Self->True( $Selenium->find_element( "$GroupName", 'link_text' )->is_displayed(), "$GroupName group found on page", ); - # clear test filter for Users and Groups - $Selenium->find_element( "#FilterUsers", 'css' )->clear(); - $Selenium->find_element( "#FilterGroups", 'css' )->clear(); - sleep 1; - - # edit test group permission for test agent + # Edit test group permission for test agent. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); my %TestFirst = ( @@ -147,7 +149,7 @@ 'rw' => 0, ); - # check permissions + # Check permissions. for my $Permission ( sort keys %TestFirst ) { $Self->True( $Selenium->find_element("//input[\@value='$UserID'][\@name='$Permission']"), @@ -155,17 +157,21 @@ ); } - # set permissions + # Set permissions. for my $Permission (qw(rw ro note owner)) { - $Selenium->find_element("//input[\@value='$UserID'][\@name='$Permission']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$UserID'][\@name='$Permission']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('input[value=$GroupID][name=$Permission]:checked').length === $TestSecond{$Permission}" + ); } $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check edited test group permissions + # Check edited test group permissions. $Selenium->find_element( $GroupName, 'link_text' )->VerifiedClick(); - # check permissions + # Check permissions. for my $Permission ( sort keys %TestSecond ) { my $Enabled = $TestSecond{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -175,21 +181,23 @@ ); } - # test checked and unchecked values while filter by user is used - # test filter with "WrongFilterGroup" to uncheck all values + # Test checked and unchecked values while filter by user is used. + # Test filter with "WrongFilterGroup" to uncheck all values. $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys("WrongFilterGroup"); - sleep 1; + $Selenium->WaitFor( + JavaScript => "return \$('.FilterMessage.Hidden > td:visible').length" + ); - # test if no data is matches + # Test if no data is matches. $Self->True( $Selenium->find_element( ".FilterMessage.Hidden>td", 'css' )->is_displayed(), "'No data matches' is displayed'" ); $Selenium->find_element( "#Filter", 'css' )->clear(); - # check group relations for user after using filter by group - # check permissions + # Check group relations for user after using filter by group. + # Check permissions. for my $Permission ( sort keys %TestSecond ) { my $Enabled = $TestSecond{$Permission} ? 'enabled' : 'disabled'; $Self->Is( @@ -199,20 +207,24 @@ ); } - # go back to AdminUserGroup screen + # Go back to AdminUserGroup screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUserGroup"); - # edit test group permission for test agent + # Edit test group permission for test agent. $Selenium->find_element( $FullTestUserLogin, 'link_text' )->VerifiedClick(); - # set permissions + # Set permissions. for my $Permission (qw(ro note priority)) { - $Selenium->find_element("//input[\@value='$GroupID'][\@name='$Permission']")->VerifiedClick(); + $Selenium->find_element("//input[\@value='$GroupID'][\@name='$Permission']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('input[value=$GroupID][name=$Permission]:checked').length === $TestThird{$Permission}" + ); } $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); - # check edited test agent permissions + # Check edited test agent permissions. $Selenium->find_element( $FullTestUserLogin, 'link_text' )->VerifiedClick(); for my $Permission ( sort keys %TestThird ) { @@ -232,7 +244,11 @@ ); # Click on Master Switch. - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('table input[type=checkbox]:checked').length === \$('table input[type=checkbox]:visible').length" + ); # Check if top level inputs are disabled. $Self->Is( @@ -265,28 +281,35 @@ "Selected row is checked.", ); - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return !\$('input[name=rw]:checked').length" + ); # Find test group in the table and pass its value to filter. $Selenium->find_element( "#Filter", 'css' )->send_keys($GroupName); - $Selenium->WaitFor( JavaScript => - 'return typeof($) === "function" && $(\'input[name="rw"]:visible\').length !== $(\'input[name="rw"]\').length;' + 'return $("input[name=rw]:not(#SelectAllrw):visible").length === 1 && $(".FilterRemove:visible").length' ); # Click on Master check if not already checked. if ( !$Selenium->execute_script("return \$('#SelectAllrw:checked').length") ) { - $Selenium->find_element( "#SelectAllrw", 'css' )->VerifiedClick(); + $Selenium->find_element( "#SelectAllrw", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return \$('table input[type=checkbox]:checked:visible').length === \$('table input[type=checkbox]:visible').length" + ); } + # Remove selected filter. + $Selenium->find_element( ".FilterRemove", 'css' )->click(); $Selenium->WaitFor( - JavaScript => 'return typeof($) === "function" && $(".FilterRemove:visible").length === 1;' + JavaScript => + "return \$('table input[name=rw]:visible').length === \$('table input[name=rw]').length" ); - # Remove selected filter. - $Selenium->find_element( ".FilterRemove", 'css' )->VerifiedClick(); - # Check if test row is disabled and checked. $Self->Is( $Selenium->execute_script( @@ -304,8 +327,8 @@ "Selected row is checked.", ); - # since there are no tickets that rely on our test group, we can remove them again - # from the DB + # Since there are no tickets that rely on our test group, we can remove them again + # from the DB. if ($GroupName) { my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $Success = $DBObject->Do( @@ -329,11 +352,9 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Group' ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminUser.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminUser.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/AdminUser.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/AdminUser.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,22 +12,20 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check email addresses + # Do not check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -38,30 +36,30 @@ Password => $TestUserLogin, ); - # get script alias + # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminUser screen + # Navigate to AdminUser screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUser"); - # check overview AdminUser + # Check overview AdminUser. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table thead tr th", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # check breadcrumb on Overview screen + # Check breadcrumb on Overview screen. $Self->True( $Selenium->find_element( '.BreadCrumb', 'css' ), "Breadcrumb is found on Overview screen.", ); - # check for test agent in AdminUser + # Check for test agent in AdminUser. $Self->True( index( $Selenium->get_page_source(), $TestUserLogin ) > -1, "$TestUserLogin found on page", ); - # check search field + # Check search field. $Selenium->find_element( "#Search", 'css' )->send_keys($TestUserLogin); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); $Self->True( @@ -69,7 +67,7 @@ "$TestUserLogin found on page", ); - # check add agent page + # Check add agent page. $Selenium->find_element("//a[contains(\@href, \'Action=AdminUser;Subaction=Add' )]")->VerifiedClick(); for my $ID ( @@ -81,7 +79,7 @@ $Element->is_displayed(); } - # check breadcrumb on Add screen + # Check breadcrumb on Add screen. my $Count = 1; for my $BreadcrumbText ( 'Agent Management', 'Add Agent' ) { $Self->Is( @@ -93,10 +91,11 @@ $Count++; } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#UserFirstname", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#UserFirstname.Error').length" ); $Self->Is( $Selenium->execute_script( @@ -106,28 +105,29 @@ 'Client side validation correctly detected missing input value', ); - # Reload page + # Reload page. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUser;Subaction=Add"); - # create a real test agent + # Create a real test agent. my $UserRandomID = 'TestAgent' . $Helper->GetRandomID(); $Selenium->find_element( "#UserFirstname", 'css' )->send_keys($UserRandomID); $Selenium->find_element( "#UserLastname", 'css' )->send_keys($UserRandomID); $Selenium->find_element( "#UserLogin", 'css' )->send_keys($UserRandomID); + $Selenium->find_element( "#UserPw", 'css' )->send_keys($UserRandomID); $Selenium->find_element( "#UserEmail", 'css' )->send_keys( $UserRandomID . '@localhost.com' ); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # test search filter by agent $UserRandomID + # Test search filter by agent $UserRandomID. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUser"); $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($UserRandomID); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); - # edit real test agent values + # Edit real test agent values. my $EditRandomID = 'EditedTestAgent' . $Helper->GetRandomID(); $Selenium->find_element( $UserRandomID, 'link_text' )->VerifiedClick(); - # check breadcrumb on Edit screen + # Check breadcrumb on Edit screen. $Count = 1; for my $BreadcrumbText ( 'Agent Management', 'Edit Agent: ' . $UserRandomID ) { $Self->Is( @@ -139,26 +139,26 @@ $Count++; } - # edit some values + # Edit some values. $Selenium->find_element( "#UserFirstname", 'css' )->clear(); $Selenium->find_element( "#UserFirstname", 'css' )->send_keys($EditRandomID); $Selenium->find_element( "#UserLastname", 'css' )->clear(); $Selenium->find_element( "#UserLastname", 'css' )->send_keys($EditRandomID); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - #check is there notification after agent is updated + # Check is there notification after agent is updated. my $Notification = 'Agent updated!'; $Self->True( $Selenium->execute_script("return \$('.MessageBox.Notice p:contains($Notification)').length"), "$Notification - notification is found." ); - # test search filter by agent $EditRandomID + # Test search filter by agent $EditRandomID. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($EditRandomID); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); - #check new agent values + # Check new agent values. $Selenium->find_element( $UserRandomID, 'link_text' )->VerifiedClick(); $Self->Is( $Selenium->find_element( '#UserFirstname', 'css' )->get_value(), @@ -181,23 +181,64 @@ "#UserEmail stored value", ); - # set added test agent to invalid + # Edit the users preferences on their behalf. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentPreferences;EditUserID' )]")->VerifiedClick(); + + # Disable the my custom queues setting - it should still show up when an agent edits another agents preferences. + my $TimeZoneConfig = $Kernel::OM->Get('Kernel::Config')->Get('PreferencesGroups')->{'TimeZone'}; + $TimeZoneConfig->{Active} = 0; + + # Enter the UserProfile group. + $Selenium->find_element("//a[contains(\@href, \'Group=UserProfile')]")->VerifiedClick(); + + # The TimeZone setting should still be visible, although its disabled for agents. + $Selenium->execute_script("return \$('#UserTimeZone_Search:visible').length"); + + # We try to re-set the password for this agent. + $Selenium->find_element( "#CurPw", 'css' )->send_keys($UserRandomID); + $Selenium->find_element( "#NewPw", 'css' )->send_keys('NewPassword'); + $Selenium->find_element( "#NewPw1", 'css' )->send_keys('NewPassword'); + $Selenium->execute_script( + "\$('#CurPw').closest('.WidgetSimple').find('.SettingUpdateBox').find('button').trigger('click');" + ); + + # Now logout and then try to login as the edited agent. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->find_element( 'a#LogoutButton', 'css' )->click(); + $Selenium->Login( + Type => 'Agent', + User => $UserRandomID, + Password => $UserRandomID, + ); + + # Login worked, now re-login as the first (admin) agent. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->find_element( 'a#LogoutButton', 'css' )->click(); + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + # Go to editing this agent again. + $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminUser"); + $Selenium->find_element( $UserRandomID, 'link_text' )->VerifiedClick(); + + # Set added test agent to invalid. $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # test search filter by agent $UserRandomID + # Test search filter by agent $UserRandomID. $Selenium->find_element( "#Search", 'css' )->clear(); $Selenium->find_element( "#Search", 'css' )->send_keys($UserRandomID); $Selenium->find_element("//button[\@value='Search'][\@type='submit']")->VerifiedClick(); - # check class of invalid Agent in the overview table + # Check class of invalid Agent in the overview table. $Self->True( $Selenium->find_element( "tr.Invalid", 'css' ), "There is a class 'Invalid' for test Agent", ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldCheckbox.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # Show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,13 +44,12 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField screen + # Navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldCheckbox + # Create and edit Ticket and Article DynamicFieldCheckbox. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; @@ -60,22 +57,21 @@ "\$('#$ObjectType').val('Checkbox').trigger('redraw.InputField').trigger('change');" ); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder ValidID) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element2 = $Selenium->find_element( "#Name", 'css' ); $Element2->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -85,26 +81,26 @@ 'Client side validation correctly detected missing input value', ); - # create real text DynamicFieldCheckbox + # Create real text DynamicFieldCheckbox. my $RandomID = $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldCheckbox on AdminDynamicField screen + # Check for test DynamicFieldCheckbox on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldCheckbox $RandomID found on table" ) || die; - # edit test DynamicFieldCheckbox default value and set it to invalid + # Edit test DynamicFieldCheckbox default value and set it to invalid. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Selenium->execute_script("\$('#DefaultValue').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); - # edit name to trigger JS and verify warning is visible + # Edit name to trigger JS and verify warning is visible. my $EditName = $RandomID . 'edit'; $Selenium->find_element( "#Name", 'css' )->clear(); $Selenium->find_element( "#Name", 'css' )->send_keys($EditName); @@ -115,10 +111,9 @@ "Warning text is shown - JS is successful", ); - # submit form $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldCheckbox values + # Check new and edited DynamicFieldCheckbox values. $Selenium->find_element( $EditName, 'link_text' )->VerifiedClick(); $Self->Is( @@ -147,7 +142,7 @@ "#DefaultValue updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $EditName, @@ -156,8 +151,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -165,14 +158,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # delete cache + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDateTime.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # Show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,34 +44,32 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField + # Navigate to AdminDynamicField. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldCheckbox + # Create and edit Ticket and Article DynamicFieldCheckbox. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; $Selenium->execute_script("\$('#$ObjectType').val('Date').trigger('redraw.InputField').trigger('change');"); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder ValidID DefaultValue YearsPeriod Link DateRestriction) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -83,7 +79,7 @@ 'Client side validation correctly detected missing input value', ); - # check default values + # Check default values. $Selenium->execute_script("\$('#YearsPeriod').val('1').trigger('redraw.InputField').trigger('change');"); $Self->Is( @@ -102,20 +98,20 @@ "#YearsInFuture updated value", ); - # create real text DynamicFieldDate + # Create real text DynamicFieldDate. my $RandomID = $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldCheckbox on AdminDynamicField screen + # Check for test DynamicFieldCheckbox on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldDate $RandomID found on table" ) || die; - # edit test DynamicFieldDate years period, default value and set it to invalid + # Edit test DynamicFieldDate years period, default value and set it to invalid. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Selenium->find_element( "#DefaultValue", 'css' )->clear(); @@ -127,7 +123,7 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldDateTime values + # Check new and edited DynamicFieldDateTime values. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -166,7 +162,7 @@ "#ValidID updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $RandomID, @@ -175,8 +171,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -184,14 +178,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldDropdown.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # Show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,36 +44,34 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField screen + # Navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldDropdown + # Create and edit Ticket and Article DynamicFieldDropdown. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; - # add dynamic field of type Dropdown + # Add dynamic field of type Dropdown. $Selenium->execute_script("\$('#$ObjectType').val('Dropdown').trigger('change');"); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder ValidID DefaultValue AddValue PossibleNone TreeView TranslatableValues Link) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -85,32 +81,36 @@ 'Client side validation correctly detected missing input value', ); - # create real text DynamicFieldDropdown + # Create real text DynamicFieldDropdown. my $RandomID = $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#Key_1", 'css' )->send_keys("Key1"); - $Selenium->find_element( "#Value_1", 'css' )->send_keys("Value1"); + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_1").length && $("#Value_1").length' ); + $Selenium->find_element( "#Key_1", 'css' )->send_keys("Key1"); + $Selenium->find_element( "#Value_1", 'css' )->send_keys("Value1"); - # check default value + # Check default value. $Self->Is( $Selenium->find_element( "#DefaultValue option[value='Key1']", 'css' )->is_enabled(), 1, "Key1 is possible #DefaultValue", ); - # add another possible value - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#Key_2", 'css' )->send_keys("Key2"); - $Selenium->find_element( "#Value_2", 'css' )->send_keys("Value2"); - - # add another possible value - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - - # submit form, expecting validation check - $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->VerifiedClick(); + # Add another possible value. + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_2").length && $("#Value_2").length' ); + $Selenium->find_element( "#Key_2", 'css' )->send_keys("Key2"); + $Selenium->find_element( "#Value_2", 'css' )->send_keys("Value2"); + + # Add another possible value. + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_3").length && $("#Value_3").length' ); + + # Submit form, expecting validation check. + $Selenium->find_element("//button[\@value='Save'][\@type='submit']")->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_3.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -120,42 +120,43 @@ 'Client side validation correctly detected missing input value for added possible value', ); - # input possible value + # Input possible value. $Selenium->find_element( "#Key_3", 'css' )->send_keys("Key3"); $Selenium->find_element( "#Value_3", 'css' )->send_keys("Value3"); - # select default value + # Select default value. $Selenium->execute_script( "\$('#DefaultValue').val('Key3').trigger('redraw.InputField').trigger('change');" ); - # verify default value + # Verify default value. $Self->Is( $Selenium->find_element( "#DefaultValue", 'css' )->get_value(), 'Key3', "Key3 is possible #DefaultValue", ); - # remove added possible value - $Selenium->find_element( "#RemoveValue__3", 'css' )->VerifiedClick(); + # Remove added possible value. + $Selenium->find_element( "#RemoveValue__3", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return !$("#Key_3:visible").length && !$("#Value_3:visible").length' ); - # verify default value is changed + # Verify default value is changed. $Self->Is( $Selenium->find_element( "#DefaultValue", 'css' )->get_value(), '', "DefaultValue is removed", ); - # submit form + # Submit form. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldDropdown on AdminDynamicField screen + # Check for test DynamicFieldDropdown on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldDropdown $RandomID found on table" ) || die; - # edit test DynamicFieldDropdown possible none, treeview, default value and set it to invalid + # Edit test DynamicFieldDropdown possible none, treeview, default value and set it to invalid. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Selenium->execute_script( @@ -166,7 +167,7 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldDropdown values + # Check new and edited DynamicFieldDropdown values. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -220,7 +221,7 @@ "#ValidID updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $RandomID, @@ -229,8 +230,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -238,14 +237,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldMultiselect.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # Show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,13 +44,12 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField screen + # Navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldMultiselect + # Create and edit Ticket and Article DynamicFieldMultiselect. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; @@ -60,22 +57,21 @@ "\$('#$ObjectType').val('Multiselect').trigger('redraw.InputField').trigger('change');" ); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder ValidID DefaultValue AddValue PossibleNone TreeView TranslatableValues) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element2 = $Selenium->find_element( "#Name", 'css' ); $Element2->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -85,32 +81,36 @@ 'Client side validation correctly detected missing input value', ); - # create real text DynamicFieldMultiselect + # Create real text DynamicFieldMultiselect. my $RandomID = $Helper->GetRandomID(); $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#Key_1", 'css' )->send_keys("Key1"); - $Selenium->find_element( "#Value_1", 'css' )->send_keys("Value1"); + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_1").length && $("#Value_1").length' ); + $Selenium->find_element( "#Key_1", 'css' )->send_keys("Key1"); + $Selenium->find_element( "#Value_1", 'css' )->send_keys("Value1"); - # check default value + # Check default value. $Self->Is( $Selenium->find_element( "#DefaultValue option[value='Key1']", 'css' )->get_value(), 'Key1', "Key1 is possible #DefaultValue", ); - # add another possible value - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - $Selenium->find_element( "#Key_2", 'css' )->send_keys("Key2"); - $Selenium->find_element( "#Value_2", 'css' )->send_keys("Value2"); - - # add another possible value - $Selenium->find_element( "#AddValue", 'css' )->VerifiedClick(); - - # submit form, expecting validation check - $Selenium->find_element("//button[\@type='submit']")->VerifiedClick(); + # Add another possible value. + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_2").length && $("#Value_2").length' ); + $Selenium->find_element( "#Key_2", 'css' )->send_keys("Key2"); + $Selenium->find_element( "#Value_2", 'css' )->send_keys("Value2"); + + # Add another possible value. + $Selenium->find_element( "#AddValue", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_3").length && $("#Value_3").length' ); + + # Submit form, expecting validation check. + $Selenium->find_element("//button[\@type='submit']")->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Key_3.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -120,26 +120,27 @@ 'Client side validation correctly detected missing input value for added possible value', ); - # input possible value + # Input possible value. $Selenium->find_element( "#Key_3", 'css' )->send_keys("Key3"); $Selenium->find_element( "#Value_3", 'css' )->send_keys("Value3"); - # select default value + # Select default value. $Selenium->execute_script( "\$('#DefaultValue').val('Key3').trigger('redraw.InputField').trigger('change');" ); - # verify default value + # Verify default value. $Self->Is( $Selenium->find_element( "#DefaultValue", 'css' )->get_value(), 'Key3', "Key3 is possible #DefaultValue", ); - # remove added possible value - $Selenium->find_element( "#RemoveValue__3", 'css' )->VerifiedClick(); + # Remove added possible value. + $Selenium->find_element( "#RemoveValue__3", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return !$("#Key_3:visible").length && !$("#Value_3:visible").length' ); - # verify default value is changed + # Verify default value is changed. $Self->Is( $Selenium->find_element( "#DefaultValue", 'css' )->get_value(), '', @@ -151,19 +152,19 @@ "\$('#DefaultValue').val(['Key1', 'Key2']).trigger('redraw.InputField').trigger('change');" ); - # submit form + # Submit form. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldMultiselect on AdminDynamicField screen + # Check for test DynamicFieldMultiselect on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldMultiselect $RandomID found on table" ) || die; - # click on created dynamic field + # Click on created dynamic field. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); - # check for saved 'defaul values' on creation, expecting both values to be present + # Check for saved 'defaul values' on creation, expecting both values to be present. $Self->IsDeeply( $Selenium->execute_script( "return \$('#DefaultValue').val();" @@ -172,13 +173,13 @@ 'Found default values after creation', ); - # edit test DynamicFieldMultiselect possible none, default value, treeview and set it to invalid + # Edit test DynamicFieldMultiselect possible none, default value, treeview and set it to invalid. $Selenium->execute_script("\$('#PossibleNone').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#TreeView').val('1').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldMultiselect values + # Check new and edited DynamicFieldMultiselect values. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -227,7 +228,7 @@ "#ValidID updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $RandomID, @@ -236,8 +237,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -245,14 +244,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldTextArea.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # Show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,13 +44,12 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField screen + # Navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldTextArea + # Create and edit Ticket and Article DynamicFieldTextArea. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; @@ -60,22 +57,21 @@ "\$('#$ObjectType').val('TextArea').trigger('redraw.InputField').trigger('change');" ); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder Rows Cols DefaultValue AddRegEx ValidID) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element2 = $Selenium->find_element( "#Name", 'css' ); $Element2->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -85,27 +81,30 @@ 'Client side validation correctly detected missing input value', ); - # create real text DynamicFieldTextArea + # Create real text DynamicFieldTextArea. my $RandomID = $Helper->GetRandomID(); my $RegEx = '^[0-9]$'; my $RegExErrorTxt = "Please remove this entry and enter a new one with the correct value."; - $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#Rows", 'css' )->send_keys("3"); - $Selenium->find_element( "#Cols", 'css' )->send_keys("5"); - $Selenium->find_element( "#AddRegEx", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); + $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); + $Selenium->find_element( "#Rows", 'css' )->send_keys("3"); + $Selenium->find_element( "#Cols", 'css' )->send_keys("5"); + $Selenium->find_element( "#AddRegEx", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $("#RegEx_1").length && $("#CustomerRegExErrorMessage_1").length' + ); $Selenium->find_element( "#RegEx_1", 'css' )->send_keys($RegEx); $Selenium->find_element( "#CustomerRegExErrorMessage_1", 'css' )->send_keys($RegExErrorTxt); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldTextArea on AdminDynamicField screen + # Check for test DynamicFieldTextArea on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldTextArea $RandomID found on table" ) || die; - # edit test DynamicFieldTextArea name, default value and set it to invalid + # Edit test DynamicFieldTextArea name, default value and set it to invalid. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Selenium->find_element( "#Name", 'css' )->clear(); @@ -114,7 +113,7 @@ $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldTextArea values + # Check new and edited DynamicFieldTextArea values. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -158,7 +157,7 @@ "#ValidID updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $RandomID, @@ -167,8 +166,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -176,14 +173,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/DynamicField/AdminDynamicFieldText.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,20 +12,18 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my %DynamicFieldsOverviewPageShownSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'PreferencesGroups###DynamicFieldsOverviewPageShown', ); - # show more dynamic fields per page as the default value + # show more dynamic fields per page as the default value. $Helper->ConfigSettingChange( Valid => 1, Key => 'PreferencesGroups###DynamicFieldsOverviewPageShown', @@ -35,7 +33,7 @@ }, ); - # create test user and login + # create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -46,34 +44,32 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminDynamicField screen + # navigate to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - # create and edit Ticket and Article DynamicFieldText + # create and edit Ticket and Article DynamicFieldText. for my $Type (qw(Ticket Article)) { my $ObjectType = $Type . "DynamicField"; $Selenium->execute_script("\$('#$ObjectType').val('Text').trigger('redraw.InputField').trigger('change');"); - # wait until page has finished loading - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Name").length' ); - for my $ID ( qw(Name Label FieldOrder DefaultValue Link AddRegEx ValidID) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. my $Element = $Selenium->find_element( "#Name", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -83,20 +79,28 @@ 'Client side validation correctly detected missing input value', ); - # create real text DynamicFieldText + # Create real text DynamicFieldText. my $RandomID = $Helper->GetRandomID(); my $RegEx = '^[0-9]$'; my $RegExErrorTxt = "Please remove this entry and enter a new one with the correct value."; - $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); - $Selenium->find_element( "#AddRegEx", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Name", 'css' )->send_keys($RandomID); + $Selenium->find_element( "#Label", 'css' )->send_keys($RandomID); + $Selenium->find_element( "#AddRegEx", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $("#RegEx_1").length && $("#CustomerRegExErrorMessage_1").length' + ); $Selenium->find_element( "#RegEx_1", 'css' )->send_keys($RegEx); $Selenium->find_element( "#CustomerRegExErrorMessage_1", 'css' )->send_keys($RegExErrorTxt); - # verify JS - add, remove and RegEx block validation - $Selenium->find_element( "#AddRegEx", 'css' )->VerifiedClick(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + # Verify JS - add, remove and RegEx block validation. + $Selenium->find_element( "#AddRegEx", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $("#RegEx_2").length && $("#CustomerRegExErrorMessage_2").length' + ); + + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#RegEx_2.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -106,26 +110,30 @@ 'Client side validation correctly detected missing input value', ); - $Selenium->find_element( "#RegEx_2", 'css' )->send_keys($RegEx); - $Selenium->find_element( "#RemoveRegEx_2", 'css' )->VerifiedClick(); + $Selenium->find_element( "#RegEx_2", 'css' )->send_keys($RegEx); - # submit form + $Selenium->find_element( "#RemoveRegEx_2", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return !$("#RegEx_2").length && !$("#CustomerRegExErrorMessage_2").length' + ); + + # Submit form. $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check for test DynamicFieldText on AdminDynamicField screen + # Check for test DynamicFieldText on AdminDynamicField screen. $Self->True( index( $Selenium->get_page_source(), $RandomID ) > -1, "DynamicFieldText $RandomID found on table" ) || die; - # edit test DynamicFieldText default value and set it to invalid + # Edit test DynamicFieldText default value and set it to invalid. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Selenium->find_element( "#DefaultValue", 'css' )->send_keys("Default"); $Selenium->execute_script("\$('#ValidID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # check new and edited DynamicFieldText values + # Check new and edited DynamicFieldText values. $Selenium->find_element( $RandomID, 'link_text' )->VerifiedClick(); $Self->Is( @@ -159,7 +167,7 @@ "#ValidID updated value", ); - # delete DynamicFields + # Delete DynamicFields. my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicField = $DynamicFieldObject->DynamicFieldGet( Name => $RandomID, @@ -168,8 +176,6 @@ ID => $DynamicField->{ID}, UserID => 1, ); - - # sanity check $Self->True( $Success, "DynamicFieldDelete() - $RandomID" @@ -177,14 +183,11 @@ # Go back to AdminDynamicField screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminDynamicField"); - } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "DynamicField" ); - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/Installer.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/Installer.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/Installer.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/Installer.t 2018-02-05 23:46:54.000000000 +0000 @@ -109,7 +109,10 @@ # Choose to use existing database for OTRS. if ( $DBType ne 'oracle' ) { - $Selenium->find_element( '#DBInstallTypeUseDB', 'css' )->VerifiedClick(); + $Selenium->find_element( '#DBInstallTypeUseDB', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("#DBInstallTypeUseDB:checked").length' + ); } # Go to next step of installation (Configure selected DB). @@ -134,7 +137,7 @@ $Selenium->find_element( '#DBName', 'css' )->send_keys($DBName); } - $Selenium->find_element( '#ButtonCheckDB', 'css' )->VerifiedClick(); + $Selenium->find_element( '#ButtonCheckDB', 'css' )->click(); $Selenium->WaitFor( Time => 300, JavaScript => 'return typeof($) === "function" && $(".Result:visible").length === 1;' diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivityDialog.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,58 +30,59 @@ Password => $TestUserLogin, ); - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # define needed variables my $ProcessRandom = 'Process' . $Helper->GetRandomID(); my $ActivityDialogRandom = 'ActivityDialog' . $Helper->GetRandomID(); my $DescriptionShort = "Selenium ActivityDialog Test"; - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # go to AdminProcessManagement screen + # Go to AdminProcessManagement screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); - # create new test Process + # Create new test Process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessNew' )]")->VerifiedClick(); $Selenium->find_element( "#Name", 'css' )->send_keys($ProcessRandom); $Selenium->find_element( "#Description", 'css' )->send_keys("Selenium Test Process"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # click on ActivityDialog dropdown - $Selenium->find_element( "Activity Dialogs", 'link_text' )->VerifiedClick(); + # Click on ActivityDialog dropdown. + $Selenium->find_element( "Activity Dialogs", 'link_text' )->click(); - # wait to toggle element - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('a.AsBlock:contains(\"Activity Dialogs\")').closest('.AccordionElement').hasClass('Active') === true" + ); - # click "Create New Activity Dialog" - $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityDialogNew' )]")->VerifiedClick(); + # Click "Create New Activity Dialog". + $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityDialogNew' )]")->click(); - # switch to pop up window + # Switch to pop up window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name').length" ); - - # check AdminProcessManagementActivityDialog screen + # Check AdminProcessManagementActivityDialog screen. for my $ID ( qw(Name Interface DescriptionShort DescriptionLong Permission RequiredLock SubmitAdviceText SubmitButtonText FilterAvailableFields AvailableFields AssignedFields Submit) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -92,7 +91,7 @@ 'Client side validation correctly detected missing input value', ); - # input fields and submit + # Input fields and submit. $Selenium->find_element( "#Name", 'css' )->send_keys($ActivityDialogRandom); $Selenium->find_element( "#DescriptionShort", 'css' )->send_keys($DescriptionShort); $Selenium->execute_script( @@ -101,27 +100,34 @@ $Selenium->execute_script("\$('#Permission').val('rw').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Submit", 'css' )->click(); - # switch back to main window + # Switch back to main window. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # check for created test activity dialog using filter on AdminProcessManagement screen + # Check for created test activity dialog using filter on AdminProcessManagement screen. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('ul#ActivityDialogs li:contains($ActivityDialogRandom)').length" ); - $Selenium->find_element( "Activity Dialogs", 'link_text' )->VerifiedClick(); + $Selenium->find_element( "Activity Dialogs", 'link_text' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('a.AsBlock:contains(\"Activity Dialogs\")').closest('.AccordionElement').hasClass('Active') === true" + ); + $Selenium->find_element( "#ActivityDialogFilter", 'css' )->send_keys($ActivityDialogRandom); - # wait for filter to kick in - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#ActivityDialogs li:visible').length === 1" + ); $Self->True( $Selenium->find_element("//*[text()=\"$ActivityDialogRandom\"]")->is_displayed(), "$ActivityDialogRandom activity found on page", ); - # get test ActivityDialogID + # Get test ActivityDialogID. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $ActivityDialogQuoted = $DBObject->Quote($ActivityDialogRandom); $DBObject->Prepare( @@ -133,16 +139,16 @@ $ActivityDialogID = $Row[0]; } - # go to edit test ActivityDialog screen + # Go to edit test ActivityDialog screen. $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityDialogEdit;ID=$ActivityDialogID' )]") - ->VerifiedClick(); + ->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name').length" ); - # check stored value + # Check stored value. $Self->Is( $Selenium->find_element( "#Name", 'css' )->get_value(), $ActivityDialogRandom, @@ -164,7 +170,7 @@ "#Permission stored value", ); - # edit test ActivityDialog values + # Edit test ActivityDialog values. $Selenium->find_element( "#Name", 'css' )->send_keys("edit"); $Selenium->find_element( "#DescriptionShort", 'css' )->send_keys(" Edit"); $Selenium->execute_script( @@ -177,7 +183,7 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # check for edited test ActivityDialog using filter on AdminProcessManagement screen + # Check for edited test ActivityDialog using filter on AdminProcessManagement screen. my $ActivityDialogRandomEdit = $ActivityDialogRandom . "edit"; my $DescriptionShortEdit = $DescriptionShort . " Edit"; @@ -185,27 +191,34 @@ JavaScript => "return typeof(\$) === 'function' && \$('ul#ActivityDialogs li:contains($ActivityDialogRandomEdit)').length" ); - $Selenium->find_element( "Activity Dialogs", 'link_text' )->VerifiedClick(); + $Selenium->find_element( "Activity Dialogs", 'link_text' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('a.AsBlock:contains(\"Activity Dialogs\")').closest('.AccordionElement').hasClass('Active') === true" + ); + $Selenium->find_element( "#ActivityDialogFilter", 'css' )->send_keys($ActivityDialogRandomEdit); - # Wait for filter to kick in. - sleep 1; + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#ActivityDialogs li:visible').length === 1" + ); $Self->True( $Selenium->find_element("//*[text()=\"$ActivityDialogRandomEdit\"]")->is_displayed(), "Edited $ActivityDialogRandomEdit activity dialog found on page", ); - # go to edit test ActivityDialog screen again + # Go to edit test ActivityDialog screen again. $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityDialogEdit;ID=$ActivityDialogID' )]") - ->VerifiedClick(); + ->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name').length" ); - # check edited values + # Check edited values. $Self->Is( $Selenium->find_element( "#Name", 'css' )->get_value(), $ActivityDialogRandomEdit, @@ -227,14 +240,14 @@ "#Permission updated value", ); - # return to main window + # Return to main window. $Selenium->close(); $Selenium->switch_to_window( $Handles->[0] ); - # get process id and return to overview afterwards + # Get process id and return to overview afterwards. my $ProcessID = $Selenium->execute_script('return $("#ProcessDelete").data("id")') || undef; - # delete test activity dialog + # Delete test activity dialog. my $Success = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::ActivityDialog')->ActivityDialogDelete( ID => $ActivityDialogID, UserID => $TestUserID, @@ -245,7 +258,7 @@ "Activity dialog is deleted - $ActivityDialogID", ); - # delete test process + # Delete test process. $Success = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process')->ProcessDelete( ID => $ProcessID, UserID => $TestUserID, @@ -256,18 +269,17 @@ "Process is deleted - $ProcessID", ); - # navigate to AdminProcessManagement screen again + # Navigate to AdminProcessManagement screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); - # synchronize process after deleting test process + # Synchronize process after deleting test process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # make sure cache is correct - for my $Cache ( - qw( ProcessManagement_ActivityDialog ProcessManagement_Process ) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. + for my $Cache (qw(ProcessManagement_ActivityDialog ProcessManagement_Process)) { + $CacheObject->CleanUp( Type => $Cache ); } } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementActivity.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -32,50 +30,49 @@ Password => $TestUserLogin, ); - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # define needed variables my $ProcessRandom = 'Process' . $Helper->GetRandomID(); my $ActivityRandom = 'Activity' . $Helper->GetRandomID(); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminProcessManagement screen + # Navigate to AdminProcessManagement screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); - # create new test Process + # Create new test Process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessNew' )]")->VerifiedClick(); $Selenium->find_element( "#Name", 'css' )->send_keys($ProcessRandom); $Selenium->find_element( "#Description", 'css' )->send_keys("Selenium Test Process"); $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); - # create new test Activity - $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityNew' )]")->VerifiedClick(); + # Create new test Activity. + $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityNew' )]")->click(); - # switch to pop up window + # Switch to pop up window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Name').length" ); - - # check AdminProcessManagementActivity screen + # Check AdminProcessManagementActivity screen. for my $ID ( qw(Name FilterAvailableActivityDialogs AvailableActivityDialogs AssignedActivityDialogs) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Name", 'css' )->clear(); - $Selenium->find_element( "#Submit", 'css' )->VerifiedClick(); + $Selenium->find_element( "#Submit", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return $("#Name.Error").length' ); + $Self->Is( $Selenium->execute_script( "return \$('#Name').hasClass('Error')" @@ -84,30 +81,28 @@ 'Client side validation correctly detected missing input value', ); - # input name field and submit + # Input name field and submit. $Selenium->find_element( "#Name", 'css' )->send_keys($ActivityRandom); $Selenium->find_element( "#Submit", 'css' )->click(); - # switch back to main window + # Switch back to main window. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # check for created test activity using filter on AdminProcessManagement screen + # Check for created test activity using filter on AdminProcessManagement screen. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('ul#Activities li:contains($ActivityRandom)').length" ); $Selenium->find_element( "#ActivityFilter", 'css' )->send_keys($ActivityRandom); - - # wait for filter to kick in - sleep 1; + $Selenium->WaitFor( JavaScript => 'return $("#Activities li:visible").length === 1' ); $Self->True( $Selenium->find_element("//*[text()=\"$ActivityRandom\"]")->is_displayed(), "$ActivityRandom activity found on page", ); - # get test ActivityID + # Get test ActivityID. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); my $ActivityQuoted = $DBObject->Quote($ActivityRandom); $DBObject->Prepare( @@ -119,8 +114,8 @@ $ActivityID = $Row[0]; } - # check for stored value and edit test Activity - $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityEdit;ID=$ActivityID' )]")->VerifiedClick(); + # Check for stored value and edit test Activity. + $Selenium->find_element("//a[contains(\@href, \'Subaction=ActivityEdit;ID=$ActivityID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); @@ -136,30 +131,31 @@ $Selenium->find_element( "#Name", 'css' )->send_keys("edit"); $Selenium->find_element( "#Submit", 'css' )->click(); - # return to main window after the popup is closed, as the popup sends commands to the main window. + # Return to main window after the popup is closed, as the popup sends commands to the main window. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # get process id + # Get process id. my $ProcessID = $Selenium->execute_script('return $("#ProcessDelete").data("id")') || undef; - # navigate to AdminProcessManagement screen + # Navigate to AdminProcessManagement screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); - # set process to inactive + # Set process to inactive. $Selenium->find_element( $ProcessRandom, 'link_text' )->VerifiedClick(); $Selenium->execute_script("\$('#StateEntityID').val('S2').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#Submit').click()"); - # test search filter + # Test search filter. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Filter").length' ); $Selenium->find_element( "#Filter", 'css' )->clear(); $Selenium->find_element( "#Filter", 'css' )->send_keys($ProcessRandom); - # Wait for filter to kick in. - sleep 1; + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("#Processes tbody tr:visible").length === 1' + ); - # check class of invalid Process in the overview table + # Check class of invalid Process in the overview table. $Self->True( $Selenium->execute_script( "return \$('tr.Invalid td:contains($ProcessRandom)').length" @@ -167,39 +163,35 @@ "There is a class 'Invalid' for test Process", ); - # delete test activity + # Delete test activity. my $Success = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Activity')->ActivityDelete( ID => $ActivityID, UserID => $TestUserID, ); - $Self->True( $Success, "Activity is deleted - $ActivityID", ); - # delete test process + # Delete test process. $Success = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process')->ProcessDelete( ID => $ProcessID, UserID => $TestUserID, ); - $Self->True( $Success, "Process is deleted - $ProcessID", ); - # synchronize process after deleting test process + # Synchronize process after deleting test process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # make sure cache is correct - for my $Cache ( - qw(ProcessManagement_Activity ProcessManagement_Process ) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); - } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure cache is correct. + for my $Cache (qw(ProcessManagement_Activity ProcessManagement_Process)) { + $CacheObject->CleanUp( Type => $Cache ); + } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/ProcessManagement/AdminProcessManagementImportExample.t 2018-02-05 23:46:54.000000000 +0000 @@ -215,13 +215,13 @@ push @UpdatedSettings, $Value->{$Key}->{Name}; } - $Success = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "Deployed by Selenium test", UserID => 1, Force => 1, DirtySettings => \@UpdatedSettings, ); - if ( !$Success ) { + if ( !$DeploymentResult{Success} ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "System was unable to deploy settings needed for Application for leave process!" diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/TicketAppointments.t otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/TicketAppointments.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Admin/TicketAppointments.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Admin/TicketAppointments.t 2018-02-05 23:46:54.000000000 +0000 @@ -483,8 +483,16 @@ for my $Test (@Tests) { # Add ticket appointment rule. - $Selenium->find_element( '.WidgetSimple.Collapsed .WidgetAction.Toggle a', 'css' )->VerifiedClick(); - $Selenium->find_element( '#AddRuleButton', 'css' )->VerifiedClick(); + $Selenium->find_element( '.WidgetSimple.Collapsed .WidgetAction.Toggle a', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('.WidgetSimple:contains(Ticket Appointments).Expanded').length" + ); + $Selenium->find_element( '#AddRuleButton', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return \$('.WidgetSimple:contains(Ticket Appointments).Expanded .Content:contains(Rule 1)').length" + ); # Set start date module. if ( $Test->{Config}->{StartDate} ) { @@ -513,7 +521,9 @@ $Selenium->execute_script( "\$('#SearchParams').val('$SearchParam').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( '.AddButton', 'css' )->VerifiedClick(); + $Selenium->find_element( '.AddButton', 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#SearchParam_1_$SearchParam').length" ); + $Selenium->find_element( "#SearchParam_1_$SearchParam", 'css' ) ->send_keys( $Test->{Config}->{SearchParams}->{$SearchParam} ); } @@ -610,7 +620,11 @@ } # Remove ticket appointment rule. - $Selenium->find_element( '.RemoveButton', 'css' )->VerifiedClick(); + $Selenium->find_element( '.RemoveButton', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return !\$('.WidgetSimple:contains(Ticket Appointments).Expanded .Content:contains(Rule 1)').length" + ); $Selenium->find_element( 'form#CalendarFrom button#SubmitAndContinue', 'css' )->VerifiedClick(); $Self->True( diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentAgendaOverview.t 2018-02-05 23:46:54.000000000 +0000 @@ -129,7 +129,8 @@ $Selenium->find_element( '#AppointmentCreateButton', 'css' )->click(); $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Title').length" ); $Selenium->find_element( 'Title', 'name' )->send_keys( $AppointmentNames[1] ); - $Selenium->find_element( 'AllDay', 'name' )->VerifiedClick(); + $Selenium->find_element( 'AllDay', 'name' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('input[name=AllDay]:checked').length" ); for my $Group (qw(Start End)) { for my $Field (qw(Day Month Year)) { $Selenium->execute_script( @@ -196,8 +197,9 @@ # Delete third appointment master. $Selenium->find_element( $AppointmentNames[2], 'link_text' )->click(); $Selenium->WaitFor( - JavaScript => "return typeof(\$) === 'function' && \$('#Title').length && \$('#EditFormDelete').length" + JavaScript => "return typeof(\$) === 'function' && \$('.Dialog.Modal #EditFormDelete').length" ); + sleep 2; $Selenium->find_element( "#EditFormDelete", 'css' )->click(); $Selenium->WaitFor( AlertPresent => 1 ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentCreate.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentCreate.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentCreate.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentCreate.t 2018-02-05 23:46:54.000000000 +0000 @@ -117,7 +117,7 @@ ); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -175,7 +175,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for AJAX to finish $Selenium->WaitFor( @@ -266,7 +266,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for AJAX to finish $Selenium->WaitFor( @@ -349,7 +349,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for AJAX to finish $Selenium->WaitFor( @@ -441,7 +441,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -602,7 +602,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('6'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -733,7 +733,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -911,7 +911,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('20'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -1039,7 +1039,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -1214,7 +1214,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('6'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( @@ -1343,7 +1343,7 @@ $Selenium->find_element( 'RecurrenceCount', 'name' )->send_keys('3'); # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # wait for dialog to close and AJAX to finish $Selenium->WaitFor( diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentNotification.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentNotification.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentNotification.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentNotification.t 2018-02-05 23:46:54.000000000 +0000 @@ -25,7 +25,7 @@ my $RandomID = $Helper->GetRandomID(); - # create test group + # Create test group. my $GroupName = "test-calendar-group-$RandomID"; my $GroupID = $GroupObject->GroupAdd( Name => $GroupName, @@ -33,7 +33,6 @@ UserID => 1, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); my $NextMonthObject = $Kernel::OM->Create('Kernel::System::DateTime'); @@ -54,29 +53,29 @@ ); my $YearBeforeLastSettings = $YearBeforeLastDateTimeObject->Get(); - # change resolution (desktop mode) + # Change resolution (desktop mode). $Selenium->set_window_size( 768, 1050 ); - # create test user + # Create test user. my $Language = 'en'; my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'users', $GroupName ], Language => $Language, ) || die "Did not get test user"; - # get UserID + # Get UserID. my $UserID = $UserObject->UserLookup( UserLogin => $TestUserLogin, ); - # start test + # Login as test user. $Selenium->Login( Type => 'Agent', User => $TestUserLogin, Password => $TestUserLogin, ); - # create a few test calendars + # Create test calendars. my %Calendar1 = $CalendarObject->CalendarCreate( CalendarName => "My Calendar $RandomID", Color => '#3A87AD', @@ -85,34 +84,32 @@ ValidID => 1, ); - # go to calendar overview page + # Go to calendar overview page. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentAppointmentCalendarOverview"); - # wait for AJAX to finish + # Wait for AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".CalendarWidget.Loading").length' ); - # click on the month view - $Selenium->find_element( '.fc-month-button', 'css' )->VerifiedClick(); + # Click on the month view. + $Selenium->find_element( '.fc-month-button', 'css' )->click(); - # wait for AJAX to finish + # Wait for AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".CalendarWidget.Loading").length' ); - # go to next month - $Selenium->find_element( '.fc-toolbar .fc-next-button', 'css' )->VerifiedClick(); + # Go to next month. + $Selenium->find_element( '.fc-toolbar .fc-next-button', 'css' )->click(); - # wait for AJAX to finish + # Wait for AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".CalendarWidget.Loading").length' ); my $DataDate = sprintf( "%04d-%02d-01", $NextMonthSettings->{Year}, $NextMonthSettings->{Month} ); - # - # Pre-Defined Templates - # + # Pre-Defined Templates. - # define appointment test with pre-defined notification templates + # Define appointment test with pre-defined notification templates. my @TemplateCreateTests = ( - # no active notification template + # No active notification template. { Data => { Description => 'No notification', @@ -129,7 +126,7 @@ }, }, - # notification template start (appointment start time) + # Notification template start (appointment start time). { Data => { Description => 'Appointment start', @@ -145,7 +142,7 @@ }, }, - # notification template 5 minutes before + # Notification template 5 minutes before. { Data => { Description => '5 minutes before', @@ -161,7 +158,7 @@ }, }, - # notification template 15 minutes before + # Notification template 15 minutes before. { Data => { Description => '15 minutes before', @@ -177,7 +174,7 @@ }, }, - # notification template 30 minutes before + # Notification template 30 minutes before. { Data => { Description => '30 minutes before', @@ -193,7 +190,7 @@ }, }, - # notification template 1 hour before + # Notification template 1 hour before. { Data => { Description => '1 hour before', @@ -209,7 +206,7 @@ }, }, - # notification template 2 hours before + # Notification template 2 hours before. { Data => { Description => '2 hours before', @@ -225,7 +222,7 @@ }, }, - # notification template 12 hours before + # Notification template 12 hours before. { Data => { Description => '12 hours before', @@ -241,7 +238,7 @@ }, }, - # notification template 1 day before + # Notification template 1 day before. { Data => { Description => '1 day before', @@ -257,7 +254,7 @@ }, }, - # notification template 2 days before + # Notification template 2 days before. { Data => { Description => '2 days before', @@ -273,7 +270,7 @@ }, }, - # notification template 1 week before + # Notification template 1 week before. { Data => { Description => '1 week before', @@ -290,16 +287,16 @@ }, ); - # notification pre-defined template test execution + # Notification pre-defined template test execution. for my $Test (@TemplateCreateTests) { - # create appointment - $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->VerifiedClick(); + # Create appointment. + $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->click(); - # wait until form and overlay has loaded, if neccessary + # Wait until form and overlay has loaded, if neccessary. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Title').length" ); - # enter some data + # Enter some data. $Selenium->find_element( 'Title', 'name' )->send_keys("$Test->{Data}->{Description}"); $Selenium->execute_script( "\$('#CalendarID').val(" @@ -311,10 +308,10 @@ "\$('#NotificationTemplate').val('$Test->{Data}->{NotificationTemplate}').trigger('redraw.InputField').trigger('change');" ); - # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + # Click on Save. + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); - # wait for dialog to close and AJAX to finish + # Wait for dialog to close and AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog:visible").length && !$(".CalendarWidget.Loading").length' @@ -325,7 +322,7 @@ Result => 'HASH', ); - # make sure there is an appointment + # Make sure there is an appointment. $Self->Is( scalar @AppointmentList, 1, @@ -351,7 +348,7 @@ ); } - # verify results + # Verify results. for my $ResultKey ( sort keys %{ $Test->{Result} } ) { $Self->Is( @@ -366,21 +363,19 @@ UserID => $UserID, ); - # delete appointment + # Delete appointment. $Self->True( $Delete, "Delete appointment verification - $Test->{Data}->{Description} .", ); } - # - # Custom Relative Templates - # + # Custom Relative Templates. - # define appointment test with custom notification templates + # Define appointment test with custom notification templates. my @TemplateCustomRelativeCreateTests = ( - # custom relative notification 0 minutes before start + # Custom relative notification 0 minutes before start. { Data => { Description => 'Custom relative 0 minutes before start', @@ -401,7 +396,7 @@ }, }, - # custom relative notification -2 minutes before start + # Custom relative notification -2 minutes before start. { Data => { Description => 'Custom relative -2 minutes before start', @@ -422,7 +417,7 @@ }, }, - # custom relative notification 2 minutes before start + # Custom relative notification 2 minutes before start. { Data => { Description => 'Custom relative 2 minutes before start', @@ -443,7 +438,7 @@ }, }, - # custom relative notification 0 minutes after start + # Custom relative notification 0 minutes after start. { Data => { Description => 'Custom relative 0 minutes after start', @@ -464,7 +459,7 @@ }, }, - # custom relative notification 0 minutes before end + # Custom relative notification 0 minutes before end. { Data => { Description => 'Custom relative 0 minutes before end', @@ -485,7 +480,7 @@ }, }, - # custom relative notification 0 minutes after end + # Custom relative notification 0 minutes after end. { Data => { Description => 'Custom relative 0 minutes after end', @@ -507,16 +502,16 @@ }, ); - # notification custom relative template test execution + # Notification custom relative template test execution. for my $Test (@TemplateCustomRelativeCreateTests) { - # create appointment - $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->VerifiedClick(); + # Create appointment. + $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->click(); - # wait until form and overlay has loaded, if neccessary + # Wait until form and overlay has loaded, if neccessary. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Title').length" ); - # enter some data + # Enter some data. $Selenium->find_element( 'Title', 'name' )->send_keys("$Test->{Data}->{Description}"); $Selenium->execute_script( "\$('#CalendarID').val(" @@ -524,33 +519,33 @@ . ").trigger('redraw.InputField').trigger('change');" ); - # select custom template + # Select custom template. $Selenium->execute_script( "\$('#NotificationTemplate').val('$Test->{Data}->{NotificationTemplate}').trigger('redraw.InputField').trigger('change');" ); - # activate the relative notifications - $Selenium->find_element( "#NotificationCustomRelativeInput", 'css' )->VerifiedClick(); + # Activate the relative notifications. + $Selenium->find_element( "#NotificationCustomRelativeInput", 'css' )->click(); - # fill out the custom unit count field + # Fill out the custom unit count field. $Selenium->execute_script( "return \$('#NotificationCustomRelativeUnitCount').val('$Test->{Data}->{NotificationCustomRelativeUnitCount}');" ); - # fill out the custom unit field + # Fill out the custom unit field. $Selenium->execute_script( "\$('#NotificationCustomRelativeUnit').val('$Test->{Data}->{NotificationCustomRelativeUnit}').trigger('redraw.InputField').trigger('change');" ); - # fill out the custom unit point of time field + # Fill out the custom unit point of time field. $Selenium->execute_script( "\$('#NotificationCustomRelativePointOfTime').val('$Test->{Data}->{NotificationCustomRelativePointOfTime}').trigger('redraw.InputField').trigger('change');" ); - # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + # Click on Save. + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); - # wait for dialog to close and AJAX to finish + # Wait for dialog to close and AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog:visible").length && !$(".CalendarWidget.Loading").length' @@ -561,17 +556,17 @@ Result => 'HASH', ); - # make sure there is an appointment + # Make sure there is an appointment. $Self->Is( scalar @AppointmentList, 1, "Appointment list verification - $Test->{Data}->{Description} ." ); - # get the needed notification params + # Get the needed notification params. my $CustomUnitCount = $Test->{Data}->{NotificationCustomRelativeUnitCount}; - # the backend treats negative values as 0 + # The backend treats negative values as 0. if ( $CustomUnitCount < 0 ) { $CustomUnitCount = 0; } @@ -579,7 +574,7 @@ my $CustomUnit = $Test->{Data}->{NotificationCustomRelativeUnit}; my $CustomUnitPoint = $Test->{Data}->{NotificationCustomRelativePointOfTime}; - # setup the count to compute for the offset + # Setup the count to compute for the offset. my %UnitOffsetCompute = ( minutes => 60, hours => 3600, @@ -588,7 +583,7 @@ my $NotificationLocalTimeObject; - # compute from start time + # Compute from start time. if ( $CustomUnitPoint eq 'beforestart' || $CustomUnitPoint eq 'afterstart' ) { $NotificationLocalTimeObject = $Kernel::OM->Create( 'Kernel::System::DateTime', @@ -598,7 +593,7 @@ ); } - # compute from end time + # Compute from end time. elsif ( $CustomUnitPoint eq 'beforeend' || $CustomUnitPoint eq 'afterend' ) { $NotificationLocalTimeObject = $Kernel::OM->Create( 'Kernel::System::DateTime', @@ -633,21 +628,19 @@ UserID => $UserID, ); - # delete appointment + # Delete appointment. $Self->True( $Delete, "Delete appointment verification - $Test->{Data}->{Description}", ); } - # - # Custom DateTime Templates - # + # Custom DateTime Templates. - # define appointment test with custom notification templates + # Define appointment test with custom notification templates. my @TemplateCustomDateTimeCreateTests = ( - # custom datetime notification $YearBeforeLast-09-01 10:10:00 + # Custom datetime notification $YearBeforeLast-09-01 10:10:00. { Data => { Description => "Custom datetime $YearBeforeLastSettings->{Year}-09-01 10:10:00", @@ -675,7 +668,7 @@ }, }, - # custom datetime notification $YearBeforeLast-10-18 00:03:00 + # Custom datetime notification $YearBeforeLast-10-18 00:03:00. { Data => { Description => "Custom datetime $YearBeforeLastSettings->{Year}-10-18 01:03:00", @@ -703,7 +696,7 @@ }, }, - # custom datetime notification $LastYear-10-18 00:03:00 + # Custom datetime notification $LastYear-10-18 00:03:00. { Data => { Description => "Custom datetime $LastYearSettings->{Year}-10-18 03:03:00", @@ -731,7 +724,7 @@ }, }, - # custom datetime notification $YearBeforeLast-10-18 02:03:00 + # Custom datetime notification $YearBeforeLast-10-18 02:03:00. { Data => { Description => "Custom datetime $YearBeforeLastSettings->{Year}-10-18 02:03:00", @@ -760,16 +753,16 @@ }, ); - # notification datetime template test execution + # Notification datetime template test execution. for my $Test (@TemplateCustomDateTimeCreateTests) { - # create appointment - $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->VerifiedClick(); + # Create appointment. + $Selenium->find_element( ".fc-widget-content td[data-date=\"$DataDate\"]", 'css' )->click(); - # wait until form and overlay has loaded, if neccessary + # Wait until form and overlay has loaded, if neccessary. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Title').length" ); - # enter some data + # Enter some data. $Selenium->find_element( 'Title', 'name' )->send_keys("$Test->{Data}->{Description}"); $Selenium->execute_script( "\$('#CalendarID').val(" @@ -777,43 +770,44 @@ . ").trigger('redraw.InputField').trigger('change');" ); - # select custom template + # Select custom template. $Selenium->execute_script( "\$('#NotificationTemplate').val('$Test->{Data}->{NotificationTemplate}').trigger('redraw.InputField').trigger('change');" ); - # activate the relative notifications - $Selenium->find_element( "#NotificationCustomDateTimeInput", 'css' )->VerifiedClick(); + # Activate the relative notifications. + $Selenium->find_element( "#NotificationCustomDateTimeInput", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#NotificationCustomDateTimeInput:checked').length" ); - # select day + # Select day. $Selenium->execute_script( "\$('#NotificationCustomDateTimeDay').val('$Test->{Data}->{DateTimeDay}').trigger('redraw.InputField').trigger('change');" ); - # select month + # Select month. $Selenium->execute_script( "\$('#NotificationCustomDateTimeMonth').val('$Test->{Data}->{DateTimeMonth}').trigger('redraw.InputField').trigger('change');" ); - # select year + # Select year. $Selenium->execute_script( "\$('#NotificationCustomDateTimeYear').val('$Test->{Data}->{DateTimeYear}').trigger('redraw.InputField').trigger('change');" ); - # select hour + # Select hour. $Selenium->execute_script( "\$('#NotificationCustomDateTimeHour').val('$Test->{Data}->{DateTimeHour}').trigger('redraw.InputField').trigger('change');" ); - # select minute + # Select minute. $Selenium->execute_script( "\$('#NotificationCustomDateTimeMinute').val('$Test->{Data}->{DateTimeMinute}').trigger('redraw.InputField').trigger('change');" ); - # click on Save - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + # Click on Save. + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); - # wait for dialog to close and AJAX to finish + # Wait for dialog to close and AJAX to finish. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog:visible").length && !$(".CalendarWidget.Loading").length' @@ -824,14 +818,14 @@ Result => 'HASH', ); - # make sure there is an appointment + # Make sure there is an appointment. $Self->Is( scalar @AppointmentList, 1, "Appointment list verification - $Test->{Data}->{Description} ." ); - # verify results + # Verify results. for my $ResultKey ( sort keys %{ $Test->{Result} } ) { $Self->Is( @@ -841,7 +835,7 @@ ); } - # delete appointment + # Delete appointment. my $Delete = $AppointmentObject->AppointmentDelete( AppointmentID => $AppointmentList[0]->{AppointmentID}, UserID => $UserID, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentAppointmentTimeZone.t 2018-02-05 23:46:54.000000000 +0000 @@ -84,8 +84,7 @@ $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".CalendarWidget.Loading").length' ); # Click on the timeline view for an appointment dialog. - $Selenium->find_element( '.fc-timelineWeek-view .fc-slats td.fc-widget-content:nth-child(5)', 'css' ) - ->VerifiedClick(); + $Selenium->find_element( '.fc-timelineWeek-view .fc-slats td.fc-widget-content:nth-child(5)', 'css' )->click(); # Wait until form and overlay has loaded, if necessary. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#Title').length" ); @@ -112,7 +111,7 @@ ); # Click on Save. - $Selenium->find_element( '#EditFormSubmit', 'css' )->VerifiedClick(); + $Selenium->find_element( '#EditFormSubmit', 'css' )->click(); # Wait for dialog to close and AJAX to finish. $Selenium->WaitFor( @@ -120,7 +119,7 @@ 'return typeof($) === "function" && !$(".Dialog:visible").length && !$(".CalendarWidget.Loading").length' ); - # Cerify appointment is visible. + # Verify appointment is visible. $Self->Is( $Selenium->execute_script( "return \$('.fc-timeline-event .fc-title').text();" @@ -257,9 +256,11 @@ ); } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure cache is correct. for my $Cache (qw(Calendar Appointment)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + $CacheObject->CleanUp( Type => $Cache ); } }, ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentCustomerInformationCenter.t 2018-02-05 23:46:54.000000000 +0000 @@ -19,33 +19,27 @@ my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable check email addresses + # Disable check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # create test customer user + # Create test customer user. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; - # get test customer user ID + # Get test customer user ID. my @CustomerIDs = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerIDs( User => $TestCustomerUserLogin, ); @@ -103,7 +97,7 @@ my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test data parameters + # Create test data parameters. my %TicketData = ( 'Open' => { TicketState => 'open', @@ -121,7 +115,7 @@ }, ); - # create open and closed tickets + # Create open and closed tickets. for my $TicketCreate ( sort keys %TicketData ) { for my $TestTickets ( 1 .. 5 ) { my $TicketNumber = $TicketObject->TicketCreateNumber(); @@ -153,16 +147,23 @@ $TicketData{$TicketCreate}->{TicketCount} = $TicketCount; } + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminCustomerInformationCenter screen + # Navigate to AdminCustomerInformationCenter screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentCustomerInformationCenter"); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#AgentCustomerInformationCenterSearchCustomerID").length' ); - # input search parameters for CustomerUser + # Input search parameters for CustomerUser. $Selenium->find_element( "#AgentCustomerInformationCenterSearchCustomerUser", 'css' ) ->send_keys( $RandomID . 'CustomerUser' . '*' ); @@ -174,13 +175,13 @@ ); $Selenium->find_element( "#AgentCustomerInformationCenterSearchCustomerUser", 'css' )->clear(); - # input search parameters CustomerID + # Input search parameters CustomerID. $Selenium->find_element( "#AgentCustomerInformationCenterSearchCustomerID", 'css' ) ->send_keys($TestCustomerUserLogin); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("li.ui-menu-item:visible").length' ); $Selenium->execute_script("\$('li.ui-menu-item:contains($TestCustomerUserLogin)').click()"); - # check customer information center page + # Check customer information center page. $Self->True( index( $Selenium->get_page_source(), "Customer Information Center" ) > -1, "Found looked value on page", @@ -206,24 +207,24 @@ "Setting for toggle widgets found on page", ); - # check if there is link to CIC search modal dialog from heading (name of the company) + # Check if there is link to CIC search modal dialog from heading (name of the company). $Self->True( $Selenium->find_element( "#CustomerInformationCenterHeading", 'css' ), 'There is link to customer information center search modal dialog.', ); - # test links in Company Status widget + # Test links in Company Status widget. for my $TestLinks ( sort keys %TicketData ) { - # click on link + # Click on link. $Selenium->find_element( "//a[contains(\@href, \'Subaction=Search;StateType=$TicketData{$TestLinks}->{TicketLink};CustomerIDRaw=$TestCustomerUserLogin' )]" )->VerifiedClick(); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); - # check for test ticket numbers on search screen + # Check for test ticket numbers on search screen. for my $CheckTicketNumbers ( @{ $TicketData{$TestLinks}->{TicketNumbers} } ) { $Self->True( index( $Selenium->get_page_source(), $CheckTicketNumbers ) > -1, @@ -231,18 +232,18 @@ ); } - # click on 'Change search option' + # Click on 'Change search option'. $Selenium->find_element( "//a[contains(\@href, \'AgentTicketSearch;Subaction=LoadProfile' )]" - )->VerifiedClick(); + )->click(); - # wait until search dialog has been loaded - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#SearchFormSubmit").length' ); + # Wait until search dialog has been loaded. + $Selenium->WaitFor( JavaScript => 'return $("#SearchFormSubmit").length' ); - # verify state search attributes are shown in search screen, see bug #10853 + # Verify state search attributes are shown in search screen, see bug #10853. $Selenium->find_element( "#StateIDs", 'css' ); - # open CIC again for the next test case + # Open CIC again for the next test case. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentCustomerInformationCenter;CustomerID=$TestCustomerUserLogin" ); @@ -266,8 +267,6 @@ # Click on wanted element in dropdown menu. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("li.ui-menu-item:visible").length' ); $Selenium->execute_script("\$('li.ui-menu-item:contains($CustomerUserIDs[0])').click()"); - - # Error is expected. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog.Modal").length' ); $Self->Is( @@ -277,7 +276,8 @@ ); # Close error message. - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' ); # Go to previous. $Selenium->VerifiedGet( @@ -310,7 +310,7 @@ "Warning dialog for entry duplication is found", ); - # delete created test tickets + # Delete created test tickets. for my $TicketState ( sort keys %TicketData ) { for my $TicketID ( @{ $TicketData{$TicketState}->{TicketIDs} } ) { @@ -326,7 +326,7 @@ } } - # delete created test customer user and customer company + # Delete created test customer user and customer company. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); for my $CustomerID (@CustomerUserIDs) { my $Success = $DBObject->Do( @@ -348,7 +348,7 @@ "Deleted CustomerUser - $CustomerID", ); - # make sure cache is correct + # make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentCustomerUserAddressBook.t 2018-02-05 23:46:54.000000000 +0000 @@ -147,7 +147,7 @@ }, ); - # Get the customer company config and customer user config to add the dynamic fields to the map. + # Get the customer company and customer user configs to add the dynamic fields to the map. my $CustomerCompanyConfig = $Kernel::OM->Get('Kernel::Config')->Get('CustomerCompany'); my $CustomerUserConfig = $Kernel::OM->Get('Kernel::Config')->Get('CustomerUser'); @@ -155,7 +155,7 @@ my @DynamicFieldCustomerCompanySearchFields; my @DynamicFieldCustomerUserSearchFields; - # Create test dynamic field of type date + # Create test dynamic field of type date. for my $DynamicField (@DynamicFields) { my $DynamicFieldID = $DynamicFieldObject->DynamicFieldAdd( @@ -389,6 +389,7 @@ $CustomerUserMailStrings{$UserLogin} = $CustomerUserData{UserMailString}; } + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -403,7 +404,7 @@ my @Tests = ( [ - # Find all customer user + # Find all customer user. { RecipientField => 'ToCustomer', CheckDefaultFields => 1, @@ -417,7 +418,7 @@ }, ], [ - # Find all customer user + # Find all customer user. { RecipientField => 'CcCustomer', CheckDefaultFields => 1, @@ -431,7 +432,7 @@ }, ], [ - # Find all customer user + # Find all customer user. { RecipientField => 'BccCustomer', CheckDefaultFields => 1, @@ -585,13 +586,25 @@ for my $SubTest ( @{$Test} ) { + # Reset the page load complete flag inside the frame, so following switch to frame can check if it has + # been reloaded. + $Selenium->execute_script( ' + if ( + typeof($(".CustomerUserAddressBook").get(0)) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core.App) == "object" + ) + { + $(".CustomerUserAddressBook").get(0).contentWindow.Core.App.PageLoadComplete = false; + } + ' ); + $Selenium->find_element( "#OptionCustomerUserAddressBook" . $SubTest->{RecipientField}, 'css' ) - ->VerifiedClick(); - $Selenium->switch_to_frame( $Selenium->find_element( '.CustomerUserAddressBook', 'css' ) ); + ->click(); - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + $Selenium->SwitchToFrame( + FrameSelector => '.CustomerUserAddressBook', + WaitForLoad => 1, ); # Check the default fields for the initial address book screen. @@ -674,14 +687,27 @@ $Selenium->find_element( '#SearchProfileAddAction', 'css' )->click(); } - # Switch to the "main" window to click the search submit button and switch back to the address book frame. + # Switch to the "main" window to click the search submit button and switch back to the address book + # frame. $Selenium->switch_to_frame(); + + # Reset the page load complete flag inside the frame, so following switch to frame can check if it + # has been reloaded. + $Selenium->execute_script( ' + if ( + typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core.App) == "object" + ) + { + $(".CustomerUserAddressBook").get(0).contentWindow.Core.App.PageLoadComplete = false; + } + ' ); + $Selenium->find_element( '#SearchFormSubmit', 'css' )->click(); - $Selenium->switch_to_frame( $Selenium->find_element( '.CustomerUserAddressBook', 'css' ) ); - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + $Selenium->SwitchToFrame( + FrameSelector => '.CustomerUserAddressBook', + WaitForLoad => 1, ); } elsif ( $SubTest->{UseSearchProfile} ) { @@ -690,17 +716,33 @@ "\$('#SearchProfile').val('$SubTest->{UseSearchProfile}').trigger('change');", ); + sleep 1; + # wait until form and overlay has loaded, if neccessary $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#SaveProfile').length" ); - # Switch to the "main" window to click the search submit button and switch back to the address book frame. + # Switch to the "main" window to click the search submit button and switch back to the address book + # frame. $Selenium->switch_to_frame(); + + # Reset the page load complete flag inside the frame, so following switch to frame can check if it + # has been reloaded. + $Selenium->execute_script( ' + if ( + typeof($(".CustomerUserAddressBook").get(0)) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core.App) == "object" + ) + { + $(".CustomerUserAddressBook").get(0).contentWindow.Core.App.PageLoadComplete = false; + } + ' ); + $Selenium->find_element( '#SearchFormSubmit', 'css' )->click(); - $Selenium->switch_to_frame( $Selenium->find_element( '.CustomerUserAddressBook', 'css' ) ); - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + $Selenium->SwitchToFrame( + FrameSelector => '.CustomerUserAddressBook', + WaitForLoad => 1, ); } else { @@ -721,11 +763,6 @@ $Selenium->accept_alert(); $Selenium->switch_to_frame( $Selenium->find_element( '.CustomerUserAddressBook', 'css' ) ); - - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' - ); } if ( IsArrayRefWithData( $SubTest->{ExcludeSearchResultCustomerUser} ) ) { @@ -758,9 +795,10 @@ $Selenium->find_element( '#ChangeSearch', 'css' )->click(); } + sleep 1; + $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + JavaScript => 'return $("#Attribute").length == 1 && $(".AddButton").length == 1' ); for my $FieldName ( @{ $SubTest->{SearchFieldsChange} } ) { @@ -802,14 +840,28 @@ } } - # Switch to the "main" window to click the search submit button and switch back to the address book frame. + # Switch to the "main" window to click the search submit button and switch back to the address book + # frame. $Selenium->switch_to_frame(); + + # Reset the page load complete flag inside the frame, so following switch to frame can check if it + # has been reloaded. + $Selenium->execute_script( ' + if ( + typeof($(".CustomerUserAddressBook").get(0)) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core) == "object" + && typeof($(".CustomerUserAddressBook").get(0).contentWindow.Core.App) == "object" + ) + { + $(".CustomerUserAddressBook").get(0).contentWindow.Core.App.PageLoadComplete = false; + } + ' ); + $Selenium->find_element( '#SearchFormSubmit', 'css' )->click(); - $Selenium->switch_to_frame( $Selenium->find_element( '.CustomerUserAddressBook', 'css' ) ); - $Selenium->WaitFor( - JavaScript => - 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + $Selenium->SwitchToFrame( + FrameSelector => '.CustomerUserAddressBook', + WaitForLoad => 1, ); } @@ -975,11 +1027,11 @@ ); } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure that the cache is correct, because we delete the data directly in the database. for my $Cache (qw (CustomerUser CustomerCompany)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentLinkObject.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentLinkObject.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentLinkObject.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentLinkObject.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,56 +12,46 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # set link object view mode to simple + # Set link object view mode to simple. $Helper->ConfigSettingChange( Valid => 1, Key => 'LinkObject::ViewMode', Value => 'Simple', ); - # set Ticket::SubjectSize + # Set Ticket::SubjectSize. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::SubjectSize', Value => '60', ); - # disable Ticket::ArchiveSystem + # Disable Ticket::ArchiveSystem. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::ArchiveSystem', Value => 0, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test tickets + # Create test tickets. my @TicketIDs; my @TicketNumbers; for my $Ticket ( 1 .. 3 ) { @@ -86,75 +76,81 @@ push @TicketNumbers, $TicketNumber; } - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketIDs[0]"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # click on 'Link' - $Selenium->find_element("//a[contains(\@href, \'Action=AgentLinkObject;SourceObject=Ticket;' )]") - ->VerifiedClick(); + # Click on 'Link'. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentLinkObject;SourceObject=Ticket;' )]")->click(); - # switch to link object window + # Switch to link object window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); $Selenium->execute_script("\$('#SubmitSearch').click();"); - $Selenium->WaitFor( - AlertPresent => 1, - ); + $Selenium->WaitFor( AlertPresent => 1 ); $Selenium->accept_alert(); - # enable Ticket::ArchiveSystem + # Enable Ticket::ArchiveSystem. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::ArchiveSystem', Value => 1, ); - # search for second created test ticket + # Search for second created test ticket $Selenium->find_element(".//*[\@id='SEARCH::TicketNumber']")->send_keys( $TicketNumbers[1] ); $Selenium->find_element( '#SubmitSearch', 'css' )->VerifiedClick(); - # link created test tickets - $Selenium->find_element("//input[\@value='$TicketIDs[1]'][\@type='checkbox']")->VerifiedClick(); + # Link created test tickets. + $Selenium->find_element("//input[\@value='$TicketIDs[1]'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$TicketIDs[1]][type=checkbox]:checked').length" + ); $Selenium->execute_script( "\$('#TypeIdentifier').val('ParentChild::Target').trigger('redraw.InputField').trigger('change');" ); $Selenium->find_element("//button[\@type='submit'][\@name='AddLinks']")->click(); - # search for third created test ticket + # Search for third created test ticket. $Selenium->find_element(".//*[\@id='SEARCH::TicketNumber']")->clear(); $Selenium->find_element(".//*[\@id='SEARCH::TicketNumber']")->send_keys( $TicketNumbers[2] ); $Selenium->find_element( '#SubmitSearch', 'css' )->VerifiedClick(); - # link created test tickets - $Selenium->find_element("//input[\@value='$TicketIDs[2]'][\@type='checkbox']")->VerifiedClick(); + # Link created test tickets. + $Selenium->find_element("//input[\@value='$TicketIDs[2]'][\@type='checkbox']")->click(); + $Selenium->WaitFor( + JavaScript => "return \$('input[value=$TicketIDs[2]][type=checkbox]:checked').length" + ); $Selenium->execute_script( "\$('#TypeIdentifier').val('Normal::Source').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element("//button[\@type='submit'][\@name='AddLinks']")->click(); + $Selenium->find_element("//button[\@type='submit'][\@name='AddLinks']")->VerifiedClick(); - # close link object window and switch back to agent ticket zoom - sleep 1; - if ( scalar( @{ $Selenium->get_window_handles() } ) == 2 ) { - $Selenium->close(); - } - $Selenium->switch_to_window( $Handles->[0] ); + $Selenium->find_element( "#LinkAddCloseLink", 'css' )->click(); - # Wait for reload to kick in. - sleep 1; + # Switch back to the main window. + $Selenium->WaitFor( WindowCount => 1 ); + $Handles = $Selenium->get_window_handles(); + $Selenium->switch_to_window( $Handles->[0] ); - # refresh agent ticket zoom + # Refresh agent ticket zoom. $Selenium->VerifiedRefresh(); - # verify that parent test tickets is linked with child test ticket + # Verify that parent test tickets is linked with child test ticket. $Self->True( index( $Selenium->get_page_source(), 'Child' ) > -1, "Child - found", @@ -164,7 +160,7 @@ "TicketNumber $TicketNumbers[1] - found", ) || die; - # verify that third test tickets is linked with the first ticket + # Verify that third test tickets is linked with the first ticket. $Self->True( index( $Selenium->get_page_source(), 'Normal' ) > -1, "Normal - found", @@ -174,11 +170,11 @@ "TicketNumber $TicketNumbers[2] - found", ) || die; - # click on child ticket + # Click on child ticket. $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketZoom;TicketID=$TicketIDs[1]' )]") ->VerifiedClick(); - # verify that child test ticket is linked with parent test ticket + # Verify that child test ticket is linked with parent test ticket. $Self->True( index( $Selenium->get_page_source(), 'Parent' ) > -1, "Parent - found", @@ -188,18 +184,18 @@ "TicketNumber $TicketNumbers[0] - found", ) || die; - # test ticket title length in complex view for linked tickets, see bug #11511 - # set link object view mode to complex + # Test ticket title length in complex view for linked tickets, see bug #11511. + # Set link object view mode to complex. $Helper->ConfigSettingChange( Valid => 1, Key => 'LinkObject::ViewMode', Value => 'Complex', ); - # update test ticket title to more then 50 characters (there is 65) + # Update test ticket title to more then 50 characters (there is 65). my $LongTicketTitle = 'This is long test ticket title with more then 50 characters in it'; - # Ticket::SubjectSize is set to 60 at the beginning of test + # Ticket::SubjectSize is set to 60 at the beginning of test. my $ShortTitle = substr( $LongTicketTitle, 0, 57 ) . "..."; my $Success = $TicketObject->TicketTitleUpdate( Title => $LongTicketTitle, @@ -211,16 +207,16 @@ "Updated ticket title - $TicketIDs[1]" ); - # navigate to AgentTicketZoom screen + # Navigate to AgentTicketZoom screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketIDs[0]"); - # check for updated ticket title in linked tickets complex view table + # Check for updated ticket title in linked tickets complex view table. $Self->True( index( $Selenium->get_page_source(), $LongTicketTitle ) > -1, "$LongTicketTitle - found in AgentTicketZoom complex view mode", ) || die; - # check for "default" visible columns in the Linked Ticket widget + # Check for "default" visible columns in the Linked Ticket widget. $Self->Is( $Selenium->execute_script( "return \$('#WidgetTicket .DataTable thead tr th:nth-child(1)').text();" @@ -265,32 +261,30 @@ 'Default 6th column name', ); - # click on the delete link in the of the third test ticket + # Click on the delete link in the of the third test ticket. $Selenium->find_element( "a.InstantLinkDelete[data-delete-link-sourceobject='Ticket'][data-delete-link-sourcekey='$TicketIDs[2]']", 'css' )->click(); - $Selenium->WaitFor( - AlertPresent => 1, - ); + $Selenium->WaitFor( AlertPresent => 1 ); $Selenium->accept_alert(); - # navigate to AgentTicketZoom screen again + # Navigate to AgentTicketZoom screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketIDs[0]"); - # check that link to third test ticket has been deleted + # Check that link to third test ticket has been deleted. $Self->False( index( $Selenium->get_page_source(), $TicketNumbers[2] ) > -1, "TicketNumber $TicketNumbers[2] - found", ) || die; - # show ActionMenu - usually this is done when user hovers, however it's not possible to simulate this behaviour + # Show ActionMenu - usually this is done when user hovers, however it's not possible to simulate this behaviour. $Selenium->execute_script( "\$('#WidgetTicket .ActionMenu').show();" ); - # check if column settings button is available in the Linked Ticket widget - $Selenium->find_element( 'a#linkobject-Ticket-toggle', 'css' )->VerifiedClick(); + # Check if column settings button is available in the Linked Ticket widget. + $Selenium->find_element( 'a#linkobject-Ticket-toggle', 'css' )->click(); # Wait for the complete widget to be fully slided in all the way down to the submit button. $Selenium->WaitFor( @@ -309,7 +303,7 @@ } else { - # Remove Age from left side, and put it to the right side + # Remove Age from left side, and put it to the right side. $Selenium->DragAndDrop( Element => '#WidgetTicket #AvailableField-linkobject-Ticket li[data-fieldname="Age"]', Target => '#AssignedFields-linkobject-Ticket', @@ -319,7 +313,7 @@ }, ); - # Remove State from right side, and put it to the left side + # Remove State from right side, and put it to the left side. $Selenium->DragAndDrop( Element => '#WidgetTicket #AssignedFields-linkobject-Ticket li[data-fieldname="State"]', Target => '#AvailableField-linkobject-Ticket', @@ -329,7 +323,7 @@ }, ); - # Put TicketNumber at the end + # Put TicketNumber at the end. $Selenium->DragAndDrop( Element => '#WidgetTicket #AssignedFields-linkobject-Ticket li[data-fieldname="TicketNumber"]', Target => '#AvailableField-linkobject-Ticket', @@ -347,16 +341,16 @@ }, ); - # save - $Selenium->find_element( '#linkobject-Ticket_submit', 'css' )->VerifiedClick(); + # Save. + $Selenium->find_element( '#linkobject-Ticket_submit', 'css' )->click(); - # wait for AJAX + # Wait for AJAX. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#WidgetTicket .DataTable:visible").length;' ); - # check for "updated" visible columns in the Linked Ticket widget + # Check for "updated" visible columns in the Linked Ticket widget. $Self->Is( $Selenium->execute_script( "return \$('#WidgetTicket .DataTable thead tr th:nth-child(1)').text();" @@ -401,13 +395,14 @@ 'Updated 6th column name', ); - # show ActionMenu - usually this is done when user hovers, however it's not possible to simulate this behaviour + # Show ActionMenu - usually this is done when user hovers, + # however it's not possible to simulate this behaviour. $Selenium->execute_script( "\$('#WidgetTicket .ActionMenu').show();" ); - # check if column settings button is available in the Linked Ticket widget - $Selenium->find_element( 'a#linkobject-Ticket-toggle', 'css' )->VerifiedClick(); + # Check if column settings button is available in the Linked Ticket widget. + $Selenium->find_element( 'a#linkobject-Ticket-toggle', 'css' )->click(); # Wait for the complete widget to be fully slided in all the way down to the submit button. $Selenium->WaitFor( @@ -417,7 +412,7 @@ sleep 1; - # Remove TicketNumber from right side, and put it to the left side + # Remove TicketNumber from right side, and put it to the left side. $Selenium->DragAndDrop( Element => '#WidgetTicket #AssignedFields-linkobject-Ticket li[data-fieldname="TicketNumber"]', Target => '#AvailableField-linkobject-Ticket', @@ -427,16 +422,16 @@ }, ); - # save - $Selenium->find_element( '#linkobject-Ticket_submit', 'css' )->VerifiedClick(); + # Save. + $Selenium->find_element( '#linkobject-Ticket_submit', 'css' )->click(); - # wait for AJAX + # Wait for AJAX. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#WidgetTicket .DataTable:visible").length;' ); - # check if TicketNumber is still there + # Check if TicketNumber is still there. $Self->Is( $Selenium->execute_script( "return \$('#WidgetTicket .DataTable thead tr th:nth-child(1)').text();" @@ -446,54 +441,53 @@ ); } - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # click on 'Link' - $Selenium->find_element("//a[contains(\@href, \'Action=AgentLinkObject;SourceObject=Ticket;' )]") - ->VerifiedClick(); + # Click on 'Link'. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentLinkObject;SourceObject=Ticket;' )]")->click(); - # switch to link object window + # Switch to link object window. $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); - # switch to manage links tab - $Selenium->find_element("//a[contains(\@href, \'#ManageLinks' )]")->VerifiedClick(); + # Switch to manage links tab. + $Selenium->find_element("//a[contains(\@href, \'#ManageLinks' )]")->click(); - # wait for the manage links tab to show up + # Wait for the manage links tab to show up. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("div[data-id=ManageLinks]:visible").length && parseInt($("div[data-id=ManageLinks]").css("opacity"), 10) == 1' ); - # check for long ticket title in LinkDelete screen - # this one is displayed on hover + # Check for long ticket title in LinkDelete screen. + # This one is displayed on hover. $Self->True( index( $Selenium->get_page_source(), "title=\"$LongTicketTitle\"" ) > -1, "\"title=$LongTicketTitle\" - found in LinkDelete screen - which is displayed on hover", ) || die; - # check for short ticket title in LinkDelete screen + # Check for short ticket title in LinkDelete screen. $Self->True( index( $Selenium->get_page_source(), $ShortTitle ) > -1, "$ShortTitle - found in LinkDelete screen", ) || die; - # select all links + # Select all links. $Selenium->find_element( ".Tabs div.Active .SelectAll", "css" )->click(); - # make sure it's selected + # Make sure it's selected. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#SelectAllLinks0:checked").length' ); - # click on delete links + # Click on delete links. $Selenium->find_element( ".Tabs div.Active .CallForAction", "css" )->VerifiedClick(); - # switch to add links tab + # Switch to add links tab. $Selenium->find_element("//a[contains(\@href, \'#AddNewLinks' )]")->click(); - # wait for the add new links tab to show up + # Wait for the add new links tab to show up. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("div[data-id=AddNewLinks]:visible").length && parseInt($("div[data-id=AddNewLinks]").css("opacity"), 10) == 1' @@ -510,7 +504,7 @@ "Check if 2nd ticket is archived successfully." ); - # check if there is "Search archive" drop-down. + # Check if there is "Search archive" drop-down. $Self->True( $Selenium->execute_script( "return \$('#SEARCH\\\\:\\\\:ArchiveID').length" @@ -518,11 +512,11 @@ 'Search archive drop-down present.', ); - # search for 2nd ticket + # Search for 2nd ticket. $Selenium->find_element(".//*[\@id='SEARCH::TicketNumber']")->send_keys( $TicketNumbers[1] ); $Selenium->find_element( '#SubmitSearch', 'css' )->VerifiedClick(); - # make sure there are no results + # Make sure there are no results. $Self->False( $Selenium->execute_script( "return \$('#WidgetTicket').length" @@ -530,38 +524,31 @@ 'No result.', ); - # click on the Archive search drop-down + # Click on the Archive search drop-down. $Selenium->execute_script( "\$('#SEARCH\\\\:\\\\:ArchiveID').val('ArchivedTickets').trigger('redraw.InputField').trigger('change');" ); $Selenium->find_element( "#SubmitSearch", "css" )->VerifiedClick(); - # wait till search is loaded + # Wait till search is loaded. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#SelectAllLinks0").length' ); - # link again + # Link again. $Selenium->find_element( ".Tabs div.Active .SelectAll", "css" )->click(); $Selenium->find_element( "#AddLinks", "css" )->VerifiedClick(); $Selenium->find_element( "#LinkAddCloseLink", "css" )->click(); - sleep 1; - if ( scalar( @{ $Selenium->get_window_handles() } ) == 2 ) { - $Selenium->close(); - } - - # wait till popup is closed + # Switch back to the main window. $Selenium->WaitFor( WindowCount => 1 ); - - # switch to 1st window $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[0] ); - # make sure they are really linked. + # Make sure they are really linked. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#WidgetTicket").length' ); $Selenium->find_element( "#WidgetTicket", "css" ); - # delete created test tickets + # Delete created test tickets. for my $TicketID (@TicketIDs) { $Success = $TicketObject->TicketDelete( TicketID => $TicketID, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentPasswordRecovery.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentPasswordRecovery.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentPasswordRecovery.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentPasswordRecovery.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,13 +12,11 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $TestEmailObject = $Kernel::OM->Get('Kernel::System::Email::Test'); @@ -52,7 +50,7 @@ $MailQueueObject->Send( %{$Item} ); } - # Clean any garbage + # Clean any garbage. $MailQueueClean->(); return; @@ -61,7 +59,7 @@ # Make sure we start with a clean mail queue. $MailQueueClean->(); - # use test email backend + # Use test email backend. $Helper->ConfigSettingChange( Valid => 1, Key => 'SendmailModule', @@ -73,7 +71,7 @@ Value => 0, ); - # clean up test email + # Clean up test email. my $Success = $TestEmailObject->CleanUp(); $Self->True( $Success, @@ -86,43 +84,46 @@ 'Test email empty after initial cleanup', ); - # clean up test email again (cached) + # Clean up test email again (cached). $Success = $TestEmailObject->CleanUp(); $Self->True( $Success, 'Initial cleanup', ); - # create test user + # Create test user. my $TestUser = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to agent login screen + # Navigate to agent login screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?"); $Selenium->delete_all_cookies(); - # click on 'Lost your password?' + # Click on 'Lost your password?'. $Selenium->VerifiedGet("${ScriptAlias}index.pl?"); - $Selenium->find_element( "#LostPassword", 'css' )->VerifiedClick(); + $Selenium->find_element( "#LostPassword", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#PasswordUser").length && $("#PasswordBox button[type=submit]").length' + ); - # request new password + # Request new password. $Selenium->find_element( "#PasswordUser", 'css' )->send_keys($TestUser); $Selenium->find_element( "#PasswordBox button[type='submit']", 'css' )->VerifiedClick(); - # check for password recovery message + # Check for password recovery message. $Self->True( $Selenium->find_element( "#LoginBox p.Error", 'css' ), "Password recovery message found on screen for valid user", ); - # Really send the emails + # Really send the emails. $MailQueueProcess->(); - # check if password recovery email is sent to valid user + # Check if password recovery email is sent to valid user. my $Emails = $TestEmailObject->EmailsGet(); $Self->Is( scalar @{$Emails}, @@ -130,7 +131,7 @@ "Password recovery email sent for valid user $TestUser", ); - # clean up test email again + # Clean up test email again. $Success = $TestEmailObject->CleanUp(); $Self->True( $Success, @@ -143,15 +144,14 @@ 'Test email empty after second cleanup', ); - # get user object my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - # get test user ID + # Get test user ID. my $TestUserID = $UserObject->UserLookup( UserLogin => $TestUser, ); - # update user to invalid + # Update user to invalid. $Success = $UserObject->UserUpdate( UserID => $TestUserID, UserFirstname => $TestUser, @@ -167,24 +167,28 @@ "$TestUser set to invalid", ); - # click on 'Lost your password?' again - $Selenium->find_element( "#LostPassword", 'css' )->VerifiedClick(); + # Click on 'Lost your password?' again. + $Selenium->find_element( "#LostPassword", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#PasswordUser").length && $("#PasswordBox button[type=submit]").length' + ); - # request new password + # Request new password. $Selenium->find_element( "#PasswordUser", 'css' )->send_keys($TestUser); $Selenium->find_element( "#PasswordBox button[type='submit']", 'css' )->VerifiedClick(); - # check for password recovery message for invalid user, for security measures it - # should be visible + # Check for password recovery message for invalid user, for security measures it. + # Should be visible. $Self->True( $Selenium->find_element( "#LoginBox p.Error", 'css' ), "Password recovery message found on screen for invalid user", ); - # Really send the emails + # Really send the emails. $MailQueueProcess->(); - # check if password recovery email is sent to invalid user + # Check if password recovery email is sent to invalid user. $Emails = $TestEmailObject->EmailsGet(); $Self->Is( scalar @{$Emails}, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Add.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Add.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Add.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Add.t 2018-02-05 23:46:54.000000000 +0000 @@ -91,10 +91,6 @@ ); } - # Check "Go to overview" button. - $Selenium->find_element("//a[contains(\@href, \'Action=AgentStatistics;Subaction=Overview\' )]") - ->VerifiedClick(); - my @Tests = ( { Title => 'Statistic DynamicMatrix' . $Helper->GetRandomID(), @@ -307,14 +303,6 @@ # Save and finish test statistics. $Selenium->find_element( "#SaveAndFinish", 'css' )->VerifiedClick(); - my $CheckConfirmJS = <<"JAVASCRIPT"; -(function () { - window.confirm = function (message) { - return true; - }; -}()); -JAVASCRIPT - # Sort decreasing by StatsID. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Overview;Direction=DESC;OrderBy=ID;StartHit=1" @@ -335,12 +323,13 @@ "Test statistic is created - $StatsData->{Title} " ); - $Selenium->execute_script($CheckConfirmJS); - # Delete created test statistics. $Selenium->find_element( "//a[contains(\@href, \'Action=AgentStatistics;Subaction=DeleteAction;StatID=$StatsIDLast\' )]" - )->VerifiedClick(); + )->click(); + + $Selenium->WaitFor( AlertPresent => 1 ); + $Selenium->accept_alert(); $Self->True( index( $Selenium->get_page_source(), "Action=AgentStatistics;Subaction=Edit;StatID=$StatsIDLast" ) diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Import.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Import.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Import.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Import.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,25 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => [ 'admin', 'users', 'stats' ], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ServiceObject = $Kernel::OM->Get('Kernel::System::Service'); + my $SLAObject = $Kernel::OM->Get('Kernel::System::SLA'); my $Config = { @@ -57,11 +46,8 @@ Value => 1, ); - # get service object - my $ServiceObject = $Kernel::OM->Get('Kernel::System::Service'); + # Add Services. my @ServiceIDs; - - # add Services my %ServicesNameToID; SERVICE: for my $Service ( @{ $Config->{Services} } ) { @@ -80,7 +66,7 @@ "Service $ServiceID has been created." ); - # add service as default service for all customers + # Add service as default service for all customers. $ServiceObject->CustomerUserServiceMemberAdd( CustomerUserLogin => '', ServiceID => $ServiceID, @@ -91,11 +77,8 @@ push @ServiceIDs, $ServiceID; } - # get SLA object - my $SLAObject = $Kernel::OM->Get('Kernel::System::SLA'); + # Add SLAs and connect them with the Services. my @SLAIDs; - - # add SLAs and connect them with the Services SLA: for my $SLA ( @{ $Config->{SLAs} } ) { @@ -116,21 +99,35 @@ push @SLAIDs, $SLAID; } - # get config object + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => [ 'admin', 'users', 'stats' ], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Import"); - # import test selenium statistic - my $LocationNotExistingObject = $Kernel::OM->Get('Kernel::Config')->Get('Home') + # Import test selenium statistic. + my $LocationNotExistingObject = $ConfigObject->Get('Home') . "/scripts/test/sample/Stats/Stats.Static.NotExisting.xml"; $Selenium->find_element( "#File", 'css' )->send_keys($LocationNotExistingObject); - $Selenium->find_element("//button[\@value='Import'][\@type='submit']")->VerifiedClick(); + $Selenium->find_element("//button[\@value='Import'][\@type='submit']")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('.Dialog.Modal #DialogButton1').length" + ); # Confirm JS error. $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return !\$('.Dialog.Modal').length" ); # Verify error class. $Self->Is( @@ -143,14 +140,14 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Import"); - # import test selenium statistic - my $Location = $Kernel::OM->Get('Kernel::Config')->Get('Home') + # Import test selenium statistic. + my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/Stats/Stats.TicketOverview.de.xml"; $Selenium->find_element( "#File", 'css' )->send_keys($Location); $Selenium->find_element("//button[\@value='Import'][\@type='submit']")->VerifiedClick(); - # create params for import test stats + # Create params for import test stats. my %StatsValues = ( Title => 'Überblick über alle Tickets im System', Object => 'Ticket', @@ -158,7 +155,7 @@ Format => 'D3::BarChart', ); - # check for imported values on test stat + # Check for imported values on test stat. for my $StatsValue ( sort keys %StatsValues ) { $Self->True( index( $Selenium->get_page_source(), $StatsValues{$StatsValue} ) > -1, @@ -166,14 +163,14 @@ ); } - # navigate to AgentStatistics Overview screen + # Navigate to AgentStatistics Overview screen. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Overview;Direction=DESC;OrderBy=ID;StartHit=1;" ); my $StatsObject = $Kernel::OM->Get('Kernel::System::Stats'); - # get stats IDs + # Get stats IDs. my $StatsIDs = $StatsObject->GetStatsList( AccessRw => 1, UserID => 1, @@ -182,18 +179,21 @@ my $Count = scalar @{$StatsIDs}; my $StatsIDLast = $StatsIDs->[ $Count - 1 ]; - # check for imported stats on overview screen + # Check for imported stats on overview screen. $Self->True( index( $Selenium->get_page_source(), $StatsValues{Title} ) > -1, "Imported stat $StatsValues{Title} - found on overview screen" ); - # go to imported stat to run it + # Go to imported stat to run it. $Selenium->find_element("//a[contains(\@href, \'AgentStatistics;Subaction=Edit;StatID=$StatsIDLast\' )]") ->VerifiedClick(); - # change preview format to Print - $Selenium->find_element("//button[contains(\@data-format, \'Print')]")->VerifiedClick(); + # Change preview format to Print. + $Selenium->find_element("//button[contains(\@data-format, \'Print')]")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#PreviewContentPrint:visible').length" + ); $Self->True( $Selenium->execute_script("return \$('#PreviewContentPrint').css('display')") eq 'block', @@ -204,8 +204,11 @@ "Bar format is not displayed", ); - # change preview format to Bar - $Selenium->find_element("//button[contains(\@data-format, \'D3::BarChart')]")->VerifiedClick(); + # Change preview format to Bar. + $Selenium->find_element("//button[contains(\@data-format, \'D3::BarChart')]")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#PreviewContentD3BarChart:visible').length" + ); $Self->True( $Selenium->execute_script("return \$('#PreviewContentD3BarChart').css('display')") eq 'block', @@ -216,74 +219,82 @@ "Print format is not displayed", ); - # toggle General Specification - $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_0')]")->VerifiedClick(); + # Toggle General Specification. + $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_0')]")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('.WidgetSimple:contains(General Specification).Expanded').length" + ); $Selenium->find_element( "#Title", 'css' )->send_keys(" - Updated"); - # check X-axis configuration dialog - $Selenium->find_element( ".EditXAxis", 'css' )->VerifiedClick(); - $Selenium->find_element( "#EditDialog a.RemoveButton i", 'css' )->VerifiedClick(); + # Check X-axis configuration dialog. + $Selenium->find_element( ".EditXAxis", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal #EditDialog a.RemoveButton i').length" ); + + $Selenium->find_element( "#EditDialog a.RemoveButton i", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal #EditDialog .TableLike.Add:visible').length" ); + $Selenium->execute_script( "\$('#EditDialog select').val('XAxisServiceIDs').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return !\$('.Dialog.Modal').length" ); + + # Check Y-axis configuration dialog. + $Selenium->find_element( ".EditYAxis", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal #EditDialog a.RemoveButton i').length" ); + + $Selenium->find_element( "#EditDialog a.RemoveButton i", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal #EditDialog .TableLike.Add:visible').length" ); - # check Y-axis configuration dialog - $Selenium->find_element( ".EditYAxis", 'css' )->VerifiedClick(); - $Selenium->find_element( "#EditDialog a.RemoveButton i", 'css' )->VerifiedClick(); $Selenium->execute_script( "\$('#EditDialog select').val('YAxisSLAIDs').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return !\$('.Dialog.Modal').length" ); + + # Check Restrictions configuration dialog. + $Selenium->find_element( ".EditRestrictions", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Dialog.Modal').length" ); - # check Restrictions configuration dialog - $Selenium->find_element( ".EditRestrictions", 'css' )->VerifiedClick(); $Selenium->execute_script( "\$('#EditDialog select').val('RestrictionsQueueIDs').trigger('redraw.InputField').trigger('change');" ); - # wait for load selected Restriction - QueueIDs - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#RestrictionsQueueIDs").length;' ); + # Wait for load selected Restriction - QueueIDs. + $Selenium->WaitFor( JavaScript => 'return $("#RestrictionsQueueIDs").length;' ); - # add restriction per Queue - Junk + # Add restriction per Queue - Junk. $Selenium->execute_script( "\$('#EditDialog #RestrictionsQueueIDs').val('3').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return !\$('.Dialog.Modal').length" ); - # save and finish edit + # Save and finish edit. $Selenium->find_element("//button[\@name='SaveAndFinish'][\@type='submit']")->VerifiedClick(); - my $CheckConfirmJS = <<"JAVASCRIPT"; -(function () { - window.confirm = function (message) { - return true; - }; -}()); -JAVASCRIPT - - # sort decreasing by StatsID + # Sort decreasing by StatsID. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Overview;Direction=DESC;OrderBy=ID;StartHit=1" ); - $Selenium->execute_script($CheckConfirmJS); - - # delete imported test stats - # click on delete icon + # Delete imported test stats. $Selenium->find_element( "//a[contains(\@href, \'Action=AgentStatistics;Subaction=DeleteAction;StatID=$StatsIDLast\')]" - )->VerifiedClick(); + )->click(); + + $Selenium->WaitFor( AlertPresent => 1 ); + $Selenium->accept_alert(); $Self->True( index( $Selenium->get_page_source(), "Action=AgentStatistics;Subaction=Edit;StatID=$StatsIDLast" ) == -1, "Test statistic is deleted - $StatsIDLast " ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # clean up test data + # Clean up test data. for my $SLAID (@SLAIDs) { my $Success = $DBObject->Do( SQL => "DELETE FROM service_sla WHERE sla_id = $SLAID", @@ -320,14 +331,11 @@ ); } - # make sure the cache is correct. - for my $Cache ( - qw (Service SLA Stats) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. + for my $Cache (qw(Service SLA Stats)) { + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Run.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Run.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentStatistics/Run.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentStatistics/Run.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,24 +12,22 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # show more stats per page as the default 50 + # Show more stats per page as the default 50. my $Success = $Helper->ConfigSettingChange( Valid => 1, Key => 'Stats::SearchPageShown', Value => 99, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users', 'stats' ], ) || die "Did not get test user"; @@ -43,18 +41,18 @@ my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Import"); - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # import test selenium statistic + # Import test selenium statistic. my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/Stats/Stats.TicketOverview.de.xml"; $Selenium->find_element( "#File", 'css' )->send_keys($Location); $Selenium->find_element("//button[\@value='Import'][\@type='submit']")->VerifiedClick(); - # create params for import test stats + # Create params for import test stats. my %StatsValues = ( Title => 'Überblick über alle Tickets im System', Object => 'Ticket', @@ -62,7 +60,7 @@ Format => 'D3::BarChart', ); - # check for imported values on test stat + # Check for imported values on test stat. for my $StatsValue ( sort keys %StatsValues ) { $Self->True( index( $Selenium->get_page_source(), $StatsValues{$StatsValue} ) > -1, @@ -70,14 +68,14 @@ ); } - # navigate to AgentStatistics Overview screen + # Navigate to AgentStatistics Overview screen. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Overview;" ); my $StatsObject = $Kernel::OM->Get('Kernel::System::Stats'); - # get stats IDs + # Get stats IDs. my $StatsIDs = $StatsObject->GetStatsList( AccessRw => 1, UserID => 1, @@ -86,31 +84,31 @@ my $Count = scalar @{$StatsIDs}; my $StatsIDLast = $StatsIDs->[ $Count - 1 ]; - # check for imported stat on overview screen + # Check for imported stat on overview screen. $Self->True( index( $Selenium->get_page_source(), $StatsValues{Title} ) > -1, "Imported stat $StatsValues{Title} - found on overview screen" ); - # go to imported stat to run it + # Go to imported stat to run it. $Selenium->find_element("//a[contains(\@href, \'Action=AgentStatistics;Subaction=View;StatID=$StatsIDLast\' )]") ->VerifiedClick(); - # get stat data + # Get stat data. my $StatData = $Kernel::OM->Get('Kernel::System::Stats')->StatsGet( StatID => $StatsIDLast, UserID => 1, ); - # run test statistic - $Selenium->find_element( "#StartStatistic", 'css' )->VerifiedClick(); - $Selenium->WaitFor( WindowCount => 2 ); + # Run test statistic. + $Selenium->find_element( "#StartStatistic", 'css' )->click(); - # switch to another window + # Switch to another window. + $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait for loading statistic data + # Wait for loading statistic data. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#download-svg").length' ); $Self->True( @@ -118,38 +116,30 @@ "Title of stats is found - $StatsValues{Title} " ); - # close test statistic + # Close test statistic. $Selenium->close(); $Selenium->switch_to_window( $Handles->[0] ); $Selenium->WaitFor( WindowCount => 1 ); - # navigate to AgentStatistics Overview screen + # Navigate to AgentStatistics Overview screen. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentStatistics;Subaction=Overview;" ); - my $CheckConfirmJS = <<"JAVASCRIPT"; -(function () { - window.confirm = function (message) { - return true; - }; -}()); -JAVASCRIPT - - $Selenium->execute_script($CheckConfirmJS); - - # delete test stats - # click on delete icon + # Delete test stats. $Selenium->find_element( "//a[contains(\@href, \'Action=AgentStatistics;Subaction=DeleteAction;StatID=$StatsIDLast\' )]" - )->VerifiedClick(); + )->click(); + + $Selenium->WaitFor( AlertPresent => 1 ); + $Selenium->accept_alert(); $Self->True( index( $Selenium->get_page_source(), "Action=AgentStatistics;Subaction=Edit;StatID=$StatsIDLast" ) == -1, "Test statistic is deleted - $StatsIDLast " ); - # make sure the cache is correct. + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => "Stats" ); } diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose/RedirectAfterClose.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -39,26 +38,17 @@ Value => '::', ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test tickets + # Create test tickets. my $TicketID1 = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -92,6 +82,15 @@ "Ticket is created - ID $TicketID2", ); + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + for my $TicketID ( $TicketID1, $TicketID2 ) { if ( $TicketID eq $TicketID2 ) { @@ -102,34 +101,28 @@ ); } - # get script alias - my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click on 'Close' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Close' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#NewStateID").length' ); - - # check page + # Check page for my $ID ( qw(NewStateID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # change ticket state + # Change ticket state. $Selenium->execute_script("\$('#NewStateID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); @@ -138,7 +131,7 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # confirm close action + # Confirm close action. if ( $TicketID eq $TicketID1 ) { my $CloseMsg = "Dashboard"; $Self->True( @@ -158,7 +151,7 @@ ); } - # delete created test tickets + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -178,7 +171,7 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketClose.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,42 +12,32 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -64,34 +54,37 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click on 'Close' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Close' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#NewStateID").length' ); - - # check page + # Check page. for my $ID ( qw(NewStateID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # change ticket state + # Change ticket state. $Selenium->execute_script("\$('#NewStateID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); @@ -100,17 +93,17 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # confirm close action + # Confirm close action. my $CloseMsg = "Added note (Close)"; $Self->True( index( $Selenium->get_page_source(), $CloseMsg ) > -1, "Ticket close action completed", ); - # delete created test tickets + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -129,7 +122,7 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketFreeText.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,10 +12,9 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); -# create local function for wait on AJAX update +# Create local function for wait on AJAX update. my $WaitForAJAX = sub { $Selenium->WaitFor( JavaScript => @@ -26,7 +25,6 @@ $Selenium->RunTest( sub { - # get needed objects my $SysConfigObject = $Kernel::OM->Get('Kernel::System::SysConfig'); my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue'); @@ -34,50 +32,47 @@ my $SLAObject = $Kernel::OM->Get('Kernel::System::SLA'); my $StateObject = $Kernel::OM->Get('Kernel::System::State'); my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - - # get needed variables my $RandomID = $Helper->GetRandomID(); my $Success; - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0, ); - # enable ticket responsible feature + # Enable ticket responsible feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Responsible', Value => 1, ); - # enable ticket service feature + # Enable ticket service feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Service', Value => 1, ); - # create test customer user + # Create test customer user. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate() || die "Did not get test customer user"; - # create test user + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Title' . $RandomID, Queue => 'Raw', @@ -94,7 +89,7 @@ "TicketID $TicketID is created", ); - # create test queue + # Create test queue. my $QueueName = 'Queue' . $RandomID; my $QueueID = $QueueObject->QueueAdd( Name => $QueueName, @@ -111,7 +106,7 @@ "QueueID $QueueID is created", ); - # create test service + # Create test service. my $ServiceName = 'Service' . $RandomID; my $ServiceID = $ServiceObject->ServiceAdd( Name => $ServiceName, @@ -123,7 +118,7 @@ "ServiceID $ServiceID is created", ); - # add member customer user to the test service + # Add member customer user to the test service. $ServiceObject->CustomerUserServiceMemberAdd( CustomerUserLogin => $TestCustomerUserLogin, ServiceID => $ServiceID, @@ -131,7 +126,7 @@ UserID => 1, ); - # create test SLA + # Create test SLA. my $SLAName = 'SLA' . $RandomID; my $SLAID = $SLAObject->SLAAdd( ServiceIDs => [$ServiceID], @@ -144,14 +139,14 @@ "SLAID $SLAID is created", ); - # get 'open' type ID + # Get 'open' type ID. my %ListType = $StateObject->StateTypeList( UserID => 1, ); my %ReverseListType = reverse %ListType; my $OpenID = $ReverseListType{"open"}; - # create test state (type 'open') + # Create test state (type 'open'). my $StateName = 'State' . $RandomID; my $StateID = $StateObject->StateAdd( Name => $StateName, @@ -164,17 +159,16 @@ "StateID $StateID is created", ); - # login + # Login as test user. $Selenium->Login( Type => 'Agent', User => $TestUserLogin, Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # define field IDs and frontend modules + # Define field IDs and frontend modules. my %FreeTextFields = ( NoMandatory => { ServiceID => 'Service', @@ -226,7 +220,7 @@ for my $Test (@Tests) { - # write test case description + # Write test case description. $Self->True( 1, $Test->{Name}, @@ -250,16 +244,16 @@ ); } - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Miscellaneous ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Free Fields' and switch window + # Click on 'Free Fields' and switch window. $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketFreeText;TicketID=$TicketID' )]") ->click(); @@ -267,10 +261,10 @@ my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); - # get NoMandatory/Mandatory fields for exist checking + # Get NoMandatory/Mandatory fields for exist checking. my $CheckFields = $Test->{CheckFields}; for my $FieldID ( sort keys %{ $FreeTextFields{$CheckFields} } ) { @@ -298,13 +292,13 @@ } } - # close the window and switch back to the first screen + # Close the window and switch back to the first screen. $Selenium->find_element( ".CancelClosePopup", 'css' )->click(); $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); } - # define field values + # Define field values. my %SetFreeTextFields = ( ServiceID => $ServiceID, SLAID => $SLAID, @@ -314,27 +308,26 @@ NewStateID => $StateID, ); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Miscellaneous ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Free Fields' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketFreeText;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Free Fields' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketFreeText;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); - # fill all free text fields + # Fill all free text fields. FREETEXTFIELDS: for my $FieldID ( sort keys %SetFreeTextFields ) { @@ -344,7 +337,7 @@ "\$('#$FieldID').val('$SetFreeTextFields{$FieldID}').trigger('redraw.InputField').trigger('change')" ); - # wait for AJAX to finish + # Wait for AJAX to finish. $WaitForAJAX->(); if ( $FieldID eq 'ServiceID' ) { @@ -353,12 +346,12 @@ "\$('#SLAID').val('$SetFreeTextFields{SLAID}').trigger('redraw.InputField').trigger('change')" ); - # wait for AJAX to finish + # Wait for AJAX to finish. $WaitForAJAX->(); } } - # test cases - all fields are set except exactly one, and in the last case all fields are set + # Test cases - all fields are set except exactly one, and in the last case all fields are set. @Tests = ( { Name => 'Clear Service field', @@ -395,10 +388,10 @@ } ); - # run test - in each iteration exactly one field is empty, last case is correct + # Run test - in each iteration exactly one field is empty, last case is correct. for my $Test (@Tests) { - # write test case description + # Write test case description. $Self->True( 1, $Test->{Name}, @@ -419,17 +412,17 @@ "\$('#$FieldID').val('$Test->{$FieldID}').trigger('redraw.InputField').trigger('change')" ); - # wait for AJAX to finish + # Wait for AJAX to finish. $WaitForAJAX->(); } # Wait until opened field (due to error) has closed. $Selenium->WaitFor( JavaScript => 'return $("div.jstree-wholerow:visible").length == 0' ); - # submit + # Submit. $Selenium->find_element( "#submitRichText", 'css' )->click(); - # check if class Error exists in expected field ID + # Check if class Error exists in expected field ID. if ($ExpectedErrorFieldID) { $Self->True( $Selenium->execute_script( @@ -444,13 +437,13 @@ "All mandatory fields are filled - successful free text fields update", ); - # switch back to the main window + # Switch back to the main window. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); } } - # define messages in ticket history screen + # Define messages in ticket history screen. my %FreeFieldMessages = ( ServiceUpdate => "Changed service to \"$ServiceName\" ($ServiceID).", SLAUpdate => "Changed SLA to \"$SLAName\" ($SLAID).", @@ -460,16 +453,16 @@ StateUpdate => "Changed state from \"new\" to \"$StateName\"." ); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-History ul").css({ "height": "auto", "opacity": "100" });' ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); for my $Action ( sort keys %FreeFieldMessages ) { @@ -480,8 +473,8 @@ ); } - # cleanup - # delete created test ticket + # Cleanup + # Delete created test ticket. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -500,7 +493,7 @@ "TicketID $TicketID is deleted" ); - # delete customer user referenced for service + # Delete customer user referenced for service. $Success = $DBObject->Do( SQL => "DELETE FROM service_customer_user WHERE customer_user_login = ?", Bind => [ \$TestCustomerUserLogin ], @@ -510,7 +503,7 @@ "Deleted service relations for $TestCustomerUserLogin", ); - # delete sla referenced for service + # Delete sla referenced for service. $Success = $DBObject->Do( SQL => "DELETE FROM service_sla WHERE service_id = $ServiceID OR sla_id = $SLAID", ); @@ -519,7 +512,7 @@ "Relation SLAID $SLAID referenced to service ID $ServiceID is deleted", ); - # delete created test service + # Delete created test service. $Success = $DBObject->Do( SQL => "DELETE FROM service WHERE id = $ServiceID", ); @@ -528,7 +521,7 @@ "ServiceID $ServiceID is deleted", ); - # delete created test SLA + # Delete created test SLA. $Success = $DBObject->Do( SQL => "DELETE FROM sla WHERE id = $SLAID", ); @@ -537,7 +530,7 @@ "SLAID $SLAID is deleted", ); - # delete created test state + # Delete created test state. $Success = $DBObject->Do( SQL => "DELETE FROM ticket_state WHERE id = $StateID", ); @@ -546,7 +539,7 @@ "StateID $StateID is deleted", ); - # delete created test queue + # Delete created test queue. $Success = $DBObject->Do( SQL => "DELETE FROM queue WHERE id = $QueueID", ); @@ -555,11 +548,11 @@ "QueueID $QueueID is deleted", ); - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw(Ticket Service SLA State Queue)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote/ForceNotificationToUserID.t 2018-02-05 23:46:54.000000000 +0000 @@ -13,13 +13,11 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $MailQueueObject = $Kernel::OM->Get('Kernel::System::MailQueue'); @@ -51,7 +49,7 @@ $MailQueueObject->Send( %{$Item} ); } - # Clean any garbage + # Clean any garbage. $MailQueueClean->(); return; @@ -60,21 +58,21 @@ # Make sure we start with a clean mail queue. $MailQueueClean->(); - # enable involved agent feature + # Enable involved agent feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketNote###InvolvedAgent', Value => 1, ); - # enable involved agent feature + # Enable involved agent feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketNote###InformAgent', Value => 1, ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -103,7 +101,7 @@ Value => 0, ); - # create test users and login first + # Create test users. my @TestUser; for my $User ( 1 .. 3 ) { my $TestUserLogin = $Helper->TestUserCreate( @@ -113,26 +111,18 @@ push @TestUser, $TestUserLogin; } - $Selenium->Login( - Type => 'Agent', - User => $TestUser[0], - Password => $TestUser[0], - ); - - # get test users ID + # Get test users ID. my @UserID; for my $UserID (@TestUser) { my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $UserID, ); - push @UserID, $TestUserID; } - # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -149,7 +139,7 @@ "Ticket is created - ID $TicketID", ); - # update the ticket owner to have an involved user + # Update the ticket owner to have an involved user. my $Success = $TicketObject->TicketOwnerSet( TicketID => $TicketID, NewUserID => $UserID[0], @@ -164,33 +154,38 @@ 'Cleanup Email backend', ); - # get script alias + # Login as the first created test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUser[0], + Password => $TestUser[0], + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check page + # Check page. for my $ID ( qw(InvolvedUserID InformUserID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -200,7 +195,7 @@ $Element->is_displayed(); } - # change ticket user owner + # Change ticket user owner. $Selenium->execute_script( "\$('#InvolvedUserID').val('$UserID[2]').trigger('redraw.InputField').trigger('change');" ); @@ -214,22 +209,21 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # Process mail queue items + # Process mail queue items. $MailQueueProcess->(); - # check that emailS was sent + # Check that emailS was sent. my $Emails = $TestEmailObject->EmailsGet(); - # there should be 3 emails, one for the inform user, one for the involved user and one for - # the owner + # There should be 3 emails, one for the inform user, one for the involved user and one for the owner. $Self->Is( scalar @{$Emails}, 3, 'EmailsGet()', ); - # extract recipients from emails and compare to the expected results, the emails are sent in - # order with the UserID + # Extract recipients from emails and compare to the expected results, the emails are sent in + # order with the UserID. my @Recipients; for my $Email ( @{$Emails} ) { push @Recipients, $Email->{ToArray}->[0]; @@ -264,11 +258,11 @@ "InformAgent are in Article 'To' correctly " ); - # make sure to navigate to zoom view of created test ticket at this moment to prevent error - # messages after the ticket is deleted + # Make sure to navigate to zoom view of created test ticket at this moment to prevent error + # messages after the ticket is deleted. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # delete created test tickets + # Delete created test tickets. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $UserID[0], @@ -287,7 +281,7 @@ "Ticket is deleted - ID $TicketID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketNote.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,35 +12,27 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); @@ -48,7 +40,7 @@ my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Internal'); - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -65,33 +57,38 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # open collapsed widgets, if necessary + # Open collapsed widgets, if necessary. $Selenium->execute_script( "\$('.WidgetSimple.Collapsed .WidgetAction > a').trigger('click');" ); @@ -101,7 +98,7 @@ 'return typeof($) === "function" && $(".WidgetSimple.Expanded").length;' ); - # check page + # Check page. for my $ID ( qw(Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -111,10 +108,10 @@ $Element->is_displayed(); } - # get default subject value from Ticket::Frontend::AgentTicketNote###Subject + # Get default subject value from Ticket::Frontend::AgentTicketNote###Subject. my $DefaultNoteSubject = $ConfigObject->Get("Ticket::Frontend::AgentTicketNote")->{Subject}; - # add note + # Add note. my $NoteSubject; if ($DefaultNoteSubject) { $NoteSubject = $DefaultNoteSubject; @@ -127,59 +124,58 @@ $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); $Selenium->find_element( "#submitRichText", 'css' )->click(); - # switch window back to agent ticket zoom view of created test ticket + # Switch window back to agent ticket zoom view of created test ticket. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # expand Miscellaneous dropdown menu + # Expand Miscellaneous dropdown menu. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Miscellaneous ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'History' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketHistory;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'History' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketHistory;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # confirm note action + # Confirm note action. my $NoteMsg = "Added note (Note)"; $Self->True( index( $Selenium->get_page_source(), $NoteMsg ) > -1, "Ticket note action completed", ); - # close history window + # Close history window. $Selenium->find_element( ".CancelClosePopup", 'css' )->click(); - # switch window back to agent ticket zoom view of created test ticket + # Switch window back to agent ticket zoom view of created test ticket. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # click 'Reply to note' in order to check for pre-loaded reply-to note subject, see bug #10931 - $Selenium->find_element("//a[contains(\@href, \'ReplyToArticle' )]")->VerifiedClick(); + # Click 'Reply to note' in order to check for pre-loaded reply-to note subject, see bug #10931. + $Selenium->find_element("//a[contains(\@href, \'ReplyToArticle' )]")->click(); - # switch window + # Switch window. $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check for subject pre-loaded value + # Check for subject pre-loaded value. my $NoteSubjectRe = $ConfigObject->Get('Ticket::SubjectRe') || 'Re'; $Self->Is( @@ -188,21 +184,21 @@ "Reply-To note #Subject pre-loaded value", ); - # close note pop-up window + # Close note pop-up window. $Selenium->close(); - # switch window back to agent ticket zoom view of created test ticket + # Switch window back to agent ticket zoom view of created test ticket. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # turn on RichText for next test + # Turn on RichText for next test. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 1, ); - # get image attachment + # Get image attachment. my $AttachmentName = "StdAttachment-Test1.png"; my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/StdAttachment/$AttachmentName"; @@ -213,7 +209,7 @@ my $Content = ${$ContentRef}; my $ContentID = 'inline173020.131906379.1472199795.695365.264540139@localhost'; - # create test note with inline attachment + # Create test note with inline attachment. my $ArticleID = $ArticleBackendObject->ArticleCreate( TicketID => $TicketID, IsVisibleForCustomer => 0, @@ -241,60 +237,60 @@ "ArticleCreate - ID $ArticleID", ); - # navigate to added note article + # Navigate to added note article. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID;ArticleID=$ArticleID"); - # click 'Reply to note' - $Selenium->find_element("//a[contains(\@href, \'ReplyToArticle' )]")->VerifiedClick(); + # Click 'Reply to note'. + $Selenium->find_element("//a[contains(\@href, \'ReplyToArticle' )]")->click(); - # switch window + # Switch window. $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function'" ); - # wait for the CKE to load + # Wait for the CKE to load. $Selenium->WaitFor( JavaScript => "return \$('body.cke_editable', \$('.cke_wysiwyg_frame').contents()).length == 1" ); - # submit note + # Submit note. $Selenium->find_element( "#submitRichText", 'css' )->click(); - # wait until popup has closed + # Wait until popup has closed. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function";' ); - # get last article id + # Get last article id. my @Articles = $Kernel::OM->Get('Kernel::System::Ticket::Article')->ArticleList( TicketID => $TicketID, OnlyLast => 1, ); my $LastArticleID = $Articles[0]->{ArticleID}; - # get article attachments + # Get article attachments. my $HTMLContent = ''; my %AttachmentIndex = $ArticleBackendObject->ArticleAttachmentIndex( ArticleID => $LastArticleID, ); - # go through all attachments + # Go through all attachments. for my $FileID ( sort keys %AttachmentIndex ) { my %Attachment = $ArticleBackendObject->ArticleAttachment( ArticleID => $LastArticleID, FileID => $FileID, ); - # image attachment + # Image attachment. if ( $Attachment{ContentType} =~ /^image\/png/ ) { $Self->Is( $Attachment{Disposition}, @@ -302,26 +298,26 @@ 'Inline image attachment found', ); - # save content id + # Save content id. if ( $Attachment{ContentID} ) { $ContentID = $Attachment{ContentID}; $ContentID =~ s/<|>//g; } } - # html attachment + # Html attachment. elsif ( $Attachment{ContentType} =~ /^text\/html/ ) { $HTMLContent = $Attachment{Content}; } } - # check if inline attachment is present in the note reply (see bug#12259) + # Check if inline attachment is present in the note reply (see bug#12259). $Self->True( index( $HTMLContent, $ContentID ) > -1, 'Inline attachment found in note reply', ); - # add a template + # Add a template. my $RandomID = $Helper->GetRandomID(); my $TemplateText = 'This is a test template'; my $StandardTemplateObject = $Kernel::OM->Get('Kernel::System::StandardTemplate'); @@ -342,7 +338,7 @@ my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue'); my $QueueID = $QueueObject->QueueLookup( Queue => 'Raw' ); - # assign the template to our queue + # Assign the template to our queue. my $Success = $QueueObject->QueueStandardTemplateMemberAdd( QueueID => $QueueID, StandardTemplateID => $TemplateID, @@ -354,7 +350,7 @@ "Template got assigned to 'Raw'", ); - # now switch to mobile mode and reload the window + # Now switch to mobile mode and reload the window. $Selenium->set_window_size( 600, 400 ); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); @@ -362,17 +358,16 @@ "\$('.Cluster ul.Actions').scrollLeft(\$('#nav-Note').offset().left - \$('#nav-Note').width());" ); - # open the note screen (which should be an iframe now) - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Open the note screen (which should be an iframe now). + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); - # wait for the iframe to show up + # Wait for the iframe to show up. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('form#Compose', \$('.PopupIframe').contents()).length == 1" ); - # get frame name + # Get frame name. my $FrameName = $Selenium->execute_script( "return \$('iframe.PopupIframe').attr('name');" ); @@ -384,19 +379,19 @@ 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' ) || die "OTRS API verification failed after page load."; - # check if the richtext is empty + # Check if the richtext is empty. $Self->Is( $Selenium->find_element( '#RichText', 'css' )->get_value(), '', "RichText is empty", ); - # select the created template + # Select the created template. $Selenium->execute_script( "\$('#StandardTemplateID').val('$TemplateID').trigger('redraw.InputField').trigger('change');" ); - # wait a short time and for the spinner to disappear + # Wait a short time and for the spinner to disappear. sleep(2); $Selenium->WaitFor( JavaScript => @@ -413,7 +408,7 @@ "RichText contains the correct value from the selected template", ); - # delete template + # Delete template. $Success = $StandardTemplateObject->StandardTemplateDelete( ID => $TemplateID, ); @@ -422,7 +417,7 @@ "Template is deleted - ID $TemplateID", ); - # delete created test tickets + # Delete created test tickets. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -441,7 +436,7 @@ "Ticket is deleted - ID $TicketID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketOwner.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,23 +12,21 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # enable change owner to everyone feature + # Enable change owner to everyone feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::ChangeOwnerToEveryone', Value => 1 ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -46,7 +44,7 @@ }, ); - # create test users and login first + # Create test users and login first. my @TestUser; for my $User ( 1 .. 2 ) { my $TestUserLogin = $Helper->TestUserCreate( @@ -64,7 +62,7 @@ my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - # get test users ID + # Get test users ID. my @UserID; for my $UserID (@TestUser) { my $TestUserID = $UserObject->UserLookup( @@ -98,10 +96,9 @@ Valid => 0, ); - # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -118,33 +115,31 @@ "Ticket is created - ID $TicketID", ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-People ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Owner' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketOwner;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Owner' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketOwner;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check page + # Check page. for my $ID ( qw(NewOwnerID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -154,30 +149,30 @@ $Element->is_displayed(); } - # check out of office user message without filter + # Check out of office user message without filter. $Self->Is( $Selenium->execute_script("return \$('#NewOwnerID option[value=$UserID[1]]').text();"), "$UserData{UserFullname}", "Out of office message is found for the user - $TestUser[1]" ); - # expand 'New owner' input field + # Expand 'New owner' input field. $Selenium->execute_script("\$('#NewOwnerID_Search').focus().focus()"); - # click on filter button in input fileld + # Click on filter button in input fileld. $Selenium->execute_script("\$('.InputField_Filters').click();"); - # enable 'Previous Owner' filter + # Enable 'Previous Owner' filter. $Selenium->execute_script("\$('.InputField_FiltersList').children('input').click();"); - # check out of office user message with filter + # Check out of office user message with filter. $Self->Is( $Selenium->execute_script("return \$('#NewOwnerID option[value=$UserID[1]]').text();"), "1: $UserData{UserFullname}", "Out of office message is found for the user - $TestUser[1]" ); - # change ticket user owner + # Change ticket user owner. $Selenium->execute_script( "\$('#NewOwnerID').val('$UserID[1]').trigger('redraw.InputField').trigger('change');" ); @@ -189,17 +184,62 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # confirm owner change action + # Confirm owner change action. my $OwnerMsg = "Added note (Owner)"; $Self->True( index( $Selenium->get_page_source(), $OwnerMsg ) > -1, "Ticket owner action completed", ); - # delete created test tickets + # Login as second created user who is set Out Of Office and create Note article, see bug#13521. + $Selenium->Login( + Type => 'Agent', + User => $TestUser[1], + Password => $TestUser[1], + ); + + # Navigate to zoom view of created test ticket. + $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); + + # Force sub menus to be visible in order to be able to click one of the links. + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' + ); + + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); + + $Selenium->WaitFor( WindowCount => 2 ); + $Handles = $Selenium->get_window_handles(); + $Selenium->switch_to_window( $Handles->[1] ); + + # Wait until page has loaded, if necessary. + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $(".WidgetSimple").length;' + ); + + # Create Note article. + $Selenium->find_element( "#Subject", 'css' )->send_keys('TestSubject'); + $Selenium->find_element( "#RichText", 'css' )->send_keys('TestBody'); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + + # Switch window back to AgentTicketZoom view of created test ticket. + $Selenium->WaitFor( WindowCount => 1 ); + $Selenium->switch_to_window( $Handles->[0] ); + + # Verified there is no Out Of Office message in the 'Sender' column of created Note. + $Self->Is( + $Selenium->execute_script("return \$('#Row2 .Sender a').text();"), + "$TestUser[1] $TestUser[1]", + "There is no Out Of Office message in the article 'Sender' column." + ); + + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $UserID[0], @@ -218,11 +258,10 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPending.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,30 +12,29 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # set the time input dropdown to another value + # Set the time input dropdown to another value. $Helper->ConfigSettingChange( Valid => 1, Key => 'TimeInputMinutesStep', Value => 30 ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -46,15 +45,12 @@ Password => $TestUserLogin, ); - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -71,27 +67,32 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click on 'Pending' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPending;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Pending' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPending;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check page + # Check page. for my $ID ( qw(NewStateID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -101,7 +102,7 @@ $Element->is_displayed(); } - # check whether the time input dropdown only shows two values + # Check whether the time input dropdown only shows two values. $Self->Is( $Selenium->execute_script("return \$('#Minute option').length;"), 2, @@ -118,7 +119,7 @@ "Time input dropdown last available value is 30", ); - # change ticket to pending state + # Change ticket to pending state. $Selenium->execute_script("\$('#NewStateID').val('6').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); @@ -127,17 +128,17 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # confirm pending change action + # Confirm pending change action. my $PendingMsg = "Changed state from \"new\" to \"pending reminder\"."; $Self->True( index( $Selenium->get_page_source(), $PendingMsg ) > -1, 'Ticket pending action completed' ); - # delete created test tickets + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -156,11 +157,10 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketPriority.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,23 +12,22 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -39,15 +38,12 @@ Password => $TestUserLogin, ); - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -64,13 +60,12 @@ "Ticket is created - ID $TicketID", ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # check ticket priority + # Check ticket priority. $Self->True( index( $Selenium->get_page_source(), '3 normal' ) > -1, "Ticket priority checked - 3 normal", @@ -81,21 +76,20 @@ 'return typeof($) === "function" && $("ul.Actions li#nav-Priority a.AsPopup.PopupType_TicketAction").length;' ); - # click on 'Priority' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPriority;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Priority' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPriority;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check page + # Check page. for my $ID ( qw(NewPriorityID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -105,7 +99,7 @@ $Element->is_displayed(); } - # change ticket priority + # Change ticket priority. $Selenium->execute_script("\$('#NewPriorityID').val('5').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); @@ -114,17 +108,17 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # confirm priority change action + # Confirm priority change action. my $PriorityMsg = "Changed priority from \"3 normal\" (3) to \"5 very high\" (5)."; $Self->True( index( $Selenium->get_page_source(), $PriorityMsg ) > -1, "Ticket priority change action completed", ); - # delete created test ticket + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -143,11 +137,10 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommon/AgentTicketResponsible.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,30 +12,29 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # enable change owner to everyone feature + # Enable change owner to everyone feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::ChangeOwnerToEveryone', Value => 1, ); - # enable ticket responsible feature + # Enable ticket responsible feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Responsible', Value => 1, ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', @@ -53,7 +52,7 @@ }, ); - # create test users and login first + # Create test users. my @TestUser; for my $User ( 1 .. 2 ) { my $TestUserLogin = $Helper->TestUserCreate( @@ -63,13 +62,7 @@ push @TestUser, $TestUserLogin; } - $Selenium->Login( - Type => 'Agent', - User => $TestUser[0], - Password => $TestUser[0], - ); - - # get test users ID + # Get test users ID. my @UserID; for my $UserID (@TestUser) { my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( @@ -79,10 +72,7 @@ push @UserID, $TestUserID; } - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -100,30 +90,35 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Login as the first created test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUser[0], + Password => $TestUser[0], + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # click on 'Responsible' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketResponsible;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Responsible' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketResponsible;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' ); - # check page + # Check page. for my $ID ( qw(Title NewResponsibleID Subject RichText FileUpload IsVisibleForCustomer submitRichText) ) @@ -133,13 +128,14 @@ $Element->is_displayed(); } - # check client side validation + # Check client side validation. $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); $Selenium->execute_script( "\$('#NewResponsibleID').val('').trigger('redraw.InputField').trigger('change');" ); $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#NewResponsibleID.Error').length" ); $Self->Is( $Selenium->execute_script( @@ -149,39 +145,34 @@ 'Client side validation correctly detected missing input value', ); - # reload screen to get a consistent state + # Reload screen to get a consistent state. $Selenium->VerifiedRefresh(); - #$Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketResponsible;TicketID=$TicketID"); - $Selenium->find_element( "#Subject", 'css' )->send_keys('Test'); $Selenium->find_element( "#RichText", 'css' )->send_keys('Test'); - # change ticket user responsible + # Change ticket user responsible. $Selenium->execute_script( "\$('#NewResponsibleID').val('$UserID[1]').trigger('redraw.InputField').trigger('change');" ); $Selenium->find_element( "#submitRichText", 'css' )->click(); - # switch window back + # Switch window back. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # wait for reload to kick in - sleep 1; - - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length && $("div.TicketZoom").length;' ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); - # get ticket attributes + # Get ticket attributes. my %Ticket = $TicketObject->TicketGet( TicketID => $TicketID, UserID => $UserID[0], @@ -193,7 +184,7 @@ 'New responsible correctly set', ) || die 'New responsible not correctly set'; - # delete created test tickets + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $UserID[0], @@ -212,7 +203,7 @@ "Ticket is deleted - ID $TicketID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketActionCommonACL.t 2018-02-05 23:46:54.000000000 +0000 @@ -10,14 +10,15 @@ use utf8; use vars (qw($Self)); -# note: this UT covers bug #11874 - Restrict service based on state when posting a note +# Note: this UT covers bug #11874 - Restrict service based on state when posting a note -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ACLObject = $Kernel::OM->Get('Kernel::System::ACL::DB::ACL'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $RandomID = $Helper->GetRandomID(); @@ -124,10 +125,7 @@ }, ); - # get ACL object - my $ACLObject = $Kernel::OM->Get('Kernel::System::ACL::DB::ACL'); - - # import test ACL + # Import test ACL. $ACLObject->ACLImport( Content => <<"EOF", - ChangeBy: root\@localhost @@ -236,7 +234,7 @@ UserID => 1, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -247,13 +245,9 @@ Password => $TestUserLogin, ); - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - - # after login, we need to navigate to the ACL deployment to make the imported ACL work + # After login, we need to navigate to the ACL deployment to make the imported ACL work. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminACL;Subaction=ACLDeploy"); $Self->False( index( @@ -264,7 +258,7 @@ "ACL deployment successful." ); - # add a customer + # Add a customer. my $CustomerUserLogin = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserAdd( UserFirstname => 'Huber', UserLastname => 'Manfred', @@ -276,10 +270,7 @@ UserID => 1, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Ticket', Queue => 'Raw', @@ -350,27 +341,26 @@ push @SLAs, $SLAID; } - # navigate to AgentTicketZoom screen of created test ticket + # Navigate to AgentTicketZoom screen of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # wait for displaying submenu items for 'People' ticket menu item + # Wait for displaying submenu items for 'People' ticket menu item. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded + # Wait until page has loaded $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#ServiceID").length' ); - # check for entries in the service selection, there should be only one + # Check for entries in the service selection, there should be only one $Self->Is( $Selenium->execute_script( "return \$('#ServiceID option:not([value=\"\"])').length" @@ -426,8 +416,7 @@ $Selenium->switch_to_window( $Handles->[0] ); # Click on 'Note' and switch window. - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); @@ -478,9 +467,8 @@ UserID => 1, ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); @@ -520,8 +508,7 @@ $Selenium->switch_to_window( $Handles->[0] ); # Click on 'Close' action and switch to it. - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]") - ->VerifiedClick(); + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketClose;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); @@ -590,7 +577,7 @@ ); } - # deploy again after we deleted the test acl + # Deploy again after we deleted the test acl. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminACL;Subaction=ACLDeploy"); $Self->False( index( @@ -601,7 +588,7 @@ "ACL deployment successful." ); - # delete created test tickets + # Delete created test tickets. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -620,7 +607,7 @@ "Ticket with ticket ID $TicketID is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); # Delete test SLAs. @@ -636,7 +623,7 @@ ); } - # delete services and relations + # Delete services and relations. $Success = $DBObject->Do( SQL => "DELETE FROM service_customer_user WHERE customer_user_login = ?", Bind => [ \$CustomerUserLogin ], @@ -684,9 +671,11 @@ "DynamicFieldDelete - Deleted test dynamic field $DynamicFieldID2", ); - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw( Service SLA CustomerUser DynamicField )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + $CacheObject->CleanUp( Type => $Cache ); } }, ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketBounce.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketBounce.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketBounce.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketBounce.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,30 +12,29 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); + my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); - # disable check email addresses + # Disable check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # do not check service and type + # Do not check service and type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Service', @@ -47,10 +46,7 @@ Value => 0 ); - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium ticket', Queue => 'Raw', @@ -69,7 +65,7 @@ my $ArticleBackendObject = $ArticleObject->BackendForChannel( ChannelName => 'Email' ); - # create test email article + # Create test email article. my $ArticleID = $ArticleBackendObject->ArticleCreate( TicketID => $TicketID, SenderType => 'customer', @@ -107,7 +103,7 @@ "ArticleWritePlain for article ID $ArticleID - success", ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -118,22 +114,21 @@ Password => $TestUserLogin, ); - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to ticket zoom page of created test ticket + # Navigate to ticket zoom page of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click to bounce ticket - $Selenium->find_element("//a[contains(\@href, 'Action=AgentTicketBounce') ]")->VerifiedClick(); + # Click to bounce ticket. + $Selenium->find_element("//a[contains(\@href, 'Action=AgentTicketBounce') ]")->click(); - # switch to bounce window + # Switch to bounce window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); - # check agent ticket bounce screen + # Check agent ticket bounce screen. for my $ID ( qw(BounceTo BounceStateID To Subject RichText submitRichText) ) @@ -143,12 +138,18 @@ $Element->is_displayed(); } - # check JS functionality - # click on checkbox - unchecked state + # Check JS functionality. + # Click on checkbox - unchecked state. $Selenium->execute_script("\$('#InformSender').prop('checked', true)"); - $Selenium->find_element( "#InformSender", 'css' )->VerifiedClick(); + $Selenium->WaitFor( + JavaScript => "return \$('#InformSender:checked').length" + ); + $Selenium->find_element( "#InformSender", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return !\$('#InformSender:checked').length" + ); - # check up if labels does not have class Mandatory + # Check up if labels does not have class Mandatory. for my $Label (qw(To Subject RichText)) { $Self->Is( $Selenium->execute_script("return \$('label[for=$Label]').hasClass('Mandatory')"), @@ -157,10 +158,13 @@ ); } - # click on checkbox - checked state - $Selenium->find_element( "#InformSender", 'css' )->VerifiedClick(); + # Click on checkbox - checked state. + $Selenium->find_element( "#InformSender", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#InformSender:checked').length" + ); - # check up if labels have class Mandatory + # Check up if labels have class Mandatory. for my $Label (qw(To Subject RichText)) { $Self->Is( $Selenium->execute_script("return \$('label[for=$Label]').hasClass('Mandatory')"), @@ -169,31 +173,31 @@ ); } - # set on initial unchecked state of checkbox - $Selenium->find_element( "#InformSender", 'css' )->VerifiedClick(); + # Set on initial unchecked state of checkbox. + $Selenium->find_element( "#InformSender", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return !\$('#InformSender:checked').length" + ); - # bounce ticket to another test email + # Bounce ticket to another test email. $Selenium->find_element( "#BounceTo", 'css' )->send_keys("test\@localhost.com"); $Selenium->execute_script("\$('#BounceStateID').val('4').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#submitRichText", 'css' )->click(); - # wait for bounce to be handled $Selenium->WaitFor( WindowCount => 1 ); - - # return back to zoom view $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of test created ticket + # Navigate to AgentTicketHistory of test created ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # verify that bounce worked as expected + # Verify that bounce worked as expected. my $BounceText = 'Bounced to "test@localhost.com".'; $Self->True( index( $Selenium->get_page_source(), $BounceText ) > -1, "Bounce executed correctly", ); - # delete created test ticket + # Delete created test ticket. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -212,9 +216,8 @@ "Ticket with ticket id $TicketID is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketBulk.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketBulk.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketBulk.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketBulk.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -24,21 +23,22 @@ my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check email addresses + # Do not check email addresses. $ConfigObject->Set( Key => 'CheckEmailAddresses', Value => 0, ); - # enable bulk feature + # Enable bulk feature. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::BulkFeature', Value => 1, ); - # enable required lock feature in bulk + # Enable required lock feature in bulk. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketBulk###RequiredLock', @@ -63,7 +63,6 @@ }, ); - # Get needed variables. my $RandomNumber = $Helper->GetRandomNumber(); my $Success; @@ -93,7 +92,7 @@ Groups => [ 'admin', 'users', @GroupNames ], ) || die "Did not get test user"; - # get test user ID + # Get test user ID. my $TestUserID = $UserObject->UserLookup( UserLogin => $TestUserLogin, ); @@ -190,9 +189,6 @@ "CustomerUser $TestCustomerUserLogin is created", ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - my $QueueRawID = $QueueObject->QueueLookup( Queue => 'Raw' ); my @Tests = ( @@ -211,7 +207,7 @@ UserID => $TestUserID, }, { - # ticket locked by another agent #1 + # Ticket locked by another agent #1. TicketTitle => 'TestTicket-Three', Lock => 'lock', QueueID => $QueueRawID, @@ -240,7 +236,7 @@ UserID => $TestUserID, }, { - # ticket locked by another agent #2 + # Ticket locked by another agent #2. TicketTitle => 'TestTicket-Seven', Lock => 'lock', QueueID => $QueueRawID, @@ -286,13 +282,12 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AgentTicketStatusView + # Navigate to AgentTicketStatusView. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketStatusView"); - # verify that test tickets are in open state + # Verify that test tickets are in open state. for my $Ticket (@Tickets) { $Self->True( index( $Selenium->get_page_source(), $Ticket->{TicketNumber} ) > -1, @@ -300,22 +295,22 @@ ); } - # select both tickets and click on "bulk" - # test case for the bug #11805 - http://bugs.otrs.org/show_bug.cgi?id=11805 + # Select both tickets and click on "bulk". + # Test case for the bug #11805 - http://bugs.otrs.org/show_bug.cgi?id=11805. $Selenium->find_element("//input[\@value='$Tickets[0]->{TicketID}']")->click(); $Selenium->find_element("//input[\@value='$Tickets[1]->{TicketID}']")->click(); $Selenium->find_element("//input[\@value='$Tickets[2]->{TicketID}']")->click(); - $Selenium->find_element( "Bulk", 'link_text' )->VerifiedClick(); + $Selenium->find_element( "Bulk", 'link_text' )->click(); - # switch to bulk window + # Switch to bulk window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#StateID").length' ); - # check ticket bulk page + # Check ticket bulk page. for my $ID ( qw(StateID OwnerID QueueID PriorityID OptionMergeTo MergeTo OptionMergeToOldest LinkTogether LinkTogetherParent Unlock submitRichText) @@ -326,10 +321,10 @@ $Element->is_displayed(); } - # click on 'Undo & close' link + # Click on 'Undo & close' link. $Selenium->find_element( ".UndoClosePopup", 'css' )->click(); - # return to status view + # Return to status view. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); @@ -338,7 +333,7 @@ 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' ); - # check ticket lock + # Check ticket lock. $Self->Is( $TicketObject->TicketLockGet( TicketID => $Tickets[0]->{TicketID}, @@ -347,7 +342,7 @@ "Ticket remind locked after undo in bulk feature - $Tickets[0]->{TicketNumber}" ); - # select test tickets and click on "bulk" + # Select test tickets and click on "bulk". $Selenium->find_element("//input[\@value='$Tickets[0]->{TicketID}']")->click(); $Selenium->find_element("//input[\@value='$Tickets[1]->{TicketID}']")->click(); $Selenium->find_element("//input[\@value='$Tickets[2]->{TicketID}']")->click(); @@ -355,18 +350,18 @@ $Selenium->find_element( "Bulk", 'link_text' )->click(); - # switch to bulk window + # Switch to bulk window. $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' ); - # check data + # Check data. my @ExpectedMessages = ( "The following tickets were ignored because they are locked by another agent or you don't have write access to these tickets: " . $Tickets[2]->{TicketNumber} . ", " @@ -381,7 +376,7 @@ } # Check list of recipients in SendEmail widget. See bug#12607 for more information. - $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_1')]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@aria-controls, \'Core_UI_AutogeneratedID_1')]")->click(); # Wait for AJAX finish. $Selenium->WaitFor( @@ -394,22 +389,22 @@ 'Test customer user email found in recipient list' ); - # change state and priority in bulk action for test tickets + # Change state and priority in bulk action for test tickets. $Selenium->execute_script("\$('#PriorityID').val('4').trigger('redraw.InputField').trigger('change');"); $Selenium->execute_script("\$('#StateID').val('2').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( '#submitRichText', 'css' )->click(); - # return to status view + # Return to status view. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # Make sure main window is fully loaded + # Make sure main window is fully loaded. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketStatusView"); - # select closed view to verify ticket bulk functionality + # Select closed view to verify ticket bulk functionality. $Selenium->find_element("//a[contains(\@href, \'Filter=Closed' )]")->VerifiedClick(); - # verify which tickets are shown in ticket closed view + # Verify which tickets are shown in ticket closed view. for my $Ticket (@Tickets) { if ( $Ticket->{OwnerID} != 1 && $Ticket->{Title} !~ m/-Four|-Five|-Six$/ ) { $Self->True( @@ -419,7 +414,7 @@ } else { - # ticket is locked by another agent and it was ignored in bulk feature + # Ticket is locked by another agent and it was ignored in bulk feature. $Self->True( index( $Selenium->get_page_source(), $Ticket->{TicketNumber} ) == -1, "Ticket $Ticket->{TicketNumber} is not found on page", @@ -467,7 +462,7 @@ for my $ConfigValue ( 0 .. 1 ) { - # Set if everyone or just agents with rw permissions in the queue for the ticket would be shown + # Set if everyone or just agents with rw permissions in the queue for the ticket would be shown. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::ChangeOwnerToEveryone', @@ -513,7 +508,7 @@ # Close popup. $Selenium->close(); - # clean up test data from the DB + # Clean up test data from the DB. for my $Ticket (@Tickets) { $Success = $TicketObject->TicketDelete( TicketID => $Ticket->{TicketID}, @@ -603,9 +598,8 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketCompose.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketCompose.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketCompose.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketCompose.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,7 +14,6 @@ use Kernel::Language; -# Get Selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -362,7 +361,6 @@ Password => $TestUserLogin, ); - # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # Navigate to created test ticket in AgentTicketZoom page. @@ -396,7 +394,11 @@ JavaScript => 'return typeof($) === "function" && $(".Dialog.Modal.Alert:visible").length' ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' + ); # Check AgentTicketCompose page. for my $ID ( @@ -404,6 +406,7 @@ FileUpload StateID IsVisibleForCustomer submitRichText) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); } @@ -507,7 +510,7 @@ # Force sub menus to be visible in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - $Selenium->find_element("//*[text()='History']")->VerifiedClick(); + $Selenium->find_element("//*[text()='History']")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); @@ -583,7 +586,6 @@ Type => $Cache, ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketEmailResend.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketEmailResend.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketEmailResend.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketEmailResend.t 2018-02-05 23:46:54.000000000 +0000 @@ -285,7 +285,7 @@ ); # Check for existence of resend action. - $Selenium->find_element("//a[text()='Resend']")->VerifiedClick(); + $Selenium->find_element("//a[text()='Resend']")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); @@ -373,7 +373,7 @@ # Expand sub-menus in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - $Selenium->find_element("//*[text()='History']")->VerifiedClick(); + $Selenium->find_element("//*[text()='History']")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketEmail.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketEmail.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketEmail.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketEmail.t 2018-02-05 23:46:54.000000000 +0000 @@ -306,6 +306,9 @@ Value => 0, ); + # Allow apache to pick up the changed SysConfig via Apache::Reload. + sleep 1; + # Navigate to AgentTicketEmail screen and login because there is no session cookies. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketEmail"); $Selenium->find_element( "#User", 'css' )->send_keys($TestUserLogin); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketForward.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketForward.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketForward.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketForward.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,28 +12,27 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # disable check email addresses + # Disable check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # do not check service and type + # Do not check service and type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Service', @@ -45,9 +44,7 @@ Value => 0 ); - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium ticket', Queue => 'Raw', @@ -86,23 +83,17 @@ "ArticleCreate - ID $ArticleID", ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # add test customer for testing + # Add test customer for testing. my $TestCustomer = 'Customer' . $Helper->GetRandomID(); my $TestCustomerUserID = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserAdd( Source => 'CustomerUser', @@ -119,25 +110,30 @@ "CustomerUserAdd - $TestCustomerUserID", ); - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to created test ticket in AgentTicketZoom page + # Navigate to created test ticket in AgentTicketZoom page. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click on forward - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketForward;TicketID=$TicketID;' )]") - ->VerifiedClick(); + # Click on forward. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketForward;TicketID=$TicketID;' )]")->click(); - # switch to forward window + # Switch to forward window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#ToCustomer").length' ); - # check AgentTicketFoward page + # Check AgentTicketFoward page. for my $ID ( qw(ToCustomer CcCustomer BccCustomer Subject RichText FileUpload ComposeStateID IsVisibleForCustomer submitRichText) @@ -148,7 +144,7 @@ $Element->is_displayed(); } - # input fields and send forward + # Input fields and send forward. $Selenium->find_element( "#ToCustomer", 'css' )->send_keys($TestCustomer); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("li.ui-menu-item:visible").length' ); @@ -158,20 +154,20 @@ $Selenium->find_element( "#submitRichText", 'css' )->click(); - # return back to AgentTicketZoom + # Return back to AgentTicketZoom. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # navigate to AgentTicketHistory of created test ticket + # Navigate to AgentTicketHistory of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketHistory;TicketID=$TicketID"); - # verify for expected action + # Verify for expected action. $Self->True( index( $Selenium->get_page_source(), "Forwarded to " ) > -1, 'Action Forward executed correctly' ); - # delete created test ticket + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -190,7 +186,7 @@ "Ticket with ticket ID $TicketID is deleted" ); - # delete created test customer user + # Delete created test customer user. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); $TestCustomer = $DBObject->Quote($TestCustomer); $Success = $DBObject->Do( @@ -202,16 +198,12 @@ "Delete customer user - $TestCustomer", ); - # make sure the cache is correct - for my $Cache ( - qw (Ticket CustomerUser ) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); - } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure the cache is correct. + for my $Cache (qw (Ticket CustomerUser )) { + $CacheObject->CleanUp( Type => $Cache ); + } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketHistory.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketHistory.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketHistory.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketHistory.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,17 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable check email addresses + # Disable check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, @@ -141,7 +138,7 @@ push @DynamicFieldIDs, $DynamicFieldID; } - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium ticket', Queue => 'Raw', @@ -208,7 +205,7 @@ my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Ticket::Article')->BackendForChannel( ChannelName => 'Phone' ); - # create two test email articles + # Create two test email articles. my @ArticleIDs; for my $ArticleCreate ( 1 .. 2 ) { my $ArticleID = $ArticleBackendObject->ArticleCreate( @@ -230,7 +227,7 @@ push @ArticleIDs, $ArticleID; } - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -241,30 +238,28 @@ Password => $TestUserLogin, ); - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to ticket zoom page of created test ticket + # Navigate to ticket zoom page of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # get current initial URL + # Get current initial URL. my $InitialURL = $Selenium->get_current_url(); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Miscellaneous ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'History' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketHistory;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'History' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketHistory;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); # Check the history entry for the dynamic field. @@ -277,15 +272,15 @@ ); } - # click on 'Zoom view' for created second article + # Click on 'Zoom view' for created second article. $Selenium->find_element("//a[contains(\@href, 'AgentTicketZoom;TicketID=$TicketID;ArticleID=$ArticleIDs[1]')]") ->click(); - # switch window back + # Switch window back. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # verify new URL + # Verify new URL. my $ChangedURL = $Selenium->get_current_url(); $Self->IsNot( $ChangedURL, @@ -293,7 +288,7 @@ 'AgentTicketHistory correctly changed parent window URL - JS is successful' ); - # delete created test ticket + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -303,9 +298,8 @@ "TicketDelete - ID $TicketID" ); + # Delete created test dynamic fields. for my $DynamicFieldID (@DynamicFieldIDs) { - - # delete created test dynamic field $Success = $DynamicFieldObject->DynamicFieldDelete( ID => $DynamicFieldID, UserID => 1, @@ -316,9 +310,8 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketLock.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketLock.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketLock.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketLock.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,30 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => [ 'admin', 'users' ], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get ticket object + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test ticket + # Create test ticket. my $TicketNumber = $TicketObject->TicketCreateNumber(); my $TicketID = $TicketObject->TicketCreate( TN => $TicketNumber, @@ -54,20 +39,30 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => [ 'admin', 'users' ], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to created test ticket in AgentTicketZoom page + # Navigate to created test ticket in AgentTicketZoom page $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # click on lock + # Click on lock $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketLock;Subaction=Lock;TicketID=$TicketID;' )]") ->VerifiedClick(); - # verify that ticket is locked, navigate to AgentTicketLockedView + # Verify that ticket is locked, navigate to AgentTicketLockedView $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketLockedView"); $Self->True( @@ -75,27 +70,27 @@ "Ticket with ticket number $TicketNumber found on locked view page", ); - # return back to AgentTicketZoom for created test ticket + # Return back to AgentTicketZoom for created test ticket $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # unlock ticket + # Unlock ticket $Selenium->find_element( "//a[contains(\@href, \'Action=AgentTicketLock;Subaction=Unlock;TicketID=$TicketID;' )]" )->VerifiedClick(); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - # go to history view to verify results - $Selenium->find_element("//*[text()='History']")->VerifiedClick(); + # Go to history view to verify results + $Selenium->find_element("//*[text()='History']")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); $Self->True( @@ -107,7 +102,7 @@ "Ticket with ticket ID $TicketID was successfully unlocked", ); - # delete created test ticket + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -126,9 +121,8 @@ "Ticket with ticket ID $TicketID is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketMove.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketMove.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketMove.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketMove.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,16 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ACLObject = $Kernel::OM->Get('Kernel::System::ACL::DB::ACL'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # set to change queue for ticket in a new window + # Set to change queue for ticket in a new window. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::MoveType', @@ -58,7 +58,7 @@ Value => '0' ); - # create two test queues to use as 'Junk' and 'Delete' queue + # Create two test queues to use as 'Junk' and 'Delete' queue. my @QueueNames; my @QueueIDs; for my $QueueCreate (qw(Delete Junk)) { @@ -81,7 +81,7 @@ push @QueueNames, $QueueName; } - # get sysconfig data + # Get sysconfig data. my @SysConfigData = ( { MenuModule => 'Ticket::Frontend::MenuModule###460-Delete', @@ -97,7 +97,7 @@ for my $SysConfigUpdate (@SysConfigData) { - # enable menu module and modify destination link + # Enable menu module and modify destination link. my %MenuModuleConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => $SysConfigUpdate->{MenuModule}, Default => 1, @@ -113,10 +113,7 @@ ); } - # get ACL object - my $ACLObject = $Kernel::OM->Get('Kernel::System::ACL::DB::ACL'); - - # create test ACL with possible not selection of test queues + # Create test ACL with possible not selection of test queues. my $ACLID = $ACLObject->ACLAdd( Name => 'AACL' . $Helper->GetRandomID(), Comment => 'Selenium ACL', @@ -141,21 +138,7 @@ "ACLID $ACLID is created", ); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => [ 'admin', 'users' ], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => "Selenium Test Ticket", Queue => 'Raw', @@ -172,101 +155,109 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => [ 'admin', 'users' ], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AdminACL and synchronize ACL's + # Navigate to AdminACL and synchronize ACL's. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminACL"); - # click 'Deploy ACLs' + # Click 'Deploy ACLs'. $Selenium->find_element("//a[contains(\@href, 'Action=AdminACL;Subaction=ACLDeploy')]")->VerifiedClick(); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click on 'Move' and switch window - $Selenium->find_element("//a[contains(\@title, \'Change Queue' )]")->VerifiedClick(); + # Click on 'Move' and switch window. + $Selenium->find_element("//a[contains(\@title, \'Change Queue' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#DestQueueID").length' ); - - # check page + # Check page. for my $ID ( qw(DestQueueID NewUserID NewStateID) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); } - # change ticket queue + # Change ticket queue. $Selenium->execute_script("\$('#DestQueueID').val('4').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#submitRichText", 'css' )->click(); - # return back to zoom view and click on history and switch to its view + # Return back to zoom view and click on history and switch to its view. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); # Wait for reload to kick in. - sleep 1; $Selenium->WaitFor( JavaScript => 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' ); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->execute_script("\$('.Cluster ul ul').addClass('ForceVisible');"); - $Selenium->find_element("//*[text()='History']")->VerifiedClick(); + $Selenium->find_element("//*[text()='History']")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); - # confirm ticket move action + # Confirm ticket move action. my $MoveMsg = "Changed queue to \"Misc\" (4) from \"Raw\" (2)."; $Self->True( index( $Selenium->get_page_source(), $MoveMsg ) > -1, 'Ticket move action completed' ); - # click on close window and switch back screen + # Click on close window and switch back screen. $Selenium->find_element( ".CancelClosePopup", 'css' )->click(); $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # test bug #11854 ( http://bugs.otrs.org/show_bug.cgi?id=11854 ) - # ACL restriction on queue which is destination queue for 'Spam' menu in AgentTicketZoom - # get error message + # Test bug #11854 ( http://bugs.otrs.org/show_bug.cgi?id=11854 ). + # ACL restriction on queue which is destination queue for 'Spam' menu in AgentTicketZoom. + # Get error message. my $ErrorMessage = "This ticket does not exist, or you don't have permissions to access it in its current state."; - # click on 'Delete' and check for ACL error message + # Click on 'Delete' and check for ACL error message. $Selenium->find_element("//a[contains(\@title, 'Delete this ticket')]")->VerifiedClick(); $Self->True( index( $Selenium->get_page_source(), $ErrorMessage ) > -1, "ACL restriction error message found for 'Delete' menu", ); - # click to return back to AgentTicketZoom screen + # Click to return back to AgentTicketZoom screen. $Selenium->find_element( ".ReturnToPreviousPage", 'css' )->VerifiedClick(); - # click on 'Spam' and check for ACL error message + # Click on 'Spam' and check for ACL error message. $Selenium->find_element("//a[contains(\@title, 'Mark this ticket as junk!')]")->VerifiedClick(); $Self->True( index( $Selenium->get_page_source(), $ErrorMessage ) > -1, "ACL restriction error message found for 'Spam' menu", ); - # Test for bug#12559 that nothing shpuld happen, if the user click on a disabled queue (only for move type 'form'). + # Test for bug#12559 that nothing shpuld happen, + # if the user click on a disabled queue (only for move type 'form'). $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::MoveType', @@ -307,7 +298,6 @@ $Selenium->execute_script("\$('#DestQueueID').val('2').trigger('redraw.InputField').trigger('change');"); # Wait for reload to kick in. - sleep 1; $Selenium->WaitFor( JavaScript => 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' @@ -321,7 +311,7 @@ 'The Queue was changed.', ); - # delete test ACL + # Delete test ACL. my $Success = $ACLObject->ACLDelete( ID => $ACLID, UserID => 1, @@ -331,13 +321,13 @@ "ACLID $ACLID is deleted", ); - # navigate to AdminACL to synchronize after test ACL cleanup + # Navigate to AdminACL to synchronize after test ACL cleanup. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminACL"); - # click 'Deploy ACLs' + # Click 'Deploy ACLs'. $Selenium->find_element("//a[contains(\@href, 'Action=AdminACL;Subaction=ACLDeploy')]")->VerifiedClick(); - # delete created test queues + # Delete created test queues. for my $QueueDelete (@QueueIDs) { $Success = $Kernel::OM->Get('Kernel::System::DB')->Do( @@ -349,7 +339,7 @@ ); } - # delete created test tickets + # Delete created test tickets. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -368,13 +358,12 @@ "Ticket with ticket ID $TicketID is deleted" ); - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw( Ticket Queue )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketPhone.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketPhone.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketPhone.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketPhone.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,13 +12,11 @@ use vars (qw($Self)); -# Get selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); @@ -66,17 +64,11 @@ Value => 0, ); - # Create test user and login. + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, @@ -101,7 +93,13 @@ "CustomerUserAdd - ID $TestCustomerUserID" ); - # Get script alias. + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); # Navigate to AgentTicketPhone screen. @@ -121,7 +119,8 @@ # Check client side validation. my $Element = $Selenium->find_element( "#Subject", 'css' ); $Element->send_keys(""); - $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Subject.Error").length' ); $Self->Is( $Selenium->execute_script( @@ -134,7 +133,7 @@ # Navigate to AgentTicketPhone screen again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketPhone"); - # create test phone ticket + # Create test phone ticket. my $TicketSubject = "Selenium Ticket"; my $TicketBody = "Selenium body test"; $Selenium->find_element( "#FromCustomer", 'css' )->send_keys($TestCustomer); @@ -178,10 +177,10 @@ Value => $DefaultCustomerUser, ); - # remove customer + # Remove customer. $Selenium->find_element( "#TicketCustomerContentFromCustomer a.CustomerTicketRemove", "css" )->click(); - # add customer again + # Add customer again. $Selenium->find_element( "#FromCustomer", 'css' )->send_keys($TestCustomer); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("li.ui-menu-item:visible").length' ); $Selenium->execute_script("\$('li.ui-menu-item:contains($TestCustomer)').click()"); @@ -239,7 +238,7 @@ "$TestCustomer found on page", ) || die "$TestCustomer not found on page"; - # Test bug #12229 + # Test bug #12229. my $QueueID1 = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd( Name => "$RandomID", ValidID => 1, @@ -273,7 +272,7 @@ # Navigate to AgentTicketPhone screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketPhone"); - # select + # Select . my $QueueValue = "$QueueID1||$RandomID"; $Selenium->execute_script("\$('#Dest').val('$QueueValue').trigger('redraw.InputField').trigger('change');"); @@ -295,7 +294,7 @@ ); # Select SubQueue on loading screen. - # bug#12819 ( https://bugs.otrs.org/show_bug.cgi?id=12819 ) - queue contains spaces in the name. + # Bug#12819 ( https://bugs.otrs.org/show_bug.cgi?id=12819 ) - queue contains spaces in the name. # Navigate to AgentTicketPhone screen again to check selecting a queue after loading screen. $QueueValue = $QueueID2 . "||Junk::SubQueue $RandomID $RandomID"; $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketPhone"); @@ -311,7 +310,7 @@ 'Queue #2 is selected.', ); - # delete Queues + # Delete Queues. my $Success = $Kernel::OM->Get('Kernel::System::DB')->Do( SQL => "DELETE FROM queue WHERE id IN (?, ?)", Bind => [ \$QueueID1, \$QueueID2 ], @@ -321,7 +320,7 @@ "Queues deleted", ); - # delete created test ticket + # Delete created test ticket. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -352,14 +351,11 @@ "Delete customer user - $TestCustomer", ); + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure the cache is correct. - for my $Cache ( - qw (Ticket CustomerUser) - ) - { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + for my $Cache (qw( Ticket CustomerUser )) { + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketPlain.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketPlain.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketPlain.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketPlain.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,45 +12,31 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); + my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); + my $ArticleBackendObject = $ArticleObject->BackendForChannel( ChannelName => 'Email' ); - # do not check email addresses + # Do not check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # check to see tickets in plain view + # Check to see tickets in plain view. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::PlainView', Value => 1 ); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => [ 'admin', 'users' ], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); - my $ArticleBackendObject = $ArticleObject->BackendForChannel( ChannelName => 'Email' ); - - # create test ticket + # Create test ticket. my $TicketNumber = $TicketObject->TicketCreateNumber(); my $TicketID = $TicketObject->TicketCreate( TN => $TicketNumber, @@ -69,7 +55,7 @@ "Ticket is created - ID $TicketID", ); - # create test email article + # Create test email article. my $TicketSubject = "test 1"; my $TicketBody = "This is the first test."; my $ArticleID = $ArticleBackendObject->ArticleCreate( @@ -89,7 +75,7 @@ "Article is created - ID $ArticleID", ); - # write test sample email as article plain + # Write test sample email as article plain. my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/EmailParser/PostMaster-Test1.box"; @@ -110,24 +96,34 @@ "ArticleWritePlain for article ID $ArticleID - success", ); - # get script alias - my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => [ 'admin', 'users' ], + ) || die "Did not get test user"; + + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # click to show ticket in plain view - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPlain' )]")->VerifiedClick(); + # Click to show ticket in plain view. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPlain' )]")->click(); - # switch to plain window + # Switch to plain window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".CancelClosePopup").length' ); - # check for values in AgentTicketPlain screen + # Check for values in AgentTicketPlain screen. $Self->True( index( $Selenium->get_page_source(), $TicketNumber ) > -1, "Created test ticket $TicketNumber found in Plain Format", @@ -141,12 +137,12 @@ "Created test ticket body found in Plain Format", ); - # close plain view window + # Close plain view window. $Selenium->find_element( ".CancelClosePopup", 'css' )->click(); $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # delete created test ticket + # Delete created test ticket. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -165,7 +161,7 @@ "Ticket with ticket ID $TicketID is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketProcessAttachment.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# Get Selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -87,7 +86,11 @@ $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/TestProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']") ->VerifiedClick(); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketProcess.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketProcess.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketProcess.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketProcess.t 2018-02-05 23:46:54.000000000 +0000 @@ -246,7 +246,10 @@ # Import test Selenium Process. my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/AgentTicketProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']")->VerifiedClick(); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); @@ -366,8 +369,7 @@ push @DeleteTicketIDs, $TicketID[1]; # Click on next step in Process ticket. - $Selenium->find_element("//a[contains(\@href, \'ProcessEntityID=$ListReverse{$ProcessName}' )]") - ->VerifiedClick(); + $Selenium->find_element("//a[contains(\@href, \'ProcessEntityID=$ListReverse{$ProcessName}' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); @@ -606,14 +608,14 @@ ); } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure the cache is correct. for my $Cache ( qw (ProcessManagement_Activity ProcessManagement_ActivityDialog ProcessManagement_Transition ProcessManagement_TransitionAction ) ) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } }, ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketStatusView.t otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketStatusView.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/AgentTicketStatusView.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/AgentTicketStatusView.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,37 +12,21 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check email addresses + # Do not check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # create test user and login - my $TestUserLogin = $Helper->TestUserCreate( - Groups => [ 'admin', 'users' ], - ) || die "Did not get test user"; - - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test tickets + # Create test tickets. my @TicketIDs; for ( 1 .. 3 ) { my $TicketID = $TicketObject->TicketCreate( @@ -65,16 +49,26 @@ } - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + # Create test user and login. + my $TestUserLogin = $Helper->TestUserCreate( + Groups => [ 'admin', 'users' ], + ) || die "Did not get test user"; - # navigate to AgentTicketStatusView screen + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + + # Navigate to AgentTicketStatusView screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketStatusView"); - # test if tickets show with appropriate filters + # Test if tickets show with appropriate filters. for my $Filter (qw(Open Closed)) { - # check for control button (Open / Close) + # Check for control button (Open / Close). my $Element = $Selenium->find_element( "//a[contains(\@href, \'Action=AgentTicketStatusView;SortBy=Age;OrderBy=Down;View=;Filter=$Filter\' )]" ); @@ -82,19 +76,19 @@ $Element->is_displayed(); $Element->VerifiedClick(); - # check different views for filters + # Check different views for filters. for my $View (qw(Small Medium Preview)) { - # click on viewer controller + # Click on viewer controller. $Selenium->find_element( "//a[contains(\@href, \'Action=AgentTicketStatusView;Filter=$Filter;View=$View;\' )]" )->VerifiedClick(); - # check screen output + # Check screen output. $Selenium->find_element( "table", 'css' ); $Selenium->find_element( "table tbody tr td", 'css' ); - # verify that all expected tickets are present + # Verify that all expected tickets are present. for my $TicketID (@TicketIDs) { my $TicketNumber = $TicketObject->TicketNumberLookup( @@ -110,29 +104,38 @@ } } - # close all ticket with bulk action + # Close all ticket with bulk action. if ( $Filter eq 'Open' ) { for my $TicketID (@TicketIDs) { - # select all created test tickets - $Selenium->find_element("//input[\@type='checkbox'][\@value='$TicketID']")->VerifiedClick(); + # Select all created test tickets. + $Selenium->find_element("//input[\@type='checkbox'][\@value='$TicketID']")->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('input[value=$TicketID][type=checkbox]:checked').length" + ); } - # click on bulk action and switch window - $Selenium->find_element("//*[text()='Bulk']")->VerifiedClick(); + # Click on bulk action and switch window. + $Selenium->find_element("//*[text()='Bulk']")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#StateID").length' ); + # Wait until page has loaded, if necessary. + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#StateID").length && $("#submitRichText").length' + ); - # change state to 'closed successful' + # Change state to 'closed successful'. $Selenium->execute_script("\$('#StateID').val('2').trigger('redraw.InputField').trigger('change');"); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#StateID").val() == 2' ); + $Selenium->find_element( "#submitRichText", 'css' )->click(); - # switch back to AgentTicketStatusView + # Switch back to AgentTicketStatusView. $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketStatusView"); @@ -140,7 +143,7 @@ } - # delete created test tickets + # Delete created test tickets. my $Success; for my $TicketID (@TicketIDs) { $Success = $TicketObject->TicketDelete( @@ -162,9 +165,8 @@ ); } - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketActionCommonDraft.t 2018-02-05 23:46:54.000000000 +0000 @@ -260,6 +260,7 @@ ); # Execute test scenarios. + my $Handles; for my $Test (@Tests) { # Create Draft name. @@ -290,7 +291,7 @@ ->click(); $Selenium->WaitFor( WindowCount => 2 ); - my $Handles = $Selenium->get_window_handles(); + $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); # Wait until page has loaded, if necessary. @@ -692,6 +693,74 @@ ); } + # Test for Save the draft without JSON error in window, bug#13556 https://bugs.otrs.org/show_bug.cgi?id=13556. + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' + ); + + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); + + $Selenium->WaitFor( WindowCount => 2 ); + $Handles = $Selenium->get_window_handles(); + $Selenium->switch_to_window( $Handles->[1] ); + + # Wait until page has loaded, if necessary. + $Selenium->WaitFor( + JavaScript => + 'return typeof(Core) == "object" && typeof(Core.App) == "object" && Core.App.PageLoadComplete' + ); + + # Save form in Draft. + sleep 1; + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + 'return typeof($) === "function" && $("#FormDraftTitle").length && $("#SaveFormDraft").length;' + ); + + # Click on save Draft title dialog. + $Selenium->find_element( "#SaveFormDraft", 'css' )->click(); + + # Wait alert to appear. + $Selenium->WaitFor( AlertPresent => 1 ) || die 'Alert not found'; + + # Verify the alert message. + my $ExpectedAlertText = "Draft name is required!"; + $Self->True( + ( $Selenium->get_alert_text() =~ /$ExpectedAlertText/ ), + "Check alert message text.", + ); + + # Accept the validation alert. + $Selenium->accept_alert(); + + # Close save draft title dialog. + $Selenium->find_element( ".CloseDialog", 'css' )->click(); + + # Wait to close Dialog. + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 0;' ); + + # Submit empty form to check validation. + $Selenium->find_element( "#submitRichText", 'css' )->click(); + + # Wait error Dialog to be visible. + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 1;' ); + + # Close error Dialog. + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".Dialog:visible").length === 0;' ); + + # Check validation. + $Self->Is( + $Selenium->execute_script( + "return \$('#Subject').hasClass('Error')" + ), + '1', + 'Client side validation correctly detected missing input value', + ); + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketComposeDraft.t 2018-02-05 23:46:54.000000000 +0000 @@ -201,7 +201,7 @@ } # Create FormDraft and submit. - $Selenium->find_element( "#FormDraftSave", 'css' )->VerifiedClick(); + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#FormDraftTitle").length;' @@ -238,7 +238,7 @@ ); # Try to create FormDraft with same name, expecting error. - $Selenium->find_element( "#FormDraftSave", 'css' )->VerifiedClick(); + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#FormDraftTitle").length;' ); $Selenium->find_element( "#FormDraftTitle", 'css' )->send_keys($Title); $Selenium->find_element( "#SaveFormDraft", 'css' )->click(); @@ -417,12 +417,12 @@ $Selenium->switch_to_window( $Handles->[0] ); # Delete draft - $Selenium->find_element( ".FormDraftDelete", 'css' )->VerifiedClick(); + $Selenium->find_element( ".FormDraftDelete", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#DeleteConfirm").length;' ); - $Selenium->find_element( "#DeleteConfirm", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DeleteConfirm", 'css' )->click(); my $Deleted = $Selenium->WaitFor( JavaScript => diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketEmailOutboundDraft.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# Get selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -80,7 +79,6 @@ "Ticket ID $TicketID is created", ); - # Get article object. my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); my $ArticleEmailChannelObject = $ArticleObject->BackendForChannel( ChannelName => 'Email' ); @@ -113,7 +111,6 @@ Password => $TestUserLogin, ); - # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # Navigate to zoom view of created test ticket. @@ -177,12 +174,12 @@ } elsif ( $FormDraftCase->{Fields}->{$Field}->{Type} eq 'Attachment' ) { - # make the file upload field visible + # Make the file upload field visible. $Selenium->execute_script( "\$('#FileUpload').css('display', 'block')" ); - # upload a file + # Upload a file. $Selenium->find_element( "#FileUpload", 'css' ) ->send_keys( $ConfigObject->Get('Home') . "/scripts/test/sample/Main/Main-Test1.pdf" ); @@ -204,7 +201,7 @@ } # Create FormDraft and submit. - $Selenium->find_element( "#FormDraftSave", 'css' )->VerifiedClick(); + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#FormDraftTitle").length;' @@ -247,7 +244,7 @@ ); # Try to create FormDraft with same name, expecting error. - $Selenium->find_element( "#FormDraftSave", 'css' )->VerifiedClick(); + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#FormDraftTitle").length;' @@ -344,7 +341,7 @@ } elsif ( $FormDraftCase->{Fields}->{$FieldValue}->{Type} eq 'Attachment' ) { - # there should be only one file with a certain name + # There should be only one file with a certain name. $Self->Is( $Selenium->execute_script( "return \$('.AttachmentList tbody tr td.Filename:contains(Main-Test1.pdf)').length" @@ -360,12 +357,12 @@ "Only one file present" ); - # add a second file + # Add a second file. $Selenium->execute_script( "\$('#FileUpload').css('display', 'block')" ); - # upload a file + # Upload a file. $Selenium->find_element( "#FileUpload", 'css' ) ->send_keys( $ConfigObject->Get('Home') . "/scripts/test/sample/Main/Main-Test1.doc" ); @@ -389,7 +386,7 @@ # Refresh screen. $Selenium->VerifiedRefresh(); - # click on test created FormDraft and switch window + # Click on test created FormDraft and switch window. $Selenium->find_element( "//a[contains(\@href, \'Action=AgentTicket$FormDraftCase->{Module};TicketID=$TicketID;LoadFormDraft=1' )]" )->click(); @@ -415,7 +412,7 @@ } elsif ( $FormDraftCase->{Fields}->{$FieldValue}->{Type} eq 'Attachment' ) { - # there should be two files now + # There should be two files now. $Self->Is( $Selenium->execute_script( "return \$('.AttachmentList tbody tr td.Filename').length" @@ -432,13 +429,13 @@ $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); - # Delete draft - $Selenium->find_element( ".FormDraftDelete", 'css' )->VerifiedClick(); + # Delete draft. + $Selenium->find_element( ".FormDraftDelete", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#DeleteConfirm").length;' ); - $Selenium->find_element( "#DeleteConfirm", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DeleteConfirm", 'css' )->click(); my $Deleted = $Selenium->WaitFor( JavaScript => diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/FormDraft/AgentTicketPhoneCommonDraft.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,13 +12,11 @@ use vars (qw($Self)); -# Get selenium object. my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # Get helper object. my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); # Do not check RichText and hide Fred. @@ -39,7 +37,6 @@ ); } - # Get ticket object. my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); @@ -74,7 +71,6 @@ Password => $TestUserLogin, ); - # Get script alias. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); # Navigate to zoom view of created test ticket. @@ -202,7 +198,7 @@ } # Create FormDraft and submit. - $Selenium->find_element( "#FormDraftSave", 'css' )->VerifiedClick(); + $Selenium->find_element( "#FormDraftSave", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#FormDraftTitle").length;' @@ -223,7 +219,6 @@ "FormDraft for $Test->{Module} $Title is found", ); - # Get article object. my $ArticleObject = $Kernel::OM->Get('Kernel::System::Ticket::Article'); my $ArticleBackendObject = $ArticleObject->BackendForChannel( ChannelName => 'Phone' ); @@ -406,12 +401,12 @@ $Selenium->VerifiedRefresh(); # Delete draft - $Selenium->find_element( ".FormDraftDelete", 'css' )->VerifiedClick(); + $Selenium->find_element( ".FormDraftDelete", 'css' )->click(); $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#DeleteConfirm").length;' ); - $Selenium->find_element( "#DeleteConfirm", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DeleteConfirm", 'css' )->click(); $Selenium->WaitFor( JavaScript => diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Login.t otrs2-6.0.5/scripts/test/Selenium/Agent/Login.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Login.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Login.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,7 +14,6 @@ use Kernel::GenericInterface::Operation::Session::Common; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); # Cleanup existing settings to make sure session limit calculations are correct. @@ -26,14 +25,12 @@ $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my @TestUserLogins; + # Create test users. for ( 0 .. 2 ) { - - # create test user and login my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -41,10 +38,9 @@ push @TestUserLogins, $TestUserLogin; } - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # First load the page so we can delete any pre-existing cookies + # First load the page so we can delete any pre-existing cookies. $Selenium->VerifiedGet("${ScriptAlias}index.pl"); $Selenium->delete_all_cookies(); @@ -88,13 +84,16 @@ $Element->is_enabled(); $Element->send_keys( $TestUserLogins[0] ); - # login + # Login. $Selenium->find_element( '#LoginButton', 'css' )->VerifiedClick(); - # try to expand the user profile sub menu by clicking the avatar - $Selenium->find_element( '.UserAvatar > a', 'css' )->VerifiedClick(); + # Try to expand the user profile sub menu by clicking the avatar. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("li.UserAvatar > div:visible").length' + ); - # check if we see the logout button + # Check if we see the logout button. $Element = $Selenium->find_element( 'a#LogoutButton', 'css' ); # Check for version tag in the footer. @@ -103,7 +102,7 @@ "Version information present ($Product $Version)", ); - # logout again + # Logout again. $Element->VerifiedClick(); my @SessionIDs; @@ -112,7 +111,7 @@ for my $Counter ( 1 .. 2 ) { - # create new session id + # Create new session id. my $NewSessionID = $SessionObject->CreateSessionID( UserLogin => $TestUserLogins[$Counter], UserLastRequest => $Kernel::OM->Create('Kernel::System::DateTime')->ToEpoch(), @@ -165,8 +164,11 @@ "AgentSessionLimitPriorWarning is reached.", ); - # try to expand the user profile sub menu by clicking the avatar - $Selenium->find_element( '.UserAvatar > a', 'css' )->VerifiedClick(); + # Try to expand the user profile sub menu by clicking the avatar. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("li.UserAvatar > div:visible").length' + ); $Element = $Selenium->find_element( 'a#LogoutButton', 'css' ); $Element->VerifiedClick(); @@ -233,10 +235,13 @@ $Selenium->find_element( '#LoginButton', 'css' )->VerifiedClick(); - # try to expand the user profile sub menu by clicking the avatar - $Selenium->find_element( '.UserAvatar > a', 'css' )->VerifiedClick(); + # Try to expand the user profile sub menu by clicking the avatar. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("li.UserAvatar > div:visible").length' + ); - # login successful? + # Login successful? $Element = $Selenium->find_element( 'a#LogoutButton', 'css' ); $SessionObject->CleanUp(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/MultiAttachmentUpload.t otrs2-6.0.5/scripts/test/Selenium/Agent/MultiAttachmentUpload.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/MultiAttachmentUpload.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/MultiAttachmentUpload.t 2018-02-05 23:46:54.000000000 +0000 @@ -254,7 +254,8 @@ "\$('#FileUpload').data('max-size-per-file-hr', '6 KB')" ); - # Now try to upload two files of which one exceeds the max size (.pdf should work (5KB), .png shouldn't (20KB)). + # Now try to upload two files of which one exceeds the max size + # (.pdf should work (5KB), .png shouldn't (20KB)). $Location = "$Home/scripts/test/sample/Cache/Test1.pdf"; $Selenium->find_element( "#FileUpload", 'css' )->clear(); $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); @@ -383,7 +384,8 @@ $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' ); # Submit and check later if files still there. - $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('#Subject.Error').length" ); # Delete files. for my $DeleteExtension (qw(doc pdf png txt xls)) { @@ -538,7 +540,8 @@ $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' ); # Submit to check if files still there. - $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( JavaScript => "return \$('.Error').length" ); # Delete files. for my $DeleteExtension (qw(doc pdf png txt xls)) { diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Responsive/Basic.t otrs2-6.0.5/scripts/test/Selenium/Agent/Responsive/Basic.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Responsive/Basic.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Responsive/Basic.t 2018-02-05 23:46:54.000000000 +0000 @@ -14,13 +14,11 @@ use Kernel::Language; -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); $Selenium->set_window_size( 600, 400 ); @@ -37,186 +35,138 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AgentDashboard screen + # Navigate to AgentDashboard screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentDashboard"); - # wait until jquery is ready + # Wait until jquery is ready. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function'" ); - # the mobile navigation toggle should be visible - my $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveNavigationHandle:visible').length; - } - ); + # The mobile navigation toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveNavigationHandle:visible').length"), 1, - "Mobile navigation toggle should be visible." + "Mobile navigation toggle should be visible" ); - # the mobile sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveSidebarHandle:visible').length; - } - ); + # The mobile sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveSidebarHandle:visible').length"), 1, - "Mobile sidebar toggle should be visible." + "Mobile sidebar toggle should be visible" ); - # check for toolbar visibility - $ItemVisible = $Selenium->execute_script( - q{ - return $("ul#ToolBar").height(); - } - ); + # Check for toolbar visibility. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return parseInt(\$('#ToolBar').css('height'), 10)"), 0, "Toolbar height should be 0" ); - # expand navigation bar - $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('#NavigationContainer:visible').length; - } - ); + # Expand navigation bar. + $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->click(); + + # Wait for animation has finished. + sleep 2; + $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#NavigationContainer:visible').length"), 1, "Navigation bar should be visible" ); - # collapse navigation bar again - $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('#NavigationContainer:visible').length; - } - ); + # Collapse navigation bar again. + $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->click(); + + # Wait for animation has finished. + sleep 2; + $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#NavigationContainer:visible').length"), 0, "Navigation bar should be hidden again" ); - # expand sidebar - $Selenium->find_element( "#ResponsiveSidebarHandle", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('.ResponsiveSidebarContainer:visible').length; - } - ); + # Expand sidebar. + $Selenium->find_element( "#ResponsiveSidebarHandle", "css" )->click(); + + # Wait for animation has finished. + sleep 2; + $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('.ResponsiveSidebarContainer:visible').length"), 1, "Sidebar bar should be visible" ); - # collapse sidebar again - $Selenium->find_element( "#ResponsiveSidebarHandle", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('.ResponsiveSidebarContainer:visible').length; - } - ); + # Collapse sidebar again. + $Selenium->find_element( "#ResponsiveSidebarHandle", "css" )->click(); + + # Wait for animation has finished. + sleep 2; + $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('.ResponsiveSidebarContainer:visible').length"), 0, "Sidebar bar should be hidden again" ); - # expand toolbar - $Selenium->find_element( "#Logo", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ToolBar').css('height'); - } - ); + # Expand toolbar. + $Selenium->find_element( "#Logo", "css" )->click(); + $Selenium->WaitFor( JavaScript => "return parseInt(\$('#ToolBar').css('height'), 10) > 0" ); $Self->True( - $ItemVisible > 0, + $Selenium->execute_script("return parseInt(\$('#ToolBar').css('height'), 10) > 0"), "Toolbar should be visible" ); - # while the toolbar is expanded, navigation and sidebar toggle should be hidden - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveNavigationHandle:visible').length; - } - ); + # Wait for animation has finished. + sleep 2; + + # While the toolbar is expanded, navigation and sidebar toggle should be hidden. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveNavigationHandle:visible').length"), 0, - "Mobile navigation toggle should be hidden." + "Mobile navigation toggle should be hidden" ); - # the mobile sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveSidebarHandle:visible').length; - } - ); + # The mobile sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveSidebarHandle:visible').length"), 0, - "Mobile sidebar toggle should be hidden." + "Mobile sidebar toggle should be hidden" ); - # collapse toolbar again - $Selenium->find_element( "#Logo", "css" )->VerifiedClick(); - sleep 1; - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ToolBar').css('height'); - } - ); + # Collapse toolbar again. + $Selenium->find_element( "#Logo", "css" )->click(); + $Selenium->WaitFor( JavaScript => "return parseInt(\$('#ToolBar').css('height'), 10) === 0" ); $Self->True( - $ItemVisible == 0, + $Selenium->execute_script("return parseInt(\$('#ToolBar').css('height'), 10) == 0"), "Toolbar should be hidden again" ); - # now that the toolbar is collapsed again, navigation and sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveNavigationHandle:visible').length; - } - ); + # Wait for animation has finished. + sleep 2; + + # Now that the toolbar is collapsed again, navigation and sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveNavigationHandle:visible').length"), 1, - "Mobile navigation toggle should be visible." + "Mobile navigation toggle should be visible" ); - # the mobile sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveSidebarHandle:visible').length; - } - ); + # The mobile sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveSidebarHandle:visible').length"), 1, - "Mobile sidebar toggle should be visible." + "Mobile sidebar toggle should be visible" ); my $LanguageObject = Kernel::Language->new( UserLanguage => $Language, ); - # check for the viewmode switch + # Check for the viewmode switch. $Self->Is( $Selenium->execute_script("return \$('#ViewModeSwitch > a').text();"), $LanguageObject->Translate( @@ -225,13 +175,13 @@ 'Check for mobile mode switch text', ); - # toggle the switch - $Selenium->find_element( "#ViewModeSwitch", "css" )->VerifiedClick(); + # Toggle the switch. + $Selenium->find_element( "#ViewModeSwitch", "css" )->click(); - # wait until jquery is ready + # Wait until jquery is ready. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function'" ); - # check for the viewmode switch + # Check for the viewmode switch. $Self->Is( $Selenium->execute_script("return \$('#ViewModeSwitch > a').text();"), $LanguageObject->Translate( @@ -240,38 +190,28 @@ 'Check for mobile mode switch text', ); - # we should now be in desktop mode, thus the toggles should be hidden - # while the toolbar is expanded, navigation and sidebar toggle should be hidden - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveNavigationHandle:visible').length; - } - ); + # We should now be in desktop mode, thus the toggles should be hidden. + # While the toolbar is expanded, navigation and sidebar toggle should be hidden. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveNavigationHandle:visible').length"), 0, - "Mobile navigation toggle should be hidden." + "Mobile navigation toggle should be hidden" ); - # the mobile sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveSidebarHandle:visible').length; - } - ); + # The mobile sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveSidebarHandle:visible').length"), 0, - "Mobile sidebar toggle should be hidden." + "Mobile sidebar toggle should be hidden" ); - # toggle the switch again - $Selenium->find_element( "#ViewModeSwitch", "css" )->VerifiedClick(); + # Toggle the switch again. + $Selenium->find_element( "#ViewModeSwitch", "css" )->click(); - # wait until jquery is ready + # Wait until jquery is ready. $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function'" ); - # check for the viewmode switch + # Check for the viewmode switch. $Self->Is( $Selenium->execute_script("return \$('#ViewModeSwitch > a').text();"), $LanguageObject->Translate( @@ -280,31 +220,20 @@ 'Check for mobile mode switch text', ); - # we should now be in desktop mode, thus the toggles should be hidden - # while the toolbar is expanded, navigation and sidebar toggle should be hidden - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveNavigationHandle:visible').length; - } - ); + # We should now be in desktop mode, thus the toggles should be hidden. + # While the toolbar is expanded, navigation and sidebar toggle should be hidden. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveNavigationHandle:visible').length"), 1, - "Mobile navigation toggle should be visible." + "Mobile navigation toggle should be visible" ); - # the mobile sidebar toggle should be visible - $ItemVisible = $Selenium->execute_script( - q{ - return $('#ResponsiveSidebarHandle:visible').length; - } - ); + # The mobile sidebar toggle should be visible. $Self->Is( - $ItemVisible, + $Selenium->execute_script("return \$('#ResponsiveSidebarHandle:visible').length"), 1, - "Mobile sidebar toggle should be visible." + "Mobile sidebar toggle should be visible" ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Agent/Responsive/Popups.t otrs2-6.0.5/scripts/test/Selenium/Agent/Responsive/Popups.t --- otrs2-6.0.4/scripts/test/Selenium/Agent/Responsive/Popups.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Agent/Responsive/Popups.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,14 +12,13 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); $Selenium->set_window_size( 600, 400 ); @@ -29,16 +28,7 @@ Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TitleRandom = "Title" . $Helper->GetRandomID(); my $TicketNumber = $TicketObject->TicketCreateNumber(); my $TicketID = $TicketObject->TicketCreate( @@ -57,13 +47,19 @@ "Ticket is created - ID $TicketID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AgentTicketZoom for test created ticket + # Navigate to AgentTicketZoom for test created ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # verify its right screen + # Verify its right screen. $Self->True( index( $Selenium->get_page_source(), $TitleRandom ) > -1, "Ticket $TitleRandom found on page", @@ -75,23 +71,18 @@ "Link for priority popup is displayed and enabled", ); - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPriority')]")->VerifiedClick(); - - # wait for popup iframe to show - $Selenium->WaitFor( - JavaScript => "return typeof(\$) === 'function' && \$('.PopupIframe:visible').length == 1" - ); + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketPriority')]")->click(); - # wait for the priority search in the iframe to show up - $Selenium->WaitFor( - JavaScript => - "return typeof(\$) === 'function' && \$('#NewPriorityID_Search:visible', \$('.PopupIframe').contents()).length == 1" + $Selenium->SwitchToFrame( + FrameSelector => '.PopupIframe', + WaitForLoad => 1, ); - # as long as the overlay is opened, elements below it should not be usable, e.g. the mobile navigation toggle + # As long as the overlay is opened, elements below it should not be usable, e.g. the mobile navigation toggle. my $Success; eval { - $Success = $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->VerifiedClick(); + $Success = $Selenium->find_element( "#ResponsiveNavigationHandle", "css" )->click(); + sleep 2; }; $Self->False( @@ -99,7 +90,7 @@ "Mobile navigation button should not be clickable.", ); - # clean up test data from the DB + # Clean up test data from the DB. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -118,9 +109,8 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerPasswordRecovery.t otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerPasswordRecovery.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerPasswordRecovery.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerPasswordRecovery.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,15 +12,12 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $TestEmailObject = $Kernel::OM->Get('Kernel::System::Email::Test'); my $MailQueueObject = $Kernel::OM->Get('Kernel::System::MailQueue'); @@ -52,7 +49,7 @@ $MailQueueObject->Send( %{$Item} ); } - # Clean any garbage + # Clean any garbage. $MailQueueClean->(); return; @@ -61,7 +58,7 @@ # Make sure we start with a clean mail queue. $MailQueueClean->(); - # use test email backend + # Use test email backend. $Helper->ConfigSettingChange( Valid => 1, Key => 'SendmailModule', @@ -73,7 +70,7 @@ Value => 0, ); - # clean up test email + # Clean up test email. my $Success = $TestEmailObject->CleanUp(); $Self->True( $Success, @@ -86,35 +83,36 @@ 'Test email empty after initial cleanup', ); - # create test customer user + # Create test customer user. my $TestCustomerUser = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; - # get script alias - my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to customer login screen + # Navigate to customer login screen. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?"); $Selenium->delete_all_cookies(); - # click on 'Forgot password?' + # Click on 'Forgot password'. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?"); - $Selenium->find_element( "#ForgotPassword", 'css' )->VerifiedClick(); + $Selenium->find_element( "#ForgotPassword", 'css' )->click(); - # request new password + $Selenium->WaitFor( JavaScript => "return \$('#ResetUser').length" ); + + # Request new password. $Selenium->find_element( "#ResetUser", 'css' )->send_keys($TestCustomerUser); $Selenium->find_element( "#Reset button[type='submit']", 'css' )->VerifiedClick(); - # check for password recovery message + # Check for password recovery message. $Self->True( $Selenium->find_element( ".SuccessBox span", 'css' ), "Password recovery message found on screen for valid customer", ); - # Process mail queue items + # Process mail queue items. $MailQueueProcess->(); - # check if password recovery email is sent + # Check if password recovery email is sent. my $Emails = $TestEmailObject->EmailsGet(); $Self->Is( scalar @{$Emails}, @@ -122,7 +120,7 @@ "Password recovery email sent for valid customer user $TestCustomerUser", ); - # clean up test email again + # Clean up test email again. $Success = $TestEmailObject->CleanUp(); $Self->True( $Success, @@ -135,7 +133,7 @@ 'Test email empty after second cleanup', ); - # update test customer to invalid status + # Update test customer to invalid status. $Success = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserUpdate( Source => 'CustomerUser', ID => $TestCustomerUser, @@ -153,24 +151,26 @@ "$TestCustomerUser set to invalid", ); - # click on 'Forgot password?' again - $Selenium->find_element( "#ForgotPassword", 'css' )->VerifiedClick(); + # Click on 'Forgot password' again. + $Selenium->find_element( "#ForgotPassword", 'css' )->click(); + + $Selenium->WaitFor( JavaScript => "return \$('#ResetUser').length" ); - # request new password + # Request new password. $Selenium->find_element( "#ResetUser", 'css' )->send_keys($TestCustomerUser); $Selenium->find_element( "#Reset button[type='submit']", 'css' )->VerifiedClick(); - # check for password recovery message for invalid customer user, for security measures it - # should be visible + # Check for password recovery message for invalid customer user, for security measures it + # should be visible. $Self->True( $Selenium->find_element( ".SuccessBox span", 'css' ), "Password recovery message found on screen for invalid customer", ); - # Process mail queue items + # Process mail queue items. $MailQueueProcess->(); - # check if password recovery email is sent to invalid customer user + # Check if password recovery email is sent to invalid customer user. $Emails = $TestEmailObject->EmailsGet(); $Self->Is( scalar @{$Emails}, diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketAttachment.t otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketAttachment.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketAttachment.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketAttachment.t 2018-02-05 23:46:54.000000000 +0000 @@ -11,23 +11,21 @@ use utf8; use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # do not check service and type + # Do not check service and type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Service', @@ -39,14 +37,14 @@ Value => 0 ); - # set download type to inline + # Set download type to inline. $Helper->ConfigSettingChange( Valid => 1, Key => 'AttachmentDownloadType', Value => 'inline' ); - # create test customer user and login + # Create test customer user and login. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; @@ -56,10 +54,10 @@ Password => $TestCustomerUserLogin, ); - # click on 'Create your first ticket' + # Click on 'Create your first ticket'. $Selenium->find_element( ".Button", 'css' )->VerifiedClick(); - # create needed variables + # Create needed variables. my $SubjectRandom = "Subject" . $Helper->GetRandomID(); my $TextRandom = "Text" . $Helper->GetRandomID(); my $AttachmentName = "StdAttachment-Test1.txt"; @@ -74,7 +72,7 @@ "\$('#FileUpload').css('display', 'block')" ); - # input fields and create ticket + # Input fields and create ticket. $Selenium->execute_script("\$('#Dest').val('2||Raw').trigger('redraw.InputField').trigger('change');"); $Selenium->find_element( "#Subject", 'css' )->send_keys($SubjectRandom); $Selenium->find_element( "#RichText", 'css' )->send_keys($TextRandom); @@ -82,10 +80,9 @@ $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".AttachmentList").length' ); $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); - # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # get test created ticket ID and number + # Get test created ticket ID and number. my %TicketIDs = $TicketObject->TicketSearch( Result => 'HASH', Limit => 1, @@ -99,27 +96,27 @@ "Ticket was created and found", ); - # click on test created ticket on CustomerTicketOverview screen + # Click on test created ticket on CustomerTicketOverview screen. $Selenium->find_element( $TicketNumber, 'link_text' )->VerifiedClick(); - # click on attachment to open it - $Selenium->find_element("//*[text()=\"$AttachmentName\"]")->VerifiedClick(); + # Click on attachment to open it. + $Selenium->find_element("//*[text()=\"$AttachmentName\"]")->click(); - # switch to another window + # Switch to another window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); sleep 3; - # check if attachment is genuine + # Check if attachment is genuine. my $ExpectedAttachmentContent = "Some German Text with Umlaut"; $Self->True( index( $Selenium->get_page_source(), $ExpectedAttachmentContent ) > -1, "$AttachmentName opened successfully", ) || die; - # clean up test data from the DB + # Clean up test data from the DB. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -129,9 +126,8 @@ "Ticket with ticket number $TicketNumber is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketMessage.t otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketMessage.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketMessage.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketMessage.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,37 +12,35 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # do not check Service + # Do not check Service. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Service', Value => 0 ); - # do not check Type + # Do not check Type. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Type', Value => 0 ); - # create test customer user and login + # Create test customer user and login. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; @@ -52,13 +50,12 @@ Password => $TestCustomerUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to CustomerTicketMessage screen + # Navigate to CustomerTicketMessage screen. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketMessage"); - # check CustomerTicketMessage overview screen + # Check CustomerTicketMessage overview screen. for my $ID ( qw(Dest Subject RichText PriorityID submitRichText) ) @@ -72,9 +69,13 @@ $Element->is_enabled(); $Element->is_displayed(); - # check client side validation + # Check client side validation. $Selenium->find_element( "#Subject", 'css' )->clear(); - $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); + $Selenium->find_element( "#submitRichText", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#Subject.Error').length" + ); + $Self->Is( $Selenium->execute_script( "return \$('#Subject').hasClass('Error')" @@ -83,7 +84,7 @@ 'Client side validation correctly detected missing input value', ); - # input fields and create ticket + # Input fields and create ticket. my $SubjectRandom = "Subject" . $Helper->GetRandomID(); my $TextRandom = "Text" . $Helper->GetRandomID(); $Selenium->execute_script("\$('#Dest').val('2||Raw').trigger('redraw.InputField').trigger('change');"); @@ -91,10 +92,9 @@ $Selenium->find_element( "#RichText", 'css' )->send_keys($TextRandom); $Selenium->find_element( "#submitRichText", 'css' )->VerifiedClick(); - # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # get test created ticket ID and number + # Get test created ticket ID and number. my %TicketIDs = $TicketObject->TicketSearch( Result => 'HASH', Limit => 1, @@ -108,13 +108,13 @@ "Ticket was created and found", ) || die; - # search for new created ticket on CustomerTicketOverview screen + # Search for new created ticket on CustomerTicketOverview screen. $Self->True( index( $Selenium->get_page_source(), $TicketNumber ) > -1, "Ticket with ticket ID $TicketID - found on CustomerTicketOverview screen" ) || die; - # Check URL preselection of queue + # Check URL preselection of queue. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketMessage;Dest=3||Junk"); $Self->Is( @@ -139,7 +139,7 @@ "Queue preselected in URL" ); - # test prefilling of some parameters with StoreNew + # Test prefilling of some parameters with StoreNew. $Selenium->VerifiedGet( "${ScriptAlias}customer.pl?Action=CustomerTicketMessage;Subject=TestSubject;Body=TestBody;Subaction=StoreNew;Expand=1" ); @@ -156,7 +156,7 @@ "Subject preselected in URL" ); - # clean up test data from the DB + # Clean up test data from the DB. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -175,7 +175,7 @@ "Ticket with ticket ID $TicketID is deleted" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketProcess.t otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketProcess.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketProcess.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketProcess.t 2018-02-05 23:46:54.000000000 +0000 @@ -227,7 +227,10 @@ # Import test Selenium Process. my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/CustomerTicketProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']")->VerifiedClick(); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); @@ -404,8 +407,7 @@ push @DeleteTicketIDs, $TicketID[1]; # Click on next step in Process ticket. - $Selenium->find_element("//a[contains(\@href, \'ProcessEntityID=$ListReverse{$ProcessName}' )]") - ->VerifiedClick(); + $Selenium->find_element("//a[contains(\@href, \'ProcessEntityID=$ListReverse{$ProcessName}' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); @@ -639,14 +641,15 @@ ); } + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + # Make sure cache is correct. for my $Cache ( qw(ProcessManagement_Activity ProcessManagement_ActivityDialog ProcessManagement_Process ProcessManagement_Transition ProcessManagement_TransitionAction ) ) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + $CacheObject->CleanUp( Type => $Cache ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketZoom.t otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketZoom.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/CustomerTicketZoom.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/CustomerTicketZoom.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,30 +12,33 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', - Value => 0 + Value => 0, + ); + + # Disable setting. + $Helper->ConfigSettingChange( + Valid => 1, + Key => 'Ticket::Frontend::CustomerTicketZoom###CustomerZoomExpand', + Value => 0, ); - # create test customer user + # Create test customer user. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketNumber = $TicketObject->TicketCreateNumber(); my $TicketID = $TicketObject->TicketCreate( TN => $TicketNumber, @@ -54,7 +57,7 @@ "Ticket is created - $TicketID", ); - # create test article for test ticket + # Create test article for test ticket. my $SubjectRandom = "Subject" . $Helper->GetRandomID(); my $TextRandom = "Text" . $Helper->GetRandomID(); @@ -77,10 +80,28 @@ $Self->True( $ArticleID, - "Article is created - $ArticleID", + "Article #1 is created - $ArticleID", + ); + + my $ArticleID2 = $ArticleBackendObject->ArticleCreate( + TicketID => $TicketID, + SenderType => 'customer', + IsVisibleForCustomer => 1, + Subject => $SubjectRandom, + Body => $TextRandom, + Charset => 'charset=ISO-8859-15', + MimeType => 'text/plain', + HistoryType => 'AddNote', + HistoryComment => 'Some free text!', + UserID => 1, ); - # account some time to the ticket + $Self->True( + $ArticleID2, + "Article #2 is created - $ArticleID2", + ); + + # Account some time to the ticket. my $Success = $TicketObject->TicketAccountTime( TicketID => $TicketID, ArticleID => $ArticleID, @@ -92,7 +113,7 @@ "Time accounted to the ticket", ); - # login test customer user + # Login as test customer user. $Selenium->Login( Type => 'Customer', User => $TestCustomerUserLogin, @@ -117,27 +138,28 @@ $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketOverview"); - # search for new created ticket on CustomerTicketOverview screen + # Search for new created ticket on CustomerTicketOverview screen. $Self->True( $Selenium->find_element("//a[contains(\@href, \'Action=CustomerTicketZoom;TicketNumber=$TicketNumber' )]"), "Ticket with ticket number $TicketNumber is found on screen" ); - # check customer ticket zoom screen + # Check customer ticket zoom screen. $Selenium->find_element("//a[contains(\@href, \'Action=CustomerTicketZoom;TicketNumber=$TicketNumber' )]") ->VerifiedClick(); - # check add page + # Check add page. for my $ID ( qw(Messages FollowUp ZoomSidebar) ) { + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#$ID').length" ); my $Element = $Selenium->find_element( "#$ID", 'css' ); $Element->is_enabled(); $Element->is_displayed(); } - # check ticket data + # Check ticket data. $Self->True( index( $Selenium->get_page_source(), $TicketNumber ) > -1, "Ticket number is $TicketNumber", @@ -158,33 +180,62 @@ "Queue is Raw", ); - # accounted time should not be displayed + # Accounted time should not be displayed. $Self->False( index( $Selenium->get_page_source(), 'Accounted time:' ) > -1, "Accounted time is not displayed", ); - # enable displaying accounted time + # Enable displaying accounted time. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::CustomerTicketZoom###ZoomTimeDisplay', Value => 1 ); - # reload the page + # Reload the page. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketZoom;TicketNumber=$TicketNumber"); - # accounted time should now be displayed + my $NumberOfExpandedArticles = $Selenium->execute_script( + 'return $("ul#Messages li.Visible").length' + ); + $Self->Is( + $NumberOfExpandedArticles, + 1, + 'Make sure that only one article is expanded.' + ); + + # Enable expanding. + $Helper->ConfigSettingChange( + Valid => 1, + Key => 'Ticket::Frontend::CustomerTicketZoom###CustomerZoomExpand', + Value => 1, + ); + + # Reload the page. + $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketZoom;TicketNumber=$TicketNumber"); + + $NumberOfExpandedArticles = $Selenium->execute_script( + 'return $("ul#Messages li.Visible").length' + ); + $Self->Is( + $NumberOfExpandedArticles, + 2, + 'Make sure that all articles are expanded.' + ); + + # Accounted time should now be displayed. $Self->True( index( $Selenium->get_page_source(), 'Accounted time:' ) > -1, "Accounted time is displayed", ); - # check reply button - $Selenium->find_element("//a[contains(\@id, \'ReplyButton' )]")->VerifiedClick(); + # Check reply button. + $Selenium->find_element("//a[contains(\@id, \'ReplyButton' )]")->click(); + $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#FollowUp.Visible').length" ); $Selenium->find_element("//button[contains(\@value, \'Submit' )]"); - # change the ticket state to 'merged' + # Change the ticket state to 'merged'. my $Merged = $TicketObject->TicketStateSet( State => 'merged', TicketID => $TicketID, @@ -195,20 +246,24 @@ "Ticket state changed to 'merged'", ); - # refresh the page + # Refresh the page. $Selenium->VerifiedRefresh(); - # check if reply button is missing in merged ticket (bug#7301) + # Check if reply button is missing in merged ticket (bug#7301). $Self->Is( $Selenium->execute_script('return $("a#ReplyButton").length'), 0, "Reply button not found", ); - # check print button - $Selenium->find_element("//a[contains(\@href, \'Action=CustomerTicketPrint;' )]")->VerifiedClick(); + # Check if print button exists on the screen. + $Self->Is( + $Selenium->execute_script('return $("a[href*=\'Action=CustomerTicketPrint\']").length'), + 1, + "Print button is found", + ); - # clean up test data from the DB + # Clean up test data from the DB. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -227,9 +282,8 @@ "Ticket is deleted - $TicketID", ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Customer/MultiAttachmentUpload.t otrs2-6.0.5/scripts/test/Selenium/Customer/MultiAttachmentUpload.t --- otrs2-6.0.4/scripts/test/Selenium/Customer/MultiAttachmentUpload.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Customer/MultiAttachmentUpload.t 2018-02-05 23:46:54.000000000 +0000 @@ -78,7 +78,10 @@ } elsif ( $Action eq 'CustomerTicketZoom' ) { $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=$Action;TicketNumber=$TicketNumber"); - $Selenium->find_element("//a[contains(\@id, \'ReplyButton' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@id, \'ReplyButton' )]")->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && \$('#FollowUp.Visible').length" + ); } # Check DnDUpload. @@ -329,7 +332,8 @@ $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && !$(".Dialog.Modal").length' ); # Submit and check if files still there. - $Selenium->find_element("//button[contains(\@value, \'Submit' )]")->VerifiedClick(); + $Selenium->find_element("//button[contains(\@value, \'Submit' )]")->click(); + $Selenium->WaitFor( JavaScript => 'return $(".Error").length' ); # Delete files. for my $DeleteExtension (qw(doc pdf png txt xls)) { diff -Nru otrs2-6.0.4/scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t otrs2-6.0.5/scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t --- otrs2-6.0.4/scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/JavaScript/Core.UI.Popup/WindowHeight.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,42 +12,32 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # do not check RichText + # Do not check RichText. $Helper->ConfigSettingChange( Valid => 1, Key => 'Frontend::RichText', Value => 0 ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticcket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', Queue => 'Raw', @@ -59,39 +49,43 @@ OwnerID => $TestUserID, UserID => $TestUserID, ); - $Self->True( $TicketID, "Ticket is created - $TicketID", ); - # get script alias + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to zoom view of created test ticket + # Navigate to zoom view of created test ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # test for bug#11205 (http://bugs.otrs.org/show_bug.cgi?id=11205) - # check screen size to open popup according to available screen height - # open popup with default height - # after that open popup with adjusted height + # Test for bug#11205 (http://bugs.otrs.org/show_bug.cgi?id=11205). + # Check screen size to open popup according to available screen height. + # Open popup with default height, + # after that open popup with adjusted height. my $ParentWindowHeight = $Selenium->get_window_size()->{"height"}; - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' @@ -107,34 +101,33 @@ "Default popup window height" ); - # close note window + # Close note window. $Selenium->find_element( ".CancelClosePopup", 'css' )->click(); $Selenium->WaitFor( WindowCount => 1 ); - # switch window back to agent ticket zoom view of created test ticket + # Switch window back to agent ticket zoom view of created test ticket. $Selenium->switch_to_window( $Handles->[0] ); - # now try to open a popup with a height larger than the screen height (1000) - # adjust PopupProfile for that + # Now try to open a popup with a height larger than the screen height (1000). + # Adjust PopupProfile for that. $Selenium->execute_script( "Core.UI.Popup.ProfileAdd('Default', { WindowURLParams: 'dependent=yes,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no', Left: 100, Top: 100, Width: 1040, Height: 1700 });" ); - # force sub menus to be visible in order to be able to click one of the links + # Force sub menus to be visible in order to be able to click one of the links. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#nav-Communication ul").css({ "height": "auto", "opacity": "100" });' ); - # click on 'Note' and switch window - $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]") - ->VerifiedClick(); + # Click on 'Note' and switch window. + $Selenium->find_element("//a[contains(\@href, \'Action=AgentTicketNote;TicketID=$TicketID' )]")->click(); $Selenium->WaitFor( WindowCount => 2 ); $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetSimple").length;' @@ -153,7 +146,7 @@ . "px), even if defined larger" ); - # delete created test tickets + # Delete created test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -172,11 +165,10 @@ "Ticket is deleted - ID $TicketID" ); - # make sure the cache is correct + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket', ); - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t otrs2-6.0.5/scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t --- otrs2-6.0.4/scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/ArticleAttachmentHTMLViewer.t 2018-02-05 23:46:54.000000000 +0000 @@ -19,35 +19,28 @@ $Selenium->RunTest( sub { - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # enable MIME-Viewer for PDF attachment + # Enable MIME-Viewer for PDF attachment. $Helper->ConfigSettingChange( Valid => 1, Key => 'MIME-Viewer###application/pdf', Value => "echo 'OTRS.org TEST'", ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Some Ticket Title', Queue => 'Raw', @@ -60,8 +53,8 @@ UserID => $TestUserID, ); - # add article to test ticket with PDF test attachment - my $Location = $Kernel::OM->Get('Kernel::Config')->Get('Home') + # Add article to test ticket with PDF test attachment. + my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/StdAttachment/StdAttachment-Test1.pdf"; my $ContentRef = $Kernel::OM->Get('Kernel::System::Main')->FileRead( @@ -93,11 +86,18 @@ ], ); - # go to ticket zoom page of created test ticket - my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + # Go to ticket zoom page of created test ticket. + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # check are there Download and Viewer links for test attachment + # Check are there Download and Viewer links for test attachment. $Self->True( $Selenium->find_element("//a[contains(\@title, \'Download' )]"), "Download link for attachment is found" @@ -108,10 +108,10 @@ "View link for attachment is found" ); - # check test attachment in MIME-Viwer, WaitFor will be done after switch to window - $Selenium->find_element( "a.ViewAttachment i", "css" )->VerifiedClick(); + # Check test attachment in MIME-Viwer, WaitFor will be done after switch to window. + $Selenium->find_element( "a.ViewAttachment i", "css" )->click(); - # switch to link object window + # Switch to link object window. $Selenium->WaitFor( WindowCount => 2 ); my $Handles = $Selenium->get_window_handles(); @@ -120,7 +120,7 @@ # Wait for page to load if necessary. $Selenium->WaitFor( JavaScript => 'return document.readyState === "complete";' ); - # check expected values in PDF test attachment + # Check expected values in PDF test attachment. for my $ExpectedValue (qw(OTRS.org TEST)) { $Self->True( index( $Selenium->get_page_source(), $ExpectedValue ) > -1, @@ -133,8 +133,6 @@ $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[0] ); - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # Import sample email. $Location = $ConfigObject->Get('Home') . '/scripts/test/sample/PostMaster/PostMaster-Test20.box'; $ContentRef = $Kernel::OM->Get('Kernel::System::Main')->FileRead( @@ -221,7 +219,7 @@ $Selenium->close(); - # delete created test ticket + # Delete created test ticket. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -240,7 +238,7 @@ "Ticket with ticket id $TicketID is deleted" ); - # make sure the cache is correct. + # Make sure the cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/CustomerUser/GenericTicket.t otrs2-6.0.5/scripts/test/Selenium/Output/CustomerUser/GenericTicket.t --- otrs2-6.0.4/scripts/test/Selenium/Output/CustomerUser/GenericTicket.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/CustomerUser/GenericTicket.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # enable CustomerUserGenericTicket sysconfig + # Enable CustomerUserGenericTicket sysconfig. my @CustomerSysConfig = ( '15-OpenTickets', '16-OpenTicketsForCustomerUserLogin', '17-ClosedTickets', '18-ClosedTicketsForCustomerUserLogin' @@ -29,7 +28,7 @@ for my $SysConfigChange (@CustomerSysConfig) { - # get default sysconfig + # Get default sysconfig. my $SysConfigName = 'Frontend::CustomerUser::Item###' . $SysConfigChange; my %Config = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => $SysConfigName, @@ -43,36 +42,27 @@ ); } - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # create test customer user + # Create test customer user. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( ) || die "Did not get test customer user"; - # get test customer user ID + # Get test customer user ID. my @CustomerIDs = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerIDs( User => $TestCustomerUserLogin, ); my $CustomerID = $CustomerIDs[0]; - # get needed objects - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test data parameters + # Create test data parameters. my %TicketData = ( 'Open' => { TicketState => 'open', @@ -90,7 +80,7 @@ }, ); - # create open and closed tickets + # Create open and closed tickets. for my $TicketCreate ( sort keys %TicketData ) { for my $TestTickets ( 1 .. 5 ) { my $TicketNumber = $TicketObject->TicketCreateNumber(); @@ -122,43 +112,49 @@ $TicketData{$TicketCreate}->{TicketCount} = $TicketCount; } - # go to zoom view of created test ticket + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + # Go to zoom view of created test ticket. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketData{Open}->{TicketIDs}->[0]" ); - # wait until page has loaded, if necessary - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); - - # Wait until customer info widget has loaded, if necessary. - $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $(".WidgetIsLoading").length === 0;' ); + # Wait until page and customer info widget have loaded, if necessary. + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("body").length && $(".WidgetIsLoading").length === 0' + ); - # test CustomerUserGenericTicket module + # Test CustomerUserGenericTicket module. for my $TestLinks ( sort keys %TicketData ) { - # check for layout and ticket count + # Check for layout and ticket count. my $ExpectedText = $TestLinks . " tickets (customer) ($TicketData{$TestLinks}->{TicketCount})"; $Self->True( index( $Selenium->get_page_source(), $ExpectedText ) > -1, "$ExpectedText - found on screen" ); - # click on link + # Click on link. $Selenium->find_element( "//a[contains(\@href, \'$TicketData{$TestLinks}->{TicketLink};CustomerUserLoginRaw=$TestCustomerUserLogin' )]" - )->VerifiedClick(); + )->click(); $Selenium->WaitFor( WindowCount => 2 ); - # link open in new window, switch to it + # Link open in new window, switch to it. my $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[1] ); - # wait until page has loaded, if necessary + # Wait until page has loaded, if necessary. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("body").length' ); - # check for test ticket numbers on search screen + # Check for test ticket numbers on search screen. for my $CheckTicketNumbers ( @{ $TicketData{$TestLinks}->{TicketNumbers} } ) { $Self->True( index( $Selenium->get_page_source(), $CheckTicketNumbers ) > -1, @@ -166,28 +162,28 @@ ); } - # click on 'Change search option' + # Click on 'Change search option'. $Selenium->find_element( "//a[contains(\@href, \'AgentTicketSearch;Subaction=LoadProfile' )]" - )->VerifiedClick(); + )->click(); - # link open in new window switch to it + # Link open in new window switch to it. $Handles = $Selenium->get_window_handles(); $Selenium->switch_to_window( $Handles->[2] ); - # wait until search dialog has been loaded + # Wait until search dialog has been loaded. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#SearchFormSubmit").length' ); - # verify state search attributes are shown in search screen, see bug #10853 + # Verify state search attributes are shown in search screen, see bug #10853. $Selenium->find_element( "#StateIDs", 'css' ); - # close current window and return to original + # Close current window and return to original. $Selenium->close(); $Selenium->WaitFor( WindowCount => 1 ); $Selenium->switch_to_window( $Handles->[0] ); } - # delete created test tickets + # Delete created test tickets. for my $TicketState ( sort keys %TicketData ) { for my $TicketID ( @{ $TicketData{$TicketState}->{TicketIDs} } ) { @@ -203,7 +199,7 @@ } } - # make sure cache is correct + # Make sure cache is correct. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' ); } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/RSS.t otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/RSS.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/RSS.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/RSS.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,14 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # disable all dashboard plugins + # Disable all dashboard plugins. my $Config = $Kernel::OM->Get('Kernel::Config')->Get('DashboardBackend'); $Helper->ConfigSettingChange( Valid => 0, @@ -29,12 +27,49 @@ Value => \%$Config, ); - # get dashboard RSS plugin default sysconfig + # Get dashboard RSS plugin default sysconfig. my %RSSConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'DashboardBackend###0410-RSS', Default => 1, ); + my $RandomRSSTitle = 'RSS' . $Helper->GetRandomID(); + + # Set URL config to xml content in ordr to prevent instability in case cloud services are + # unavailable at the exact moment of this test run. + $RSSConfig{DefaultValue}->{URL} = " + + + + Press Releases – otrs.com| OTRS Simple Service Management + + https://www.otrs.com + Simple service management + Fri, 26 Jan 2018 13:37:52 +0000 + en-EN + hourly + 1 + https://wordpress.org/?v=4.9.2 + + $RandomRSSTitle + https://www.otrs.com/$RandomRSSTitle + Tue, 16 Jan 2018 09:00:07 +0000 + + + + https://www.otrs.com/?p=61580 + +
    ]]> + + + + "; + $Helper->ConfigSettingChange( Valid => 1, Key => 'DashboardBackend###0410-RSS', @@ -48,7 +83,7 @@ Value => 1, ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -59,22 +94,22 @@ Password => $TestUserLogin, ); - # wait for RSS plugin to show up + # Wait for RSS plugin to show up. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("#Dashboard0410-RSS").length' ); - # test if RSS plugin shows correct link - my $RSSLink = "https://www.otrs.com/"; + # Test if RSS feed is shown. $Self->True( - $Selenium->execute_script("return \$('#Dashboard0410-RSS').find(\"a.AsBlock[href*='$RSSLink']\").length;") - > 0, - "RSS dashboard plugin link ($RSSLink) - found", + $Selenium->execute_script( + "return \$('#Dashboard0410-RSS tbody a[href*=\"www.otrs.com/$RandomRSSTitle\"]').text().trim() === '$RandomRSSTitle'" + ), + "RSS feed '$RandomRSSTitle' - found", ); - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw( Dashboard DashboardQueueOverview )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/Stats.t otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/Stats.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/Stats.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/Stats.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,17 +12,16 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $StatsObject = $Kernel::OM->Get('Kernel::System::Stats'); - # disable all dashboard plugins + # Disable all dashboard plugins. my $Config = $ConfigObject->Get('DashboardBackend'); $Helper->ConfigSettingChange( Valid => 0, @@ -36,7 +35,7 @@ Value => 1, ); - # add at least one dashboard setting dashboard sysconfig so dashboard can be loaded + # Add at least one dashboard setting dashboard sysconfig so dashboard can be loaded. $Helper->ConfigSettingChange( Valid => 1, Key => 'DashboardBackend###0400-UserOnline', @@ -56,25 +55,22 @@ }, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users', 'stats' ], ) || die "Did not get test user"; - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get stats object - my $StatsObject = $Kernel::OM->Get('Kernel::System::Stats'); - my $StatisticContent = $Kernel::OM->Get('Kernel::System::Main')->FileRead( Location => $ConfigObject->Get('Home') . '/scripts/test/Selenium/Output/Dashboard/Stats.xml', ); - # import test stats + # Import test stats. my $TestStatID = $StatsObject->Import( Content => $StatisticContent, UserID => $TestUserID, @@ -84,7 +80,7 @@ "Successfully imported StatID $TestStatID", ); - # update test stats name and show as dashboard widget + # Update test stats name and show as dashboard widget. my $TestStatsName = "SeleniumStats" . $Helper->GetRandomID(); my $Update = $StatsObject->StatsUpdate( StatID => $TestStatID, @@ -119,14 +115,18 @@ Password => $TestUserLogin, ); - # enable stats widget on dashboard + # Enable stats widget on dashboard. my $StatsInSettings = "Settings10" . $TestStatID . "-Stats"; - $Selenium->find_element( ".SettingsWidget .Header a", "css" )->VerifiedClick(); + $Selenium->find_element( ".SettingsWidget .Header a", "css" )->click(); $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('.SettingsWidget.Expanded').length;" ); - $Selenium->find_element( "#$StatsInSettings", 'css' )->VerifiedClick(); + $Selenium->find_element( "#$StatsInSettings", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return \$('#$StatsInSettings:checked').length;" + ); + $Selenium->find_element( ".SettingsWidget button", 'css' )->VerifiedClick(); my $CommandObject = $Kernel::OM->Get('Kernel::System::Console::Command::Maint::Stats::Dashboard::Generate'); @@ -181,7 +181,7 @@ "Legend entry for open state found.", ); - # delete test stat + # Delete test stat. $Self->True( $StatsObject->StatsDelete( StatID => $TestStatID, @@ -190,11 +190,11 @@ "Stats is deleted - ID $TestStatID", ); - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw( Stats Dashboard DashboardQueueOverview )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/TicketGenericFilter.t 2018-02-05 23:46:54.000000000 +0000 @@ -119,7 +119,11 @@ else { # Click on column setting filter for the first customer in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->click(); + $Selenium->WaitFor( + JavaScript => + 'return $("div.ColumnSettingsBox").length' + ); # Select the first test 'Customer User ID' as filter for TicketNew generic dashboard overview. my $ParentElement = $Selenium->find_element( "div.ColumnSettingsBox", 'css' ); @@ -158,7 +162,7 @@ ); # Click on column setting filter for 'Customer User ID' in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->click(); sleep 1; # Wait for AJAX to finish. @@ -177,7 +181,11 @@ ); # Click on column setting filter for 'Customer User ID' in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->click(); + $Selenium->WaitFor( + JavaScript => + 'return $("div.ColumnSettingsBox").length' + ); # Select test 'Customer User ID' as filter for TicketNew generic dashboard overview. $ParentElement = $Selenium->find_element( "div.ColumnSettingsBox", 'css' ); @@ -217,7 +225,7 @@ # Cleanup # Click on column setting filter for 'Customer User ID' in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer User ID\' )]")->click(); sleep 1; # wait for AJAX to finish @@ -272,7 +280,11 @@ else { # Click on column setting filter for the first customer in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer ID\' )]")->click(); + $Selenium->WaitFor( + JavaScript => + 'return $("div.ColumnSettingsBox").length' + ); # Select the third test Customer ID as filter for TicketNew generic dashboard overview. my $ParentElement = $Selenium->find_element( "div.ColumnSettingsBox", 'css' ); @@ -311,7 +323,7 @@ ); # Click on column setting filter for CustomerID in TicketNew generic dashboard overview. - $Selenium->find_element("//a[contains(\@title, \'Customer ID\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Customer ID\' )]")->click(); sleep 1; # Wait for AJAX to finish. diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/TicketGeneric.t otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/TicketGeneric.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/TicketGeneric.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/TicketGeneric.t 2018-02-05 23:46:54.000000000 +0000 @@ -13,16 +13,16 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # set fixed time for test purposes + # Set fixed time for test purposes. $Helper->FixedTimeSet( $Kernel::OM->Create( 'Kernel::System::DateTime', @@ -32,23 +32,17 @@ )->ToEpoch(), ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['users'], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # create test queue + # Create test queue. my $QueueName = "Queue" . $Helper->GetRandomID(); my $QueueID = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd( Name => $QueueName, @@ -66,21 +60,24 @@ "Queue is created - ID $QueueID", ); - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AgentPreferences screen + # Navigate to AgentPreferences screen. $Selenium->VerifiedGet( "${ScriptAlias}index.pl?Action=AgentPreferences;Subaction=Group;Group=NotificationSettings" ); - # set MyQueue preferences + # Set MyQueue preferences. $Selenium->execute_script("\$('#QueueID').val('$QueueID').trigger('redraw.InputField').trigger('change');"); - # save the setting, wait for the ajax call to finish and check if success sign is shown + # Save the setting, wait for the ajax call to finish and check if success sign is shown. $Selenium->execute_script( "\$('#QueueID').closest('.WidgetSimple').find('.SettingUpdateBox').find('button').trigger('click');" ); @@ -97,13 +94,10 @@ "return !\$('#QueueID').closest('.WidgetSimple').hasClass('HasOverlay')" ); - # navigate to AgentDashboard screen + # Navigate to AgentDashboard screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentDashboard"); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Selenium Test Ticket', QueueID => $QueueID, @@ -125,7 +119,7 @@ Objects => ['Kernel::System::Ticket'] ); - # wait 5 minutes to have escalation trigger + # Wait 5 minutes to have escalation trigger. $Helper->FixedTimeAddSeconds(300); my %Configs = ( @@ -289,15 +283,15 @@ ); - # create test params + # Create test params. my @Test = ( "0100-TicketPendingReminder", "0110-TicketEscalation", "0120-TicketNew", "0130-TicketOpen" ); - # test if ticket is shown in each dashboard ticket generic plugin + # Test if ticket is shown in each dashboard ticket generic plugin. for my $DashboardName (@Test) { $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # set ticket state depending on the stage in test + # Set ticket state depending on the stage in test. if ( $DashboardName eq '0120-TicketNew' ) { my $Success = $TicketObject->TicketStateSet( State => 'new', @@ -326,7 +320,7 @@ Objects => ['Kernel::System::Ticket'] ); - # disable all dashboard plugins + # Disable all dashboard plugins. my $Config = $ConfigObject->Get('DashboardBackend'); $Helper->ConfigSettingChange( Valid => 0, @@ -334,32 +328,32 @@ Value => \%$Config, ); - # enable current needed dashboard plugin sysconfig + # Enable current needed dashboard plugin sysconfig. $Helper->ConfigSettingChange( Valid => 1, Key => "DashboardBackend###" . $DashboardName, Value => $Configs{$DashboardName}, ); - # refresh dashboard screen and clean it's cache + # Refresh dashboard screen and clean it's cache. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Dashboard', ); $Selenium->VerifiedRefresh(); - # click settings wheel + # Click settings wheel. $Selenium->execute_script("\$('#Dashboard$DashboardName-toggle').trigger('click');"); - # set Priority on visible + # Set Priority on visible. $Selenium->execute_script( "\$('.ColumnsJSON').val('{\"Columns\":{\"Priority\":1},\"Order\":[\"Priority\"]}');" ); - # submit + # Submit. $Selenium->execute_script( "\$('#Dashboard$DashboardName" . "_submit').trigger('click');" ); - # wait until block shows + # Wait until block shows. $Self->True( $Selenium->WaitFor( JavaScript => @@ -369,12 +363,12 @@ "#PriorityOverviewControl$DashboardName is visible." ); - # sort by Priority + # Sort by Priority. $Selenium->execute_script("\$('th.Priority #PriorityOverviewControl$DashboardName').trigger('click');"); sleep 2; - # wait for AJAX to finish + # Wait for AJAX to finish. $Self->True( $Selenium->WaitFor( JavaScript => @@ -384,16 +378,16 @@ ".DashboardHeader.Priority.SortDescendingLarge is visible." ); - # validate that Priority sort is working + # Validate that Priority sort is working. $Self->True( $Selenium->find_element( ".DashboardHeader.Priority.SortDescendingLarge", 'css' ), "Priority sort is working", ); - # set filter by MyQueue + # Set filter by MyQueue. my $Filter = "#Dashboard$DashboardName" . "MyQueues"; $Selenium->WaitFor( JavaScript => "return \$('$Filter:visible').length" ); - $Selenium->find_element( $Filter, 'css' )->VerifiedClick(); + $Selenium->find_element( $Filter, 'css' )->click(); my $TicketFound; @@ -404,11 +398,11 @@ last TICKET_WAIT if $TicketFound; - # Wait 1 second + # Wait 1 second. sleep 1; } - # check for test ticket on current dashboard plugin + # Check for test ticket on current dashboard plugin. $Self->True( $TicketFound, "$DashboardName dashboard plugin test ticket link - found", @@ -417,7 +411,7 @@ $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # delete test tickets + # Delete test tickets. my $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -436,10 +430,9 @@ "Ticket is deleted - ID $TicketID" ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # delete MyQueue from personal_queues + # Delete MyQueue from personal_queues. $Success = $DBObject->Do( SQL => "DELETE FROM personal_queues WHERE queue_id = $QueueID", ); @@ -448,7 +441,7 @@ "Delete MyQueue from personal_queues - ID $QueueID", ); - # delete test queue + # Delete test queue. $Success = $DBObject->Do( SQL => "DELETE FROM queue WHERE id = $QueueID", ); @@ -457,11 +450,11 @@ "Queue is deleted - ID $QueueID", ); - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw(Ticket Queue Dashboard DashboardQueueOverview )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/UserOnline.t otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/UserOnline.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Dashboard/UserOnline.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Dashboard/UserOnline.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,7 +12,6 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -23,13 +22,13 @@ my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); - # get UserOnline config + # Get UserOnline config. my %UserOnlineSysConfig = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'DashboardBackend###0400-UserOnline', Default => 1, ); - # enable UserOnline and set it to load as default plugin + # Enable UserOnline and set it to load as default plugin. $Helper->ConfigSettingChange( Valid => 1, Key => 'DashboardBackend###0400-UserOnline', @@ -57,7 +56,7 @@ # Clean up the dashboard cache. $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Dashboard' ); - # create test user and login + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -76,7 +75,7 @@ 'Only one agent user accounted for' ); - # test UserOnline plugin for agent + # Test UserOnline plugin for agent. my $ExpectedAgent = "$TestUserLogin"; $Self->True( index( $Selenium->get_page_source(), $ExpectedAgent ) > -1, @@ -98,13 +97,12 @@ ); # Switch to online customers and test UserOnline plugin for customers. - $CustomersLink->VerifiedClick(); + $CustomersLink->click(); - # Wait for AJAX - my $ExpectedCustomer = "$TestCustomerUserLogin"; + # Wait for AJAX. $Selenium->WaitFor( JavaScript => - "return typeof(\$) === 'function' && \$('table.DashboardUserOnline a:contains(\"$ExpectedCustomer\")').length;" + "return typeof(\$) === 'function' && \$('table.DashboardUserOnline a:contains(\"$TestCustomerUserLogin\")').length;" ); $Self->True( @@ -116,7 +114,7 @@ $Self->Is( $Selenium->execute_script( - "return \$('table.DashboardUserOnline a:contains(\"$ExpectedCustomer\")').length;" + "return \$('table.DashboardUserOnline a:contains(\"$TestCustomerUserLogin\")').length;" ), 1, "$TestCustomerUserLogin - found on UserOnline plugin" diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t otrs2-6.0.5/scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t --- otrs2-6.0.4/scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/NavBar/AgentTicketProcess.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,48 +12,37 @@ use vars (qw($Self)); -# get process needed objects my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process'); my $TransitionObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Transition'); my $ActivityObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Activity'); my $TransitionActionsObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::TransitionAction'); my $ActivityDialogObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::ActivityDialog'); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # create and log in test user + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - - # get all processes + # Get all processes. my $ProcessList = $ProcessObject->ProcessListGet( UserID => $TestUserID, ); my @DeactivatedProcesses; - # if there had been some active processes before testing,set them to inactive, + # If there had been some active processes before testing,set them to inactive. for my $Process ( @{$ProcessList} ) { if ( $Process->{State} eq 'Active' ) { $ProcessObject->ProcessUpdate( @@ -66,34 +55,44 @@ UserID => $TestUserID, ); - # save process because of restoring on the end of test + # Save process because of restoring on the end of test. push @DeactivatedProcesses, $Process; } } + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # import test selenium process + # Import test selenium process. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/TestProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']")->VerifiedClick(); - # synchronize process + # Synchronize process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # get process list + # Get process list. my $List = $ProcessObject->ProcessList( UseEntities => 1, UserID => $TestUserID, ); - # get process entity + # Get process entity. my %ListReverse = reverse %{$List}; my $ProcessName = "TestProcess"; @@ -102,14 +101,14 @@ UserID => $TestUserID, ); - # check if NavBarAgentTicketProcess button is available when process is available + # Check if NavBarAgentTicketProcess button is available when process is available. $Selenium->VerifiedRefresh(); $Self->True( index( $Selenium->get_page_source(), 'Action=AgentTicketProcess' ) > -1, "NavBar 'New process ticket' button available", ); - # clean up activities + # Clean up activities. my $Success; for my $Item ( @{ $Process->{Activities} } ) { my $Activity = $ActivityObject->ActivityGet( @@ -118,14 +117,14 @@ ActivityDialogNames => 0, ); - # clean up activity dialogs + # Clean up activity dialogs. for my $ActivityDialogItem ( @{ $Activity->{ActivityDialogs} } ) { my $ActivityDialog = $ActivityDialogObject->ActivityDialogGet( EntityID => $ActivityDialogItem, UserID => $TestUserID, ); - # delete test activity dialog + # Delete test activity dialog. $Success = $ActivityDialogObject->ActivityDialogDelete( ID => $ActivityDialog->{ID}, UserID => $TestUserID, @@ -136,7 +135,7 @@ ); } - # delete test activity + # Delete test activity. $Success = $ActivityObject->ActivityDelete( ID => $Activity->{ID}, UserID => $TestUserID, @@ -148,14 +147,14 @@ ); } - # clean up transition actions + # Clean up transition actions. for my $Item ( @{ $Process->{TransitionActions} } ) { my $TransitionAction = $TransitionActionsObject->TransitionActionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition action + # Delete test transition action. $Success = $TransitionActionsObject->TransitionActionDelete( ID => $TransitionAction->{ID}, UserID => $TestUserID, @@ -167,14 +166,14 @@ ); } - # clean up transition + # Clean up transition. for my $Item ( @{ $Process->{Transitions} } ) { my $Transition = $TransitionObject->TransitionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition + # Delete test transition. $Success = $TransitionObject->TransitionDelete( ID => $Transition->{ID}, UserID => $TestUserID, @@ -186,7 +185,7 @@ ); } - # delete test process + # Delete test process. $Success = $ProcessObject->ProcessDelete( ID => $Process->{ID}, UserID => $TestUserID, @@ -200,18 +199,18 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # check if NavBarAgentTicketProcess button is not available when no process is available + # Check if NavBarAgentTicketProcess button is not available when no process is available. $Selenium->VerifiedRefresh(); $Self->True( index( $Selenium->get_page_source(), 'Action=AgentTicketProcess' ) == -1, "'New process ticket' button NOT available when no process is active when no process is available", ); - # check if NavBarAgentTicketProcess button is available - # when NavBarAgentTicketProcess module is disabled and no process is available + # Check if NavBarAgentTicketProcess button is available + # When NavBarAgentTicketProcess module is disabled and no process is available. my %NavBarAgentTicketProcess = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'Frontend::NavBarModule###1-TicketProcesses', ); @@ -227,7 +226,7 @@ "'New process ticket' button IS available when no process is active, but NavBarAgentTicketProcess is disabled", ); - # restore state of process + # Restore state of process. for my $Process (@DeactivatedProcesses) { $ProcessObject->ProcessUpdate( ID => $Process->{ID}, @@ -240,20 +239,19 @@ ); } - # synchronize process after deleting test process + # Synchronize process after deleting test process. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # make sure the cache is correct. + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache ( qw (ProcessManagement_Activity ProcessManagement_ActivityDialog ProcessManagement_Transition ProcessManagement_TransitionAction ) ) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t otrs2-6.0.5/scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t --- otrs2-6.0.4/scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/NavBar/CustomerTicketProcess.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,48 +12,37 @@ use vars (qw($Self)); -# get process needed objects my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process'); my $TransitionObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Transition'); my $ActivityObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Activity'); my $TransitionActionsObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::TransitionAction'); my $ActivityDialogObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::ActivityDialog'); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # create and log in test user + # Create and log in test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - - # get all processes + # Get all processes. my $ProcessList = $ProcessObject->ProcessListGet( UserID => $TestUserID, ); my @DeactivatedProcesses; - # if there had been some active processes before testing,set them to inactive, + # If there had been some active processes before testing,set them to inactive. for my $Process ( @{$ProcessList} ) { if ( $Process->{State} eq 'Active' ) { $ProcessObject->ProcessUpdate( @@ -66,34 +55,44 @@ UserID => $TestUserID, ); - # save process because of restoring on the end of test + # Save process because of restoring on the end of test. push @DeactivatedProcesses, $Process; } } + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # import test selenium process + # Import test selenium process. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/TestProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']")->VerifiedClick(); - # synchronize process + # Synchronize process. $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # get process list + # Get process list. my $List = $ProcessObject->ProcessList( UseEntities => 1, UserID => $TestUserID, ); - # get process entity + # Get process entity. my %ListReverse = reverse %{$List}; my $ProcessName = "TestProcess"; @@ -102,7 +101,7 @@ UserID => $TestUserID, ); - # create and log in test customer user + # Create and log in test customer user. my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test customer user"; @@ -113,14 +112,14 @@ Password => $TestCustomerUserLogin, ); - # check if NavBarCustomerTicketProcess button is available when process is available + # Check if NavBarCustomerTicketProcess button is available when process is available. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketOverview;Subaction=MyTickets"); $Self->True( index( $Selenium->get_page_source(), 'Action=CustomerTicketProcess' ) > -1, "NavBar 'New process ticket' button available", ); - # clean up activities + # Clean up activities. my $Success; for my $Item ( @{ $Process->{Activities} } ) { my $Activity = $ActivityObject->ActivityGet( @@ -129,14 +128,14 @@ ActivityDialogNames => 0, ); - # clean up activity dialogs + # Clean up activity dialogs. for my $ActivityDialogItem ( @{ $Activity->{ActivityDialogs} } ) { my $ActivityDialog = $ActivityDialogObject->ActivityDialogGet( EntityID => $ActivityDialogItem, UserID => $TestUserID, ); - # delete test activity dialog + # Delete test activity dialog. $Success = $ActivityDialogObject->ActivityDialogDelete( ID => $ActivityDialog->{ID}, UserID => $TestUserID, @@ -147,7 +146,7 @@ ); } - # delete test activity + # Delete test activity. $Success = $ActivityObject->ActivityDelete( ID => $Activity->{ID}, UserID => $TestUserID, @@ -159,14 +158,14 @@ ); } - # clean up transition actions + # Clean up transition actions. for my $Item ( @{ $Process->{TransitionActions} } ) { my $TransitionAction = $TransitionActionsObject->TransitionActionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition action + # Delete test transition action. $Success = $TransitionActionsObject->TransitionActionDelete( ID => $TransitionAction->{ID}, UserID => $TestUserID, @@ -178,14 +177,14 @@ ); } - # clean up transition + # Clean up transition. for my $Item ( @{ $Process->{Transitions} } ) { my $Transition = $TransitionObject->TransitionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition + # Delete test transition. $Success = $TransitionObject->TransitionDelete( ID => $Transition->{ID}, UserID => $TestUserID, @@ -197,7 +196,7 @@ ); } - # delete test process + # Delete test process. $Success = $ProcessObject->ProcessDelete( ID => $Process->{ID}, UserID => $TestUserID, @@ -208,7 +207,7 @@ "Process deleted - $Process->{Name},", ); - # log in user in order to sync processes after removing it + # Log in user in order to sync processes after removing it. $Selenium->Login( Type => 'Agent', User => $TestUserLogin, @@ -218,25 +217,25 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # log in customer + # Log in customer. $Selenium->Login( Type => 'Customer', User => $TestCustomerUserLogin, Password => $TestCustomerUserLogin, ); - # check if NavBarCustomerTicketProcess button is not available when no process is available + # Check if NavBarCustomerTicketProcess button is not available when no process is available. $Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketOverview;Subaction=MyTickets"); $Self->True( index( $Selenium->get_page_source(), 'Action=AgentTicketProcess' ) == -1, "'New process ticket' button NOT available when no process is available", ); - # check if NavBarCustomerTicketProcess button is available - # when NavBarCustomerTicketProcess module is disabled and no process is available + # Check if NavBarCustomerTicketProcess button is available + # when NavBarCustomerTicketProcess module is disabled and no process is available. my %NavBarCustomerTicketProcess = $Kernel::OM->Get('Kernel::System::SysConfig')->SettingGet( Name => 'CustomerFrontend::NavBarModule###10-CustomerTicketProcesses', ); @@ -252,7 +251,7 @@ "'New process ticket' button IS available when no process is active and NavBarCustomerTicketProcess is disabled", ); - # restore state of process + # Restore state of process. for my $Process (@DeactivatedProcesses) { $ProcessObject->ProcessUpdate( ID => $Process->{ID}, @@ -265,25 +264,25 @@ ); } - # synchronize process after deleting test process + # Synchronize process after deleting test process. $Selenium->Login( Type => 'Agent', User => $TestUserLogin, Password => $TestUserLogin, ); - # synchronize process after deleting test process + # Synchronize process after deleting test process. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # make sure the cache is correct. + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache ( qw (ProcessManagement_Activity ProcessManagement_ActivityDialog ProcessManagement_Transition ProcessManagement_TransitionAction ) ) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t otrs2-6.0.5/scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Preferences/Agent/OutOfOffice.t 2018-02-05 23:46:54.000000000 +0000 @@ -13,7 +13,6 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( @@ -28,7 +27,7 @@ Value => 'UTC', ); - # create and login test user + # Create and login test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; @@ -39,10 +38,9 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # go to agent preferences + # Go to agent preferences. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentPreferences;Subaction=Group;Group=UserProfile"); # Change test user time zone preference to -5 hours. Displayed out of office date values @@ -66,8 +64,8 @@ "return !\$('#UserTimeZone').closest('.WidgetSimple').hasClass('HasOverlay')" ); - # reload the screen - $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentPreferences;Subaction=Group;Group=UserProfile"); + # Reload the screen. + $Selenium->VerifiedRefresh(); # Get current date and time components. my $DateTimeObject = $Kernel::OM->Create( @@ -76,7 +74,12 @@ my $Date = $DateTimeObject->Get(); # Change test user out of office preference to current date. - $Selenium->find_element( "#OutOfOfficeOn", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OutOfOfficeOn", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => + "return typeof(\$) === 'function' && \$('#OutOfOfficeOn:checked').length" + ); + for my $FieldGroup (qw(Start End)) { for my $FieldType (qw(Year Month Day)) { $Selenium->execute_script( @@ -100,8 +103,8 @@ "return !\$('#OutOfOfficeOn').closest('.WidgetSimple').hasClass('HasOverlay')" ); - # reload the screen - $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentPreferences;Subaction=Group;Group=UserProfile"); + # Reload the screen. + $Selenium->VerifiedRefresh(); # Check displayed date and time values. for my $FieldGroup (qw(Start End)) { @@ -114,7 +117,7 @@ } } - # set start time after end time, see bug #8220 + # Set start time after end time, see bug #8220. my $StartYear = $Date->{Year} + 2; $Selenium->execute_script( "\$('#OutOfOfficeStartYear').val('$StartYear').trigger('change');" diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/MenuProcess.t otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/MenuProcess.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/MenuProcess.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/MenuProcess.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,41 +12,33 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process'); + my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - # get test user ID + # Get test user ID. my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( UserLogin => $TestUserLogin, ); - # get process object - my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process'); - - # get all processes + # Get all processes. my $ProcessList = $ProcessObject->ProcessListGet( UserID => $TestUserID, ); my @DeactivatedProcesses; - # if there had been some active processes before testing,set them to inactive, + # If there had been some active processes before testing,set them to inactive. for my $Process ( @{$ProcessList} ) { if ( $Process->{State} eq 'Active' ) { $ProcessObject->ProcessUpdate( @@ -59,34 +51,41 @@ UserID => $TestUserID, ); - # save process because of restoring on the end of test + # Save process because of restoring on the end of test. push @DeactivatedProcesses, $Process; } } - # get config object - my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); - # import test selenium process + # Import test selenium process. my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); my $Location = $ConfigObject->Get('Home') . "/scripts/test/sample/ProcessManagement/TestProcess.yml"; $Selenium->find_element( "#FileUpload", 'css' )->send_keys($Location); - $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->VerifiedClick(); + $Selenium->find_element( "#OverwriteExistingEntitiesImport", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => "return typeof(\$) === 'function' && !\$('#OverwriteExistingEntitiesImport:checked').length" + ); $Selenium->find_element("//button[\@value='Upload process configuration'][\@type='submit']")->VerifiedClick(); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # get process list + # Get process list. my $List = $ProcessObject->ProcessList( UseEntities => 1, UserID => $TestUserID, ); - # get process entity + # Get process entity. my %ListReverse = reverse %{$List}; my $ProcessName = "TestProcess"; @@ -95,10 +94,7 @@ UserID => $TestUserID, ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TicketID = $TicketObject->TicketCreate( Title => 'Some Ticket Title', Queue => 'Raw', @@ -116,10 +112,10 @@ "Ticket is created - $TicketID" ); - # go to test created ticket zoom + # Go to test created ticket zoom. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # check if process enroll is available for test ticket + # Check if process enroll is available for test ticket. $Self->True( $Selenium->find_element( "//a[contains(\@href, \'Action=AgentTicketProcess;IsProcessEnroll=1;TicketID=$TicketID' )]" @@ -127,7 +123,6 @@ "Ticket menu Process Enroll - found" ); - # get needed objects my $TransitionObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Transition'); my $ActivityObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Activity'); my $TransitionActionsObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::TransitionAction'); @@ -135,7 +130,7 @@ my $Success; - # clean up activities + # Clean up activities. for my $Item ( @{ $Process->{Activities} } ) { my $Activity = $ActivityObject->ActivityGet( EntityID => $Item, @@ -143,14 +138,14 @@ ActivityDialogNames => 0, ); - # clean up activity dialogs + # Clean up activity dialogs. for my $ActivityDialogItem ( @{ $Activity->{ActivityDialogs} } ) { my $ActivityDialog = $ActivityDialogObject->ActivityDialogGet( EntityID => $ActivityDialogItem, UserID => $TestUserID, ); - # delete test activity dialog + # Delete test activity dialog. $Success = $ActivityDialogObject->ActivityDialogDelete( ID => $ActivityDialog->{ID}, UserID => $TestUserID, @@ -161,7 +156,7 @@ ); } - # delete test activity + # Delete test activity. $Success = $ActivityObject->ActivityDelete( ID => $Activity->{ID}, UserID => $TestUserID, @@ -173,14 +168,14 @@ ); } - # clean up transition actions + # Clean up transition actions. for my $Item ( @{ $Process->{TransitionActions} } ) { my $TransitionAction = $TransitionActionsObject->TransitionActionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition action + # Delete test transition action. $Success = $TransitionActionsObject->TransitionActionDelete( ID => $TransitionAction->{ID}, UserID => $TestUserID, @@ -192,14 +187,14 @@ ); } - # clean up transition + # Clean up transition. for my $Item ( @{ $Process->{Transitions} } ) { my $Transition = $TransitionObject->TransitionGet( EntityID => $Item, UserID => $TestUserID, ); - # delete test transition + # Delete test transition. $Success = $TransitionObject->TransitionDelete( ID => $Transition->{ID}, UserID => $TestUserID, @@ -211,7 +206,7 @@ ); } - # delete test process + # Delete test process. $Success = $ProcessObject->ProcessDelete( ID => $Process->{ID}, UserID => $TestUserID, @@ -225,20 +220,20 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AdminProcessManagement"); $Selenium->find_element("//a[contains(\@href, \'Subaction=ProcessSync' )]")->VerifiedClick(); - # we have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache + # We have to allow a 1 second delay for Apache2::Reload to pick up the changed process cache. sleep 1; - # go to test created ticket zoom + # Go to test created ticket zoom. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # check if process enroll is not available for test ticket + # Check if process enroll is not available for test ticket. $Self->True( index( $Selenium->get_page_source(), "Action=AgentTicketProcess;IsProcessEnroll=1;TicketID=$TicketID" ) == -1, "Ticket menu Process Enroll - not found" ); - # delete created test tickets + # Delete created test tickets. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => $TestUserID, @@ -248,7 +243,7 @@ "Delete ticket - $TicketID" ); - # restore state of process + # Restore state of process. for my $Process (@DeactivatedProcesses) { $ProcessObject->ProcessUpdate( ID => $Process->{ID}, @@ -261,14 +256,14 @@ ); } - # make sure the cache is correct. + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache ( qw (ProcessManagement_Activity ProcessManagement_ActivityDialog ProcessManagement_Transition ProcessManagement_TransitionAction Ticket) ) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewMedium.t otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewMedium.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewMedium.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewMedium.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,23 +12,23 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); + my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - # get sort attributes config params + # Get sort attributes config params. my %SortOverview = ( Age => 1, Title => 1, TicketNumber => 1, ); - # defines from which ticket attributes the agent can select the result order + # Defines from which ticket attributes the agent can select the result order. $Helper->ConfigSettingChange( Key => 'TicketOverviewMenuSort###SortAttributes', Value => \%SortOverview, @@ -47,20 +47,12 @@ Value => 3, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - - # get test user ID + # Get test user ID. my $TestUserID = $UserObject->UserLookup( UserLogin => $TestUserLogin, ); @@ -70,7 +62,7 @@ UserID => $TestUserID, ); - # create test queue + # Create test queue. my $QueueName = 'Queue' . $Helper->GetRandomID(); my $QueueID = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd( Name => $QueueName, @@ -87,10 +79,7 @@ "QueueAdd() successful for test $QueueName - ID $QueueID", ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test tickets + # Create test tickets. my @TicketIDs; my @TicketNumbers; for my $Ticket ( 1 .. 15 ) { @@ -118,11 +107,18 @@ } my @SortTicketNumbers = sort @TicketNumbers; - # go to queue ticket overview + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + # Go to queue ticket overview. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketQueue;QueueID=$QueueID;View="); - # switch to medium view + # Switch to medium view. $Selenium->find_element( "a.Medium", 'css' )->VerifiedClick(); # Check if owner name conforms to current FirstnameLastNameOrder setting. @@ -131,26 +127,32 @@ "$TestUser{UserFullname} - found on screen" ); - # sort by ticket number + # Sort by ticket number. $Selenium->execute_script( "\$('#SortBy').val('TicketNumber|Up').trigger('redraw.InputField').trigger('change');" ); - # wait for page reload after changing sort param + # Wait for page reload after changing sort param. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("a[href*=\'SortBy=TicketNumber;OrderBy=Up\']").length' ); - # set 10 tickets per page - $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->VerifiedClick(); + # Set 10 tickets per page. + $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $(".Dialog.Modal #UserTicketOverviewMediumPageShown").length' + ); $Selenium->execute_script( "\$('#UserTicketOverviewMediumPageShown').val('10').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return !$(".Dialog.Modal").length' + ); - # check for ticket with lowest ticket number on first 1st page and verify that ticket - # with highest ticket number number is not present + # Check for ticket with lowest ticket number on first 1st page and verify that ticket + # with highest ticket number is not present. $Self->True( index( $Selenium->get_page_source(), $SortTicketNumbers[0] ) > -1, "$SortTicketNumbers[0] - found on screen" @@ -160,16 +162,16 @@ "$SortTicketNumbers[14] - not found on screen" ); - # switch to 2nd page to test pagination + # Switch to 2nd page to test pagination. $Selenium->find_element( "#AgentTicketQueuePage2", 'css' )->VerifiedClick(); - # check for ticket with highest ticket number + # Check for ticket with highest ticket number. $Self->True( index( $Selenium->get_page_source(), $SortTicketNumbers[14] ) > -1, "$SortTicketNumbers[14] - found on screen" ); - # check if settings are stored when switching between view + # Check if settings are stored when switching between view. $Selenium->find_element( "a.Large", 'css' )->VerifiedClick(); $Selenium->find_element( "a.Medium", 'css' )->VerifiedClick(); $Self->True( @@ -181,7 +183,7 @@ "$SortTicketNumbers[14] - not found on screen after changing views" ); - # delete created test tickets + # Delete created test tickets. my $Success; for my $TicketID (@TicketIDs) { $Success = $TicketObject->TicketDelete( @@ -194,7 +196,7 @@ ); } - # delete created test queue + # Delete created test queue. $Success = $Kernel::OM->Get('Kernel::System::DB')->Do( SQL => "DELETE FROM queue WHERE id = $QueueID", ); @@ -203,13 +205,12 @@ "Delete queue - $QueueID", ); - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw( Ticket Queue )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewPreview.t otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewPreview.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewPreview.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewPreview.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,23 +12,24 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $UserObject = $Kernel::OM->Get('Kernel::System::User'); + my $AutoResponseObject = $Kernel::OM->Get('Kernel::System::AutoResponse'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # get sort attributes config params + # Get sort attributes config params. my %SortOverview = ( Age => 1, Title => 1, TicketNumber => 1, ); - # defines from which ticket attributes the agent can select the result order + # Defines from which ticket attributes the agent can select the result order. $Helper->ConfigSettingChange( Key => 'TicketOverviewMenuSort###SortAttributes', Value => \%SortOverview, @@ -52,21 +53,13 @@ Value => 5, ); - # create test user and login + # Create test user. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; - $Selenium->Login( - Type => 'Agent', - User => $TestUserLogin, - Password => $TestUserLogin, - ); - - my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - - # get test user ID - my $TestUserID = $Kernel::OM->Get('Kernel::System::User')->UserLookup( + # Get test user ID + my $TestUserID = $UserObject->UserLookup( UserLogin => $TestUserLogin, ); @@ -77,7 +70,7 @@ my $RandomID = $Helper->GetRandomID(); - # create test queue + # Create test queue. my $QueueName = 'Queue' . $RandomID; my $QueueID = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd( Name => $QueueName, @@ -94,9 +87,7 @@ "QueueAdd() successful for test $QueueName - ID $QueueID", ); - my $AutoResponseObject = $Kernel::OM->Get('Kernel::System::AutoResponse'); - - # create auto response + # Create auto response. my $AutoResponseID = $AutoResponseObject->AutoResponseAdd( Name => 'AutoResponse' . $RandomID, ValidID => 1, @@ -122,14 +113,9 @@ "Auto response added for created queue.", ); - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Ticket::Article')->BackendForChannel( - ChannelName => 'Email', - ); - $TicketObject->{SendNoNotification} = 0; - # create test tickets + # Create test tickets. my @TicketIDs; my @TicketNumbers; for my $Ticket ( 1 .. 15 ) { @@ -159,9 +145,13 @@ my $RandomNumber = $Helper->GetRandomNumber(); + my $ArticleBackendObject = $Kernel::OM->Get('Kernel::System::Ticket::Article')->BackendForChannel( + ChannelName => 'Email', + ); + for my $Index (qw(0 1 2)) { - # Add articles to the tickets + # Add articles to tickets. my $ArticleID1 = $ArticleBackendObject->ArticleCreate( TicketID => $TicketIDs[$Index], SenderType => 'customer', @@ -188,7 +178,7 @@ "First article created for ticket# $Index", ); - # only for third ticket add agent article + # Only for third ticket add agent article. if ( $Index > 1 ) { my $ArticleID2 = $ArticleBackendObject->ArticleCreate( TicketID => $TicketIDs[$Index], @@ -210,7 +200,14 @@ } } - # go to queue ticket overview + # Login as test user. + $Selenium->Login( + Type => 'Agent', + User => $TestUserLogin, + Password => $TestUserLogin, + ); + + # Go to queue ticket overview. my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketQueue;QueueID=$QueueID;View="); @@ -223,26 +220,32 @@ "$TestUser{UserFullname} - found on screen" ); - # sort by ticket number + # Sort by ticket number. $Selenium->execute_script( "\$('#SortBy').val('TicketNumber|Up').trigger('redraw.InputField').trigger('change');" ); - # wait for page reload after changing sort param + # Wait for page reload after changing sort param. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("a[href*=\'SortBy=TicketNumber;OrderBy=Up\']").length' ); - # set 10 tickets per page - $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->VerifiedClick(); + # Set 10 tickets per page. + $Selenium->find_element( "a#ShowContextSettingsDialog", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $(".Dialog.Modal #UserTicketOverviewPreviewPageShown").length' + ); $Selenium->execute_script( "\$('#UserTicketOverviewPreviewPageShown').val('10').trigger('redraw.InputField').trigger('change');" ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return !$(".Dialog.Modal").length' + ); - # check for ticket with lowest ticket number on first 1st page and verify that ticket - # with highest ticket number number is not present + # Check for ticket with lowest ticket number on first 1st page and verify that ticket + # with highest ticket number number is not present. $Self->True( index( $Selenium->get_page_source(), $SortTicketNumbers[0] ) > -1, "$SortTicketNumbers[0] - found on screen" @@ -252,16 +255,16 @@ "$SortTicketNumbers[14] - not found on screen" ); - # switch to 2nd page to test pagination + # Switch to 2nd page to test pagination. $Selenium->find_element( "#AgentTicketQueuePage2", 'css' )->VerifiedClick(); - # check for ticket with highest ticket number + # Check for ticket with highest ticket number. $Self->True( index( $Selenium->get_page_source(), $SortTicketNumbers[14] ) > -1, "$SortTicketNumbers[14] - found on screen" ); - # check if settings are stored when switching between view + # Check if settings are stored when switching between view. $Selenium->find_element( "a.Medium", 'css' )->VerifiedClick(); $Selenium->find_element( "a.Large", 'css' )->VerifiedClick(); $Self->True( @@ -273,7 +276,7 @@ "$SortTicketNumbers[14] - not found on screen after changing views" ); - # check which articles are selected + # Check which articles are selected. my $SelectedArticle1 = $Selenium->execute_script( "return \$('li#TicketID_" . $TicketIDs[0] . " .Preview li.Active').index();", ); @@ -301,28 +304,28 @@ "Selected article for Third ticket is OK.", ); - # update Ticket::NewArticleIgnoreSystemSender + # Update Ticket::NewArticleIgnoreSystemSender. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::NewArticleIgnoreSystemSender', Value => 1, ); - # reload the page + # Reload the page. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketQueue;QueueID=$QueueID;View="); - # sort by ticket number + # Sort by ticket number. $Selenium->execute_script( "\$('#SortBy').val('TicketNumber|Up').trigger('redraw.InputField').trigger('change');" ); - # wait for page reload after changing sort param + # Wait for page reload after changing sort param. $Selenium->WaitFor( JavaScript => 'return typeof($) === "function" && $("a[href*=\'SortBy=TicketNumber;OrderBy=Up\']").length' ); - # check which articles are selected + # Check which articles are selected. $SelectedArticle1 = $Selenium->execute_script( "return \$('li#TicketID_" . $TicketIDs[0] . " .Preview li.Active').index();", ); @@ -350,7 +353,7 @@ "Selected article for Third ticket is OK(Ticket::NewArticleIgnoreSystemSender enabled).", ); - # delete created test tickets + # Delete created test tickets. my $Success; for my $TicketID (@TicketIDs) { $Success = $TicketObject->TicketDelete( @@ -365,7 +368,7 @@ my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # delete auto response links(queue) + # Delete auto response links(queue). $Success = $DBObject->Do( SQL => "DELETE FROM queue_auto_response WHERE auto_response_id = $AutoResponseID", ); @@ -374,7 +377,7 @@ "Delete auto response links - $AutoResponseID", ); - # delete created auto response + # Delete created auto response. $Success = $DBObject->Do( SQL => "DELETE FROM auto_response WHERE id = $AutoResponseID", ); @@ -383,7 +386,7 @@ "Delete auto response - $AutoResponseID", ); - # delete created test queue + # Delete created test queue. $Success = $DBObject->Do( SQL => "DELETE FROM queue WHERE id = $QueueID", ); @@ -392,11 +395,11 @@ "Delete queue - $QueueID", ); - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw( Ticket Queue )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewSmall.t otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewSmall.t --- otrs2-6.0.4/scripts/test/Selenium/Output/Ticket/OverviewSmall.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/Ticket/OverviewSmall.t 2018-02-05 23:46:54.000000000 +0000 @@ -140,7 +140,7 @@ $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketStatusView"); # Set filter to test queue. - $Selenium->find_element("//a[contains(\@title, \'Queue, filter not active\' )]")->VerifiedClick(); + $Selenium->find_element("//a[contains(\@title, \'Queue, filter not active\' )]")->click(); $Selenium->WaitFor( JavaScript => "return typeof(\$) === 'function' && \$('#ColumnFilterQueue option[value=\"$QueueID\"]').length;" @@ -153,7 +153,10 @@ ); # Set tickets per page to 10. - $Selenium->find_element( "#ShowContextSettingsDialog", 'css' )->VerifiedClick(); + $Selenium->find_element( "#ShowContextSettingsDialog", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return $(".Dialog.Modal #UserTicketOverviewSmallPageShown").length' + ); $Selenium->execute_script( "\$('#UserTicketOverviewSmallPageShown').val('10').trigger('redraw.InputField').trigger('change');" ); @@ -172,7 +175,10 @@ }, ); - $Selenium->find_element( "#DialogButton1", 'css' )->VerifiedClick(); + $Selenium->find_element( "#DialogButton1", 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return !$(".Dialog.Modal").length' + ); # Sort by ticket number, order down. $Selenium->find_element("//a[contains(\@title, \'TicketNumber\' )]")->VerifiedClick(); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t --- otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/CustomerInformation.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # disable 'Ticket Information', 'Customer Information' and 'Linked Object' widgets in AgentTicketZoom screen + # Disable 'Ticket Information', 'Customer Information' and 'Linked Object' widgets in AgentTicketZoom screen. for my $WidgetDisable (qw(0100-TicketInformation 0200-CustomerInformation 0300-LinkTable)) { $Helper->ConfigSettingChange( Valid => 0, @@ -30,13 +29,13 @@ ); } - # do not check email addresses + # Do not check email addresses. $Helper->ConfigSettingChange( Key => 'CheckEmailAddresses', Value => 0, ); - # get test customer data + # Get test customer data. my $RandomID = $Helper->GetRandomID(); my %CustomerData = ( CustomerFirstName => "FirstName$RandomID", @@ -51,7 +50,7 @@ CompanyComment => "Comment$RandomID", ); - # create test customer company + # Create test customer company. my $CompanyNameID = "CompanyID$RandomID"; my $CustomerCompanyID = $Kernel::OM->Get('Kernel::System::CustomerCompany')->CustomerCompanyAdd( CustomerID => $CompanyNameID, @@ -69,7 +68,7 @@ "CustomerCompanyID $CustomerCompanyID is created" ); - # create test customer user + # Create test customer user. my $CustomerUserID = $Kernel::OM->Get('Kernel::System::CustomerUser')->CustomerUserAdd( Source => 'CustomerUser', UserFirstname => $CustomerData{CustomerFirstName}, @@ -85,10 +84,7 @@ "CustomerUserID $CustomerUserID is created" ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create test ticket + # Create test ticket. my $TitleRandom = "Title" . $Helper->GetRandomID(); my $TicketID = $TicketObject->TicketCreate( Title => $TitleRandom, @@ -106,7 +102,7 @@ "TicketID $TicketID is created", ); - # create and login test user + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -117,25 +113,24 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AgentTicketZoom for test created ticket + # Navigate to AgentTicketZoom for test created ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # verify its right screen + # Verify its right screen. $Self->True( index( $Selenium->get_page_source(), $TitleRandom ) > -1, "Ticket $TitleRandom found on page", ); - # verify there is no 'Customer Information' widget, it's disabled + # Verify there is no 'Customer Information' widget, it's disabled. $Self->True( index( $Selenium->get_page_source(), "$CustomerData{CustomerFirstName}" ) == -1, "Customer Information widget is disabled", ); - # reset 'Customer Information' widget sysconfig, enable it and refresh screen + # Reset 'Customer Information' widget sysconfig, enable it and refresh screen. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketZoom###Widgets###0200-CustomerInformation', @@ -147,14 +142,14 @@ $Selenium->VerifiedRefresh(); - # verify there is 'Customer Information' widget, it's enabled + # Verify there is 'Customer Information' widget, it's enabled. $Self->Is( $Selenium->find_element( '.Header>h2', 'css' )->get_text(), 'Customer Information', 'Customer Information widget is enabled', ); - # verify 'Customer Information' widget values + # Verify 'Customer Information' widget values. for my $CustomerInformationCheck ( sort keys %CustomerData ) { $Self->True( $Selenium->find_element("//p[contains(\@title, \'$CustomerData{$CustomerInformationCheck}' )]"), @@ -162,32 +157,35 @@ ); } - # verify there is link to CustomerCompany ticket search + # Verify there is link to CustomerCompany ticket search. $Self->True( $Selenium->find_element("//a[contains(\@href, \'CustomerIDRaw=$CompanyNameID;StateType=Open\')]"), "Found Ticket search link in Customer Information" ); - # verify there is no collapsed elements on the screen + # Verify there is no collapsed elements on the screen. $Self->True( $Selenium->find_element("//div[contains(\@class, \'WidgetSimple Expanded')]"), "Customer Information Widget is expanded" ); - # toggle to collapse 'Customer Information' widget - $Selenium->find_element("//a[contains(\@title, \'Show or hide the content' )]")->VerifiedClick(); + # Toggle to collapse 'Customer Information' widget. + $Selenium->find_element("//a[contains(\@title, \'Show or hide the content' )]")->click(); - # verify there is collapsed element on the screen + $Selenium->WaitFor( + JavaScript => 'return $("div.WidgetSimple.Collapsed").length' + ); + + # Verify there is collapsed element on the screen. $Self->True( $Selenium->find_element("//div[contains(\@class, \'WidgetSimple Collapsed')]"), "Customer Information Widget is collapsed" ); - # cleanup test data - # get DB object + # Cleanup test data. my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # delete test customer user + # Delete test customer user. $CustomerData{CustomerLogin} = $DBObject->Quote( $CustomerData{CustomerLogin} ); my $Success = $DBObject->Do( SQL => "DELETE FROM customer_user WHERE login = ?", @@ -198,7 +196,7 @@ "Customer user $CustomerData{CustomerLogin} is deleted", ); - # delete test customer company + # Delete test customer company. $CompanyNameID = $DBObject->Quote($CompanyNameID); $Success = $DBObject->Do( SQL => "DELETE FROM customer_company WHERE customer_id = ?", @@ -209,7 +207,7 @@ "Customer company $CompanyNameID is deleted", ); - # clean up test data from the DB + # Clean up test data from the DB. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -228,11 +226,11 @@ "TicketID $TicketID is deleted" ); - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw(Ticket CustomerCompany CustomerUser)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/LinkTable.t otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/LinkTable.t --- otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/LinkTable.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/LinkTable.t 2018-02-05 23:46:54.000000000 +0000 @@ -12,16 +12,16 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get helper object - my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); + my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); + my $LinkObject = $Kernel::OM->Get('Kernel::System::LinkObject'); - # disable 'Ticket Information', 'Customer Information' and 'Linked Objects' widgets in AgentTicketZoom screen + # Disable 'Ticket Information', 'Customer Information' and 'Linked Objects' widgets in AgentTicketZoom screen. for my $WidgetDisable (qw(0100-TicketInformation 0200-CustomerInformation 0300-LinkTable)) { $Helper->ConfigSettingChange( Valid => 0, @@ -30,17 +30,14 @@ ); } - # set 'Linked Objects' widget to simple view + # Set 'Linked Objects' widget to simple view. $Helper->ConfigSettingChange( Valid => 1, Key => 'LinkObject::ViewMode', Value => 'Simple', ); - # get ticket object - my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - - # create three test tickets + # Create three test tickets. my @TicketTitles; my @TicketIDs; for my $TicketCreate ( 1 .. 3 ) { @@ -63,10 +60,7 @@ push @TicketIDs, $TicketID; } - # get link object - my $LinkObject = $Kernel::OM->Get('Kernel::System::LinkObject'); - - # link first and second ticket as parent-child + # Link first and second ticket as parent-child. my $Success = $LinkObject->LinkAdd( SourceObject => 'Ticket', SourceKey => $TicketIDs[0], @@ -81,7 +75,7 @@ "TickedID $TicketIDs[0] and $TicketIDs[1] linked as parent-child" ); - # link second and third ticket as parent-child + # Link second and third ticket as parent-child. $Success = $LinkObject->LinkAdd( SourceObject => 'Ticket', SourceKey => $TicketIDs[1], @@ -96,7 +90,7 @@ "TickedID $TicketIDs[1] and $TicketIDs[2] linked as parent-child" ); - # create and login test user + # Create test user and login. my $TestUserLogin = $Helper->TestUserCreate( Groups => [ 'admin', 'users' ], ) || die "Did not get test user"; @@ -107,25 +101,24 @@ Password => $TestUserLogin, ); - # get script alias my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias'); - # navigate to AgentTicketZoom for test created second ticket + # Navigate to AgentTicketZoom for test created second ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketIDs[1]"); - # verify it is right screen + # Verify it is right screen. $Self->True( index( $Selenium->get_page_source(), $TicketTitles[1] ) > -1, "Ticket $TicketTitles[1] found on page", ); - # verify there is no 'Linked Objects' widget, it's disabled + # Verify there is no 'Linked Objects' widget, it's disabled. $Self->True( index( $Selenium->get_page_source(), "Linked Objects" ) == -1, "Linked Objects widget is disabled", ); - # reset 'Linked Objects' widget sysconfig, enable it and refresh screen + # Reset 'Linked Objects' widget sysconfig, enable it and refresh screen. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketZoom###Widgets###0300-LinkTable', @@ -136,14 +129,14 @@ $Selenium->VerifiedRefresh(); - # verify there is 'Linked Objects' widget, it's enabled + # Verify there is 'Linked Objects' widget, it's enabled. $Self->Is( $Selenium->find_element( '.Header>h2', 'css' )->get_text(), 'Linked Objects', 'Linked Objects widget is enabled', ); - # verify there is link to parent ticket + # Verify there is link to parent ticket. $Self->True( $Selenium->find_elements( "//a[contains(\@class, 'LinkObjectLink')][contains(\@title, '$TicketTitles[0]')][contains(\@href, 'TicketID=$TicketIDs[0]')]" @@ -151,7 +144,7 @@ "Link to parent ticket found", ); - # verify there is link to child ticket + # Verify there is link to child ticket. $Self->True( $Selenium->find_elements( "//a[contains(\@class, 'LinkObjectLink')][contains(\@title, '$TicketTitles[2]')][contains(\@href, 'TicketID=$TicketIDs[2]')]" @@ -159,36 +152,44 @@ "Link to child ticket found", ); - # verify there is no collapsed elements on the screen + # Verify there is no collapsed elements on the screen. $Self->True( $Selenium->find_element("//div[contains(\@class, 'WidgetSimple DontPrint Expanded')]"), "Linked Objects Widget is expanded", ); - # toggle to collapse 'Linked Objects' widget - $Selenium->find_element("//a[contains(\@title, 'Show or hide the content' )]")->VerifiedClick(); + # Toggle to collapse 'Linked Objects' widget. + $Selenium->execute_script( + "\$('h2:contains(Linked Object)').closest('.WidgetSimple.Expanded').find('.Toggle a').trigger('click')" + ); + + $Selenium->WaitFor( + JavaScript => "return \$('h2:contains(Linked Object)').closest('.WidgetSimple.Collapsed').length" + ); - # verify there is collapsed element on the screen + # Verify there is collapsed element on the screen. $Self->True( - $Selenium->find_element("//div[contains(\@class, 'WidgetSimple DontPrint Collapsed')]"), + $Selenium->execute_script( + "return \$('h2:contains(Linked Object)').closest('.WidgetSimple.Collapsed').length" + ), "Linked Objects Widget is collapsed", ); - # verify 'Linked Objects' widget is in the side bar with simple view + # Verify 'Linked Objects' widget is in the side bar with simple view. $Self->Is( $Selenium->find_element( '.SidebarColumn .Header>h2', 'css' )->get_text(), 'Linked Objects', 'Linked Objects widget is positioned in the side bar with simple view', ); - # change view to complex + # Change view to complex. $Helper->ConfigSettingChange( Valid => 1, Key => 'LinkObject::ViewMode', Value => 'Complex', ); - # navigate to AgentTicketZoom for test created second ticket again + # Navigate to AgentTicketZoom for test created second ticket again. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketIDs[1]"); # Verify 'Linked Object' widget is in the main column with complex view. @@ -198,8 +199,8 @@ 'Linked Objects widget is positioned in the main column with complex view', ); - # cleanup test data - # delete test created tickets + # Cleanup test data. + # Delete test created tickets. for my $TicketDelete (@TicketIDs) { $Success = $TicketObject->TicketDelete( TicketID => $TicketDelete, @@ -211,15 +212,13 @@ ); } - # make sure the cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure the cache is correct. for my $Cache (qw(Ticket LinkObject)) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( - Type => $Cache, - ); + $CacheObject->CleanUp( Type => $Cache ); } - } - ); 1; diff -Nru otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/TicketInformation.t otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/TicketInformation.t --- otrs2-6.0.4/scripts/test/Selenium/Output/TicketZoom/TicketInformation.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/Output/TicketZoom/TicketInformation.t 2018-02-05 23:46:54.000000000 +0000 @@ -13,17 +13,15 @@ use vars (qw($Self)); -# get selenium object my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium'); $Selenium->RunTest( sub { - # get needed objects my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); - # disable 'Ticket Information', 'Customer Information' and 'Linked Objects' widgets in AgentTicketZoom screen + # Disable 'Ticket Information', 'Customer Information' and 'Linked Objects' widgets in AgentTicketZoom screen. for my $WidgetDisable (qw(0100-TicketInformation 0200-CustomerInformation 0300-LinkTable)) { $Helper->ConfigSettingChange( Valid => 0, @@ -61,7 +59,7 @@ Value => 1 ); - # use a calendar with the same business hours for every day so that the UT runs correctly + # Use a calendar with the same business hours for every day so that the UT runs correctly # on every day of the week and outside usual business hours. my %Week; my @Days = qw(Sun Mon Tue Wed Thu Fri Sat); @@ -78,7 +76,7 @@ Value => \%Week, ); - # disable default Vacation days + # Disable default Vacation days. $Helper->ConfigSettingChange( Key => 'TimeVacationDays', Value => {}, @@ -89,30 +87,29 @@ Value => {}, ); - # get user object my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - # create test responsible user + # Create test responsible user. my $ResponsibleUser = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - # get test user responsible ID + # Get test user responsible ID. my $ResponsibleUserID = $UserObject->UserLookup( UserLogin => $ResponsibleUser, ); - # create login user + # Create test user. my $UserLogin = $Helper->TestUserCreate( Groups => ['admin'], ) || die "Did not get test user"; - # get test user login ID + # Get test user login ID. my $UserLoginID = $UserObject->UserLookup( UserLogin => $UserLogin, ); - # get test ticket data + # Get test ticket data. my $RandomID = $Helper->GetRandomID(); my %TicketData = ( Age => '0 m', @@ -127,10 +124,9 @@ CreatedByUser => $UserObject->UserName( UserID => $UserLoginID ), ); - # get type object my $TypeObject = $Kernel::OM->Get('Kernel::System::Type'); - # create test type + # Create test type. my $TypeID = $TypeObject->TypeAdd( Name => $TicketData{Type}, ValidID => 1, @@ -141,10 +137,9 @@ "TypeID $TypeID is created" ); - # get queue object my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue'); - # create test queue + # Create test queue. my $QueueID = $QueueObject->QueueAdd( Name => $TicketData{Queue}, ValidID => 1, @@ -160,7 +155,7 @@ "QueueID $QueueID is created" ); - # create test service + # Create test service. my $ServiceID = $Kernel::OM->Get('Kernel::System::Service')->ServiceAdd( Name => $TicketData{Service}, ValidID => 1, @@ -172,7 +167,7 @@ "ServiceID $ServiceID is created" ); - # create test SLA with low escalation times, so we trigger warning in 'Ticket Information' widget + # Create test SLA with low escalation times, so we trigger warning in 'Ticket Information' widget. my %EscalationTimes = ( FirstResponseTime => 30, UpdateTime => 40, @@ -193,11 +188,10 @@ "SLAID $SLAID is created" ); - # get dynamic field objects my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $DynamicFieldValueObject = $Kernel::OM->Get('Kernel::System::DynamicFieldValue'); - # create test dynamic field + # Create test dynamic field. my $DynamicFieldName = "DFText$RandomID"; my $DynamicFieldID = $DynamicFieldObject->DynamicFieldAdd( Name => $DynamicFieldName, @@ -216,7 +210,7 @@ "DynamicFieldID $DynamicFieldID is created" ); - # enable test dynamic field to show in AgentTicketZoom screen in 'Ticket Information' widget + # Enable test dynamic field to show in AgentTicketZoom screen in 'Ticket Information' widget. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketZoom###DynamicField', @@ -225,10 +219,9 @@ }, ); - # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); - # create test ticket + # Create test ticket. my $Customer = "Customer$RandomID"; my $TitleRandom = "Title$RandomID"; my $TicketID = $TicketObject->TicketCreate( @@ -250,7 +243,7 @@ "TicketID $TicketID is created", ); - # add dynamic field value to the test ticket + # Add dynamic field value to the test ticket. my $DFValue = "DFValueText$RandomID"; my $Success = $DynamicFieldValueObject->ValueSet( FieldID => $DynamicFieldID, @@ -268,32 +261,31 @@ "DynamicField value added to the test ticket", ); - # login test user + # Login as test user. $Selenium->Login( Type => 'Agent', User => $UserLogin, Password => $UserLogin, ); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AgentTicketZoom for test created ticket + # Navigate to AgentTicketZoom for test created ticket. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentTicketZoom;TicketID=$TicketID"); - # verify its right screen + # Verify its right screen. $Self->True( index( $Selenium->get_page_source(), $TitleRandom ) > -1, "Ticket $TitleRandom found on page", ); - # verify there is no 'Ticket Information' widget, it's disabled + # Verify there is no 'Ticket Information' widget, it's disabled. $Self->True( index( $Selenium->get_page_source(), "$TicketData{Service}" ) == -1, "Ticket Information widget is disabled", ); - # reset 'Ticket Information' widget sysconfig, enable it and refresh screen + # Reset 'Ticket Information' widget sysconfig, enable it and refresh screen. $Helper->ConfigSettingChange( Valid => 1, Key => 'Ticket::Frontend::AgentTicketZoom###Widgets###0100-TicketInformation', @@ -305,29 +297,33 @@ $Selenium->VerifiedRefresh(); - # verify there is 'Ticket Information' widget, it's enabled + # Verify there is 'Ticket Information' widget, it's enabled. $Self->Is( $Selenium->find_element( '.Header>h2', 'css' )->get_text(), 'Ticket Information', 'Ticket Information widget is enabled', ); - # verify there is no collapsed elements on the screen + # Verify there is no collapsed elements on the screen. $Self->True( $Selenium->find_element("//div[contains(\@class, \'WidgetSimple Expanded')]"), "Ticket Information Widget is expanded", ); - # toggle to collapse 'Ticket Information' widget - $Selenium->find_element("//a[contains(\@title, \'Show or hide the content' )]")->VerifiedClick(); + # Toggle to collapse 'Ticket Information' widget. + $Selenium->find_element("//a[contains(\@title, \'Show or hide the content' )]")->click(); - # verify there is collapsed element on the screen + $Selenium->WaitFor( + JavaScript => 'return $("div.WidgetSimple.Collapsed").length' + ); + + # Verify there is collapsed element on the screen. $Self->True( $Selenium->find_element("//div[contains(\@class, \'WidgetSimple Collapsed')]"), "Ticket Information Widget is collapsed", ); - # add article to ticket + # Add article to ticket. my $ArticleID = $Kernel::OM->Get('Kernel::System::Ticket::Article::Backend::Email')->ArticleCreate( TicketID => $TicketID, IsVisibleForCustomer => 1, @@ -345,7 +341,7 @@ "ArticleID $ArticleID is created", ); - # add accounted time to the ticket + # Add accounted time to the ticket. my $AccountedTime = 123; $Success = $TicketObject->TicketAccountTime( TicketID => $TicketID, @@ -358,10 +354,10 @@ "Accounted Time $AccountedTime added to ticket" ); - # refresh screen to get accounted time value + # Refresh screen to get accounted time value. $Selenium->VerifiedRefresh(); - # verify 'Ticket Information' widget values + # Verify 'Ticket Information' widget values. for my $TicketInformationCheck ( sort keys %TicketData ) { $Self->True( $Selenium->find_element("//p[contains(\@title, \'$TicketData{$TicketInformationCheck}' )]"), @@ -369,19 +365,19 @@ ); } - # verify customer link to 'Customer Information Center' + # Verify customer link to 'Customer Information Center'. $Self->True( $Selenium->find_element("//a[contains(\@href, \'AgentCustomerInformationCenter;CustomerID=$Customer' )]"), "Customer link to 'Customer Information Center' found", ); - # verify accounted time value + # Verify accounted time value. $Self->True( index( $Selenium->get_page_source(), qq|

    $AccountedTime

    | ) > -1, "Accounted Time found in Ticket Information Widget", ); - # verify dynamic field value in 'Ticket Information' widget + # Verify dynamic field value in 'Ticket Information' widget. $Self->True( $Selenium->find_element("//span[contains(\@title, \'$DFValue' )]"), "DynamicField value - $DFValue found in Ticket Information widget", @@ -395,24 +391,24 @@ ); $Kernel::OM->Get('Kernel::System::Ticket'); - # refresh screen to be sure escalation time will get latest times + # Refresh screen to be sure escalation time will get latest times. $Selenium->VerifiedRefresh(); - # get ticket data for escalation time values + # Get ticket data for escalation time values. my %Ticket = $TicketObject->TicketGet( TicketID => $TicketID, Extended => 1, UserID => 1, ); - # verify escalation times, warning should be active + # Verify escalation times, warning should be active. for my $EscalationTime ( sort keys %EscalationTimes ) { $EscalationTime = floor( $Ticket{$EscalationTime} / 60 ); - # Check if warning is visible + # Check if warning is visible. $Self->True( - # Check for EscalationTime or EscalationTime + 1 (one minute tolerance, since it fails on fast systems) + # Check for EscalationTime or EscalationTime + 1 (one minute tolerance, since it fails on fast systems). $Selenium->find_element( "//p[\@class='Warning'][\@title='Service Time: $EscalationTime m' or \@title='Service Time: " . ( $EscalationTime + 1 ) . " m']" @@ -421,8 +417,8 @@ ); } - # cleanup test data - # delete dynamic field value + # Cleanup test data. + # Delete dynamic field value. $Success = $DynamicFieldValueObject->ValueDelete( FieldID => $DynamicFieldID, ObjectID => $TicketID, @@ -433,7 +429,7 @@ "DynamicField value removed from the test ticket", ); - # delete dynamic field + # Delete dynamic field. $Success = $DynamicFieldObject->DynamicFieldDelete( ID => $DynamicFieldID, UserID => 1, @@ -443,7 +439,7 @@ "DynamicFieldID $DynamicFieldID is deleted", ); - # delete test ticket + # Delete test ticket. $Success = $TicketObject->TicketDelete( TicketID => $TicketID, UserID => 1, @@ -453,10 +449,9 @@ "TicketID $TicketID is deleted", ); - # get DB object my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - # get delete test data + # Get delete test data. my @DeleteData = ( { SQL => "DELETE FROM ticket_type WHERE id = $TypeID", @@ -480,7 +475,7 @@ }, ); - # delete test created items + # Delete test created items. for my $Item (@DeleteData) { $Success = $DBObject->Do( SQL => $Item->{SQL}, @@ -491,11 +486,12 @@ ); } - # make sure cache is correct + my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache'); + + # Make sure cache is correct. for my $Cache (qw( Ticket Type SLA Service Queue DynamicField )) { - $Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => $Cache ); + $CacheObject->CleanUp( Type => $Cache ); } - } ); diff -Nru otrs2-6.0.4/scripts/test/Selenium/SysConfig/AgentSetting.t otrs2-6.0.5/scripts/test/Selenium/SysConfig/AgentSetting.t --- otrs2-6.0.4/scripts/test/Selenium/SysConfig/AgentSetting.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Selenium/SysConfig/AgentSetting.t 2018-02-05 23:46:54.000000000 +0000 @@ -23,8 +23,9 @@ my $HelperObject = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $SysConfigObject = $Kernel::OM->Get('Kernel::System::SysConfig'); + my $UserObject = $Kernel::OM->Get('Kernel::System::User'); - # Disable CSS loader to actually see the CSS files in the html source + # Disable CSS loader to actually see the CSS files in the html source. $HelperObject->ConfigSettingChange( Valid => 1, Key => 'Loader::Enabled::CSS', @@ -43,7 +44,7 @@ Groups => ['users'], Language => $Language, ) || die "Did not get test user"; - my $TestUserID1 = $Kernel::OM->Get('Kernel::System::User')->UserLookup( + my $TestUserID1 = $UserObject->UserLookup( UserLogin => $TestUserLogin1, ); @@ -52,7 +53,7 @@ Groups => ['users'], Language => $Language, ) || die "Did not get test user"; - my $TestUserID2 = $Kernel::OM->Get('Kernel::System::User')->UserLookup( + my $TestUserID2 = $UserObject->UserLookup( UserLogin => $TestUserLogin2, ); @@ -80,24 +81,22 @@ my $FilePath = $Home . '/Kernel/Config/Files/User/' . $TestUserID1 . '.pm'; - my $MainObject = $Kernel::OM->Get('Kernel::System::Main'); - # Define the file to be written (global or user specific). - $MainObject->FileWrite( + $Kernel::OM->Get('Kernel::System::Main')->FileWrite( Location => $FilePath, Content => \$UserFileContent, ); + # Login as the first created user. $Selenium->Login( Type => 'Agent', User => $TestUserLogin1, Password => $TestUserLogin1, ); - # get script alias my $ScriptAlias = $ConfigObject->Get('ScriptAlias'); - # navigate to AgentDashboard screen + # Navigate to AgentDashboard screen. $Selenium->VerifiedGet("${ScriptAlias}index.pl?Action=AgentDashboard"); # WebPath is different on each system. @@ -113,10 +112,13 @@ 'Ivory skin should be selected' ); - # try to expand the user profile sub menu by clicking the avatar - $Selenium->find_element( '.UserAvatar > a', 'css' )->VerifiedClick(); + # Try to expand the user profile sub menu by clicking the avatar. + $Selenium->find_element( '.UserAvatar > a', 'css' )->click(); + $Selenium->WaitFor( + JavaScript => 'return typeof($) === "function" && $("li.UserAvatar > div:visible").length' + ); - # logout + # Logout. my $Element = $Selenium->find_element( 'a#LogoutButton', 'css' ); $Element->VerifiedClick(); @@ -137,7 +139,6 @@ if ( -e $FilePath ) { unlink $FilePath; } - } ); diff -Nru otrs2-6.0.4/scripts/test/SMIME/FetchFromCustomer.t otrs2-6.0.5/scripts/test/SMIME/FetchFromCustomer.t --- otrs2-6.0.4/scripts/test/SMIME/FetchFromCustomer.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SMIME/FetchFromCustomer.t 2018-02-05 23:46:54.000000000 +0000 @@ -7,6 +7,7 @@ # -- ## no critic (Modules::RequireExplicitPackage) + use strict; use warnings; use utf8; @@ -16,22 +17,26 @@ my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $MainObject = $Kernel::OM->Get('Kernel::System::Main'); +my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); +my $XMLObject = $Kernel::OM->Get('Kernel::System::XML'); + +# get helper object +$Kernel::OM->ObjectParamAdd( + 'Kernel::System::UnitTest::Helper' => { + RestoreDatabase => 1, + }, +); +my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); $ConfigObject->Set( Key => 'CheckEmailAddresses', Value => 0, ); -# copy all -# discard main + config - -my $DBObject = $Kernel::OM->Get('Kernel::System::DB'); - -my $HomeDir = $ConfigObject->Get('Home'); - # create directory for certificates and private keys my $CertPath = $ConfigObject->Get('Home') . "/var/tmp/certs"; my $PrivatePath = $ConfigObject->Get('Home') . "/var/tmp/private"; + mkpath( [$CertPath], 0, 0770 ); ## no critic mkpath( [$PrivatePath], 0, 0770 ); ## no critic @@ -40,6 +45,7 @@ Key => 'SMIME::CertPath', Value => $CertPath, ); + $ConfigObject->Set( Key => 'SMIME::PrivatePath', Value => $PrivatePath, @@ -52,6 +58,7 @@ Key => 'SMIME', Value => 1, ); + $ConfigObject->Set( Key => 'SMIME::FetchFromCustomer', Value => 1, @@ -125,21 +132,11 @@ return 1; } -# get helper object -$Kernel::OM->ObjectParamAdd( - 'Kernel::System::UnitTest::Helper' => { - RestoreDatabase => 1, - }, -); -my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper'); my $Random = $Helper->GetRandomID(); # get existing certificates my @CertList = $SMIMEObject->CertificateList(); -my $CertCount = 0; -for my $Cert ( sort @CertList ) { - $CertCount++; -} +my $CertCount = scalar @CertList; # first stage my $TableName = 'UT_' . $Random; @@ -151,7 +148,7 @@ Email => 'unittest@example.org', Status => 1, CertificateType => 'PEM', - Certifiacate => '-----BEGIN CERTIFICATE----- + Certificate => '-----BEGIN CERTIFICATE----- MIIEXjCCA0agAwIBAgIJAPIBQyBe/HbpMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV BAYTAkRFMQ8wDQYDVQQIEwZCYXllcm4xEjAQBgNVBAcTCVN0cmF1YmluZzEQMA4G A1UEChMHT1RSUyBBRzERMA8GA1UEAxMIdW5pdHRlc3QxIzAhBgkqhkiG9w0BCQEW @@ -186,7 +183,7 @@ Email => 'smimeuser1@test.com', Status => 1, CertificateType => 'P7B', - Certifiacate => '-----BEGIN CERTIFICATE----- + Certificate => '-----BEGIN CERTIFICATE----- MIIFjTCCA3UCCQDt3sB/CPz9rjANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJN WDEQMA4GA1UECBMHSmFsaXNjbzEQMA4GA1UEChMHT1RSUyBBRzERMA8GA1UECxMI T1RSUyBMYWIxETAPBgNVBAMTCE9UUlMgTGFiMSIwIAYJKoZIhvcNAQkBFhNvdHJz @@ -240,9 +237,16 @@ '; - my @XMLARRAY = $Kernel::OM->Get('Kernel::System::XML')->XMLParse( String => $XMLLoginTable ); - my @SQL = $DBObject->SQLProcessor( Database => \@XMLARRAY ); - my @SQLPost = $DBObject->SQLProcessorPost( Database => \@XMLARRAY ); + + my @XMLARRAY = $XMLObject->XMLParse( + String => $XMLLoginTable, + ); + my @SQL = $DBObject->SQLProcessor( + Database => \@XMLARRAY, + ); + my @SQLPost = $DBObject->SQLProcessorPost( + Database => \@XMLARRAY, + ); for my $SQL ( @SQL, @SQLPost ) { $Self->True( @@ -254,20 +258,30 @@ # Fill Table my $SQL = "INSERT INTO $TableName - (login, email, customer_id, pw, title, first_name, last_name, userSMIMECertificate, valid_id, create_time, - create_by, change_time, change_by) - VALUES - (?,?,?,?,?,?,?,?,1,current_timestamp,1,current_timestamp,1)"; + (login, email, customer_id, pw, + title, first_name, last_name, + userSMIMECertificate, valid_id, + create_time, create_by, + change_time, change_by) +VALUES + (?, ?, ?, ?, ?, ?, ?, ?, 1, current_timestamp, 1, current_timestamp, 1)"; + my $Pwd = $MainObject->GenerateRandomString( Length => 8, ); -foreach my $CustomerUser (@UnitTestCustomerUsers) { + +for my $CustomerUser (@UnitTestCustomerUsers) { my $Return = $DBObject->Do( SQL => $SQL, Bind => [ - \$CustomerUser->{Login}, \$CustomerUser->{Email}, \'unittest_customer_id', + \$CustomerUser->{Login}, + \$CustomerUser->{Email}, + \'unittest_customer_id', \$Pwd, - \'Mr', \$CustomerUser->{FirstName}, \$CustomerUser->{LastName}, \$CustomerUser->{Certifiacate} + \'Mr', + \$CustomerUser->{FirstName}, + \$CustomerUser->{LastName}, + \$CustomerUser->{Certificate}, ], ); $DBObject->Prepare( @@ -455,14 +469,30 @@ $Remove2nd{Success}, "$Remove2nd{Message}", ); +} +{ + # drop table + my $XML = ""; + + my @XMLARRAY = $XMLObject->XMLParse( String => $XML ); + my @SQL = $DBObject->SQLProcessor( Database => \@XMLARRAY ); + $Self->True( + $SQL[0], + 'SQLProcessor() DROP TABLE', + ); + + for my $SQL (@SQL) { + $Self->True( + $DBObject->Do( SQL => $SQL ) || 0, + "Do() DROP TABLE ($SQL)", + ); + } } # TODO - second stage # create a real LDAP server to test against -$DBObject->Do( SQL => 'Drop table ' . $TableName ); - # delete needed test directories for my $Directory ( $CertPath, $PrivatePath ) { my $Success = rmtree( [$Directory] ); diff -Nru otrs2-6.0.4/scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t otrs2-6.0.5/scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t --- otrs2-6.0.4/scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SysConfig/ConfigurationDeploymentSettingListGet.t 2018-02-05 23:46:54.000000000 +0000 @@ -196,14 +196,14 @@ UnlockAll => 1, ); -$Success = $SysConfigObject->ConfigurationDeploy( +my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "UnitTest", UserID => 1, Force => 1, NoValidation => 1, ); $Self->True( - $Success, + $DeploymentResult{Success}, "ConfigurationDeploy() 1 with true", ); @@ -278,14 +278,14 @@ # data which was deployed in previous deployment. See https://bugs.otrs.org/show_bug.cgi?id=13071. $HelperObject->FixedTimeAddSeconds(2); -$Success = $SysConfigObject->ConfigurationDeploy( +%DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "UnitTest", UserID => 1, Force => 1, NoValidation => 1, ); $Self->True( - $Success, + $DeploymentResult{Success}, "ConfigurationDeploy() 2 with true", ); diff -Nru otrs2-6.0.4/scripts/test/SysConfig/ConfigurationDeploy.t otrs2-6.0.5/scripts/test/SysConfig/ConfigurationDeploy.t --- otrs2-6.0.4/scripts/test/SysConfig/ConfigurationDeploy.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SysConfig/ConfigurationDeploy.t 2018-02-05 23:46:54.000000000 +0000 @@ -430,7 +430,7 @@ next TEST; } - my $Success = $SysConfigObject->ConfigurationDeploy( + $SysConfigObject->ConfigurationDeploy( %{ $Test->{Config} }, Force => 1, Comments => "Some comments", @@ -498,7 +498,7 @@ } } - my $Success = $SysConfigObject->ConfigurationDeploy( + my %DeployResult = $SysConfigObject->ConfigurationDeploy( AllSettings => 1, Force => 1, Comments => "Some comments", @@ -507,7 +507,7 @@ ); $Self->Is( - $Success // 0, + $DeployResult{Success} // 0, $Test->{Success}, "$Test->{Name} ConfigurationDeploy()", ); diff -Nru otrs2-6.0.4/scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t otrs2-6.0.5/scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t --- otrs2-6.0.4/scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SysConfig/DB/DeploymentModifiedVersionList.t 2018-02-05 23:46:54.000000000 +0000 @@ -137,7 +137,7 @@ my @DeploymentIDs; -my $Success = $SysConfigObject->ConfigurationDeploy( +my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "UnitTest", UserID => 1, Force => 1, @@ -145,7 +145,7 @@ NoValidation => 1, ); $Self->True( - $Success, + $DeploymentResult{Success}, "ConfigurationDeploy() Initial Deployment", ); my %LastDeployment = $SysConfigDBObject->DeploymentGetLast(); @@ -219,7 +219,7 @@ $UpdateSettings->( %{$Update} ); - my $Success = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "UnitTest", UserID => 1, Force => 1, @@ -227,7 +227,7 @@ NoValidation => 1, ); $Self->True( - $Success, + $DeploymentResult{Success}, "ConfigurationDeploy() Deployment $Update->{EffectiveValue}", ); my %LastDeployment = $SysConfigDBObject->DeploymentGetLast(); diff -Nru otrs2-6.0.4/scripts/test/SysConfig/XML.t otrs2-6.0.5/scripts/test/SysConfig/XML.t --- otrs2-6.0.4/scripts/test/SysConfig/XML.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SysConfig/XML.t 2018-02-05 23:46:54.000000000 +0000 @@ -168,13 +168,13 @@ 'Navigation' => [ { 'Content' => 'Core::Ticket' - } + }, ], 'Description' => [ { 'Content' => 'Test 1.', 'Translatable' => '1' - } + }, ], 'Name' => 'Test1', 'Required' => '1', @@ -185,10 +185,10 @@ 'ValueRegex' => '.*', 'Content' => '123', 'ValueType' => 'String' - } - ] - } - ] + }, + ], + }, + ], }, 'XMLContentRaw' => ' Test 1. @@ -212,7 +212,7 @@ 'Navigation' => [ { 'Content' => 'Core::Ticket' - } + }, ], 'Required' => '1', 'Value' => [ @@ -221,9 +221,9 @@ { 'ValueType' => 'File', 'Content' => '/usr/bin/gpg' - } - ] - } + }, + ], + }, ], 'Valid' => '1' }, @@ -274,13 +274,13 @@ 'Navigation' => [ { 'Content' => 'Core::Ticket' - } + }, ], 'Description' => [ { 'Translatable' => '1', 'Content' => 'Test 1.' - } + }, ], 'Required' => '1', 'Value' => [ @@ -291,14 +291,14 @@ "\x{e4}\x{eb}\x{ef}\x{f6}\x{fc}\x{c4}\x{cb}\x{cf}\x{d6}\x{dc}\x{e1}\x{e9}\x{ed}\x{f3}\x{fa}\x{c1}\x{c9}\x{cd}\x{d3}\x{da}\x{f1}\x{d1}\x{20ac}\x{438}\x{441}\x{df}", 'ValueRegex' => '.*', 'ValueType' => 'String' - } - ] - } + }, + ], + }, ], 'Name' => "\x{e4}\x{eb}\x{ef}\x{f6}\x{fc}\x{c4}\x{cb}\x{cf}\x{d6}\x{dc}\x{e1}\x{e9}\x{ed}\x{f3}\x{fa}\x{c1}\x{c9}\x{cd}\x{d3}\x{da}\x{f1}\x{d1}\x{20ac}\x{438}\x{441}\x{df}", 'Valid' => '1' - } + }, }, { 'XMLFilename' => undef, @@ -316,9 +316,9 @@ { 'ValueType' => 'File', 'Content' => '/usr/bin/gpg' - } - ] - } + }, + ], + }, ], 'Valid' => '1', 'Name' => 'Test2', @@ -326,15 +326,15 @@ { 'Content' => 'Test 2.', 'Translatable' => '1' - } + }, ], 'Navigation' => [ { 'Content' => 'Core::Ticket' - } + }, ], 'Required' => '1' - } + }, } ], }, @@ -370,7 +370,7 @@ { 'Translatable' => '1', 'Content' => 'Test 1.' - } + }, ], 'Valid' => '1', 'Value' => [ @@ -380,15 +380,15 @@ 'Content' => '123', 'ValueType' => 'String', 'ValueRegex' => '.*' - } - ] - } + }, + ], + }, ], 'Navigation' => [ { 'Content' => 'Core::Ticket' - } - ] + }, + ], }, 'XMLContentRaw' => ' Test 1. @@ -404,14 +404,14 @@ { 'Content' => 'Test 2.', 'Translatable' => '1' - } + }, ], 'Name' => 'Test2', 'Required' => '1', 'Navigation' => [ { 'Content' => 'Core::Ticket' - } + }, ], 'Value' => [ { @@ -419,9 +419,9 @@ { 'ValueType' => 'File', 'Content' => '/usr/bin/gpg' - } - ] - } + }, + ], + }, ], 'Valid' => '1' }, @@ -506,6 +506,78 @@ }, ExpectedResult => [], }, + { + Description => 'Setting with comments', + Config => { + XMLInput => ' + + + Test 1. + Core::Ticket + + + 1 +# 2 + + 2 + + + + + ', + }, + ExpectedResult => [ + { + 'XMLContentParsed' => { + 'Description' => [ + { + 'Content' => 'Test 1.', + 'Translatable' => '1', + }, + ], + 'Name' => 'Test', + 'Navigation' => [ + { + 'Content' => 'Core::Ticket' + }, + ], + 'Required' => '1', + 'Valid' => '1', + 'Value' => [ + { + 'Array' => [ + { + 'Item' => [ + { + 'Content' => '1', + }, + { + 'Content' => '2', + }, + ], + }, + ], + }, + ], + }, + 'XMLContentRaw' => ' + Test 1. + Core::Ticket + + + 1 + + + 2 + + + ', + }, + ], + }, ); for my $Test (@Tests) { diff -Nru otrs2-6.0.4/scripts/test/SystemMaintenance.t otrs2-6.0.5/scripts/test/SystemMaintenance.t --- otrs2-6.0.4/scripts/test/SystemMaintenance.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/SystemMaintenance.t 2018-02-05 23:46:54.000000000 +0000 @@ -256,7 +256,7 @@ }, }, ); -use Data::Dumper; + my @SystemMaintenanceIDs; TEST: for my $Test (@Tests) { @@ -516,10 +516,9 @@ Value => 30, ); -TEST: @Tests = ( { - Name => 'Test ' . $Index++ . ' - ', + Name => 'Test ' . $Index++ . ' -', StartDate => '2014-01-10 12:00:00', StopDate => '2014-01-10 14:59:59', FixedTimeSet => '2014-01-10 13:00:00', @@ -528,7 +527,7 @@ IsComming => 0, }, { - Name => 'Test ' . $Index++ . ' - ', + Name => 'Test ' . $Index++ . ' -', StartDate => '2014-01-10 12:00:00', StopDate => '2014-01-10 14:59:59', FixedTimeSet => '2014-01-10 11:59:59', @@ -537,7 +536,7 @@ IsComming => 1, }, { - Name => 'Test ' . $Index++ . ' - ', + Name => 'Test ' . $Index++ . ' -', StartDate => '2014-01-10 12:00:00', StopDate => '2014-01-10 14:59:59', FixedTimeSet => '2014-01-10 15:00:00', @@ -576,20 +575,20 @@ )->ToEpoch(), ); - my $IsComming = $Kernel::OM->Get('Kernel::System::SystemMaintenance')->SystemMaintenanceIsComing(); + my %IsComming = $Kernel::OM->Get('Kernel::System::SystemMaintenance')->SystemMaintenanceIsComing(); if ( $Test->{IsComming} ) { $Self->True( - $IsComming, - "$Test->{Name} - A system maintenance period is comming!", + $IsComming{StartDate}, + "$Test->{Name} A system maintenance period is comming!", ); } else { $Self->False( - $IsComming, - "$Test->{Name} - A system maintenance period is not comming!", + $IsComming{StartDate}, + "$Test->{Name} A system maintenance period is not comming!", ); } @@ -599,14 +598,14 @@ $Self->True( $IsActive, - "$Test->{Name} - A system maintenance period is active!", + "$Test->{Name} A system maintenance period is active!", ); } else { $Self->False( $IsActive, - "$Test->{Name} - A system maintenance period is not active!", + "$Test->{Name} A system maintenance period is not active!", ); } diff -Nru otrs2-6.0.4/scripts/test/TemplateGenerator/Replace.t otrs2-6.0.5/scripts/test/TemplateGenerator/Replace.t --- otrs2-6.0.4/scripts/test/TemplateGenerator/Replace.t 2018-01-09 19:14:20.000000000 +0000 +++ otrs2-6.0.5/scripts/test/TemplateGenerator/Replace.t 2018-02-05 23:46:32.000000000 +0000 @@ -524,7 +524,7 @@ }, RichText => 0, Template => 'Test - ', - Result => "Test - - -", + Result => "Test Line1\nLine2\nLine3 - Line1\nLine2\nLine3", }, { Name => 'OTRS AGENT + CUSTOMER EMAIL[2]', @@ -539,7 +539,7 @@ Result => "Test > Line1\n> Line2 - > Line1\n> Line2", }, { - Name => 'OTRS COMMENT', # EMAIL without [ ] does not exists + Name => 'OTRS COMMENT', Data => { Body => "Line1\nLine2\nLine3", }, @@ -549,6 +549,15 @@ }, { + Name => 'OTRS COMMENT[2]', + Data => { + Body => "Line1\nLine2\nLine3", + }, + RichText => 0, + Template => 'Test ', + Result => "Test > Line1\n> Line2", + }, + { Name => 'OTRS AGENT + CUSTOMER SUBJECT[2]', Data => { Subject => '0123456789' diff -Nru otrs2-6.0.4/scripts/test/Ticket.t otrs2-6.0.5/scripts/test/Ticket.t --- otrs2-6.0.4/scripts/test/Ticket.t 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/scripts/test/Ticket.t 2018-02-05 23:46:54.000000000 +0000 @@ -2385,4 +2385,83 @@ ); } +# Test ticket search by fulltext (see bug#13284). +# Create a test ticket and add an article for this ticket. +# Note that article subject and ticket title differ. +my $TestTicketTitle = 'title' . $Helper->GetRandomID(); +my $FulltextTicketID = $TicketObject->TicketCreate( + Title => $TestTicketTitle, + Queue => 'Raw', + Lock => 'unlock', + Priority => '3 normal', + State => 'open', + CustomerID => '123465', + CustomerUser => 'bugtest@otrs.com', + OwnerID => 1, + UserID => 1, +); + +my $TestArticleSubject = 'subject' . $Helper->GetRandomID(); +my $FulltextArticleID = $ArticleBackendObject->ArticleCreate( + TicketID => $FulltextTicketID, + IsVisibleForCustomer => 0, + SenderType => 'agent', + From => 'Agent Some Agent Some Agent ', + To => 'Customer A ', + Cc => 'Customer B ', + ReplyTo => 'Customer B ', + Subject => $TestArticleSubject, + Body => 'Some text', + ContentType => 'text/plain; charset=ISO-8859-15', + HistoryType => 'AddNote', + HistoryComment => 'Some free text!', + UserID => 1, + NoAgentNotify => 1, +); + +$ArticleObject->ArticleSearchIndexBuild( + TicketID => $FulltextTicketID, + ArticleID => $FulltextArticleID, + UserID => 1, +); + +# Search for ticket title as fulltext parameter. +@TicketIDs = $TicketObject->TicketSearch( + Result => 'ARRAY', + Fulltext => $TestTicketTitle, + UserID => 1, + Permission => 'rw', +); + +# Verify result has one item and it's indeed the test ticket. +$Self->IsDeeply( + \@TicketIDs, + [$FulltextTicketID], + "TicketSearch() - search ticket title '$TestTicketTitle' as fulltext - found only TicketID $FulltextTicketID" +); + +# Search for article subject as fulltext parameter. +@TicketIDs = $TicketObject->TicketSearch( + Result => 'ARRAY', + Fulltext => $TestArticleSubject, + UserID => 1, + Permission => 'rw', +); + +# Verify result has one item and it's indeed the test ticket. +$Self->IsDeeply( + \@TicketIDs, + [$FulltextTicketID], + "TicketSearch() - search article subject '$TestArticleSubject' as fulltext - found only TicketID $FulltextTicketID" +); + +$Success = $TicketObject->TicketDelete( + TicketID => $FulltextTicketID, + UserID => 1, +); +$Self->True( + $Success, + "TicketID $FulltextTicketID - deleted", +); + 1; diff -Nru otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js --- otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.Admin.SystemConfiguration.js 2018-02-05 23:46:54.000000000 +0000 @@ -170,11 +170,13 @@ $DialogFooterObj.find('.ButtonsRegular').hide(); // success - if (Response && parseInt(Response.Result, 10) === 1) { + if (Response && Response.Result && Response.Result.Success == 1) { $DialogContentObj.find('.Overlay i.Active').hide(); $DialogContentObj.find('.Overlay i.Success').fadeIn(); - $DialogContentObj.find('em').text(Core.Language.Translate("Deployment successful. You're being redirected...")); + $DialogContentObj.find('em').text( + Core.Language.Translate("Deployment successful. You're being redirected...") + ); window.setTimeout(function() { @@ -194,7 +196,15 @@ $DialogFooterObj.find('.ButtonsFinish').show(); $DialogContentObj.find('.Overlay i.Active').hide(); $DialogContentObj.find('.Overlay i.Error').fadeIn(); - $DialogContentObj.find('em').text(Core.Language.Translate('There was an error. Please save all settings you are editing and check the logs for more information.')); + $DialogContentObj.find('em').text( + Core.Language.Translate('There was an error. Please save all settings you are editing and check the logs for more information.') + ); + } + + if (Response && Response.Result && Response.Result.Error !== undefined) { + $DialogContentObj.find('em').after( + Response.Result.Error + ); } } ); diff -Nru otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.js otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.js --- otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.js 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.js 2018-02-05 23:46:54.000000000 +0000 @@ -834,7 +834,7 @@ var OTRSBusinessLabel = 'OTRS Business Solution™'; Core.UI.Dialog.ShowContentDialog( - '
    ' + Core.Language.Translate('This feature is part of the %s. Please contact us at %s for an upgrade.', OTRSBusinessLabel, 'sales@otrs.com') + '
    ', + '
    ' + Core.Language.Translate('This feature is part of the %s. Please contact us at %s for an upgrade.', OTRSBusinessLabel, 'sales@otrs.com') + '
    ', '', '240px', 'Center', diff -Nru otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js --- otrs2-6.0.4/var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/js/Core.Agent.TicketFormDraft.js 2018-02-05 23:46:54.000000000 +0000 @@ -90,6 +90,7 @@ if (Response.Success == 0) { $(".Dialog:visible .AJAXLoader").hide(); alert(Response.ErrorMessage); + $('#FormDraftAction').val(''); } else { Core.UI.Dialog.CloseDialog($(".Dialog")); diff -Nru otrs2-6.0.4/var/httpd/htdocs/js/Core.UI.js otrs2-6.0.5/var/httpd/htdocs/js/Core.UI.js --- otrs2-6.0.4/var/httpd/htdocs/js/Core.UI.js 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/js/Core.UI.js 2018-02-05 23:46:54.000000000 +0000 @@ -838,11 +838,24 @@ }) .after($(UploadContainer)) .next('.DnDUpload') - .on('click', function() { + .on('click keydown', function(Event) { + + if (Event.keyCode && Event.keyCode == 9) { + return true; + } + + // The file selection dialog should also appear on focusing the element and pressing enter/space. + if (Event.keyCode && (Event.keyCode != 13 && Event.keyCode != 32)) { + return false; + } + + // If this certain upload field does not allow uploading more than one file and a file has + // already been uploaded, prevent the user from uploading more files. if (!IsMultiple && $(this).closest('.Field').find('.AttachmentList tbody tr').length > 0) { alert(Core.Language.Translate("Sorry, you can only upload one file here.")); return false; } + $(this).prev('input.AjaxDnDUpload').trigger('click'); }) .on('drag dragstart dragend dragover dragenter dragleave drop', function(Event) { diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css 2017-12-12 00:32:28.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.PackageManager.css 2018-02-05 23:46:54.000000000 +0000 @@ -36,6 +36,10 @@ color: #E95F53; } +.UpgradeAllDialog tr:hover > td { + color: #000; +} + .IntroInstall { background: #eee; padding: 15px 20px; diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css 2017-12-12 00:32:28.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Agent.Admin.SystemConfiguration.css 2018-02-05 23:46:54.000000000 +0000 @@ -325,7 +325,7 @@ #DialogDeployment { width: 450px; - min-height: 60px; + min-height: 80px; padding-right: 10px; } diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css 2017-12-12 00:32:28.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.AppointmentCalendar.css 2018-02-05 23:46:54.000000000 +0000 @@ -267,10 +267,6 @@ background-color: #FFF1AB; } - .ui-autocomplete { - z-index: 4000 !important; - } - .ButtonTable { display: inline; margin-left: 5px; diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Default.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Default.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Default.css 2018-01-08 23:51:54.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Default.css 2018-02-05 23:46:54.000000000 +0000 @@ -382,6 +382,11 @@ box-sizing: border-box; } +div.DnDUpload:focus { + border-color: #000; + color: #000; +} + input.AjaxDnDUpload.Error + div.DnDUpload { color: #ff505e; border-color: #ff505e; @@ -490,6 +495,10 @@ text-align: center; } +table.AttachmentList .AttachmentDelete:focus i { + color: #000; +} + table.AttachmentList.DataTable thead th { line-height: 12px; } diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Login.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Login.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Login.css 2017-12-12 00:32:28.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Login.css 2018-02-05 23:46:54.000000000 +0000 @@ -15,6 +15,8 @@ .LoginScreen { padding-top: 90px; + height: calc(100vh - 90px); + min-height: 430px; } .LoginScreen .MainBox { @@ -45,7 +47,7 @@ bottom: 0px; box-sizing: border-box; padding: 10px 0px; - position: fixed; + position: absolute; text-align: center; text-shadow: 1px 1px 1px #fff; text-transform: uppercase; diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css 2017-12-12 00:32:36.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.Responsive.css 2018-02-05 23:46:54.000000000 +0000 @@ -1171,6 +1171,10 @@ min-width: 0px; } + .Cluster ul.Actions { + margin-right: 35px; + } + .Cluster ul ul li { display: inline-block; border: 0px; @@ -1192,6 +1196,19 @@ padding-bottom: 0px !important; } + .Cluster .WidgetAction.ArticleView { + z-index: 100; + background: #f5f5f5; + background: #f5f5f5; + width: 35px; + text-align: center; + margin: 0px !important; + right: 0px; + top: 0px; + line-height: 35px; + height: 35px; + } + /* Input Fields */ div.InputField_Container { @@ -1275,6 +1292,12 @@ margin-top: -22px; } + + #OverviewBody.Overview.TicketList { + overflow-y:auto; + } + + } /* ~ Tablet landscape */ diff -Nru otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css --- otrs2-6.0.4/var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css 2017-12-12 00:32:28.000000000 +0000 +++ otrs2-6.0.5/var/httpd/htdocs/skins/Agent/default/css/Core.TicketDetail.css 2018-02-05 23:46:54.000000000 +0000 @@ -838,11 +838,15 @@ .TimelineView > ul > li h3 { margin: -10px -10px 5px -10px; padding: 6px 10px; - background: #ddd; + background: #fff; font-size: 12px; position: relative; } +.TimelineView > ul > li.NewTicket h3 { + background: #ddd; +} + .TimelineView > ul > li h3 .fa-info-circle { display: none; } @@ -952,7 +956,7 @@ .TimelineView ul.ListLeft li h3:after { left: 100%; - border-left-color: #ccc; + border-left-color: #ddd; border-right-color: transparent; } @@ -1202,12 +1206,20 @@ /* Define colors for different event types */ .UseArticleColors .TimelineView .TypeIncoming h3 { - background-color: #d4defc; - color: #000; + background-color: #fff; } .UseArticleColors .TimelineView .TypeIncoming h3:after { - border-right-color: #B7C3E8; + border-right-color: #ddd; +} + +.UseArticleColors .TimelineView .TypeTicketAction h3 { + background-color: #eee; + color: #555; +} + +.UseArticleColors .TimelineView .TypeTicketAction { + background: #f7f7f7; } .UseArticleColors .TimelineView .TypeIncoming.SenderType_customer.ArticleType_email-internal h3 { @@ -1236,15 +1248,6 @@ border-left-color: #EFB1B1; } -.UseArticleColors .TimelineView .TypeOutgoing h3 { - background-color: #D3E5B5; - color: #000; -} - -.UseArticleColors .TimelineView ul.ListLeft .TypeOutgoing h3:after { - border-left-color: #BFD39C; -} - .TimelineView > ul > li.Seen div.UnreadArticles, .TimelineView li div.UnreadArticles { display: none; diff -Nru otrs2-6.0.4/var/processes/examples/Base.pm otrs2-6.0.5/var/processes/examples/Base.pm --- otrs2-6.0.4/var/processes/examples/Base.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/processes/examples/Base.pm 2018-02-05 23:46:54.000000000 +0000 @@ -245,20 +245,20 @@ ); } - my $Success = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "Deployed by '$Param{ProcessName}' process setup", UserID => 1, Force => 1, DirtySettings => \@UpdatedSettings, ); - if ( !$Success ) { + if ( !$DeploymentResult{Success} ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "System was unable to deploy settings needed for '$Param{ProcessName}' process!" ); } - return $Success; + return $DeploymentResult{Success}; } diff -Nru otrs2-6.0.4/var/webservices/examples/Base.pm otrs2-6.0.5/var/webservices/examples/Base.pm --- otrs2-6.0.4/var/webservices/examples/Base.pm 2018-01-08 23:52:14.000000000 +0000 +++ otrs2-6.0.5/var/webservices/examples/Base.pm 2018-02-05 23:46:54.000000000 +0000 @@ -236,20 +236,20 @@ ); } - my $Success = $SysConfigObject->ConfigurationDeploy( + my %DeploymentResult = $SysConfigObject->ConfigurationDeploy( Comments => "Deployed by '$Param{WebServiceName}' web service setup", UserID => 1, Force => 1, DirtySettings => \@UpdatedSettings, ); - if ( !$Success ) { + if ( !$DeploymentResult{Success} ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "System was unable to deploy settings needed for '$Param{WebServiceName}' web service!" ); } - return $Success; + return $DeploymentResult{Success}; } 1;