pad.libre-service.eu-etherpad/src/static/js/pad_cookie.js

65 lines
1.7 KiB
JavaScript
Raw Normal View History

2011-03-26 14:10:41 +01:00
/**
* Copyright 2009 Google Inc.
2011-07-07 19:59:34 +02:00
*
2011-03-26 14:10:41 +01:00
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
2011-07-07 19:59:34 +02:00
*
2011-03-26 14:10:41 +01:00
* http://www.apache.org/licenses/LICENSE-2.0
2011-07-07 19:59:34 +02:00
*
2011-03-26 14:10:41 +01:00
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS-IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const createCookie = require('./pad_utils').createCookie;
const readCookie = require('./pad_utils').readCookie;
exports.padcookie = new class {
constructor() {
this.cookieName_ = window.location.protocol === 'https:' ? 'prefs' : 'prefsHttp';
const prefs = this.readPrefs_() || {};
delete prefs.userId;
delete prefs.name;
delete prefs.colorId;
this.prefs_ = prefs;
this.savePrefs_();
2011-03-26 14:10:41 +01:00
}
2011-07-07 19:59:34 +02:00
init() {
if (this.readPrefs_() == null) {
$.gritter.add({
title: 'Error',
text: html10n.get('pad.noCookie'),
sticky: true,
class_name: 'error',
});
}
2011-03-26 14:10:41 +01:00
}
readPrefs_() {
const jsonEsc = readCookie(this.cookieName_);
if (jsonEsc == null) return null;
try {
return JSON.parse(unescape(jsonEsc));
} catch (e) {
2011-03-26 14:10:41 +01:00
return null;
}
}
2011-07-07 19:59:34 +02:00
savePrefs_() {
createCookie(this.cookieName_, escape(JSON.stringify(this.prefs_)), 365 * 100);
2011-03-26 14:10:41 +01:00
}
2011-07-07 19:59:34 +02:00
getPref(prefName) {
return this.prefs_[prefName];
2011-03-26 14:10:41 +01:00
}
setPref(prefName, value) {
this.prefs_[prefName] = value;
this.savePrefs_();
}
}();