VIM Gadget Development - EGain

2y ago
61 Views
2 Downloads
475.83 KB
18 Pages
Last View : 1m ago
Last Download : 2m ago
Upload by : Bria Koontz
Transcription

VIM Gadget DevelopmentEXONY-API-014VIM 10.1(1)December 2014The smarter way to manage customer contactContact Exony 44 1635 271 5555 info@exony.com www.exony.com @exony vim Exony 2014

St Catherine's House, Oxford SquareOxford StreetNewburyBERKSHIRERG14 1JQUnited KingdomTel: 44 1635 271555Fax: 44 1635 271556www.exony.comCopyright Notice: This document has been prepared by Exony Limited and, subject to any existing rights ofother parties; Exony is the owner of the copyright of this document. The contents or any part thereof may notbe copied or disclosed to a third party without the written permission of Exony, nor may it be used formanufacturing or tendering purposes without the written permission of Exony.VIM 10.1(1)Gadget Development GuidelinesPage 2

IntroductionIntroductionVirtualized Interaction Manager (VIM) is a private cloud management platform offeringenterprise-class contact center consolidation, centralization and management. It is specificallydesigned for complex large-scale environments.VIM provides a highly agile, virtualized software platform that lets you manage distributeddata, operations, infrastructure and resources as a single entity across multiple time zones andlanguages. It is a smarter and simpler way to manage your contact center and maximize value ina multi-location, multi-channel world.VIM offers flexible reporting and analytics, combining data from multiple sources to supply theright information and the right tools at the right time to managers, analysts and supervisors. Thisenables sharper decision-making and allows those decisions to be rapidly translated into actionsto optimize and enhance customer experience and revenue generation.The platform architecture offers secure separation of multi-tenant data, providing the rightcontact center resources to each department, site and line of business. VIM integrates with othertools like Workforce Management and Quality Management, enabling local managers to tap intothe full capabilities of VIM and retain close control on the ground.VIM provides full integration with the Cisco Unified CCE, UCM and CVP platforms, andconsolidates data from other contact center platforms such as Avaya CMS to deliver anenterprise-wide view on performance.What This Document ContainsThis document provides an overview of VIM’s framework for gadget development, a set ofrecommended best practices for developing gadgets consistent with other VIM gadgets and thespecific steps required to upload new gadgets to the VIM repository.Who Should Read This DocumentThis document is intended for readers with a sound understanding of gadget development in anOpenSocial framework. It is not a generic introduction to gadget development. The prerequisitesfor gadget development in VIM are: An understanding of the OpenSocial 0.8 specification Basic to intermediate HTML and CSS skills Intermediate JavaScript development skills An understanding of the VIM Web Service APIs (see the VIM Web Services Reference forfurther information). Any domain-specific knowledge required for developing your gadgets. For example towrite a gadget that uses the VIM Web Service APIs to manage agents on Cisco CCE, youneed an understanding of the Cisco concepts for agent creation (agent properties, agentteam memberships, skill groups, precision queue attributes etc).VIM 10.1(1)Gadget Development GuidelinesPage 3

IntroductionTrademarksThe terms Microsoft, Windows, Word, Excel, Reporting Services and Analysis Services aretrademarks owned by Microsoft Corporation.The terms Cisco, Unified ICM, Unified CC, Unified CCE, Unified CCH, CVP and CUCM aretrademarks owned by Cisco Systems Inc.Any terms used in this manual do not affect the validity of any trademark.VIM 10.1(1)Gadget Development GuidelinesPage 4

Table of ContentsTable of ContentsVIM 10.1(1)12VIM OpenSocial Framework Overview . 6VIM Gadget Development Concepts . 734VIM Web Architecture and the OpenSocial Standard . 8VIM Gadget Layout . 105Supported OpenSocial APIs . 12678Reserved PubSub Event Keys . 15Gadget Development Guidelines . 16Uploading Gadgets into the VIM Repository . 182.12.24.15.15.25.35.48.18.2Gadgets . 7Apps . 7Gadget DOM Elements . 11Gadget Prefs . 12Gadget PubSub . 13Gadget Utils . 14Gadget Windows. 14Production Gadgets . 18Gadgets Under Development . 18Gadget Development GuidelinesPage 5

Chapter 1: VIM OpenSocial Framework Overview1VIM OpenSocial Framework OverviewThe Exony VIM web application is built using the OpenSocial 0.8 standard, whichdefines a Web 2.0 component model for a business application focused browserbased environment.Each gadget can communicate with other gadgets in the browser page by meansof publishing or subscribing to events, which are handled entirely in the browser.The use of the OpenSocial standard coupled with VIM REST services gives a richinteractive experience for the user. This standard allows customers and partnersto add their own gadget content to the VIM application. By combining a gadgetinterface component with VIM’s Web Service APIs, or with functionality fromrelevant third party applications, VIM can be extended to deliver additionalcapabilities and business value for enterprises.Note that although OpenSocial 0.8 is a web standard, gadgets developed for othervendors’ frameworks may not work in VIM so developers should ensure thatgadgets intended for use in VIM are qualified against the target VIM deploymentenvironment.VIM 10.1(1)Gadget Development GuidelinesPage 6

Chapter 2: VIM Gadget Development Concepts2VIM Gadget Development Concepts2.1GadgetsGadgets are web 2.0 components made up of HTML DOM elements, CSS, andJavaScript. Typically a gadget will be designed to fulfill a particular businessfunction such as managing a contact center agent or running a report. Gadgetscan work in conjunction with other gadgets, for example a navigation or searchgadget can be used to select items for a separate gadget to perform updates on.These gadgets are rendered in a browser using content generated by anOpenSocial Container on the server, which is user and security aware.2.2AppsIn the VIM application one or more OpenSocial gadgets are collected together intoan app. For example, a contact center app may implement a typical agent desktopwhich contains tools to receive and process inbound and outbound customercontacts.Multiple apps can be created by the VIM user or the VIM service provider tosupport different roles. For example, an inbound agent app may contain gadgetsfor call management and queue information while an inbound supervisor appmay also contain gadgets for agent management.Gadgets and apps are standard VIM resources and have the same role-basedsecurity as the rest of the platform. A VIM user can specify a default app, whichautomatically loads on their home page when they log in.VIM 10.1(1)Gadget Development GuidelinesPage 7

Chapter 3: VIM Web Architecture and the OpenSocialStandard3VIM Web Architecture and the OpenSocialStandardThis section provides an overview of how gadgets interact with the VIMapplication stack.This diagram shows the VIM implementation of the OpenSocial standards basedarchitecture and the key data flows between the client browser and the VIMserver.Figure 1Exony OpenSocial Architecture ImplementationNoteSupported browsers and versions are:1.VIM 10.1(1) Internet Explorer version 8 or later Google Chrome version 25 or later Mozilla Firefox version 18 or later.Desktop and App Page Load. When a user connects to the VIM webapplication using a supported browser, and is successfully logged in, theirdefault app is downloaded from the web server. The default app is typicallysomething defined by the end user for a specific purpose (for example,Gadget Development GuidelinesPage 8

Chapter 3: VIM Web Architecture and the OpenSocialStandardsupervisor inbound team management), and will contain one or moregadgets.VIM 10.1(1)2.Render Gadget. The browser renders the app, which requests theOpenSocial Container on the VIM server to render each gadget and return itscontent for display in a per gadget iFrame.3.Read App and Gadget Definitions. The OpenSocial Container loads eachgadget from the gadget repository. Then the OpenSocial Container reads thegadget metadata header to determine the correct server side processingactions, for example, performing language translations or adding in thespecified OpenSocial features. This load and server render process can beslow for complex gadgets and so once a gadget has been rendered, it iscached in the server for a period to reduce the load on server. This meansthat the application can cope with periods of peak activity such as shiftchanges when large numbers of users log in within a short timeframe.4.Business Logic Interactions. The rendered server content for each gadget isreturned to the browser which injects it into an iFrame dedicated to thatgadget instance. The user can then interact with the gadget, which mayrequest additional data or services from the server. On the client side theactive gadget code running in the iFrame communicates back to the VIMserver using REST web services and can communicate with other gadgetsusing the OpenSocial PubSub standard.Gadget Development GuidelinesPage 9

Chapter 4: VIM Gadget Layout4VIM Gadget LayoutAn OpenSocial gadget is specified in an XML document that has two sections: The header section, within the ModulePrefs tags, defines the metadataused by the OpenSocial Container to provide the server side renderingcharacteristics. The content section, within the Content tags, defines the gadget userinterface and client-side business logic. It consists of HTML DOM elements,CSS and JavaScript.An example gadget skeleton is shown below.VIM Gadget Skeleton ?xml version "1.0" encoding "utf-8"? Module ModulePrefs title "Resource Manager" description "The provisioning gadget forprovisioning contact centre resources" Require feature "pubsub-2" / Require feature "setprefs" / Require feature "settitle" / Locale lang "fr" country "CA"messages "https://localhost/Portal/gadgets/msgs/GadgetsI18n fr CA.g.xml" / Locale lang "fr"messages "https://localhost/Portal/gadgets/msgs/GadgetsI18n fr ALL.g.xml" / Localemessages "https://localhost/Portal/gadgets/msgs/GadgetsI18n ALL ALL.g.xml" / /ModulePrefs Content type "html" ![CDATA[ -- JavaScript Includes -- -- CSS Includes -- -- DOM Elements -- ]] /Content /Module This example skeleton contains sufficient information for the OpenSocialContainer to determine what actions are needed to process the gadget. Items ofinterest are: title - the title of the gadget as displayed on the gadget title bar Require - which OpenSocial features are needed for the OpenSocialContainer to render this gadget pubsub-2 - the inter-gadget communication mechanism. setprefs – store the individual user preferences for a user for thisgadget on the client. VIM 10.1(1)settitle – used when the gadget needs to change the title at runtime.Gadget Development GuidelinesPage 10

Chapter 4: VIM Gadget Layout Locale - Message bundles that contain the translations used either by serverside {Msg.Dimensions.CALL TYPE} or client side prefs.getMsg. Content - VIM only supports type ”html”. The gadget application elementsare contained between the CDATA opening and closing tags.4.1Gadget DOM ElementsThis section shows example HTML DOM elements operated upon by theJavaScript objects.The example shows: a spinner div (id spinnerId) that is used by the main View to show thegadget is busy an anchor for a resource grid div (id resourceGridDiv) that can be used toinject a jqGrid with VIM resource detailDOM Elements Example div id "spinnerId" style "text-align:center;padding-top:25px" img src "CoreImages/large spinner.gif" alt " {Msg.GeneralText.LoadingDotDotDot}"/ /div div id "resourcesGridDiv" class "table table-striped" table id "resourcesGrid" class "table table-striped" /table div id "pager" /div /div VIM 10.1(1)Gadget Development GuidelinesPage 11

Chapter 5: Supported OpenSocial APIs5Supported OpenSocial APIsThis section describes the supported client side OpenSocial APIs which areavailable at run-time.5.1Gadget PrefsThis OpenSocial API provides access to two core OpenSocial functions: the internationalized messages (as set by the user login context). the user preferences, if the OpenSocial setprefs feature has been set in thegadget ModulePrefs section.NotePreferences data is stored in the browser session and is persisted to VIM if theuser has Manage Apps permission. Unless the user saves the App, preferencesdata will not persist across VIM user login sessions.The following OpenSocial Gadget Prefs APIs are supported:APIDescriptiongadgets.prefs.getBool (key)Returns a preference as a boolean or false if not set.gadgets.prefs.getCountry()Retrieve the current country as ISO 3166-1 alpha-2 codegadgets.prefs.getFloat (key) Retrieves a preference as a float.gadgets.prefs.getInt (key)Retrieves a preference as an integer or 0 if not set.gadgets.prefs.getLang()Returns the current language the gadget should use when rendering,returned as a ISO 639-1 language codegadgets.prefs.getModuleId()Returns the module id for the current gadget instance. Currentlyalways 0.gadgets.prefs.getMsg(key)Retrieves an unformatted messagegadgets.prefs.getString(key) Retrieves a preference as a stringgadgets.prefs.Set(key, val)Stores a preference. To use this call, the gadget must require thefeature setprefs.The storage of gadget preferences is typically made using the gadgets.prefs.SetAPI serialized as a JSON string and retrieved on startup using thegadgets.Prefs.getString Method.VIM 10.1(1)Gadget Development GuidelinesPage 12

Chapter 5: Supported OpenSocial APIsGadget Prefs Example// Get I18N value of "Folder" for the current locale.var prefs new gadgets.Prefs();var folderMsg et PubSubVIM implements the OpenSocial pubsub-2 gadget communication feature. Itallows gadgets to publish events and subscribe to events in order to improve userinteractivity with the application. Each event is given a strict namespace to avoidcollisions (see section 6 for details). In OpenSocial these namespaces are known astopics. Publishers send messages to topics and subscribers receive messages onthose topics.The following APIs are ", "message")Any kind of object may be published provided it is serializable toJSON.gadgets.Hub.subscribe("topic", callback)This method indicates to the hub the topic that the gadget isinterested in receiving information about.gadgets.Hub.unsubscribe("topic") Remove a subscription for a gadget from the hubThis example shows sample publisher and subscriber code.PubSub Example// Publisher:// Publish the selection to any subscribers who have registered an interest in aresource of this type.var resourceKey { id: resourceId, type: resourceType, folderId: folderId };gadgets.Hub.publish("exony.resource.selected", resourceKey);// Subscriber:// Register interest in a resource of this type.var resourceKey { id: resourceId, type: resourceType, folderId: folderId };gadgets.Hub.subscribe("exony.resource.selected", function(resourceKey){// Process the supplied resource key});VIM 10.1(1)Gadget Development GuidelinesPage 13

Chapter 5: Supported OpenSocial APIs5.3Gadget UtilsVIM supports a partial implementation of the OpenSocial Utils API.The following API is dHandler(callback)Registers an on-load handler (a function that executes whenthe gadget loads). Multiple handlers can be registered, andall will be invoked, in the order in which they wereregistered.This example removes the padding from the body HTML once the gadget hasloaded.Utils Example// Remove padding from body after gadget loadgadgets.util.registerOnLoadHandler(function () { j('body').css("padding", "0"); });5.4Gadget WindowsVIM allows a gadget to obtain information about the window the gadget islocated in and to modify the window properties.The following APIs are tle)Implementation of the OpenSocial settitle feature. The APIsets the gadget titlegadgets.window.adjustHeight(opt height)Adjusts the gadget height.gadgets.window.getViewportDimensionsDetects the inner dimensions of the frame and returns an objectwith the width and height.This example sets the height of the gadget.Gadget Windows Example// Set gadget window heightvar heightVal 500;gadgets.window.adjustHeight(heightVal);VIM 10.1(1)Gadget Development GuidelinesPage 14

Chapter 6: Reserved PubSub Event Keys6Reserved PubSub Event KeysThis page details the reserved PubSub event keys that are used by the platform.KeyDescriptionAddress Requirementsexony.resource.selectedRaised when a resource item isselected to allow subscribing gadgetsto be loaded.{id:12345,type:IT Agent}exony.finesse.xmppActiveUsed by the Exony framework to signal true/ falsewhen the Finesse XMPP connection hasbeen establishedexony.finesse.logoutFired when a logout is performed fromwithin the Exony frameworkexony.finesse.logonUsed by the Exony framework to signal {extension:12345,password:XXXX}a Finesse logon and establish a BOSHconnection to the XMPP Servicefinesse.*Reserved for conversion of eventsraised from the Finesse XMPP Serviceexony.gadgets.enablerefresh.* Reserved by the container for theexony.refresh feature.Keys will contain the index of thecontainer on the pagee.g. *VIM 10.1(1)Reserved by the container forcommunication between the gadgetand the container for resize eventscontained in the gadgets.windowclass.Keys will contain the index of thecontainer on the pagee.g. exony.gadgets.window.4Gadget Development Guidelinestruetrue/ false{title: "THE GADGETTITLE"}Page 15

Chapter 7: Gadget Development Guidelines7Gadget Development GuidelinesThis section contains guidelines for gadget development for the VIM platform. Itis recommended that you follow these guidelines where possible.Cross Browser SupportVIM supports the Internet Explorer, Firefox and Chrome browsers. Gadgetdevelopers should ensure that gadgets developed for VIM are compatible withthese browsers.NoteSupported browsers and versions are: Internet Explorer version 8 or later Google Chrome version 25 or later Mozilla Firefox version 18 or later.rdConsuming 3Party REST APIsWhen accessing 3rd party APIs from gadgets within the VIM framework, the WebService calls must be reverse proxied on the VIM Web Server, or on an externalreverse proxy appliance to avoid the same-origin problem. Same-origi

The rendered server content for each gadget is returned to the browser which injects it into an iFrame dedicated to that gadget instance. The user can then interact with the gadget , which may request additional data or services from the server. On the cli ent side the active gadget

Related Documents:

b. Dampak Negative Penggunaan Gadget Dampak negatif dari gadget adalah: 1. Penurunan konsentrasi saat belajar (pada saat belajar anak menjadi tidak fokus dan hanya teringat dengan gadget, misalnya anak teringat dengan permainan gadget seolah-olah dia seperti tokoh dalam game tersebut). 2.

To add a gadget to the dashboard, click the ZSelect Gadgets [ button on the top right corner. In the popup dialog, check the gadget you need and then click the ZOK [ button. To delete a gadget, move your mouse over the gadget and click the button on its top corner. To move a gadget, move your mouse to the tit

Fiscal 2015 was a transformative year for eGain as we established the cross-functional foundation to transition our business to the cloud. First, we launched eGain version 14, a new simplified cloud-ready product suite, in November 2014. Second, taking advantage of the out-of-the-b

14 memanfaatkan gadget untuk mencari informasi dan sumber berita melalui mesin pencari (google).Dengan menggunakan mesin pencari berita yang ada pada gadget diharapkan kebutuhan informasi dan sumber belajar pada siswa SD/MI dapat terpenuhi.6 Terdapat dampak positifnya gadget bagi anak yaitu menambah informasi ataupun wawasan anak-anak, menjadi media pembelajaran yang

penggunaan gadget pada anak usia dini di Perumahan Griya Abdi Negara ini dan berdasarkan hasil data dilapangan adanya peran-peran orangtua dalam mengawasi penggunaan gadget yang bertujuan agar anak-anak usia dini terkontrol dalam penggunaan gadget. Penelitian yang dilakukan

atau intensitas penggunaan gadget dan dampak dari penggunaan gadget. Aplikasi yang biasa digunakan anak-anak ketika menggunakan gadget umumnya adalah aplikasi game ataupun youtube (Hafiz, 2017: 43). Durasi atau intensitas penggunaan gadget dapat dibagi menjadi tiga, yaitu : penggunaan tinggi yaitu pada intensitas

Oracle WebCenter Sites User’s Guide for the Gadgets Application Gadget Catalogs Gadgets can be deployed only when they are registered to a site gadget catalog, either directly or from the global gadget catalog. The catalogs are provided in the Gadgets application’s interfaces – the Global Gadget Ca

Andreas Wagner1, Wolfgang Wiedemann1, Thomas Wunderlich1 1 Chair of Geodesy, Faculty of Civil, Geo and Environmental Engineering, Technical University of Munich, Munich, Germany, a.wagner@tum.de .