mirror of
https://github.com/yiisoft/yii2.git
synced 2025-12-02 16:09:55 +08:00
Fixed debugger with the new bootstrap.
This commit is contained in:
@@ -21,6 +21,7 @@ class SiteController extends Controller
|
||||
|
||||
public function actionIndex()
|
||||
{
|
||||
Yii::warning('test');
|
||||
return $this->render('index');
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ class ButtonDropdown extends Widget
|
||||
/**
|
||||
* @var array the HTML attributes of the button.
|
||||
*/
|
||||
public $buttonOptions = array();
|
||||
public $options = array();
|
||||
/**
|
||||
* @var array the configuration array for [[Dropdown]].
|
||||
*/
|
||||
@@ -57,25 +57,12 @@ class ButtonDropdown extends Widget
|
||||
public $split = false;
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the widget.
|
||||
* If you override this method, make sure you call the parent implementation first.
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
parent::init();
|
||||
Html::addCssClass($this->options, 'btn-group');
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the widget.
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
echo Html::beginTag('div', $this->options) . "\n";
|
||||
echo $this->renderButton() . "\n";
|
||||
echo $this->renderDropdown() . "\n";
|
||||
echo Html::endTag('div') . "\n";
|
||||
echo $this->renderButton() . "\n" . $this->renderDropdown();
|
||||
$this->registerPlugin('button');
|
||||
}
|
||||
|
||||
@@ -85,21 +72,21 @@ class ButtonDropdown extends Widget
|
||||
*/
|
||||
protected function renderButton()
|
||||
{
|
||||
Html::addCssClass($this->buttonOptions, 'btn');
|
||||
Html::addCssClass($this->options, 'btn');
|
||||
if ($this->split) {
|
||||
$tag = 'button';
|
||||
$options = $this->buttonOptions;
|
||||
$this->buttonOptions['data-toggle'] = 'dropdown';
|
||||
Html::addCssClass($this->buttonOptions, 'dropdown-toggle');
|
||||
$options = $this->options;
|
||||
$this->options['data-toggle'] = 'dropdown';
|
||||
Html::addCssClass($this->options, 'dropdown-toggle');
|
||||
$splitButton = Button::widget(array(
|
||||
'label' => '<span class="caret"></span>',
|
||||
'encodeLabel' => false,
|
||||
'options' => $this->buttonOptions,
|
||||
'options' => $this->options,
|
||||
));
|
||||
} else {
|
||||
$tag = 'a';
|
||||
$this->label .= ' <span class="caret"></span>';
|
||||
$options = $this->buttonOptions;
|
||||
$options = $this->options;
|
||||
if (!isset($options['href'])) {
|
||||
$options['href'] = '#';
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ use yii\helpers\Html;
|
||||
* ```php
|
||||
* // a button group with items configuration
|
||||
* echo ButtonGroup::::widget(array(
|
||||
* 'items' => array(
|
||||
* 'buttons' => array(
|
||||
* array('label' => 'A'),
|
||||
* array('label' => 'B'),
|
||||
* )
|
||||
@@ -26,7 +26,7 @@ use yii\helpers\Html;
|
||||
*
|
||||
* // button group with an item as a string
|
||||
* echo ButtonGroup::::widget(array(
|
||||
* 'items' => array(
|
||||
* 'buttons' => array(
|
||||
* Button::widget(array('label' => 'A')),
|
||||
* array('label' => 'B'),
|
||||
* )
|
||||
@@ -60,7 +60,6 @@ class ButtonGroup extends Widget
|
||||
public function init()
|
||||
{
|
||||
parent::init();
|
||||
$this->clientOptions = false;
|
||||
Html::addCssClass($this->options, 'btn-group');
|
||||
}
|
||||
|
||||
@@ -70,7 +69,7 @@ class ButtonGroup extends Widget
|
||||
public function run()
|
||||
{
|
||||
echo Html::tag('div', $this->renderButtons(), $this->options);
|
||||
$this->registerPlugin('button');
|
||||
BootstrapAsset::register($this->getView());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
1388
framework/yii/bootstrap/assets/css/bootstrap.css
vendored
1388
framework/yii/bootstrap/assets/css/bootstrap.css
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
166
framework/yii/bootstrap/assets/js/bootstrap.js
vendored
166
framework/yii/bootstrap/assets/js/bootstrap.js
vendored
@@ -50,9 +50,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
// http://blog.alexmaccaw.com/css-transitions
|
||||
$.fn.emulateTransitionEnd = function (duration) {
|
||||
var called = false, $el = this
|
||||
$(this).one('webkitTransitionEnd', function () { called = true })
|
||||
var callback = function () { if (!called) $($el).trigger('webkitTransitionEnd') }
|
||||
$(this).one($.support.transition.end, function () { called = true })
|
||||
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
|
||||
setTimeout(callback, duration)
|
||||
return this
|
||||
}
|
||||
|
||||
$(function () {
|
||||
@@ -218,7 +219,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
||||
|
||||
if ($parent.length) {
|
||||
var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active'))
|
||||
var $input = this.$element.find('input')
|
||||
.prop('checked', !this.$element.hasClass('active'))
|
||||
.trigger('change')
|
||||
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
|
||||
}
|
||||
|
||||
@@ -234,7 +237,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
$.fn.button = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('button')
|
||||
var data = $this.data('bs.button')
|
||||
var options = typeof option == 'object' && option
|
||||
|
||||
if (!data) $this.data('bs.button', (data = new Button(this, options)))
|
||||
@@ -532,9 +535,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
this.$element.trigger(startEvent)
|
||||
if (startEvent.isDefaultPrevented()) return
|
||||
|
||||
var dimension = this.dimension()
|
||||
var scroll = $.camelCase(['scroll', dimension].join('-'))
|
||||
var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
||||
var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
||||
|
||||
if (actives && actives.length) {
|
||||
var hasData = actives.data('bs.collapse')
|
||||
@@ -543,10 +544,32 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
hasData || actives.data('bs.collapse', null)
|
||||
}
|
||||
|
||||
this.$element[dimension](0)
|
||||
this.transition('addClass', 'shown.bs.collapse')
|
||||
var dimension = this.dimension()
|
||||
|
||||
if ($.support.transition) this.$element[dimension](this.$element[0][scroll])
|
||||
this.$element
|
||||
.removeClass('collapse')
|
||||
.addClass('collapsing')
|
||||
[dimension](0)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
this.$element
|
||||
.removeClass('collapsing')
|
||||
.addClass('in')
|
||||
[dimension]('auto')
|
||||
this.transitioning = 0
|
||||
this.$element.trigger('shown.bs.collapse')
|
||||
}
|
||||
|
||||
if (!$.support.transition) return complete.call(this)
|
||||
|
||||
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
|
||||
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
.emulateTransitionEnd(350)
|
||||
[dimension](this.$element[0][scrollSize])
|
||||
}
|
||||
|
||||
Collapse.prototype.hide = function () {
|
||||
@@ -556,42 +579,33 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
this.$element.trigger(startEvent)
|
||||
if (startEvent.isDefaultPrevented()) return
|
||||
|
||||
var dimension = this.dimension()
|
||||
this.reset(this.$element[dimension]())
|
||||
this.transition('removeClass', 'hidden.bs.collapse')
|
||||
this.$element[dimension](0)
|
||||
}
|
||||
|
||||
Collapse.prototype.reset = function (size) {
|
||||
var dimension = this.dimension()
|
||||
|
||||
this.$element
|
||||
[dimension](this.$element[dimension]())
|
||||
[0].offsetHeight
|
||||
|
||||
this.$element
|
||||
.addClass('collapsing')
|
||||
.removeClass('collapse')
|
||||
[dimension](size || 'auto')
|
||||
[0].offsetWidth
|
||||
|
||||
this.$element[size != null ? 'addClass' : 'removeClass']('collapse')
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
Collapse.prototype.transition = function (method, completeEvent) {
|
||||
var that = this
|
||||
var complete = function () {
|
||||
if (completeEvent == 'shown.bs.collapse') that.reset()
|
||||
that.transitioning = 0
|
||||
that.$element.trigger(completeEvent)
|
||||
}
|
||||
.removeClass('in')
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
this.$element[method]('in')
|
||||
|
||||
$.support.transition && this.$element.hasClass('collapse') ?
|
||||
var complete = function () {
|
||||
this.transitioning = 0
|
||||
this.$element
|
||||
.one($.support.transition.end, complete)
|
||||
.emulateTransitionEnd(350) :
|
||||
complete()
|
||||
.trigger('hidden.bs.collapse')
|
||||
.removeClass('collapsing')
|
||||
.addClass('collapse')
|
||||
}
|
||||
|
||||
if (!$.support.transition) return complete.call(this)
|
||||
|
||||
this.$element
|
||||
[dimension](0)
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
.emulateTransitionEnd(350)
|
||||
}
|
||||
|
||||
Collapse.prototype.toggle = function () {
|
||||
@@ -1042,9 +1056,11 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
})
|
||||
})
|
||||
|
||||
var $body = $(document.body)
|
||||
.on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') })
|
||||
.on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') })
|
||||
$(function () {
|
||||
var $body = $(document.body)
|
||||
.on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') })
|
||||
.on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') })
|
||||
})
|
||||
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -1229,12 +1245,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
.addClass(placement)
|
||||
}
|
||||
|
||||
var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
|
||||
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
||||
var calculatedOffset = this.getCalcuatedOffset(placement, pos, actualWidth, actualHeight)
|
||||
|
||||
this.applyPlacement(tp, placement)
|
||||
this.applyPlacement(calculatedOffset, placement)
|
||||
this.$element.trigger('shown.bs.' + this.type)
|
||||
}
|
||||
}
|
||||
@@ -1246,25 +1259,33 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
var height = $tip[0].offsetHeight
|
||||
|
||||
// manually read margins because getBoundingClientRect includes difference
|
||||
offset.top = offset.top + parseInt($tip.css('margin-top'), 10)
|
||||
offset.left = offset.left + parseInt($tip.css('margin-left'), 10)
|
||||
var marginTop = parseInt($tip.css('margin-top'), 10)
|
||||
var marginLeft = parseInt($tip.css('margin-left'), 10)
|
||||
|
||||
// we must check for NaN for ie 8/9
|
||||
if (isNaN(marginTop)) marginTop = 0
|
||||
if (isNaN(marginLeft)) marginLeft = 0
|
||||
|
||||
offset.top = offset.top + marginTop
|
||||
offset.left = offset.left + marginLeft
|
||||
|
||||
$tip
|
||||
.offset(offset)
|
||||
.addClass('in')
|
||||
|
||||
// check to see if placing tip in new offset caused the tip to resize itself
|
||||
var actualWidth = $tip[0].offsetWidth
|
||||
var actualHeight = $tip[0].offsetHeight
|
||||
|
||||
if (placement == 'top' && actualHeight != height) {
|
||||
replace = true
|
||||
offset.top = offset.top + height - actualHeight
|
||||
offset.top = offset.top + height - actualHeight
|
||||
}
|
||||
|
||||
if (placement == 'bottom' || placement == 'top') {
|
||||
if (/bottom|top/.test(placement)) {
|
||||
var delta = 0
|
||||
|
||||
if (offset.left < 0){
|
||||
if (offset.left < 0) {
|
||||
delta = offset.left * -2
|
||||
offset.left = 0
|
||||
|
||||
@@ -1299,6 +1320,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
var $tip = this.tip()
|
||||
var e = $.Event('hide.bs.' + this.type)
|
||||
|
||||
function complete() { $tip.detach() }
|
||||
|
||||
this.$element.trigger(e)
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
@@ -1307,9 +1330,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
|
||||
$.support.transition && this.$tip.hasClass('fade') ?
|
||||
$tip
|
||||
.one($.support.transition.end, $tip.detach)
|
||||
.one($.support.transition.end, complete)
|
||||
.emulateTransitionEnd(150) :
|
||||
$tip.detach()
|
||||
complete()
|
||||
|
||||
this.$element.trigger('hidden.bs.' + this.type)
|
||||
|
||||
@@ -1335,6 +1358,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
}, this.$element.offset())
|
||||
}
|
||||
|
||||
Tooltip.prototype.getCalcuatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
||||
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
|
||||
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
||||
}
|
||||
|
||||
Tooltip.prototype.getTitle = function () {
|
||||
var title
|
||||
var $e = this.$element
|
||||
@@ -1350,8 +1380,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
return this.$tip = this.$tip || $(this.options.template)
|
||||
}
|
||||
|
||||
Tooltip.prototype.arrow =function(){
|
||||
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
|
||||
Tooltip.prototype.arrow = function () {
|
||||
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
|
||||
}
|
||||
|
||||
Tooltip.prototype.validate = function () {
|
||||
@@ -1442,6 +1472,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
this.init('popover', element, options)
|
||||
}
|
||||
|
||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||
|
||||
Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
|
||||
placement: 'right'
|
||||
, trigger: 'click'
|
||||
@@ -1471,7 +1503,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
|
||||
$tip.removeClass('fade top bottom left right in')
|
||||
|
||||
$tip.find('.popover-title:empty').hide()
|
||||
// Hide empty titles
|
||||
//
|
||||
// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
|
||||
// this manually by checking the contents.
|
||||
if ($tip.find('.popover-title').html() === '') {
|
||||
$tip.find('.popover-title').hide();
|
||||
}
|
||||
}
|
||||
|
||||
Popover.prototype.hasContent = function () {
|
||||
@@ -1488,15 +1526,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
o.content)
|
||||
}
|
||||
|
||||
Popover.prototype.arrow =function () {
|
||||
return this.$arrow = this.$arrow || this.tip().find('.arrow')
|
||||
}
|
||||
|
||||
Popover.prototype.tip = function () {
|
||||
if (!this.$tip) this.$tip = $(this.options.template)
|
||||
return this.$tip
|
||||
}
|
||||
|
||||
Popover.prototype.destroy = function () {
|
||||
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||
}
|
||||
|
||||
|
||||
// POPOVER PLUGIN DEFINITION
|
||||
// =========================
|
||||
@@ -1555,10 +1593,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
function ScrollSpy(element, options) {
|
||||
var href
|
||||
var process = $.proxy(this.process, this)
|
||||
var $element = $(element).is('body') ? $(window) : $(element)
|
||||
|
||||
this.$element = $(element).is('body') ? $(window) : $(element)
|
||||
this.$body = $('body')
|
||||
this.$scrollElement = $element.on('scroll.bs.scroll-spy.data-api', process)
|
||||
this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
|
||||
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
||||
this.selector = (this.options.target
|
||||
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
@@ -1576,6 +1614,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
}
|
||||
|
||||
ScrollSpy.prototype.refresh = function () {
|
||||
var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
|
||||
|
||||
this.offsets = $([])
|
||||
this.targets = $([])
|
||||
|
||||
@@ -1589,7 +1629,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
|
||||
|
||||
return ($href
|
||||
&& $href.length
|
||||
&& [[ $href.offset().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
|
||||
&& [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
|
||||
})
|
||||
.sort(function (a, b) { return a[0] - b[0] })
|
||||
.each(function () {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -5,7 +5,7 @@
|
||||
font: 11px Verdana, Arial, sans-serif;
|
||||
text-align: left;
|
||||
height: 40px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-bottom: 1px solid #e4e4e4;
|
||||
background: rgb(237,237,237);
|
||||
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VkZWRlZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUzJSIgc3RvcC1jb2xvcj0iI2Y2ZjZmNiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
|
||||
background: -moz-linear-gradient(top, rgba(237,237,237,1) 0%, rgba(246,246,246,1) 53%, rgba(255,255,255,1) 100%);
|
||||
@@ -119,11 +119,22 @@ span.indent {
|
||||
|
||||
ul.trace {
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
margin: 2px 0 0 20px;
|
||||
color: #999;
|
||||
margin: 2px 0 0 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.default-index .container,
|
||||
.default-view .container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.callout-danger {
|
||||
background-color: #fcf2f2;
|
||||
border-color: #dFb5b4;
|
||||
}
|
||||
.callout {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
@@ -65,11 +65,11 @@ EOD;
|
||||
));
|
||||
}
|
||||
if ($level == Logger::LEVEL_ERROR) {
|
||||
$class = ' class="error"';
|
||||
$class = ' class="danger"';
|
||||
} elseif ($level == Logger::LEVEL_WARNING) {
|
||||
$class = ' class="warning"';
|
||||
} elseif ($level == Logger::LEVEL_INFO) {
|
||||
$class = ' class="info"';
|
||||
$class = ' class="success"';
|
||||
} else {
|
||||
$class = '';
|
||||
}
|
||||
@@ -84,7 +84,7 @@ EOD;
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 100px;">Time</th>
|
||||
<th style="width: 100px;">Level</th>
|
||||
<th style="width: 65px;">Level</th>
|
||||
<th style="width: 250px;">Category</th>
|
||||
<th>Message</th>
|
||||
</tr>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use yii\bootstrap\ButtonDropdown;
|
||||
use yii\bootstrap\ButtonGroup;
|
||||
use yii\helpers\Html;
|
||||
|
||||
/**
|
||||
@@ -36,35 +38,36 @@ $this->title = 'Yii Debugger';
|
||||
</ul>
|
||||
</div><!--/span-->
|
||||
<div class="col-lg-10">
|
||||
<div class="meta alert alert-info">
|
||||
<div class="btn-group">
|
||||
<?php echo Html::a('All', array('index'), array('class' => 'btn')); ?>
|
||||
<button class="btn dropdown-toggle" data-toggle="dropdown">
|
||||
Last 10
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<?php
|
||||
$count = 0;
|
||||
foreach ($manifest as $meta) {
|
||||
$label = $meta['tag'] . ': ' . $meta['method'] . ' ' . $meta['url'] . ($meta['ajax'] ? ' (AJAX)' : '')
|
||||
. ', ' . date('Y-m-d h:i:s a', $meta['time'])
|
||||
. ', ' . $meta['ip'];
|
||||
$url = array('view', 'tag' => $meta['tag'], 'panel' => $activePanel->id);
|
||||
echo '<li>' . Html::a(Html::encode($label), $url) . '</li>';
|
||||
if (++$count >= 10) {
|
||||
break;
|
||||
}
|
||||
<div class="callout callout-danger">
|
||||
<?php
|
||||
$count = 0;
|
||||
$items = array();
|
||||
foreach ($manifest as $meta) {
|
||||
$label = $meta['tag'] . ': ' . $meta['method'] . ' ' . $meta['url'] . ($meta['ajax'] ? ' (AJAX)' : '')
|
||||
. ', ' . date('Y-m-d h:i:s a', $meta['time'])
|
||||
. ', ' . $meta['ip'];
|
||||
$url = array('view', 'tag' => $meta['tag'], 'panel' => $activePanel->id);
|
||||
$items[] = array(
|
||||
'label' => $label,
|
||||
'url' => $url,
|
||||
);
|
||||
if (++$count >= 10) {
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php echo $summary['tag']; ?>:
|
||||
<?php echo $summary['method']; ?>
|
||||
<?php echo Html::a(Html::encode($summary['url']), $summary['url']); ?>
|
||||
<?php echo $summary['ajax'] ? ' (AJAX)' : ''; ?>
|
||||
at <?php echo date('Y-m-d h:i:s a', $summary['time']); ?>
|
||||
by <?php echo $summary['ip']; ?>
|
||||
}
|
||||
echo ButtonGroup::widget(array(
|
||||
'buttons' => array(
|
||||
Html::a('All', array('index'), array('class' => 'btn btn-default')),
|
||||
ButtonDropdown::widget(array(
|
||||
'label' => 'Last 10',
|
||||
'options' => array('class' => 'btn-default'),
|
||||
'dropdown' => array('items' => $items),
|
||||
)),
|
||||
),
|
||||
));
|
||||
echo "\n" . $summary['tag'] . ': ' . $summary['method'] . ' ' . Html::a(Html::encode($summary['url']), $summary['url']);
|
||||
echo ' at ' . date('Y-m-d h:i:s a', $summary['time']) . ' by ' . $summary['ip'];
|
||||
?>
|
||||
</div>
|
||||
<?php echo $activePanel->getDetail(); ?>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user