Difference between revisions of "AppSuite:Demo"

(Add advertisement banner to mail detail view)
m (Add advertisement banner to mail detail view)
Line 14: Line 14:
 
       .css({
 
       .css({
 
         backgroundImage: "url(" + url + ")",
 
         backgroundImage: "url(" + url + ")",
 +
        backgroundSize: '100px 100px',
 
         width: '100px', height: '100px',
 
         width: '100px', height: '100px',
 
         margin: "0px auto 20px auto"
 
         margin: "0px auto 20px auto"

Revision as of 19:29, 24 April 2013

Demo Stuff

Extension points

Add advertisement banner to mail detail view

 
var ext = require("io.ox/core/extensions");
ext.point('io.ox/mail/detail').extend({
  index: 180,
  id: 'ad',
  draw: function (data) {
    var url = "http://upload.wikimedia.org/wikipedia/de/thumb/" + 
        "c/cb/Logo_Burger_King.svg/200px-Logo_Burger_King.svg.png";
    this.append(
      $("<div>")
      .css({
        backgroundImage: "url(" + url + ")",
        backgroundSize: '100px 100px',
        width: '100px', height: '100px',
        margin: "0px auto 20px auto"
      })
    );
  }
});

Add your own extension

 
// calendar detail view
var ext = require("io.ox/core/extensions");
ext.point("io.ox/calendar/detail").extend({
  index: 10,
  id: "strange",
  draw: function (appointment) {
    var strangeTitle = appointment.title.replace(/[aeiou]/g, "o"),
        $titleNode = $("<h2>").text(strangeTitle);
    return this.append($titleNode);
  }
});

Disable extensions

 
// Disable participants
var ext = require("io.ox/core/extensions");
ext.point("io.ox/calendar/detail").disable("participants");

Enable extensions

 
// Re-enable participants
var ext = require("io.ox/core/extensions");
ext.point("io.ox/calendar/detail").enable("participants");

Customize existing extension

 
ext.point("io.ox/calendar/detail/date").extend({
  id: "highlight",
  index: 'last',
  draw: function () {
    this.css({
      backgroundColor: "yellow",
      padding: "3px",
      border: "1px solid #fc0"
    });
  }
});

Replace existing extension

 
var ext = require("io.ox/core/extensions");
ext.point("io.ox/calendar/detail").replace({
  id: "title",
  draw: function (data) {
    this.append(
      $('<div class="title">').css('color', '#a00').text("Hello World! " + data.title)
    );
  }
});

Change order of existing extensions

 
// Shuffle extension order
var ext = require("io.ox/core/extensions");
ext.point("io.ox/calendar/detail").each(function (e) {
  e.index = Math.random() * 1000 >> 0;
}).sort();