X-Git-Url: https://git.harvie.cz/?a=blobdiff_plain;f=index.php;h=caf25a0ef3039c92e95f2ea419b87abbc7565589;hb=042a49887f093945b7ef913556e506c30ce2bbda;hp=8ee47b8b099b87bbe4d00ac747fe51a29bb6c7a1;hpb=1b9304b85cd5038373a84e54ba1bf4dedf67a90d;p=mirrors%2FSokoMan.git diff --git a/index.php b/index.php index 8ee47b8..caf25a0 100755 --- a/index.php +++ b/index.php @@ -81,7 +81,17 @@ class HTML { return $this->link($this->img($src,$title,$options),$link,$internal,$translate); } + function textarea($name=false, $value='', $placeholder=false, $options=false, $prefix='') { + $html = T($prefix)."textarea($name, $value, $placeholder, $options, $prefix); $html = T($prefix)."$html"; } + function favicon($url='/favicon.ico') { + return ''; + + } + function head($title=false,$charset='UTF-8',$more='') { $title = $title ? "\n$title" : ''; $html= ''; $html.= ''.$title.$more; + $html.= $this->favicon(dirname($_SERVER['SCRIPT_NAME']).'/favicon.ico'); $html.= ''; return $html; } @@ -164,6 +180,7 @@ class Sklad_HTML extends HTML { //TODO: Split into few more methods $script = $_SERVER['SCRIPT_NAME']; $search = htmlspecialchars(@trim($_GET['q'])); $message = strip_tags(@trim($_GET['message']),'
'); + $fortune = 'test'; $instance = INSTANCE_ID != '' ? '/'.INSTANCE_ID : ''; $user_id = htmlspecialchars($user['id']); $user_gid = htmlspecialchars($user['gid']); @@ -224,8 +241,8 @@ EOF; $assistants=array(); foreach(scandir(DIR_ASSISTANTS) as $item) { if($item == '.' || $item == '..') continue; - $item = preg_replace('/\.inc\.php$/','',$item); - $assistants[$item] = "assistant/$item"; + $item = preg_replace('/\.inc\.php$/','',$item,-1,$count); + if($count) $assistants[$item] = "assistant/$item"; } $tables=array('item','model','category','producer','vendor','room','status'); @@ -245,7 +262,7 @@ EOF; $html .= '
'; - $html .= $this->form("$script/assistant/go", 'GET', array( + $html .= $this->form("$script/api/go", 'GET', array( array('q','','text','smart id...', 'autofocus'), array(false,'go','submit') ), 'style="float: left;"'); @@ -263,6 +280,9 @@ EOF;
$message
+
+$fortune +
EOF; return $html; @@ -302,7 +322,7 @@ EOF; 'model' => array( 'model_id' => array(array('item',$where_url)), 'model_barcode' => array(array('store','assistant/%d?barcode=%v')), - 'model_name' => array(array('google','http://google.com/search?q=%v',true)) + 'model_name' => array(array('google','http://google.com/search?q=%v',true)) //TODO: add manufacturer to google query ), 'item' => array( 'item_serial' => array(array('dispose','assistant/%d?serial=%v'),array('sell','assistant/%d?serial=%v')) @@ -364,16 +384,32 @@ EOF; $table = $table_sorted; } + function table_hide_columns(&$table, $class) { //TODO: Move to build_query_select() !!! :-))) + $fields_hide = array( + 'item' => array('model_descript','model_price_in','model_price_out','model_barcode','model_countable','model_reserve','model_eshop_hide','room_descript','room_author','producer_name','producer_note','vendor_note') + ); + //print_r($table); die(); + if(isset($fields_hide[$class])) foreach($table as $id => $row) { + foreach($fields_hide[$class] as $field) unset($table[$id][$field]); + } + } + function render_item_table($table,$class=false) { + if(empty($table)) return '

'.T('holy primordial emptiness is all you can find here...').'


'; $this->table_add_images($table); if($class) $this->table_add_relations($table,$class); $this->table_add_barcodes($table); $this->table_collapse($table); + if($class) $this->table_hide_columns($table,$class); $this->table_sort($table); return $this->table($table); } function render_insert_inputs($class,$columns,$selectbox,$current,$hidecols,$update) { + $textarea = array( + 'item' => array('item_note'), + 'model' => array('model_descript') + ); $html = ''; foreach($columns as $column) { $html.=T($class).':'.T($column['Field']).': '; @@ -388,6 +424,9 @@ EOF; case isset($selectbox[$column['Field']]): $html.=$this->select($name,$selectbox[$column['Field']],$val); break; + case isset($textarea[$class]) && in_array($column['Field'],$textarea[$class]): + $html.=$this->input($name, $val, 'textarea'); + break; default: $html.=$this->input($name, $val); break; @@ -494,7 +533,7 @@ class Sklad_DB extends PDO { 'item' => array('model', 'category', 'producer', 'vendor', 'room', 'status'), 'model' => array('category', 'producer') ); //TODO Autodetect using foreign keys? - $search_fields = array( + $fields_search = array( 'item' => array('item_id','item_serial','model_name','model_barcode','model_descript','producer_name','vendor_name'), 'model' => array('model_id','model_name','model_barcode','model_descript','producer_name') ); //TODO Autodetect @@ -512,9 +551,9 @@ class Sklad_DB extends PDO { //WHERE/REGEXP if($search) { $search = $this->quote($search); - if(!isset($search_fields[$class])) die(trigger_error(T("Can't search in $class table yet :-("))); //TODO: post_redirect_get + if(!isset($fields_search[$class])) die(trigger_error(T("Can't search in $class table yet :-("))); //TODO: post_redirect_get $sql_search = ''; - foreach($search_fields[$class] as $column) $sql_search .= "OR $column REGEXP $search "; + foreach($fields_search[$class] as $column) $sql_search .= "OR $column REGEXP $search "; $where[] = "FALSE $sql_search"; } elseif($id) $where[] = "$class$suffix_id = $id"; if(!$history && $this->contains_history($class)) $where[] = $class.'_valid_till=0'; @@ -582,7 +621,9 @@ class Sklad_DB extends PDO { function columns_get_selectbox($columns, $class=false, $suffix_id='_id', $suffix_name='_name') { $selectbox=array( //TODO: Hardcoded... - 'model_countable' => array(0 => 'no', 1 => 'yes') + 'model_countable' => array(0 => 'no', 1 => 'yes'), + 'model_eshop_hide' => array(0 => 'no', 1 => 'yes'), + 'vendor_id' => array('COMPULSORY' => 'select...') ); foreach($columns as $column) { if($column['Field'] == 'user_id') continue; //TODO HACK Blacklist: tabulka nemusi obsahovat *_name!!! momentalne se to tyka jen tabulky user (a item - u ty to nevadi)! @@ -801,7 +842,7 @@ class Sklad_UI { } function check_auth() { - new HTTP_Auth('SkladovejSystem', true, array($this->db->auth,'check_auth')); + new HTTP_Auth('WareHouse ['.BACKEND_AUTH.']', true, array($this->db->auth,'check_auth')); } function post_redirect_get($location, $message='', $error=false, $translate=true) { @@ -832,7 +873,8 @@ class Sklad_UI { function check_input_validity($field, $value='', $ruleset=0) { $rules = array(0 => array( 'model_barcode' => '/./', - 'item_serial' => '/./' + 'item_serial' => '/./', + 'vendor_id' => '/^[0-9]*$/' )); if(isset($rules[$ruleset][$field]) && !preg_match($rules[$ruleset][$field], trim($value))) return false; return true; @@ -914,19 +956,23 @@ class Sklad_UI { $PATH_CHUNKS = preg_split('/\//', $PATH_INFO); //Sephirot: if(!isset($PATH_CHUNKS[1])) $PATH_CHUNKS[1]=''; - if($_SERVER['REQUEST_METHOD'] != 'POST' && $PATH_CHUNKS[1]!='barcode') //TODO: tyhle podminky naznacujou, ze je v navrhu nejaka drobna nedomyslenost... + if($_SERVER['REQUEST_METHOD'] != 'POST' && $PATH_CHUNKS[1]!='barcode' && $PATH_CHUNKS[1]!='api') //TODO: tyhle podminky naznacujou, ze je v navrhu nejaka drobna nedomyslenost... echo $this->html->header($PATH_INFO,$this->db->auth->get_user()); switch($PATH_CHUNKS[1]) { //TODO: Move some branches to plugins if possible case 'test': //test die('Tell me why you cry'); break; - case 'assistant': //assistant + case 'assistant': case 'api': //assistant|api + $incdirs = array( + 'assistant' => DIR_ASSISTANTS, + 'api' => DIR_APIS + ); $PATH_CHUNKS[3] = isset($PATH_CHUNKS[3]) ? trim($PATH_CHUNKS[3]) : false; $assistant_vars['SUBPATH'] = array_slice($PATH_CHUNKS, 3); $assistant_vars['URL_INTERNAL'] = 'assistant/'.$PATH_CHUNKS[2]; $assistant_vars['URL'] = $_SERVER['SCRIPT_NAME'].'/'.$assistant_vars['URL_INTERNAL']; $assistant_vars['ASSISTANT'] = $PATH_CHUNKS[2]; - echo $this->safe_include(DIR_ASSISTANTS,$PATH_CHUNKS[2],$assistant_vars); + echo $this->safe_include($incdirs[$PATH_CHUNKS[1]],$PATH_CHUNKS[2],$assistant_vars); break; case 'barcode': //barcode Barcode::download_barcode(implode('/',array_slice($PATH_CHUNKS, 2)));