Bernd Wurst commited on 2013-01-20 12:09:29
              Zeige 2 geänderte Dateien mit 39 Einfügungen und 36 Löschungen.
            
| ... | ... | 
                      @@ -22,18 +22,22 @@ require_once('su.php');
                     | 
                  
| 22 | 22 | 
                         | 
                    
| 23 | 23 | 
                        require_role(ROLE_SYSADMIN);  | 
                    
| 24 | 24 | 
                         | 
                    
| 25 | 
                        -if (isset($_GET['type']))  | 
                    |
| 25 | 
                        +if (isset($_GET['do']))  | 
                    |
| 26 | 26 | 
                         {
                       | 
                    
| 27 | 
                        -  check_form_token('su_su_ajax', $_GET['formtoken']);
                       | 
                    |
| 27 | 
                        +  if ($_SESSION['su_ajax_timestamp'] < time() - 30) {
                       | 
                    |
| 28 | 
                        +    system_failure("Die su-Auswahl ist schon abgelaufen!");
                       | 
                    |
| 29 | 
                        + }  | 
                    |
| 30 | 
                        + $type = $_GET['do'][0];  | 
                    |
| 31 | 
                        + $id = (int) substr($_GET['do'], 1);  | 
                    |
| 28 | 32 | 
                        $role = NULL;  | 
                    
| 29 | 33 | 
                        $admin_user = $_SESSION['userinfo']['username'];  | 
                    
| 30 | 34 | 
                        $_SESSION['admin_user'] = $admin_user;  | 
                    
| 31 | 
                        -  if ($_GET['type'] == 'customer') {
                       | 
                    |
| 32 | 
                        - $role = find_role($_GET['id'], '', True);  | 
                    |
| 33 | 
                        - setup_session($role, $_GET['id']);  | 
                    |
| 34 | 
                        -  } elseif ($_GET['type'] == 'systemuser') {
                       | 
                    |
| 35 | 
                        - $role = find_role($_GET['uid'], '', True);  | 
                    |
| 36 | 
                        - setup_session($role, $_GET['uid']);  | 
                    |
| 35 | 
                        +  if ($type == 'c') {
                       | 
                    |
| 36 | 
                        + $role = find_role($id, '', True);  | 
                    |
| 37 | 
                        + setup_session($role, $id);  | 
                    |
| 38 | 
                        +  } elseif ($type == 'u') {
                       | 
                    |
| 39 | 
                        + $role = find_role($id, '', True);  | 
                    |
| 40 | 
                        + setup_session($role, $id);  | 
                    |
| 37 | 41 | 
                           } else {
                       | 
                    
| 38 | 42 | 
                             system_failure('unknown type');
                       | 
                    
| 39 | 43 | 
                        }  | 
                    
| ... | ... | 
                      @@ -62,32 +66,26 @@ $debug = '';  | 
                  
| 62 | 66 | 
                        if ($debugmode)  | 
                    
| 63 | 67 | 
                        $debug = 'debug&';  | 
                    
| 64 | 68 | 
                         | 
                    
| 65 | 
                        -html_header('<script type="text/javascript" src="'.$prefix.'js/ajax.js" ></script>
                       | 
                    |
| 66 | 
                        -<script type="text/javascript">  | 
                    |
| 67 | 
                        -  | 
                    |
| 68 | 
                        -function doRequest() {
                       | 
                    |
| 69 | 
                        - ajax_request(\'su_ajax\', \''.$debug.'q=\'+document.getElementById(\'query\').value, got_response)  | 
                    |
| 70 | 
                        -}  | 
                    |
| 71 | 
                        -  | 
                    |
| 72 | 
                        -function keyPressed() {
                       | 
                    |
| 73 | 
                        - if(window.mytimeout) window.clearTimeout(window.mytimeout);  | 
                    |
| 74 | 
                        - window.mytimeout = window.setTimeout(doRequest, 500);  | 
                    |
| 75 | 
                        - return true;  | 
                    |
| 76 | 
                        -}  | 
                    |
| 69 | 
                        +html_header('
                       | 
                    |
| 70 | 
                        +<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css">  | 
                    |
| 71 | 
                        +<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.js" ></script>  | 
                    |
| 72 | 
                        +<script type="text/javascript" src="http://code.jquery.com/ui/1.10.0/jquery-ui.js" ></script>  | 
                    |
| 73 | 
                        +');  | 
                    |
| 77 | 74 | 
                         | 
                    
| 78 | 
                        -function got_response() {
                       | 
                    |
| 79 | 
                        -  if (xmlHttp.readyState == 4) {
                       | 
                    |
| 80 | 
                        - document.getElementById(\'response\').innerHTML = xmlHttp.responseText;  | 
                    |
| 75 | 
                        +output('<label for="query"><strong>Suchtext:</strong></label> <input type="text" id="query" />
                       | 
                    |
| 76 | 
                        +<input type="hidden" id="query_id" name="query_id" />  | 
                    |
| 77 | 
                        +');  | 
                    |
| 78 | 
                        +output('
                       | 
                    |
| 79 | 
                        +<script>  | 
                    |
| 80 | 
                        +$("#query").autocomplete({
                       | 
                    |
| 81 | 
                        + source: "su_ajax",  | 
                    |
| 82 | 
                        +    select: function( event, ui ) {
                       | 
                    |
| 83 | 
                        +      if (ui.item) {
                       | 
                    |
| 84 | 
                        + window.location.href = "?do="+ui.item.id;  | 
                    |
| 81 | 85 | 
                        }  | 
                    
| 82 | 86 | 
                        }  | 
                    
| 83 | 
                        -  | 
                    |
| 84 | 
                        -</script>  | 
                    |
| 85 | 
                        -');  | 
                    |
| 86 | 
                        -  | 
                    |
| 87 | 
                        -output(html_form('su_su_ajax', '', '', '<strong>Suchtext:</strong> <input type="text" id="query" onkeyup="keyPressed()" />
                       | 
                    |
| 88 | 
                        -'));  | 
                    |
| 89 | 
                        -output('<div id="response"></div>
                       | 
                    |
| 90 | 
                        -<div style="height: 3em;"> </div>');  | 
                    |
| 87 | 
                        + });  | 
                    |
| 88 | 
                        +</script>');  | 
                    |
| 91 | 89 | 
                         | 
                    
| 92 | 90 | 
                        /*  | 
                    
| 93 | 91 | 
                         | 
                    
| ... | ... | 
                      @@ -24,19 +24,24 @@ require_once('class/customer.php');
                     | 
                  
| 24 | 24 | 
                         | 
                    
| 25 | 25 | 
                        require_role(ROLE_SYSADMIN);  | 
                    
| 26 | 26 | 
                         | 
                    
| 27 | 
                        -$ajax_formtoken = generate_form_token('su_su_ajax');
                       | 
                    |
| 27 | 
                        +# Save the timestamp of this request to the session, so we accept only actions performed some seconds after this  | 
                    |
| 28 | 
                        +$_SESSION['su_ajax_timestamp'] = time();  | 
                    |
| 28 | 29 | 
                         | 
                    
| 29 | 
                        -$result = array_unique(find_customers($_GET['q']));  | 
                    |
| 30 | 
                        +header("Content-Type: text/javascript");
                       | 
                    |
| 31 | 
                        +echo "[\n";  | 
                    |
| 32 | 
                        +  | 
                    |
| 33 | 
                        +$result = array_unique(find_customers($_GET['term']));  | 
                    |
| 30 | 34 | 
                        sort($result);  | 
                    
| 31 | 35 | 
                         foreach ($result as $val) {
                       | 
                    
| 32 | 36 | 
                        $c = new Customer((int) $val);  | 
                    
| 33 | 
                        -  echo '<div style="margin-bottom: 0.5em;">'.internal_link('su.php', 'Kunde '.$c->id.': <strong>'.$c->fullname.'</strong>', 'type=customer&id='.$c->id.'&formtoken='.$ajax_formtoken);
                       | 
                    |
| 37 | 
                        +  echo " {\"id\": \"c{$c->id}\", \"value\": \"Kunde {$c->id}: {$c->fullname}\"},\n";
                       | 
                    |
| 34 | 38 | 
                        $users = find_users_for_customer($c->id);  | 
                    
| 35 | 39 | 
                           foreach ($users as $uid => $username) {
                       | 
                    
| 36 | 
                        -    echo '<p style="padding:0; margin:0;margin-left: 2em;">'.internal_link('', 'User »'.$username.'« (UID '.$uid.')', 'type=systemuser&uid='.$uid.'&formtoken='.$ajax_formtoken).'</p>';
                       | 
                    |
| 40 | 
                        +    echo " {\"id\": \"u{$uid}\", \"label\": \"User {$uid}: {$username}\"},\n";
                       | 
                    |
| 37 | 41 | 
                        }  | 
                    
| 38 | 
                        - echo '</div>';  | 
                    |
| 39 | 42 | 
                        }  | 
                    
| 43 | 
                        +echo ' {}
                       | 
                    |
| 44 | 
                        +]';  | 
                    |
| 40 | 45 | 
                        die();  | 
                    
| 41 | 46 | 
                         | 
                    
| 42 | 47 | 
                         | 
                    
| 43 | 48 |