JSFiddle - React, Tailwind, and code Playground
by huston007
JavaScript
var DEBUG = true;
//chrome.browserAction.setBadgeText({"text": "..." });
var api = new ucloudAPI({
hostUrl: (localStorage["hostUrl"] && localStorage["hostUrl"]!="")? localStorage["hostUrl"] : "https://api.business365.ru",
secretKey: localStorage["secretKey"],
email: localStorage["email"]
});
api.setAuthHeaders();
//---------------BACKBONE---------------
//---------Объявляем модели-------------
//Базовая модель:
var ucloudBaseModel = Backbone.Model.extend({
idAttribute: "Id",
});
var Task = ucloudBaseModel.extend({urlRoot: api.hostUrl+api.apiPath+api.tasks});
var Project = ucloudBaseModel.extend({urlRoot: api.hostUrl+api.apiPath+api.projects});
var Coworker = ucloudBaseModel.extend({urlRoot: api.hostUrl+api.apiPath+api.users});
//----------Объявляем коллекции моделей---------
//Базовая коллекция:
var ucloudBaseCollection = Backbone.Collection.extend({
fetch: function(options) {
typeof(options) != 'undefined' || (options = {});
options.update = "update"; //чтобы обновлялись только изменённые модели коллекции
return Backbone.Collection.prototype.fetch.call(this, options);
},
initialize: function(){
this.fetch({silent: true}); //подбираем с сервера
},
parse: function(response) {
return response.Data.Items;
}
});
var Tasks = ucloudBaseCollection.extend({
model: Task,
url: api.hostUrl+api.apiPath+api.tasks,
});
var Projects = ucloudBaseCollection.extend({
model: Project,
url: api.hostUrl+api.apiPath+api.projects,
});
var Coworkers = ucloudBaseCollection.extend({
model: Coworker,
url: api.hostUrl+api.apiPath+api.users,
});
//-----------------------------------------------------------
var tasks = new Tasks;
var projects = new Projects;
var coworkers = new Coworkers;
//Показываем события коллекции задач
tasks.on("reset", function(){console.log("fetch")});
tasks.on("add", function(task){
console.log("added", task);
webkitNotifications.createNotification(
'128.png', // icon...