function updateFeedList() {
+ try {
+ Element.show("feedlistLoading");
- Element.show("feedlistLoading");
-
- resetCounterCache();
-
- if (dijit.byId("feedTree")) {
- dijit.byId("feedTree").destroyRecursive();
- }
-
- var store = new dojo.data.ItemFileWriteStore({
- url: "backend.php?op=pref_feeds&method=getfeedtree&mode=2"});
-
- var treeModel = new fox.FeedStoreModel({
- store: store,
- query: {
- "type": getInitParam('enable_feed_cats') == 1 ? "category" : "feed"
- },
- rootId: "root",
- rootLabel: "Feeds",
- childrenAttrs: ["items"]
- });
-
- var tree = new fox.FeedTree({
- model: treeModel,
- onClick: function (item, node) {
- var id = String(item.id);
- var is_cat = id.match("^CAT:");
- var feed = id.substr(id.indexOf(":")+1);
- viewfeed({feed: feed, is_cat: is_cat});
- return false;
- },
- openOnClick: false,
- showRoot: false,
- persist: true,
- id: "feedTree",
- }, "feedTree");
-
-/* var menu = new dijit.Menu({id: 'feedMenu'});
-
- menu.addChild(new dijit.MenuItem({
- label: "Simple menu item"
- }));
-
-// menu.bindDomNode(tree.domNode); */
-
- var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
- console.log(dijit.getEnclosingWidget(event.target));
- dojo.disconnect(tmph);
- });
-
- $("feeds-holder").appendChild(tree.domNode);
-
- var tmph = dojo.connect(tree, 'onLoad', function() {
- dojo.disconnect(tmph);
- Element.hide("feedlistLoading");
-
- try {
- feedlist_init();
+ resetCounterCache();
- loading_set_progress(25);
- } catch (e) {
- exception_error(e);
+ if (dijit.byId("feedTree")) {
+ dijit.byId("feedTree").destroyRecursive();
}
- });
- tree.startup();
+ var store = new dojo.data.ItemFileWriteStore({
+ url: "backend.php?op=pref_feeds&method=getfeedtree&mode=2"
+ });
+
+ var treeModel = new fox.FeedStoreModel({
+ store: store,
+ query: {
+ "type": getInitParam('enable_feed_cats') == 1 ? "category" : "feed"
+ },
+ rootId: "root",
+ rootLabel: "Feeds",
+ childrenAttrs: ["items"]
+ });
+
+ var tree = new fox.FeedTree({
+ model: treeModel,
+ onClick: function (item, node) {
+ var id = String(item.id);
+ var is_cat = id.match("^CAT:");
+ var feed = id.substr(id.indexOf(":") + 1);
+ viewfeed({feed: feed, is_cat: is_cat});
+ return false;
+ },
+ openOnClick: false,
+ showRoot: false,
+ persist: true,
+ id: "feedTree",
+ }, "feedTree");
+
+ /* var menu = new dijit.Menu({id: 'feedMenu'});
+
+ menu.addChild(new dijit.MenuItem({
+ label: "Simple menu item"
+ }));
+
+ // menu.bindDomNode(tree.domNode); */
+
+ var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
+ console.log(dijit.getEnclosingWidget(event.target));
+ dojo.disconnect(tmph);
+ });
+
+ $("feeds-holder").appendChild(tree.domNode);
+
+ var tmph = dojo.connect(tree, 'onLoad', function () {
+ dojo.disconnect(tmph);
+ Element.hide("feedlistLoading");
+
+ try {
+ feedlist_init();
+
+ loading_set_progress(25);
+ } catch (e) {
+ exception_error(e);
+ }
+ });
+
+ tree.startup();
+ } catch (e) {
+ exception_error(e);
+ }
}
function catchupAllFeeds() {
"dijit/form/Form",
"dijit/form/RadioButton",
"dijit/form/Select",
+ "dijit/form/MultiSelect",
"dijit/form/SimpleTextarea",
"dijit/form/TextBox",
"dijit/form/ComboBox",
if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return;
var keycode = false;
- var shift_key = false;
- var ctrl_key = false;
- var alt_key = false;
- var meta_key = false;
var cmdline = $('cmdline');
- shift_key = e.shiftKey;
- ctrl_key = e.ctrlKey;
- alt_key = e.altKey;
- meta_key = e.metaKey;
-
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
keycode = e.which;
}
- var keychar = String.fromCharCode(keycode);
-
if (keycode == 27) { // escape
hotkey_prefix = false;
}
if (keycode == 16) return; // ignore lone shift
if (keycode == 17) return; // ignore lone ctrl
- keychar = keychar.toLowerCase();
-
var hotkeys = getInitParam("hotkeys");
+ var keychar = String.fromCharCode(keycode).toLowerCase();
if (!hotkey_prefix && hotkeys[0].indexOf(keychar) != -1) {
cmdline.innerHTML = keychar;
Element.show(cmdline);
+ e.stopPropagation();
+
+ // returning false here literally disables ctrl-c in browser lol (because C is a valid prefix)
return true;
}
var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
// ensure ^*char notation
- if (shift_key) hotkey = "*" + hotkey;
- if (ctrl_key) hotkey = "^" + hotkey;
- if (alt_key) hotkey = "+" + hotkey;
- if (meta_key) hotkey = "%" + hotkey;
+ if (e.shiftKey) hotkey = "*" + hotkey;
+ if (e.ctrlKey) hotkey = "^" + hotkey;
+ if (e.altKey) hotkey = "+" + hotkey;
+ if (e.metaKey) hotkey = "%" + hotkey;
hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
hotkey_prefix = false;
if (action != null) {
action();
+ e.stopPropagation();
return false;
}
}