diff --git a/scripts/langindex.json b/scripts/langindex.json index be537c0a24a..df42ad92332 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -496,7 +496,7 @@ "addon.mod_chat.nosessionsfound": "local_moodlemobileapp", "addon.mod_chat.saidto": "chat", "addon.mod_chat.send": "chat", - "addon.mod_chat.sessionstart": "chat", + "addon.mod_chat.sessionstartsin": "chat", "addon.mod_chat.showincompletesessions": "local_moodlemobileapp", "addon.mod_chat.talk": "chat", "addon.mod_chat.viewreport": "chat", diff --git a/scripts/update_lang_functions.sh b/scripts/update_lang_functions.sh index 5ae2e83ab67..42834411bdf 100755 --- a/scripts/update_lang_functions.sh +++ b/scripts/update_lang_functions.sh @@ -22,7 +22,7 @@ function copy_lang { lang=$1 index_keys=$(jq -r 'to_entries[] | "\"\(.key)\","' langindex.json) - index_keys=${index_keys:0:-1} + index_keys=${index_keys:0:${#index_keys}-1} hyphenlang=${lang/_/-} langfilepath=$LANG_PATH/$hyphenlang.json diff --git a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html index 90b30bb60a7..15e20f18e3a 100644 --- a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html +++ b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html @@ -200,13 +200,21 @@

{{ 'addon.mod_assign.userswhoneedtosubmit' | translate: {$a: ''} }}

{{ 'addon.mod_assign.editsubmission' | translate }} - +

{{ 'addon.mod_assign.erroreditpluginsnotsupported' | translate }}

-

{{ name }}

+
    +
  • {{ name }}
  • +
+ + {{ 'core.openinbrowser' | translate }} + + +

{{ 'addon.mod_assign.cannoteditduetostatementsubmission' | translate }}

diff --git a/src/addons/mod/assign/components/submission/submission.ts b/src/addons/mod/assign/components/submission/submission.ts index c045ff47a89..9a2077ab858 100644 --- a/src/addons/mod/assign/components/submission/submission.ts +++ b/src/addons/mod/assign/components/submission/submission.ts @@ -127,6 +127,7 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can canSaveGrades = false; // Whether the user can save the grades. allowAddAttempt = false; // Allow adding a new attempt when grading. gradeUrl?: string; // URL to grade in browser. + submissionUrl?: string; // URL to add/edit a submission in browser. isPreviousAttemptEmpty = true; // Whether the previous attempt contains an empty submission. showDates = false; // Whether to show some dates. timeLimitFinished = false; // Whether there is a time limit and it finished, so the user will submit late. @@ -788,6 +789,12 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can */ protected async loadUnsupportedPlugins(): Promise { this.unsupportedEditPlugins = await AddonModAssign.getUnsupportedEditPlugins(this.userSubmission?.plugins || []); + + if (this.unsupportedEditPlugins && !this.submissionUrl) { + const mod = await CoreCourse.getModule(this.moduleId, this.courseId, undefined, true); + this.submissionUrl = `${mod.url}&action=editsubmission`; + } + } /** diff --git a/src/addons/mod/chat/components/index/addon-mod-chat-index.html b/src/addons/mod/chat/components/index/addon-mod-chat-index.html index 612815bbd79..a10e1a5f146 100644 --- a/src/addons/mod/chat/components/index/addon-mod-chat-index.html +++ b/src/addons/mod/chat/components/index/addon-mod-chat-index.html @@ -13,10 +13,10 @@ [courseId]="courseId" (completionChanged)="onCompletionChange()"> - + - {{ 'addon.mod_chat.sessionstart' | translate:{$a: chatInfo} }} + {{ 'addon.mod_chat.sessionstartsin' | translate:{$a: chatTime} }} diff --git a/src/addons/mod/chat/components/index/index.ts b/src/addons/mod/chat/components/index/index.ts index b298143c046..8f2941d1d05 100644 --- a/src/addons/mod/chat/components/index/index.ts +++ b/src/addons/mod/chat/components/index/index.ts @@ -34,10 +34,7 @@ export class AddonModChatIndexComponent extends CoreCourseModuleMainActivityComp component = AddonModChatProvider.COMPONENT; pluginName = 'chat'; chat?: AddonModChatChat; - chatInfo?: { - date: string; - fromnow: string; - }; + chatTime?: string; constructor( protected content?: IonContent, @@ -62,17 +59,11 @@ export class AddonModChatIndexComponent extends CoreCourseModuleMainActivityComp this.chat = await AddonModChat.getChat(this.courseId, this.module.id); this.description = this.chat.intro; - const now = CoreTimeUtils.timestamp(); - const span = (this.chat.chattime || 0) - now; - - if (this.chat.chattime && this.chat.schedule && span > 0) { - this.chatInfo = { - date: CoreTimeUtils.userDate(this.chat.chattime * 1000), - fromnow: CoreTime.formatTime(span), - }; - } else { - this.chatInfo = undefined; - } + const chatTimeSeconds = (this.chat.chattime || 0) - CoreTimeUtils.timestamp(); + + this.chatTime = this.chat.schedule && chatTimeSeconds > 0 + ? CoreTime.formatTime(chatTimeSeconds) + : undefined; this.dataRetrieved.emit(this.chat); } diff --git a/src/addons/mod/chat/lang.json b/src/addons/mod/chat/lang.json index 5826b5126a3..1702aa79f57 100644 --- a/src/addons/mod/chat/lang.json +++ b/src/addons/mod/chat/lang.json @@ -22,7 +22,7 @@ "nosessionsfound": "No sessions found", "saidto": "said to", "send": "Send", - "sessionstart": "The next chat session will start on {{$a.date}}, ({{$a.fromnow}} from now)", + "sessionstartsin": "The next chat session will start {{$a}} from now.", "showincompletesessions": "Show incomplete sessions", "talk": "Talk", "viewreport": "Past sessions"