| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/
-$autoload['libraries'] = array('database', 'json');
+$autoload['libraries'] = array('database', 'json', 'core');
/*
public function __construct() {
parent::__construct();
- $this->load->model('core');
$this->load->model('user');
}
}
public function logged_in() {
- print json_encode($this->user->is_logged_in());
+ $this->json->reply($this->user->is_logged_in());
}
public function login_modal() {
}
public function get_menu() {
- print json_encode($this->core->get_menu());
+ $this->json->reply($this->core->get_menu());
}
}
?>
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php // if ( ! defined('BASEPATH')) exit('No direct script access allowed');
-class Core extends CI_Model {
+class Core {
public function get_menu() {
$menu = array(
'Desktop' => '#',
'App' => '#',
- 'Test' => '#',
+ 'Logout' => 'javascript:logout();void(0);',
'GitHub' => 'https://github.com/mustis/WebOsProject'
);
return $menu;
$this->db->insert('sessions', $sdata);
$this->sid($this->db->insert_id());
+ $this->input->set_cookie('session_id', $this->sid());
+
return TRUE;
}
if (isset($this->cached_sid)) {
return $this->cached_sid;
} else {
- return FALSE; // FIXME should we fetch SID somehow?
+ // FIXME needs IP-lock checking...
+ return $this->cached_sid = $this->input->cookie('session_id');
}
}
public function uid($new=NULL) {
<a class="brand" href="#">WebOS Dev</a>\r
<div class="nav-collapse collapse menudiv">\r
<p class="navbar-text pull-right">\r
- Logged in as <a href="#" class="navbar-link" id="username">Username</a>\r
+ Logged in as <a href="#" class="navbar-link" id="username"><em>unauthenticated</em></a>\r
</p>\r
</div>\r
</div>\r
</div>\r
</div>\r
- <div class="container-fluid">\r
+ <div id="desktop" class="container-fluid">\r
<div class="row">\r
</div>\r
</div>\r
var state
function loadDefaults() {
- jQuery.getJSON("/backend/logged_in", function(data) {
- if (!data) {
+ jQuery.getJSON("/backend/logged_in", function(resp) {
+ if (!resp.contents) {
loadLoginModal();
} else {
+ loadUsername();
loadMenu();
loadBackground();
}
}
+function loadUsername() {
+ jQuery("#username").html(state.name);
+}
+
function loadMenu() {
- jQuery.getJSON("/backend/get_menu", function(data) {
- var menuitems = []
- jQuery.each(data, function(key, val) {
- menuitems.push('<li><a href="' + val + '">' + key + '</li>');
- });
- jQuery('<ul/>', {
- 'class': 'nav',
- html: menuitems.join('')
- }).appendTo('.menudiv');
+ jQuery.getJSON("/backend/get_menu", function(resp) {
+ if (resp.success) {
+ var menuitems = []
+ jQuery.each(resp.contents, function(key, val) {
+ menuitems.push('<li><a href="' + val + '">' + key + '</li>');
+ });
+ jQuery('<ul/>', {
+ 'class': 'nav',
+ html: menuitems.join('')
+ }).appendTo('.menudiv');
+ } else {
+ throwError(resp.error, 'error', '#desktop');
+ }
});
}
state[key] = resp.data[key]
}
jQuery('#loginModal').modal('hide');
+ loadUsername();
loadMenu();
loadBackground();
} else {
- var n = jQuery(".alert").length;
- if (n>2) {
- jQuery(".alert").first().remove();
- }
throwError(resp.error, 'error', '.messagebody');
}
}, "json");
}
function throwError(e, t, c) {
+ var n = jQuery(".alert").length;
+ if (n>2) {
+ jQuery(".alert").first().remove();
+ }
+
error = '<div class="alert alert-block alert-' + t + '"><button type="button" class="close" data-dismiss="alert">×</button>' + e + '</div>'
jQuery(c).append(error);
}
+function logout() {
+ state = {}
+ loadDefaults();
+}
+
jQuery(function () {
state = {}