Example #1
0
 public static function is_group_user($group_name)
 {
     foreach (self::get_groups() as $group) {
         if ($group->get_name() == $group_name) {
             return true;
         }
     }
     $group = Groups::get_by_name($group_name);
     if ($group) {
         return Session::is_user() ? $group->is_user(self::get_user()) : false;
     } else {
         return false;
     }
 }
function view1($u, $aj)
{
    $l = $u->login;
    $n = $u->nom;
    $p = $u->prenom;
    $e = $u->email;
    echo "Sous le login {$l} se trouve l'utilisateur {$p} {$n} dont l'email est {$e}.";
    ajoue($aj);
    if (Session::is_user($l) || Session::is_user('admin')) {
        echo <<<EOT
\t\t<p>
\t\t\t<a href='?action=update&controller=utilisateur&login={$l}'>Mettre à jour</a>, <a onclick="return (confirm('Etes vous sur?'));" href='?action=delete&controller=utilisateur&login={$l}'>Supprimer</a>
\t\t</p>
EOT;
    }
}
function view1($g)
{
    $id = $g->id;
    $d = $g->descript;
    echo <<<EOT
\t<h2>{$id}</h2>
\t<p>{$d}</p>
EOT;
    if (!Session::is_user('admin')) {
        if ($id != 'CatDefend') {
            echo "<a href='?action=jouer&controller=game&id={$id}' target='blank'> Jouer</a></li>";
        } else {
            echo "<a href='../testJeu/index.html'target='blank'> Jouer</a></li>";
        }
    }
}
function view1($tu)
{
    foreach ($tu as $u) {
        $id = $u->id;
        $d = $u->descript;
        echo "<br><li>{$id} : {$d} <a href='?action=read&controller=game&id={$id}'>Voir</a>";
        if (!Session::is_user('admin')) {
            if ($id != 'CatDefend') {
                echo "<a href='?action=jouer&controller=game&id={$id}' target='blank'> Jouer</a></li>";
            } else {
                echo "<a href='../testJeu/index.html'target='blank'> Jouer</a></li>";
            }
        } else {
            echo "</li>";
        }
    }
}
<?php

if (Session::is_user()) {
    $a = AudiowallSets::get_by_id(pg_escape_string($_REQUEST['setid']));
    if ($a->user_can_delete() || Session::is_group_user('Audiowalls Admin')) {
        $user = Users::get_by_username(pg_escape_string($_REQUEST['username']));
        if (!is_null($user)) {
            $query = "permissions FROM aw_sets_permissions WHERE set_id = :set_id AND user_id = :user_id";
            $data = array('set_id' => $a->get_id(), 'user_id' => $user->get_id());
            $current = DigiplayDB::select($query, NULL, false, $data);
            if (!is_null($current)) {
                if ($_REQUEST['val'] == 'editor') {
                    if ($current[2] == '1') {
                        $new = '111';
                    } else {
                        $new = '110';
                    }
                } elseif ($_REQUEST['val'] == 'viewer') {
                    if ($current[2] == '1') {
                        $new = '111';
                    } else {
                        if ($current[1] == '1') {
                            $new = '110';
                        } else {
                            $new = '100';
                        }
                    }
                } elseif ($_REQUEST['val'] == 'admin') {
                    $new = '111';
                }
                $data = array('permissions' => $new);
Example #6
0
 public static function print_page($content)
 {
     $start_time = microtime(true);
     if (strlen(LINK_PATH) > 0) {
         $sitePathArray = explode("/", LINK_PATH);
         for ($i = 0; $i < count($sitePathArray); $i++) {
             $file = FILE_ROOT . implode("/", array_slice($sitePathArray, 0, $i + 1)) . "/sidebar.php";
             if (file_exists($file)) {
                 include $file;
                 MainTemplate::set_sidebar(sidebar());
                 MainTemplate::set_menu(menu());
             }
         }
         unset($sitePathArray, $i, $file);
     }
     $main_menu = new Menu();
     $main_menu->add_many(array("music", "Music Library", "music"), array("playlists", "Playlists", "th-list"), array("audiowalls", "Audiowalls", "th"), array("files", "Files", "folder-open"), array("showplans", "Show Planning", "tasks"));
     if (Session::is_admin()) {
         $main_menu->add("admin", "Admin", "cog");
     }
     $site_path_array = explode("/", LINK_PATH);
     $main_menu->set_active($site_path_array[0]);
     header("Content-Type: text/html; charset=utf-8");
     $return = "<!DOCTYPE html> \n<html> \n\t<head> \n\t\t<title>RaW Digiplay";
     if (Output::get_title() != 'Untitled Page') {
         $return .= " - " . Output::get_title();
     }
     $return .= "</title> \n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n\t\t<script type=\"text/javascript\" src=\"//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js\"></script>\n\t\t<script type=\"text/javascript\" src=\"" . LINK_ABS . "js/bootstrap.min.js\"></script>\n\t\t";
     if (isset($_REQUEST["theme"])) {
         $return .= "<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootswatch/3.0.0/" . $_REQUEST["theme"] . "/bootstrap.min.css\">\n";
     } else {
         $return .= "<link rel=\"stylesheet\" href=\"" . LINK_ABS . "css/bootstrap.min.css\">\n";
     }
     if (count(Output::get_stylesheets()) > 0) {
         foreach (Output::get_stylesheets() as $src) {
             $return .= "<link href=\"" . $src . "\" rel=\"stylesheet\" type=\"text/css\">\n";
         }
     }
     if (count(Output::get_scripts()) > 0) {
         foreach (Output::get_scripts() as $src) {
             $return .= "<script src=\"" . $src . "\" type=\"text/javascript\"></script>\n";
         }
     }
     if (count(Output::get_feeds()) > 0) {
         foreach (Output::get_feeds() as $feed) {
             $return .= "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $feed['title'] . "\" href=\"" . $feed['url'] . "\">\n";
         }
     }
     if (self::$barebones == false) {
         $return .= "\n\t\t\t<link rel=\"stylesheet\" href=\"" . LINK_ABS . "css/style.css\">\n\t\t\t<script src=\"" . LINK_ABS . "js/main.js\" type=\"text/javascript\"></script>\n\t\t\t";
     }
     $return .= "\t</head>\n\t<body" . (self::$body_class ? " class=\"" . self::$body_class . "\"" : "") . ">";
     if (self::$barebones == false) {
         $return .= "\n\t\t<div id=\"wrap\">\n\t\t\t<nav class=\"navbar navbar-inverse navbar-fixed-top\" role=\"navigation\">\n\t\t\t\t<div class=\"container\">\n\t\t\t\t<div class=\"navbar-header\">\n\t\t\t\t\t<button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-dps-collapse\">\n      \t\t\t\t\t\t<span class=\"sr-only\">Toggle navigation</span>\n      \t\t\t\t\t\t<span class=\"icon-bar\"></span>\n      \t\t\t\t\t\t<span class=\"icon-bar\"></span>\n      \t\t\t\t\t\t<span class=\"icon-bar\"></span>\n    \t\t\t\t\t</button>\n\t    \t\t\t\t<a class=\"navbar-brand hidden-sm\" href=\"" . LINK_ABS . "\">Digiplay</a>\n\t\t\t\t\t<div class=\"navbar-spinner hidden\">\n\t\t\t\t\t\t<svg class=\"spinner\" width=\"25px\" height=\"25px\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t<circle class=\"path\" fill=\"none\" stroke-width=\"8\" stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"29\"></circle>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"navbar-collapse collapse navbar-dps-collapse\">" . $main_menu->output(LINK_ABS, 6, "nav navbar-nav");
         if (Session::is_user()) {
             $return .= "\n\t\t\t\t\t<ul class=\"nav search-pull-right hidden-sm\">\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<form class=\"navbar-form\" action=\"" . LINK_ABS . "music/search\" method=\"GET\" role=\"search\">\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t            \t\t\t\t\t<input type=\"text\" class=\"form-control search-query\" placeholder=\"Search Tracks\" name=\"q\" autocomplete=\"off\">\n\t            \t\t\t\t</div>\n\t            \t\t\t</form>\n\t            \t\t</li>\n\t            \t\t<li>\n\t\t          \t\t\t<ul id=\"quick-search\" class=\"dropdown-menu pull-right\"></ul>\n\t\t          \t\t</li>\n\t\t          \t</ul>\n\t\t          \t";
         }
         $return .= "\n\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</nav>\n\t\t\t" . (isset(self::$feature_html) ? "<div class=\"jumbotron" . (isset(self::$feature_image) ? " feature-image\" style=\"background-image: url('" . self::$feature_image . "')\"" : "\"") . "><div class=\"container\">" . self::$feature_html . "</div></div>" : "") . "<div class=\"container\">";
         if (Output::get_title() != 'Untitled Page') {
             $return .= "\n\t\t\t\t<div class=\"page-header\">\n\t\t\t\t\t<h2>" . Output::get_title();
             if (isset(self::$subtitle)) {
                 $return .= " <small>" . self::$subtitle . "</small>";
             }
             $return .= "</h2>\n\t\t\t\t</div>";
         }
         $return .= "\n\t\t\t\t<div class=\"row\">";
         if (isset(self::$sidebar) || isset(self::$menu)) {
             $return .= "\n\t\t\t\t<div class=\"col-md-3\">";
             if (isset(self::$menu)) {
                 $return .= self::$menu;
             }
             if (isset(self::$sidebar)) {
                 $return .= "\t\n\t\t\t\t\t<div class=\"panel panel-noborder visible-md visible-lg\">\n\t\t\t\t\t\t<div class=\"panel-body\">" . self::$sidebar . "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>";
             }
             $return .= "\n\t\t\t\t</div>\n\t\t\t\t<div class=\"col-md-9\">";
         } else {
             $return .= "\n\t\t\t\t<div class=\"col-md-12\">";
         }
     }
     $return .= $content;
     if (self::$barebones == false) {
         $return .= "\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>";
         if (Session::is_user()) {
             $return .= Bootstrap::modal("logout-modal", "You'll lose any unsaved changes on this page.", "Log out?", "<a class=\"btn btn-primary\" href=\"" . LINK_ABS . "ajax/logout.php\">Yes, log out</a>");
         }
         $return .= "\n\t\t<div id=\"push\"></div>\n\t</div>\n\t\t<footer class=\"jumbotron\">\n\t\t\t<div class=\"container\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-sm-8\">\n\t\t\t\t\t\t<p class=\"text-muted credit\">";
         if (Session::is_user()) {
             $return .= "Logged in as " . Session::get_username() . ". <a href=\"#logout-modal\" data-toggle=\"modal\">Logout</a>. ";
         } else {
             $return .= "Not logged in. ";
         }
         $return .= "Copyright &copy; 2011-" . date("y") . " Radio Warwick\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t<a href=\"" . LINK_ABS . "\"><img src=\"" . LINK_ABS . "img/footer_logo.png\" alt=\"RaW 1251AM\" class=\"pull-right\"/></a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</footer>";
     }
     $return .= "\n\t<!-- Page generated in " . (microtime(true) - START_TIME) . " seconds. " . DigiplayDB::get_querycount() . " database queries ran in " . DigiplayDB::get_querytime() . " seconds. -->\n\t</body> \n</html>";
     return $return;
 }
Example #7
0
    die("Fatal error: Could not open " . FILE_ROOT . "digiplay.conf or /etc/digiplay.conf.  Cannot continue.");
}
define("DATABASE_DPS_HOST", $local_config["DB_HOST"]);
define("DATABASE_DPS_PORT", $local_config["DB_PORT"]);
define("DATABASE_DPS_NAME", $local_config["DB_NAME"]);
define("DATABASE_DPS_USER", $local_config["DB_USER"]);
@define("DATABASE_DPS_PASS", $local_config["DB_PASS"]);
session_start();
Errors::start();
if (!function_exists('http_response_code')) {
    function http_response_code($code = NULL)
    {
        header(':', true, $code);
    }
}
if (!Session::is_user() && (substr(LINK_FILE, 0, 4) == "ajax" && LINK_FILE != "ajax/login.php")) {
    http_response_code(403);
    exit(json_encode(array("error" => "Your session has timed out, or you have logged out in another tab. Please log in again.")));
}
if (substr(LINK_FILE, 0, 6) == "studio") {
    MainTemplate::set_barebones(true);
    if (isset($_REQUEST["key"])) {
        if (is_null(Locations::get_by_key($_REQUEST["key"]))) {
            exit("Sorry, you provided an invalid security key.");
        }
    } else {
        Output::require_user();
    }
}
if (LINK_FILE != "index.php" && LINK_FILE != "ajax/login.php" && substr(LINK_FILE, 0, 6) != "studio" && substr(LINK_FILE, 0, 5) != "audio") {
    Output::require_user();
function view1($tu)
{
    foreach ($tu as $u) {
        $l = $u->login;
        $n = $u->nom;
        $p = $u->prenom;
        $e = $u->email;
        // La syntaxe suivante permet de créer facilement des chaînes de caractères multi-lignes
        echo <<<EOT
\t\t<li> Sous le login {$l} se trouve l'utilisateur {$p} {$n} dont l'email est {$e}.
\t\t\t<a href='?action=read&controller=utilisateur&login={$l}'> Détails </a>
\t\t</li>
EOT;
    }
}
?>
		<!-- Une variable $tab_util est donnée -->	
		<div>
			<h2>Liste des utilisateurs:</h2>
			<ol>
			<?php 
view1($users);
?>
			</ol>
			<?php 
if (Session::is_user("admin")) {
    echo "<p><a href='?action=create&controller=utilisateur'>Créer un nouvel utilisateur</a></p>";
}
?>
		</div>
     $mdp = "";
     $view = 'connect';
     break;
 case "connected":
     $data = array('login' => $_GET['log'], 'mdp' => hash('sha256', Conf::getSeed() . $_GET['mdp']));
     if (count(ModelUtilisateur::selectWhere($data)) == 1) {
         $_SESSION['log'] = $_GET['log'];
         $_SESSION['mdp'] = hash('sha256', Conf::getSeed() . $_GET['mdp']);
     } else {
         $view = 'error';
         $pagetitle = 'Erreur avec l\'utilisateur';
         $raison = "login ou mot de passe invalide";
         break;
     }
     // Initialisation des variables pour la vue
     if (Session::is_user('admin')) {
         $controller = 'utilisateur';
         $pagetitle = 'Liste des utilisateurs';
         $view = 'list';
     } else {
         $controller = 'game';
         $pagetitle = 'Liste des jeux';
         $view = 'all';
     }
     break;
 case "deconnect":
     session_destroy();
     unset($_SESSION);
     $view = 'all';
     $controller = 'game';
     $pagetitle = 'Liste des jeux';
Example #10
0
 public static function require_user()
 {
     if (!Session::is_user()) {
         header("Location: " . LINK_ABS . "index.php?refer=" . ltrim(LINK_FILE, '/') . (count($_GET) > 0 ? urlencode("&" . http_build_query($_GET)) : ""));
         exit;
     }
 }
         $view = "listerUtilisateur";
         //Après avoir banni quelqu'un on remontre la liste des utilisateurs
     } else {
         $view = "erreur";
         $message = "La modification n'a pas était prise en compte";
         $pagetitle = "Erreur";
     }
     break;
 case "mettreAjourUtilisateur":
     if (is_null(myGet('user'))) {
         $view = "erreur";
         $message = "La modification n'a pas était prise en compte";
         $pagetitle = "Erreur";
         break;
     }
     if (Session::is_admin() || Session::is_user(myGet('user'))) {
         $admin = !is_null(myGet('admin'));
         $data = array("username" => myGet("user"));
         $tab_u = ModelUtilisateur::selectWhere($data);
         $data = array("userId" => $tab_u[0]->userId, "username" => myGet("user"), "admin" => $admin, "sexUser" => myGet("sex"), "nameUser" => myGet("name"), "nicknameUser" => myGet("nickname"), "emailUser" => myGet("email"), "telUser" => myGet("tel"), "mobileUser" => myGet("mobile"), "addressUser" => myGet("address"), "cpUser" => myGet("cp"), "cityUser" => myGet("city"), "dateNaissance" => myGet("dateNaissance"));
         ModelUtilisateur::update($data);
         $user = myGet("user");
         if (!is_null(myGet("profile"))) {
             //Si on a éditer à partir de notre fiche on retourne à notre fiche
             $data = array("username" => $_SESSION['login']);
             $tab_u = ModelUtilisateur::selectWhere($data);
             $view = "monProfil";
             $pagetitle = "Mon profil";
         } else {
             //Sinon on affiche la nouvelle liste des utilisateurs
             $pagetitle = "Liste des utilisateurs";
Example #12
0
<?php

Output::set_title("Studio Management");
Output::add_script(LINK_ABS . "js/moment.min.js");
Output::add_stylesheet(LINK_ABS . "css/studio.css");
Output::add_stylesheet(LINK_ABS . "css/ui.fancytree.css");
Output::add_script(LINK_ABS . "js/jquery-ui-1.10.3.custom.min.js");
Output::add_script(LINK_ABS . "js/jquery.fancytree.js");
Output::add_script(LINK_ABS . "js/jquery.fancytree.glyphicon.js");
MainTemplate::set_body_class('manage');
if (isset($_REQUEST["key"])) {
    $location = Locations::get_by_key($_REQUEST["key"]);
    $key = $_REQUEST["key"];
} else {
    if (isset($_REQUEST["location"])) {
        $location = Locations::get_by_id($_REQUEST["location"]);
        $key = $location->get_key();
    } else {
        exit("No location specified!");
    }
}
echo "\r\n\t\t<script>\r\n\t\t\tvar key = 'key=" . $key . "&';\r\n\t\t\tvar timers = [];\r\n\t\t\tvar connect_timeout;\r\n\t\t\tvar websocket;\r\n\t\t\tvar connection = false;\r\n\r\n\t\t\tfunction startWebsocket() {\r\n\t\t\t\tconsole.log('Starting websocket...');\r\n\t\t\t\twebsocket = new WebSocket('" . Configs::get_system_param("websocket_uri") . "');\r\n\t\t\t\twebsocket.onopen = function(e) { onOpen(e) };\r\n\t\t\t\twebsocket.onclose = function(e) { onClose(e) };\r\n\t\t\t\twebsocket.onmessage = function(e) { onMessage(e) };\r\n\t\t\t\twebsocket.onerror = function(e) { onError(e) };\r\n\t\t\t}\r\n\r\n\t\t\tfunction onOpen(e) {\r\n\t\t\t\tconnection = true;\r\n\t\t\t\tconsole.log('Websocket connection established.');\r\n\t\t\t\twebsocket.send(JSON.stringify({'ident':'" . $key . "'}));\r\n\t\t\t\tclearTimeout(connect_timeout);\r\n\t\t\t\t\$.each(timers, function(i, v) { clearInterval(v); });\r\n\t\t\t\ttimers = [];\r\n\t\t\t}\r\n\r\n\t\t\tfunction onClose(e) {\r\n\t\t\t\tconnection = false;\r\n\t\t\t\tconsole.log('Websocket connection lost.');\r\n\t\t\t\tconnect_timeout = setTimeout('setIntervals()', 5000);\r\n\t\t\t\tsetTimeout('startWebsocket()',5000);\r\n\t\t\t}\r\n\r\n\t\t\tfunction onMessage(e) {\r\n\t\t\t\tdata = JSON.parse(e.data);\r\n\t\t\t\tconsole.debug(data);\r\n\t\t\t\tswitch(data.channel) {\r\n\t\t\t\t\tcase 't_log':\r\n\t\t\t\t\t\treloadLog();\r\n\t\t\t\t\t\treloadPlaylists();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 't_messages':\r\n\t\t\t\t\t\treloadMessages();\r\n\t\t\t\t\t\tnewMessage();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 't_playlists':\r\n\t\t\t\t\t\treloadPlaylists();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 't_configuration':\r\n\t\t\t\t\t\tswitch(data.payload.parameter) {\r\n\t\t\t\t\t\t\tcase 'current_showitems_id':\r\n\t\t\t\t\t\t\t\t\$('#showplan .panel').removeClass('panel-primary').addClass('panel-default');\r\n\t\t\t\t\t\t\t\t\$('[data-item-id='+data.payload.val+']').removeClass('panel-default panel-info').addClass('panel-primary');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'next_on_showplan':\r\n\t\t\t\t\t\t\t\tif(data.payload.val == '') {\r\n\t\t\t\t\t\t\t\t\tif(\$('#showplan .panel-primary').is(':last-child')) \$(this).removeClass('panel-primary').addClass('panel-default');\r\n\t\t\t\t\t\t\t\t\t\$('#showplan .panel-primary').removeClass('panel-primary').addClass('panel-default').next('.showplan-audio').dblclick();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 't_audiowall':\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 't_showitems':\r\n\t\t\t\t\t\treloadShowplan();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction onError(e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\r\n\t\t\tfunction setIntervals() {\r\n\t\t\t\tif(timers.length == 0) {\r\n\t\t\t\t\tconsole.log('Setting manual refresh intervals.');\r\n\t\t\t\t\ttimers.push(setInterval('reloadShowplan()', 5000));\r\n\t\t\t\t\ttimers.push(setInterval('reloadInfo()', 60000));\r\n\t\t\t\t\ttimers.push(setInterval('reloadMessages()', 30000));\r\n\t\t\t\t\ttimers.push(setInterval('reloadPlaylists()', 60000));\r\n\t\t\t\t\ttimers.push(setInterval('reloadLog()', 30000));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t\$(function() {\r\n\t\t\t\t\$('#yes-login').button();\r\n\t\t\t\tconnect_timeout = setTimeout('setIntervals()', 5000);\r\n\t\t\t\tstartWebsocket();\r\n\t\t\t\twindow.oncontextmenu = function(event) {\r\n  \t\t\t\t\tevent.preventDefault();\r\n    \t\t\t\tevent.stopPropagation();\r\n    \t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t\$(document).keydown(function(e) {\r\n\t\t\t\t\tif((111 < e.which) && (e.which < 123)) e.preventDefault();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t</script>\r\n\t\t<div class=\"wrap\">\r\n\t\t\t<nav class=\"navbar navbar-default navbar-fixed-top\" id=\"header\">\r\n\t\t\t\t<script> \$(function() { setInterval(function() { \$('#now-next').load('functions.php?'+key+'action=now-next') }, 60000); \$('#now-next').load('functions.php?'+key+'action=now-next'); }); </script>\r\n\t\t\t\t<div id=\"now-next\">\r\n\t\t\t\t\t<div class=\"col-sm-6 navbar-brand\">On now: <span id=\"on-now\"></span></div>\r\n\t\t\t\t\t<div class=\"col-sm-6 navbar-brand\">On next: <span id=\"on-next\"></span></div>\r\n\t\t\t\t</div>\r\n\t\t\t</nav>\r\n\t\t\t<div class=\"container\">\r\n\t\t\t\t<div class=\"row\" id=\"main-panel\">\r\n\t\t\t\t\t<div class=\"col-md-7\" id=\"left-panel\">\r\n\t\t\t\t\t\t<ul class=\"nav nav-tabs nav-justified\" id=\"tabs\">\r\n\t\t\t\t\t\t\t<li class=\"active\"><a href=\"#info\" data-toggle=\"tab\">" . Bootstrap::glyphicon("info-sign") . " Info</a></li>\r\n\t\t\t\t\t\t\t<li><a href=\"#search\" data-toggle=\"tab\">" . Bootstrap::glyphicon("music") . " Music</a></li>\r\n\t\t\t\t\t\t\t<li><a href=\"#messages\" data-toggle=\"tab\">" . Bootstrap::glyphicon("envelope") . " Messages</a></li>\r\n\t\t\t\t\t\t\t<li " . (Session::is_user() ? "" : "class=\"disabled\"") . "><a href=\"#playlists\" " . (Session::is_user() ? "data-toggle=\"tab\"" : "") . ">" . Bootstrap::glyphicon("th-list") . " Playlists</a></li>\r\n\t\t\t\t\t\t\t<li " . (Session::is_user() ? "" : "class=\"disabled\"") . "><a href=\"#files\" " . (Session::is_user() ? "data-toggle=\"tab\"" : "") . ">" . Bootstrap::glyphicon("folder-open") . " Files</a></li>\r\n\t\t\t\t\t\t\t<li><a href=\"#logging\" data-toggle=\"tab\">" . Bootstrap::glyphicon("pencil") . " Logging</a></li>";
if ($location->get_id() == 1 || $location->get_id() == 2) {
    echo "<li id=\"reset\" class=\"btn btn-danger" . (Session::is_user() ? "" : "disabled") . "\">" . Bootstrap::glyphicon("refresh") . " Reset</li>";
}
echo "</ul>\r\n\t\t\t\t\t\t<div class=\"tab-content\" id=\"left-panel-content\">\r\n\t\t\t\t\t\t\t<div class=\"tab-pane active\" id=\"info\">\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\tfunction reloadInfo() {\r\n\t\t\t\t\t\t\t\t\t\t\$('#info-content').load('functions.php?'+key+'action=info-content');\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\t\$('#reset').click(function(){\r\n\t\t\t\t\t\t\t\t\t\t\$('#reset-modal').modal(\"show\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<div id=\"info-content\">\r\n\t\t\t\t\t\t\t\t\t" . Configs::get_system_param("info-content") . "\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"tab-pane\" id=\"search\">\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\t\t\t\t\t\$('#search-form').submit(function(e) { \r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault(); \r\n\t\t\t\t\t\t\t\t\t\t\t\$('[name=submit-search]').addClass('disabled');\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#search-results').html('<h1 class=\"loading\">" . Bootstrap::glyphicon("refresh rotate") . " Searching...</h1>')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.load('functions.php?'+key+'action=search&'+\$('#search-form').serialize(), function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\$('[name=submit-search]').removeClass('disabled');\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) \r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<form class=\"form-horizontal\" id=\"search-form\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-xs-10\" id=\"search-text\" >\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"search-text\" placeholder=\"Search...\">\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-xs-2\" id=\"search-button\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary btn-block\" name=\"submit-search\">Search</button>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-xs-12\" id=\"search-options\">\r\n\t\t\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" id=\"search-title\" name=\"search-title\" checked>Titles</input>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" id=\"search-artist\" name=\"search-artist\" checked>Artists</input>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" id=\"search-album\" name=\"search-album\" checked>Albums</input>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t<div id=\"search-results\">\r\n\t\t\t\t\t\t\t\t\t<h3>Enter something to search for in the box above.</h3>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"tab-pane\" id=\"messages\">\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\tfunction reloadMessages() {\r\n\t\t\t\t\t\t\t\t\t\tvar active_message;\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax('functions.php?'+key+'action=messages').done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#message-list tr').each(function() { \r\n\t\t\t\t\t\t\t\t\t\t\t\tif(\$(this).hasClass('selected')) active_message = \$(this).attr('data-message-id');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('#message-list').html(data);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('[data-message-id='+active_message+']').addClass('selected');\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tfunction newMessage() {\r\n\t\t\t\t\t\t\t\t\t\tconsole.debug('lol message');\r\n\t\t\t\t\t\t\t\t\t\t\$('[href=#messages]').addClass('btn-primary new-message');\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\t\t\t\t\t\$('#message-list').load('functions.php?'+key+'action=messages');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\$(document).on('click', '#message-list tbody tr', function() { \r\n\t\t\t\t\t\t\t\t\t\t\t\$('#message-content h4').html(\$(this).find('.subject').html());\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#message-content iframe').attr('src', 'functions.php?'+key+'action=message&id='+\$(this).attr('data-message-id')); \r\n\t\t\t\t\t\t\t\t\t\t\t\$(this).find('span').removeClass('glyphicon-envelope');\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\$(document).on('click', '[href=#messages]', function() { \$(this).removeClass('btn-primary new-message'); });\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<div id=\"message-list\">\r\n\t\t\t\t\t\t\t\t\t<h1 class=\"loading\">" . Bootstrap::glyphicon("refresh rotate") . "</h1>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div id=\"message-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"panel panel-default\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"panel-heading\"><h4>&nbsp;</h4></div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"panel-body\"><iframe></iframe></div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"tab-pane\" id=\"playlists\">\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\tfunction reloadPlaylists() {\r\n\t\t\t\t\t\t\t\t\t\tvar active_playlists = [];\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax('functions.php?'+key+'action=playlists').done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#playlists-list .panel-collapse').each(function() { \r\n\t\t\t\t\t\t\t\t\t\t\t\tif(\$(this).hasClass('in')) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive_playlists.push(\$(this).attr('id'));\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#playlists-list').html(data);\r\n\t\t\t\t\t\t\t\t\t\t\t\$.each(active_playlists, function(key, value) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('#'+value).addClass('in');\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\t\t\t\t\t\$('#playlists-list').load('functions.php?'+key+'action=playlists', function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#playlists-list .panel-collapse:first').addClass('in');\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<div class=\"panel-group\" id=\"playlists-list\">\r\n\t\t\t\t\t\t\t\t\t<h1 class=\"loading\">" . Bootstrap::glyphicon("refresh rotate") . "</h1>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"tab-pane\" id=\"files\">\r\n\t\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\t\tfunction createFileBrowser() {\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#files').append('<div id=\"file-browser\"></div>');\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#file-browser').fancytree({ \r\n\t\t\t\t\t\t\t\t\t\t\t\tsource: { url: '" . LINK_ABS . "ajax/file-tree.php?id=1', cache: false },\r\n\t\t\t\t\t\t\t\t\t\t\t\textensions: ['glyphicon'],\r\n\t\t\t\t\t\t\t\t\t\t\t\tlazyload: function(event, data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar node = data.node;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata.result = {\turl: '" . LINK_ABS . "ajax/file-tree.php?id='+node.data.id }\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#file-browser').bind('fancytreedblclick', function(event, data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(data.node.data.type == 'jingle' || data.node.data.type == 'advert' || data.node.data.type == 'music') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taddToShowplan(data.node.data.id);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(data.node.data.type == 'script') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taddScriptToShowplan(data.node.data.id);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(data.node.data.type == 'aw_set') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadAudiowall(data.node.data.id);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tfunction destroyFileBrowser() {\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#file-browser').remove();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t" . (Session::is_user() ? "\$(function() { createFileBrowser(); }); " : "") . "\r\n\t\t\t\t\t\t\t\t\t</script>\r\n\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"tab-pane\" id=\"logging\">\r\n\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\tfunction reloadLog() {\r\n\t\t\t\t\t\t\t\t\t\t\$('#log').load('functions.php?'+key+'action=log');\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\t\t\t\t\t\$('#logging-form').submit(function(e) { \r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\$('[name=submit-log]').addClass('disabled');\r\n\t\t\t\t\t\t\t\t\t\t\t\$('#log').load('functions.php?'+key+'action=log&'+\$(this).serialize(), function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('[name=artist]').val('').focus();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('[name=title]').val('');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('[name=submit-log]').removeClass('disabled');\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\$('#log').load('functions.php?'+key+'action=log');\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t</script>\r\n\t\t\t\t\t\t\t\t<form class=\"form-inline\" id=\"logging-form\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"artist\" placeholder=\"Artist\">\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"title\" placeholder=\"Title\">\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\" name=\"submit-log\">Log</button>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t\t<div id=\"log\">\r\n\t\t\t\t\t\t\t\t\t<h1 class=\"loading\">" . Bootstrap::glyphicon("refresh rotate") . "</h1>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"col-md-5 hidden-sm hidden-xs\" id=\"right-panel\">\r\n\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\tfunction reloadShowplan() {\r\n\t\t\t\t\t\t\t\tvar expanded_items = [];\r\n\t\t\t\t\t\t\t\tvar previous_items = [];\r\n\t\t\t\t\t\t\t\tvar selected_item;\r\n\t\t\t\t\t\t\t\tvar current_audio;\r\n\t\t\t\t\t\t\t\t\$.ajax('functions.php?'+key+'action=showplan').done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\$('#showplan .panel').each(function() { \r\n\t\t\t\t\t\t\t\t\t\tprevious_items.push(\$(this).attr('data-item-id'));\r\n\t\t\t\t\t\t\t\t\t\tif(\$(this).find('.panel-collapse').hasClass('in')) {\r\n\t\t\t\t\t\t\t\t\t\t\texpanded_items.push(\$(this).find('.panel-collapse').attr('id'));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif(\$(this).hasClass('panel-info')) {\r\n\t\t\t\t\t\t\t\t\t\t\tselected_item = \$(this).attr('data-item-id');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif(\$(this).hasClass('panel-primary')) {\r\n\t\t\t\t\t\t\t\t\t\t\tcurrent_audio = \$(this).attr('data-item-id');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\$('#showplan').html(data);\r\n\t\t\t\t\t\t\t\t\t\$.each(expanded_items, function(key, value) {\r\n\t\t\t\t\t\t\t\t\t\t\$('#'+value).addClass('in');\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif(!\$('#showplan .panel-primary').length) {\r\n\t\t\t\t\t\t\t\t\t\t\$.each(\$('#showplan .panel'), function(key, value) {\r\n\t\t\t\t\t\t\t\t\t\t\tif(\$.inArray(\$(this).attr('data-item-id'), previous_items) == -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$(this).dblclick();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(!\$('[data-item-id='+current_audio+']').hasClass('panel-primary')) {\r\n\t\t\t\t\t\t\t\t\t\t\$('[data-item-id='+current_audio+']').next('.showplan-audio').dblclick();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(typeof selected_item != 'undefined') {\r\n\t\t\t\t\t\t\t\t\t\t\$('[data-item-id='+selected_item+']').addClass('panel-info');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction addToShowplan(id) {\r\n\t\t\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=showplan-append&id='+id,\r\n\t\t\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\t\tif(!connection) reloadShowplan();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction addScriptToShowplan(id) {\r\n\t\t\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=showplan-append-script&id='+id,\r\n\t\t\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\t\tif(!connection) reloadShowplan();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction loadAudiowall(id) {\r\n\t\t\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=set-user-audiowall&id='+id,\r\n\t\t\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\t\t\t\$('#showplan').load('functions.php?'+key+'action=showplan');\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('dblclick', '#showplan .showplan-audio', function() {\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.controls').hide();\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.duration').show();\r\n\t\t\t\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=set-current&id='+\$(this).attr('data-item-id'),\r\n\t\t\t\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\tif(data.response == 'success') {\r\n\t\t\t\t\t\t\t\t\t\t\tif(!connection) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('#showplan .panel').removeClass('panel-primary').addClass('panel-default');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$('[data-item-id='+data.id+']').removeClass('panel-default panel-info').addClass('panel-primary');\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('click', 'tbody tr', function() { \r\n\t\t\t\t\t\t\t\t\t\$(this).parentsUntil('.tab-pane').find('tr').removeClass('selected');\r\n\t\t\t\t\t\t\t\t\t\$(this).addClass('selected');\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('click', '#showplan .panel', function() { \r\n\t\t\t\t\t\t\t\t\t\$(this).parent().find('.panel:not(.panel-primary)').removeClass('panel-info').addClass('panel-default');\r\n\t\t\t\t\t\t\t\t\tif(!\$(this).hasClass('panel-primary')) {\r\n\t\t\t\t\t\t\t\t\t\t\$(this).addClass('panel-info');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('dblclick', '.track', function() {\r\n\t\t\t\t\t\t\t\t\taddToShowplan(\$(this).attr('data-track-id'));\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('mouseenter', '#showplan .panel:not(.panel-primary)', function() {\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.duration').hide();\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.controls').show();\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('mouseleave', '#showplan .panel:not(.panel-primary)', function() {\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.controls').hide();\r\n\t\t\t\t\t\t\t\t\t\$(this).find('.duration').show();\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\$(document).on('click', '.controls .glyphicon-remove', function() {\r\n\t\t\t\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=showplan-remove&id='+\$(this).parents('.panel').attr('data-item-id'),\r\n\t\t\t\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\t\t\treloadShowplan();\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t</script>\r\n\r\n\t\t\t\t\t\t<h2 id=\"showplan-title\"><span>Showplan</span><div class=\"pull-right clear-showplan\" data-toggle=\"modal\" data-target=\"#clear-showplan-modal\">" . Bootstrap::glyphicon("trash") . "</div></h2>\r\n\t\t\t\t\t\t<div class=\"list-group\" id=\"showplan\">\r\n\t\t\t\t\t\t\t<h1 class=\"loading\">" . Bootstrap::glyphicon("refresh rotate") . "</h1>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<nav class=\"navbar navbar-default navbar-fixed-bottom\" id=\"footer\">\r\n\t\t\t\t<script>\r\n\t\t\t\t\t\$(function() { \r\n\t\t\t\t\t\tsetInterval(function () { \r\n\t\t\t\t\t\t\t\$('#clock .time').html(moment().format('h:mm:ss a'));\r\n\t\t\t\t\t\t\t\$('#clock .date').html(moment().format('dddd Do MMMM YYYY'));\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}); \r\n\t\t\t\t</script>\r\n\t\t\t\t<img src=\"" . LINK_ABS . "img/footer_logo.png\" alt=\"RaW 1251AM\" id=\"logo\" class=\"hidden-xs hidden-sm\" />\r\n\t\t\t\t<div class=\"col-sm-3 navbar-brand\">\r\n\t\t\t\t\t<div id=\"clock\">\r\n\t\t\t\t\t\t<span class=\"time\">00:00:00</span><br />\r\n\t\t\t\t\t\t<span class=\"date\">1st January 1970</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"col-sm-3 pull-right\">\r\n\t\t\t\t<a href=\"#\" data-toggle=\"modal\" data-target=\"#logout-modal\" class=\"btn btn-primary btn-lg btn-block\" " . (Session::is_user() ? "" : "style=\"display:none\"") . ">Log Out</a>\r\n\t\t\t\t<a href=\"#\" data-toggle=\"modal\" data-target=\"#login-modal\" class=\"btn btn-primary btn-lg btn-block\" " . (Session::is_user() ? "style=\"display:none\"" : "") . ">Log In</a>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"col-sm-3 pull-right\" id=\"contact\">\r\n\t\t\t\t\t" . Bootstrap::glyphicon("phone") . " " . Configs::get_system_param("contact_sms") . "<br />\r\n\t\t\t\t\t" . Bootstrap::glyphicon("earphone") . " " . Configs::get_system_param("contact_phone") . "<br />\r\n\t\t\t\t\t" . Bootstrap::glyphicon("envelope") . " " . Configs::get_system_param("contact_email") . "\r\n\t\t\t\t</div>\r\n\t\t\t</nav>\r\n\t\t\t<script>\r\n\t\t\t\t\$(function() {\r\n\t\t\t\t\t\$('#yes-login').click(function(e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(this).button('loading');\r\n\t\t\t\t\t\t\$('#username').parent().removeClass('has-error');\r\n\t\t\t\t\t\t\$('#password').parent().removeClass('has-error');\r\n\t\t\t\t\t\t\$('#login-modal').find('small').remove();\r\n\t\t\t\t\t\t\$('#login-modal').find('h1').find('span').removeClass('glyphicon-play-circle').addClass('glyphicon-refresh rotate');\r\n\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=login',\r\n\t\t\t\t\t\t\tdata: 'username='******'#username').val()+'&password='******'#password').val(),\r\n\t\t\t\t\t\t\ttype: 'POST',\r\n\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\t\$('#login-modal').find('h1').find('span').removeClass('glyphicon-refresh rotate').addClass('glyphicon-play-circle');\r\n\t\t\t\t\t\t\tif(data.response == 'success') {\r\n\t\t\t\t\t\t\t\t\$('li.disabled').removeClass('disabled').find('a').attr('data-toggle','tab');\r\n\t\t\t\t\t\t\t\tcreateFileBrowser();\r\n\t\t\t\t\t\t\t\t\$('[data-target=#logout-modal]').show();\r\n\t\t\t\t\t\t\t\t\$('[data-target=#login-modal]').hide();\r\n\t\t\t\t\t\t\t\t\$('#login-modal').modal('hide');\r\n\t\t\t\t\t\t\t\t\$('#yes-login').button('reset');\r\n\t\t\t\t\t\t\t\t\$('#login-modal input').val('');\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\$('#login-modal').find('h1').append(' <small>invalid username or password</small>');\r\n\t\t\t\t\t\t\t\t\$('#username').parent().addClass('has-error');\r\n\t\t\t\t\t\t\t\t\$('#password').parent().addClass('has-error');\r\n\t\t\t\t\t\t\t\t\$('#yes-login').button('reset');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$('#login-modal').on('shown.bs.modal', function() {\r\n\t\t\t\t\t\t\$('#username').focus();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$('#login-modal input').keypress(function(e) {\r\n\t\t\t\t\t\te.preventDefault;\r\n\t\t\t\t\t\tif(e.which == 13) \$('#yes-login').click();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$('#yes-logout').click(function(e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$.ajax('functions.php?'+key+'action=logout').done(function() {\r\n\t\t\t\t\t\t\tif(typeof key == 'undefined') {\r\n\t\t\t\t\t\t\t\twindow.location('" . LINK_ABS . "?refer=studio/manage/');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\$('[href=#info]').tab('show');\r\n\t\t\t\t\t\t\t\$('[href=#playlists]').removeAttr('data-toggle').parent().addClass('disabled');\r\n\t\t\t\t\t\t\t\$('[href=#files]').removeAttr('data-toggle').parent().addClass('disabled');\r\n\t\t\t\t\t\t\t\$('#reset').addClass('disabled');\r\n\t\t\t\t\t\t\tdestroyFileBrowser();\r\n\t\t\t\t\t\t\t\$('[data-target=#logout-modal]').hide();\r\n\t\t\t\t\t\t\t\$('[data-target=#login-modal]').show();\r\n\t\t\t\t\t\t\t\$('#logout-modal').modal('hide');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$(document).on('click', '#yes-clear-showplan', function() {\r\n\t\t\t\t\t\t\$.ajax({\r\n\t\t\t\t\t\t\turl: 'functions.php?'+key+'action=showplan-clear',\r\n\t\t\t\t\t\t\tdataType: 'json'\r\n\t\t\t\t\t\t}).done(function(data) {\r\n\t\t\t\t\t\t\treloadShowplan();\r\n\t\t\t\t\t\t\t\$('#clear-showplan-modal').modal('hide');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t</script>\r\n\t\t\t" . Bootstrap::modal("clear-showplan-modal", "<h1>" . Bootstrap::glyphicon("trash") . "Clear showplan?</h1>", NULL, "\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-primary btn-lg\" id=\"yes-clear-showplan\">Yes</a>\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-default btn-lg\" id=\"no-clear-showplan\" data-dismiss=\"modal\">No</a>") . "\r\n\t\t\t" . Bootstrap::modal("logout-modal", "<h1>" . Bootstrap::glyphicon("remove-circle") . " Log out?</h1>", NULL, "\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-primary btn-lg\" id=\"yes-logout\">Yes</a>\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-default btn-lg\" id=\"no-logout\" data-dismiss=\"modal\">No</a>") . "\r\n\t\t\t" . Bootstrap::modal("reset-modal", "\r\n\t\t\t\tThis will turn the touchscreen off and on again, stopping any currently playing audio! Only use as a last resort whilst talking!", "<span id=\"reset-icon\">" . Bootstrap::glyphicon("refresh") . "</span> Reset Playout " . $location->get_id() . "?", "\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-primary btn-lg\" id=\"yes-reset\">Yes</a>\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-default btn-lg\" id=\"no-reset\" data-dismiss=\"modal\">No</a>") . "\r\n\t\t\t" . Bootstrap::modal("login-modal", "<h1>" . Bootstrap::glyphicon("play-circle") . " Log In</h1>", NULL, "\r\n\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t<div class=\"input-group\">\r\n\t\t\t\t\t\t<span class=\"input-group-addon\">" . Bootstrap::glyphicon("user") . "</span>\r\n\t\t\t\t\t\t<input type=\"text\" class=\"form-control input-lg\" placeholder=\"Username\" id=\"username\" autocomplete=\"off\">\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t<div class=\"input-group\">\r\n\t\t\t\t\t\t<span class=\"input-group-addon\">" . Bootstrap::glyphicon("lock") . "</span>\r\n\t\t\t\t\t\t<input type=\"password\" class=\"form-control input-lg\" placeholder=\"Password\" id=\"password\" autocomplete=\"off\">\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-primary btn-lg\" id=\"yes-login\" data-role=\"button\" data-loading-text=\"Log in\">Log in</a>\r\n\t\t\t\t<a href=\"#\" class=\"btn btn-default btn-lg\" id=\"no-login\" data-dismiss=\"modal\">Cancel</a>") . "\r\n\t\t</div>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\t\$('#yes-reset').click(function(){\r\n\t\t\t\t\$.ajax({\r\n\t\t\t\t\turl: '../../ajax/restart_playout" . $location->get_id() . ".php',\r\n\t\t\t\t\tbeforeSend: function() {\r\n    \t\t\t\t\t\$('#yes-reset').html(\"Resetting...\");\r\n \t\t\t\t\t},\r\n\t\t\t\t\terror: function(xhr,text,error) {\r\n\t\t\t\t\t\tvalue = \$.parseJSON(xhr.responseText);\r\n\t\t\t\t\t\talert(value.error);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function(data,text,xhr) {\r\n\t\t\t\t\t\twindow.location.reload(true); \r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn(false);\r\n\t\t\t});\r\n\t\t</script>\r\n\t";