diff --git a/.gitignore b/.gitignore index 3aeda52..38886f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .buildpath .project .settings/ -*.xcf +.htaccess +application/config/config.php +application/config/database.php diff --git a/application/.htaccess b/application/.htaccess old mode 100755 new mode 100644 diff --git a/application/controllers/projects.php b/application/controllers/projects.php new file mode 100644 index 0000000..3f7e631 --- /dev/null +++ b/application/controllers/projects.php @@ -0,0 +1,58 @@ +load->model('Project'); + + $path = $this->input->get_post('node'); + + + switch($path) { + case '/projects/own': + $projects = $this->Project->getOwn(); + break; + case '/projects/shared': + $projects = $this->Project->getShared(); + break; + case '/projects/public': + $projects = $this->Project->getPublic(); + break; + default: + $projects = array( + array( + 'id' => '/projects/own', + 'cls' => 'folder', + 'text' => 'Eigene Projekte', + 'icon' => '/ScattPort/assets/images/icons/folder.png',), + array( + 'id' => '/projects/shared', + 'cls' => 'leaf', + 'text' => 'Für mich freigegeben', + 'icon' => '/ScattPort/assets/images/icons/folder-share.png', + ), + array( + 'id' => '/projects/public', + 'cls' => 'folder', + 'text' => 'Öffentliche Projekte', + 'icon' => '/ScattPort/assets/images/icons/folder-network.png', + ), + ); + } + + $this->output + ->set_content_type('application/json') + ->set_output(json_encode($projects)); + // ->set_output(json_encode(array('count' => $count, 'projects' => $projects))); + } + + public function detail($projects, $area, $id) { + $result = $this->db->get_where('projects', array('id' => $id))->row_array(); + $this->output + ->set_content_type('application/json') + ->set_output(json_encode(array('result' => $result))); + } +} diff --git a/application/models/project.php b/application/models/project.php new file mode 100644 index 0000000..d8e48c7 --- /dev/null +++ b/application/models/project.php @@ -0,0 +1,65 @@ +db->where(array('owner' => '215cd70f310ae6ae')) + ->order_by('lastaccess', 'desc') + ->get('projects'); + $projects = $query->result_array(); + $ownCount = $query->num_rows(); + + $i = 0; + foreach($projects as $project) { + $ownProjects[$i]['id'] = '/projects/own/'.$project['id']; + $ownProjects[$i]['cls'] = 'folder'; + $ownProjects[$i]['text'] = $project['name']; + $ownProjects[$i]['leaf'] = true; + $ownProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png"; + $i++; + } + + return $ownProjects; + } + + public function getShared() { + $this->db->select('*')->from('shares')->order_by('lastaccess', 'desc')->where(array('user_id' => '215cd70f310ae6ae')); + $this->db->join('projects', 'projects.id = shares.project_id'); + $query = $this->db->get(); + + $projects = $query->result_array(); + $sharedCount = $query->num_rows(); + + $i = 0; + foreach($projects as $project) { + $sharedProjects[$i]['id'] = '/projects/shared/'.$project['id']; + $sharedProjects[$i]['cls'] = 'folder'; + $sharedProjects[$i]['text'] = $project['name']; + $sharedProjects[$i]['leaf'] = true; + $sharedProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png"; + $i++; + } + + return $sharedProjects; + } + + public function getPublic() { + $query = $this->db->where(array('public' => '1')) + ->order_by('name', 'asc') + ->get('projects'); + $projects = $query->result_array(); + $publicCount = $query->num_rows(); + + $i = 0; + foreach($projects as $project) { + $publicProjects[$i]['id'] = '/projects/public/'.$project['id']; + $publicProjects[$i]['cls'] = 'folder'; + $publicProjects[$i]['text'] = $project['name']; + $publicProjects[$i]['leaf'] = true; + $publicProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png"; + $i++; + } + + return $publicProjects; + } +} \ No newline at end of file diff --git a/application/views/header.php b/application/views/header.php index 810e32a..c7578da 100644 --- a/application/views/header.php +++ b/application/views/header.php @@ -10,6 +10,7 @@ =script_tag('assets/js/ext/adapter/jquery/ext-jquery-adapter.js');?> =script_tag('assets/js/ext/ext-all.js');?> + =script_tag('assets/js/ProjectInfoWindow.js');?> +function loadProjectInfo(n) { + if(n.isLeaf()){ + Ext.Ajax.request({ + url: BASE_URL + 'projects/detail' + n.id, + method: 'get', + success: function ( result, request ) { + + var theResponse = Ext.util.JSON.decode(result.responseText); + + tabPanel.add({ + title: 'New Tab ', + html: 'Lade Projekt...', + closable:true, + handler: function(){ + alert("foo"); + var data = theResponse.result; + var tpl = new Ext.Template( + '
ID: {id}
', + 'Name: {name}
' + ); + + tpl.overwrite(this.html, data); + } + }).show(); + }, + failure: function ( result, request ) { + //Ext.MessageBox.alert("Fehler!", "Das gewünschte Projekt kann nicht geladen werden."); + switch(result.status) { + case 404: + Ext.MessageBox.alert("Fehler", "Das gewünschte Projekt konnte nicht gefunden werden."); + break; + case 401: + Ext.MessageBox.alert("Fehler", "Sie besitzen nicht die nötigen Zugriffsrechte, um dieses Projekt zu lesen." + + "Wenden Sie sich an den Projektbesitzer, um Zugriff zu erhalten."); + break; + } + } + }); + + } +} + + -load->view('footer'); ?> \ No newline at end of file +load->view('footer'); ?>