Пример #1
0
 public static function generateDateSelect($name, $current_value = false)
 {
     return ImpHTML::generateSelectFromTime($name, $current_value, true);
 }
Пример #2
0
    public function printChanges()
    {
        if (empty($this->ID)) {
            return;
        }
        $Changes = $this->getChanges();
        if (empty($Changes)) {
            return;
        }
        // TODO: Add filtering here or consider switching to ImpTable with paged data so we can avoid having a huge changelog on the default view in an admin page
        $Changes = array_reverse($Changes);
        $CSS_ID = ImpHTML::makeSafeCSSName($this->getUniqueIdentifier());
        echo '<table class="DBObjectChanges" id="', $CSS_ID, '">';
        print '<caption>';
        print '<a name="' . html_encode("{$this->DBTable}_{$this->ID}_Changes") . '"></a>';
        print !empty($this->Name) ? html_encode($this->Name) : "{$this->DBTable} #{$this->ID}";
        print ' History</caption>';
        echo '<tr><td colspan="5"><a href="#" onclick="return toggleChangeLog_', $CSS_ID, '()" class="DBObjectChangesToggle">Hide Change Log</a></td></tr>';
        print '<tr><th>Time</th><th>User</th><th>Property</th><th>Old Value</th><th>New Value</th></tr>';
        $LastGroup = false;
        $GroupCount = 0;
        foreach ($Changes as $Change) {
            extract($Change, EXTR_PREFIX_ALL, 'Change');
            $Change_Time = date('Y-M-d H:i:s', $Change_Time);
            switch ($this->Properties[$Change_Property]) {
                case 'datetime':
                case 'timestamp':
                    $Change_OldValue = date('Y-j-d H:i:s', (int) $Change_OldValue);
                    // These values are cast to avoid issues with values which had not been set and were thus NULL
                    $Change_NewValue = date('Y-j-d H:i:s', (int) $Change_NewValue);
                    // TODO: remove the casts after ChangeLog is updated to serialize() its values
                    break;
                case 'date':
                    $Change_OldValue = date('Y-j-d', (int) $Change_OldValue);
                    $Change_NewValue = date('Y-j-d', (int) $Change_NewValue);
                    break;
            }
            if ($LastGroup != "{$Change_Admin} {$Change_Time}") {
                $LastGroup = "{$Change_Admin} {$Change_Time}";
                $GroupCount++;
            } else {
                $Change_Admin = '';
                $Change_Time = '';
            }
            print '<tr class="' . ($GroupCount % 2 ? 'Even' : 'Odd') . '">';
            print "<td class=\"Timestamp\">{$Change_Time}</td><td class=\"UserName\">{$Change_Admin}</td><td class=\"PropertyName\">{$Change_Property}</td><td class=\"OldValue\">{$Change_OldValue}</td><td class=\"NewValue\">{$Change_NewValue}</td>";
            print "</tr>\n";
        }
        print "</table>\n";
        ?>
					<script type="text/javascript" charset="utf-8">
						function toggleChangeLog_<?php 
        echo $CSS_ID;
        ?>
() {
							var changelog = document.getElementById("<?php 
        echo $CSS_ID;
        ?>
");
							var toggle = document.getElementById("<?php 
        echo $CSS_ID;
        ?>
_toggle");

							if (changelog.style.display == 'none') {
								changelog.style.display = 'table';
								toggle.innerHTML        = 'Hide Change Log';
							} else {
								changelog.style.display = 'none';
								toggle.innerHTML        = 'Show Change Log';
							}

							return false;
						}

						document.write('<a href="#" onclick="return toggleChangeLog_<?php 
        echo $CSS_ID;
        ?>
()" id="<?php 
        echo $CSS_ID;
        ?>
_toggle" class="DBObjectChangesToggle">Show Change Log</a>');
						toggleChangeLog_<?php 
        echo $CSS_ID;
        ?>
();
					</script>
				<?php 
    }