gema_explorak5 0.7.0
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.
- checksums.yaml +7 -0
- data/lib/gema_explorak5/app/views/dashboard/_dashboard_card.html.erb +284 -0
- data/lib/gema_explorak5/app/views/layout/_application_content.html.erb +292 -0
- data/lib/gema_explorak5/app/views/login/_login_content.html.erb +189 -0
- data/lib/gema_explorak5/app/views/login/_logout_confirm_content.html.erb +131 -0
- data/lib/gema_explorak5/app/views/navbar/_new_nav_header.html.erb +198 -0
- data/lib/gema_explorak5/version.rb +5 -0
- metadata +52 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fb8ddf17b803066b1d7bece7909708d5e16ff2dda986b1017e55d141a1751a45
|
4
|
+
data.tar.gz: 9a70ef1673ba95857c50cb4527443942706b065d1dec0e4012ec79da3cb7a68f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 703c75c79660010788e59b6955e1827ee809bf1a90aa893a444cdc1988b78bbc6a778be7906da3bcf9126dbe26437c86ac34e69a19a44f7b5ddf16e0e6a42c5d
|
7
|
+
data.tar.gz: 76477532b1484fae8210dce53b86fa19b881bc373a38be6b3698df891d92e428aee4435846035493cb6ec4beb050f2cafd7228ede54e6bba7715a897d23f0303
|
@@ -0,0 +1,284 @@
|
|
1
|
+
<style>
|
2
|
+
.ic-DashboardCard__box {
|
3
|
+
margin: auto;
|
4
|
+
text-align: center;
|
5
|
+
padding-left: 10px;
|
6
|
+
}
|
7
|
+
.unpublished_courses_redesign .ic-DashboardCard__box__header {
|
8
|
+
margin-bottom: $ic-sp*5 !important;
|
9
|
+
}
|
10
|
+
.ic-DashboardCard__box__container {
|
11
|
+
margin: direction-sides($ic-sp*-1 0 0 $ic-sp*-3) !important;
|
12
|
+
}
|
13
|
+
@supports (position: sticky) or (position: -webkit-sticky) {
|
14
|
+
.ic-DashboardCard__box {
|
15
|
+
margin: auto;
|
16
|
+
text-align: center;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
.ic-DashboardCard {
|
21
|
+
overflow: visible !important;
|
22
|
+
background: unset !important;
|
23
|
+
width: 240px !important;
|
24
|
+
display: inline-block;
|
25
|
+
vertical-align: top;
|
26
|
+
margin: direction-sides(0 $ic-sp*3 $ic-sp*3 0);
|
27
|
+
text-align: center;
|
28
|
+
position: relative;
|
29
|
+
}
|
30
|
+
|
31
|
+
.ic-DashboardCard__header {
|
32
|
+
overflow: hidden;
|
33
|
+
border-radius: 4px;
|
34
|
+
}
|
35
|
+
|
36
|
+
.ic-DashboardCard__header_hero {
|
37
|
+
border: unset !important;
|
38
|
+
background-color: transparent !important;
|
39
|
+
}
|
40
|
+
|
41
|
+
.ic-DashboardCard__header_image {
|
42
|
+
background-size: 80% 100% !important;
|
43
|
+
background-position: top center !important;
|
44
|
+
}
|
45
|
+
|
46
|
+
.ic-DashboardCard__header_content {
|
47
|
+
height: 90px;
|
48
|
+
margin-top: -15px;
|
49
|
+
display: grid;
|
50
|
+
align-content: center;
|
51
|
+
}
|
52
|
+
.ic-DashboardCard__header-title {
|
53
|
+
font-size: unset !important;
|
54
|
+
white-space: normal;
|
55
|
+
text-align: center;
|
56
|
+
font-family: 'QuickSand';
|
57
|
+
margin-top: -5px;
|
58
|
+
padding-bottom: 5% !important;
|
59
|
+
}
|
60
|
+
|
61
|
+
.ic-DashboardCard__header-title > span{
|
62
|
+
color: white !important;
|
63
|
+
}
|
64
|
+
.ic-DashboardCard__header-subtitle {
|
65
|
+
visibility: hidden;
|
66
|
+
display: none !important;
|
67
|
+
}
|
68
|
+
.ic-DashboardCard__header-term {
|
69
|
+
visibility: hidden;
|
70
|
+
display: none !important;
|
71
|
+
}
|
72
|
+
|
73
|
+
.ic-DashboardCard__action-layout {
|
74
|
+
visibility: hidden;
|
75
|
+
display: none !important;
|
76
|
+
}
|
77
|
+
|
78
|
+
.ic-DashboardCard__action-badge {
|
79
|
+
visibility: hidden;
|
80
|
+
display: none !important;
|
81
|
+
}
|
82
|
+
.ic-DashboardCard__action-container {
|
83
|
+
visibility: hidden;
|
84
|
+
display: none !important;
|
85
|
+
}
|
86
|
+
|
87
|
+
.ic-DashboardCard__link + div{
|
88
|
+
display: none !important;
|
89
|
+
visibility: hidden !important;
|
90
|
+
}
|
91
|
+
.ic-DashboardCard__link {
|
92
|
+
color: white !important;
|
93
|
+
}
|
94
|
+
.punto-notificacion-verde {
|
95
|
+
border-radius: 30px;
|
96
|
+
background-color: limegreen;
|
97
|
+
width: 30px;
|
98
|
+
height: 30px;
|
99
|
+
position: absolute;
|
100
|
+
z-index: 2;
|
101
|
+
top: -10px;
|
102
|
+
padding: 0;
|
103
|
+
margin: 0;
|
104
|
+
box-shadow: 0 0 1px rgb(0 0 0 / 8%), 0 1px 6px rgb(0 0 0 / 8%), 0 5px 5px rgb(0 0 0 /8%);
|
105
|
+
}
|
106
|
+
.punto-notificacion-gris {
|
107
|
+
border-radius: 30px;
|
108
|
+
background-color: gray;
|
109
|
+
width: 30px;
|
110
|
+
height: 30px;
|
111
|
+
position: absolute;
|
112
|
+
z-index: 2;
|
113
|
+
top: -10px;
|
114
|
+
padding: 0;
|
115
|
+
margin: 0;
|
116
|
+
box-shadow: 0 0 1px rgb(0 0 0 / 8%), 0 1px 6px rgb(0 0 0 / 8%), 0 5px 5px rgb(0 0 0 /8%);
|
117
|
+
}
|
118
|
+
.img-logout{
|
119
|
+
height: 50px !important;
|
120
|
+
width: 50px !important;
|
121
|
+
}
|
122
|
+
.avatar-img {
|
123
|
+
height: 100% !important;
|
124
|
+
width: 50px !important;
|
125
|
+
}
|
126
|
+
|
127
|
+
.avatar-img{
|
128
|
+
width: 100px !important;
|
129
|
+
height: 100% !important
|
130
|
+
}
|
131
|
+
.ic-avatar {
|
132
|
+
margin-right: 50px;
|
133
|
+
border: 2px solid #3d88d9 !important;
|
134
|
+
width: 70px !important;
|
135
|
+
height: 70px !important;
|
136
|
+
box-sizing: border-box;
|
137
|
+
display: inline-block;
|
138
|
+
vertical-align: middle;
|
139
|
+
}
|
140
|
+
.ic-Dashboard-header__layout {
|
141
|
+
border-bottom: unset !important;
|
142
|
+
color: #3d88d9
|
143
|
+
}
|
144
|
+
.unpublished_courses_redesign {
|
145
|
+
color: #3d88d9
|
146
|
+
}
|
147
|
+
|
148
|
+
@media (max-width: 767px) {
|
149
|
+
.ic-DashboardCard__header_hero {
|
150
|
+
box-sizing: border-box;
|
151
|
+
background-color: transparent !important;
|
152
|
+
}
|
153
|
+
}
|
154
|
+
@media (max-width: 767px) {
|
155
|
+
.unpublished_courses_redesign .ic-DashboardCard__box__header {
|
156
|
+
font-size: 1em !important;
|
157
|
+
margin-bottom: 0% !important;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
@media only screen and (max-width: 620px) {
|
161
|
+
body.responsive_awareness .ic-DashboardCard {
|
162
|
+
margin-right: 0 !important;
|
163
|
+
}
|
164
|
+
}
|
165
|
+
@media (max-width: 767px) {
|
166
|
+
.ic-DashboardCard__box__container .ic-DashboardCard {
|
167
|
+
width: 100% !important;
|
168
|
+
height: 80% !important;
|
169
|
+
padding-top: 0% !important;
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
@media (max-width: 767px) {
|
174
|
+
.ic-DashboardCard__box__container {
|
175
|
+
margin: 0 !important;;
|
176
|
+
display: grid !important;;
|
177
|
+
grid-template-columns: 1fr 1fr !important;;
|
178
|
+
grid-template-rows: auto !important;;
|
179
|
+
justify-content: space-between !important;;
|
180
|
+
width: 95% !important;;
|
181
|
+
margin-top: 0% !important;;
|
182
|
+
padding-top: 0% !important;;
|
183
|
+
grid-column-gap: 5% !important;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
@media (max-width: 767px) {
|
187
|
+
.unpublished_courses_redesign .ic-DashboardCard__box__container {
|
188
|
+
margin: 0 !important;;
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
@media (max-width: 767px) {
|
193
|
+
.ic-DashboardCard__header-title > span{
|
194
|
+
font-size: 12px !important;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
</style>
|
198
|
+
<%
|
199
|
+
# Copyright (C) 2015 - present Instructure, Inc.
|
200
|
+
#
|
201
|
+
# This file is part of Canvas.
|
202
|
+
#
|
203
|
+
# Canvas is free software: you can redistribute it and/or modify it under
|
204
|
+
# the terms of the GNU Affero General Public License as published by the Free
|
205
|
+
# Software Foundation, version 3 of the License.
|
206
|
+
#
|
207
|
+
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
208
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
209
|
+
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
210
|
+
# details.
|
211
|
+
#
|
212
|
+
# You should have received a copy of the GNU Affero General Public License along
|
213
|
+
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
214
|
+
|
215
|
+
css_bundle :dashboard_card
|
216
|
+
|
217
|
+
default_number_of_fake_dashcards_to_show = 5
|
218
|
+
|
219
|
+
number_of_fake_published_cards_to_show =
|
220
|
+
Rails.cache.read(['last_known_dashboard_cards_published_count', @current_user.global_id].cache_key) ||
|
221
|
+
default_number_of_fake_dashcards_to_show
|
222
|
+
|
223
|
+
number_of_fake_unpublished_cards_to_show =
|
224
|
+
Rails.cache.read(['last_known_dashboard_cards_unpublished_count', @current_user.global_id].cache_key) ||
|
225
|
+
default_number_of_fake_dashcards_to_show
|
226
|
+
|
227
|
+
number_of_fake_cards_to_show =
|
228
|
+
Rails.cache.read(['last_known_dashboard_cards_count', @current_user.global_id].cache_key) ||
|
229
|
+
default_number_of_fake_dashcards_to_show
|
230
|
+
|
231
|
+
render_on_pageload = user_dashboard_view == 'cards'
|
232
|
+
%>
|
233
|
+
<% if render_on_pageload %>
|
234
|
+
<%# fire off these `fetch` requests now so they are ready sooner %>
|
235
|
+
<% if @current_user.roles(@domain_root_account).include?("observer") && @cards_prefetch_observed_param.present? %>
|
236
|
+
<% if !Account.site_admin.feature_enabled?(:dashboard_graphql_integration) %>
|
237
|
+
<%= prefetch_xhr("/api/v1/dashboard/dashboard_cards?observed_user_id=#{@cards_prefetch_observed_param}") %>
|
238
|
+
<% end %>
|
239
|
+
<%= prefetch_xhr("/dashboard-sidebar?observed_user_id=#{@cards_prefetch_observed_param}") %>
|
240
|
+
<% else %>
|
241
|
+
<% if !Account.site_admin.feature_enabled?(:dashboard_graphql_integration) %>
|
242
|
+
<%= prefetch_xhr("/api/v1/dashboard/dashboard_cards") %>
|
243
|
+
<% end %>
|
244
|
+
<%= prefetch_xhr("/dashboard-sidebar") %>
|
245
|
+
<% end %>
|
246
|
+
<% end %>
|
247
|
+
<div id="DashboardCard_Container" style="display: <%= render_on_pageload ? 'block' : 'none' %>">
|
248
|
+
<div class="ic-DashboardCard__box">
|
249
|
+
<% for i in 1..number_of_fake_published_cards_to_show do %>
|
250
|
+
<div class="ic-DashboardCard">
|
251
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="ic-DashboardCard__placeholder-svg" version="1.1" x="0" y="0" viewBox="-1087 618 260 254" xml:space="preserve">
|
252
|
+
<title>Empty Card</title>
|
253
|
+
<g class="ic-DashboardCard__placeholder-animates">
|
254
|
+
<path d="M-1087 618h260v126h-260V618z"/>
|
255
|
+
<rect x="-1062" y="759.5" class="st0" width="184" height="16"/>
|
256
|
+
<rect x="-1062" y="785.5" class="st0" width="106" height="9"/>
|
257
|
+
<circle cx="-1054" cy="842.5" r="8"/>
|
258
|
+
<circle cx="-989" cy="842.5" r="8"/>
|
259
|
+
<circle cx="-924" cy="842.5" r="8"/>
|
260
|
+
<circle cx="-859" cy="842.5" r="8"/>
|
261
|
+
</g>
|
262
|
+
</svg>
|
263
|
+
</div>
|
264
|
+
<% end %>
|
265
|
+
<br/>
|
266
|
+
<% for i in 1..number_of_fake_unpublished_cards_to_show do %>
|
267
|
+
<div class="ic-DashboardCard">
|
268
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="ic-DashboardCard__placeholder-svg" version="1.1" x="0" y="0" viewBox="-1087 618 260 254" xml:space="preserve">
|
269
|
+
<title>Empty Card</title>
|
270
|
+
<g class="ic-DashboardCard__placeholder-animates">
|
271
|
+
<path d="M-1087 618h260v126h-260V618z"/>
|
272
|
+
<rect x="-1062" y="759.5" class="st0" width="184" height="16"/>
|
273
|
+
<rect x="-1062" y="785.5" class="st0" width="106" height="9"/>
|
274
|
+
<circle cx="-1054" cy="842.5" r="8"/>
|
275
|
+
<circle cx="-989" cy="842.5" r="8"/>
|
276
|
+
<circle cx="-924" cy="842.5" r="8"/>
|
277
|
+
<circle cx="-859" cy="842.5" r="8"/>
|
278
|
+
</g>
|
279
|
+
</svg>
|
280
|
+
</div>
|
281
|
+
<% end %>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
</div>
|
@@ -0,0 +1,292 @@
|
|
1
|
+
<%
|
2
|
+
# Copyright (C) 2011 - present Instructure, Inc.
|
3
|
+
#
|
4
|
+
# This file is part of Canvas.
|
5
|
+
#
|
6
|
+
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
+
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
+
# Software Foundation, version 3 of the License.
|
9
|
+
#
|
10
|
+
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
+
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
+
# details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Affero General Public License along
|
16
|
+
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
%>
|
18
|
+
<%-
|
19
|
+
css_bundle(:instructure_eportfolio) if @eportfolio_view === true
|
20
|
+
css_bundle(:new_user_tutorials) if tutorials_enabled?
|
21
|
+
js_bundle(:navigation_header) unless @headers == false
|
22
|
+
|
23
|
+
if @domain_root_account&.feature_enabled?(:top_navigation_placement)
|
24
|
+
js_env INIT_DRAWER_LAYOUT_MUTEX: "init-drawer-layout"
|
25
|
+
js_bundle(:top_navigation_tools)
|
26
|
+
end
|
27
|
+
|
28
|
+
load_blueprint_courses_ui
|
29
|
+
@has_content_notices = load_content_notices
|
30
|
+
provide :head, include_common_stylesheets
|
31
|
+
set_badge_counts_for(@context, @current_user) if @set_badge_counts
|
32
|
+
js_env notices: flash_notices()
|
33
|
+
-%>
|
34
|
+
<%= render :partial => "layouts/head" %>
|
35
|
+
<%-
|
36
|
+
left_side = nil
|
37
|
+
left_side_custom = nil
|
38
|
+
right_side = (yield :right_side).presence
|
39
|
+
|
40
|
+
# Collapse the course menu according to user preference, unless a certain action
|
41
|
+
# requests that it default to collapsed for that page
|
42
|
+
@collapse_course_menu ||= @current_user&.reload&.collapse_course_nav?
|
43
|
+
context_is_course_or_account = @context&.is_a?(Course) || @context&.is_a?(Account)
|
44
|
+
@enhanced_rubrics_enabled = context_is_course_or_account ? @context.feature_enabled?(:enhanced_rubrics) : false
|
45
|
+
|
46
|
+
if @collapse_course_menu
|
47
|
+
subnav_menu_text = t('Show Navigation Menu')
|
48
|
+
subnav_menu_text = t('Show Courses Navigation Menu') if active_path?('/courses')
|
49
|
+
subnav_menu_text = t('Show Account Navigation Menu') if active_path?('/profile')
|
50
|
+
subnav_menu_text = t('Show Admin Navigation Menu') if active_path?('/accounts')
|
51
|
+
subnav_menu_text = t('Show Groups Navigation Menu') if active_path?('/groups')
|
52
|
+
else
|
53
|
+
subnav_menu_text = t('Hide Navigation Menu')
|
54
|
+
subnav_menu_text = t('Hide Courses Navigation Menu') if active_path?('/courses')
|
55
|
+
subnav_menu_text = t('Hide Account Navigation Menu') if active_path?('/profile')
|
56
|
+
subnav_menu_text = t('Hide Admin Navigation Menu') if active_path?('/accounts')
|
57
|
+
subnav_menu_text = t('Hide Groups Navigation Menu') if active_path?('/groups')
|
58
|
+
end
|
59
|
+
|
60
|
+
@collapse_global_nav = @current_user.try(:collapse_global_nav?)
|
61
|
+
@body_class_no_headers = @headers == false
|
62
|
+
@show_embedded_chat = embedded_chat_visible
|
63
|
+
@show_fixed_bottom = (@fixed_warnings.present? || (@real_current_user && @real_current_user != @current_user)) && (!@body_class_no_headers || @outer_frame)
|
64
|
+
body_classes << "no-headers" if @body_class_no_headers
|
65
|
+
unless (body_classes.include? "no-headers") || (@show_left_side == false)
|
66
|
+
left_side = nil
|
67
|
+
skip_for_streaming :left_side, except: ["eportfolios/show", "eportfolio_categories/show", "eportfolio_entries/show"] do
|
68
|
+
left_side = (yield :left_side).presence
|
69
|
+
end
|
70
|
+
@show_left_side ||= (section_tabs.length > 0)
|
71
|
+
end
|
72
|
+
body_classes << "with-left-side" if @show_left_side
|
73
|
+
body_classes << "course-menu-expanded" if body_classes.include?("with-left-side") && !@collapse_course_menu
|
74
|
+
#we dont want to render a right side unless there is actually content in it.
|
75
|
+
body_classes << "with-right-side" if right_side and not right_side.strip.empty?
|
76
|
+
body_classes << "padless-content" if @padless
|
77
|
+
body_classes << "with-embedded-chat" if @show_embedded_chat
|
78
|
+
body_classes << 'with-fixed-bottom' if @show_fixed_bottom
|
79
|
+
body_classes << 'pages' if controller.js_env[:WIKI_PAGE].present?
|
80
|
+
body_classes << get_active_tab
|
81
|
+
body_classes << 'Underline-All-Links__enabled' if @current_user && @current_user.feature_enabled?(:underline_all_links)
|
82
|
+
body_classes << 'is-masquerading-or-student-view' if @real_current_user && @real_current_user != @current_user
|
83
|
+
body_classes << 'primary-nav-expanded' unless @collapse_global_nav
|
84
|
+
body_classes << 'primary-nav-transitions' if @collapse_global_nav
|
85
|
+
# We probably want to consider doing this everywhere, all the time, but when I did
|
86
|
+
# for LS-1745, people complained a lot, so maybe not.
|
87
|
+
body_classes << 'full-width' if @domain_root_account.try(:feature_enabled?, :new_user_tutorial)
|
88
|
+
body_classes << "context-#{@context.asset_string}" if @context
|
89
|
+
body_classes << "responsive_student_grades_page" if !!@domain_root_account&.feature_enabled?(:responsive_student_grades_page)
|
90
|
+
-%>
|
91
|
+
<body class="<%= (body_classes).uniq.join(" ") %>">
|
92
|
+
<%if @current_user && @real_current_user && @real_current_user != @current_user %>
|
93
|
+
<div role="alert" class="screenreader-only">
|
94
|
+
<% if @current_user.fake_student? %>
|
95
|
+
<%= t("You are currently logged into Student View") %>
|
96
|
+
<% else %>
|
97
|
+
<%= t("You are currently acting as %{user_name}", :user_name => @current_user.short_name) %>
|
98
|
+
<% end %>
|
99
|
+
</div>
|
100
|
+
<% end %>
|
101
|
+
<%# Flash messages must be outside of #application or they won't work in screenreaders with modals open. %>
|
102
|
+
<%= render :partial => 'shared/static_notices' %>
|
103
|
+
<%= render :partial => 'shared/flash_notices' %>
|
104
|
+
<%if @domain_root_account&.feature_enabled?(:top_navigation_placement) %>
|
105
|
+
<div id="drawer-layout-mount-point"></div>
|
106
|
+
<% end %>
|
107
|
+
<div id="application" class="ic-app">
|
108
|
+
<%= render(:partial => 'shared/new_nav_header') unless @headers == false %>
|
109
|
+
|
110
|
+
<div id="instructure_ajax_error_box">
|
111
|
+
<div style="text-align: <%= direction('right') %>; background-color: #fff;"><a href="#" class="close_instructure_ajax_error_box_link"><%= t('links.close', 'Close') %></a></div>
|
112
|
+
<iframe id="instructure_ajax_error_result" src="about:blank" style="border: 0;" title="<%= t('Error') %>"></iframe>
|
113
|
+
</div>
|
114
|
+
|
115
|
+
<div id="wrapper" class="ic-Layout-wrapper">
|
116
|
+
<% if crumbs.length > 1 %>
|
117
|
+
<% if @instui_topnav %>
|
118
|
+
<div class="instui-topnav-container">
|
119
|
+
<div id="react-instui-topnav"></div>
|
120
|
+
</div>
|
121
|
+
<% else %>
|
122
|
+
<div class="ic-app-nav-toggle-and-crumbs no-print">
|
123
|
+
<% if @show_left_side %>
|
124
|
+
<button type="button" id="courseMenuToggle" class="Button Button--link ic-app-course-nav-toggle" aria-live="polite" aria-label="<%= subnav_menu_text %>">
|
125
|
+
<i class="icon-hamburger" aria-hidden="true"></i>
|
126
|
+
</button>
|
127
|
+
<% end %>
|
128
|
+
|
129
|
+
<div class="ic-app-crumbs <%= 'ic-app-crumbs-enhanced-rubrics' if @enhanced_rubrics_enabled %>">
|
130
|
+
<% if @context&.is_a?(Course) && @context.elementary_subject_course? %>
|
131
|
+
<%= link_to course_path(id: @context.id), :class => "btn k5-back-to-subject", :id => "back_to_subject" do %>
|
132
|
+
<i class="icon-arrow-open-left"></i> <%= t('Back to Subject') %>
|
133
|
+
<% end %>
|
134
|
+
<% else %>
|
135
|
+
<%= render_crumbs %>
|
136
|
+
<% end %>
|
137
|
+
</div>
|
138
|
+
|
139
|
+
<% if @context&.is_a?(Course) && @context.elementary_subject_course? %>
|
140
|
+
<span class="k5-heading-course-name"><%= @context.nickname_for(@current_user) %></span>
|
141
|
+
<% end %>
|
142
|
+
|
143
|
+
<div class="right-of-crumbs">
|
144
|
+
<% if tutorials_enabled? %>
|
145
|
+
<div class="TutorialToggleHolder"></div>
|
146
|
+
<% end %>
|
147
|
+
<%if @domain_root_account&.feature_enabled?(:top_navigation_placement) %>
|
148
|
+
<div id="top-nav-tools-mount-point"></div>
|
149
|
+
<% end %>
|
150
|
+
<% if show_immersive_reader? %>
|
151
|
+
<div id="immersive_reader_mount_point"></div>
|
152
|
+
<% end %>
|
153
|
+
<% if show_student_view_button? %>
|
154
|
+
<%= link_to course_student_view_path(course_id: @context, redirect_to_referer: 1), :class => "btn btn-top-nav", :id => "easy_student_view", :method => :post, :role => "complementary", :"aria-label" => t("View as Student") do %>
|
155
|
+
<i class="icon-student-view"></i> <%= t('View as Student') %>
|
156
|
+
<% end %>
|
157
|
+
<% end %>
|
158
|
+
<% if (@context&.is_a?(Course) || @context&.is_a?(Assignment)) && @context_enrollment&.observer? %>
|
159
|
+
<div id='observer-picker-mountpoint' style="margin: 3px;"></div>
|
160
|
+
<% end %>
|
161
|
+
</div>
|
162
|
+
|
163
|
+
</div>
|
164
|
+
<% end %>
|
165
|
+
<% end %>
|
166
|
+
<div id="main" class="ic-Layout-columns">
|
167
|
+
<% if !@body_class_no_headers %>
|
168
|
+
<div class="ic-Layout-watermark"></div>
|
169
|
+
<% end %>
|
170
|
+
<% if @show_left_side %>
|
171
|
+
<% if @no_left_side_list_view
|
172
|
+
list_view_class = ''
|
173
|
+
else
|
174
|
+
list_view_class = 'list-view'
|
175
|
+
end
|
176
|
+
%>
|
177
|
+
<div id="left-side"
|
178
|
+
class="ic-app-course-menu ic-sticky-on <%= list_view_class %>"
|
179
|
+
style="display: <%= @collapse_course_menu ? "none" : "block" %>"
|
180
|
+
>
|
181
|
+
<div id="sticky-container" class="ic-sticky-frame">
|
182
|
+
<% if left_side %>
|
183
|
+
<%= left_side %>
|
184
|
+
<% else %>
|
185
|
+
<% if @context && @context.is_a?(Group) && can_do(@context, @current_user, :manage) && @context.group_category %>
|
186
|
+
<span id="group-switch-mount-point"></span>
|
187
|
+
<% end %>
|
188
|
+
<% if @context && @context.respond_to?(:enrollment_term) && !@context.enrollment_term.default_term? %>
|
189
|
+
<span id="section-tabs-header-subtitle" class="ellipsis"><%= @context.enrollment_term.name %></span>
|
190
|
+
<% end %>
|
191
|
+
<%= section_tabs %>
|
192
|
+
<% end %>
|
193
|
+
</div>
|
194
|
+
</div>
|
195
|
+
<% end %>
|
196
|
+
<div id="not_right_side" class="ic-app-main-content">
|
197
|
+
<div id="content-wrapper" class="ic-Layout-contentWrapper">
|
198
|
+
<% if should_show_migration_limitation_message %>
|
199
|
+
<% js_bundle :quiz_migration_alerts %>
|
200
|
+
<div class="ic-notification ic-notification--info quiz_migration_notification">
|
201
|
+
<div class="ic-notification__icon" role="presentation">
|
202
|
+
<i class="icon-info"></i>
|
203
|
+
<span class="screenreader-only">
|
204
|
+
<%= accessible_message_icon_text('information') %>
|
205
|
+
</span>
|
206
|
+
</div>
|
207
|
+
<div class="ic-notification__content">
|
208
|
+
<div class="ic-notification__message notification_message" style="margin-bottom:1rem;">
|
209
|
+
<%= t 'Your Classic Quizzes have been migrated to New Quizzes! ' %><br />
|
210
|
+
<%= t 'Please note:' %>
|
211
|
+
<ul>
|
212
|
+
<li><%= t 'Text No Question has moved to a Stimulus; please add a question so it can display within the quiz.' %></li>
|
213
|
+
</ul>
|
214
|
+
<%= t 'We apologize for the inconvenience and thank you for your patience as we continue to improve the migration experience!' %>
|
215
|
+
</div>
|
216
|
+
<div class="ic-notification__actions">
|
217
|
+
<a href="#"
|
218
|
+
rel="<%= api_v1_course_dismiss_migration_limitation_msg_url(@context.id) %>"
|
219
|
+
class="close_migration_notification_link Button Button--info"
|
220
|
+
role="button"
|
221
|
+
>
|
222
|
+
<%= t('Close') %>
|
223
|
+
</a>
|
224
|
+
</div>
|
225
|
+
</div>
|
226
|
+
</div>
|
227
|
+
<% end %>
|
228
|
+
<%= render :partial => 'shared/content_notices' if @has_content_notices && @show_left_side %>
|
229
|
+
<div id="content" class="ic-Layout-contentMain" role="main">
|
230
|
+
<%= yield %>
|
231
|
+
</div>
|
232
|
+
</div>
|
233
|
+
</div>
|
234
|
+
</div>
|
235
|
+
<% if @show_footer %>
|
236
|
+
<%= render :partial => 'shared/canvas_footer' %>
|
237
|
+
<% end %>
|
238
|
+
</div>
|
239
|
+
|
240
|
+
<% if @show_embedded_chat %>
|
241
|
+
<%= render :partial => 'shared/embedded_chat' %>
|
242
|
+
<% end %>
|
243
|
+
|
244
|
+
<% if @show_fixed_bottom %>
|
245
|
+
<%= render :partial => 'layouts/fixed_bottom' %>
|
246
|
+
<% end %>
|
247
|
+
|
248
|
+
<% if (wizard = (yield :wizard_box).presence) %>
|
249
|
+
<div id="wizard_box" tabindex="-1">
|
250
|
+
<div class="wizard_content">
|
251
|
+
<div class="links">
|
252
|
+
<a href="#" class="close_wizard_link"><i class="icon-x"></i><span class="screenreader-only"><%= t('links.close', 'Close') %></span></a>
|
253
|
+
</div>
|
254
|
+
<%= wizard %>
|
255
|
+
</div>
|
256
|
+
</div>
|
257
|
+
<% end %>
|
258
|
+
<% if (keyboard_navigation = (yield :keyboard_navigation).presence) %>
|
259
|
+
<div id="keyboard_navigation">
|
260
|
+
<%= keyboard_navigation %>
|
261
|
+
<div class='hidden-readable' tabindex='0'>
|
262
|
+
<%= t('keyboard_navigation.close', 'Press comma to close this dialog') %>
|
263
|
+
</div>
|
264
|
+
</div>
|
265
|
+
<% end %>
|
266
|
+
<div style="display:none;"><!-- Everything inside of this should always stay hidden -->
|
267
|
+
<% if @context && session && temp_type = session["role_#{@context.asset_string}"] %>
|
268
|
+
<span id="switched_role_type" class="<%= @context.asset_string %>" data-role="<%= temp_type %>"><%= Enrollment.readable_type(temp_type) %></span>
|
269
|
+
<% end %>
|
270
|
+
<% if @page_view %>
|
271
|
+
<div id="page_view_id"><%= @page_view.id %></div>
|
272
|
+
<% end %>
|
273
|
+
<% if equella_enabled? %>
|
274
|
+
<a id="equella_endpoint_url" href="<%= @equella_settings[:endpoint] %>"> </a>
|
275
|
+
<a id="equella_callback_url" href="<%= external_content_success_url('equella') %>"> </a>
|
276
|
+
<a id="equella_cancel_url" href="<%= external_content_cancel_url('equella') %>"> </a>
|
277
|
+
<a id="equella_action" href="<%= @equella_settings[:default_action] %>"> </a>
|
278
|
+
<% if @equella_settings[:teaser] %>
|
279
|
+
<div id="equella_teaser"><%= @equella_settings[:teaser] %></div>
|
280
|
+
<% end %>
|
281
|
+
<% end %>
|
282
|
+
</div>
|
283
|
+
<div id='aria_alerts' class='hide-text affix' role="alert" aria-live="assertive"></div>
|
284
|
+
<div id='StudentTray__Container'></div>
|
285
|
+
<% if tutorials_enabled? %>
|
286
|
+
<div class="NewUserTutorialTray__Container"></div>
|
287
|
+
<% end %>
|
288
|
+
<div id="react-router-portals"></div>
|
289
|
+
<%= render :partial => 'layouts/foot', :locals => { :include_common_bundle => true } %>
|
290
|
+
</div> <!-- #application -->
|
291
|
+
</body>
|
292
|
+
</html>
|
@@ -0,0 +1,189 @@
|
|
1
|
+
<style>
|
2
|
+
|
3
|
+
body.ic-Login-Body {
|
4
|
+
background-image: url("/images/images_k5/fondo.png") !important;
|
5
|
+
}
|
6
|
+
|
7
|
+
.ic-Login__title {
|
8
|
+
text-align: center;
|
9
|
+
}
|
10
|
+
|
11
|
+
|
12
|
+
.login_links {
|
13
|
+
display: grid;
|
14
|
+
float: right;
|
15
|
+
grid-template-rows: 25px 25px 25px;
|
16
|
+
grid-row-gap: 75px;
|
17
|
+
margin-right: 50px;
|
18
|
+
width: 5%;
|
19
|
+
}
|
20
|
+
|
21
|
+
.ic-Form-control--login .ic-Label {
|
22
|
+
color: var(--ic-brand-Login-Content-label-text-color) !important;
|
23
|
+
}
|
24
|
+
|
25
|
+
.ic-Login__body__error {
|
26
|
+
display: block;
|
27
|
+
position:relative;
|
28
|
+
top: auto;
|
29
|
+
#{direction(left)}: auto;
|
30
|
+
max-width: 400px;
|
31
|
+
}
|
32
|
+
|
33
|
+
.btn-img-login-espol {
|
34
|
+
float: left;
|
35
|
+
width: 6%;
|
36
|
+
margin-left: 30px;
|
37
|
+
margin-top: 10px;
|
38
|
+
background-repeat: no-repeat;
|
39
|
+
height: 120px;
|
40
|
+
background-position: center;
|
41
|
+
background-size: contain;
|
42
|
+
background-color: transparent;
|
43
|
+
border: none;
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
.btn-img-login-vinculos {
|
48
|
+
width: auto;
|
49
|
+
margin-top: 15px;
|
50
|
+
background-repeat: no-repeat;
|
51
|
+
height: 120px;
|
52
|
+
background-position: center;
|
53
|
+
background-size: contain;
|
54
|
+
background-color: transparent;
|
55
|
+
border: none;
|
56
|
+
}
|
57
|
+
.ic-Input{
|
58
|
+
border-radius: 10px !important;
|
59
|
+
}
|
60
|
+
input[type="text"], input[type="password"]{
|
61
|
+
color: #3d88d9 !important;
|
62
|
+
}
|
63
|
+
|
64
|
+
.ic-Login__actions {
|
65
|
+
display: contents !important;
|
66
|
+
}
|
67
|
+
.ic-Login__actions .Button--login {
|
68
|
+
width: 100% !important;
|
69
|
+
border-radius: 20px !important;
|
70
|
+
}
|
71
|
+
</style>
|
72
|
+
<%
|
73
|
+
# Copyright (C) 2015 - present Instructure, Inc.
|
74
|
+
#
|
75
|
+
# This file is part of Canvas.
|
76
|
+
#
|
77
|
+
# Canvas is free software: you can redistribute it and/or modify it under
|
78
|
+
# the terms of the GNU Affero General Public License as published by the Free
|
79
|
+
# Software Foundation, version 3 of the License.
|
80
|
+
#
|
81
|
+
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
82
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
83
|
+
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
84
|
+
# details.
|
85
|
+
#
|
86
|
+
# You should have received a copy of the GNU Affero General Public License along
|
87
|
+
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
88
|
+
%>
|
89
|
+
|
90
|
+
<%
|
91
|
+
login_handle_name = @domain_root_account.login_handle_name_with_inference
|
92
|
+
# disable form submission when previewing from theme editor
|
93
|
+
if params[:previewing_from_themeeditor]
|
94
|
+
login_btn_type = forgot_password_btn_type = "button"
|
95
|
+
else
|
96
|
+
login_btn_type = forgot_password_btn_type = "submit"
|
97
|
+
end
|
98
|
+
unique_id = begin
|
99
|
+
params.dig(:pseudonym_session, :unique_id)&.to_s
|
100
|
+
rescue TypeError
|
101
|
+
nil
|
102
|
+
end
|
103
|
+
%>
|
104
|
+
|
105
|
+
<div>
|
106
|
+
<button onclick="window.open('http://www.espol.edu.ec')" style="background-image:url('/images/images_k5/logoespol.png')" class="btn-img-login-espol" alt="Logo Espol"></button>
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<div class="login_links">
|
110
|
+
<button onclick="window.open('http://www.vinculacion.espol.edu.ec')" style="background-image:url('/images/images_k5/logovinculos.png')" class="btn-img-login-vinculos" alt="Logo Vinculos"></button>
|
111
|
+
</div>
|
112
|
+
|
113
|
+
<div class="ic-Login<%= params[:previewing_from_themeeditor] ? ' ic-Login--previewing' : '' %>">
|
114
|
+
<div class="ic-Login__container">
|
115
|
+
<div class="ic-Login__content">
|
116
|
+
<div class="ic-Login__innerContent">
|
117
|
+
|
118
|
+
<div class="ic-Login-header">
|
119
|
+
<div class="ic-Login-header__logo">
|
120
|
+
<img alt="Explora K5" style="max-width: 75%;" src="https://explorak5.espol.edu.ec/accounts/2/files/27/download?verifier=ptUlRoCsAAAu6FzgMPHeVcNlG7C38fqPE3c4X2vY">
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
|
124
|
+
<div class="ic-Login__body">
|
125
|
+
<%= render "shared/login_fft_helper" %>
|
126
|
+
<%= form_for :pseudonym_session, :url => url_for({ action: :create }.merge(params.slice(:id).to_unsafe_h)), :html => {:id => "login_form"} do |f| %>
|
127
|
+
<h1 class="ui-helper-hidden-accessible">
|
128
|
+
<%= t('log_in', 'Log In') %>
|
129
|
+
</h1>
|
130
|
+
<% login_inner_dialog = yield :login_inner_dialog %>
|
131
|
+
<%= login_inner_dialog if login_inner_dialog && !login_inner_dialog.strip.empty? %>
|
132
|
+
<input type="hidden" name="redirect_to_ssl" value="1"/>
|
133
|
+
<div class="ic-Form-control ic-Form-control--login">
|
134
|
+
<%= f.label :unique_id, login_handle_name, :class => "ic-Label" %>
|
135
|
+
<%= f.text_field :unique_id, :class => "ic-Input text", :value => unique_id, :autofocus => !params[:previewing_from_themeeditor] %>
|
136
|
+
</div>
|
137
|
+
<div class="ic-Form-control ic-Form-control--login">
|
138
|
+
<%= f.label :password, :en => "Password", :class => "ic-Label" %>
|
139
|
+
<%= f.password_field :password, :class => "ic-Input text", :role => "textbox" %>
|
140
|
+
</div>
|
141
|
+
<div class="ic-Login__actions">
|
142
|
+
<div class="ic-Login__actions-timeout">
|
143
|
+
<% unless session_timeout_enabled? %>
|
144
|
+
<%= f.check_box :remember_me, :checked => session[:used_remember_me_token] %>
|
145
|
+
<%= f.label :remember_me, :en => "Stay signed in" %>
|
146
|
+
<% end %>
|
147
|
+
|
148
|
+
<div class="ic-Login__forgot">
|
149
|
+
<%= render "login/canvas/forgot_password_link" %>
|
150
|
+
</div>
|
151
|
+
</div>
|
152
|
+
<br>
|
153
|
+
<div class="ic-Form-control ic-Form-control--login">
|
154
|
+
<button type="<%= login_btn_type %>" class="Button Button--login">
|
155
|
+
<%= t('log_in', 'Log In') %>
|
156
|
+
<img src='/images/images_k5/flecha.svg' style="width: 10%; margin-left: 5%"/>
|
157
|
+
</button>
|
158
|
+
</div>
|
159
|
+
</div> <!-- ic-Login__actions -->
|
160
|
+
<%= render partial: "sso_buttons", locals: { aacs: @aacs_with_buttons } %>
|
161
|
+
<% end %>
|
162
|
+
<%= form_for :pseudonym_session, :url => forgot_password_path, :html => {:id => "forgot_password_form", :style => "display: none;"} do |f| %>
|
163
|
+
<h1 class="ui-helper-hidden-accessible"><%= t('Forgot Password?') %></h1>
|
164
|
+
<p id="forgot_password_instructions" class="ic-Login__forgot-text">
|
165
|
+
<%= t('login_handle', "Enter your %{login_handle_name} and we'll send you a link to change your password.", :login_handle_name => login_handle_name) %>
|
166
|
+
</p>
|
167
|
+
<div class="ic-Form-control ic-Form-control--login">
|
168
|
+
<label for="pseudonym_session_unique_id_forgot" class="ic-Label">
|
169
|
+
<%= login_handle_name %>
|
170
|
+
</label>
|
171
|
+
<input aria-describedby="forgot_password_instructions" class="ic-Input email_address text" type="text" name="pseudonym_session[unique_id_forgot]" value="" id="pseudonym_session_unique_id_forgot" />
|
172
|
+
</div>
|
173
|
+
<div class="ic-Form-control ic-Form-control--login">
|
174
|
+
<div class="ic-Login__actions">
|
175
|
+
<a href="/" ><img src='/images/images_k5/flecha.png' style="width: 10%; transform: rotate(-180deg);"/></a>
|
176
|
+
<%=link_to t('back_to_login', "Back to Login"), login_path, :class => "ic-Login__actions--left ic-Login__link login_link"%>
|
177
|
+
<p></p>
|
178
|
+
<button type="<%= forgot_password_btn_type %>" class="Button Button--login">
|
179
|
+
<%= t('buttons.request_password', 'Request Password') %>
|
180
|
+
<img src='/images/images_k5/flecha.png' style="width: 10%; margin-left: 5%"/>
|
181
|
+
</button>
|
182
|
+
</div> <!-- end ic-Login__actions -->
|
183
|
+
</div>
|
184
|
+
<% end %>
|
185
|
+
</div> <!-- end ic-Login__body -->
|
186
|
+
</div> <!-- end ic-Login__innerContent -->
|
187
|
+
</div> <!-- end ic-Login__content -->
|
188
|
+
</div>
|
189
|
+
</div> <!-- end ic-Login -->
|
@@ -0,0 +1,131 @@
|
|
1
|
+
<style>
|
2
|
+
body{
|
3
|
+
font-size : 0.9rem !important;
|
4
|
+
}
|
5
|
+
body.ic-Login-Body {
|
6
|
+
background-image: url("/images/images_k5/fondo.png") !important;
|
7
|
+
}
|
8
|
+
.ic-Login__title {
|
9
|
+
text-align: center;
|
10
|
+
}
|
11
|
+
|
12
|
+
.btn-img-logout {
|
13
|
+
background-size: 100px;
|
14
|
+
background-repeat: no-repeat;
|
15
|
+
height: 125px;
|
16
|
+
width: 125px;
|
17
|
+
background-color: transparent;
|
18
|
+
border: none;
|
19
|
+
background-position: center;
|
20
|
+
}
|
21
|
+
|
22
|
+
.btn-img-login-espol {
|
23
|
+
float: left;
|
24
|
+
width: 6%;
|
25
|
+
margin-left: 30px;
|
26
|
+
margin-top: 10px;
|
27
|
+
background-repeat: no-repeat;
|
28
|
+
height: 120px;
|
29
|
+
background-position: center;
|
30
|
+
background-size: contain;
|
31
|
+
background-color: transparent;
|
32
|
+
border: none;
|
33
|
+
}
|
34
|
+
.login_links {
|
35
|
+
display: grid;
|
36
|
+
float: right;
|
37
|
+
grid-template-rows: 25px 25px 25px;
|
38
|
+
grid-row-gap: 75px;
|
39
|
+
margin-right: 50px;
|
40
|
+
width: 5%;
|
41
|
+
}
|
42
|
+
|
43
|
+
.btn-img-logout-text {
|
44
|
+
text-decoration: underline;
|
45
|
+
color: white;
|
46
|
+
background: transparent;
|
47
|
+
border: none;
|
48
|
+
}
|
49
|
+
.btn-img-login-vinculos {
|
50
|
+
width: auto;
|
51
|
+
margin-top: 15px;
|
52
|
+
background-repeat: no-repeat;
|
53
|
+
height: 120px;
|
54
|
+
background-position: center;
|
55
|
+
background-size: contain;
|
56
|
+
background-color: transparent;
|
57
|
+
border: none;
|
58
|
+
}
|
59
|
+
</style>
|
60
|
+
<%
|
61
|
+
# Copyright (C) 2014 - present Instructure, Inc.
|
62
|
+
#
|
63
|
+
# This file is part of Canvas.
|
64
|
+
#
|
65
|
+
# Canvas is free software: you can redistribute it and/or modify it under
|
66
|
+
# the terms of the GNU Affero General Public License as published by the Free
|
67
|
+
# Software Foundation, version 3 of the License.
|
68
|
+
#
|
69
|
+
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
70
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
71
|
+
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
72
|
+
# details.
|
73
|
+
#
|
74
|
+
# You should have received a copy of the GNU Affero General Public License along
|
75
|
+
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
76
|
+
%>
|
77
|
+
|
78
|
+
<%
|
79
|
+
css_bundle :login
|
80
|
+
@headers = false
|
81
|
+
provide :page_title, t(:page_title, "Log Out")
|
82
|
+
add_body_class "full-width ic-Login-Body"
|
83
|
+
%>
|
84
|
+
<div>
|
85
|
+
<button onclick="window.open('http://www.espol.edu.ec')" style="background-image:url('/images/images_k5/logoespol.png')" class="btn-img-login-espol" alt="Logo Espol"></button>
|
86
|
+
<!--button onclick="window.open('http://www.midi.espol.edu.ec')" style="background-image: url('/images/images_k5/logomidi.png')" class="btn-img-login-midi" alt="Logo Midi"></button-->
|
87
|
+
</div>
|
88
|
+
|
89
|
+
<div class="login_links">
|
90
|
+
<button onclick="window.open('http://www.vinculacion.espol.edu.ec')" style="background-image:url('/images/images_k5/logovinculos.png')" class="btn-img-login-vinculos" alt="Logo Vinculos"></button>
|
91
|
+
</div>
|
92
|
+
|
93
|
+
<div class="ic-Login">
|
94
|
+
<div class="ic-Login__container">
|
95
|
+
<div class="ic-Login__content">
|
96
|
+
<div class="ic-Login__innerContent">
|
97
|
+
<div class="ic-Login__header" style="max-width: 60%; margin-left: 27%;">
|
98
|
+
<div class="ic-Login-header__logo">
|
99
|
+
<img alt="Explora K5" style="max-width: 75%;" src="https://explorak5.espol.edu.ec/accounts/2/files/27/download?verifier=ptUlRoCsAAAu6FzgMPHeVcNlG7C38fqPE3c4X2vY">
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
<div class="ic-Login__body">
|
103
|
+
<h1 class="ic-Login__title" style="font-family: Quicksand">
|
104
|
+
<%= t 'log_out', 'Log Out' %>
|
105
|
+
</h1>
|
106
|
+
<p class="ic-Login__text" style="font-family: Quicksand; text-align: center">
|
107
|
+
<%= t 'details.log_out', 'Are you sure you want to log out of Canvas?' %>
|
108
|
+
</p>
|
109
|
+
<%= form_tag logout_path, method: :delete do %>
|
110
|
+
<div class="ic-Login__actions" style="display: flex; gap: 10%; margin-right: 10%; margin-left: 10%;">
|
111
|
+
<div style="display: grid;">
|
112
|
+
<button type="submit" class="btn-img-logout" id="Button--logout-confirm" style="background-image: url('/images/images_k5/salir.svg'); background-size: 90px" alt="Cerrar sesión"></button>
|
113
|
+
<button type="submit" id="Button--logout-confirm" class="btn-img-logout-text" style="font-family: Quicksand">
|
114
|
+
<%= t("Log Out") %>
|
115
|
+
</button>
|
116
|
+
</div>
|
117
|
+
<div style="display: grid;">
|
118
|
+
<button class="btn-img-logout" style="background-image:url('/images/images_k5/cancelar.svg'); font-family: Quicksand" alt="Cancelar">
|
119
|
+
<%= link_to(t(:cancel, "Cancel"), '/', :class => "ic-Login__link", :style => "color: transparent !important") %>
|
120
|
+
</button>
|
121
|
+
<button class="btn-img-logout-text" style="font-family: Quicksand">
|
122
|
+
<%= link_to(t(:cancel, "Cancel"), '/', :class => "ic-Login__link") %>
|
123
|
+
</button>
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
<% end %>
|
127
|
+
</div> <!-- end ic-Login__body -->
|
128
|
+
</div> <!-- end ic-Login__innerContent -->
|
129
|
+
</div> <!-- end ic-Login__content -->
|
130
|
+
</div> <!-- end ic-Login__content -->
|
131
|
+
</div> <!-- end ic-Login__container -->
|
@@ -0,0 +1,198 @@
|
|
1
|
+
<style>
|
2
|
+
.ic-app-header__logomark {
|
3
|
+
background-image: url("/images/images_k5/logo_k5.png") !important;
|
4
|
+
}
|
5
|
+
.ic-app-header, .no-print, .ic-app-header__logomark-container {
|
6
|
+
background-color: #f4f3f3 !important;
|
7
|
+
}
|
8
|
+
@media (max-width: 767px) {
|
9
|
+
.avatar {
|
10
|
+
height: 75px !important;
|
11
|
+
width: 75px !important;
|
12
|
+
}
|
13
|
+
.perfil{
|
14
|
+
border: none;
|
15
|
+
}
|
16
|
+
.ic-app-header__logomark {
|
17
|
+
width: 75px !important;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
#mobile-header{
|
21
|
+
background-color: white !important
|
22
|
+
}
|
23
|
+
</style>
|
24
|
+
<%
|
25
|
+
# Copyright (C) 2015 - present Instructure, Inc.
|
26
|
+
#
|
27
|
+
# This file is part of Canvas.
|
28
|
+
#
|
29
|
+
# Canvas is free software: you can redistribute it and/or modify it under
|
30
|
+
# the terms of the GNU Affero General Public License as published by the Free
|
31
|
+
# Software Foundation, version 3 of the License.
|
32
|
+
#
|
33
|
+
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
34
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
35
|
+
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
36
|
+
# details.
|
37
|
+
#
|
38
|
+
# You should have received a copy of the GNU Affero General Public License along
|
39
|
+
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
40
|
+
%>
|
41
|
+
|
42
|
+
<% js_bundle :navigation_header %>
|
43
|
+
|
44
|
+
<% if @domain_root_account && @domain_root_account.feature_enabled?(:product_tours) %>
|
45
|
+
<% js_bundle :nav_tourpoints %>
|
46
|
+
<% end %>
|
47
|
+
|
48
|
+
<%
|
49
|
+
if k5_user?
|
50
|
+
dashboard_title = t('Home')
|
51
|
+
dashboard_icon_path = "shared/svg/svg_icon_home"
|
52
|
+
courses_title = t('Subjects')
|
53
|
+
else
|
54
|
+
dashboard_title = t('Dashboard')
|
55
|
+
dashboard_icon_path = "shared/svg/#{'k12/' if k12?}svg_icon_dashboard"
|
56
|
+
courses_title = t('Courses')
|
57
|
+
end
|
58
|
+
%>
|
59
|
+
|
60
|
+
|
61
|
+
<header id="mobile-header" class="no-print">
|
62
|
+
<div aria-hidden="true" style="display: grid; grid-template-columns: repeat(3, 1fr);min-width: 100%;gap: 1rem;padding: 1rem;" class="fs-exclude <% if @real_current_user && @real_current_user != @current_user %>ic-avatar--fake-student<% end %>">
|
63
|
+
<a id="hamburguer-menu" class="ic-app-header__logomark"></a>
|
64
|
+
<div id="myLinks" style="display: none;">
|
65
|
+
<ul id="menu" class="ic-app-header__menu-list">
|
66
|
+
<li class="menu-item ic-app-header__menu-list-item">
|
67
|
+
<a id="global_nav_calendar_link" href="/" class="ic-app-header__menu-list-link">
|
68
|
+
<div class="menu-item-icon-container" aria-hidden="true">
|
69
|
+
<img src='/images/images_k5/Página de Inicio.png' alt="Tablero"></img>
|
70
|
+
</div>
|
71
|
+
<div class="menu-item__text">Inicio | Mis Materias</div>
|
72
|
+
</a>
|
73
|
+
</li>
|
74
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/calendar') %>">
|
75
|
+
<a id="global_nav_calendar_link" href="/calendar" class="ic-app-header__menu-list-link">
|
76
|
+
<div class="menu-item-icon-container" aria-hidden="true">
|
77
|
+
<!--<%= render(partial: "shared/svg/#{'k12/' if k12?}svg_icon_calendar_new_styles", formats: [:svg]) %>-->
|
78
|
+
<img src='/images/images_k5/2._calendario.png' alt="Calendario"></img>
|
79
|
+
</div>
|
80
|
+
<div class="menu-item__text">Calendario</div>
|
81
|
+
</a>
|
82
|
+
</li>
|
83
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/conversations') %>">
|
84
|
+
<a id="global_nav_conversations_link" href="/conversations" class="ic-app-header__menu-list-link">
|
85
|
+
<div class="menu-item-icon-container">
|
86
|
+
<%# <span aria-hidden="true"> %>
|
87
|
+
<!--<%= render(partial: "shared/svg/#{'k12/' if k12?}svg_icon_inbox", formats: [:svg]) %>-->
|
88
|
+
<img src='/images/images_k5/3._mensajes.png' alt="Mensajes"></img>
|
89
|
+
<%# </span> %>
|
90
|
+
</div>
|
91
|
+
<div class="menu-item__text">Conversaciones</div>
|
92
|
+
</a>
|
93
|
+
</li>
|
94
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/agenda') %>">
|
95
|
+
<a id="global_nav_conversations_link" href="/agenda" class="ic-app-header__menu-list-link">
|
96
|
+
<div class="menu-item-icon-container">
|
97
|
+
<img src='/images/images_k5/agenda.png' alt="Agenda"></img>
|
98
|
+
</div>
|
99
|
+
<div class="menu-item__text">Agenda</div>
|
100
|
+
</a>
|
101
|
+
</li>
|
102
|
+
<li class="menu-item ic-app-header__menu-list-item">
|
103
|
+
<a class="logout ic-app-header__menu-list-link" href="/logout">
|
104
|
+
<div class="menu-item-icon-container">
|
105
|
+
<img src='/images/images_k5/logout_blue.png' alt="Salir" class="img-logout"></img>
|
106
|
+
</div>
|
107
|
+
<div class="menu-item__text">Salir</div>
|
108
|
+
</a>
|
109
|
+
</li>
|
110
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/conversations') %>">
|
111
|
+
<a id="global_nav_conversations_link" class="ic-app-header__menu-list-link">
|
112
|
+
<div class="menu-item-icon-container">
|
113
|
+
<img src='/images/images_k5/gracias.png' alt="" class="img-logout"></img>
|
114
|
+
</div>
|
115
|
+
<div class="menu-item__text">Gracias</div>
|
116
|
+
</a>
|
117
|
+
</li>
|
118
|
+
<% unless @current_user.nil? %>
|
119
|
+
<%= render(:partial => 'external_tools/global_nav_menu_items') %>
|
120
|
+
<% end %>
|
121
|
+
</ul>
|
122
|
+
</div>
|
123
|
+
|
124
|
+
<a class="ic-sidebar-logo__image" >
|
125
|
+
<img src="" alt="" />
|
126
|
+
</a>
|
127
|
+
|
128
|
+
<a id="global_nav_profile_link" role="button" href="/profile" class="perfil">
|
129
|
+
<div aria-hidden="true" class="fs-exclude ic-avatar <% if @real_current_user && @real_current_user != @current_user %>ic-avatar--fake-student<% end %>">
|
130
|
+
<img class="fs-exclude avatar profile_pic_link approved perfil" src="<%= @current_user.try { |usr| avatar_image_attrs(usr).first } %>" />
|
131
|
+
</div>
|
132
|
+
</a>
|
133
|
+
|
134
|
+
</div>
|
135
|
+
<div>
|
136
|
+
<% if crumbs.length > 1 %>
|
137
|
+
<h3 class="title_responsive" ><%= render_crumbs %></h3>
|
138
|
+
<% end %>
|
139
|
+
</div>
|
140
|
+
</header>
|
141
|
+
|
142
|
+
<header id="header" class="ic-app-header no-print <%= 'no-user' unless @current_user %>">
|
143
|
+
<a href="#content" id="skip_navigation_link"><%= t 'links.skip_to_content', "Skip To Content" %></a>
|
144
|
+
<div role="region" class="ic-app-header__main-navigation" aria-label="<%= t('Global Navigation') %>">
|
145
|
+
<% unless @current_user.try(:prefers_high_contrast?) %>
|
146
|
+
<div class="ic-app-header__logomark-container">
|
147
|
+
<a href="<%= dashboard_url %>" class="ic-app-header__logomark" style="margin-right: 5px; margin-left: 5px; margin-top: 10px; margin-bottom: 10px; width: auto">
|
148
|
+
<span class="screenreader-only"><%= dashboard_title %></span>
|
149
|
+
</a>
|
150
|
+
</div>
|
151
|
+
<% end %>
|
152
|
+
|
153
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/calendar') %>">
|
154
|
+
<a id="global_nav_calendar_link" href="/calendar" class="ic-app-header__menu-list-link">
|
155
|
+
<div class="menu-item-icon-container" aria-hidden="true">
|
156
|
+
<!--<%= render(partial: "shared/svg/#{'k12/' if k12?}svg_icon_calendar_new_styles", formats: [:svg]) %>-->
|
157
|
+
<img src='/images/images_k5/2._calendario.png' alt="Calendario"></img>
|
158
|
+
</div>
|
159
|
+
<div class="menu-item__text"></div>
|
160
|
+
</a>
|
161
|
+
</li>
|
162
|
+
|
163
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/conversations') %>">
|
164
|
+
<a id="global_nav_conversations_link" href="/conversations" class="ic-app-header__menu-list-link">
|
165
|
+
<div class="menu-item-icon-container">
|
166
|
+
<span aria-hidden="true">
|
167
|
+
<!--<%= render(partial: "shared/svg/#{'k12/' if k12?}svg_icon_inbox", formats: [:svg]) %></span>-->
|
168
|
+
<img src='/images/images_k5/3._mensajes.png' alt="Mensajes"></img>
|
169
|
+
<span class="menu-item__badge"></span>
|
170
|
+
</div>
|
171
|
+
<div class="menu-item__text"></div>
|
172
|
+
</a>
|
173
|
+
</li>
|
174
|
+
<li class="menu-item ic-app-header__menu-list-item <%= ' ic-app-header__menu-list-item--active' if active_path?('/agenda') %>">
|
175
|
+
<a id="global_nav_conversations_link" href="/agenda" class="ic-app-header__menu-list-link">
|
176
|
+
<div class="menu-item-icon-container">
|
177
|
+
<img src='/images/images_k5/agenda.png' alt="Agenda"></img>
|
178
|
+
</div>
|
179
|
+
</a>
|
180
|
+
</li>
|
181
|
+
<% unless @current_user.nil? %>
|
182
|
+
<%= render(:partial => 'external_tools/global_nav_menu_items') %>
|
183
|
+
<% end %>
|
184
|
+
</ul>
|
185
|
+
</div>
|
186
|
+
|
187
|
+
<div class="ic-app-header__secondary-navigation">
|
188
|
+
<ul class="ic-app-header__menu-list">
|
189
|
+
<li class="menu-item ic-app-header__menu-list-item" style="text-align: center;">
|
190
|
+
<span aria-hidden="true">
|
191
|
+
<a href='http://www.vinculacion.espol.edu.ec' target="_blank" style="background-image:url('/images/images_k5/logovinculos.png'); width: 70%; margin-left: 5px;" class="btn-img-login-vinculos" alt="Logo Vinculos"></a>
|
192
|
+
<img src="/images/images_k5/logovinculos.png" alt="Logo Vinculos" style="width: 70%; margin-bottom:10px;" />
|
193
|
+
</span>
|
194
|
+
</li>
|
195
|
+
</ul>
|
196
|
+
</div>
|
197
|
+
<div id="global_nav_tour"></div>
|
198
|
+
</header>
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gema_explorak5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Explorak5
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-09-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: This gem provides a comprehensive solution for implementing login functionality
|
14
|
+
in Ruby applications. Features include user authentication, password management,
|
15
|
+
and customizable login forms and other functionality
|
16
|
+
email:
|
17
|
+
- explorak99@gmail.com
|
18
|
+
executables: []
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- lib/gema_explorak5/app/views/dashboard/_dashboard_card.html.erb
|
23
|
+
- lib/gema_explorak5/app/views/layout/_application_content.html.erb
|
24
|
+
- lib/gema_explorak5/app/views/login/_login_content.html.erb
|
25
|
+
- lib/gema_explorak5/app/views/login/_logout_confirm_content.html.erb
|
26
|
+
- lib/gema_explorak5/app/views/navbar/_new_nav_header.html.erb
|
27
|
+
- lib/gema_explorak5/version.rb
|
28
|
+
homepage: http://gitlab.espol.edu.ec/uvs/explora/gema_explorak5
|
29
|
+
licenses: []
|
30
|
+
metadata:
|
31
|
+
homepage_uri: http://gitlab.espol.edu.ec/uvs/explora/gema_explorak5
|
32
|
+
source_code_uri: http://gitlab.espol.edu.ec/uvs/explora/gema_explorak5
|
33
|
+
post_install_message:
|
34
|
+
rdoc_options: []
|
35
|
+
require_paths:
|
36
|
+
- lib
|
37
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 3.0.0
|
42
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
requirements: []
|
48
|
+
rubygems_version: 3.3.7
|
49
|
+
signing_key:
|
50
|
+
specification_version: 4
|
51
|
+
summary: A Ruby gem for adding functionality to Explora K5
|
52
|
+
test_files: []
|