summaryrefslogtreecommitdiffstats
path: root/install/static/ipa.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/static/ipa.js')
-rw-r--r--install/static/ipa.js490
1 files changed, 0 insertions, 490 deletions
diff --git a/install/static/ipa.js b/install/static/ipa.js
deleted file mode 100644
index 48c116a8..00000000
--- a/install/static/ipa.js
+++ /dev/null
@@ -1,490 +0,0 @@
-/* Authors:
- * Pavel Zuna <pzuna@redhat.com>
- * Adam Young <ayoung@redhat.com>
- * Endi Dewata <edewata@redhat.com>
- *
- * Copyright (C) 2010 Red Hat
- * see file 'COPYING' for use and warranty information
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-/*global $:true, location:true */
-
-var IPA = ( function () {
-
- var that = {
- jsonrpc_id: 0
- };
-
- that.use_static_files = false;
- that.json_url = '/ipa/json';
- if (that.use_static_files){
- that.json_url = 'test/data';
- }
-
- that.ajax_options = {
- type: 'POST',
- contentType: 'application/json',
- dataType: 'json',
- async: true,
- processData: false
- };
-
- that.messages = {};
- that.metadata = {};
- that.whoami = {};
-
-
- that.entities = [];
- that.entities_by_name = {};
-
- that.error_dialog = $('<div/>', {
- id: 'error_dialog'
- });
-
- that.layout = $.bbq.getState('layout');
- that.layouts_dir = 'layouts';
-
- that.get_template = function(path) {
- var layout = that.layout || 'default';
- return that.layouts_dir+'/'+layout+'/'+path;
- };
-
- /* initialize the IPA JSON-RPC helper
- * arguments:
- * url - JSON-RPC URL to use (optional) */
- that.init = function (url, use_static_files, on_success, on_error) {
- if (url) {
- that.json_url = url;
- }
-
- if (use_static_files) {
- that.use_static_files = use_static_files;
- }
-
- $.ajaxSetup(that.ajax_options);
-
-
- var startup_batch =
- [
- {"method":"json_metadata","params":[[],{}]},
- {"method":"i18n_messages","params":[[],{}]},
- {"method":"user_find","params":[[],{
- "whoami":"true","all":"true"}]},
- {"method":"env","params":[[],{}]}
- ];
-
-
- IPA.cmd('batch', startup_batch, {},
- function (data, text_status, xhr) {
- that.metadata = data.result.results[0].metadata;
- that.messages = data.result.results[1].messages;
- that.whoami = data.result.results[2].result[0];
- that.env = data.result.results[3].result;
- if (on_success) {
- on_success(data, text_status, xhr);
- }
- },
- on_error,
- null,
- 'ipa_init');
- };
-
- that.get_entities = function () {
- return that.entities;
- };
-
- that.get_entity = function (name) {
- return that.entities_by_name[name];
- };
-
- that.add_entity = function (entity) {
- that.entities.push(entity);
- that.entities_by_name[entity.name] = entity;
- };
-
-
- that.show_page = function (entity_name, facet_name) {
-
- var state = {};
- state[entity_name + '-facet'] = facet_name;
- $.bbq.pushState(state);
- };
-
- that.switch_and_show_page = function (this_entity, facet_name, pkey) {
- if (!pkey){
- that.show_page(this_entity, facet_name);
- return;
- }
- var state = {};
- state[this_entity+'-pkey'] = pkey;
- state[this_entity + '-facet'] = facet_name;
- $.bbq.pushState(state);
- };
-
- return that;
-}());
-
-IPA.command = function (spec) {
-
- spec = spec || {};
-
- var that = {};
-
- that.name = spec.name;
- that.method = spec.method;
-
- that.args = $.merge([], spec.args || []);
- that.options = $.extend({}, spec.options || {});
-
- that.on_success = spec.on_success;
- that.on_error = spec.on_error;
-
- that.add_arg = function(arg) {
- that.args.push(arg);
- };
-
- that.set_option = function(name, value) {
- that.options[name] = value;
- };
-
- that.get_option = function(name) {
- return that.options[name];
- };
-
- that.execute = function() {
- IPA.cmd(
- that.method,
- that.args,
- that.options,
- that.on_success,
- that.on_error,
- null,
- that.name);
- };
-
- that.to_json = function() {
- var json = {};
-
- json.method = that.method;
-
- json.params = [];
- json.params[0] = that.args || [];
- json.params[1] = that.options || {};
-
- return json;
- };
-
- that.to_string = function() {
- var string = that.method.replace(/_/g, '-');
-
- for (var i=0; i<that.args.length; i++) {
- string += ' '+that.args[i];
- }
-
- for (var name in that.options) {
- string += ' --'+name+'=\''+that.options[name]+'\'';
- }
-
- return string;
- };
-
- return that;
-};
-
-IPA.batch_command = function (spec) {
-
- spec = spec || {};
-
- spec.method = 'batch';
-
- var that = IPA.command(spec);
-
- that.commands = [];
-
- that.add_command = function(command) {
- that.commands.push(command);
- that.add_arg(command.to_json());
- };
-
- that.add_commands = function(commands) {
- for (var i=0; i<commands.length; i++) {
- that.add_command(commands[i]);
- }
- };
-
- that.execute = function() {
- IPA.cmd(
- that.method,
- that.args,
- that.options,
- function(data, text_status, xhr) {
-
- for (var i=0; i<that.commands.length; i++) {
- var command = that.commands[i];
- var result = data.result.results[i];
-
- if (!result) {
- if (command.on_error) command.on_error(
- xhr, text_status,
- {
- title: 'Internal Error '+xhr.status,
- message: result ? xhr.statusText : "Internal error"
- }
- );
-
- } else if (result.error) {
- if (command.on_error) command.on_error(
- xhr,
- text_status,
- {
- title: 'IPA Error '+result.error.code,
- message: result.error.message
- }
- );
-
- } else {
- if (command.on_success) command.on_success(result, text_status, xhr);
- }
- }
- if (that.on_success) that.on_success(data, text_status, xhr);
- },
- function(xhr, text_status, error_thrown) {
- // TODO: undefined behavior
- if (that.on_error) {
- that.on_error(xhr, text_status, error_thrown);
- }
- },
- null,
- that.name);
- };
-
- return that;
-};
-
-/* call an IPA command over JSON-RPC
- * arguments:
- * name - name of the command or method if objname is set
- * args - list of positional arguments, e.g. [username]
- * options - dict of options, e.g. {givenname: 'Pavel'}
- * win_callback - function to call if the JSON request succeeds
- * fail_callback - function to call if the JSON request fails
- * objname - name of an IPA object (optional) */
-IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, command_name)
-{
- var default_json_url = '/ipa/json';
-
- var network_call_count = 0;
- function display_activity_icon(){
- network_call_count += 1;
- $('.network-activity-indicator').css('display','inline');
- }
-
- function hide_activity_icon(){
- network_call_count -= 1;
-
- if (0 === network_call_count){
- $('.network-activity-indicator').css('display','none');
- }
- }
-
- function dialog_open(xhr, text_status, error_thrown) {
- var that = this;
-
- IPA.error_dialog.dialog({
- modal: true,
- width: 400,
- buttons: {
- 'Retry': function () {
- IPA.error_dialog.dialog('close');
- IPA.cmd(name, args, options, win_callback, fail_callback,
- objname, command_name);
- },
- 'Cancel': function () {
- IPA.error_dialog.dialog('close');
- if (fail_callback) {
- fail_callback.call(that, xhr, text_status,
- error_thrown);
- }
- }
- }
- });
- }
-
- function ajax_error_handler(xhr, text_status, error_thrown) {
- IPA.error_dialog.empty();
- IPA.error_dialog.attr('title', error_thrown.title);
-
- IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
-
- dialog_open.call(this, xhr, text_status, error_thrown);
- }
-
- function error_handler(xhr, text_status, error_thrown) {
- hide_activity_icon();
- if (!error_thrown) {
- error_thrown = {
- name: xhr.responseText || 'Unknown Error',
- message: xhr.statusText || 'Unknown Error'
- };
- }
-
- if (xhr.status === 401) {
- error_thrown.name = 'Kerberos ticket no longer valid.';
- if (IPA.messages && IPA.messages.ajax){
- error_thrown.message = IPA.messages.ajax["401"];
- } else {
- error_thrown.message =
- "Your kerberos ticket no longer valid. "+
- "Please run kinit and then click 'retry'. "+
- "If this is your first time running the IPA Web UI "+
- "<a href='/ipa/config/unauthorized.html'>"+
- "follow these directions</a> to configure your browser.";
- }
- }
-
- error_thrown.title = 'AJAX Error: '+error_thrown.name;
- ajax_error_handler.call(this, xhr, text_status, error_thrown);
- }
-
-
- function http_error_handler(xhr, text_status, error_thrown) {
- IPA.error_dialog.empty();
- IPA.error_dialog.attr('title', error_thrown.title);
-
- IPA.error_dialog.append('<p>URL: '+this.url+'</p>');
- IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
-
- dialog_open.call(this, xhr, text_status, error_thrown);
- }
-
- //Think this should be removed
- function alt_error_handler(xhr, text_status, error_thrown) {
- hide_activity_icon();
- IPA.error_dialog.empty();
- IPA.error_dialog.attr('title', error_thrown.title);
-
- IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
-
- dialog_open.call(this, xhr, text_status, error_thrown);
- }
-
-
- function success_handler(data, text_status, xhr) {
- hide_activity_icon();
- if (!data) {
- var error_thrown = {
- title: 'HTTP Error '+xhr.status,
- message: data ? xhr.statusText : "No response"
- };
- http_error_handler.call(this, xhr, text_status, error_thrown);
-
- } else if (data.error) {
- error_handler.call(this, xhr, text_status, /* error_thrown */ {
- title: 'IPA Error '+data.error.code,
- message: data.error.message
- });
-
- } else if (win_callback) {
- win_callback.call(this, data, text_status, xhr);
- }
- }
-
- IPA.jsonrpc_id += 1;
- var id = IPA.jsonrpc_id;
-
- var method_name = name;
-
- if (objname){
- method_name = objname + '_' + name;
- }
-
- var url = IPA.json_url;
-
- if (IPA.use_static_files){
- if (command_name) {
- url += '/' + command_name + '.json';
- } else {
- url += '/' + method_name + '.json';
- }
- }
- var data = {
- method: method_name,
- params: [args, options],
- id: id
- };
-
- var request = {
- url: url,
- data: JSON.stringify(data),
- success: success_handler,
- error: error_handler
- };
- display_activity_icon();
- $.ajax(request);
-
- return (id);
-};
-
-
-/* helper function used to retrieve information about an attribute */
-IPA.get_param_info = function(obj_name, attr)
-{
- var obj = IPA.metadata[obj_name];
- if (!obj) {
- return null;
- }
-
- var takes_params = obj.takes_params;
- if (!takes_params) {
- return (null);
-
- }
- for (var i = 0; i < takes_params.length; i += 1) {
- if (takes_params[i].name === attr){
- return (takes_params[i]);
- }
- }
-
- return (null);
-};
-
-/* helper function used to retrieve attr name with members of type `member` */
-IPA.get_member_attribute = function (obj_name, member)
-{
- var obj = IPA.metadata[obj_name];
- if (!obj) {
- return null;
- }
- var attribute_members = obj.attribute_members;
- for (var a in attribute_members) {
- var objs = attribute_members[a];
- for (var i = 0; i < objs.length; i += 1) {
- if (objs[i] === member){
- return a;
- }
- }
- }
- return null;
-
-};
-
-
-IPA.create_network_spinner = function(){
- return $('<span />',{
- 'class':'network-activity-indicator',
- html: '<img src="spinner_small.gif" />'});
-};