SlideShare a Scribd company logo
Social Networks
       Your Enterprise Social Network   For Enterprises




    Developing Zyncro Apps and customizing UI
1
Agenda

       What is a ZyncroApp?
       ZyncroApp flow, types and uses
       ZyncroApp JavaScript structure
       JavaScript methods
       JavaScript hooks
       ZyncroApp CSS structure
       Samples of adding components to GUI
       ZyncroApp and REST API
       Zyncro development environment (Sandbox)
       Basic UI customization
       Advanced UI customization




2
What is a ZyncroApp?


     A Zyncro App is a software module that is loaded and integrated into Zyncro’s
     website to add new features and functionality, for example add new elements
     to Zyncro’s front-end such as new sections, menus, buttons, etc.


     A Zyncro App is composed of:


       Front-end modules: JavaScript, CSS and HTML (jQuery is used)


       Back-end modules: PHP and MySQL database (supported by default) and
       the interactions with external services, may be third-party services as
       Google API or internals services, the Zyncro REST API.




3
ZyncroApp flow



                                                        Zyncro REST API                 External
                         Load ZyncroApps                   services                     services
                      JavaScript/CSS modules




                                                JS
                                               HTML                         PHP
                                                                                             Database
                                               CSS
                                                        AJAX calls
                                          Client Side                     Server Side
         Zyncro web
                                                        ZyncroApp



4
ZyncroApp types


     The are two types of ZyncroApps:


       Organization-level App: The administrator of the organization decides
       whether enable/disable the app. Once enabled the App is available to all
       users within the organization, who cannot deactivate it.


       User-level App: The administrator of the organization enables the App, and
       then each User (within the organization) decides whether activate it or not
       (for example, the Chat). The app may also be activated by default.




5
ZyncroApp uses

     We are using the ZyncroApps, for example, to provide these features:




         Favorites Groups         Web Content Viewer           Featured Groups




              Quote                       Chat                     Calendar




6
Play with a ZyncroApp



                   My first ZyncroApp!

                            Demo




7
ZyncroApp JavaScript structure

                 if (!$.Zyncro_Apps.Foo) {
     Creates
                         $.Zyncro_Apps.Foo = new Object();
    ZyncroApp
                         $.Zyncro_Apps.Foo.View = {
                                 addToGUI : function() {
     Defines                             //add some components to GUI...
      View                       }
                         };

                         $.Zyncro_Apps.Foo.Controller = {
                                 doSomething : function() {
                                         //execute something...
     Defines                     },
    Controller                   start : function() {
                                         $.Zyncro_Apps.Foo.View.addToGUI();
                                 }
                         };
      Starts
                         $.Zyncro_Apps.Foo.Controller.start();
    ZyncroApp    };
8
JavaScript methods

      Some JavaScript methods are available to get information about the User
      logged. With these JavaScript methods, you can:

           $.Zyncro_Apps.getSessionId()
           //Gets the a session ID for the logged user

           $.Zyncro_Apps.getUserId()
           //Gets the user ID for the logged user

           $.Zyncro_Apps.getOrganizationId()
           //Gets the organization ID for the logged user

           $.Zyncro_Apps.getLanguage()
           //Gets the current language for the logged user

           $.Zyncro_Apps.addListener(listener, callback)
           //Registers a call back function to be called when
           a particular event occurs

           $.Zyncro_Apps.callListener(listener)
           //Fires a custom event
9
JavaScript hooks

      We provided some custom events, a ZyncroApp can register to these events

             Event ID                                  Description
       zyncro_zwall        Success on loading the activity stream (home, profiles,
                           departments, groups, etc.)

       zyncro_group        Success loading the groups list

       zyncro_documents    Success loading the documents list

       zyncro_contact      Success loading the people list

       zyncro_permission   Success loading the participants list on a group or department


       zyncro_zprofile     Success loading the followers or following lists


10
JavaScript hooks


             Event ID                                Description
      zyncro_tasks          Success loading a tasks list (inside a group or tasks section)


      zyncro_ajax           Success loading another generic AJAX events

      zapp_disable          Fire when a ZyncroApp is disabled

      zyncro_childMessage   Load a child message, this happens after publishing a
                            comment inside a thread

      zyncro_loadThread     Success loading more threads on a wall (share new thread,
                            show previous publications)

      zyncro_loadpageapps   Success when loading the ZyncroApps list on Admin Panel or
                            User Panel



11
ZyncroApp CSS structure


          A ZyncroApp can be composed of a JavaScript file and a CSS file. All
          the code related with styles should be included in the CSS and not in
          the JavaScript.

          Whenever possible, it’s advisable to use the classes defined for the
          ZyncroApps. These “standard” classes will be redefined by the
          Zyncro Skins, so the ZyncroApp do not need to worry about it
          changes in Zyncro’s look&feel.

          For example

           <a class="button">Action</a>




12
Samples of adding components to GUI

      We will see some samples of how to add components to:


            A Menu Item in the Sidebar menu


            An Icon in the Icons menu


            A Widget to the Sidebar panel


            Some Items in the Content header


            Change the content of the Actual section



13
A Menu Item in the Sidebar menu




     $("#sidebar .sidebar-menu ul").append('
             <li id="menu-zapp-sample" class="zapp-sidebar-menu-item">
                     <a title="ZyncroApp item" href="#">
                              <i class="icon-flag"></i>
                              ZyncroApp item
                     </a>
             </li>
     ');

14
An Icon in the Icons menu




     $("#icons-menu").append('
             <li id="zapp-sample-notif">
                     <a class="iconized popup-launcher">
                              <span id="count-zapp-sample-notif">5</span>
                     </a>
             </li>
     ');


15
A Widget to the Sidebar panel




     JS:
     $("#sidebar-apps").append('
              <div class="sidebar-widget" id="zapp-sample-widget">
                        <p class="widget-title">ZyncroApp title</p>
                        <div class="zapp-widget-content">
                                 <ul>
                                           <li>Item 1</li>
                                           <li>Item 2</li>
                                 </ul>
                        </div>
                        <div class="zapp-box-border">
                        </div>
              </div>
     ');

     CSS:
16   .zapp-box-border { width:100%; float:left }
Some Items in the Content header




       $("#main-content-header").show().html('
               <p class="main-content-header-title">ZyncroApp title</p>
               <a class="button">Action</a>
       ');



17
Change the content of the Actual section




18
Change the content of the Actual section
JS:                                                                                     CSS:
$("#actual-section").html(‘                                                             #zapp-sample-form .zapp-sample.header
<div id=“zapp-sample”>                                                                  {margin:2% 0px;}
  <div>
    <div id="zapp-sample-form">                                                         #zapp-sample-form .zapp-sample-form-list li
       <div class=“zapp-sample-header zapp-box-back-emph zapp-normal-text">Form</div>   {width:100%;margin-bottom:2%;float:left;}
       <ul class=“zapp-sample-form-list”>
         <li>                                                                           #zapp-sample-form .zapp-sample-form-list li label
           <label>Field 1: </label>                                                     {padding-right:2%;text-align:right;width:30%;
           <input><br>                                                                  float:left;}
               <span class="zapp-normal-text zapp-error-text">Mandatory field</span>
         </li>                                                                          #zapp-sample-form .zapp-sample-form-list li span
         <li>                                                                           {margin-left:32%}
           <label>Field 2: </label>
           <input type="checkbox">                                                      #zapp-sample-form .zapp-sample-actions
         </li>                                                                          {width:100%;float:left;text-align:right;}
         <li>
           <label>Field 3: </label>                                                     #zapp-sample .zapp-box
           <select><option>Option 1</option><option>Option 2</option></select>          {float:left;width:96%;margin-top:2%;}
         </li>
       </ul>                                                                            #zapp-sample-list ul li, #zapp-sample-list ul
       <div class=“zapp-sample-actions” >                                               {width:100%;float:left;}
         <a class="zapp-normal-text zapp-link">Cancel</a>
         <a class="button button-inverted">Delete form</a>                              #zapp-sample-list ul li span
         <a class="button">Save</a>                                                     {float:left;width:30%;padding-left:1%;}
       </div>
    </div>
    <div class="zapp-box zapp-box-back zapp-box-border">Box sample</div>
    <div class="zapp-box zapp-box-back-alt zapp-box-border">Another box</div>
  </div>
</div>
<div id=“zapp-sample-list”>
  <ul>
    <li class="zapp-box-header">
       <span>Column 1</span>       <span>Column 2</span>
    </li>
    <li class="zapp-box-row zapp-box-back-hover">
       <span>Data 1</span>      <span>Data 2</span>
    </li>
  </ul>
</div>
 19
');
ZyncroApp and REST API

        We’ll see a simple ZyncroApp that combines calls to the Zyncro REST
        API. The ZyncroApp has these features:

          Creates a widget on the Side Panel with two buttons: Get Wall and
          Post a Message.

          When you click the “Get Wall” button, an AJAX call is invoked to a
          PHP service that use the Zyncro REST API to retrieve the Home Feed
          of the current logged user.

          The “Post a Message” button shows a text box where the user can
          enter a message. An AJAX call is used to publish that message in the
          Personal Feed of the logged user, using the REST API.




20
Zyncro Development Environment

      To develop and test your applications and integrations, we provide you
      access to a Zyncro Development Environment

         A Zyncro account in our Sandbox environment with 5 users and up to
         1GB storage space that you can use to develop and test your
         integrations.


         To develop with our REST API, you will get an API Key to access to it.


         Access (through SFTP) to your own storage space on our servers to host
         your app (where you can locate your files: JavaScript, CSS, HTML, PHP...),
         up to 200MB.


         Access to your own MySQL database (if you need it)


21
More info


          Zyncro Developers Portal
       http://developers.zyncro.com




22
Basic UI customization

     From the Administration panel we provide some Basic UI Customizations

       Change the Logo of the Organization, the Background Color of the Header
       and the Text Color of the Header




23
Basic UI customization

       Use a customized Subdomain (automatically generated inside Zyncro) for
       your Organization, for example:
                         http://enterprise20.zyncro.com

       It would result in a personalized login page with your logo and color.




24
Basic UI customization

       When you generate a Zlink (Public link) in Zyncro, you can choose to show
       (or not) the customized UI in them.




25
Basic UI customization

       Create new Sections, Change the Order of Sections, Hide/show sections in
       the Menu




26
Advanced UI customization


      Use a completely different page for your Login/Forget password features
      in Zyncro, provided by you. You can set the URL from the Administration
      Panel.




27
Advanced UI customization

     For Advanced UI customization, you can modify the CSS that Zyncro loads in
     your organization, you have to options:

       Complement (override) the current CSS that Zyncro is using

       Discard the current CSS and redefined it all, like it would be a new Skin in
       Zyncro

     The texts of the Web application as well as the email templates that Zyncro
     sends can be changed and customized. Currently, we do not provide API
     services to perform these modification. They should be discussed with
     Zyncro team.




28
Advanced UI customization

                            Zyncro Classic




29
Advanced UI customization

                            Zyncro Zen




30
WWW.ZYNCRO.COM
         Twitter: @zyncro
     blog: en.blog.zyncro.com

31

More Related Content

PDF
MVC pattern for widgets
PDF
[FEConf Korea 2017]Angular 컴포넌트 대화법
PDF
JavaScript Library Overview
PDF
jQuery Internals + Cool Stuff
KEY
Overlays, Accordions & Tabs, Oh My
PDF
The Rails Way
PDF
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
PDF
State of jQuery '08
MVC pattern for widgets
[FEConf Korea 2017]Angular 컴포넌트 대화법
JavaScript Library Overview
jQuery Internals + Cool Stuff
Overlays, Accordions & Tabs, Oh My
The Rails Way
Spout - Building a RESTful web app with Angular.js and BEAR.Sunday
State of jQuery '08

What's hot (20)

PDF
Android Sliding Menu dengan Navigation Drawer
PDF
Web::Machine - Simpl{e,y} HTTP
PDF
Django Class-based views (Slovenian)
PDF
Frontends w ithout javascript
PDF
No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluen...
PPTX
JavaScripters Event Oct 22, 2016 · 2:00 PM: Common Mistakes made by Angular D...
PPTX
Extend sdk
PPTX
Embracing YUI3 and Frontend Perf
PDF
Hacking Movable Type
PPT
Creating the interfaces of the future with the APIs of today
KEY
Design Patterns for Tablets and Smartphones
PPT
jQuery and_drupal
PDF
Transformando os pepinos do cliente no código de testes da sua aplicação
PDF
Ch2 first app
PPTX
Beyond DOMReady: Ultra High-Performance Javascript
PPTX
J Query (Complete Course) by Muhammad Ehtisham Siddiqui
PDF
Ruby on Rails : RESTful 和 Ajax
PPTX
Level up apps and websites with vue.js
TXT
Xxx
PDF
Ajax nested form and ajax upload in rails
Android Sliding Menu dengan Navigation Drawer
Web::Machine - Simpl{e,y} HTTP
Django Class-based views (Slovenian)
Frontends w ithout javascript
No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluen...
JavaScripters Event Oct 22, 2016 · 2:00 PM: Common Mistakes made by Angular D...
Extend sdk
Embracing YUI3 and Frontend Perf
Hacking Movable Type
Creating the interfaces of the future with the APIs of today
Design Patterns for Tablets and Smartphones
jQuery and_drupal
Transformando os pepinos do cliente no código de testes da sua aplicação
Ch2 first app
Beyond DOMReady: Ultra High-Performance Javascript
J Query (Complete Course) by Muhammad Ehtisham Siddiqui
Ruby on Rails : RESTful 和 Ajax
Level up apps and websites with vue.js
Xxx
Ajax nested form and ajax upload in rails
Ad

Viewers also liked (20)

PDF
ROLL UP-AIRPLANET
PDF
Cl powertransformer
PPS
228 Galicia
PPTX
Proyecto educativo comunitario en la zona z agape 2010
PDF
Bocyl d-02012012-1
DOCX
Borrador del guion del hangout final
DOC
Gewinnspielregeln deezer at
PPS
Profesorados y Traductorado de Portugués
PDF
Guerrilla
PDF
Premios investigar en ciencias (zalamea 2012 13)
DOCX
Informe de práctico nº 3
PPT
Elango icoe-2009
PDF
He137 09 funny_products
PDF
Eacc bolivia
PPT
Presentación: Alexis Haiquel - 2ºJorada Intensiva de Comercio Electrónico par...
PPTX
Facebook ferroni, germi y makia
PDF
Señalización Jar
DOC
PPT
India Entry Business Plan - Print on Demand software
ROLL UP-AIRPLANET
Cl powertransformer
228 Galicia
Proyecto educativo comunitario en la zona z agape 2010
Bocyl d-02012012-1
Borrador del guion del hangout final
Gewinnspielregeln deezer at
Profesorados y Traductorado de Portugués
Guerrilla
Premios investigar en ciencias (zalamea 2012 13)
Informe de práctico nº 3
Elango icoe-2009
He137 09 funny_products
Eacc bolivia
Presentación: Alexis Haiquel - 2ºJorada Intensiva de Comercio Electrónico par...
Facebook ferroni, germi y makia
Señalización Jar
India Entry Business Plan - Print on Demand software
Ad

Similar to Zyncro zyncro apps & ui customization feb 2013 (20)

PPTX
React django
PDF
07_UIAndroid.pdf
PDF
JSF 2.0 Preview
PPT
Beginning Native Android Apps
PPTX
Building a dashboard using AngularJS
KEY
Introduction to Palm's Mojo SDK
PPT
Android activity, service, and broadcast recievers
PDF
jQuery UI and Plugins
PPTX
Android apps development
PPTX
My Very First Zf App Part One
PDF
Native Android Development Practices
PDF
Introduction to Andriod Studio Lecture note: Android Development Lecture 1.pdf
PPT
Ionic tabs template explained
PDF
After max+phonegap
PDF
混搭移动开发:PhoneGap+JQurey+Dreamweaver
PPTX
Android 3
PDF
Static Reference Analysis for GUI Objects in Android Software
PPTX
Developing Flask Extensions
PPTX
Android development with Scala and SBT
PDF
Os Haase
React django
07_UIAndroid.pdf
JSF 2.0 Preview
Beginning Native Android Apps
Building a dashboard using AngularJS
Introduction to Palm's Mojo SDK
Android activity, service, and broadcast recievers
jQuery UI and Plugins
Android apps development
My Very First Zf App Part One
Native Android Development Practices
Introduction to Andriod Studio Lecture note: Android Development Lecture 1.pdf
Ionic tabs template explained
After max+phonegap
混搭移动开发:PhoneGap+JQurey+Dreamweaver
Android 3
Static Reference Analysis for GUI Objects in Android Software
Developing Flask Extensions
Android development with Scala and SBT
Os Haase

More from Zyncro (20)

PDF
Zyncro, your Social Business Platform
PDF
Infografia: Zyncro como plataforma de Social Business
PPTX
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
PDF
Infografía: 6 cosas que no sabias que podias mejorar con Comunicación Interna
PDF
6 things you didnt know you can improve with Internal Communication
PPTX
Beneficios y usos de las Redes Sociales Corporativas. Evento Intel. Madrid Se...
PDF
Infografik: 7 typen von internetnutzern, die sie auf einem sozialen unternehm...
PDF
Infographie: 7 types d utilisateurs de votre rse
PDF
Infografía: 7 tipos de usuarios de internet que puedes encontrar en una Red S...
PDF
Infographic: 7 types of internet users you encounter when using an Enterprise...
PDF
Infografía: La empresa 2.0 por Zyncro
PDF
Infographic: Enterprise 2.0 by Zyncro
PDF
Infografía: Zyncro, tu Red Social Corporativa
PDF
Infographic: Zyncro, your Enterprise Social Network
PDF
Infographic: Zyncro Corporate Activity Stream
PDF
Infographic: Zyncro Corporate Activity Stream
PDF
Infographic ROI of Enterprise Social Networks
PDF
Infografía: El ROI de las Redes Sociales Corporativas
PPTX
La realidad de las redes sociales corporativas hoy. Congreso E20Biz 2013.
PPTX
Slot del emprendedor IDC Cloud barcelona
Zyncro, your Social Business Platform
Infografia: Zyncro como plataforma de Social Business
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
Infografía: 6 cosas que no sabias que podias mejorar con Comunicación Interna
6 things you didnt know you can improve with Internal Communication
Beneficios y usos de las Redes Sociales Corporativas. Evento Intel. Madrid Se...
Infografik: 7 typen von internetnutzern, die sie auf einem sozialen unternehm...
Infographie: 7 types d utilisateurs de votre rse
Infografía: 7 tipos de usuarios de internet que puedes encontrar en una Red S...
Infographic: 7 types of internet users you encounter when using an Enterprise...
Infografía: La empresa 2.0 por Zyncro
Infographic: Enterprise 2.0 by Zyncro
Infografía: Zyncro, tu Red Social Corporativa
Infographic: Zyncro, your Enterprise Social Network
Infographic: Zyncro Corporate Activity Stream
Infographic: Zyncro Corporate Activity Stream
Infographic ROI of Enterprise Social Networks
Infografía: El ROI de las Redes Sociales Corporativas
La realidad de las redes sociales corporativas hoy. Congreso E20Biz 2013.
Slot del emprendedor IDC Cloud barcelona

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Cloud computing and distributed systems.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
Cloud computing and distributed systems.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Mobile App Security Testing_ A Comprehensive Guide.pdf
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Zyncro zyncro apps & ui customization feb 2013

  • 1. Social Networks Your Enterprise Social Network For Enterprises Developing Zyncro Apps and customizing UI 1
  • 2. Agenda What is a ZyncroApp? ZyncroApp flow, types and uses ZyncroApp JavaScript structure JavaScript methods JavaScript hooks ZyncroApp CSS structure Samples of adding components to GUI ZyncroApp and REST API Zyncro development environment (Sandbox) Basic UI customization Advanced UI customization 2
  • 3. What is a ZyncroApp? A Zyncro App is a software module that is loaded and integrated into Zyncro’s website to add new features and functionality, for example add new elements to Zyncro’s front-end such as new sections, menus, buttons, etc. A Zyncro App is composed of: Front-end modules: JavaScript, CSS and HTML (jQuery is used) Back-end modules: PHP and MySQL database (supported by default) and the interactions with external services, may be third-party services as Google API or internals services, the Zyncro REST API. 3
  • 4. ZyncroApp flow Zyncro REST API External Load ZyncroApps services services JavaScript/CSS modules JS HTML PHP Database CSS AJAX calls Client Side Server Side Zyncro web ZyncroApp 4
  • 5. ZyncroApp types The are two types of ZyncroApps: Organization-level App: The administrator of the organization decides whether enable/disable the app. Once enabled the App is available to all users within the organization, who cannot deactivate it. User-level App: The administrator of the organization enables the App, and then each User (within the organization) decides whether activate it or not (for example, the Chat). The app may also be activated by default. 5
  • 6. ZyncroApp uses We are using the ZyncroApps, for example, to provide these features: Favorites Groups Web Content Viewer Featured Groups Quote Chat Calendar 6
  • 7. Play with a ZyncroApp My first ZyncroApp! Demo 7
  • 8. ZyncroApp JavaScript structure if (!$.Zyncro_Apps.Foo) { Creates $.Zyncro_Apps.Foo = new Object(); ZyncroApp $.Zyncro_Apps.Foo.View = { addToGUI : function() { Defines //add some components to GUI... View } }; $.Zyncro_Apps.Foo.Controller = { doSomething : function() { //execute something... Defines }, Controller start : function() { $.Zyncro_Apps.Foo.View.addToGUI(); } }; Starts $.Zyncro_Apps.Foo.Controller.start(); ZyncroApp }; 8
  • 9. JavaScript methods Some JavaScript methods are available to get information about the User logged. With these JavaScript methods, you can: $.Zyncro_Apps.getSessionId() //Gets the a session ID for the logged user $.Zyncro_Apps.getUserId() //Gets the user ID for the logged user $.Zyncro_Apps.getOrganizationId() //Gets the organization ID for the logged user $.Zyncro_Apps.getLanguage() //Gets the current language for the logged user $.Zyncro_Apps.addListener(listener, callback) //Registers a call back function to be called when a particular event occurs $.Zyncro_Apps.callListener(listener) //Fires a custom event 9
  • 10. JavaScript hooks We provided some custom events, a ZyncroApp can register to these events Event ID Description zyncro_zwall Success on loading the activity stream (home, profiles, departments, groups, etc.) zyncro_group Success loading the groups list zyncro_documents Success loading the documents list zyncro_contact Success loading the people list zyncro_permission Success loading the participants list on a group or department zyncro_zprofile Success loading the followers or following lists 10
  • 11. JavaScript hooks Event ID Description zyncro_tasks Success loading a tasks list (inside a group or tasks section) zyncro_ajax Success loading another generic AJAX events zapp_disable Fire when a ZyncroApp is disabled zyncro_childMessage Load a child message, this happens after publishing a comment inside a thread zyncro_loadThread Success loading more threads on a wall (share new thread, show previous publications) zyncro_loadpageapps Success when loading the ZyncroApps list on Admin Panel or User Panel 11
  • 12. ZyncroApp CSS structure A ZyncroApp can be composed of a JavaScript file and a CSS file. All the code related with styles should be included in the CSS and not in the JavaScript. Whenever possible, it’s advisable to use the classes defined for the ZyncroApps. These “standard” classes will be redefined by the Zyncro Skins, so the ZyncroApp do not need to worry about it changes in Zyncro’s look&feel. For example <a class="button">Action</a> 12
  • 13. Samples of adding components to GUI We will see some samples of how to add components to: A Menu Item in the Sidebar menu An Icon in the Icons menu A Widget to the Sidebar panel Some Items in the Content header Change the content of the Actual section 13
  • 14. A Menu Item in the Sidebar menu $("#sidebar .sidebar-menu ul").append(' <li id="menu-zapp-sample" class="zapp-sidebar-menu-item"> <a title="ZyncroApp item" href="#"> <i class="icon-flag"></i> ZyncroApp item </a> </li> '); 14
  • 15. An Icon in the Icons menu $("#icons-menu").append(' <li id="zapp-sample-notif"> <a class="iconized popup-launcher"> <span id="count-zapp-sample-notif">5</span> </a> </li> '); 15
  • 16. A Widget to the Sidebar panel JS: $("#sidebar-apps").append(' <div class="sidebar-widget" id="zapp-sample-widget"> <p class="widget-title">ZyncroApp title</p> <div class="zapp-widget-content"> <ul> <li>Item 1</li> <li>Item 2</li> </ul> </div> <div class="zapp-box-border"> </div> </div> '); CSS: 16 .zapp-box-border { width:100%; float:left }
  • 17. Some Items in the Content header $("#main-content-header").show().html(' <p class="main-content-header-title">ZyncroApp title</p> <a class="button">Action</a> '); 17
  • 18. Change the content of the Actual section 18
  • 19. Change the content of the Actual section JS: CSS: $("#actual-section").html(‘ #zapp-sample-form .zapp-sample.header <div id=“zapp-sample”> {margin:2% 0px;} <div> <div id="zapp-sample-form"> #zapp-sample-form .zapp-sample-form-list li <div class=“zapp-sample-header zapp-box-back-emph zapp-normal-text">Form</div> {width:100%;margin-bottom:2%;float:left;} <ul class=“zapp-sample-form-list”> <li> #zapp-sample-form .zapp-sample-form-list li label <label>Field 1: </label> {padding-right:2%;text-align:right;width:30%; <input><br> float:left;} <span class="zapp-normal-text zapp-error-text">Mandatory field</span> </li> #zapp-sample-form .zapp-sample-form-list li span <li> {margin-left:32%} <label>Field 2: </label> <input type="checkbox"> #zapp-sample-form .zapp-sample-actions </li> {width:100%;float:left;text-align:right;} <li> <label>Field 3: </label> #zapp-sample .zapp-box <select><option>Option 1</option><option>Option 2</option></select> {float:left;width:96%;margin-top:2%;} </li> </ul> #zapp-sample-list ul li, #zapp-sample-list ul <div class=“zapp-sample-actions” > {width:100%;float:left;} <a class="zapp-normal-text zapp-link">Cancel</a> <a class="button button-inverted">Delete form</a> #zapp-sample-list ul li span <a class="button">Save</a> {float:left;width:30%;padding-left:1%;} </div> </div> <div class="zapp-box zapp-box-back zapp-box-border">Box sample</div> <div class="zapp-box zapp-box-back-alt zapp-box-border">Another box</div> </div> </div> <div id=“zapp-sample-list”> <ul> <li class="zapp-box-header"> <span>Column 1</span> <span>Column 2</span> </li> <li class="zapp-box-row zapp-box-back-hover"> <span>Data 1</span> <span>Data 2</span> </li> </ul> </div> 19 ');
  • 20. ZyncroApp and REST API We’ll see a simple ZyncroApp that combines calls to the Zyncro REST API. The ZyncroApp has these features: Creates a widget on the Side Panel with two buttons: Get Wall and Post a Message. When you click the “Get Wall” button, an AJAX call is invoked to a PHP service that use the Zyncro REST API to retrieve the Home Feed of the current logged user. The “Post a Message” button shows a text box where the user can enter a message. An AJAX call is used to publish that message in the Personal Feed of the logged user, using the REST API. 20
  • 21. Zyncro Development Environment To develop and test your applications and integrations, we provide you access to a Zyncro Development Environment A Zyncro account in our Sandbox environment with 5 users and up to 1GB storage space that you can use to develop and test your integrations. To develop with our REST API, you will get an API Key to access to it. Access (through SFTP) to your own storage space on our servers to host your app (where you can locate your files: JavaScript, CSS, HTML, PHP...), up to 200MB. Access to your own MySQL database (if you need it) 21
  • 22. More info Zyncro Developers Portal http://developers.zyncro.com 22
  • 23. Basic UI customization From the Administration panel we provide some Basic UI Customizations Change the Logo of the Organization, the Background Color of the Header and the Text Color of the Header 23
  • 24. Basic UI customization Use a customized Subdomain (automatically generated inside Zyncro) for your Organization, for example: http://enterprise20.zyncro.com It would result in a personalized login page with your logo and color. 24
  • 25. Basic UI customization When you generate a Zlink (Public link) in Zyncro, you can choose to show (or not) the customized UI in them. 25
  • 26. Basic UI customization Create new Sections, Change the Order of Sections, Hide/show sections in the Menu 26
  • 27. Advanced UI customization Use a completely different page for your Login/Forget password features in Zyncro, provided by you. You can set the URL from the Administration Panel. 27
  • 28. Advanced UI customization For Advanced UI customization, you can modify the CSS that Zyncro loads in your organization, you have to options: Complement (override) the current CSS that Zyncro is using Discard the current CSS and redefined it all, like it would be a new Skin in Zyncro The texts of the Web application as well as the email templates that Zyncro sends can be changed and customized. Currently, we do not provide API services to perform these modification. They should be discussed with Zyncro team. 28
  • 29. Advanced UI customization Zyncro Classic 29
  • 30. Advanced UI customization Zyncro Zen 30
  • 31. WWW.ZYNCRO.COM Twitter: @zyncro blog: en.blog.zyncro.com 31