-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
122 lines (113 loc) · 3.74 KB
/
Copy pathscript.js
File metadata and controls
122 lines (113 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
(function($, window){
function biggestIcon(icons) {
var biggest = 0;
var size = 0;
for( var i in icons) {
if(icons[i].size > size) {
size = icons[i].size;
biggest = i;
}
}
return biggest;
}
function launchApp(appID) {
chrome.management.launchApp(appID);
window.close();
}
$(function(){
var widgets = [],
dragged = false;
extIds = [];
var gridster = $(".gridster > ul").gridster({
widget_margins: [5, 5],
widget_base_dimensions: [100, 55],
serialize_params: function($w, wgd) {
return {
x: wgd.col,
y: wgd.row,
width: wgd.size_x,
height: wgd.size_y,
id: $($w).attr('id'),
class: $($w).attr('class'),
html: $($w)[0].innerHTML,
};
},
draggable: {
start: function(event, ui) {
dragged = true;
},
stop: function(event, ui){
dragged = false;
$oWidgets = this.serialize();
localStorage.removeItem("orderedArr");
localStorage.setItem("orderedArr", JSON.stringify($oWidgets));
}
}
}).data('gridster');
function gridster_widget(extensionInfo){
var i = biggestIcon(extensionInfo.icons);
gridster.add_widget('<li class="new" id="'+
extensionInfo.id +
'" "><img id="'+ extensionInfo.id +
'" src=' +
extensionInfo.icons[i].url +
'><br>' +
extensionInfo.shortName +
'</li>', 2,2);
}
if (localStorage.getItem('orderedArr') !== null) {
var json = JSON.parse(localStorage.getItem('orderedArr'));
var lsIds = json.map(function(el){
return el.id;
});
for (var i = 0; i < json.length; i++) {
gridster.add_widget('<li class="new" id="'+
json[i]['id']+
'" ">' + json[i]['html'] +
'</li>', json[i]['width'],
json[i]['height'],
json[i]['x'],
json[i]['y']
);
}
chrome.management.getAll( function(extensionInfos){
extensionInfos.forEach(function(xi){
if(xi.isApp){
extIds.push(xi.id);
}
});
return extIds;
});
chrome.management.getAll( function(extensionInfos){
extensionInfos.forEach(function(xi) {
if (xi.isApp) {
if (lsIds.indexOf(xi.id) < 0) {
gridster_widget(xi);
}
}
});
json.forEach(function(el, index){
if (extIds.indexOf(el.id) < 0){
gridster.remove_widget( $('.gridster li#' + el.id));
$oWidgets = gridster.serialize();
localStorage.removeItem("orderedArr");
localStorage.setItem("orderedArr", JSON.stringify($oWidgets));
}
});
});
} else {
chrome.management.getAll(function(extensionInfos){
extensionInfos.forEach(function(xi) {
if (xi.isApp) {
gridster_widget(xi);
}
});
});
}
$('body').on('mouseup', 'li', function(ev){
if (!dragged) {
launchApp(ev.target.id);
}
});
});
})( jQuery, this );