forked from EVOgeek/Vmeda.Online
		
	
						commit
						8c97b6fe32
					
				| @ -496,7 +496,7 @@ | |||||||
|   "addon.mod_chat.nosessionsfound": "local_moodlemobileapp", |   "addon.mod_chat.nosessionsfound": "local_moodlemobileapp", | ||||||
|   "addon.mod_chat.saidto": "chat", |   "addon.mod_chat.saidto": "chat", | ||||||
|   "addon.mod_chat.send": "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.showincompletesessions": "local_moodlemobileapp", | ||||||
|   "addon.mod_chat.talk": "chat", |   "addon.mod_chat.talk": "chat", | ||||||
|   "addon.mod_chat.viewreport": "chat", |   "addon.mod_chat.viewreport": "chat", | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ function copy_lang { | |||||||
|     lang=$1 |     lang=$1 | ||||||
| 
 | 
 | ||||||
|     index_keys=$(jq -r 'to_entries[] | "\"\(.key)\","' langindex.json) |     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/_/-} |     hyphenlang=${lang/_/-} | ||||||
|     langfilepath=$LANG_PATH/$hyphenlang.json |     langfilepath=$LANG_PATH/$hyphenlang.json | ||||||
|  | |||||||
| @ -200,13 +200,21 @@ | |||||||
|                                         {{ 'addon.mod_assign.editsubmission' | translate }} |                                         {{ 'addon.mod_assign.editsubmission' | translate }} | ||||||
|                                     </ion-button> |                                     </ion-button> | ||||||
|                                 </ng-container> |                                 </ng-container> | ||||||
|                                 <ion-item class="core-danger-item ion-text-wrap" *ngIf="(unsupportedEditPlugins |                                 <ion-item class="core-danger-item ion-text-wrap" | ||||||
|                                     && unsupportedEditPlugins.length && !showErrorStatementEdit)|| showErrorStatementEdit"> |                                     *ngIf="(unsupportedEditPlugins.length && !showErrorStatementEdit)|| showErrorStatementEdit"> | ||||||
|                                     <ion-label> |                                     <ion-label> | ||||||
|                                         <ng-container |                                         <ng-container | ||||||
|                                             *ngIf="unsupportedEditPlugins && unsupportedEditPlugins.length && !showErrorStatementEdit"> |                                             *ngIf="unsupportedEditPlugins && unsupportedEditPlugins.length && !showErrorStatementEdit"> | ||||||
|                                             <p>{{ 'addon.mod_assign.erroreditpluginsnotsupported' | translate }}</p> |                                             <p>{{ 'addon.mod_assign.erroreditpluginsnotsupported' | translate }}</p> | ||||||
|                                             <p *ngFor="let name of unsupportedEditPlugins">{{ name }}</p> |                                             <ul> | ||||||
|  |                                                 <li *ngFor="let name of unsupportedEditPlugins">{{ name }}</li> | ||||||
|  |                                             </ul> | ||||||
|  |                                             <ion-button expand="block" *ngIf="submissionUrl" [href]="submissionUrl" core-link | ||||||
|  |                                                 [showBrowserWarning]="false"> | ||||||
|  |                                                 {{ 'core.openinbrowser' | translate }} | ||||||
|  |                                                 <ion-icon name="fas-up-right-from-square" slot="end" aria-hidden="true"></ion-icon> | ||||||
|  |                                             </ion-button> | ||||||
|  | 
 | ||||||
|                                         </ng-container> |                                         </ng-container> | ||||||
|                                         <ng-container *ngIf="showErrorStatementEdit"> |                                         <ng-container *ngIf="showErrorStatementEdit"> | ||||||
|                                             <p>{{ 'addon.mod_assign.cannoteditduetostatementsubmission' | translate }}</p> |                                             <p>{{ 'addon.mod_assign.cannoteditduetostatementsubmission' | translate }}</p> | ||||||
|  | |||||||
| @ -127,6 +127,7 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can | |||||||
|     canSaveGrades = false; // Whether the user can save the grades.
 |     canSaveGrades = false; // Whether the user can save the grades.
 | ||||||
|     allowAddAttempt = false; // Allow adding a new attempt when grading.
 |     allowAddAttempt = false; // Allow adding a new attempt when grading.
 | ||||||
|     gradeUrl?: string; // URL to grade in browser.
 |     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.
 |     isPreviousAttemptEmpty = true; // Whether the previous attempt contains an empty submission.
 | ||||||
|     showDates = false; // Whether to show some dates.
 |     showDates = false; // Whether to show some dates.
 | ||||||
|     timeLimitFinished = false; // Whether there is a time limit and it finished, so the user will submit late.
 |     timeLimitFinished = false; // Whether there is a time limit and it finished, so the user will submit late.
 | ||||||
| @ -793,6 +794,12 @@ export class AddonModAssignSubmissionComponent implements OnInit, OnDestroy, Can | |||||||
|      */ |      */ | ||||||
|     protected async loadUnsupportedPlugins(): Promise<void> { |     protected async loadUnsupportedPlugins(): Promise<void> { | ||||||
|         this.unsupportedEditPlugins = await AddonModAssign.getUnsupportedEditPlugins(this.userSubmission?.plugins || []); |         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`; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | |||||||
| @ -13,10 +13,10 @@ | |||||||
|         [courseId]="courseId" (completionChanged)="onCompletionChange()"> |         [courseId]="courseId" (completionChanged)="onCompletionChange()"> | ||||||
|     </core-course-module-info> |     </core-course-module-info> | ||||||
| 
 | 
 | ||||||
|     <ion-card *ngIf="chatInfo" class="core-info-card"> |     <ion-card *ngIf="chatTime" class="core-info-card"> | ||||||
|         <ion-item> |         <ion-item> | ||||||
|             <ion-icon name="fas-clock" slot="start" aria-hidden="true"></ion-icon> |             <ion-icon name="fas-clock" slot="start" aria-hidden="true"></ion-icon> | ||||||
|             <ion-label>{{ 'addon.mod_chat.sessionstart' | translate:{$a: chatInfo} }}</ion-label> |             <ion-label>{{ 'addon.mod_chat.sessionstartsin' | translate:{$a: chatTime} }}</ion-label> | ||||||
|         </ion-item> |         </ion-item> | ||||||
|     </ion-card> |     </ion-card> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -34,10 +34,7 @@ export class AddonModChatIndexComponent extends CoreCourseModuleMainActivityComp | |||||||
|     component = AddonModChatProvider.COMPONENT; |     component = AddonModChatProvider.COMPONENT; | ||||||
|     pluginName = 'chat'; |     pluginName = 'chat'; | ||||||
|     chat?: AddonModChatChat; |     chat?: AddonModChatChat; | ||||||
|     chatInfo?: { |     chatTime?: string; | ||||||
|         date: string; |  | ||||||
|         fromnow: string; |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     constructor( |     constructor( | ||||||
|         protected content?: IonContent, |         protected content?: IonContent, | ||||||
| @ -62,17 +59,11 @@ export class AddonModChatIndexComponent extends CoreCourseModuleMainActivityComp | |||||||
|         this.chat = await AddonModChat.getChat(this.courseId, this.module.id); |         this.chat = await AddonModChat.getChat(this.courseId, this.module.id); | ||||||
| 
 | 
 | ||||||
|         this.description = this.chat.intro; |         this.description = this.chat.intro; | ||||||
|         const now = CoreTimeUtils.timestamp(); |         const chatTimeSeconds = (this.chat.chattime || 0) - CoreTimeUtils.timestamp(); | ||||||
|         const span = (this.chat.chattime || 0) - now; |  | ||||||
| 
 | 
 | ||||||
|         if (this.chat.chattime && this.chat.schedule && span > 0) { |         this.chatTime = this.chat.schedule && chatTimeSeconds > 0 | ||||||
|             this.chatInfo = { |             ? CoreTime.formatTime(chatTimeSeconds) | ||||||
|                 date: CoreTimeUtils.userDate(this.chat.chattime * 1000), |             : undefined; | ||||||
|                 fromnow: CoreTime.formatTime(span), |  | ||||||
|             }; |  | ||||||
|         } else { |  | ||||||
|             this.chatInfo = undefined; |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         this.dataRetrieved.emit(this.chat); |         this.dataRetrieved.emit(this.chat); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
|     "nosessionsfound": "No sessions found", |     "nosessionsfound": "No sessions found", | ||||||
|     "saidto": "said to", |     "saidto": "said to", | ||||||
|     "send": "Send", |     "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", |     "showincompletesessions": "Show incomplete sessions", | ||||||
|     "talk": "Talk", |     "talk": "Talk", | ||||||
|     "viewreport": "Past sessions" |     "viewreport": "Past sessions" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user