Continue working on rewriting stuff

This commit is contained in:
Calvin Montgomery 2013-06-06 23:13:24 -04:00
parent c7b3adbed1
commit b5ec80d02f
3 changed files with 204 additions and 1 deletions

72
www/assets/js/data.js Normal file
View File

@ -0,0 +1,72 @@
var CLIENT = {
rank: -1,
name: "",
logged_in: false,
profile: {
image: "",
text: ""
}
};
var CHANNEL = {
opts: {},
openqueue: false,
perms: {},
};
var PLAYER = false;
var VWIDTH = $("#ytapiplayer").parent().css("width").replace("px", "");
var VHEIGHT = ""+parseInt(parseInt(VWIDTH) * 9 / 16);
var POSITION = -1;
var socket;
var IGNORED = [];
var CHATHIST = [];
var CHATHISTIDX = 0;
var SCROLLCHAT = true;
var LASTCHATNAME = "";
var LASTCHATTIME = 0;
var FOCUSED = true;
var PAGETITLE = "CyTube";
var TITLE_BLINK;
var KICKED = false;
var NAME = readCookie("cytube_uname");
var SESSION = readCookie("cytube_session");
function getOrDefault(k, def) {
var v = localStorage.getItem(k);
if(v === null)
return def;
if(v === "true")
return true;
if(v === "false")
return false;
if(v.match(/[0-9]+/))
return parseInt(v);
if(v.match(/[0-9\.]+/))
return parseFloat(v);
return v;
}
var USEROPTS = {
theme : getOrDefault("theme", "default"),
css : getOrDefault("css", ""),
layout : getOrDefault("layout", "default"),
synch : getOrDefault("synch", true),
hidevid : getOrDefault("hidevid", false),
show_timestamps : getOrDefault("show_timestamps", true),
modhat : getOrDefault("modhat", false),
blink_title : getOrDefault("blink_title", false),
sync_accuracy : getOrDefault("sync_accuracy", 2),
chatbtn : getOrDefault("chatbtn", false),
altsocket : getOrDefault("altsocket", false)
};
var Rank = {
Guest: 0,
Member: 1,
Leader: 1.5,
Moderator: 2,
Admin: 3,
Owner: 10,
Siteadmin: 255
};

View File

@ -14,8 +14,136 @@ function generateToggle(chevron, div) {
}); });
} }
/* setup show/hide toggles */
generateToggle("#usercountwrap", "#userlist"); generateToggle("#usercountwrap", "#userlist");
generateToggle("#librarytoggle", "#librarywrap"); generateToggle("#librarytoggle", "#librarywrap");
generateToggle("#userpltoggle", "#userplaylistwrap"); generateToggle("#userpltoggle", "#userplaylistwrap");
generateToggle("#playlisttoggle", "#playlist_controls"); generateToggle("#playlisttoggle", "#playlist_controls");
/* navbar stuff */
$("#optlink").click(showOptionsMenu);
$("#guestlogin").click(function() {
socket && socket.emit("login", {
name: $("#guestname").val(),
});
});
$("#login").click(showLoginMenu);
$("#logout").click(function() {
eraseCookie("cytube_name");
eraseCookie("cytube_session");
document.ocation.reload(true);
});
/* chatbox */
$("#chatline").keyDown(function(ev) {
if(ev.keyCode == 13) {
var msg = $("#chatline").val();
if(msg.trim()) {
if(USEROPTS.modhat && CLIENT.rank >= Rank.Moderator) {
msg = "/m " + msg;
}
socket.emit("chatMsg", {
msg: msg
});
CHATHIST.push($("#chatline").val());
CHATLISTIDX = CHATHIST.length;
$("#chatline").val("");
}
return;
}
else if(ev.keyCode == 9) {
var words = $("#chatline").val().split(" ");
var current = words[words.length - 1].toLowerCase();
var users = $("#userlist").children();
var match = null;
for(var i = 0; i < users.length; i++) {
var name = users[i].children[1].innerHTML.toLowerCase();
if(name.indexOf(current) == 0 && match == null) {
match = users[i].children[1].innerHTML;
}
else if(name.indexOf(current) == 0) {
match = null;
break;
}
}
if(match != null) {
words[words.length - 1] = match;
if(words.length == 1)
words[0] += ": ";
else
words[words.length - 1] += " ";
$("#chatline").val(words.join(" "));
}
ev.preventDefault();
return false;
}
else if(ev.keyCode == 38) {
if(CHATHISTIDX == CHATHIST.length) {
CHATHIST.push($("#chatline").val());
}
if(CHATHISTIDX > 0) {
CHATHISTIDX--;
$("#chatline").val(CHATHIST[CHATHISTIDX]);
}
ev.preventDefault();
return false;
}
else if(ev.keyCode == 40) {
if(CHATHISTIDX < CHATHIST.length - 1) {
CHATHISTIDX++;
$("#chatline").val(CHATHIST[CHATHISTIDX]);
}
ev.preventDefault();
return false;
}
});
/* poll controls */
$("#newpollbtn").click(showPollMenu);
/* search controls */
$("#library_search").click(function() {
socket.emit("searchMedia", {
source: "library",
query: $("#library_query").val().toLowerCase()
});
});
$("#library_query").keydown(function(ev) {
if(ev.keyCode == 13) {
socket.emit("searchMedia", {
source: "library",
query: $("#library_query").val().toLowerCase()
});
}
});
$("#youtube_search").click(function() {
socket.emit("searchMedia", {
source: "yt",
query: $("#library_query").val().toLowerCase()
});
});
/* user playlists */
$("#userpltoggle").click(function() {
socket.emit("listPlaylists");
});
$("#userpl_save").click(function() {
if($("#userpl_name").val().trim() == "") {
makeAlert("Invalid Name", "Playlist name cannot be empty", "alert-error")
.addClass("span12")
.insertAfter($("#userpl_save").parent());
return;
}
socket.emit("savePlaylist", {
name: $("#userpl_name").val()
});
});
/* playlist controls */

View File

@ -89,6 +89,8 @@
<div class="row-fluid" id="leftpane-inner"> <div class="row-fluid" id="leftpane-inner">
<!-- poll container --> <!-- poll container -->
<div class="span12" id="pollwrap"> <div class="span12" id="pollwrap">
<!-- new poll controls -->
<button class="btn btn-primary btn-small" id="newpollbtn">New Poll</button>
</div> </div>
<!-- library search --> <!-- library search -->
<div class="span12 pointer" id="librarytoggle"> <div class="span12 pointer" id="librarytoggle">
@ -167,6 +169,7 @@
<script src="./assets/js/jquery.js"></script> <script src="./assets/js/jquery.js"></script>
<!-- My Javascript --> <!-- My Javascript -->
<script src="./assets/js/data.js"></script>
<script src="./assets/js/ui.js"></script> <script src="./assets/js/ui.js"></script>
<!-- <!--
<script src="./assets/js/iourl.js"></script> <script src="./assets/js/iourl.js"></script>