Merge branch 'master' of disposed.de:scattport

This commit is contained in:
Karsten Heiken
2011-08-08 14:26:04 +02:00
49 changed files with 507 additions and 265 deletions

View File

@@ -1,18 +1,18 @@
<?php <?php
/* /*
* Copyright (c) 2011 Karsten Heiken <karsten@disposed.de> * Copyright (c) 2011 Karsten Heiken <karsten@disposed.de>
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights * in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is * copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in * The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software. * all copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -24,19 +24,16 @@
/** /**
* Controller for Ajax requests. * Controller for Ajax requests.
* *
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Ajax extends CI_Controller { class Ajax extends MY_Controller {
/** /**
* Constructor. * Constructor.
*/ */
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
// load language file
$this->lang->load(strtolower($this->router->class));
} }
/** /**

View File

@@ -27,14 +27,14 @@
* *
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class api extends CI_Controller { class Api extends CI_Controller {
/** /**
* Update the state of a given job. * Update the state of a given job.
* *
* Because we do not want any access from servers we do not trust, * Because we do not want any access from servers we do not trust,
* we need a special secret to authenticate the servers. * we need a special secret to authenticate the servers.
* *
* @param type $secret The secret to authenticate the server. * @param type $secret The secret to authenticate the server.
* @param type $job_id The job id that is running on the server. * @param type $job_id The job id that is running on the server.
* @param type $state The state of the job. * @param type $state The state of the job.

View File

@@ -5,7 +5,7 @@
* *
* @author Eike Foken <kontakt@eikefoken.de> * @author Eike Foken <kontakt@eikefoken.de>
*/ */
class Auth extends CI_Controller { class Auth extends MY_Controller {
/** /**
* Constructor. * Constructor.

View File

@@ -25,7 +25,7 @@
/** /**
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Dashboard extends CI_Controller { class Dashboard extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -35,9 +35,6 @@ class Dashboard extends CI_Controller {
$this->load->model('job'); $this->load->model('job');
$this->load->model('project'); $this->load->model('project');
$this->load->model('user'); $this->load->model('user');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
public function index() { public function index() {

View File

@@ -25,7 +25,7 @@
/** /**
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Jobs extends CI_Controller { class Jobs extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -33,9 +33,6 @@ class Jobs extends CI_Controller {
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
$this->load->model('job'); $this->load->model('job');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
/** /**
@@ -45,11 +42,11 @@ class Jobs extends CI_Controller {
$query = $this->db->order_by('progress', 'desc') $query = $this->db->order_by('progress', 'desc')
->get_where('jobs', array('started_by' => $this->session->userdata('user_id'))); ->get_where('jobs', array('started_by' => $this->session->userdata('user_id')));
$jobs = $query->result_array(); $jobs = $query->result_array();
for($i=0; $i<count($jobs); $i++) { for($i=0; $i<count($jobs); $i++) {
$jobs[$i]['project_name'] = $this->db->select('name')->get_where('projects', array('id' => $jobs[$i]['project_id']))->row()->name; $jobs[$i]['project_name'] = $this->db->select('name')->get_where('projects', array('id' => $jobs[$i]['project_id']))->row()->name;
$progress = $jobs[$i]['progress']; $progress = $jobs[$i]['progress'];
switch($progress) { switch($progress) {
case -1: case -1:
$progress = lang('waiting'); $progress = lang('waiting');
@@ -64,9 +61,9 @@ class Jobs extends CI_Controller {
$progress = $progress . "%"; $progress = $progress . "%";
break; break;
} }
$jobs[$i]['progress'] = $progress; $jobs[$i]['progress'] = $progress;
} }
$this->output $this->output
->set_content_type('application/json') ->set_content_type('application/json')

View File

@@ -25,7 +25,7 @@
/** /**
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Programs extends CI_Controller { class Programs extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -33,9 +33,6 @@ class Programs extends CI_Controller {
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
$this->load->model('program'); $this->load->model('program');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
/** /**
@@ -43,19 +40,19 @@ class Programs extends CI_Controller {
*/ */
public function index() { public function index() {
$programs = $this->program->getAll(); $programs = $this->program->getAll();
$tpl['programs'] = $programs; $tpl['programs'] = $programs;
$this->load->view('program/list', $tpl); $this->load->view('program/list', $tpl);
} }
/** /**
* Show detailed information about a program. * Show detailed information about a program.
* *
* @param type $prg_id The program's id * @param type $prg_id The program's id
*/ */
public function detail($prg_id) { public function detail($prg_id) {
$program = $this->program->getById($prg_id); $program = $this->program->getById($prg_id);
$tpl['program'] = $program; $tpl['program'] = $program;
$this->load->view('program/detail', $tpl); $this->load->view('program/detail', $tpl);
} }

View File

@@ -25,7 +25,7 @@
/** /**
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Projects extends CI_Controller { class Projects extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -34,13 +34,20 @@ class Projects extends CI_Controller {
parent::__construct(); parent::__construct();
$this->load->model('project'); $this->load->model('project');
$this->load->model('trial'); $this->load->model('trial');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
/** /**
* Create a new project. * Shows a list of all projects.
*/
public function index() {
$projects = $this->project->getAll();
$tpl['projects'] = $projects;
$this->load->view('project/list', $tpl);
}
/**
* Allows users to create a new project.
*/ */
public function create() { public function create() {
$this->load->library('form_validation'); $this->load->library('form_validation');
@@ -101,18 +108,16 @@ class Projects extends CI_Controller {
} }
} }
public function index() { /**
$projects = $this->project->getAll(); * Shows the project details
*
$tpl['projects'] = $projects; * @param integer $prj_id The ID of the project to show
$this->load->view('project/list', $tpl); */
}
public function detail($prj_id) { public function detail($prj_id) {
$project = $this->project->getById($prj_id); $project = $this->project->getById($prj_id);
if (!$project) { if (!$project) {
$this->messages->add('Das Projekt konnte nicht geladen werden.', 'error'); $this->messages->add('Das Projekt konnte nicht geladen werden.', 'error');
redirect('/projects/', 301); redirect('projects', 301);
} }
$this->session->set_userdata('active_project', $prj_id); $this->session->set_userdata('active_project', $prj_id);
@@ -124,4 +129,16 @@ class Projects extends CI_Controller {
$this->load->view('project/detail', $tpl); $this->load->view('project/detail', $tpl);
} }
/**
* Allows users to delete a project.
*
* @param unknown_type $projectId
*/
public function delete($projectId) {
$this->project->delete($projectId);
$this->session->unset_userdata('active_project');
$this->messages->add("Das Projekt wurde gelöscht.", 'notice');
redirect('projects');
}
} }

View File

@@ -1,18 +1,18 @@
<?php <?php
/* /*
* Copyright (c) 2011 Karsten Heiken <karsten@disposed.de> * Copyright (c) 2011 Karsten Heiken <karsten@disposed.de>
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights * in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is * copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in * The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software. * all copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -24,10 +24,10 @@
/** /**
* Result browser. * Result browser.
* *
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Results extends CI_Controller { class Results extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -37,11 +37,8 @@ class Results extends CI_Controller {
$this->load->model('program'); $this->load->model('program');
$this->load->model('job'); $this->load->model('job');
$this->load->model('server'); $this->load->model('server');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
public function index() { public function index() {
} }

View File

@@ -25,7 +25,7 @@
/** /**
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Settings extends CI_Controller { class Settings extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -33,9 +33,6 @@ class Settings extends CI_Controller {
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
$this->load->model('program'); $this->load->model('program');
// load language file
$this->lang->load(strtolower($this->router->class));
} }
/** /**

View File

@@ -27,7 +27,7 @@
* *
* @author Karsten Heiken <karsten@disposed.de> * @author Karsten Heiken <karsten@disposed.de>
*/ */
class Trials extends CI_Controller { class Trials extends MY_Controller {
/** /**
* Constructor. * Constructor.
@@ -37,9 +37,6 @@ class Trials extends CI_Controller {
$this->load->model('trial'); $this->load->model('trial');
$this->load->model('program'); $this->load->model('program');
$this->load->model('project'); $this->load->model('project');
// load language file
// $this->lang->load(strtolower($this->router->class));
} }
/** /**

View File

@@ -0,0 +1,20 @@
<?php defined('BASEPATH') || exit("No direct script access allowed");
/**
* Extends CI's controller class.
*
* @author Eike Foken <kontakt@eikefoken.de>
*/
class MY_Controller extends CI_Controller {
/**
* Calls the parent constructor and loads the relevant language file.
*/
public function __construct() {
parent::__construct();
// load relevant language file
$this->lang->load(strtolower($this->router->class));
}
}

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<?php defined('BASEPATH') || exit("No direct script access allowed");
/**
* Extends CI's Language helpers.
*
* @author Eike Foken <kontakt@eikefoken.de>
*/
/**
* Generates a link for language selection.
*
* @access public
* @param string $img_folder Folder of the images for the language selection
* @param boolean $index_page Should index_page be added to the JavaScript path
* @return string
*/
if (!function_exists('lang_select')) {
function lang_select($img_folder = '', $index_page = false) {
$CI =& get_instance();
$link = '<a';
if ($CI->config->item('lang_selected') == 'en') {
$link .= ' href="' . $CI->config->site_url('de') . '">';
if (isset($img_folder) && $img_folder != '') {
if ($index_page === true) {
$link .= '<img src="' . $CI->config->site_url($img_folder . '/lang_en.png') . '" />';
} else {
$link .= '<img src="' . $CI->config->slash_item('base_url') . $img_folder . '/lang_en.png" />';
}
}
$link .= ' English';
} else if ($CI->config->item('lang_selected') == 'de') {
$link .= ' href="' . $CI->config->site_url('en') . '" >';
if (isset($img_folder) && $img_folder != '') {
if ($index_page === true) {
$link .= '<img src="' . $CI->config->site_url($img_folder . '/lang_de.png') . '" />';
} else {
$link .= '<img src="' . $CI->config->slash_item('base_url') . $img_folder . '/lang_de.png" />';
}
}
$link .= ' Deutsch';
}
$link .= "</a>\n";
return $link;
}
}
/* End of file MY_language_helper.php */
/* Location: ./application/helpers/MY_language_helper.php */

View File

@@ -1,25 +0,0 @@
<?php
$lang['alpha_dash_dot'] = 'El camp de %s només permet caràcters alfanumèrics, guions baixos, ratlles i punts finals.';
$lang['alpha_slash_dot'] = 'El camp de %s només permet caràcters alfanumèrics, guions baixos, ratlles, barres i punts finals.';
$lang['min_date'] = 'El camp de %s ha de ser posterior o igual a %s.';
$lang['max_date'] = 'El camp de %s no pot superar %s.';
$lang['min_size'] = 'El camp de %s com a mínim permet %s.';
$lang['max_size'] = 'El camp de %s com a màxim permet %s.';
$lang['transaction'] = '%s ha fallat en %s.';
$lang['unique'] = '%s proposat ja existeix.';
$lang['unique_pair'] = 'La combinació proposada de %s amb %s ja existeix.';
$lang['valid_date'] = 'El camp %s ha de contenir una data vàlida.';
$lang['valid_date_group'] = 'El camp %s ha de contenir un grup de dates vàlides.';
$lang['valid_match'] = 'El camp %s només pot contenir %s.';
$lang['related_required'] = 'Es requereix la relació %s.';
$lang['related_min_size'] = 'Es requereix que la relació %s sigui com a mìnim de %s.';
$lang['related_max_size'] = 'Es requereix que la relació %s no excedeixi %s.';
$lang['dm_save_rel_failed'] = 'La relació %s no està ben definida.';
$lang['dm_save_rel_nothis'] = 'No es pot guardar la relació %s: Aquest objecte no està guardat.';
$lang['dm_save_rel_noobj'] = 'No es pot guardar la relació %s: Aquest objecte relacionat no està guardat.';
/* End of file datamapper_lang.php */
/* Location: ./application/language/catalan/datamapper_lang.php */

View File

@@ -1,5 +1,20 @@
<?php <?php
$lang['dashboard'] = "Dashboard";
$lang['projects'] = "Projects";
$lang['projects_create'] = "Create project";
$lang['projects_manage'] = "Manage projects";
$lang['projects_search'] = "Search project";
$lang['calculations'] = "Calculations";
$lang['calculations_running'] = "Running calculations";
$lang['newest_results'] = "Newest results";
$lang['administration'] = "Administration";
$lang['servers_manage'] = "Manage servers";
$lang['programs_manage'] = "Manage programs";
$lang['users_manage'] = "Manage users";
/* End of file dashboard_lang.php */ /* End of file dashboard_lang.php */
/* Location: ./application/language/german/dashboard_lang.php */ /* Location: ./application/language/english/dashboard_lang.php */

View File

@@ -1,5 +1,12 @@
<?php <?php
$lang['settings'] = "Settings";
$lang['tab_personal'] = "Personal Information";
$lang['tab_settings'] = "Settings";
$lang['projects_sortrecently'] = "Sort projects by date of the last access";
$lang['projects_sortrecently_note'] = "If the projects are sorted by the data of the last access, the rarely used projects &quot;slip&quot; to the end of the list.";
$lang['language_select'] = "Language";
/* End of file settings_lang.php */ /* End of file settings_lang.php */
/* Location: ./application/language/german/settings_lang.php */ /* Location: ./application/language/german/settings_lang.php */

View File

@@ -0,0 +1,5 @@
<?php
/* End of file trials_lang.php */
/* Location: ./application/language/english/trials_lang.php */

View File

@@ -1,25 +0,0 @@
<?php
$lang['alpha_dash_dot'] = 'El campo de %s sólo permite caracteres alfanuméricos, guiones bajos, guiones y puntos finals.';
$lang['alpha_slash_dot'] = 'El campo de %s sólo permite caracteres alfanuméricos, guiones bajos, guiones, barras y puntos finales.';
$lang['min_date'] = 'El campo de %s tiene que ser superior o igual a %s.';
$lang['max_date'] = 'El campo de %s no puede superar %s.';
$lang['min_size'] = 'El campo de %s como minimo permite %s.';
$lang['max_size'] = 'El campo de %s como maximo permite %s.';
$lang['transaction'] = '%s falló en %s.';
$lang['unique'] = '%s que se ha propuesto ya existe.';
$lang['unique_pair'] = 'La combinación propuesta de %s con %s ya existe.';
$lang['valid_date'] = 'El campo %s tiene que contener una fecha valida.';
$lang['valid_date_group'] = 'El campo %s tiene que contener un grupo de fechas validas.';
$lang['valid_match'] = 'El campo %s sólo puede contener %s.';
$lang['related_required'] = 'Se requiere %s.';
$lang['related_min_size'] = 'Se requiere que de %s haya como minimo %s.';
$lang['related_max_size'] = 'Se requiere que de %s no exceda %s.';
$lang['dm_save_rel_failed'] = 'La relación %s no esta bien definida.';
$lang['dm_save_rel_nothis'] = 'No se puede guardar la relación %s: Este objeto no esta guardado.';
$lang['dm_save_rel_noobj'] = 'No se puede guardar la relación %s: Este objeto relacionado no esta guardado.';
/* End of file datamapper_lang.php */
/* Location: ./application/language/spanish/datamapper_lang.php */

View File

@@ -1,25 +0,0 @@
<?php
$lang['alpha_dash_dot'] = 'Le champ %s ne doit contenir que des caractères alphanumériques, des tirets bas ou haut, et des points.';
$lang['alpha_slash_dot'] = 'Le champ %s ne doit contenir que des caractères alphanumériques, des tirets bas ou haut, des slashes et des points.';
$lang['min_date'] = 'Le champ %s doit etre ultérieur á %s.';
$lang['max_date'] = 'Le champ %s doit ètre antérieur á %s.';
$lang['min_size'] = 'Le champ %s doit ètre supérieur á %s';
$lang['max_size'] = 'Le champ %s doit ètre inférieur á %s.';
$lang['transaction'] = '%s a échoué á %s.';
$lang['unique'] = 'La valeur du champ %s renseignée est déjá prise.';
$lang['unique_pair'] = 'La combinaison des champs %s et %s est déjá prise.';
$lang['valid_date'] = 'Le champ %s doit contenir une date valide.';
$lang['valid_date_group'] = 'Les champs %2$s doivent contenir une date valide.';
$lang['valid_match'] = 'La valeur du champ %s doit ètre %s.';
$lang['related_required'] = 'Une relation %s est requise.';
$lang['related_min_size'] = 'La relation %s doit ètre supérieure á %s.';
$lang['related_max_size'] = 'La relation %s doit ètre inférieure á %s.';
$lang['dm_save_rel_failed'] = 'La relation %s n\'est pas définie correctement.';
$lang['dm_save_rel_nothis'] = 'Impossible de sauvegarde la relation %s : cet objet n\'est pas sauvegardé.';
$lang['dm_save_rel_noobj'] = 'Impossible de sauvegarde la relation %s. L\'objet en relation n\'est pas sauvegardé.';
/* End of file datamapper_lang.php */
/* Location: ./application/language/english/datamapper_lang.php */

View File

@@ -1,5 +1,20 @@
<?php <?php
$lang['dashboard'] = "Dashboard";
$lang['projects'] = "Projekte";
$lang['projects_create'] = "Projekt anlegen";
$lang['projects_manage'] = "Projekte verwalten";
$lang['projects_search'] = "Projekt suchen";
$lang['calculations'] = "Berechnungen";
$lang['calculations_running'] = "Laufende Berechnungen";
$lang['newest_results'] = "Neuste Ergebnisse";
$lang['administration'] = "Administration";
$lang['servers_manage'] = "Server verwalten";
$lang['programs_manage'] = "Programme verwalten";
$lang['users_manage'] = "Benutzer verwalten";
/* End of file dashboard_lang.php */ /* End of file dashboard_lang.php */
/* Location: ./application/language/german/dashboard_lang.php */ /* Location: ./application/language/german/dashboard_lang.php */

View File

@@ -1,5 +1,12 @@
<?php <?php
$lang['settings'] = "Einstellungen";
$lang['tab_personal'] = "Persönliche Daten";
$lang['tab_settings'] = "Einstellungen";
$lang['projects_sortrecently'] = "Projekte nach Zeitpunkt des letzten Zugriffs sortieren";
$lang['projects_sortrecently_note'] = "Werden die Projekte nach dem Zeitpunkt des letzten Zugriffs sortiert, &quot;rutschen&quot; die selten verwendeten Projekte in der Liste nach unten.";
$lang['language_select'] = "Sprache";
/* End of file settings_lang.php */ /* End of file settings_lang.php */
/* Location: ./application/language/german/settings_lang.php */ /* Location: ./application/language/german/settings_lang.php */

View File

@@ -0,0 +1,5 @@
<?php
/* End of file trials_lang.php */
/* Location: ./application/language/german/trials_lang.php */

10
application/language/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -1,25 +0,0 @@
<?php
$lang['alpha_dash_dot'] = 'Het veld %s mag alleen alfanumerieke tekens, streepjes, en punten bevatten.';
$lang['alpha_slash_dot'] = 'Het veld %s mag alleen alfanumerieke tekens, streepjes, schuine strepen en punten bevatten.';
$lang['min_date'] = 'De datum in het veld %s mag niet vroeger zijn dan %s.';
$lang['max_date'] = 'De datum in het veld %s mag niet later zijn dan %s.';
$lang['min_size'] = 'Het veld %s mag niet kleiner zijn dan %s.';
$lang['max_size'] = 'Het veld %s mag niet groter zijn dan %s.';
$lang['transaction'] = 'De %s "%s" is mislukt.';
$lang['unique'] = 'De waarde %s is al in gebruik.';
$lang['unique_pair'] = 'De combinatie van %s en %s is al in gebruik.';
$lang['valid_date'] = 'Het veld %s moet een geldige datum bevatten.';
$lang['valid_date_group'] = 'De %2$s velden moeten een geldige datum bevatten.';
$lang['valid_match'] = 'Het veld %s mag alleen maar %s bevatten.';
$lang['related_required'] = 'De %s relatie is verplicht.';
$lang['related_min_size'] = 'De %s relatie moet minimaal %s zijn.';
$lang['related_max_size'] = 'De %s relatie mag maximaal %s zijn.';
$lang['dm_save_rel_failed'] = 'De %s relatie is niet correct gedefinieerd.';
$lang['dm_save_rel_nothis'] = '%s relatie kan niet worden opgeslagen: Dit object is niet bewaard.';
$lang['dm_save_rel_noobj'] = '%s relatie kan niet worden opgeslagen: Het gerelateerde object is niet bewaard.';
/* End of file datamapper_lang.php */
/* Location: ./application/language/nl/datamapper_lang.php */

View File

@@ -1,25 +0,0 @@
<?php
$lang['alpha_dash_dot'] = 'O campo %s deve conter apenas caractéres alfa-numéricos, sublinhados, traços e paradas completas.';
$lang['alpha_slash_dot'] = 'O campo %s deve conter apenas caractéres alfa-numéricos, underscores, traços, barras e paradas completas.';
$lang['min_date'] = 'O campo %s deve ser no minímo %s';
$lang['max_date'] = 'O campo %s não pode exceder %s';
$lang['min_size'] = 'O campo %s deve ser no minímo %s';
$lang['max_size'] = 'O campo %s não pode exceder %s';
$lang['transaction'] = 'O %s falhou para %s';
$lang['unique'] = 'O %s que você tentou já está sendo usado.';
$lang['unique_pair'] = 'A combinação de %s e %s que você tentou já está sendo usada.';
$lang['valid_date'] = 'O campo %s deve conter uma data válida.';
$lang['valid_date_group'] = 'Os campos %s$s devem conter uma data válida';
$lang['valid_match'] = 'O campo %s deve conter apenas %s';
$lang['related_required'] = 'O relacionamento %s é necessário.';
$lang['related_min_size'] = 'O relacionamento %s deve ser no minímo %s.';
$lang['related_max_size'] = 'O relacionamento %s não pode exceder %s.';
$lang['dm_save_rel_failer'] = 'O relacionamento %s não está definido corretamente.';
$lang['dm_save_rel_nothis'] = 'Não foi possível salvar o relacionamento %s: O objeto não está salvo.';
$lang['dm_save_rel_noobj'] = 'Não foi possível saver o relacionamento %s: O objeto relacionado não foi salvo.';
/* End of file datamapper_lang.php */
/* Location: ./application/language/pt_BR/datamapper_lang.php */

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -3,25 +3,25 @@
<div id="content"> <div id="content">
<div class="title"> <div class="title">
<h2>Dashboard</h2> <h2><?=lang('dashboard');?></h2>
</div> </div>
<div class="box"> <div class="box">
<h3>Projekte</h3> <h3><?=lang('projects');?></h3>
<p> <p>
<a class="button left big" href="projects/create">Projekt anlegen</a><a class="button middle big" href="projects">Projekte verwalten</a><a class="button right big" href="#">Projekt suchen</a> <a class="button left big" href="projects/create"><?=lang('projects_create');?></a><a class="button middle big" href="projects"><?=lang('projects_manage');?></a><a class="button right big" href="#"><?=lang('projects_search');?></a>
</p> </p>
</div> </div>
<div class="box"> <div class="box">
<h3>Berechnungen</h3> <h3><?=lang('calculations');?></h3>
<p> <p>
<a class="button left big" href="#">Neueste Ergebnisse</a><a class="button middle big" href="#">Laufende Berechnungen</a> <a class="button left big" href="#"><?=lang('newest_results');?></a><a class="button middle big" href="#"><?=lang('calculations_running');?></a>
</p> </p>
</div> </div>
<div class="box"> <div class="box">
<h3>Administration</h3> <h3><?=lang('administration');?></h3>
<p> <p>
<a class="button left big" href="#">Server verwalten</a><a class="button middle big" href="#">Programme verwalten</a><a class="button right big" href="#">Benutzer verwalten</a> <a class="button left big" href="#"><?=lang('servers_manage');?></a><a class="button middle big" href="#"><?=lang('programs_manage');?></a><a class="button right big" href="#"><?=lang('users_manage');?></a>
</p> </p>
</div> </div>

View File

@@ -1,5 +1,5 @@
<div id="footer"> <div id="footer">
<span class="left"><a href="#">Dashboard</a> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a></span> <span class="left"><?=anchor('', "Dashboard");?> | <a href="#">Link</a> | <a href="#">Link</a> | <a href="#">Link</a></span>
<span class="right">© 2011 Karsten Heiken.</span> <span class="right">© 2011 Karsten Heiken.</span>
</div> </div>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -20,14 +20,13 @@
<body> <body>
<div id="header"> <div id="header">
<h1><a href="<?=base_url()?>"><img src="<?=site_url('assets/images/logo.gif')?>" /></a></h1> <h1><?=anchor('', img('assets/images/logo.png'))?></h1>
<div class="menu">Hallo <a href="#"><?=$this->user->profile()->firstname?> <?=$this->user->profile()->lastname?></a>! | <a href="#">Hilfe</a> | <a href="#">Einstellungen</a> | <a href="#">Logout</a></div> <div class="menu">Hallo <a href="<?=site_url('');?>"><?=$this->user->profile()->firstname;?> <?=$this->user->profile()->lastname;?></a>! | <?=lang_select('assets/images');?> | <a href="#">Hilfe</a> | <?=anchor('settings', "Einstellungen");?> | <?=anchor('auth/logout', "Logout");?></div>
</div> </div>
<div id="wrapper"> <div id="wrapper">
<div id="notifications"></div> <div id="notifications"></div>
<div id="sidebar"> <div id="sidebar">
<div class="title"> <div class="title">
@@ -67,7 +66,7 @@
?> ?>
</ul> </ul>
</div> </div>
<div class="title"> <div class="title">
<h2><a href="<?=site_url('projects')?>" title="Alle Projekte anzeigen">Projekte</a></h2> <h2><a href="<?=site_url('projects')?>" title="Alle Projekte anzeigen">Projekte</a></h2>
</div> </div>

10
application/views/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<div class="box"> <div class="box">
<h3>Versuche</h3> <h3>Versuche</h3>
<table> <table class="tableList">
<thead> <thead>
<tr> <tr>
<th scope="col">Versuch</th> <th scope="col">Versuch</th>
@@ -50,7 +50,7 @@
</div> </div>
<div class="box"> <div class="box">
<table> <table class="tableList">
<thead> <thead>
<tr> <tr>
<th scope="col">Versuch</th> <th scope="col">Versuch</th>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<div class="box"> <div class="box">
<h3>Übersicht aller Projekte</h3> <h3>Übersicht aller Projekte</h3>
<table> <table class="tableList paginated">
<thead> <thead>
<tr> <tr>
<th scope="col">Projekt</th> <th scope="col">Projekt</th>
@@ -25,7 +25,7 @@
<td><a href="<?=site_url('projects/detail/' . $project['id'])?>"><abbr title="<?=$project['description']?>"><?=$project['name']?></abbr></a></td> <td><a href="<?=site_url('projects/detail/' . $project['id'])?>"><abbr title="<?=$project['description']?>"><?=$project['name']?></abbr></a></td>
<td><?=$project['firstname'] . " " . $project['lastname']?></td> <td><?=$project['firstname'] . " " . $project['lastname']?></td>
<td><span class="active">Erfolgreich abgeschlossen</span></td> <td><span class="active">Erfolgreich abgeschlossen</span></td>
<td><a href="#">Ergebnisse anzeigen</a> | <a href="#">Entfernen</a></td> <td><a href="#">Ergebnisse anzeigen</a> | <?=anchor('projects/delete/' . $project['id'], "Entfernen");?></td>
</tr> </tr>
<? <?
endforeach; endforeach;
@@ -68,19 +68,6 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="pagination">
<ul>
<li class="pages">Seite:</li>
<li>1</li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>...</li>
<li><a href="#">10</a></li>
</ul>
</div>
</div> </div>
</div> </div>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -1,36 +1,43 @@
<?php $this->load->view('header'); ?> <?php $this->load->view('header');?>
<div id="content"> <div id="content">
<form action="#" method="post"> <form action="#" method="post">
<div class="title"> <div class="title">
<h2>Einstellungen</h2> <h2><?=lang('settings');?></h2>
</div> </div>
<ul class="tabs"> <ul class="tabs">
<li class="active"><a href="#personal">Persönliche Daten</a></li> <li class="active"><a href="#personal"><?=lang('tab_personal');?></a></li>
<li><a href="#settings">Einstellungen</a></li> <li><a href="#settings"><?=lang('tab_settings');?></a></li>
</ul> </ul>
<div class="tab_container"> <div class="tab_container">
<div id="personal" class="tab_content"> <div id="personal" class="tab_content">
<table> <ul>
<? <?php foreach($profile_fields as $field):?>
foreach($profile_fields as $field): <li>
?> <label><?=$field[1]?></label>
<tr> <div>
<td><?=$field[1]?></td> <input type="<?=$field[2]?>" name="<?=$field[0]?>" class="short text" />
<td><input type="<?=$field[2]?>" name="<?=$field[0]?>" class="text"</td> </div>
</tr> </li>
<? <?php endforeach;?>
endforeach; </ul>
?>
</table>
</div> </div>
<div id="settings" class="tab_content"> <div id="settings" class="tab_content">
<ul> <ul>
<li>
<label><?=lang('language_select');?></label>
<div>
<select id="language_select" name="language_select" class="drop">
<option value="de">Deutsch</option>
<option value="en">Englisch</option>
</select>
</div>
</li>
<li> <li>
<input type="checkbox" id="projects_sortrecently" name="projects_sortrecently" value="1" class="checkbox"/> <input type="checkbox" id="projects_sortrecently" name="projects_sortrecently" value="1" class="checkbox"/>
<label for="projects_sortrecently">Projekte nach Zeitpunkt des letzten Zugriffs sortieren</label><br /> <label for="projects_sortrecently"><?=lang('projects_sortrecently');?></label><br />
<label class="note">Werden die Projekte nach dem Zeitpunkt des letzten Zugriffs sortiert, &quot;rutschen&quot; die selten verwendeten Projekte in der Liste nach unten.</label> <label class="note"><?=lang('projects_sortrecently_note');?></label>
</li> </li>
</ul> </ul>
</div> </div>

10
assets/css/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -255,6 +255,16 @@ li { margin-left: 20px;}
.pagination ul li a { .pagination ul li a {
} }
.pagination ul li.clickable {
color: #0088cc;
cursor: pointer;
}
.pagination ul li.active {
color: #222;
cursor: default;
}
/* Footer */ /* Footer */
#footer { #footer {
@@ -412,34 +422,33 @@ ul.tabs {
padding: 0; padding: 0;
float: left; float: left;
list-style: none; list-style: none;
height: 32px; /*--Set height of tabs--*/ height: 27px; /*--Set height of tabs--*/
border-bottom: 1px solid #999; border-bottom: 1px solid #e8e8e8;
border-left: 1px solid #999; border-left: 1px solid #e8e8e8;
width: 100%; width: 100%;
} }
ul.tabs li { ul.tabs li {
float: left; float: left;
margin: 0; margin: 0;
padding: 0; padding: 0;
height: 31px; /*--Subtract 1px from the height of the unordered list--*/ height: 26px; /*--Subtract 1px from the height of the unordered list--*/
line-height: 31px; /*--Vertically aligns the text within the tab--*/ line-height: 26px; /*--Vertically aligns the text within the tab--*/
border: 1px solid #999; border: 1px solid #e8e8e8;
border-left: none; border-left: none;
margin-bottom: -1px; /*--Pull the list item down 1px--*/ margin-bottom: -1px; /*--Pull the list item down 1px--*/
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background: #e0e0e0; background: #e0e0e0 url('../images/navigation-off.gif');
} }
ul.tabs li a { ul.tabs li a {
text-decoration: none; text-decoration: none;
color: #000; color: #000;
display: block; display: block;
padding: 0 20px; padding: 1px 21px;
border: 1px solid #fff; /*--Gives the bevel look with a 1px white border inside the list item--*/
outline: none; outline: none;
} }
ul.tabs li a:hover { ul.tabs li a:hover {
background: #ccc; background: #f0f0f0;
} }
html ul.tabs li.active, html ul.tabs li.active a:hover { /*--Makes sure that the active tab does not listen to the hover properties--*/ html ul.tabs li.active, html ul.tabs li.active a:hover { /*--Makes sure that the active tab does not listen to the hover properties--*/
background: #fff; background: #fff;
@@ -447,11 +456,11 @@ html ul.tabs li.active, html ul.tabs li.active a:hover { /*--Makes sure that th
} }
.tab_container { .tab_container {
border: 1px solid #999; border: 1px solid #e8e8e8;
border-top: none; border-top: none;
overflow: hidden; overflow: hidden;
background: #fff; background: #fff;
} }
.tab_content { .tab_content {
padding: 20px; padding: 20px;
} }

View File

@@ -34,5 +34,13 @@ table .odd {
background: #f6f6f6; background: #f6f6f6;
} }
table tbody tr:nth-child(even) {background: #fff} table .even {
table tbody tr:nth-child(odd) {background: #f6f6f6} background: #fff;
}
table .hover {
background: #f0f0f0;
}
/*table tbody tr:nth-child(even) {background: #fff}
table tbody tr:nth-child(odd) {background: #f6f6f6}*/

10
assets/images/icons/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

10
assets/images/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

10
assets/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

10
assets/js/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

10
assets/js/language/index.html Executable file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -6,22 +6,26 @@ function get_notifications() {
}); });
} }
$.fn.alternateRowColors = function() {
$('tbody tr:odd', this).removeClass('even').addClass('odd');
$('tbody tr:even', this).removeClass('odd').addClass('even');
return this;
};
$(document).ready(function() { $(document).ready(function() {
$(".tab_content").hide(); // hide all content
$("ul.tabs li:first").addClass("active").show(); // activate first tab
$(".tab_content:first").show(); // show first tab content
//When page loads... // onClick event
$(".tab_content").hide(); //Hide all content
$("ul.tabs li:first").addClass("active").show(); //Activate first tab
$(".tab_content:first").show(); //Show first tab content
//On Click Event
$("ul.tabs li").click(function() { $("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active"); //Remove any "active" class $("ul.tabs li").removeClass("active"); // remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab $(this).addClass("active"); // add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content $(".tab_content").hide(); // hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content var activeTab = $(this).find("a").attr("href");
$(activeTab).fadeIn(); //Fade in the active ID content $(activeTab).fadeIn(); // fade in the active tab content
return false; return false;
}); });
@@ -29,3 +33,72 @@ $(document).ready(function() {
get_notifications(); get_notifications();
setInterval('get_notifications()', '5000'); setInterval('get_notifications()', '5000');
}); });
/*
* Tables
*/
$(document).ready(function() {
var settings = {
table_class : 'tableList'
};
// add or delete "hover" class on mouseOver event
$('.' + settings.table_class + ' tbody tr').hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
});
// add or delete "selected" class if a row is selected via checkbox
$('.' + settings.table_class + ' tbody input:checkbox').click(function() {
if ($(this).attr('checked') == true) {
$(this).parent().parent().addClass('selected');
} else {
$(this).parent().parent().removeClass('selected');
}
});
// alternate table rows
$('.' + settings.table_class).each(function() {
var table = $(this);
table.alternateRowColors(table);
});
/*
* Pagination
*/
$('.paginated').each(function() {
var currentPage = 0;
var numPerPage = 6;
var table = $(this);
table.bind('repaginate', function() {
var start = currentPage * numPerPage;
var end = (currentPage + 1) * numPerPage;
table.find('tbody tr').slice(start, end).show().end().slice(0, start).hide().end().slice(end).hide().end();
});
var numRows = table.find('tbody tr').length;
var numPages = Math.ceil(numRows / numPerPage);
var $pager = $('<div class="pagination"></div>');
var $pagelist = $('<ul></ul>');
$pagelist.append('<li class="pages">Seite:</li>');
for (var page = 0; page < numPages; page++) {
$('<li class="page-number">' + (page + 1) + '</li>').bind('click', {'newPage': page}, function(event) {
currentPage = event.data['newPage'];
table.trigger('repaginate');
$(this).addClass('active').siblings().removeClass('active');
}).appendTo($pagelist).addClass('clickable');
}
$pagelist.find('li.page-number:first').addClass('active');
$pager.append($pagelist);
$pager.insertAfter(table);
table.trigger('repaginate');
});
});