Userscript installation and updater

This commit is contained in:
Ruud
2011-10-16 19:36:38 +02:00
parent 00f819b4f1
commit e8ae2dced0
11 changed files with 134 additions and 67 deletions
@@ -7,7 +7,7 @@ Page.Userscript = new Class({
options: {
'onOpened': function(){
App.stopLoadTimer();
App.fireEvent('unload');
App.getBlock('header').hide();
}
},
@@ -43,4 +43,71 @@ Page.Userscript = new Class({
}
});
});
var UserscriptSettingTab = new Class({
tab: '',
content: '',
initialize: function(){
var self = this;
App.addEvent('load', self.addSettings.bind(self))
},
addSettings: function(){
var self = this;
self.settings = App.getPage('Settings')
self.settings.addEvent('create', function(){
var tab = self.settings.createTab('userscript', {
'label': 'Userscript',
'name': 'userscript'
});
self.tab = tab.tab;
self.content = tab.content;
self.createUserscript();
});
},
createUserscript: function(){
var self = this;
self.settings.createGroup({
'label': 'Install the Userscript'
}).inject(self.content).adopt(
new Element('a', {
'text': 'Install userscript',
'href': Api.createUrl('userscript.get')+'?couchpotato.user.js',
'normalhref': true
})
);
}
});
window.addEvent('domready', function(){
new UserscriptSettingTab();
});
window.addEvent('load', function(){
var your_version = $(document.body).get('data-userscript_version')
latest_version = App.getOption('userscript_version')
key = 'cp_version_check',
checked_already = Cookie.read(key);
if(your_version < latest_version && checked_already < latest_version){
if(confirm("Update to the latest Userscript?\nYour version: " + your_version + ', new version: ' + latest_version )){
document.location = Api.getOption('url')+'userscript.get/?couchpotato.user.js';
}
Cookie.write(key, latest_version, {duration: 100});
}
});