I have already enabled the external web service on our site, but the site.wsAvailable() always return false!
1.Who can help me?
Here is my code:
main.js
angular.module('mm.addons.mylesson', [])
.config(function($stateProvider) {
$stateProvider
.state('site.mylesson', {
url: '/mylesson',
params: {
moduleid: null
},
views: {
'site': {
controller: 'mmamylessonPageCtrl',
templateUrl: 'addons/mylesson/templates/view.html'
}
}
});
})
.config(function($mmCourseDelegateProvider) {
$mmCourseDelegateProvider.registerContentHandler('mmamylesson', 'mylesson', '$mmamylessonHandlers.courseContent');
});
mylesson.js
angular.module('mm.addons.mylesson')
.factory('$mmamylesson', function($mmSite, $q, $mmUser, $mmSitesManager) {
var self = {};
self.getmylessonPagesById = function(cmid) {
var params = {
"moduleid" : cmid
}
return $mmSite.read('mylessonws_get_mypages_by_id', params).then(function(response) {
if (response.id && response.id.length) {
return response;
} else {
return $q.reject();
}
});
};
self.isPluginEnabled = function(siteId) {
siteId = siteId || $mmSite.getId();
return $mmSitesManager.getSite(siteId).then(function(site) {
return site.wsAvailable('mylessonws_get_mylessonpages_by_id');
});
};
return self;
});
handlers.js
angular.module('mm.addons.mylesson')
.factory('$mmamylessonHandlers', function($mmCourse, $mmamylesson, $state, $mmUtil, $q) {
var self = {};
self.courseContent = function() {
var self = {};
self.isEnabled = function() {
return $mmamylesson.isPluginEnabled();
};
self.getController = function(moduleid) {
return function($scope) {
$scope.title = module.name;
$scope.icon = $mmCourse.getModuleIconSrc('mylesson');
$scope.action = function(e) {
if (e) {
e.preventDefault();
e.stopPropagation();
}
$state.go('site.mylesson', {moduleid: moduleid});
};
};
};
return self;
};
return self;
});