Skip to content
Eric edited this page Apr 25, 2018 · 162 revisions

In OGX.JS, Popups are floating boxes with a view in them, they can be draggable, have and icon and buttons. A popup is what would be commonly called in an operating system environment, a window.

Popups are parts of the core, have a size and a view. For the following documentation consider app being an instance of Core.

Instantiate

 let config = {
      name:_STRING_, //Required, must be unique
      width:_NUMBER_|_STRING_, //Required, either a number (for pixels) or a percentage 
      height:_NUMBER_|_STRING_, //Required, either a number (for pixels) or a percentage 
      title:_STRING_, //Optional, the title of the popup,
      buttons:_ARRAY_, //Optional, an array of strings or objects    
      scroller:_BOOL_, //Optional, if the popup contains a scroller     
      html:_STRING_, //Optional, some HTML content to add to the body of the popup
      template:_STRINT_, //Optional, HTML content coming from a template stored in Templater
      anim:_STRING_, //Optional, defaults to OGX.MobileCore.POPUP_FADE 
      listen_overlay:_BOOLEAN_, //Optional, defaults to false, if the core should listen for clicks on the overlay and hide it
      zindex:_INT_ //Optional, the z-index of the popup,
      css:_STRING_ //Optional, an css class to be added to the body of the popup,
      view:_OBJECT_, //Optional, a view configuration object
 };
 app.addPopup(config);

Example - Create a simple popup of 400px x 300px with custom HTML in it

 app.addPopup({
      name:'MyPopup', 
      width:400, 
      height:300,          
      anim:OGX.Popup.POPUP_FADE, 
      listen_overlay:false,
      html:'<p>Some HTML content</p>'
  });   

Example - Create a simple popup of 400px x 300px with a HTML template

 app.addPopup({
      name:'MyPopup', 
      width:400, 
      height:300,          
      anim:OGX.Popup.POPUP_FADE, 
      listen_overlay:false,
      template:'MyPopupTemplate'
  });   

Example - Create a popup of 400x300px, pass it a view 'MyView', with an empty object, a fade animation and ignore user interactions on the underlying overlay (tapping the overlay won't do anything).

 app.addPopup({
      name:'MyPopup', 
      width:400, 
      height:300,          
      anim:OGX.Popup.POPUP_FADE, 
      listen_overlay:false,
      view:{view:'MyView', scroll:false, observe:false}, 
  });

Same but with percent instead

 app.addPopup({
      name:'MyPopup', 
      width:'80%',
      height:'80%',           
      anim:OGX.App.POPUP_FADE, 
      listen_overlay:false,
      view:{view:'MyView', scroll:false, observe:false}, 
 });

Note : it is important to remember that HTML content can be injected either at popup level or view level, same remark for scrollers.

Buttons

You can add buttons to your popup either by passing an array of strings (labels of buttons) or an array of objects. If you use strings, you will need to listen to the events of the popup, such as

  app.addPopup({
     ...
     buttons:['OK', 'Cancel']
  });

  $(document).on(OGX.Popup.CLICK_BUTTON, function(__event, __data){
      console.log(__data); //logs {index:_INT_, value:_STRING} where index is the button index and value its label
   });

If you'd rather not listen to events and have a callback called when the button is hit instead, do

  app.addPopup({
     ...
     buttons:[{label:'OK', callback:myFunction}, {label:'Cancel', callback:otherFunction}]
  });

  function myFunction(){ ... }
  function otherFunction(){ ... }

Delete

 app.removePopup(_NAME_, _ANIMATION_);

Deleting a popup will also call the destroy method of a view.

Clone this wiki locally