Skip to content
Permalink
Browse files

Release OpenProject 8.2.1

  • Loading branch information...
oliverguenther committed Feb 14, 2019
2 parents f219236 + 9e59f75 commit e260b1ce3909933d850bfe5a5e7e1e4bec1c4b04
Showing with 7,487 additions and 2,713 deletions.
  1. +1 −0 Dockerfile.public
  2. +3 −0 Gemfile
  3. +27 −21 Gemfile.lock
  4. +5 −0 app/assets/javascripts/onboarding/backlogs_tour.js
  5. +2 −2 app/assets/javascripts/onboarding/homescreen_tour.js
  6. +13 −4 app/assets/javascripts/onboarding/work_package_tour.js
  7. +1 −1 app/assets/javascripts/vendor/enjoyhint.js
  8. +1 −1 app/assets/stylesheets/content/_action_menu_main.sass
  9. +11 −9 app/assets/stylesheets/content/_attributes_key_value.sass
  10. +0 −27 app/assets/stylesheets/content/_forms.lsg
  11. +0 −38 app/assets/stylesheets/content/_forms.sass
  12. +2 −9 app/assets/stylesheets/content/_legacy_actions.sass
  13. +13 −10 app/assets/stylesheets/content/_modal.sass
  14. +0 −3 app/assets/stylesheets/content/_notifications_mobile.sass
  15. +8 −6 app/assets/stylesheets/content/_table.sass
  16. +9 −0 app/assets/stylesheets/content/editor/_ckeditor.sass
  17. +3 −0 app/assets/stylesheets/content/work_packages/_table_content.sass
  18. +1 −1 app/assets/stylesheets/content/work_packages/_table_hierarchy.sass
  19. +6 −17 app/assets/stylesheets/content/work_packages/single_view/_single_view.sass
  20. +4 −2 app/assets/stylesheets/content/work_packages/timelines/_timelines_header.sass
  21. +0 −1 app/assets/stylesheets/layout/_drop_down.sass
  22. +2 −10 app/assets/stylesheets/layout/work_packages/_details_view.sass
  23. +1 −1 app/assets/stylesheets/layout/work_packages/_mobile.sass
  24. +3 −0 app/assets/stylesheets/openproject/_generic.sass
  25. +14 −0 app/assets/stylesheets/openproject/_mixins.sass
  26. +0 −2 app/assets/stylesheets/openproject/_onboarding.sass
  27. +2 −1 app/assets/stylesheets/vendor/_enjoyhint.sass
  28. +1 −1 app/cells/members/table_cell.rb
  29. +1 −1 app/controllers/account_controller.rb
  30. +16 −1 app/controllers/application_controller.rb
  31. +1 −1 app/controllers/auth_sources_controller.rb
  32. +1 −1 app/controllers/boards_controller.rb
  33. +2 −3 app/controllers/messages_controller.rb
  34. +1 −1 app/controllers/news_controller.rb
  35. +4 −4 app/controllers/onboarding_controller.rb
  36. +1 −1 app/controllers/repositories_controller.rb
  37. +1 −1 app/controllers/statuses_controller.rb
  38. +1 −1 app/controllers/timelog_controller.rb
  39. +1 −1 app/controllers/types_controller.rb
  40. +2 −2 app/controllers/users_controller.rb
  41. +1 −1 app/controllers/versions_controller.rb
  42. +1 −1 app/controllers/wiki_controller.rb
  43. +36 −0 app/helpers/open_project_error_helper.rb
  44. +44 −0 app/helpers/security_badge_helper.rb
  45. +1 −1 app/models/enumeration.rb
  46. +1 −1 app/models/user.rb
  47. +5 −1 app/seeders/root_seeder.rb
  48. +88 −0 app/services/users/delete_service.rb
  49. +1 −0 app/views/account/_user_consent_check.html.erb
  50. +10 −0 app/views/admin/info.html.erb
  51. +4 −0 app/views/homescreen/blocks/_administration.html.erb
  52. +1 −1 app/views/homescreen/index.html.erb
  53. +1 −1 app/views/messages/show.html.erb
  54. +2 −2 app/views/onboarding/_onboarding_video_modal.html.erb
  55. +6 −0 app/views/settings/_general.html.erb
  56. +2 −2 app/workers/extract_fulltext_job.rb
  57. +9 −0 config/initializers/lograge.rb
  58. +3 −2 config/initializers/secure_headers.rb
  59. +7 −0 config/initializers/security_badge.rb
  60. +6 −0 config/locales/crowdin/af.yml
  61. +6 −0 config/locales/crowdin/ar.yml
  62. +6 −0 config/locales/crowdin/az.yml
  63. +6 −0 config/locales/crowdin/bg.yml
  64. +6 −0 config/locales/crowdin/ca.yml
  65. +96 −88 config/locales/crowdin/cs.yml
  66. +6 −0 config/locales/crowdin/da.yml
  67. +6 −0 config/locales/crowdin/de.yml
  68. +2,740 −0 config/locales/crowdin/el.yml
  69. +27 −21 config/locales/crowdin/es.yml
  70. +6 −0 config/locales/crowdin/et.yml
  71. +6 −0 config/locales/crowdin/fa.yml
  72. +12 −6 config/locales/crowdin/fi.yml
  73. +6 −0 config/locales/crowdin/fil.yml
  74. +11 −5 config/locales/crowdin/fr.yml
  75. +6 −0 config/locales/crowdin/he.yml
  76. +6 −0 config/locales/crowdin/hi.yml
  77. +33 −26 config/locales/crowdin/hr.yml
  78. +7 −1 config/locales/crowdin/hu.yml
  79. +6 −0 config/locales/crowdin/id.yml
  80. +6 −0 config/locales/crowdin/it.yml
  81. +9 −3 config/locales/crowdin/ja.yml
  82. +4 −1 config/locales/crowdin/js-af.yml
  83. +4 −1 config/locales/crowdin/js-ar.yml
  84. +4 −1 config/locales/crowdin/js-az.yml
  85. +4 −1 config/locales/crowdin/js-bg.yml
  86. +4 −1 config/locales/crowdin/js-ca.yml
  87. +46 −43 config/locales/crowdin/js-cs.yml
  88. +4 −1 config/locales/crowdin/js-da.yml
  89. +34 −31 config/locales/crowdin/js-de.yml
  90. +845 −0 config/locales/crowdin/js-el.yml
  91. +86 −76 config/locales/crowdin/js-es.yml
  92. +4 −1 config/locales/crowdin/js-et.yml
  93. +4 −1 config/locales/crowdin/js-fa.yml
  94. +6 −3 config/locales/crowdin/js-fi.yml
  95. +4 −1 config/locales/crowdin/js-fil.yml
  96. +37 −32 config/locales/crowdin/js-fr.yml
  97. +4 −1 config/locales/crowdin/js-he.yml
  98. +4 −1 config/locales/crowdin/js-hi.yml
  99. +4 −1 config/locales/crowdin/js-hr.yml
  100. +4 −1 config/locales/crowdin/js-hu.yml
  101. +4 −1 config/locales/crowdin/js-id.yml
  102. +6 −3 config/locales/crowdin/js-it.yml
  103. +26 −32 config/locales/crowdin/js-ja.yml
  104. +63 −77 config/locales/crowdin/js-ko.yml
  105. +12 −9 config/locales/crowdin/js-lol.yml
  106. +84 −83 config/locales/crowdin/js-lt.yml
  107. +4 −1 config/locales/crowdin/js-lv.yml
  108. +69 −63 config/locales/crowdin/js-nl.yml
  109. +4 −1 config/locales/crowdin/js-no.yml
  110. +78 −75 config/locales/crowdin/js-pl.yml
  111. +36 −32 config/locales/crowdin/js-pt-BR.yml
  112. +87 −84 config/locales/crowdin/js-pt.yml
  113. +4 −1 config/locales/crowdin/js-ro.yml
  114. +9 −6 config/locales/crowdin/js-ru.yml
  115. +313 −307 config/locales/crowdin/js-sk.yml
  116. +4 −1 config/locales/crowdin/js-sv-SE.yml
  117. +4 −1 config/locales/crowdin/js-th.yml
  118. +36 −32 config/locales/crowdin/js-tr.yml
  119. +13 −10 config/locales/crowdin/js-uk.yml
  120. +21 −18 config/locales/crowdin/js-vi.yml
  121. +109 −140 config/locales/crowdin/js-zh-TW.yml
  122. +53 −76 config/locales/crowdin/js-zh.yml
  123. +73 −76 config/locales/crowdin/ko.yml
  124. +8 −6 config/locales/crowdin/lol.yml
  125. +11 −5 config/locales/crowdin/lt.yml
  126. +6 −0 config/locales/crowdin/lv.yml
  127. +26 −21 config/locales/crowdin/nl.yml
  128. +6 −0 config/locales/crowdin/no.yml
  129. +47 −41 config/locales/crowdin/pl.yml
  130. +14 −8 config/locales/crowdin/pt-BR.yml
  131. +114 −104 config/locales/crowdin/pt.yml
  132. +6 −0 config/locales/crowdin/ro.yml
  133. +16 −11 config/locales/crowdin/ru.yml
  134. +567 −548 config/locales/crowdin/sk.yml
  135. +6 −0 config/locales/crowdin/sv-SE.yml
  136. +10 −4 config/locales/crowdin/th.yml
  137. +26 −20 config/locales/crowdin/tr.yml
  138. +19 −13 config/locales/crowdin/uk.yml
  139. +7 −1 config/locales/crowdin/vi.yml
  140. +53 −52 config/locales/crowdin/zh-TW.yml
  141. +26 −21 config/locales/crowdin/zh.yml
  142. +2 −0 config/locales/en.yml
  143. +4 −1 config/locales/js-en.yml
  144. +4 −0 config/settings.yml
  145. +14 −0 docker/entrypoint-all-in-one.sh
  146. +3 −1 docs/installation/packaged/4-faq.md
  147. +166 −0 docs/operations/migrating/packaged/postgresql-migration.md
  148. +1 −1 frontend/src/app/components/op-context-menu/wp-context-menu/wp-single-context-menu.ts
  149. +15 −4 frontend/src/app/components/resizer/wp-resizer.component.ts
  150. +2 −2 frontend/src/app/components/work-packages/wp-single-view/wp-single-view.html
  151. +3 −3 frontend/src/app/components/wp-form-group/wp-attribute-group.template.html
  152. +15 −9 frontend/src/app/components/wp-query-select/wp-static-queries.service.ts
  153. +0 −5 frontend/src/app/globals/browser-specific-flags.ts
  154. +1 −1 lib/api/decorators/linked_resource.rb
  155. +8 −0 lib/api/root.rb
  156. +1 −2 lib/api/v3/users/user_representer.rb
  157. +6 −20 lib/api/v3/users/users_api.rb
  158. +11 −0 lib/open_project.rb
  159. +4 −1 lib/open_project/configuration.rb
  160. +102 −0 lib/open_project/logging/log_delegator.rb
  161. +1 −1 lib/open_project/static/links.rb
  162. +31 −14 lib/open_project/text_formatting/filters/attachment_filter.rb
  163. +50 −0 lib/open_project/text_formatting/filters/relative_link_filter.rb
  164. +1 −0 lib/open_project/text_formatting/formats/markdown/formatter.rb
  165. +74 −0 lib/open_project/text_formatting/helpers/link_rewriter.rb
  166. +6 −4 modules/backlogs/app/helpers/rb_master_backlogs_helper.rb
  167. +106 −0 modules/backlogs/spec/features/onboarding/backogs_onboarding_tour_spec.rb
  168. +1 −1 modules/my_project_page/app/controllers/my_projects_overviews_controller.rb
  169. +10 −2 modules/my_project_page/app/seeders/my_projects_overview_seeder.rb
  170. +25 −19 modules/my_project_page/config/locales/en.seeders.yml
  171. +1 −1 modules/my_project_page/config/locales/en.yml
  172. BIN modules/my_project_page/config/locales/media/en/background-teaser-8-0v6.jpg
  173. BIN modules/my_project_page/config/locales/media/en/demo_project_teaser.png
  174. BIN modules/my_project_page/config/locales/media/en/scrum_project_teaser.png
  175. +1 −1 modules/pdf_export/app/views/export_card_configurations/_rows_format_help.html.erb
  176. +4 −0 modules/reporting/app/models/cost_query/filter/assigned_to_id.rb
  177. +1 −1 modules/reporting/app/models/cost_query/filter/author_id.rb
  178. +2 −1 packaging/scripts/backup
  179. BIN public/favicon.ico
  180. +29 −44 app/services/delete_user_service.rb → spec/features/versions/create_spec.rb
  181. +76 −0 spec/features/work_packages/details/relations/hierarchy_custom_fields_spec.rb
  182. +44 −0 spec/helpers/security_badge_helper_spec.rb
  183. +1 −1 spec/lib/api/v3/queries/query_representer_generation_spec.rb
  184. +4 −4 spec/lib/api/v3/users/user_representer_spec.rb
  185. +29 −5 spec/lib/open_project/text_formatting/markdown/markdown_formatting_spec.rb
  186. +1 −1 spec/requests/api/v3/authentication_spec.rb
  187. +33 −32 spec/requests/api/v3/user/user_resource_spec.rb
  188. BIN spec/support/custom_styles/favicons/favicon_image.png
  189. +1 −1 spec/support/pages/abstract_work_package_create.rb
@@ -7,6 +7,7 @@ ENV HEROKU=true
ENV ATTACHMENTS_STORAGE_PATH=/var/db/openproject/files
ENV RAILS_CACHE_STORE=memcache
ENV SECRET_KEY_BASE=OVERWRITE_ME
ENV OPENPROJECT_INSTALLATION__TYPE=docker

USER root
RUN apt-get update -qq && \
@@ -123,6 +123,9 @@ gem 'secure_headers', '~> 5.0.5'
# Providing health checks
gem 'okcomputer', '~> 1.16.0'

# Lograge to provide sane and non-verbose logging
gem 'lograge', '~> 0.10.0'

gem 'gon', '~> 6.2.0'

# catch exceptions and send them to any airbrake compatible backend
@@ -78,62 +78,62 @@ GIT
PATH
remote: modules/auth_plugins
specs:
openproject-auth_plugins (8.2.0)
openproject-auth_plugins (8.2.1)
omniauth (~> 1.0)
rails (~> 5.0)

PATH
remote: modules/avatars
specs:
openproject-avatars (8.2.0)
openproject-avatars (8.2.1)
fastimage (~> 2.1.0)
gravatar_image_tag (~> 1.2.0)
rails (~> 5.0)

PATH
remote: modules/backlogs
specs:
openproject-backlogs (8.2.0)
openproject-backlogs (8.2.1)
acts_as_silent_list (~> 3.0.0)
openproject-pdf_export (= 8.2.0)
openproject-pdf_export (= 8.2.1)

PATH
remote: modules/costs
specs:
openproject-costs (8.2.0)
openproject-costs (8.2.1)

PATH
remote: modules/documents
specs:
openproject-documents (8.2.0)
openproject-documents (8.2.1)

PATH
remote: modules/github_integration
specs:
openproject-github_integration (8.2.0)
openproject-github_integration (8.2.1)
openproject-webhooks
rails (~> 5.0)

PATH
remote: modules/global_roles
specs:
openproject-global_roles (8.2.0)
openproject-global_roles (8.2.1)

PATH
remote: modules/meeting
specs:
openproject-meeting (8.2.0)
openproject-meeting (8.2.1)
icalendar (~> 2.3.0)

PATH
remote: modules/my_project_page
specs:
openproject-my_project_page (8.2.0)
openproject-my_project_page (8.2.1)

PATH
remote: modules/openid_connect
specs:
openproject-openid_connect (8.2.0)
openproject-openid_connect (8.2.1)
lobby_boy (~> 0.1.3)
omniauth-openid_connect-providers (~> 0.1)
openproject-auth_plugins (~> 8.0)
@@ -142,29 +142,29 @@ PATH
PATH
remote: modules/pdf_export
specs:
openproject-pdf_export (8.2.0)
openproject-pdf_export (8.2.1)
pdf-inspector (~> 1.3.0)
prawn (~> 2.2)

PATH
remote: modules/reporting_engine
specs:
reporting_engine (8.2.0)
reporting_engine (8.2.1)
json
rails (~> 5.1.0)

PATH
remote: modules/reporting
specs:
openproject-reporting (8.2.0)
openproject-reporting (8.2.1)
jquery-tablesorter (~> 1.25.5)
openproject-costs (= 8.2.0)
openproject-costs (= 8.2.1)
reporting_engine (>= 1.1.0)

PATH
remote: modules/two_factor_authentication
specs:
openproject-two_factor_authentication (8.2.0)
openproject-two_factor_authentication (8.2.1)
aws-sdk-sns (~> 1.1.0)
messagebird-rest (~> 1.3.2)
rails (~> 5)
@@ -173,13 +173,13 @@ PATH
PATH
remote: modules/webhooks
specs:
openproject-webhooks (8.2.0)
openproject-webhooks (8.2.1)
rails (~> 5.0)

PATH
remote: modules/xls_export
specs:
openproject-xls_export (8.2.0)
openproject-xls_export (8.2.1)
spreadsheet (~> 0.8.9)

GEM
@@ -397,7 +397,7 @@ GEM
railties (>= 3.0.0)
faker (1.8.4)
i18n (~> 0.5)
fastimage (2.1.4)
fastimage (2.1.5)
ffi (1.9.25)
flamegraph (0.9.5)
fog-aws (0.11.0)
@@ -485,6 +485,11 @@ GEM
omniauth (~> 1.1)
omniauth-openid-connect (>= 0.2.1)
rails (>= 3.2.21)
lograge (0.10.0)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.2.3)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
@@ -545,7 +550,7 @@ GEM
pdf-core (0.7.0)
pdf-inspector (1.3.0)
pdf-reader (>= 1.0, < 3.0.a)
pdf-reader (2.1.0)
pdf-reader (2.2.0)
Ascii85 (~> 1.0.0)
afm (~> 0.2.1)
hashery (~> 2.0)
@@ -871,6 +876,7 @@ DEPENDENCIES
launchy (~> 2.4.3)
letter_opener
livingstyleguide (~> 2.0.1)
lograge (~> 0.10.0)
meta-tags (~> 2.6.0)
multi_json (~> 1.12.1)
mysql2 (~> 0.5.0)
@@ -975,4 +981,4 @@ RUBY VERSION
ruby 2.5.1p57

BUNDLED WITH
1.17.1
1.17.3
@@ -4,13 +4,15 @@
{
'next #content-wrapper': I18n.t('js.onboarding.steps.backlogs_overview'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-dark -hidden-arrow'
},
{
'event_type': 'next',
'selector': '#sprint_backlogs_container .backlog .menu-trigger',
'description': I18n.t('js.onboarding.steps.backlogs_task_board_arrow'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
onNext: function () {
$('#sprint_backlogs_container .backlog .menu-trigger')[0].click();
}
@@ -20,6 +22,7 @@
'selector': '#sprint_backlogs_container .backlog .menu .items',
'description': I18n.t('js.onboarding.steps.backlogs_task_board_select'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-dark',
onNext: function () {
$('#sprint_backlogs_container .backlog .show_task_board')[0].click();
@@ -31,11 +34,13 @@
{
'next #content-wrapper': I18n.t('js.onboarding.steps.backlogs_task_board'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-dark -hidden-arrow'
},
{
'next #main-menu-work-packages-wrapper': I18n.t('js.onboarding.steps.wp_toggler'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
onNext: function () {
$('#main-menu-work-packages')[0].click();
}
@@ -3,7 +3,8 @@
window.homescreenOnboardingTourSteps = [
{
'next #top-menu': I18n.t('js.onboarding.steps.welcome'),
'skipButton': {className: 'enjoyhint_btn-transparent'},
'skipButton': {className: 'enjoyhint_btn-transparent', text: I18n.t('js.onboarding.buttons.skip')},
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-hidden-arrow'
},
{
@@ -12,7 +13,6 @@
'event': 'custom',
'showSkip': false,
'containerClass': '-dark -hidden-arrow',
'containerClass': '-dark -hidden-arrow',
'clickable': true,
onBeforeStart: function () {
// Handle the correct project selection and redirection
@@ -4,30 +4,35 @@
{
'next .wp-table--row': I18n.t('js.onboarding.steps.wp_list'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
onNext: function () {
$(".wp-table--cell-span.id a ")[0].click();
}
},
{
'next .work-packages-full-view--split-left': I18n.t('js.onboarding.steps.wp_full_view'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-dark -hidden-arrow'
},
{
'next .work-packages-list-view-button': I18n.t('js.onboarding.steps.wp_back_button'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
onNext: function () {
$('.work-packages-list-view-button')[0].click();
}
},
{
'next .add-work-package': I18n.t('js.onboarding.steps.wp_create_button'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'shape': 'circle'
},
{
'next .timeline-toolbar--button': I18n.t('js.onboarding.steps.wp_timeline_button'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'shape': 'circle',
onNext: function () {
$('.timeline-toolbar--button')[0].click();
@@ -36,28 +41,32 @@
{
'next .work-packages-tabletimeline--timeline-side': I18n.t('js.onboarding.steps.wp_timeline'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
'containerClass': '-dark -hidden-arrow'
},
{
'next .main-menu--arrow-left-to-project': I18n.t('js.onboarding.steps.sidebar_arrow'),
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
onNext: function () {
$('.main-menu--arrow-left-to-project')[0].click();
}
},
{
'next .members-menu-item': I18n.t('js.onboarding.steps.members'),
'showSkip': false
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
},
{
'next .wiki-menu--main-item': I18n.t('js.onboarding.steps.wiki'),
'showSkip': false
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.next')},
},
{
'next .menu-item--help': I18n.t('js.onboarding.steps.help_menu'),
'shape': 'circle',
'nextButton': {text: I18n.t('js.onboarding.steps.got_it')},
'showSkip': false
'showSkip': false,
'nextButton': {text: I18n.t('js.onboarding.buttons.got_it')}
}
];
});

Some generated files are not rendered by default. Learn more.

Oops, something went wrong.
@@ -31,7 +31,7 @@
ul
list-style-type: none
margin: 0
width: 240px
min-width: 240px
border: 1px solid #dddddd
padding: 3px 0
background: #ffffff
@@ -27,28 +27,30 @@
//++

.attributes-key-value
@include grid-block
@include grid-layout(2)
@include grid-visible-overflow
display: flex
flex-wrap: wrap
font-size: 0.875rem
line-height: 1.6

.attributes-key-value--key
@extend .form--label
@include grid-size(4)
@include text-shortener
display: flex
flex: 1 0 35%
margin-bottom: 0.1875rem
padding: 0.375rem 0 !important
padding: 0.375rem 0
font-weight: bold
align-self: center
// Ensure that the text is shortened while the help icon will be displayed
> wp-replacement-label
@include text-shortener
flex: 0 1 auto

.attributes-key-value--value-container
@include grid-content(8)
@include grid-visible-overflow
display: flex
flex: 1 0 65%
margin-bottom: 0.1875rem
padding: 0 !important
align-self: center
overflow: hidden

&.not-editable
padding: 6px
Oops, something went wrong.

0 comments on commit e260b1c

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.