django-spire 0.16.10__py3-none-any.whl → 0.16.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. django_spire/ai/chat/templates/django_spire/ai/chat/dropdown/ellipsis_dropdown.html +2 -2
  2. django_spire/ai/chat/templates/django_spire/ai/chat/widget/search_chat_widget.html +1 -1
  3. django_spire/auth/group/templates/django_spire/auth/group/element/group_perm_element.html +50 -32
  4. django_spire/auth/group/templates/django_spire/auth/group/element/group_special_role_element.html +51 -34
  5. django_spire/auth/templates/django_spire/auth/page/login_page.html +8 -9
  6. django_spire/auth/templates/django_spire/auth/page/logout_page.html +1 -1
  7. django_spire/auth/templates/django_spire/auth/page/password_set_form_page.html +1 -1
  8. django_spire/comment/templates/django_spire/comment/element/comment_button_element.html +4 -4
  9. django_spire/comment/templates/django_spire/comment/element/comment_textarea_element.html +1 -1
  10. django_spire/comment/templates/django_spire/comment/widget/tagging_widget.html +1 -1
  11. django_spire/consts.py +1 -1
  12. django_spire/contrib/form/templates/django_spire/contrib/form/button/form_submit_button.html +1 -1
  13. django_spire/contrib/help/templates/django_spire/contrib/help/help_modal.html +2 -2
  14. django_spire/core/context_processors.py +0 -3
  15. django_spire/core/static/django_spire/css/app-default.css +1 -0
  16. django_spire/core/static/django_spire/css/bootstrap-extension.css +15 -0
  17. django_spire/core/templates/django_spire/badge/accent_badge.html +1 -1
  18. django_spire/core/templates/django_spire/badge/primary_badge.html +1 -1
  19. django_spire/core/templates/django_spire/badge/secondary_badge.html +1 -1
  20. django_spire/core/templates/django_spire/badge/warning_badge.html +1 -1
  21. django_spire/core/templates/django_spire/card/delete_confirmation_form_card.html +1 -1
  22. django_spire/core/templates/django_spire/card/title_card.html +1 -2
  23. django_spire/core/templates/django_spire/dropdown/dropdown.html +1 -1
  24. django_spire/core/templates/django_spire/dropdown/element/dropdown_link_element.html +16 -16
  25. django_spire/core/templates/django_spire/dropdown/element/ellipsis_dropdown_modal_link_element.html +11 -8
  26. django_spire/core/templates/django_spire/filtering/form/base_session_filter_form.html +2 -2
  27. django_spire/core/templates/django_spire/modal/content/dispatch_modal_delete_confirmation_content.html +1 -1
  28. django_spire/core/templates/django_spire/navigation/accordion/nav_accordion.html +0 -1
  29. django_spire/core/templates/django_spire/navigation/top_navigation.html +13 -0
  30. django_spire/core/templates/django_spire/page/center_card_page.html +1 -1
  31. django_spire/core/templates/django_spire/wizard/wizard.html +4 -4
  32. django_spire/help_desk/apps.py +8 -0
  33. django_spire/help_desk/auth/__init__.py +0 -0
  34. django_spire/help_desk/auth/controller.py +15 -0
  35. django_spire/help_desk/templates/django_spire/help_desk/card/ticket_detail_card.html +3 -9
  36. django_spire/help_desk/templates/django_spire/help_desk/card/ticket_list_card.html +9 -10
  37. django_spire/help_desk/templates/django_spire/help_desk/element/icon.html +3 -0
  38. django_spire/help_desk/templates/django_spire/help_desk/form/ticket_form.html +1 -1
  39. django_spire/help_desk/templates/django_spire/help_desk/item/ticket_item.html +33 -32
  40. django_spire/help_desk/views/form_views.py +3 -3
  41. django_spire/help_desk/views/page_views.py +4 -5
  42. django_spire/knowledge/entry/views/json_views.py +1 -1
  43. django_spire/knowledge/templates/django_spire/knowledge/collection/card/context_menu_card.html +5 -5
  44. django_spire/knowledge/templates/django_spire/knowledge/entry/card/context_menu_card.html +5 -5
  45. django_spire/knowledge/templates/django_spire/knowledge/entry/version/block/dropdown/add_dropdown.html +1 -0
  46. django_spire/notification/app/templates/django_spire/notification/app/dropdown/notification_dropdown.html +1 -1
  47. django_spire/notification/app/templates/django_spire/notification/app/dropdown/notification_dropdown_content.html +6 -3
  48. django_spire/settings.py +1 -0
  49. django_spire/theme/templates/django_spire/theme/card/colors_preview_card.html +9 -9
  50. django_spire/theme/templates/django_spire/theme/card/example_preview_card.html +2 -2
  51. django_spire/theme/templates/django_spire/theme/card/preview_card.html +6 -6
  52. django_spire/theme/templates/django_spire/theme/example/item/example_item.html +2 -2
  53. django_spire/theme/templates/django_spire/theme/section/badge_section.html +4 -4
  54. django_spire/theme/templates/django_spire/theme/section/color_section.html +32 -32
  55. {django_spire-0.16.10.dist-info → django_spire-0.16.11.dist-info}/METADATA +1 -1
  56. {django_spire-0.16.10.dist-info → django_spire-0.16.11.dist-info}/RECORD +59 -56
  57. {django_spire-0.16.10.dist-info → django_spire-0.16.11.dist-info}/WHEEL +0 -0
  58. {django_spire-0.16.10.dist-info → django_spire-0.16.11.dist-info}/licenses/LICENSE.md +0 -0
  59. {django_spire-0.16.10.dist-info → django_spire-0.16.11.dist-info}/top_level.txt +0 -0
@@ -11,8 +11,8 @@
11
11
  {% endblock %}
12
12
 
13
13
  {% block dropdown_content %}
14
- {% include 'django_spire/dropdown/element/dropdown_link_element.html' with x_click="enable_rename_chat()" link_text='Rename' %}
14
+ {% include 'django_spire/dropdown/element/dropdown_link_element.html' with x_click="enable_rename_chat()" link_text='Rename' link_css='text-start' %}
15
15
 
16
16
  {% url 'django_spire:ai:chat:template:confirm_delete' pk=recent_chat.id as delete_url %}
17
- {% include 'django_spire/dropdown/element/ellipsis_dropdown_modal_link_element.html' with view_url=delete_url link_text='Delete' link_css='text-app-danger' %}
17
+ {% include 'django_spire/dropdown/element/ellipsis_dropdown_modal_link_element.html' with view_url=delete_url link_text='Delete' link_css='text-app-danger text-start' %}
18
18
  {% endblock %}
@@ -30,7 +30,7 @@
30
30
  @keydown.up="$focus.wrap().previous()"
31
31
  x-show="expanded && search_query.trim() !== ''"
32
32
 
33
- class="position-absolute overflow-auto top-100 start-0 w-100 bg-white border border-bottom-2 rounded-bottom-1 shadow p-0 m-0"
33
+ class="position-absolute overflow-auto top-100 start-0 w-100 border border-bottom-2 rounded-bottom-1 shadow p-0 m-0"
34
34
  style="z-index: 1100;"
35
35
  x-ref="search_results">
36
36
 
@@ -1,40 +1,58 @@
1
- <div x-data="{
2
- current_permission: '{{ perm_data.level_verbose }}',
3
- permission_choices: ['None', 'View', 'Add', 'Change', 'Delete'],
4
- loading: false,
5
- error_message: '',
6
- show_dropdown: false,
7
- async update(perm) {
8
- this.show_dropdown = false
9
- this.error_message = null
10
- if(this.current_permission !== perm) {
11
- this.loading = true
12
- let response = await ajax_request(
13
- 'POST',
14
- '{% url "django_spire:auth:group:json:group_permission_ajax" app_name=perm_data.app_name pk=group.pk %}',
15
- {'perm_level': perm}
16
- )
17
- this.loading = false
18
- let status = response.data.status
19
- if (status === 200){
20
- this.current_permission = perm
21
- } else {
22
- this.error_message = response.data.message
23
- }
24
- }
25
- }
26
- }">
1
+ <div
2
+ x-data="{
3
+ current_permission: '{{ perm_data.level_verbose }}',
4
+ permission_choices: ['None', 'View', 'Add', 'Change', 'Delete'],
5
+ loading: false,
6
+ error_message: '',
7
+ show_dropdown: false,
8
+
9
+ async update(perm) {
10
+ this.show_dropdown = false
11
+ this.error_message = null
12
+
13
+ if(this.current_permission !== perm) {
14
+ this.loading = true
15
+ let response = await ajax_request(
16
+ 'POST',
17
+ '{% url "django_spire:auth:group:json:group_permission_ajax" app_name=perm_data.app_name pk=group.pk %}',
18
+ {'perm_level': perm}
19
+ )
20
+ this.loading = false
21
+ let status = response.data.status
22
+ if (status === 200){
23
+ this.current_permission = perm
24
+ } else {
25
+ this.error_message = response.data.message
26
+ }
27
+ }
28
+ }
29
+ }"
30
+ >
27
31
  <div class="position-relative">
28
32
  <div @click="show_dropdown = true" class="btn btn-sm border dropdown-toggle">
29
33
  <span x-text="current_permission"></span>
30
34
  </div>
31
- <div @click.outside="show_dropdown = false" x-show="show_dropdown" style="width: 80px; z-index: 2"
32
- class="card position-absolute bg-app-layer-three mt-1">
35
+ <div
36
+ style="width: 80px; z-index: 2"
37
+ class="card position-absolute bg-app-layer-one mt-1 border"
38
+ x-show="show_dropdown"
39
+ @click.outside="show_dropdown = false"
40
+ >
33
41
  <template x-for="perm in permission_choices">
34
- <div @click="update(perm)" class="py-1 ps-2 cursor-pointer text-app-primary-hover"
35
- x-bind:class="{ 'border-bottom': perm !== 'Delete' }">
36
- <span class="fs--1" x-bind:class="{ 'text-app-secondary': perm === current_permission }"
37
- x-text="perm"></span>
42
+ <div
43
+ class="py-1 ps-2 cursor-pointer bg-app-layer-three-hover"
44
+ :class="{ 'border-bottom': perm !== 'Delete' }"
45
+ :style="
46
+ perm === 'None' ? 'border-top-left-radius: 0.30rem !important; border-top-right-radius: 0.30rem !important;' :
47
+ perm === 'Delete' ? 'border-bottom-left-radius: 0.30rem !important; border-bottom-right-radius: 0.30rem !important;' : ''
48
+ "
49
+ @click="update(perm)"
50
+ >
51
+ <span
52
+ class="fs--1"
53
+ :class="{ 'text-app-secondary': perm === current_permission }"
54
+ x-text="perm"
55
+ ></span>
38
56
  </div>
39
57
  </template>
40
58
  </div>
@@ -1,43 +1,60 @@
1
- <div x-data="{
2
- has_access: '{{ special_role.has_access }}' === 'True',
3
- get has_access_verbose() { return this.has_access ? 'Yes' : 'No' },
4
- codename: '{{ special_role.codename }}',
5
- permission_choices: ['No', 'Yes'],
6
- loading: false,
7
- error_message: '',
8
- show_dropdown: false,
9
- async update(perm) {
10
- this.show_dropdown = false
11
- this.error_message = null
12
- this.loading = true
13
- let response = await ajax_request(
14
- 'POST',
15
- '{% url "django_spire:auth:group:json:group_special_role_ajax" app_name=perm_data.app_name pk=group.pk %}',
16
- {
17
- 'codename': this.codename,
18
- 'grant_special_role_access': perm === 'Yes'
19
- }
20
- )
21
- this.loading = false
22
- let status = response.data.status
23
- if (status === 200){
24
- this.has_access = perm === 'Yes'
25
- } else {
26
- this.error_message = response.data.message
27
- }
1
+ <div
2
+ x-data="{
3
+ has_access: '{{ special_role.has_access }}' === 'True',
4
+ get has_access_verbose() { return this.has_access ? 'Yes' : 'No' },
5
+ codename: '{{ special_role.codename }}',
6
+ permission_choices: ['No', 'Yes'],
7
+ loading: false,
8
+ error_message: '',
9
+ show_dropdown: false,
10
+
11
+ async update(perm) {
12
+ this.show_dropdown = false
13
+ this.error_message = null
14
+ this.loading = true
15
+ let response = await ajax_request(
16
+ 'POST',
17
+ '{% url "django_spire:auth:group:json:group_special_role_ajax" app_name=perm_data.app_name pk=group.pk %}',
18
+ {
19
+ 'codename': this.codename,
20
+ 'grant_special_role_access': perm === 'Yes'
28
21
  }
29
- }">
22
+ )
23
+ this.loading = false
24
+ let status = response.data.status
25
+ if (status === 200){
26
+ this.has_access = perm === 'Yes'
27
+ } else {
28
+ this.error_message = response.data.message
29
+ }
30
+ }
31
+ }"
32
+ >
30
33
  <div class="position-relative">
31
34
  <div @click="show_dropdown = true" class="btn btn-sm btn-app-primary-outlined dropdown-toggle">
32
35
  <span x-text="has_access_verbose"></span>
33
36
  </div>
34
- <div @click.outside="show_dropdown = false" x-show="show_dropdown" style="width: 80px; z-index: 2"
35
- class="card position-absolute bg-white mt-1">
37
+ <div
38
+ style="width: 80px; z-index: 2"
39
+ class="card position-absolute bg-app-layer-one mt-1 border"
40
+ x-show="show_dropdown"
41
+ @click.outside="show_dropdown = false"
42
+ >
36
43
  <template x-for="perm in permission_choices">
37
- <div @click="update(perm)" class="py-1 ps-2 cursor-pointer bg-soft-primary-hover"
38
- x-bind:class="{ 'border-bottom': perm !== 'Yes' }">
39
- <span class="fs--1" x-bind:class="{ 'text-app-secondary': has_access_verbose === perm }"
40
- x-text="perm"></span>
44
+ <div
45
+ class="py-1 ps-2 cursor-pointer bg-app-layer-three-hover"
46
+ :class="{ 'border-bottom': perm !== 'Yes' }"
47
+ :style="
48
+ perm === 'No' ? 'border-top-left-radius: 0.30rem !important; border-top-right-radius: 0.30rem !important;' :
49
+ perm === 'Yes' ? 'border-bottom-left-radius: 0.30rem !important; border-bottom-right-radius: 0.30rem !important;' : ''
50
+ "
51
+ @click="update(perm)"
52
+ >
53
+ <span
54
+ class="fs--1"
55
+ :class="{ 'text-app-secondary': has_access_verbose === perm }"
56
+ x-text="perm"
57
+ ></span>
41
58
  </div>
42
59
  </template>
43
60
  </div>
@@ -1,11 +1,14 @@
1
1
  {% extends 'django_spire/auth/page/auth_page.html' %}
2
2
 
3
3
  {% block authentication_page_content %}
4
-
5
- <form x-data="{
6
- username: new GlueCharField('username', {required: true}),
7
- password: new GlueCharField('password', {required: true})
8
- }" method="post" class="text-app-secondary">
4
+ <form
5
+ class="text-app-secondary"
6
+ method="post"
7
+ x-data="{
8
+ username: new GlueCharField('username', {required: true, label: {% block username_label %}'Email Address'{% endblock %}}),
9
+ password: new GlueCharField('password', {required: true})
10
+ }"
11
+ >
9
12
  {% csrf_token %}
10
13
  <div class="row">
11
14
  <div class="col">
@@ -30,8 +33,4 @@
30
33
  Forgot my password
31
34
  </a>
32
35
  </div>
33
-
34
36
  {% endblock %}
35
-
36
-
37
-
@@ -15,7 +15,7 @@
15
15
  <div class="col px-4">
16
16
  <form method="post" action="{% url 'django_spire:auth:redirect:logout' %}" class="text-app-secondary">
17
17
  {% csrf_token %}
18
- <button type="submit" class="d-block mx-auto bg-light-primary shadow-sm text-white btn my-4 w-100">Logout</button>
18
+ <button type="submit" class="d-block mx-auto shadow-sm btn my-4 w-100">Logout</button>
19
19
  </form>
20
20
  </div>
21
21
  </div>
@@ -13,7 +13,7 @@
13
13
  </div>
14
14
  <div class="row mt-2">
15
15
  <div class="col">
16
- <button type="submit" class="w-100 btn btn-blue mt-2">Submit</button>
16
+ <button type="submit" class="w-100 btn btn-app-success mt-2">Submit</button>
17
17
  </div>
18
18
  </div>
19
19
  </form>
@@ -122,7 +122,7 @@
122
122
 
123
123
  {% elif button_text %}
124
124
  <button @click="toggle_show_comment_dropdown()"
125
- class="btn bg-white text-business-base-blue rounded border-1 border-business-base-blue btn-sm px-2"
125
+ class="btn text-business-base-blue rounded border-1 border-business-base-blue btn-sm px-2"
126
126
  type="button" data-display="static"
127
127
  aria-haspopup="true" aria-expanded="false">
128
128
  {{ button_text }}
@@ -143,7 +143,7 @@
143
143
 
144
144
  <div style="max-height: 100px; overflow-x: hidden; overflow-y: auto"
145
145
  x-show="show_user_list_dropdown" @click.outside="show_user_list_dropdown = false"
146
- class="text-business-base-blue bg-white fs-0 w-75 ms-3 border rounded position-absolute top-25 start-0">
146
+ class="text-business-base-blue fs-0 w-75 ms-3 border rounded position-absolute top-25 start-0">
147
147
  <template x-for="(user, index) in filtered_users" :key="user.username">
148
148
  <a class="text-decoration-none text-business-base-blue" href="#">
149
149
  <li @click="add_user_to_comment(user)"
@@ -153,7 +153,7 @@
153
153
  </template>
154
154
  </div>
155
155
 
156
- <button @click="$store.page_state.toggle_page_loading_state()" class="btn btn-primary btn-sm w-100 mt-1"
156
+ <button @click="$store.page_state.toggle_page_loading_state()" class="btn btn-app-primary btn-sm w-100 mt-1"
157
157
  type="submit">Submit
158
158
  </button>
159
159
  </form>
@@ -162,4 +162,4 @@
162
162
  </div>
163
163
  </div>
164
164
  </div>
165
- {% endif %}
165
+ {% endif %}
@@ -101,7 +101,7 @@
101
101
  </form>
102
102
 
103
103
  <div style="max-height: 125px; z-index: 2; overflow-x: hidden; overflow-y: auto" x-show="show_user_list" @click.outside="show_user_list=false" x-transition
104
- class="bg-white text-900 w-100 shadow border rounded position-absolute top-50 start-0">
104
+ class="text-900 w-100 shadow border rounded position-absolute top-50 start-0">
105
105
  <template x-if="filtered_users.length > 0">
106
106
  <template x-for="user in filtered_users" :key="user.id">
107
107
  <div @click="add_user_to_comment(user)"
@@ -108,7 +108,7 @@
108
108
  @keydown.up.prevent.stop="$focus.wrap().prev()"
109
109
  @keydown.tab.prevent.stop="$focus.wrap().next()"
110
110
  @keydown.esc.prevent.stop="document.getElementById(id).focus()"
111
- class="bg-white w-100 shadow border border-1 rounded position-absolute top-100 start-0 mt-1">
111
+ class="w-100 shadow border border-1 rounded position-absolute top-100 start-0 mt-1">
112
112
  <template x-if="filtered_users.length > 0">
113
113
  <template x-for="user in filtered_users" :key="user.id">
114
114
  <button
django_spire/consts.py CHANGED
@@ -1,4 +1,4 @@
1
- __VERSION__ = '0.16.10'
1
+ __VERSION__ = '0.16.11'
2
2
 
3
3
 
4
4
  AI_CHAT_WORKFLOW_SENDER_SETTINGS_NAME = 'AI_CHAT_WORKFLOW_NAME'
@@ -36,7 +36,7 @@
36
36
  x-cloak
37
37
  >
38
38
  <div
39
- class="spinner-border text-white spinner-border-sm"
39
+ class="spinner-border spinner-border-sm"
40
40
  role="status"
41
41
  x-transition
42
42
  >
@@ -1,5 +1,5 @@
1
1
  <div
2
- class="modal fade text-dark"
2
+ class="modal fade"
3
3
  id="{{ help_id }}"
4
4
  tabindex="-1"
5
5
  aria-labelledby="exampleModalLabel"
@@ -38,4 +38,4 @@
38
38
  </div>
39
39
  </div>
40
40
  </div>
41
- </div>
41
+ </div>
@@ -20,9 +20,6 @@ def django_spire(request: WSGIRequest) -> dict[str, Any]:
20
20
 
21
21
  return {
22
22
  'DJANGO_SPIRE_VERSION': __VERSION__,
23
- 'app_bootstrap_icon': {
24
- 'help_desk': 'bi bi-headset'
25
- },
26
23
  'AuthController': auth_controller_dict
27
24
  }
28
25
 
@@ -13,4 +13,5 @@ a:visited:hover {
13
13
 
14
14
  body {
15
15
  color: var(--app-default-text-color);
16
+ scrollbar-color: var(--app-bg-secondary) transparent;
16
17
  }
@@ -26,6 +26,21 @@ h1, h2, h3, h4, h5, h6 {
26
26
  box-shadow: rgba(0, 0, 0, 0.1) 0 0.25rem 0.375rem -0.0625rem, rgba(0, 0, 0, 0.06) 0 0.125rem 0.25rem -0.0625rem !important;
27
27
  }
28
28
 
29
+ .dropdown-item {
30
+ border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
31
+ }
32
+
33
+ .dropdown-item:first-child {
34
+ border-top-left-radius: 0.30rem !important;
35
+ border-top-right-radius: 0.30rem !important;
36
+ }
37
+
38
+ .dropdown-item:last-child {
39
+ border-bottom: 0;
40
+ border-bottom-left-radius: 0.30rem !important;
41
+ border-bottom-right-radius: 0.30rem !important;
42
+ }
43
+
29
44
  .cursor-pointer {
30
45
  cursor: pointer !important;
31
46
  }
@@ -1,3 +1,3 @@
1
1
  {% extends 'django_spire/badge/base_badge.html' %}
2
2
 
3
- {% block badge_class %}bg-app-accent text-white{% endblock %}
3
+ {% block badge_class %}bg-app-accent{% endblock %}
@@ -1,3 +1,3 @@
1
1
  {% extends 'django_spire/badge/base_badge.html' %}
2
2
 
3
- {% block badge_class %}bg-app-primary text-white{% endblock %}
3
+ {% block badge_class %}bg-app-primary{% endblock %}
@@ -1,3 +1,3 @@
1
1
  {% extends 'django_spire/badge/base_badge.html' %}
2
2
 
3
- {% block badge_class %}bg-app-secondary text-white{% endblock %}
3
+ {% block badge_class %}bg-app-secondary{% endblock %}
@@ -1,3 +1,3 @@
1
1
  {% extends 'django_spire/badge/base_badge.html' %}
2
2
 
3
- {% block badge_class %}bg-app-warning text-dark{% endblock %}
3
+ {% block badge_class %}bg-app-warning {% endblock %}
@@ -18,7 +18,7 @@
18
18
  <input hidden id="delete_confirmation_should_delete" value="false" name="should_delete" type="text">
19
19
 
20
20
  <div class="col-auto me-3">
21
- {% include 'django_spire/button/danger_dark_button.html' with x_button_click='submit_value(true)' button_text='Delete' %}
21
+ {% include 'django_spire/button/danger_button.html' with x_button_click='submit_value(true)' button_text='Delete' %}
22
22
  </div>
23
23
  <div class="col-auto">
24
24
  {% include 'django_spire/button/secondary_button.html' with x_button_click='submit_value(false)' button_text='Cancel' %}
@@ -17,8 +17,7 @@
17
17
  </div>
18
18
  </div>
19
19
  <div class="col-auto d-flex">
20
- {% block card_button %}
21
- {% endblock %}
20
+ {% block card_button %}{% endblock %}
22
21
  </div>
23
22
  </div>
24
23
  <div x-show="card_title_dropdown" x-cloak x-collapse>
@@ -5,7 +5,7 @@
5
5
  {% endblock %}
6
6
  <div
7
7
  style="{% block dropdown_style %}{% endblock %} z-index: 4;"
8
- class="position-absolute shadow-lg card border-1 mt-1 {% block dropdown_position %}top-100{% endblock %}"
8
+ class="position-absolute shadow-lg card border border-bott mt-1 {% block dropdown_position %}top-100{% endblock %}"
9
9
  x-bind="dialogue"
10
10
  x-cloak
11
11
  >
@@ -1,17 +1,17 @@
1
- <a
2
- class="fs--1 p-0 cursor-pointer text-decoration-none border-bottom text-app-default-text-color"
3
- {% if link_url %}href="{{ link_url }}"{% endif %}
4
- {% if x_link_url %}
5
- x-show="{{ x_link_url }} ? true : false"
6
- :href="{{ x_link_url }}"
7
- {% endif %}
8
- @click="() => {
9
- toggle_dropdown()
10
- {% if x_click %}{{ x_click }}{% endif %}
11
- }"
12
- >
13
- {# Background colours must be applied outside 'a' tag #}
14
- <div class="bg-app-layer-one bg-app-layer-three-hover">
1
+ {# Background colours must be applied outside 'a' tag #}
2
+ <div class="bg-app-layer-one bg-app-layer-three-hover dropdown-item">
3
+ <a
4
+ class="fs--1 p-0 cursor-pointer text-decoration-none text-app-default-text-color"
5
+ {% if link_url %}href="{{ link_url }}"{% endif %}
6
+ {% if x_link_url %}
7
+ x-show="{{ x_link_url }} ? true : false"
8
+ :href="{{ x_link_url }}"
9
+ {% endif %}
10
+ @click="() => {
11
+ toggle_dropdown()
12
+ {% if x_click %}{{ x_click }}{% endif %}
13
+ }"
14
+ >
15
15
  {% block link_content %}
16
16
  <div class="px-3 py-1 text-nowrap {{ link_css }}">
17
17
  {% if link_text %}
@@ -21,5 +21,5 @@
21
21
  {% endif %}
22
22
  </div>
23
23
  {% endblock %}
24
- </div>
25
- </a>
24
+ </a>
25
+ </div>
@@ -1,8 +1,11 @@
1
- <a
2
- @click="dispatch_modal_view('{{ view_url }}'); toggle_dropdown();"
3
- class="border-bottom fs--1 p-0 cursor-pointer text-decoration-none border-bottom bg-app-layer-one bg-app-layer-three-hover text-app-default-text-color"
4
- >
5
- <div class="px-3 py-1 text-nowrap {{ link_css }}">
6
- {{ link_text }}
7
- </div>
8
- </a>
1
+ {# Background colours must be applied outside 'a' tag #}
2
+ <div class="bg-app-layer-one bg-app-layer-three-hover dropdown-item">
3
+ <a
4
+ @click="dispatch_modal_view('{{ view_url }}'); toggle_dropdown();"
5
+ class="border-bottom fs--1 p-0 cursor-pointer text-decoration-none text-app-default-text-color"
6
+ >
7
+ <div class="px-3 py-1 text-nowrap {{ link_css }}">
8
+ {{ link_text }}
9
+ </div>
10
+ </a>
11
+ </div>
@@ -14,14 +14,14 @@
14
14
  type="submit"
15
15
  name="action"
16
16
  value="Filter"
17
- class="btn btn-sm btn-primary float-end"
17
+ class="btn btn-sm btn-app-primary float-end"
18
18
  >
19
19
 
20
20
  <input
21
21
  type="submit"
22
22
  name="action"
23
23
  value="Clear"
24
- class="btn btn-sm btn-secondary me-2 float-end"
24
+ class="btn btn-sm btn-app-secondary me-2 float-end"
25
25
  >
26
26
  </div>
27
27
  {% endblock %}
@@ -21,7 +21,7 @@
21
21
  {% include 'django_glue/form/field/input_field.html' with glue_field='should_delete' %}
22
22
 
23
23
  <div class="d-flex mt-3">
24
- {% include 'django_spire/contrib/form/button/form_submit_button.html' with button_text='Delete' button_class='btn-danger btn-sm shadow-sm' %}
24
+ {% include 'django_spire/contrib/form/button/form_submit_button.html' with button_text='Delete' button_class='btn-app-danger btn-sm shadow-sm' %}
25
25
  <span class="ms-2" @click="close_modal()" >
26
26
  {% include 'django_spire/button/secondary_button.html' with button_text='Cancel' %}
27
27
  </span>
@@ -3,7 +3,6 @@
3
3
  {% block accordion_toggle %}
4
4
  <div
5
5
  class="d-flex justify-content-center align-items-baseline cursor-pointer text-app-link-side-navigation mb-1 ps-1 pe-0"
6
- :class="{'text-app-primary': show_accordion, 'text-white': !show_accordion}"
7
6
  style="width: 150px"
8
7
  >
9
8
  <i class="fs-6 me-2 {% block nav_icon %}{% endblock %}"></i>
@@ -24,12 +24,25 @@
24
24
 
25
25
  <div class="col-auto d-flex">
26
26
  {% block top_navigation_icons %}
27
+ {% if AuthController.help_desk.can_view %}
28
+ {% block help_desk_icon %}
29
+ {% include 'django_spire/help_desk/element/icon.html' %}
30
+ {% endblock %}
31
+ {% endif %}
32
+
33
+
27
34
  {% block theme_selector %}
28
35
  <div>
29
36
  {% include 'django_spire/theme/element/theme_selector.html' with icon_size='fs-2' %}
30
37
  </div>
31
38
  {% endblock %}
32
39
 
40
+ {% block notification_icon %}
41
+ <div>
42
+ {% include 'django_spire/notification/app/element/notification_bell.html' %}
43
+ </div>
44
+ {% endblock %}
45
+
33
46
  <div class="dropdown">
34
47
  <i
35
48
  class="bi bi-person-circle fs-2 mx-2 cursor-pointer"
@@ -6,7 +6,7 @@
6
6
  <div class="rounded-3 p-3">
7
7
  <div class="row ps-3 mt-5">
8
8
  <div class="col-10 col-md-8 col-lg-6 col-xl-4 mx-auto">
9
- <div class="card bg-dark p-5 shadow-lg">
9
+ <div class="card p-5 shadow-lg">
10
10
  <div class="text-center mb-4">
11
11
  <img height="50px" src="{% static '' %}" alt="">
12
12
  </div>
@@ -30,7 +30,7 @@
30
30
  {% block wizard_pagination %}
31
31
  <div class="wizard-footer d-flex justify-content-between align-items-center pt-4">
32
32
  {% block wizard_back_button %}
33
- <button type="button" class="btn btn-secondary" @click="previous_page()" :disabled="current_page === 1">
33
+ <button type="button" class="btn btn-app-secondary" @click="previous_page()" :disabled="current_page === 1">
34
34
  Back
35
35
  </button>
36
36
  {% endblock %}
@@ -43,13 +43,13 @@
43
43
 
44
44
  {% block wizard_next_button %}
45
45
  <template x-if="current_page < total_pages">
46
- <button type="button" class="btn btn-primary" @click="next_page()">Next</button>
46
+ <button type="button" class="btn btn-app-primary" @click="next_page()">Next</button>
47
47
  </template>
48
48
  {% endblock %}
49
49
 
50
50
  {% block wizard_submit_button %}
51
51
  <template x-if="current_page === total_pages">
52
- <button type="button" class="btn btn-success">Submit</button>
52
+ <button type="button" class="btn btn-app-success">Submit</button>
53
53
  </template>
54
54
  {% endblock %}
55
55
  </div>
@@ -57,7 +57,7 @@
57
57
  {% block wizard_progress_bar %}
58
58
  <div class="progress my-2" style="height: 5px;">
59
59
  <div
60
- class="progress-bar"
60
+ class="progress-bar bg-app-primary"
61
61
  :style="{ width: (current_page / total_pages * 100) + '%' }"
62
62
  ></div>
63
63
  </div>