@@ -83,6 +83,29 @@ angular.module('mm.addons.mod_assign')
8383 }
8484 } ;
8585
86+ /**
87+ * Get files used by this plugin.
88+ * The files returned by this function will be prefetched when the user prefetches the assign.
89+ *
90+ * @module mm.addons.mod_assign
91+ * @ngdoc method
92+ * @name $mmaModAssignFeedbackDelegate#getPluginFiles
93+ * @param {Object } assign Assignment.
94+ * @param {Object } submission Data returned by $mmaModAssign#getSubmissionStatus.
95+ * @param {Object } plugin Plugin.
96+ * @param {String } [siteId] Site ID. If not defined, current site.
97+ * @return {Promise } Promise resolved with the files.
98+ */
99+ self . getPluginFiles = function ( assign , submission , plugin , siteId ) {
100+ siteId = siteId || $mmSite . getId ( ) ;
101+
102+ var handler = self . getPluginHandler ( plugin . type ) ;
103+ if ( handler && handler . getPluginFiles ) {
104+ return $q . when ( handler . getPluginFiles ( assign , submission , plugin , siteId ) ) ;
105+ }
106+ return $q . when ( [ ] ) ;
107+ } ;
108+
86109 /**
87110 * Check if a time belongs to the last update handlers call.
88111 * This is to handle the cases where updateHandlers don't finish in the same order as they're called.
@@ -113,6 +136,28 @@ angular.module('mm.addons.mod_assign')
113136 return typeof enabledHandlers [ pluginType ] != 'undefined' ;
114137 } ;
115138
139+ /**
140+ * Prefetch any required data for a feedback plugin.
141+ *
142+ * @module mm.addons.mod_assign
143+ * @ngdoc method
144+ * @name $mmaModAssignFeedbackDelegate#prefetch
145+ * @param {Object } assign Assignment.
146+ * @param {Object } submission Data returned by $mmaModAssign#getSubmissionStatus.
147+ * @param {Object } plugin Plugin.
148+ * @param {String } [siteId] Site ID. If not defined, current site.
149+ * @return {Promise } Promise resolved when data has been prefetched.
150+ */
151+ self . prefetch = function ( assign , submission , plugin , siteId ) {
152+ siteId = siteId || $mmSite . getId ( ) ;
153+
154+ var handler = self . getPluginHandler ( plugin . type ) ;
155+ if ( handler && handler . prefetch ) {
156+ return $q . when ( handler . prefetch ( assign , submission , plugin , siteId ) ) ;
157+ }
158+ return $q . when ( ) ;
159+ } ;
160+
116161 /**
117162 * Register a feedback plugin handler. The handler will be used when submitting an assign.
118163 *
0 commit comments