本文整理汇总了TypeScript中entcore.ng类的典型用法代码示例。如果您正苦于以下问题:TypeScript ng类的具体用法?TypeScript ng怎么用?TypeScript ng使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ng类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: http
export let loginController = ng.controller('LoginController', ['$scope', ($scope) => {
$scope.template = template;
$scope.template.open('main', 'login-form');
$scope.user = {};
$scope.lang = lang;
$scope.welcome = {
};
http().get('/auth/configure/welcome').done(function (d) {
$scope.welcome.content = d.welcomeMessage;
if (!d.enabled) {
$scope.welcome.hideContent = true;
}
if (!$scope.$$phase) {
$scope.$apply();
}
})
.e404(function () {
$scope.welcome.hideContent = true;
if (!$scope.$$phase) {
$scope.$apply();
}
});
$scope.cookieEnabled = navigator.cookieEnabled;
const safeSplit = (str: string = "", pattern: string = "") => {
if (typeof str == "string") {
return str.split(pattern);
} else {
return [];
}
}
const checkBrowser = (browser: { browser: string, version: number }) => {
if (typeof browser == "undefined") {
console.warn("[Auth][Login.checkBrowser] chould not identify browser NAME: ", browser, navigator.userAgent)
} else if (typeof browser.version == "undefined") {
console.warn("[Auth][Login.checkBrowser] chould not identify browser VERSION: ", browser, navigator.userAgent)
}
}
const browser = function (userAgent) {
if (userAgent.indexOf('Chrome') !== -1) {
const chromeVersion = safeSplit(userAgent, 'Chrome/')[1];
const version = parseInt(safeSplit(chromeVersion, '.')[0]);
return {
browser: 'Chrome',
version: version,
outdated: version < 39
}
}
else if (userAgent.indexOf('IEMobile') !== -1) {
const ieVersion = safeSplit(userAgent, 'IEMobile/')[1];
const version = parseInt(safeSplit(ieVersion, ';')[0]);
return {
browser: 'MSIE',
version: version,
outdated: version < 10
}
}
else if (userAgent.indexOf('AppleWebKit') !== -1 && userAgent.indexOf('Chrome') === -1) {
const safariVersion = safeSplit(userAgent, 'Version/')[1];
const version = parseInt(safeSplit(safariVersion, '.')[0]);
return {
browser: 'Safari',
version: version,
outdated: version < 7
}
}
else if (userAgent.indexOf('Firefox') !== -1) {
const ffVersion = safeSplit(userAgent, 'Firefox/')[1];
const version = parseInt(safeSplit(ffVersion, '.')[0]);
return {
browser: 'Firefox',
version: version,
outdated: version < 34
}
}
else if (userAgent.indexOf('MSIE') !== -1) {
const msVersion = safeSplit(userAgent, 'MSIE ')[1];
const version = parseInt(safeSplit(msVersion, ';')[0]);
return {
browser: 'MSIE',
version: version,
outdated: version < 10
}
}
else if (userAgent.indexOf('MSIE') === -1 && userAgent.indexOf('Trident') !== -1) {
const msVersion = safeSplit(userAgent, 'rv:')[1];
const version = parseInt(safeSplit(msVersion, '.')[0]);
return {
browser: 'MSIE',
version: version,
outdated: version < 10
}
}
};
$scope.browser = browser(navigator.userAgent);
//.........这里部分代码省略.........
示例2: route
export const accountController = ng.controller('MyAccount', ['$scope', 'route', ($scope, route) => {
route({
editUserInfos: async function(params){
template.open('account/main', 'account/default-view');
directory.account = new directory.User({ id: params.id, edit: { infos: true } });
await init();
$scope.openView('user-edit', 'user');
},
editUser: async function(params){
template.open('account/main', 'account/default-view');
directory.account = new directory.User({ id: params.id, edit: { userbook: true, infos: true } });
await init();
$scope.openView('user-edit', 'user');
$scope.openView('userbook-edit', 'userbook');
},
themes: async function(){
directory.account = new directory.User({ id: model.me.userId, edit: { userbook: true, visibility: true } });
template.open('account/main', 'account/themes');
await init();
},
editMe: async function(params){
template.open('account/main', 'account/default-view');
directory.account = new directory.User({ id: model.me.userId, edit: { userbook: true, visibility: true } });
await init();
lang.addBundle('/auth/i18n', function () {
$scope.cguUrl = lang.translate("auth.charter");
});
if(model.me.type !== 'ELEVE'){
directory.account.edit.infos = true;
$scope.openView('user-edit', 'user');
}
else {
$scope.openView('user-view', 'user');
}
$scope.openView('userbook-edit', 'userbook');
}
});
$scope.template = template;
let conf = { overriding: [] };
const loadThemeConf = async function(){
await skin.listSkins();
conf = skin.themeConf;
$scope.themes = skin.skins;
if($scope.themes.length > 1){
$scope.display.pickTheme = skin.pickSkin;
http().get('/userbook/preference/theme').done(function(pref){
if(pref.preference){
$scope.account.themes[pref.preference] = true;
}
else{
$scope.account.themes[skin.skin] = true;
http().put('/userbook/preference/theme', skin.skin);
}
$scope.$apply();
})
if(!$scope.account.themes){
$scope.account.themes = {};
}
$scope.$apply();
}
}
const xhr = new XMLHttpRequest();
xhr.open('get', '/assets/theme-conf.js');
xhr.onload = async () => {
eval(xhr.responseText.split('exports.')[1]);
const currentTheme = conf.overriding.find(t => t.child === skin.skin);
if(currentTheme.group){
$scope.themes = conf.overriding.filter(t => t.group === currentTheme.group);
}
else{
$scope.themes = conf.overriding;
}
};
xhr.send();
Behaviours.loadBehaviours('directory', function(){
model.me.workflow.load(['directory'])
});
model.me.workflow.load(['zimbra']);
$scope.hasWorkflowZimbraExpert = () => {
return model.me.hasWorkflow('fr.openent.zimbra.controllers.ZimbraController|preauth');
};
async function init(){
await directory.account.open();
await directory.account.loadChildren();
await directory.account.load();
$scope.me = model.me;
directory.account.on('change', function(){
$scope.$apply();
});
$scope.account = directory.account;
$scope.previousMood = directory.account.mood.id;
//.........这里部分代码省略.........
示例3: function
export const teacherDashboardCorrectionStats = ng.directive('teacherDashboardCorrectionStats', ['GrainCopyService', 'GrainScheduledService', 'CorrectionService', 'SubjectCopyService', (GrainCopyService, GrainScheduledService, CorrectionService, SubjectCopyService) => {
return {
restrict: 'E',
scope: {
selectedSubjectScheduled: "=",
},
templateUrl: 'exercizer/public/ts/app/components/dashboard/teacher_dashboard/teacher_dashboard_correction_tab/templates/teacher-dashboard-correction-stats.html',
link: (scope:any) => {
scope.$watch('selectedSubjectScheduled.showStats', function(newValue, oldValue) {
if(scope.selectedSubjectScheduled && scope.selectedSubjectScheduled.showStats){
scope.score = {sum:0, nb:0};
scope.numberCopySubmitted = 0;
scope.numberCopyNotCorrected = 0;
scope.subjectCopyList = SubjectCopyService.getListBySubjectScheduled(scope.selectedSubjectScheduled);
scope.subjectCopyList.forEach(copy => {
if(copy.is_corrected){
scope.score.sum += copy.final_score;
scope.score.nb++;
}else {
scope.numberCopyNotCorrected++;
}
if(copy.submitted_date){
scope.numberCopySubmitted++;
}
});
}
});
scope.seeAllAssignAtList = function(){
scope.assignDisplayed=true;
};
}
};
}]
);
示例4:
import { ng } from 'entcore';
/**
Wrapper controller
------------------
Main controller.
**/
export const mainController = ng.controller('MainController', ['$scope', 'route', ($scope, route) => {
}]);
示例5: function
export const teacherDashboardFolderEdit = ng.directive('teacherDashboardFolderEdit',
['FolderService', (FolderService) => {
return {
restrict: 'E',
scope: {},
templateUrl: 'exercizer/public/ts/app/components/dashboard/teacher_dashboard/teacher_dashboard_subject_tab/templates/teacher-dashboard-folder-edit.html',
link: (scope:any) => {
scope.isDisplayed = false;
scope.currentFolder = {};
// event to display model
scope.$on('E_DISPLAY_DASHBOARD_MODAL_EDIT_FOLDER', function(event, folder) {
scope.folder = folder;
if(folder){
scope.state = 'edit';
scope.currentFolder = {};
scope.currentFolder.label = angular.copy(folder.label);
} else {
scope.state = 'create';
scope.currentFolder = {};
}
scope.isDisplayed = true;
});
scope.save = function () {
if (!scope.currentFolder.label || scope.currentFolder.label.length === 0) {
notify.error('exercizer.service.create.folder');
} else {
if(scope.state === 'create'){
var folder = new Folder();
folder.label = angular.copy(scope.currentFolder.label);
FolderService.persist(folder);
} else if(scope.state === 'edit'){
scope.folder.label = angular.copy(scope.currentFolder.label);
FolderService.update(scope.folder);
}
scope.hide();
}
};
// hide model
scope.hide = function () {
scope.isDisplayed = false;
};
}
};
}]
);
示例6: function
import { ng } from 'entcore';
import { StringISOHelper } from '../../../../models/helpers';
export const performOpenAnswer = ng.directive('performOpenAnswer',
[() => {
return {
restrict: 'E',
scope: {
grainCopy: '=',
grainCopyList: '='
},
templateUrl: 'exercizer/public/ts/app/components/grain/open_answer/templates/perform-open-answer.html',
link:(scope:any, element:any) => {
scope.updateGrainCopy = function() {
scope.$emit('E_UPDATE_GRAIN_COPY', scope.grainCopy);
};
/**
* Event JQuery because no ng-blur on editor
*/
element.find('editor').on('editor-blur', function(){
scope.grainCopy.grain_copy_data.custom_copy_data.filled_answer = StringISOHelper.toISO(scope.grainCopy.grain_copy_data.custom_copy_data.filled_answer);
scope.$emit('E_UPDATE_GRAIN_COPY', scope.grainCopy);
});
}
};
}]
);
示例7: function
import { ng } from 'entcore';
import { IGrainCopy } from '../../../../models/domain';
export const subjectPerformCopyDisplayCurrentGrainCopy = ng.directive('subjectPerformCopyDisplayCurrentGrainCopy',
[() => {
return {
restrict: 'E',
scope : {
subjectScheduled : '=',
previewing: '=',
grainCopyList: '='
},
templateUrl: 'exercizer/public/ts/app/components/subject/subject_perform_copy/templates/subject-perform-copy-display-current-grain-copy.html',
link:(scope:any) => {
scope.currentGrainCopy = undefined;
scope.$on('E_CURRENT_GRAIN_COPY_CHANGE', function(event, grainCopy:IGrainCopy) {
scope.currentGrainCopy = grainCopy;
});
}
};
}]
);
示例8:
import { ng } from 'entcore';
export const grainCopyStatement = ng.directive('grainCopyStatement',
['$sce', ($sce) => {
return {
restrict: 'E',
scope : {
grainCopy: '='
},
templateUrl: 'exercizer/public/ts/app/components/grain/common/grain_copy/templates/grain-copy-statement.html',
link:(scope:any) => {
}
};
}]
);
示例9: setTimeout
export const recipientList = ng.directive('recipientList', () => {
return {
restrict: 'E',
template: `
<div class="twelve flex-row align-center" ng-click="unfoldChip()">
<contact-chip class="block relative removable"
ng-model="item"
action="deleteItem(item)"
ng-repeat="item in ngModel | limitTo : (needChipDisplay() ? 2 : ngModel.length)">
</contact-chip>
<label class="chip selected" ng-if="needChipDisplay()" ng-click="giveFocus()">
<span class="cell">... <i18n>chip.more1</i18n> [[ngModel.length - 2]] <i18n>chip.more2</i18n></span>
</label>
<img skin-src="/img/illustrations/loading.gif" width="30px" heigh="30px" ng-if="loading"/>
<form class="input-help" ng-submit="update(true)">
<input class="chip-input right-magnet" type="text" ng-model="search.text" ng-change="update()" autocomplete="off" ng-class="{ move: search.text.length > 0 }"
i18n-placeholder="[[restriction ? 'share.search.help' : 'share.search.placeholder' ]]"
/>
</form>
<drop-down
options="itemsFound"
ng-change="addItem()"
on-close="clearSearch()"
ng-model="currentReceiver">
</drop-down>
</div>
`,
scope: {
ngModel: '=',
ngChange: '&',
restriction: '=',
updateFoundItems: '&'
},
link: (scope, element, attributes) => {
var firstFocus = true;
var minWidth = 0;
scope.focused = false;
scope.loading = false;
scope.search = {
text: ''
};
scope.itemsFound = [];
scope.currentReceiver = 'undefined';
scope.addedFavorites = [];
element.find('input').on('focus', () => {
if (firstFocus)
firstFocus = false;
scope.focused = true;
element.find('div').addClass('focus');
element.find('form').width(minWidth);
});
element.find('input').on('blur', () => {
scope.focused = false;
element.find('div').removeClass('focus');
setTimeout(function(){
if (!scope.focused) {
element.find('form').width(0);
scope.itemsFound = [];
}
}, 250);
});
element.find('input').on('keydown', function (e) {
if (e.keyCode === 8 && scope.search.text && scope.search.text.length === 0) { // BackSpace
var nb = scope.ngModel.length;
if (nb > 0)
scope.deleteItem(scope.ngModel[nb - 1]);
}
});
//prevent blur when look for more users in dropDown
element.parents().find('.display-more').on('click', () => {
if (!firstFocus) {
scope.giveFocus();
}
});
scope.needChipDisplay = () => {
return !scope.focused && (typeof scope.ngModel !== 'undefined') && scope.ngModel.length > 3;
};
scope.update = async (force?: boolean) => {
scope.addedFavorites = [];
if (force) {
await scope.doSearch();
}
else {
if(scope.restriction && scope.search.text.length < 3 || scope.search.text.length < 1) {
scope.itemsFound.splice(0, scope.itemsFound.length);
}
else {
await scope.doSearch();
}
}
//.........这里部分代码省略.........
示例10: constructor
import { IAutomaticCorrection } from '../../../../models/interfaces/IAutomaticCorrection';
import { IGrainCopy, IGrainScheduled } from '../../../../models/domain';
import { CompareStringHelper } from '../../../../models/helpers';
import { ng } from 'entcore';
export class SimpleAnswerService implements IAutomaticCorrection {
constructor() {}
public automaticCorrection(grainScheduled:IGrainScheduled, grainCopy:IGrainCopy):{calculated_score:number, answers_result:{}} {
var isCorrect = CompareStringHelper.compare
(
grainScheduled.grain_data.custom_data.correct_answer,
grainCopy.grain_copy_data.custom_copy_data.filled_answer
);
return {
calculated_score: isCorrect ? grainScheduled.grain_data.max_score : 0,
answers_result: {
filled_answer: isCorrect
}
};
}
}
export const simpleAnswerService = ng.service('SimpleAnswerService', SimpleAnswerService);