@@ -78,7 +78,8 @@ angular.module('mm.addons.mod_glossary')
7878 */
7979 self . linksHandler = function ( ) {
8080
81- var self = { } ;
81+ var self = { } ,
82+ patterns = [ '/mod/glossary/view.php' , '/mod/glossary/showentry.php' ] ;
8283
8384 /**
8485 * Whether or not the handler is enabled to see glossary index for a certain site.
@@ -136,6 +137,9 @@ angular.module('mm.addons.mod_glossary')
136137 function treatEntryLink ( siteIds , url , courseId ) {
137138 var params = $mmUtil . extractUrlParams ( url ) ;
138139 if ( params . eid != 'undefined' ) {
140+ // If courseId is not set we check if it's set in the URL as a param.
141+ courseId = courseId || params . courseid || params . cid ;
142+
139143 // Pass false because all sites should have the same siteurl.
140144 return $mmContentLinksHelper . filterSupportedSites ( siteIds , isEntryEnabled , false , courseId ) . then ( function ( ids ) {
141145 if ( ! ids . length ) {
@@ -184,16 +188,31 @@ angular.module('mm.addons.mod_glossary')
184188 */
185189 self . getActions = function ( siteIds , url , courseId ) {
186190 // Check it's a glossary URL.
187- if ( url . indexOf ( '/mod/glossary/view.php' ) > - 1 ) {
191+ if ( url . indexOf ( patterns [ 0 ] ) > - 1 ) {
188192 // Glossary index.
189193 return $mmContentLinksHelper . treatModuleIndexUrl ( siteIds , url , isIndexEnabled , courseId ) ;
190- } else if ( url . indexOf ( '/mod/glossary/showentry.php' ) > - 1 ) {
194+ } else if ( url . indexOf ( patterns [ 1 ] ) > - 1 ) {
191195 // Glossary entry.
192196 return treatEntryLink ( siteIds , url , courseId ) ;
193197 }
194198 return $q . when ( [ ] ) ;
195199 } ;
196200
201+ /**
202+ * Check if the URL is handled by this handler. If so, returns the URL of the site.
203+ *
204+ * @param {String } url URL to check.
205+ * @return {String } Site URL. Undefined if the URL doesn't belong to this handler.
206+ */
207+ self . handles = function ( url ) {
208+ for ( var i = 0 ; i < patterns . length ; i ++ ) {
209+ var position = url . indexOf ( patterns [ i ] ) ;
210+ if ( position > - 1 ) {
211+ return url . substr ( 0 , position ) ;
212+ }
213+ }
214+ } ;
215+
197216 return self ;
198217 } ;
199218
0 commit comments