From 0fa0848521a7b04b97f9328e535d2351ef4533e4 Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Wed, 7 Feb 2024 20:48:26 +0000 Subject: Reverts r22694 (#39111). git-svn-id: https://svn.redmine.org/redmine/trunk@22695 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/initializers/30-redmine.rb | 3 + lib/redmine/themes.rb | 2 +- public/images/3_bullets.png | Bin 0 -> 1250 bytes public/images/add.png | Bin 0 -> 680 bytes public/images/anonymous.png | Bin 0 -> 1072 bytes public/images/arrow_down.png | Bin 0 -> 257 bytes public/images/arrow_left.png | Bin 0 -> 273 bytes public/images/arrow_right.png | Bin 0 -> 287 bytes public/images/arrow_up.png | Bin 0 -> 261 bytes public/images/attachment.png | Bin 0 -> 939 bytes public/images/bullet_add.png | Bin 0 -> 233 bytes public/images/bullet_black.png | Bin 0 -> 171 bytes public/images/bullet_blue.png | Bin 0 -> 241 bytes public/images/bullet_delete.png | Bin 0 -> 255 bytes public/images/bullet_diamond.png | Bin 0 -> 262 bytes public/images/bullet_end.png | Bin 0 -> 329 bytes public/images/bullet_go.png | Bin 0 -> 357 bytes public/images/bullet_orange.png | Bin 0 -> 268 bytes public/images/bullet_purple.png | Bin 0 -> 244 bytes public/images/bullet_toggle_minus.png | Bin 0 -> 121 bytes public/images/bullet_toggle_plus.png | Bin 0 -> 136 bytes public/images/calendar.png | Bin 0 -> 622 bytes public/images/cancel.png | Bin 0 -> 319 bytes public/images/changeset.png | Bin 0 -> 459 bytes public/images/close.png | Bin 0 -> 121 bytes public/images/close_hl.png | Bin 0 -> 121 bytes public/images/comment.png | Bin 0 -> 360 bytes public/images/comments.png | Bin 0 -> 501 bytes public/images/copy.png | Bin 0 -> 925 bytes public/images/copy_link.png | Bin 0 -> 1731 bytes public/images/database_go.png | Bin 0 -> 698 bytes public/images/database_key.png | Bin 0 -> 727 bytes public/images/delete.png | Bin 0 -> 911 bytes public/images/document.png | Bin 0 -> 374 bytes public/images/download.png | Bin 0 -> 388 bytes public/images/duplicate.png | Bin 0 -> 960 bytes public/images/edit.png | Bin 0 -> 522 bytes public/images/email.png | Bin 0 -> 641 bytes public/images/email_add.png | Bin 0 -> 761 bytes public/images/email_disabled.png | Bin 0 -> 386 bytes public/images/exclamation.png | Bin 0 -> 648 bytes public/images/external.png | Bin 0 -> 136 bytes public/images/false.png | Bin 0 -> 459 bytes public/images/fav.png | Bin 0 -> 378 bytes public/images/fav_off.png | Bin 0 -> 211 bytes public/images/favicon.ico | Bin 0 -> 7886 bytes public/images/feed.png | Bin 0 -> 427 bytes public/images/files/c.png | Bin 0 -> 534 bytes public/images/files/csharp.png | Bin 0 -> 647 bytes public/images/files/css.png | Bin 0 -> 665 bytes public/images/files/default.png | Bin 0 -> 241 bytes public/images/files/html.png | Bin 0 -> 734 bytes public/images/files/image.png | Bin 0 -> 597 bytes public/images/files/java.png | Bin 0 -> 639 bytes public/images/files/js.png | Bin 0 -> 624 bytes public/images/files/pdf.png | Bin 0 -> 538 bytes public/images/files/php.png | Bin 0 -> 485 bytes public/images/files/ruby.png | Bin 0 -> 573 bytes public/images/files/text.png | Bin 0 -> 289 bytes public/images/files/xml.png | Bin 0 -> 550 bytes public/images/files/zip.png | Bin 0 -> 713 bytes public/images/folder.png | Bin 0 -> 349 bytes public/images/folder_open.png | Bin 0 -> 471 bytes public/images/folder_open_add.png | Bin 0 -> 584 bytes public/images/folder_open_orange.png | Bin 0 -> 585 bytes public/images/group.png | Bin 0 -> 700 bytes public/images/help.png | Bin 0 -> 733 bytes public/images/history.png | Bin 0 -> 204 bytes public/images/hourglass.png | Bin 0 -> 744 bytes public/images/jstoolbar/bt_bq.png | Bin 0 -> 384 bytes public/images/jstoolbar/bt_bq_remove.png | Bin 0 -> 379 bytes public/images/jstoolbar/bt_code.png | Bin 0 -> 927 bytes public/images/jstoolbar/bt_del.png | Bin 0 -> 252 bytes public/images/jstoolbar/bt_em.png | Bin 0 -> 197 bytes public/images/jstoolbar/bt_h1.png | Bin 0 -> 247 bytes public/images/jstoolbar/bt_h2.png | Bin 0 -> 252 bytes public/images/jstoolbar/bt_h3.png | Bin 0 -> 261 bytes public/images/jstoolbar/bt_img.png | Bin 0 -> 1027 bytes public/images/jstoolbar/bt_ins.png | Bin 0 -> 937 bytes public/images/jstoolbar/bt_link.png | Bin 0 -> 293 bytes public/images/jstoolbar/bt_ol.png | Bin 0 -> 248 bytes public/images/jstoolbar/bt_pre.png | Bin 0 -> 918 bytes public/images/jstoolbar/bt_precode.png | Bin 0 -> 389 bytes public/images/jstoolbar/bt_strong.png | Bin 0 -> 244 bytes public/images/jstoolbar/bt_table.png | Bin 0 -> 156 bytes public/images/jstoolbar/bt_tl.png | Bin 0 -> 479 bytes public/images/jstoolbar/bt_ul.png | Bin 0 -> 249 bytes public/images/lightning.png | Bin 0 -> 584 bytes public/images/link.png | Bin 0 -> 306 bytes public/images/link_break.png | Bin 0 -> 657 bytes public/images/loading.gif | Bin 0 -> 1553 bytes public/images/locked.png | Bin 0 -> 1013 bytes public/images/magnifier.png | Bin 0 -> 615 bytes public/images/message.png | Bin 0 -> 383 bytes public/images/milestone_done.png | Bin 0 -> 137 bytes public/images/milestone_late.png | Bin 0 -> 160 bytes public/images/milestone_todo.png | Bin 0 -> 155 bytes public/images/move.png | Bin 0 -> 321 bytes public/images/news.png | Bin 0 -> 605 bytes public/images/package.png | Bin 0 -> 800 bytes public/images/plugin.png | Bin 0 -> 538 bytes public/images/project_marker.png | Bin 0 -> 204 bytes public/images/projects.png | Bin 0 -> 775 bytes public/images/reload.png | Bin 0 -> 549 bytes public/images/reorder.png | Bin 0 -> 472 bytes public/images/report.png | Bin 0 -> 1014 bytes public/images/save.png | Bin 0 -> 440 bytes public/images/server_key.png | Bin 0 -> 746 bytes public/images/sort_asc.png | Bin 0 -> 158 bytes public/images/sort_desc.png | Bin 0 -> 157 bytes public/images/stats.png | Bin 0 -> 488 bytes public/images/table_multiple.png | Bin 0 -> 559 bytes public/images/tag_blue.png | Bin 0 -> 586 bytes public/images/tag_blue_add.png | Bin 0 -> 671 bytes public/images/tag_blue_delete.png | Bin 0 -> 701 bytes public/images/task_done.png | Bin 0 -> 137 bytes public/images/task_late.png | Bin 0 -> 93 bytes public/images/task_parent_end.png | Bin 0 -> 224 bytes public/images/task_todo.png | Bin 0 -> 93 bytes public/images/text_list_bullets.png | Bin 0 -> 291 bytes public/images/textfield.png | Bin 0 -> 100 bytes public/images/textfield_key.png | Bin 0 -> 455 bytes public/images/ticket.png | Bin 0 -> 447 bytes public/images/ticket_checked.png | Bin 0 -> 535 bytes public/images/ticket_edit.png | Bin 0 -> 678 bytes public/images/ticket_go.png | Bin 0 -> 608 bytes public/images/ticket_note.png | Bin 0 -> 641 bytes public/images/time.png | Bin 0 -> 740 bytes public/images/time_add.png | Bin 0 -> 774 bytes public/images/toggle_check.png | Bin 0 -> 262 bytes public/images/transparent.png | Bin 0 -> 135 bytes public/images/true.png | Bin 0 -> 248 bytes public/images/unlock.png | Bin 0 -> 448 bytes public/images/user.png | Bin 0 -> 669 bytes public/images/version_marker.png | Bin 0 -> 174 bytes public/images/warning.png | Bin 0 -> 613 bytes public/images/wiki_edit.png | Bin 0 -> 533 bytes public/images/zoom_in.png | Bin 0 -> 680 bytes public/images/zoom_out.png | Bin 0 -> 657 bytes public/javascripts/application.js | 1244 ++++++++++++ public/javascripts/attachments.js | 308 +++ public/javascripts/chart.min.js | 13 + public/javascripts/context_menu.js | 261 +++ public/javascripts/gantt.js | 308 +++ public/javascripts/i18n/datepicker-ar.js | 42 + public/javascripts/i18n/datepicker-az.js | 40 + public/javascripts/i18n/datepicker-bg.js | 41 + public/javascripts/i18n/datepicker-bs.js | 40 + public/javascripts/i18n/datepicker-ca.js | 40 + public/javascripts/i18n/datepicker-cs.js | 40 + public/javascripts/i18n/datepicker-da.js | 40 + public/javascripts/i18n/datepicker-de.js | 40 + public/javascripts/i18n/datepicker-el.js | 40 + public/javascripts/i18n/datepicker-en-GB.js | 40 + public/javascripts/i18n/datepicker-es.js | 40 + public/javascripts/i18n/datepicker-et.js | 48 + public/javascripts/i18n/datepicker-eu.js | 39 + public/javascripts/i18n/datepicker-fa.js | 76 + public/javascripts/i18n/datepicker-fi.js | 40 + public/javascripts/i18n/datepicker-fr.js | 42 + public/javascripts/i18n/datepicker-gl.js | 40 + public/javascripts/i18n/datepicker-he.js | 40 + public/javascripts/i18n/datepicker-hr.js | 40 + public/javascripts/i18n/datepicker-hu.js | 39 + public/javascripts/i18n/datepicker-id.js | 41 + public/javascripts/i18n/datepicker-it.js | 40 + public/javascripts/i18n/datepicker-ja.js | 40 + public/javascripts/i18n/datepicker-ko.js | 40 + public/javascripts/i18n/datepicker-lt.js | 48 + public/javascripts/i18n/datepicker-lv.js | 48 + public/javascripts/i18n/datepicker-mk.js | 40 + public/javascripts/i18n/datepicker-nl.js | 40 + public/javascripts/i18n/datepicker-no.js | 53 + public/javascripts/i18n/datepicker-pl.js | 40 + public/javascripts/i18n/datepicker-pt-BR.js | 48 + public/javascripts/i18n/datepicker-pt.js | 47 + public/javascripts/i18n/datepicker-ro.js | 43 + public/javascripts/i18n/datepicker-ru.js | 40 + public/javascripts/i18n/datepicker-sk.js | 40 + public/javascripts/i18n/datepicker-sl.js | 41 + public/javascripts/i18n/datepicker-sq.js | 40 + public/javascripts/i18n/datepicker-sr.js | 40 + public/javascripts/i18n/datepicker-sv.js | 40 + public/javascripts/i18n/datepicker-th.js | 40 + public/javascripts/i18n/datepicker-tr.js | 40 + public/javascripts/i18n/datepicker-uk.js | 41 + public/javascripts/i18n/datepicker-vi.js | 40 + public/javascripts/i18n/datepicker-zh-CN.js | 40 + public/javascripts/i18n/datepicker-zh-TW.js | 40 + public/javascripts/jquery-3.6.1-ui-1.13.2.js | 9 + public/javascripts/jstoolbar/common_mark.js | 234 +++ public/javascripts/jstoolbar/jstoolbar.js | 569 ++++++ public/javascripts/jstoolbar/lang/jstoolbar-ar.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-az.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-bg.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-bs.js | 18 + public/javascripts/jstoolbar/lang/jstoolbar-ca.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-cs.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-da.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-de.js | 20 + .../javascripts/jstoolbar/lang/jstoolbar-en-gb.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-en.js | 20 + .../javascripts/jstoolbar/lang/jstoolbar-es-pa.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-es.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-et.js | 37 + public/javascripts/jstoolbar/lang/jstoolbar-eu.js | 24 + public/javascripts/jstoolbar/lang/jstoolbar-fa.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-fi.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-fr.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-gl.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-he.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-hr.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-hu.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-id.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-it.js | 23 + public/javascripts/jstoolbar/lang/jstoolbar-ja.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-ko.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-lt.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-lv.js | 21 + public/javascripts/jstoolbar/lang/jstoolbar-mk.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-mn.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-nl.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-no.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-pl.js | 21 + .../javascripts/jstoolbar/lang/jstoolbar-pt-br.js | 22 + public/javascripts/jstoolbar/lang/jstoolbar-pt.js | 21 + public/javascripts/jstoolbar/lang/jstoolbar-ro.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-ru.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-sk.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-sl.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-sq.js | 20 + .../javascripts/jstoolbar/lang/jstoolbar-sr-yu.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-sr.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-sv.js | 20 + .../javascripts/jstoolbar/lang/jstoolbar-ta-in.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-th.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-tr.js | 18 + public/javascripts/jstoolbar/lang/jstoolbar-uk.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-vi.js | 20 + .../javascripts/jstoolbar/lang/jstoolbar-zh-tw.js | 20 + public/javascripts/jstoolbar/lang/jstoolbar-zh.js | 20 + public/javascripts/jstoolbar/markdown.js | 230 +++ public/javascripts/jstoolbar/textile.js | 229 +++ public/javascripts/project_identifier.js | 84 + public/javascripts/raphael.js | 1 + public/javascripts/repository_navigation.js | 39 + public/javascripts/responsive.js | 89 + public/javascripts/revision_graph.js | 112 ++ public/javascripts/tablesort-5.2.1.min.js | 6 + public/javascripts/tablesort-5.2.1.number.min.js | 6 + public/javascripts/tribute-5.1.3.min.js | 2 + public/javascripts/tribute.min.js.map | 1 + public/stylesheets/application.css | 1979 ++++++++++++++++++++ public/stylesheets/context_menu.css | 63 + public/stylesheets/context_menu_rtl.css | 15 + .../jquery/images/ui-icons_444444_256x240.png | Bin 0 -> 7142 bytes .../jquery/images/ui-icons_555555_256x240.png | Bin 0 -> 7126 bytes .../jquery/images/ui-icons_777620_256x240.png | Bin 0 -> 4670 bytes .../jquery/images/ui-icons_777777_256x240.png | Bin 0 -> 7163 bytes .../jquery/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4670 bytes .../jquery/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6539 bytes public/stylesheets/jquery/jquery-ui-1.13.2.css | 7 + public/stylesheets/jstoolbar.css | 163 ++ public/stylesheets/responsive.css | 873 +++++++++ public/stylesheets/rtl.css | 385 ++++ public/stylesheets/scm.css | 143 ++ public/stylesheets/tribute-5.1.3.css | 34 + public/themes/README | 1 + .../themes/alternate/stylesheets/application.css | 95 + public/themes/classic/images/home.png | Bin 0 -> 806 bytes public/themes/classic/images/wrench.png | Bin 0 -> 610 bytes public/themes/classic/stylesheets/application.css | 66 + 272 files changed, 10475 insertions(+), 1 deletion(-) create mode 100644 public/images/3_bullets.png create mode 100644 public/images/add.png create mode 100644 public/images/anonymous.png create mode 100644 public/images/arrow_down.png create mode 100644 public/images/arrow_left.png create mode 100644 public/images/arrow_right.png create mode 100644 public/images/arrow_up.png create mode 100644 public/images/attachment.png create mode 100644 public/images/bullet_add.png create mode 100644 public/images/bullet_black.png create mode 100644 public/images/bullet_blue.png create mode 100644 public/images/bullet_delete.png create mode 100644 public/images/bullet_diamond.png create mode 100644 public/images/bullet_end.png create mode 100644 public/images/bullet_go.png create mode 100644 public/images/bullet_orange.png create mode 100644 public/images/bullet_purple.png create mode 100644 public/images/bullet_toggle_minus.png create mode 100644 public/images/bullet_toggle_plus.png create mode 100644 public/images/calendar.png create mode 100644 public/images/cancel.png create mode 100644 public/images/changeset.png create mode 100644 public/images/close.png create mode 100644 public/images/close_hl.png create mode 100644 public/images/comment.png create mode 100644 public/images/comments.png create mode 100644 public/images/copy.png create mode 100644 public/images/copy_link.png create mode 100644 public/images/database_go.png create mode 100644 public/images/database_key.png create mode 100644 public/images/delete.png create mode 100644 public/images/document.png create mode 100644 public/images/download.png create mode 100644 public/images/duplicate.png create mode 100644 public/images/edit.png create mode 100644 public/images/email.png create mode 100644 public/images/email_add.png create mode 100644 public/images/email_disabled.png create mode 100644 public/images/exclamation.png create mode 100644 public/images/external.png create mode 100644 public/images/false.png create mode 100644 public/images/fav.png create mode 100644 public/images/fav_off.png create mode 100644 public/images/favicon.ico create mode 100644 public/images/feed.png create mode 100644 public/images/files/c.png create mode 100644 public/images/files/csharp.png create mode 100644 public/images/files/css.png create mode 100644 public/images/files/default.png create mode 100644 public/images/files/html.png create mode 100644 public/images/files/image.png create mode 100644 public/images/files/java.png create mode 100644 public/images/files/js.png create mode 100644 public/images/files/pdf.png create mode 100644 public/images/files/php.png create mode 100644 public/images/files/ruby.png create mode 100644 public/images/files/text.png create mode 100644 public/images/files/xml.png create mode 100644 public/images/files/zip.png create mode 100644 public/images/folder.png create mode 100644 public/images/folder_open.png create mode 100644 public/images/folder_open_add.png create mode 100644 public/images/folder_open_orange.png create mode 100644 public/images/group.png create mode 100644 public/images/help.png create mode 100644 public/images/history.png create mode 100644 public/images/hourglass.png create mode 100644 public/images/jstoolbar/bt_bq.png create mode 100644 public/images/jstoolbar/bt_bq_remove.png create mode 100644 public/images/jstoolbar/bt_code.png create mode 100644 public/images/jstoolbar/bt_del.png create mode 100644 public/images/jstoolbar/bt_em.png create mode 100644 public/images/jstoolbar/bt_h1.png create mode 100644 public/images/jstoolbar/bt_h2.png create mode 100644 public/images/jstoolbar/bt_h3.png create mode 100644 public/images/jstoolbar/bt_img.png create mode 100644 public/images/jstoolbar/bt_ins.png create mode 100644 public/images/jstoolbar/bt_link.png create mode 100644 public/images/jstoolbar/bt_ol.png create mode 100644 public/images/jstoolbar/bt_pre.png create mode 100644 public/images/jstoolbar/bt_precode.png create mode 100644 public/images/jstoolbar/bt_strong.png create mode 100644 public/images/jstoolbar/bt_table.png create mode 100644 public/images/jstoolbar/bt_tl.png create mode 100644 public/images/jstoolbar/bt_ul.png create mode 100644 public/images/lightning.png create mode 100644 public/images/link.png create mode 100644 public/images/link_break.png create mode 100644 public/images/loading.gif create mode 100644 public/images/locked.png create mode 100644 public/images/magnifier.png create mode 100644 public/images/message.png create mode 100644 public/images/milestone_done.png create mode 100644 public/images/milestone_late.png create mode 100644 public/images/milestone_todo.png create mode 100644 public/images/move.png create mode 100644 public/images/news.png create mode 100644 public/images/package.png create mode 100644 public/images/plugin.png create mode 100644 public/images/project_marker.png create mode 100644 public/images/projects.png create mode 100644 public/images/reload.png create mode 100644 public/images/reorder.png create mode 100644 public/images/report.png create mode 100644 public/images/save.png create mode 100644 public/images/server_key.png create mode 100644 public/images/sort_asc.png create mode 100644 public/images/sort_desc.png create mode 100644 public/images/stats.png create mode 100644 public/images/table_multiple.png create mode 100644 public/images/tag_blue.png create mode 100644 public/images/tag_blue_add.png create mode 100644 public/images/tag_blue_delete.png create mode 100644 public/images/task_done.png create mode 100644 public/images/task_late.png create mode 100644 public/images/task_parent_end.png create mode 100644 public/images/task_todo.png create mode 100644 public/images/text_list_bullets.png create mode 100644 public/images/textfield.png create mode 100644 public/images/textfield_key.png create mode 100644 public/images/ticket.png create mode 100644 public/images/ticket_checked.png create mode 100644 public/images/ticket_edit.png create mode 100644 public/images/ticket_go.png create mode 100644 public/images/ticket_note.png create mode 100644 public/images/time.png create mode 100644 public/images/time_add.png create mode 100644 public/images/toggle_check.png create mode 100644 public/images/transparent.png create mode 100644 public/images/true.png create mode 100644 public/images/unlock.png create mode 100644 public/images/user.png create mode 100644 public/images/version_marker.png create mode 100644 public/images/warning.png create mode 100644 public/images/wiki_edit.png create mode 100644 public/images/zoom_in.png create mode 100644 public/images/zoom_out.png create mode 100644 public/javascripts/application.js create mode 100644 public/javascripts/attachments.js create mode 100644 public/javascripts/chart.min.js create mode 100644 public/javascripts/context_menu.js create mode 100644 public/javascripts/gantt.js create mode 100644 public/javascripts/i18n/datepicker-ar.js create mode 100644 public/javascripts/i18n/datepicker-az.js create mode 100644 public/javascripts/i18n/datepicker-bg.js create mode 100644 public/javascripts/i18n/datepicker-bs.js create mode 100644 public/javascripts/i18n/datepicker-ca.js create mode 100644 public/javascripts/i18n/datepicker-cs.js create mode 100644 public/javascripts/i18n/datepicker-da.js create mode 100644 public/javascripts/i18n/datepicker-de.js create mode 100644 public/javascripts/i18n/datepicker-el.js create mode 100644 public/javascripts/i18n/datepicker-en-GB.js create mode 100644 public/javascripts/i18n/datepicker-es.js create mode 100644 public/javascripts/i18n/datepicker-et.js create mode 100644 public/javascripts/i18n/datepicker-eu.js create mode 100644 public/javascripts/i18n/datepicker-fa.js create mode 100644 public/javascripts/i18n/datepicker-fi.js create mode 100644 public/javascripts/i18n/datepicker-fr.js create mode 100644 public/javascripts/i18n/datepicker-gl.js create mode 100644 public/javascripts/i18n/datepicker-he.js create mode 100644 public/javascripts/i18n/datepicker-hr.js create mode 100644 public/javascripts/i18n/datepicker-hu.js create mode 100644 public/javascripts/i18n/datepicker-id.js create mode 100644 public/javascripts/i18n/datepicker-it.js create mode 100644 public/javascripts/i18n/datepicker-ja.js create mode 100644 public/javascripts/i18n/datepicker-ko.js create mode 100644 public/javascripts/i18n/datepicker-lt.js create mode 100644 public/javascripts/i18n/datepicker-lv.js create mode 100644 public/javascripts/i18n/datepicker-mk.js create mode 100644 public/javascripts/i18n/datepicker-nl.js create mode 100644 public/javascripts/i18n/datepicker-no.js create mode 100644 public/javascripts/i18n/datepicker-pl.js create mode 100644 public/javascripts/i18n/datepicker-pt-BR.js create mode 100644 public/javascripts/i18n/datepicker-pt.js create mode 100644 public/javascripts/i18n/datepicker-ro.js create mode 100644 public/javascripts/i18n/datepicker-ru.js create mode 100644 public/javascripts/i18n/datepicker-sk.js create mode 100644 public/javascripts/i18n/datepicker-sl.js create mode 100644 public/javascripts/i18n/datepicker-sq.js create mode 100644 public/javascripts/i18n/datepicker-sr.js create mode 100644 public/javascripts/i18n/datepicker-sv.js create mode 100644 public/javascripts/i18n/datepicker-th.js create mode 100644 public/javascripts/i18n/datepicker-tr.js create mode 100644 public/javascripts/i18n/datepicker-uk.js create mode 100644 public/javascripts/i18n/datepicker-vi.js create mode 100644 public/javascripts/i18n/datepicker-zh-CN.js create mode 100644 public/javascripts/i18n/datepicker-zh-TW.js create mode 100644 public/javascripts/jquery-3.6.1-ui-1.13.2.js create mode 100644 public/javascripts/jstoolbar/common_mark.js create mode 100644 public/javascripts/jstoolbar/jstoolbar.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ar.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-az.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-bg.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-bs.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ca.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-cs.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-da.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-de.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-en-gb.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-en.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-es-pa.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-es.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-et.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-eu.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-fa.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-fi.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-fr.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-gl.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-he.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-hr.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-hu.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-id.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-it.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ja.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ko.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-lt.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-lv.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-mk.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-mn.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-nl.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-no.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-pl.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-pt-br.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-pt.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ro.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ru.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sk.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sl.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sq.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sr-yu.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sr.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-sv.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-ta-in.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-th.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-tr.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-uk.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-vi.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js create mode 100644 public/javascripts/jstoolbar/lang/jstoolbar-zh.js create mode 100644 public/javascripts/jstoolbar/markdown.js create mode 100644 public/javascripts/jstoolbar/textile.js create mode 100644 public/javascripts/project_identifier.js create mode 100644 public/javascripts/raphael.js create mode 100644 public/javascripts/repository_navigation.js create mode 100644 public/javascripts/responsive.js create mode 100644 public/javascripts/revision_graph.js create mode 100644 public/javascripts/tablesort-5.2.1.min.js create mode 100644 public/javascripts/tablesort-5.2.1.number.min.js create mode 100644 public/javascripts/tribute-5.1.3.min.js create mode 100644 public/javascripts/tribute.min.js.map create mode 100644 public/stylesheets/application.css create mode 100644 public/stylesheets/context_menu.css create mode 100644 public/stylesheets/context_menu_rtl.css create mode 100644 public/stylesheets/jquery/images/ui-icons_444444_256x240.png create mode 100644 public/stylesheets/jquery/images/ui-icons_555555_256x240.png create mode 100644 public/stylesheets/jquery/images/ui-icons_777620_256x240.png create mode 100644 public/stylesheets/jquery/images/ui-icons_777777_256x240.png create mode 100644 public/stylesheets/jquery/images/ui-icons_cc0000_256x240.png create mode 100644 public/stylesheets/jquery/images/ui-icons_ffffff_256x240.png create mode 100644 public/stylesheets/jquery/jquery-ui-1.13.2.css create mode 100644 public/stylesheets/jstoolbar.css create mode 100644 public/stylesheets/responsive.css create mode 100644 public/stylesheets/rtl.css create mode 100644 public/stylesheets/scm.css create mode 100644 public/stylesheets/tribute-5.1.3.css create mode 100644 public/themes/README create mode 100644 public/themes/alternate/stylesheets/application.css create mode 100644 public/themes/classic/images/home.png create mode 100644 public/themes/classic/images/wrench.png create mode 100644 public/themes/classic/stylesheets/application.css diff --git a/config/initializers/30-redmine.rb b/config/initializers/30-redmine.rb index 01848a0ef..f19373b65 100644 --- a/config/initializers/30-redmine.rb +++ b/config/initializers/30-redmine.rb @@ -24,6 +24,9 @@ Redmine::PluginLoader.load Rails.application.config.to_prepare do default_paths = [] + default_paths << Rails.public_path.join('javascripts') + default_paths << Rails.public_path.join('stylesheets') + default_paths << Rails.public_path.join('images') Rails.application.config.assets.redmine_default_asset_path = Redmine::AssetPath.new(Rails.public_path, default_paths) Redmine::FieldFormat::RecordList.subclasses.each do |klass| diff --git a/lib/redmine/themes.rb b/lib/redmine/themes.rb index 57fcd80d7..14e04f063 100644 --- a/lib/redmine/themes.rb +++ b/lib/redmine/themes.rb @@ -148,7 +148,7 @@ module Redmine end def self.scan_themes - dirs = Dir.glob("#{Rails.root}/app/assets/themes/*").select do |f| + dirs = Dir.glob("#{Rails.public_path}/themes/*").select do |f| # A theme should at least override application.css File.directory?(f) && File.exist?("#{f}/stylesheets/application.css") end diff --git a/public/images/3_bullets.png b/public/images/3_bullets.png new file mode 100644 index 000000000..616593b2a Binary files /dev/null and b/public/images/3_bullets.png differ diff --git a/public/images/add.png b/public/images/add.png new file mode 100644 index 000000000..d6d26db7c Binary files /dev/null and b/public/images/add.png differ diff --git a/public/images/anonymous.png b/public/images/anonymous.png new file mode 100644 index 000000000..5f00a8362 Binary files /dev/null and b/public/images/anonymous.png differ diff --git a/public/images/arrow_down.png b/public/images/arrow_down.png new file mode 100644 index 000000000..fbd0e05d1 Binary files /dev/null and b/public/images/arrow_down.png differ diff --git a/public/images/arrow_left.png b/public/images/arrow_left.png new file mode 100644 index 000000000..c7cc4efdd Binary files /dev/null and b/public/images/arrow_left.png differ diff --git a/public/images/arrow_right.png b/public/images/arrow_right.png new file mode 100644 index 000000000..84ad38339 Binary files /dev/null and b/public/images/arrow_right.png differ diff --git a/public/images/arrow_up.png b/public/images/arrow_up.png new file mode 100644 index 000000000..51bba6e92 Binary files /dev/null and b/public/images/arrow_up.png differ diff --git a/public/images/attachment.png b/public/images/attachment.png new file mode 100644 index 000000000..3762eafec Binary files /dev/null and b/public/images/attachment.png differ diff --git a/public/images/bullet_add.png b/public/images/bullet_add.png new file mode 100644 index 000000000..a3f850dcc Binary files /dev/null and b/public/images/bullet_add.png differ diff --git a/public/images/bullet_black.png b/public/images/bullet_black.png new file mode 100644 index 000000000..6d87f99a9 Binary files /dev/null and b/public/images/bullet_black.png differ diff --git a/public/images/bullet_blue.png b/public/images/bullet_blue.png new file mode 100644 index 000000000..79d978c36 Binary files /dev/null and b/public/images/bullet_blue.png differ diff --git a/public/images/bullet_delete.png b/public/images/bullet_delete.png new file mode 100644 index 000000000..3459293cb Binary files /dev/null and b/public/images/bullet_delete.png differ diff --git a/public/images/bullet_diamond.png b/public/images/bullet_diamond.png new file mode 100644 index 000000000..f68cb7958 Binary files /dev/null and b/public/images/bullet_diamond.png differ diff --git a/public/images/bullet_end.png b/public/images/bullet_end.png new file mode 100644 index 000000000..0ff03323f Binary files /dev/null and b/public/images/bullet_end.png differ diff --git a/public/images/bullet_go.png b/public/images/bullet_go.png new file mode 100644 index 000000000..c724754b3 Binary files /dev/null and b/public/images/bullet_go.png differ diff --git a/public/images/bullet_orange.png b/public/images/bullet_orange.png new file mode 100644 index 000000000..d4b3cd05e Binary files /dev/null and b/public/images/bullet_orange.png differ diff --git a/public/images/bullet_purple.png b/public/images/bullet_purple.png new file mode 100644 index 000000000..58bc636bc Binary files /dev/null and b/public/images/bullet_purple.png differ diff --git a/public/images/bullet_toggle_minus.png b/public/images/bullet_toggle_minus.png new file mode 100644 index 000000000..e4fa65cf1 Binary files /dev/null and b/public/images/bullet_toggle_minus.png differ diff --git a/public/images/bullet_toggle_plus.png b/public/images/bullet_toggle_plus.png new file mode 100644 index 000000000..f7b6a1619 Binary files /dev/null and b/public/images/bullet_toggle_plus.png differ diff --git a/public/images/calendar.png b/public/images/calendar.png new file mode 100644 index 000000000..62df31c93 Binary files /dev/null and b/public/images/calendar.png differ diff --git a/public/images/cancel.png b/public/images/cancel.png new file mode 100644 index 000000000..a98e53705 Binary files /dev/null and b/public/images/cancel.png differ diff --git a/public/images/changeset.png b/public/images/changeset.png new file mode 100644 index 000000000..8bf76fbbe Binary files /dev/null and b/public/images/changeset.png differ diff --git a/public/images/close.png b/public/images/close.png new file mode 100644 index 000000000..3dd76e69c Binary files /dev/null and b/public/images/close.png differ diff --git a/public/images/close_hl.png b/public/images/close_hl.png new file mode 100644 index 000000000..b7667aa80 Binary files /dev/null and b/public/images/close_hl.png differ diff --git a/public/images/comment.png b/public/images/comment.png new file mode 100644 index 000000000..0e848cc07 Binary files /dev/null and b/public/images/comment.png differ diff --git a/public/images/comments.png b/public/images/comments.png new file mode 100644 index 000000000..ef57fdd15 Binary files /dev/null and b/public/images/comments.png differ diff --git a/public/images/copy.png b/public/images/copy.png new file mode 100644 index 000000000..689f251cf Binary files /dev/null and b/public/images/copy.png differ diff --git a/public/images/copy_link.png b/public/images/copy_link.png new file mode 100644 index 000000000..2a2eb09ff Binary files /dev/null and b/public/images/copy_link.png differ diff --git a/public/images/database_go.png b/public/images/database_go.png new file mode 100644 index 000000000..61a8556c4 Binary files /dev/null and b/public/images/database_go.png differ diff --git a/public/images/database_key.png b/public/images/database_key.png new file mode 100644 index 000000000..107e34e5b Binary files /dev/null and b/public/images/database_key.png differ diff --git a/public/images/delete.png b/public/images/delete.png new file mode 100644 index 000000000..ba6256dd5 Binary files /dev/null and b/public/images/delete.png differ diff --git a/public/images/document.png b/public/images/document.png new file mode 100644 index 000000000..883f6404f Binary files /dev/null and b/public/images/document.png differ diff --git a/public/images/download.png b/public/images/download.png new file mode 100644 index 000000000..daf927656 Binary files /dev/null and b/public/images/download.png differ diff --git a/public/images/duplicate.png b/public/images/duplicate.png new file mode 100644 index 000000000..f7d159e5c Binary files /dev/null and b/public/images/duplicate.png differ diff --git a/public/images/edit.png b/public/images/edit.png new file mode 100644 index 000000000..8335716fd Binary files /dev/null and b/public/images/edit.png differ diff --git a/public/images/email.png b/public/images/email.png new file mode 100644 index 000000000..7348aed77 Binary files /dev/null and b/public/images/email.png differ diff --git a/public/images/email_add.png b/public/images/email_add.png new file mode 100644 index 000000000..6c933681f Binary files /dev/null and b/public/images/email_add.png differ diff --git a/public/images/email_disabled.png b/public/images/email_disabled.png new file mode 100644 index 000000000..7aa93e89a Binary files /dev/null and b/public/images/email_disabled.png differ diff --git a/public/images/exclamation.png b/public/images/exclamation.png new file mode 100644 index 000000000..7bd84f7a3 Binary files /dev/null and b/public/images/exclamation.png differ diff --git a/public/images/external.png b/public/images/external.png new file mode 100644 index 000000000..77c202895 Binary files /dev/null and b/public/images/external.png differ diff --git a/public/images/false.png b/public/images/false.png new file mode 100644 index 000000000..ec01ecd32 Binary files /dev/null and b/public/images/false.png differ diff --git a/public/images/fav.png b/public/images/fav.png new file mode 100644 index 000000000..eb43df937 Binary files /dev/null and b/public/images/fav.png differ diff --git a/public/images/fav_off.png b/public/images/fav_off.png new file mode 100644 index 000000000..51372e3fc Binary files /dev/null and b/public/images/fav_off.png differ diff --git a/public/images/favicon.ico b/public/images/favicon.ico new file mode 100644 index 000000000..9d48fcf98 Binary files /dev/null and b/public/images/favicon.ico differ diff --git a/public/images/feed.png b/public/images/feed.png new file mode 100644 index 000000000..23160c348 Binary files /dev/null and b/public/images/feed.png differ diff --git a/public/images/files/c.png b/public/images/files/c.png new file mode 100644 index 000000000..0dff8cfdf Binary files /dev/null and b/public/images/files/c.png differ diff --git a/public/images/files/csharp.png b/public/images/files/csharp.png new file mode 100644 index 000000000..093b1c5e3 Binary files /dev/null and b/public/images/files/csharp.png differ diff --git a/public/images/files/css.png b/public/images/files/css.png new file mode 100644 index 000000000..06a17cd8c Binary files /dev/null and b/public/images/files/css.png differ diff --git a/public/images/files/default.png b/public/images/files/default.png new file mode 100644 index 000000000..22996cd9d Binary files /dev/null and b/public/images/files/default.png differ diff --git a/public/images/files/html.png b/public/images/files/html.png new file mode 100644 index 000000000..6ed2490ed Binary files /dev/null and b/public/images/files/html.png differ diff --git a/public/images/files/image.png b/public/images/files/image.png new file mode 100644 index 000000000..8954d2a55 Binary files /dev/null and b/public/images/files/image.png differ diff --git a/public/images/files/java.png b/public/images/files/java.png new file mode 100644 index 000000000..0a7d6f4a6 Binary files /dev/null and b/public/images/files/java.png differ diff --git a/public/images/files/js.png b/public/images/files/js.png new file mode 100644 index 000000000..0125edfa9 Binary files /dev/null and b/public/images/files/js.png differ diff --git a/public/images/files/pdf.png b/public/images/files/pdf.png new file mode 100644 index 000000000..544e0d877 Binary files /dev/null and b/public/images/files/pdf.png differ diff --git a/public/images/files/php.png b/public/images/files/php.png new file mode 100644 index 000000000..26f2e4d7a Binary files /dev/null and b/public/images/files/php.png differ diff --git a/public/images/files/ruby.png b/public/images/files/ruby.png new file mode 100644 index 000000000..95fb3afed Binary files /dev/null and b/public/images/files/ruby.png differ diff --git a/public/images/files/text.png b/public/images/files/text.png new file mode 100644 index 000000000..b880900bf Binary files /dev/null and b/public/images/files/text.png differ diff --git a/public/images/files/xml.png b/public/images/files/xml.png new file mode 100644 index 000000000..b1b61b5fe Binary files /dev/null and b/public/images/files/xml.png differ diff --git a/public/images/files/zip.png b/public/images/files/zip.png new file mode 100644 index 000000000..914fcc402 Binary files /dev/null and b/public/images/files/zip.png differ diff --git a/public/images/folder.png b/public/images/folder.png new file mode 100644 index 000000000..e20d6823c Binary files /dev/null and b/public/images/folder.png differ diff --git a/public/images/folder_open.png b/public/images/folder_open.png new file mode 100644 index 000000000..9d1e90d2c Binary files /dev/null and b/public/images/folder_open.png differ diff --git a/public/images/folder_open_add.png b/public/images/folder_open_add.png new file mode 100644 index 000000000..6fe9e0322 Binary files /dev/null and b/public/images/folder_open_add.png differ diff --git a/public/images/folder_open_orange.png b/public/images/folder_open_orange.png new file mode 100644 index 000000000..ee6504a90 Binary files /dev/null and b/public/images/folder_open_orange.png differ diff --git a/public/images/group.png b/public/images/group.png new file mode 100644 index 000000000..d80eb2606 Binary files /dev/null and b/public/images/group.png differ diff --git a/public/images/help.png b/public/images/help.png new file mode 100644 index 000000000..d533abd3a Binary files /dev/null and b/public/images/help.png differ diff --git a/public/images/history.png b/public/images/history.png new file mode 100644 index 000000000..4f2c12846 Binary files /dev/null and b/public/images/history.png differ diff --git a/public/images/hourglass.png b/public/images/hourglass.png new file mode 100644 index 000000000..57b03ce7a Binary files /dev/null and b/public/images/hourglass.png differ diff --git a/public/images/jstoolbar/bt_bq.png b/public/images/jstoolbar/bt_bq.png new file mode 100644 index 000000000..d56179504 Binary files /dev/null and b/public/images/jstoolbar/bt_bq.png differ diff --git a/public/images/jstoolbar/bt_bq_remove.png b/public/images/jstoolbar/bt_bq_remove.png new file mode 100644 index 000000000..467957fde Binary files /dev/null and b/public/images/jstoolbar/bt_bq_remove.png differ diff --git a/public/images/jstoolbar/bt_code.png b/public/images/jstoolbar/bt_code.png new file mode 100644 index 000000000..0a6e11652 Binary files /dev/null and b/public/images/jstoolbar/bt_code.png differ diff --git a/public/images/jstoolbar/bt_del.png b/public/images/jstoolbar/bt_del.png new file mode 100644 index 000000000..16bf5fad0 Binary files /dev/null and b/public/images/jstoolbar/bt_del.png differ diff --git a/public/images/jstoolbar/bt_em.png b/public/images/jstoolbar/bt_em.png new file mode 100644 index 000000000..741c3bf5a Binary files /dev/null and b/public/images/jstoolbar/bt_em.png differ diff --git a/public/images/jstoolbar/bt_h1.png b/public/images/jstoolbar/bt_h1.png new file mode 100644 index 000000000..05a1dfd83 Binary files /dev/null and b/public/images/jstoolbar/bt_h1.png differ diff --git a/public/images/jstoolbar/bt_h2.png b/public/images/jstoolbar/bt_h2.png new file mode 100644 index 000000000..d747a5aad Binary files /dev/null and b/public/images/jstoolbar/bt_h2.png differ diff --git a/public/images/jstoolbar/bt_h3.png b/public/images/jstoolbar/bt_h3.png new file mode 100644 index 000000000..b37d4375b Binary files /dev/null and b/public/images/jstoolbar/bt_h3.png differ diff --git a/public/images/jstoolbar/bt_img.png b/public/images/jstoolbar/bt_img.png new file mode 100644 index 000000000..3691d1f1e Binary files /dev/null and b/public/images/jstoolbar/bt_img.png differ diff --git a/public/images/jstoolbar/bt_ins.png b/public/images/jstoolbar/bt_ins.png new file mode 100644 index 000000000..1a6683a36 Binary files /dev/null and b/public/images/jstoolbar/bt_ins.png differ diff --git a/public/images/jstoolbar/bt_link.png b/public/images/jstoolbar/bt_link.png new file mode 100644 index 000000000..74c9e0c51 Binary files /dev/null and b/public/images/jstoolbar/bt_link.png differ diff --git a/public/images/jstoolbar/bt_ol.png b/public/images/jstoolbar/bt_ol.png new file mode 100644 index 000000000..f895ec64d Binary files /dev/null and b/public/images/jstoolbar/bt_ol.png differ diff --git a/public/images/jstoolbar/bt_pre.png b/public/images/jstoolbar/bt_pre.png new file mode 100644 index 000000000..8056ddd49 Binary files /dev/null and b/public/images/jstoolbar/bt_pre.png differ diff --git a/public/images/jstoolbar/bt_precode.png b/public/images/jstoolbar/bt_precode.png new file mode 100644 index 000000000..e093032a7 Binary files /dev/null and b/public/images/jstoolbar/bt_precode.png differ diff --git a/public/images/jstoolbar/bt_strong.png b/public/images/jstoolbar/bt_strong.png new file mode 100644 index 000000000..ff338810b Binary files /dev/null and b/public/images/jstoolbar/bt_strong.png differ diff --git a/public/images/jstoolbar/bt_table.png b/public/images/jstoolbar/bt_table.png new file mode 100644 index 000000000..7d4c0d74f Binary files /dev/null and b/public/images/jstoolbar/bt_table.png differ diff --git a/public/images/jstoolbar/bt_tl.png b/public/images/jstoolbar/bt_tl.png new file mode 100644 index 000000000..4bf58d1de Binary files /dev/null and b/public/images/jstoolbar/bt_tl.png differ diff --git a/public/images/jstoolbar/bt_ul.png b/public/images/jstoolbar/bt_ul.png new file mode 100644 index 000000000..65c39f0f4 Binary files /dev/null and b/public/images/jstoolbar/bt_ul.png differ diff --git a/public/images/lightning.png b/public/images/lightning.png new file mode 100644 index 000000000..81a544fab Binary files /dev/null and b/public/images/lightning.png differ diff --git a/public/images/link.png b/public/images/link.png new file mode 100644 index 000000000..53927566a Binary files /dev/null and b/public/images/link.png differ diff --git a/public/images/link_break.png b/public/images/link_break.png new file mode 100644 index 000000000..523575306 Binary files /dev/null and b/public/images/link_break.png differ diff --git a/public/images/loading.gif b/public/images/loading.gif new file mode 100644 index 000000000..085ccaeca Binary files /dev/null and b/public/images/loading.gif differ diff --git a/public/images/locked.png b/public/images/locked.png new file mode 100644 index 000000000..5c46f15cb Binary files /dev/null and b/public/images/locked.png differ diff --git a/public/images/magnifier.png b/public/images/magnifier.png new file mode 100644 index 000000000..cf3d97f75 Binary files /dev/null and b/public/images/magnifier.png differ diff --git a/public/images/message.png b/public/images/message.png new file mode 100644 index 000000000..bed5f72ec Binary files /dev/null and b/public/images/message.png differ diff --git a/public/images/milestone_done.png b/public/images/milestone_done.png new file mode 100644 index 000000000..5fdcb415c Binary files /dev/null and b/public/images/milestone_done.png differ diff --git a/public/images/milestone_late.png b/public/images/milestone_late.png new file mode 100644 index 000000000..cf922e954 Binary files /dev/null and b/public/images/milestone_late.png differ diff --git a/public/images/milestone_todo.png b/public/images/milestone_todo.png new file mode 100644 index 000000000..4c051c857 Binary files /dev/null and b/public/images/milestone_todo.png differ diff --git a/public/images/move.png b/public/images/move.png new file mode 100644 index 000000000..7f269c366 Binary files /dev/null and b/public/images/move.png differ diff --git a/public/images/news.png b/public/images/news.png new file mode 100644 index 000000000..aa857e75b Binary files /dev/null and b/public/images/news.png differ diff --git a/public/images/package.png b/public/images/package.png new file mode 100644 index 000000000..c35e832da Binary files /dev/null and b/public/images/package.png differ diff --git a/public/images/plugin.png b/public/images/plugin.png new file mode 100644 index 000000000..5a49f577e Binary files /dev/null and b/public/images/plugin.png differ diff --git a/public/images/project_marker.png b/public/images/project_marker.png new file mode 100644 index 000000000..4124787d0 Binary files /dev/null and b/public/images/project_marker.png differ diff --git a/public/images/projects.png b/public/images/projects.png new file mode 100644 index 000000000..018b8b956 Binary files /dev/null and b/public/images/projects.png differ diff --git a/public/images/reload.png b/public/images/reload.png new file mode 100644 index 000000000..384147dca Binary files /dev/null and b/public/images/reload.png differ diff --git a/public/images/reorder.png b/public/images/reorder.png new file mode 100644 index 000000000..5774b68c7 Binary files /dev/null and b/public/images/reorder.png differ diff --git a/public/images/report.png b/public/images/report.png new file mode 100644 index 000000000..4c0f857ca Binary files /dev/null and b/public/images/report.png differ diff --git a/public/images/save.png b/public/images/save.png new file mode 100644 index 000000000..7535814f7 Binary files /dev/null and b/public/images/save.png differ diff --git a/public/images/server_key.png b/public/images/server_key.png new file mode 100644 index 000000000..ecd517425 Binary files /dev/null and b/public/images/server_key.png differ diff --git a/public/images/sort_asc.png b/public/images/sort_asc.png new file mode 100644 index 000000000..fbfbcdfa4 Binary files /dev/null and b/public/images/sort_asc.png differ diff --git a/public/images/sort_desc.png b/public/images/sort_desc.png new file mode 100644 index 000000000..28e977f03 Binary files /dev/null and b/public/images/sort_desc.png differ diff --git a/public/images/stats.png b/public/images/stats.png new file mode 100644 index 000000000..0b120a49b Binary files /dev/null and b/public/images/stats.png differ diff --git a/public/images/table_multiple.png b/public/images/table_multiple.png new file mode 100644 index 000000000..057f4a5e7 Binary files /dev/null and b/public/images/table_multiple.png differ diff --git a/public/images/tag_blue.png b/public/images/tag_blue.png new file mode 100644 index 000000000..9757fc6ed Binary files /dev/null and b/public/images/tag_blue.png differ diff --git a/public/images/tag_blue_add.png b/public/images/tag_blue_add.png new file mode 100644 index 000000000..f135248f8 Binary files /dev/null and b/public/images/tag_blue_add.png differ diff --git a/public/images/tag_blue_delete.png b/public/images/tag_blue_delete.png new file mode 100644 index 000000000..9fbae6725 Binary files /dev/null and b/public/images/tag_blue_delete.png differ diff --git a/public/images/task_done.png b/public/images/task_done.png new file mode 100644 index 000000000..5fdcb415c Binary files /dev/null and b/public/images/task_done.png differ diff --git a/public/images/task_late.png b/public/images/task_late.png new file mode 100644 index 000000000..71fd2d70b Binary files /dev/null and b/public/images/task_late.png differ diff --git a/public/images/task_parent_end.png b/public/images/task_parent_end.png new file mode 100644 index 000000000..9442b86a5 Binary files /dev/null and b/public/images/task_parent_end.png differ diff --git a/public/images/task_todo.png b/public/images/task_todo.png new file mode 100644 index 000000000..632406ee1 Binary files /dev/null and b/public/images/task_todo.png differ diff --git a/public/images/text_list_bullets.png b/public/images/text_list_bullets.png new file mode 100644 index 000000000..008820722 Binary files /dev/null and b/public/images/text_list_bullets.png differ diff --git a/public/images/textfield.png b/public/images/textfield.png new file mode 100644 index 000000000..408c6b027 Binary files /dev/null and b/public/images/textfield.png differ diff --git a/public/images/textfield_key.png b/public/images/textfield_key.png new file mode 100644 index 000000000..a9d5e4f8c Binary files /dev/null and b/public/images/textfield_key.png differ diff --git a/public/images/ticket.png b/public/images/ticket.png new file mode 100644 index 000000000..73756ed47 Binary files /dev/null and b/public/images/ticket.png differ diff --git a/public/images/ticket_checked.png b/public/images/ticket_checked.png new file mode 100644 index 000000000..fc25958ac Binary files /dev/null and b/public/images/ticket_checked.png differ diff --git a/public/images/ticket_edit.png b/public/images/ticket_edit.png new file mode 100644 index 000000000..89df6cba8 Binary files /dev/null and b/public/images/ticket_edit.png differ diff --git a/public/images/ticket_go.png b/public/images/ticket_go.png new file mode 100644 index 000000000..2aaec3813 Binary files /dev/null and b/public/images/ticket_go.png differ diff --git a/public/images/ticket_note.png b/public/images/ticket_note.png new file mode 100644 index 000000000..c8de16573 Binary files /dev/null and b/public/images/ticket_note.png differ diff --git a/public/images/time.png b/public/images/time.png new file mode 100644 index 000000000..fa1bf5f96 Binary files /dev/null and b/public/images/time.png differ diff --git a/public/images/time_add.png b/public/images/time_add.png new file mode 100644 index 000000000..70119f77a Binary files /dev/null and b/public/images/time_add.png differ diff --git a/public/images/toggle_check.png b/public/images/toggle_check.png new file mode 100644 index 000000000..da85f26df Binary files /dev/null and b/public/images/toggle_check.png differ diff --git a/public/images/transparent.png b/public/images/transparent.png new file mode 100644 index 000000000..7235fc5f2 Binary files /dev/null and b/public/images/transparent.png differ diff --git a/public/images/true.png b/public/images/true.png new file mode 100644 index 000000000..a2ed1a378 Binary files /dev/null and b/public/images/true.png differ diff --git a/public/images/unlock.png b/public/images/unlock.png new file mode 100644 index 000000000..0c284d992 Binary files /dev/null and b/public/images/unlock.png differ diff --git a/public/images/user.png b/public/images/user.png new file mode 100644 index 000000000..264381ed2 Binary files /dev/null and b/public/images/user.png differ diff --git a/public/images/version_marker.png b/public/images/version_marker.png new file mode 100644 index 000000000..0368ca290 Binary files /dev/null and b/public/images/version_marker.png differ diff --git a/public/images/warning.png b/public/images/warning.png new file mode 100644 index 000000000..c5e482f84 Binary files /dev/null and b/public/images/warning.png differ diff --git a/public/images/wiki_edit.png b/public/images/wiki_edit.png new file mode 100644 index 000000000..a071e1700 Binary files /dev/null and b/public/images/wiki_edit.png differ diff --git a/public/images/zoom_in.png b/public/images/zoom_in.png new file mode 100644 index 000000000..af4fe0747 Binary files /dev/null and b/public/images/zoom_in.png differ diff --git a/public/images/zoom_out.png b/public/images/zoom_out.png new file mode 100644 index 000000000..81f28199a Binary files /dev/null and b/public/images/zoom_out.png differ diff --git a/public/javascripts/application.js b/public/javascripts/application.js new file mode 100644 index 000000000..007fa6a41 --- /dev/null +++ b/public/javascripts/application.js @@ -0,0 +1,1244 @@ +/** + * Redmine - project management software + * Copyright (C) 2006-2023 Jean-Philippe Lang + * This code is released under the GNU General Public License. + */ + +function sanitizeHTML(string) { + var temp = document.createElement('span'); + temp.textContent = string; + return temp.innerHTML; +} + +function checkAll(id, checked) { + $('#'+id).find('input[type=checkbox]:enabled').prop('checked', checked); +} + +function toggleCheckboxesBySelector(selector) { + var all_checked = true; + $(selector).each(function(index) { + if (!$(this).is(':checked')) { all_checked = false; } + }); + $(selector).prop('checked', !all_checked).trigger('change'); +} + +function showAndScrollTo(id, focus) { + $('#'+id).show(); + if (focus !== null) { + $('#'+focus).focus(); + } + $('html, body').animate({scrollTop: $('#'+id).offset().top}, 100); +} + +function toggleRowGroup(el) { + var tr = $(el).parents('tr').first(); + var n = tr.next(); + tr.toggleClass('open'); + $(el).toggleClass('icon-expanded icon-collapsed'); + while (n.length && !n.hasClass('group')) { + n.toggle(); + n = n.next('tr'); + } +} + +function collapseAllRowGroups(el) { + var tbody = $(el).parents('tbody').first(); + tbody.children('tr').each(function(index) { + if ($(this).hasClass('group')) { + $(this).removeClass('open'); + $(this).find('.expander').switchClass('icon-expanded', 'icon-collapsed'); + } else { + $(this).hide(); + } + }); +} + +function expandAllRowGroups(el) { + var tbody = $(el).parents('tbody').first(); + tbody.children('tr').each(function(index) { + if ($(this).hasClass('group')) { + $(this).addClass('open'); + $(this).find('.expander').switchClass('icon-collapsed', 'icon-expanded'); + } else { + $(this).show(); + } + }); +} + +function toggleAllRowGroups(el) { + var tr = $(el).parents('tr').first(); + if (tr.hasClass('open')) { + collapseAllRowGroups(el); + } else { + expandAllRowGroups(el); + } +} + +function toggleFieldset(el) { + var fieldset = $(el).parents('fieldset').first(); + fieldset.toggleClass('collapsed'); + fieldset.children('legend').toggleClass('icon-expanded icon-collapsed'); + fieldset.children('div').toggle(); +} + +function hideFieldset(el) { + var fieldset = $(el).parents('fieldset').first(); + fieldset.toggleClass('collapsed'); + fieldset.children('div').hide(); +} + +// columns selection +function moveOptions(theSelFrom, theSelTo) { + $(theSelFrom).find('option:selected').detach().prop("selected", false).appendTo($(theSelTo)); +} + +function moveOptionUp(theSel) { + $(theSel).find('option:selected').each(function(){ + $(this).prev(':not(:selected)').detach().insertAfter($(this)); + }); +} + +function moveOptionTop(theSel) { + $(theSel).find('option:selected').detach().prependTo($(theSel)); +} + +function moveOptionDown(theSel) { + $($(theSel).find('option:selected').get().reverse()).each(function(){ + $(this).next(':not(:selected)').detach().insertBefore($(this)); + }); +} + +function moveOptionBottom(theSel) { + $(theSel).find('option:selected').detach().appendTo($(theSel)); +} + +function initFilters() { + $('#add_filter_select').change(function() { + addFilter($(this).val(), '', []); + }); + $('#filters-table .field input[type=checkbox]').each(function() { + toggleFilter($(this).val()); + }); + $('#filters-table').on('click', '.field input[type=checkbox]', function() { + toggleFilter($(this).val()); + }); + $('#filters-table').on('keypress', 'input[type=text]', function(e) { + if (e.keyCode == 13) $(this).closest('form').submit(); + }); +} + +function addFilter(field, operator, values) { + var fieldId = field.replace('.', '_'); + var tr = $('#tr_'+fieldId); + + var filterOptions = availableFilters[field]; + if (!filterOptions) return; + + if (filterOptions['remote'] && filterOptions['values'] == null) { + $.getJSON(filtersUrl, {'name': field}).done(function(data) { + filterOptions['values'] = data; + addFilter(field, operator, values) ; + }); + return; + } + + if (tr.length > 0) { + tr.show(); + } else { + buildFilterRow(field, operator, values); + } + $('#cb_'+fieldId).prop('checked', true); + toggleFilter(field); + toggleMultiSelectIconInit(); + $('#add_filter_select').val('').find('option').each(function() { + if ($(this).attr('value') == field) { + $(this).attr('disabled', true); + } + }); +} + +function buildFilterRow(field, operator, values) { + var fieldId = field.replace('.', '_'); + var filterTable = $("#filters-table"); + var filterOptions = availableFilters[field]; + if (!filterOptions) return; + var operators = operatorByType[filterOptions['type']]; + var filterValues = filterOptions['values']; + var i, select; + + var tr = $('
').attr('id', 'tr_'+fieldId).html( + '
' + + '
' + + '
' + ); + filterTable.append(tr); + + select = tr.find('.operator select'); + for (i = 0; i < operators.length; i++) { + var option = $('').attr('label', filterValue[2]);} + option = optgroup.append(option); + } + } else { + option.val(filterValue).text(filterValue); + if ($.inArray(filterValue, values) > -1) {option.prop('selected', true);} + } + select.append(option); + } + break; + case "date": + case "date_past": + tr.find('.values').append( + '' + + ' ' + + ' '+labelDayPlural+'' + ); + $('#values_'+fieldId+'_1').val(values[0]).datepickerFallback(datepickerOptions); + $('#values_'+fieldId+'_2').val(values[1]).datepickerFallback(datepickerOptions); + $('#values_'+fieldId).val(values[0]); + break; + case "string": + case "text": + case "search": + tr.find('.values').append( + '' + ); + $('#values_'+fieldId).val(values[0]); + break; + case "relation": + tr.find('.values').append( + '' + + '' + ); + $('#values_'+fieldId).val(values[0]); + select = tr.find('.values select'); + for (i = 0; i < filterValues.length; i++) { + var filterValue = filterValues[i]; + var option = $('
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.13.2",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,e="vertical"!==i?(e||100)/100:1;return{height:t.height()*e,width:t.width()*s,outerHeight:t.outerHeight()*e,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(j+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=j+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(o,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=G(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},Y={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){Y[t]=function(t){return Math.pow(t,e+2)}}),V.extend(Y,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(Y,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});y=V.effects,V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,r="show"===o,l=t.direction||"up",h=t.distance,c=t.times||5,o=2*c+(r||a?1:0),u=t.duration/o,d=t.easing,p="up"===l||"down"===l?"top":"left",f="up"===l||"left"===l,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),l=n.css(p),h=h||n["top"==p?"outerHeight":"outerWidth"]()/3,r&&((s={opacity:1})[p]=l,n.css("opacity",0).css(p,f?2*-h:2*h).animate(s,u,d)),a&&(h/=Math.pow(2,c-1)),(s={})[p]=l;g").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,o="hide"===s,a=e.size||15,r=/([0-9]+)%/.exec(a),l=!!e.horizFirst?["right","bottom"]:["bottom","right"],h=e.duration/2,c=V.effects.createPlaceholder(i),u=i.cssClip(),d={clip:V.extend({},u)},p={clip:V.extend({},u)},f=[u[l[0]],u[l[1]]],s=i.queue().length;r&&(a=parseInt(r[1],10)/100*f[o?0:1]),d.clip[l[0]]=a,p.clip[l[0]]=a,p.clip[l[1]]=0,n&&(i.cssClip(p.clip),c&&c.css(V.effects.clipToBox(p)),p.clip=u),i.queue(function(t){c&&c.animate(V.effects.clipToBox(d),h,e.easing).animate(V.effects.clipToBox(p),h,e.easing),t()}).animate(d,h,e.easing).animate(p,h,e.easing).queue(t),V.effects.unshift(i,s,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(c=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*c.y+d.top,f.left=(p.outerWidth-f.outerWidth)*c.x+d.left,g.top=(p.outerHeight-g.outerHeight)*c.y+d.top,g.left=(p.outerWidth-g.outerWidth)*c.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),s=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(s.from.opacity=1,s.to.opacity=0),V.effects.effect.size.call(this,s,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"!==t?("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(a),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(i=i.children(".ui-accordion-header-icon"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(n=s.children(".ui-accordion-header-icon"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,l=t.css("box-sizing"),h=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("