/* * The FreeSWITCH Portal Project * Copyright (C) 2013-2013, Seven Du * * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The FreeSWITCH Portal Project Software/Application * * The Initial Developer of the Original Code is * Seven Du * Portions created by the Initial Developer are Copyright (C) * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Seven Du * * * fsportal.js -- The FreeSWITCH Portal Project * */ var App = Ember.Application.create({ LOG_TRANSITIONS: true, rootElement: $('#container'), total: 0, ready: function(){ $.get("/txtapi/status", function(data){ $('#serverStatus').html("
" + data + "
"); }); } }); App.ApplicationRoute = Ember.Route.extend({ setupController: function(controller) { // alert("setupController"); }, actions: { newUser: function() { return Bootstrap.ModalManager.show('newUserForm'); } } }); App.CallsRoute = Ember.Route.extend({ setupController: function(controller) { // Set the IndexController's `title` // controller.set('title', "My App"); // alert("a") console.log("callsRoute"); App.callsController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ChannelsRoute = Ember.Route.extend({ setupController: function(controller) { // Set the IndexController's `title` // controller.set('title', "My App"); // alert("a") console.log("callsRoute"); App.channelsController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ShowRegistrationsRoute = Ember.Route.extend({ setupController: function(controller) { // Set the Controller's `title` controller.set('title', "ShowRegistrations"); App.registrationsController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ShowModulesRoute = Ember.Route.extend({ setupController: function(controller) { // Set the Controller's `title` App.showModulesController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ShowApplicationsRoute = Ember.Route.extend({ setupController: function(controller) { // Set the Controller's `title` controller.set('title', "ShowApplications"); console.log("showApplications"); App.applicationsController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ShowEndpointsRoute = Ember.Route.extend({ setupController: function(controller) { // Set the Controller's `title` controller.set('title', "ShowEndpoints"); console.log(controller); App.showEndpointsController.load(); }//, // renderTemplate: function() { // this.render('calls'); // } }); App.ShowCodecsRoute = Ember.Route.extend({ setupController: function(controller) { App.showCodecsController.load(); } }); App.ShowFilesRoute = Ember.Route.extend({ setupController: function(controller) { App.showFilesController.load(); } }); App.ShowAPIsRoute = Ember.Route.extend({ setupController: function(controller) { App.showAPIsController.load(); } }); App.ShowAliasesRoute = Ember.Route.extend({ setupController: function(controller) { App.showAliasesController.load(); } }); App.ShowCompletesRoute = Ember.Route.extend({ setupController: function(controller) { App.showCompletesController.load(); } }); App.ShowManagementsRoute = Ember.Route.extend({ setupController: function(controller) { App.showManagementsController.load(); } }); App.ShowSaysRoute = Ember.Route.extend({ setupController: function(controller) { App.showSaysController.load(); } }); App.ShowNatMapsRoute = Ember.Route.extend({ setupController: function(controller) { App.showNatMapsController.load(); } }); App.ShowChatsRoute = Ember.Route.extend({ setupController: function(controller) { App.showChatsController.load(); } }); App.ShowInterfacesRoute = Ember.Route.extend({ setupController: function(controller) { App.showInterfacesController.load(); } }); App.ShowInterfaceTypesRoute = Ember.Route.extend({ setupController: function(controller) { App.showInterfaceTypesController.load(); } }); App.ShowTasksRoute = Ember.Route.extend({ setupController: function(controller) { App.showTasksController.load(); } }); App.ShowLimitsRoute = Ember.Route.extend({ setupController: function(controller) { App.showLimitsController.load(); } }); App.UsersRoute = Ember.Route.extend({ setupController: function(controller) { App.usersController.load(); } }); App.newUserRoute = Ember.Route.extend({ setupController: function(Controller) { alert("auto_update_calls"); }, actions: { show: function(controller) { App.newUserController.show(); } } }); App.SofiaStatusRoute = Ember.Route.extend({ setupController: function(controller) { App.sofiaStatusController.load(); } }); App.Router.map(function(){ this.route("calls"); this.route("channels"); this.route("showRegistrations"); this.route("showModules"); this.route("showApplications"); this.route("showEndpoints"); this.route("showCodecs"); this.route("showFiles"); this.route("showAPIs"); this.route("showAliases"); this.route("showCompletes"); this.route("showManagements"); this.route("showNatMaps"); this.route("showSays"); this.route("showChats"); this.route("showInterfaces"); this.route("showInterfaceTypes"); this.route("showTasks"); this.route("showLimits"); this.route("show"); this.route("users"); this.route("newUser"); this.route("sofiaStatus"); this.route("addGateway"); this.route("about", { path: "/about" }); }); App.User = Em.Object.extend({ id: null, context: null, domain: null, group: null, contact: null }); App.Call = Em.Object.extend({ uuid: null, cidName: null, cidNumber: null }); App.Channel = Em.Object.extend({ uuid: null, cidName: null, cidNumber: null }); App.ApplicationController = Ember.ObjectController.extend({ actions: { newUser: function() { alert("ApplicationController"); } } }); App.callsController = Ember.ArrayController.create({ content: [], init: function(){ }, load: function() { var me = this; $.getJSON("/txtapi/show?calls%20as%20json", function(data){ // var channels = JSON.parse(data); console.log(data.row_count); me.set('total', data.row_count); me.content.clear(); if (data.row_count == 0) return; // me.pushObjects(data.rows); data.rows.forEach(function(r) { me.pushObject(App.Call.create(r)); }); }); }, delete: function(uuid) { var obj = this.content.findProperty("uuid", uuid); if (obj) this.content.removeObject(obj);// else alert(uuid); }, dump: function(uuid) { var obj = this.content.findProperty("uuid", uuid); console.log(obj.getProperties(["uuid", "cid_num"])); }, raw: function() { $.get("/api/show?calls", function(data){ $('#aa').html(data); }); } }); App.channelsController = Ember.ArrayController.create({ content: [], listener: undefined, init: function(){ }, load: function() { var me = this; $.getJSON("/txtapi/show?channels%20as%20json", function(data){ // var channels = JSON.parse(data); console.log(data.row_count); me.set('total', data.row_count); me.content.clear(); if (data.row_count == 0) return; data.rows.forEach(function(row) { me.pushObject(App.Channel.create(row)); }); }); }, delete: function(uuid) { var obj = this.content.findProperty("uuid", uuid); if (obj) this.content.removeObject(obj);// else alert(uuid); }, dump: function(uuid) { var obj = this.content.findProperty("uuid", uuid); console.log(obj.getProperties(["uuid", "cid_num"])); }, checkEvent: function () { // event_sink with json is not yet support in FS console.log("check"); var me = this; if (!this.get("listener")) { $.getJSON("/api/event_sink?command=create-listener&events=ALL&format=json", function(data){ console.log(data); if (data.listener) { me.set("listener", data.listener["listen-id"]); } }); } if (!me.get("listener")) return; $.getJSON("/api/event_sink?command=check-listener&listen-id=" + me.get("listener") + "&format=json", function(data){ console.log(data); if (!data.listener) { me.set("listener", undefined); } else { data.events.forEach(function(e) { eventCallback(e); }); } }); }, checkXMLEvent: function() { console.log("check XML Event"); var me = this; if (!this.get("listener")) { $.get("/api/event_sink?command=create-listener&events=ALL", function(data){ // console.log(data); var listen_id = data.getElementsByTagName("listen-id")[0]; if (listen_id) { me.set("listener", listen_id.textContent); } }); } if (!me.get("listener")) return; $.get("/api/event_sink?command=check-listener&listen-id=" + me.get("listener"), function(data){ // console.log(data); var listener = data.getElementsByTagName("listener")[0]; if (!listener) { me.set("listener", undefined); } else { var events = data.getElementsByTagName("event"); for (var i=0; i