本文整理汇总了TypeScript中entcore.ng.controller方法的典型用法代码示例。如果您正苦于以下问题:TypeScript ng.controller方法的具体用法?TypeScript ng.controller怎么用?TypeScript ng.controller使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类entcore.ng
的用法示例。
在下文中一共展示了ng.controller方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
export let main = ng.controller('MainController', ['$scope', 'model', 'route', '$location',
async function ($scope, model, route, $location): Promise<void> {
$scope.lang = idiom;
$scope.idiom = idiom;
$scope.template = template;
$scope.date = moment;
$scope.display = {
lightbox: {},
currentTemplate: '',
sliderTest: 1,
host: 'https://' + location.host
};
template.open('editor/pages-manager', 'editor/pages-manager');
template.open('editor/templates', 'editor/templates');
const openSite = async (params) => {
const websites = await Folders.websites();
const website: Website = websites.find(w => w._id === params.siteId);
if(!website || website.trashed){
template.open('main', 'e404');
$scope.$apply();
return;
}
$scope.snipletResource = website;
await website.rights.fromBehaviours();
if (website.myRights['update'] && !params.preview && $(window).width() > ui.breakpoints.tablette) {
template.open('main', 'page-editor');
}
else {
template.open('main', 'page-viewer');
}
setTimeout(() => model.trigger('route-changed'), 500);
$scope.$apply();
}
function applyIfNeeded(){
if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest') {
$scope.$apply();
}
}
route({
listSites: async () => {
await sniplets.load();
$scope.sniplets = _.reject(sniplets.sniplets, (s) => s.sniplet.hidden);
template.open('main', 'library');
Autosave.unwatchAll();
applyIfNeeded();
},
site: async (params) => {
await sniplets.load();
$scope.sniplets = _.reject(sniplets.sniplets, (s) => s.sniplet.hidden);
Autosave.unwatchAll();
openSite(params);
applyIfNeeded();
},
page: async (params) => {
await sniplets.load();
$scope.sniplets = _.reject(sniplets.sniplets, (s) => s.sniplet.hidden);
Autosave.unwatchAll();
openSite(params);
applyIfNeeded();
},
previewSite: async (params) => {
await sniplets.load();
$scope.sniplets = _.reject(sniplets.sniplets, (s) => s.sniplet.hidden);
Autosave.unwatchAll();
params.preview = true;
openSite(params);
applyIfNeeded();
},
previewPage: async (params) => {
await sniplets.load();
$scope.sniplets = _.reject(sniplets.sniplets, (s) => s.sniplet.hidden);
Autosave.unwatchAll();
params.preview = true;
openSite(params);
applyIfNeeded();
}
});
$scope.redirectTo = (path) => {
if (window.location.href.indexOf('/p/') === -1 || window.notLoggedIn) {
$location.path(path);
}
else {
window.location.href = '/pages#' + path;
}
};
$scope.lightbox = function (lightboxName: string, data: any) {
$scope.display.data = data;
$scope.display.lightbox[lightboxName] = !$scope.display.lightbox[lightboxName];
};
$scope.closeLightbox = function (lightboxName: string, data: any) {
$scope.display.data = data;
$scope.display.lightbox[lightboxName] = false;
//.........这里部分代码省略.........
示例2:
import { ng } from 'entcore';
/**
Wrapper controller
------------------
Main controller.
**/
export const mainController = ng.controller('MainController', ['$scope', 'route', ($scope, route) => {
}]);
示例3: if
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);
//.........这里部分代码省略.........
示例4: function
import { ng, template } from 'entcore';
import { Mail } from '../model';
export let printController = ng.controller('PrintController', [
'$scope', 'route', 'model',
function ($scope, route, model, ) {
route({
viewPrint: async function(params){
$scope.mail = new Mail(params.mailId);
try{
await $scope.mail.open(true);
$scope.$apply();
setTimeout(function(){
window.print();
}, 1000)
}
catch(e){
console.log(e);
template.open('page', 'errors/e404');
}
}
})
}
]);
示例5: RegExp
export let resetController = ng.controller('ResetController', ['$scope', ($scope) => {
$scope.template = template;
$scope.lang = lang;
$scope.template.open('main', 'reset-form');
$scope.user = {};
$scope.welcome = {
};
http().get('/auth/configure/welcome').done(function (d) {
$scope.welcome.content = d.welcomeMessage;
if (!d.enabled) {
$scope.welcome.hideContent = true;
}
$scope.$apply();
})
.e404(function () {
$scope.welcome.hideContent = true;
$scope.$apply();
});
if(window.location.href.indexOf('?') !== -1){
if(window.location.href.split('login=').length > 1){
$scope.login = window.location.href.split('login=')[1].split('&')[0];
}
if(window.location.href.split('activationCode=').length > 1){
$scope.activationCode = window.location.href.split('activationCode=')[1].split('&')[0];
}
}
http().get('/auth/context').done(function(data){
$scope.passwordRegex = data.passwordRegex;
});
$scope.identicalRegex = function(str){
if(!str)
return new RegExp("^$")
return new RegExp("^"+str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")+"$")
}
$scope.refreshInput = function(form, inputName){
form[inputName].$setViewValue(form[inputName].$viewValue)
}
$scope.passwordComplexity = function(password){
if(!password)
return 0
if(password.length < 6)
return password.length
var score = password.length
if(/[0-9]+/.test(password) && /[a-zA-Z]+/.test(password)){
score += 5
}
if(!/^[a-zA-Z0-9- ]+$/.test(password)) {
score += 5
}
return score
}
$scope.translateComplexity = function(password){
var score = $scope.passwordComplexity(password)
if(score < 12){
return lang.translate("weak")
}
if(score < 20)
return lang.translate("moderate")
return lang.translate("strong")
}
$scope.reset = function(){
http().post('/auth/reset', http().serialize({
login: $scope.user.login.trim(),
password: $scope.user.password,
confirmPassword: $scope.user.confirmPassword,
resetCode: resetCode
}))
.done(function(data){
if(typeof data !== 'object'){
window.location.href = '/';
}
if(data.error){
$scope.error = data.error.message;
}
$scope.$apply('error');
});
};
$scope.resetForce = function(){
http().post('/auth/reset', http().serialize({
login: login,
password: $scope.user.password,
confirmPassword: $scope.user.confirmPassword,
oldPassword: $scope.user.oldPassword,
callback: callback,
forceChange : "force"
//.........这里部分代码省略.........
示例6: resetError
export let forgotController = ng.controller('ForgotController', ['$scope', 'route', ($scope:ForgotControllerScope, route) => {
$scope.template = template;
$scope.template.open('main', 'forgot-form');
$scope.user = {};
$scope.welcome = {};
//===Private methods
let _promise:Promise<any> = Promise.resolve();
const resetError = () => {
//reset message if exists and wait 1seconds #21699
if ($scope.error) {
$scope.error = "";
_promise = new Promise(function (resolve) {
setTimeout(resolve, 1000);
});
$scope.$apply();
} else {
return _promise;
}
}
const setError = async (text: string) => {
//reset message if exists and wait 2seconds #21699
await resetError();
$scope.error = text;
$scope.$apply();
}
//===Init
http().get('/auth/configure/welcome').done(function (d) {
$scope.welcome.content = d.welcomeMessage;
if (!d.enabled) {
$scope.welcome.hideContent = true;
}
$scope.$apply();
})
.e404(function () {
$scope.welcome.hideContent = true;
$scope.$apply();
});
if(window.location.href.indexOf('?') !== -1){
if(window.location.href.split('login=').length > 1){
$scope.login = window.location.href.split('login=')[1].split('&')[0];
}
if(window.location.href.split('activationCode=').length > 1){
$scope.activationCode = window.location.href.split('activationCode=')[1].split('&')[0];
}
}
//===Routes
route({
actionId: function(params){
$scope.user.mode = "id"
},
actionPassword: function(params){
$scope.user.mode = "password"
}
})
//===Public methods
$scope.initUser = function(){
$scope.user = {}
}
$scope.shouldAskForPwd = function(){
return $scope.user && $scope.user.mode=="password";
}
$scope.shouldAskForEmail = function(){
return $scope.user && ($scope.user.mode=="id" || $scope.user.mode=="idExtras");
}
$scope.shouldAskForNameAndStructure = function(){
return $scope.user && $scope.user.mode=="idExtras";
}
$scope.forgot = function(service){
if($scope.user.mode === 'password'){
$scope.forgotPassword($scope.user.login, service)
}else if($scope.user.mode === 'idExtras') {
$scope.forgotId({
mail: $scope.user.mail,
firstName: $scope.user.firstName,
structureId: $scope.user.structureId
}, service)
}else{
$scope.forgotId({
mail: $scope.user.mail,
firstName: null,
structureId: null
}, service)
}
};
$scope.passwordChannels = function(login){
http().get('/auth/password-channels', {login: login})
.done(function(data){
$scope.user.channels = {
mail: data.mail,
mobile: data.mobile
}
$scope.$apply()
})
.e400(function(data){
setError('auth.notify.' + JSON.parse(data.responseText).error + '.login');
})
}
//.........这里部分代码省略.........
示例7: if
export let conversationController = ng.controller('ConversationController', [
'$scope', '$timeout', '$compile', '$sanitize', 'model', 'route', function ($scope, $timeout, $compile, $sanitize, model, route) {
$scope.state = {
selectAll: false,
filterUnread: false,
searching: false,
current: undefined,
newItem: undefined,
draftError: false,
dragFolder: undefined,
emptyMessage: lang.translate('folder.empty'),
searchFailed: false,
draftSaveDate: null,
mailLimit: 5000,
recipientLimit: ui.breakpoints.checkMaxWidth("fatMobile") ? 5 : 10
};
$scope.defaultAvatar = "img/illustrations/unknown-avatar.svg?thumbnail=100x100";
$scope.conversation = Conversation.instance;
$scope.ccCciShow = false;
route({
readMail: async function (params) {
Conversation.instance.folders.openFolder('inbox');
template.open('page', 'folders');
$scope.readMail(new Mail(params.mailId));
await Conversation.instance.sync();
await Conversation.instance.folders.draft.countTotal();
$scope.constructNewItem();
$scope.$apply();
},
writeMail: async function (params) {
Conversation.instance.folders.openFolder('inbox');
await Conversation.instance.sync();
template.open('page', 'folders');
template.open('main', 'mail-actions/write-mail');
$scope.constructNewItem();
if (_.isString(params.id)) {
if (!params.type || params.type === 'User') {
let user = new User(params.id);
await user.findData();
$scope.addUser(user);
}
else if (params.type === 'Group') {
let group = new User(params.id);
await group.findGroupData();
$scope.addUser(group);
}
else if (params.type === 'Favorite') {
await $scope.state.newItem.addFavorite(params.id);
}
} else if (params.id !== undefined) {
for (let i = 0; i < params.id.length; i++) {
let user = new User(params.id[i]);
await user.findData();
$scope.addUser(user);
}
}
$scope.$apply();
},
inbox: async () => {
template.open('page', 'folders');
await Conversation.instance.folders.openFolder('inbox');
await Conversation.instance.sync();
await Conversation.instance.folders.draft.countTotal();
$scope.constructNewItem()
$scope.$apply();
}
});
$scope.lang = lang;
$scope.notify = notify;
$scope.folders = Conversation.instance.folders;
$scope.userFolders = Conversation.instance.userFolders;
$scope.users = { list: Conversation.instance.users, search: '', found: [], foundCC: [] };
template.open('main', 'folders-templates/inbox');
template.open('toaster', 'folders-templates/toaster');
$scope.formatFileType = Document.role;
$scope.sending = false;
/**
* WORKSPACE
*/
$scope.copyProps = {
i18: {
title: "conversation.copy.title",
actionTitle: "conversation.copy.action",
actionProcessing: "conversation.copy.processing",
actionFinished: "conversation.copy.finished",
info: "conversation.copy.info"
},
sources: [],
onCancel() {
$scope.copyLightbox.show = false;
},
onSubmitSuccess(dest, count: number) {
if (count > 1) {
notify.info('conversation.notify.copyToWorkspace.plural');
} else {
notify.info('conversation.notify.copyToWorkspace');
//.........这里部分代码省略.........
示例8: RegExp
export let activationController = ng.controller('ActivationController', ['$scope', ($scope) =>{
$scope.template = template;
$scope.lang = lang;
$scope.user = { themes: {} };
$scope.phonePattern = new RegExp("^(00|\\+)?(?:[0-9] ?-?\\.?){6,14}[0-9]$");
$scope.welcome = {};
template.open('main', 'activation-form');
let currentTheme;
let conf = { overriding: [] };
const xhr = new XMLHttpRequest();
xhr.open('get', '/assets/theme-conf.js');
xhr.onload = () => {
eval(xhr.responseText.split('exports.')[1]);
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();
http().get('/auth/configure/welcome').done(function (d) {
$scope.welcome.content = d.welcomeMessage;
if (!d.enabled) {
$scope.welcome.hideContent = true;
}
$scope.$apply();
})
.e404(function () {
$scope.welcome.hideContent = true;
$scope.$apply();
});
if(window.location.href.indexOf('?') !== -1){
if(window.location.href.split('login=').length > 1){
$scope.user.login = window.location.href.split('login=')[1].split('&')[0];
}
if(window.location.href.split('activationCode=').length > 1){
$scope.user.activationCode = window.location.href.split('activationCode=')[1].split('&')[0];
}
}
http().get('/auth/context').done(function(data){
$scope.callBack = data.callBack;
$scope.cgu = data.cgu;
$scope.passwordRegex = data.passwordRegex;
$scope.mandatory = data.mandatory;
$scope.$apply('cgu');
});
$scope.identicalRegex = function(str){
if(!str)
return new RegExp("^$")
return new RegExp("^"+str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")+"$")
}
$scope.refreshInput = function(form, inputName){
form[inputName].$setViewValue(form[inputName].$viewValue)
}
$scope.passwordComplexity = function(password){
if(!password)
return 0
if(password.length < 6)
return password.length
var score = password.length
if(/[0-9]+/.test(password) && /[a-zA-Z]+/.test(password)){
score += 5
}
if(!/^[a-zA-Z0-9- ]+$/.test(password)) {
score += 5
}
return score
}
$scope.translateComplexity = function(password){
var score = $scope.passwordComplexity(password)
if(score < 12){
return lang.translate("weak")
}
if(score < 20)
return lang.translate("moderate")
return lang.translate("strong")
};
$scope.noThemePicked = () => !Object.keys($scope.user.themes).length;
$scope.activate = function(forceCurrentTheme: boolean){
if($scope.themes.length > 1 && $scope.noThemePicked() && !forceCurrentTheme){
template.open('main', 'activation-themes');
return;
}
if($scope.themes.length === 1 && conf.overriding.length > 1){
//.........这里部分代码省略.........
示例9: function
const archiveController = ng.controller('ArchiveController', ['$scope', ($scope) => {
$scope.filePath = 'about:blank'
var expected;
http.get('/archive/conf/public').then(function(exportApps){
http.get('/applications-list').then(function(myApps){
$scope.selectedApps = [];
$scope.availableApps = myApps.data.apps.map(app => app.prefix ? app.prefix.slice(1) : app.displayName ? app.displayName : "undefined")
.filter(app => exportApps.data.apps.includes(app))
.sort(function(a, b) {
let a2 = lang.translate(a), b2 = lang.translate(b);
return a2 < b2 ? -1 : a2 > b2 ? 1 : 0;
});
if ($scope.availableApps.length === 0) {
$scope.isPreDeleted = true;
expected = exportApps.data.apps;
}
$scope.availableApps.forEach(app => { $scope.selectedApps[app] = false });
$scope.selectedApps["workspace"] = true;
$scope.selectedApps["rack"] = true;
$scope.areAllSelected = function() {
return $scope.availableApps.find(app => !$scope.selectedApps[app]) === undefined
}
$scope.areNoneSelected = function() {
return $scope.availableApps.find(app => $scope.selectedApps[app]) === undefined
}
$scope.selectAll = function(event){
let oneFalse = !$scope.areAllSelected()
$scope.availableApps.forEach(app => { $scope.selectedApps[app] = oneFalse })
}
$scope.$apply();
});
});
$scope.initiateExport = function(mode: string){
var appList;
if (mode === "docsOnly") {
appList = ["workspace","rack"];
} else if (mode === "all") {
appList = expected;
} else if (mode === "apps") {
appList = $scope.availableApps.filter(app => $scope.selectedApps[app]);
}
http.post('/archive/export', {'apps':appList}).then(function(res){
$scope.loadingSpinner = true;
setTimeout(function() {
http.get('/archive/export/verify/' + res.data.exportId).then(function(status){
window.location.href = '/archive/export/' + res.data.exportId;
$scope.loadingSpinner = false;
$scope.$apply();
}).catch(function(){
notify.error('archive.error');
setTimeout(function() {
window.location.reload();
},3000);
});
},5000);
$scope.loading = true;
$scope.$apply();
}).catch(function(){
notify.error('export.already');
})
};
}]);
示例10: function
export let library = ng.controller('LibraryController', [
'$scope', 'model', '$rootScope', '$location', function ($scope, model, $rootScope, $location) {
$scope.display.lightbox['managePages'] = false;
$scope.display.lightbox['properties'] = false;
template.open('library/folder-content', 'library/folder-content');
$scope.localAdmin = LocalAdmin;
$scope.currentFolder = Folders.root;
$scope.currentFolder.sync();
$scope.root = Folders.root;
$scope.folder = new Folder();
$scope.website = new Website();
$scope.website.visibility = 'PRIVATE';
$scope.filters = Filters;
$scope.filters.protected = true;
template.open('library/create-website', 'library/create-website');
template.open('library/toaster', 'library/toaster');
template.open('library/publish', 'library/publish');
template.open('library/properties', 'library/properties');
template.open('library/move', 'library/move');
BaseFolder.eventer.on('refresh', () => $scope.$apply());
Website.eventer.on('save', () => $scope.$apply());
$rootScope.$on('share-updated', async (event, changes) => {
for(let website of $scope.currentFolder.selection){
await (website as Website).sync();
website.synchronizeRights();
}
$scope.$apply();
});
$scope.searchGroups = (item: Group) => {
let found = $scope.display.searchGroups && idiom.removeAccents(item.name.toLowerCase()).indexOf(
idiom.removeAccents($scope.display.searchGroups).toLowerCase()
) !== -1;
for (let structureId in $scope.website.published) {
found = found && _.findWhere($scope.website.published[structureId].groups, { id: item.id }) === undefined;
}
return found;
};
$scope.searchWebsites = (item: Website) => {
return !$scope.display.searchWebsites || idiom.removeAccents(item.title.toLowerCase()).indexOf(
idiom.removeAccents($scope.display.searchWebsites).toLowerCase()
) !== -1;
};
$scope.can = (right: string) => {
let folder: Folder = $scope.currentFolder;
return _.find(folder.websites.sel.selected, (w: Website) => !w.myRights[right]) === undefined;
};
$scope.saveProperties = () => {
$scope.lightbox('properties');
$scope.website.save();
$scope.website.updateApplication();
}
$scope.editWebsiteProperties = () => {
$scope.website = $scope.currentFolder.selection[0];
$scope.lightbox('properties');
};
$scope.openFolder = (folder) => {
template.open('library/folder-content', 'library/folder-content');
$scope.currentFolder = folder;
$scope.currentFolder.sync();
};
$scope.openPublish = async () => {
$scope.lightbox('showPublish');
$scope.website = $scope.currentFolder.selection[0];
if (!LocalAdmin.synced) {
await LocalAdmin.structures.sync();
$scope.$apply();
}
};
$scope.createFolder = async () => {
$scope.folder.parentId = $scope.currentFolder._id;
$scope.display.lightbox['newFolder'] = false;
$scope.currentFolder.children.push($scope.folder);
await $scope.folder.save();
$scope.folder = new Folder();
};
$scope.removeSelection = async () => {
$scope.lightbox('confirmRemove');
await $scope.currentFolder.removeSelection();
$scope.$apply();
}
$scope.openTrash = () => {
template.open('library/folder-content', 'library/trash');
$scope.currentFolder = Folders.trash;
Folders.trash.sync();
};
//.........这里部分代码省略.........