<div class="row-fluid"> <div id="left-side"> <label> <i class="icon-tasks"></i> {{ _("Messages") }} </label> <div class="plugin-klipper-log" data-bind="foreach: logMessages"> <div class="log-item" data-bind="css: type"> <div data-bind="text: time" class="ts"></div> <div data-bind="html: msg" class="msg"></div> </div> </div> <button class="btn btn-mini pull-right clear-btn" data-bind="click: onClearLog" title="{{ _('Clear Log') }}"> <i class="fa fa-trash"></i> {{ _('Clear Log') }} </button> </div> <div id="right-side"> <div class="control-group"> <div class="control-group"> <div class="controls"> <label class="control-label"></label> <button class="btn btn-block btn-small" data-bind="click: onGetStatus, enable: isActive()" title="{{ _('Query Klipper for its current status') }}"> <i class="fa icon-black fa-info-circle"></i> {{ _("Get Status") }} </button> <button class="btn btn-block btn-small" data-bind="visible: $root.loginState.hasPermissionKo($root.access.permissions.PLUGIN_KLIPPER_CONFIG), click: openOctoKlipperSettings('klipper-basic')" title="{{ _('Open the OctoKlipper Settings') }}"> {{ _("Open OctoKlipper Settings") }} </button> <button class="btn btn-block btn-small" data-bind="visible: $root.loginState.hasPermissionKo($root.access.permissions.PLUGIN_KLIPPER_CONFIG), click: showEditorDialog" title="{{ _('Show the Editor') }}"> <i class="fa icon-black fa-file-code-o"></i> {{ _("Show Editor") }} </button> </div> </div> <div class="control-group"> <div class="controls"> <label class="control-label small"><i class="icon-refresh"></i> {{ _("Restart") }}</label> <button class="btn btn-block btn-small" data-bind="click: onRestartHost, enable: isActive()" title="{{ _('This will cause the host software to reload its config and perform an internal reset') }}"> {{ _("Host") }} </button> <button class="btn btn-block btn-small" data-bind="click: onRestartFirmware, enable: isActive()" title="{{ _('Similar to a host restart, but also clears any error state from the micro-controller') }}"> {{ _("Firmware") }} </button> </div> </div> <div class="control-group"> <div class="controls"> <label class="control-label"><i class="icon-wrench"></i> {{ _("Tools") }}</label> <button class="btn btn-block btn-small" data-bind="click: showLevelingDialog, enable: isActive()" title="{{ _('Assists in manually leveling your printbed by moving the head to a configurable set of positions in sequence.') }}"> {{ _("Assisted Bed Leveling") }} </button> <button class="btn btn-block btn-small" data-bind="click: showPidTuningDialog, enable: isActive()" title="{{ _('Determines optimal PID parameters by heat cycling the hotend/bed.') }}"> {{ _("PID Tuning") }} </button> <button class="btn btn-block btn-small" data-bind="click: showOffsetDialog, enable: isActive()" title="{{ _('Sets a offset for subsequent GCODE coordinates.') }}"> {{ _("Coordinate Offset") }} </button> <button class="btn btn-block btn-small" data-bind="click: showGraphDialog" title="{{ _('Assists in debugging performance issues by analyzing the Klipper log files.') }}"> {{ _("Analyze Klipper Log") }} </button> </div> </div> <div class="controls" data-bind="visible: $root.loginState.hasPermissionKo($root.access.permissions.PLUGIN_KLIPPER_MACRO)"> <label class="control-label"><i class="icon-list-alt"></i> {{ _("Macros") }}</label> <div data-bind="foreach: settings.settings.plugins.klipper.macros"> <!-- ko if: tab --> <button class="btn btn-block btn-small" data-bind="text: name, click: $parent.executeMacro, enable: $parent.isActive()"> </button> <!-- /ko --> </div> </div> </div> </div> </div>