');
$this->RenderProperties($oPage, $aExtraParams);
$this->RenderDashletsSelection($oPage);
$this->RenderDashletsProperties($oPage, $aExtraParams);
@@ -1261,7 +1262,24 @@ $('#dashboard_editor').dialog({
modal: true,
title: '$sDialogTitle',
buttons: [
- { text: "$sOkButtonLabel", click: function() {
+ { text: "$sCancelButtonLabel",
+ class: "ibo-is-alternative",
+ click: function() {
+ var oDashboard = $('.itop-dashboard').data('itopRuntimedashboard');
+ if (oDashboard.is_modified())
+ {
+ if (!confirm('$sCancelConfirmationMessage'))
+ {
+ return;
+ }
+ }
+ window.bLeavingOnUserAction = true;
+ $(this).dialog( "close" );
+ $(this).remove();
+ } },
+ { text: "$sOkButtonLabel",
+ class: "ibo-is-primary",
+ click: function() {
var oDashboard = $('.itop-dashboard').data('itopRuntimedashboard');
if (oDashboard.is_dirty())
{
@@ -1277,19 +1295,6 @@ $('#dashboard_editor').dialog({
window.bLeavingOnUserAction = true;
oDashboard.save($(this));
} },
- { text: "$sCancelButtonLabel", click: function() {
- var oDashboard = $('.itop-dashboard').data('itopRuntimedashboard');
- if (oDashboard.is_modified())
- {
- if (!confirm('$sCancelConfirmationMessage'))
- {
- return;
- }
- }
- window.bLeavingOnUserAction = true;
- $(this).dialog( "close" );
- $(this).remove();
- } },
],
close: function() { $(this).remove(); }
});
@@ -1307,20 +1312,16 @@ $('#dashboard_editor .ui-layout-center').runtimedashboard({
new_dashlet_parameters: {operation: 'new_dashlet'}
});
-dashboard_prop_size = GetUserPreference('dashboard_prop_size', 350);
-$('#dashboard_editor').layout({
- east: {
- minSize: 200,
- size: dashboard_prop_size,
- togglerLength_open: 0,
- togglerLength_closed: 0,
- onresize_end: function(name, elt, state, options, layout)
- {
- if (state.isSliding == false)
- {
- SetUserPreference('dashboard_prop_size', state.size, true);
- }
- },
+var dashboard_prop_size = GetUserPreference('dashboard_prop_size', 400);
+$('#dashboard_editor > .itop-dashboard').width($('#dashboard_editor').width() - dashboard_prop_size);
+
+// We check when we finish click on the pane with the resize slider
+// if the pane size changed (% 5px), if it's the case we save the value in userpref
+$('#dashboard_editor > .itop-dashboard').on('mouseup',function (){
+ var iWidthDiff = $(this).width() - ($('#dashboard_editor').width() - dashboard_prop_size);
+ if( Math.abs(iWidthDiff) > 5){
+ dashboard_prop_size = iWidthDiff;
+ SetUserPreference('dashboard_prop_size', $('#dashboard_editor').width() - $(this).width(), true);
}
});
diff --git a/application/dashlet.class.inc.php b/application/dashlet.class.inc.php
index 19826ff97..89f9adfad 100644
--- a/application/dashlet.class.inc.php
+++ b/application/dashlet.class.inc.php
@@ -872,7 +872,7 @@ class DashletPlainText extends Dashlet
{
return array(
'label' => Dict::S('UI:DashletPlainText:Label'),
- 'icon' => 'images/dashlet-text.png',
+ 'icon' => 'images/dashlets/icons8-text-box-48.png',
'description' => Dict::S('UI:DashletPlainText:Description'),
);
}
@@ -981,7 +981,7 @@ class DashletObjectList extends Dashlet
{
return array(
'label' => Dict::S('UI:DashletObjectList:Label'),
- 'icon' => 'images/dashlet-list.png',
+ 'icon' => 'images/dashlets/icons8-list-48.png',
'description' => Dict::S('UI:DashletObjectList:Description'),
);
}
@@ -1581,7 +1581,7 @@ abstract class DashletGroupBy extends Dashlet
// Note: no need to translate, should never be visible to the end-user!
return array(
'label' => 'Objects grouped by...',
- 'icon' => 'images/dashlet-object-grouped.png',
+ 'icon' => 'images/dashlets/icons8-transaction-list-48.png',
'description' => 'Grouped objects dashlet (abstract)',
);
}
@@ -1645,7 +1645,7 @@ class DashletGroupByPie extends DashletGroupBy
{
return array(
'label' => Dict::S('UI:DashletGroupByPie:Label'),
- 'icon' => 'images/dashlet-pie-chart.png',
+ 'icon' => 'images/dashlets/icons8-pie-chart-48.png',
'description' => Dict::S('UI:DashletGroupByPie:Description'),
);
}
@@ -1720,7 +1720,7 @@ class DashletGroupByBars extends DashletGroupBy
{
return array(
'label' => Dict::S('UI:DashletGroupByBars:Label'),
- 'icon' => 'images/dashlet-bar-chart.png',
+ 'icon' => 'images/dashlets/icons8-bar-chart-48.png',
'description' => Dict::S('UI:DashletGroupByBars:Description'),
);
}
@@ -1821,7 +1821,7 @@ class DashletGroupByTable extends DashletGroupBy
return array(
'label' => Dict::S('UI:DashletGroupByTable:Label'),
'description' => Dict::S('UI:DashletGroupByTable:Description'),
- 'icon' => 'images/dashlet-groupby-table.png',
+ 'icon' => 'images/dashlets/icons8-transaction-list-48.png',
);
}
@@ -1950,7 +1950,7 @@ class DashletHeaderStatic extends Dashlet
{
return array(
'label' => Dict::S('UI:DashletHeaderStatic:Label'),
- 'icon' => 'images/dashlet-header.png',
+ 'icon' => 'images/dashlets/icons8-header-48.png',
'description' => Dict::S('UI:DashletHeaderStatic:Description'),
);
}
@@ -2256,7 +2256,7 @@ class DashletHeaderDynamic extends Dashlet
{
return array(
'label' => Dict::S('UI:DashletHeaderDynamic:Label'),
- 'icon' => 'images/dashlet-header-stats.png',
+ 'icon' => 'images/dashlets/icons8-header-altered-48.png',
'description' => Dict::S('UI:DashletHeaderDynamic:Description'),
);
}
@@ -2368,7 +2368,7 @@ class DashletBadge extends Dashlet
{
return array(
'label' => Dict::S('UI:DashletBadge:Label'),
- 'icon' => 'images/dashlet-badge.png',
+ 'icon' => 'images/dashlets/icons8-badge-48.png',
'description' => Dict::S('UI:DashletBadge:Description'),
);
}
diff --git a/application/forms.class.inc.php b/application/forms.class.inc.php
index eadd1661b..4a6d2dc7e 100644
--- a/application/forms.class.inc.php
+++ b/application/forms.class.inc.php
@@ -107,7 +107,7 @@ class DesignerForm
$aRow = $oField->Render($oP, $sFormId);
if ($oField->IsVisible())
{
- $sValidation = '
'.$this->GetValidationArea($oField->GetFieldId()).' ';
+ $sValidation = '
'.$this->GetValidationArea($oField->GetFieldId()).' ';
$sField = $aRow['value'].$sValidation;
$aDetails[] = array('label' => $aRow['label'], 'value' => $sField);
}
@@ -230,18 +230,18 @@ class DesignerForm
if ($oField->IsVisible())
{
$sFieldId = $this->GetFieldId($oField->GetCode());
- $sValidation = $this->GetValidationArea($sFieldId, '
');
- $sValidationFields = '
'.$sValidation.' '.$this->EndRow();
+ $sValidation = $this->GetValidationArea($sFieldId, '
');
+ $sValidationFields = '
'.$sValidation.' '.$this->EndRow();
$sPath = $this->GetHierarchyPath().'/'.$oField->GetCode();
if (is_null($aRow['label']))
{
- $sReturn .= $this->StartRow($sFieldId).'
'.$aRow['value'];
+ $sReturn .= $this->StartRow($sFieldId).' '.$aRow['value'];
}
else
{
- $sReturn .= $this->StartRow($sFieldId).' '.$aRow['label'].' '.$aRow['value'];
+ $sReturn .= $this->StartRow($sFieldId).' '.$aRow['label'].' '.$aRow['value'];
}
if (!($oField instanceof DesignerFormSelectorField) && !($oField instanceof DesignerMultipleSubFormField))
{
@@ -266,6 +266,7 @@ class DesignerForm
$this->AddReadyScript(
<< $sContent";
+ return "$sContent ";
}
public function GetAsyncActionClass()
{
@@ -716,7 +717,7 @@ class DesignerFormField
$this->bMandatory = false;
$this->bReadOnly = false;
$this->bAutoApply = false;
- $this->aCSSClasses = array();
+ $this->aCSSClasses = array('ibo-input');
$this->bDisplayed = true;
$this->aWidgetExtraParams = array();
}
@@ -1055,6 +1056,12 @@ EOF
class DesignerLongTextField extends DesignerTextField
{
+ public function __construct($sCode, $sLabel = '', $defaultValue = '')
+ {
+ parent::__construct($sCode, $sLabel, $defaultValue);
+ $this->aCSSClasses[] = 'ibo-input-text-area';
+ }
+
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
{
$sId = $this->oForm->GetFieldId($this->sCode);
@@ -1178,6 +1185,7 @@ class DesignerComboField extends DesignerFormField
$this->bMultipleSelection = false;
$this->bOtherChoices = false;
$this->sNullLabel = Dict::S('UI:SelectOne');
+ $this->aCSSClasses[] = 'ibo-input-select';
$this->bAutoApply = true;
$this->bSorted = true; // Sorted by default
@@ -1315,6 +1323,7 @@ class DesignerBooleanField extends DesignerFormField
{
parent::__construct($sCode, $sLabel, $defaultValue);
$this->bAutoApply = true;
+ $this->aCSSClasses[] = 'ibo-input-checkbox';
}
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
@@ -1597,6 +1606,7 @@ class DesignerFormSelectorField extends DesignerFormField
$this->defaultRealValue = $defaultValue;
$this->aSubForms = array();
$this->bSorted = true;
+ $this->aCSSClasses[] = 'ibo-input-select';
}
public function IsSorted()
diff --git a/css/backoffice/components/_all.scss b/css/backoffice/components/_all.scss
index a010f7df1..0378b8493 100644
--- a/css/backoffice/components/_all.scss
+++ b/css/backoffice/components/_all.scss
@@ -17,6 +17,7 @@
@import "modal";
@import "dashlet/all";
@import "input/all";
+@import "prop";
@import "title";
@import "datatable";
diff --git a/css/backoffice/components/_prop.scss b/css/backoffice/components/_prop.scss
new file mode 100644
index 000000000..521fb59c4
--- /dev/null
+++ b/css/backoffice/components/_prop.scss
@@ -0,0 +1,28 @@
+$ibo-prop--apply--padding-left: 12px !default;
+$ibo-prop--cancel--padding-left: 7px !default;
+
+$ibo-prop--apply-cancel--span--height: 28px !default;
+$ibo-prop--apply-cancel--span--width: 32px !default;
+
+.ibo-prop--apply{
+ padding-left: $ibo-prop--apply--padding-left;
+ > span{
+ @extend .ibo-is-green;
+ }
+}
+.ibo-prop--cancel{
+ padding-left: $ibo-prop--cancel--padding-left;
+ > span{
+ @extend .ibo-is-red;
+ }
+}
+.ibo-prop--apply, .ibo-prop--cancel{
+ > span{
+ display: block;
+ height: $ibo-prop--apply-cancel--span--height;
+ width: $ibo-prop--apply-cancel--span--width;
+ text-align: center;
+ @extend .ibo-button;
+ @extend .ibo-is-alternative;
+ }
+}
diff --git a/css/backoffice/components/input/_all.scss b/css/backoffice/components/input/_all.scss
index 58001e1f0..615c9ecdf 100644
--- a/css/backoffice/components/input/_all.scss
+++ b/css/backoffice/components/input/_all.scss
@@ -5,8 +5,11 @@
@import "input";
@import "input-select";
+@import "input-checkbox";
@import "input-date";
@import "input-datetime";
@import "input-duration";
+@import "input-select-icon";
@import "input-string";
@import "input-tagset";
+@import "input-textarea";
diff --git a/css/backoffice/components/input/_input-checkbox.scss b/css/backoffice/components/input/_input-checkbox.scss
new file mode 100644
index 000000000..c03476a30
--- /dev/null
+++ b/css/backoffice/components/input/_input-checkbox.scss
@@ -0,0 +1,7 @@
+$ibo-input-checkbox--height: 16px !default;
+$ibo-input-checkbox--width: auto !default;
+
+.ibo-input-checkbox{
+ height: $ibo-input-checkbox--height;
+ width: $ibo-input-checkbox--width;
+}
\ No newline at end of file
diff --git a/css/backoffice/components/input/_input-select-icon.scss b/css/backoffice/components/input/_input-select-icon.scss
new file mode 100644
index 000000000..0725869c8
--- /dev/null
+++ b/css/backoffice/components/input/_input-select-icon.scss
@@ -0,0 +1,44 @@
+$ibo-input-select-icon--icon--padding-right: 4px !default;
+
+$ibo-input-select-icon--menu--z-index: 21 !default;
+$ibo-input-select-icon--menu--max-height: 300px !default;
+
+$ibo-input-select-icon--menu--icon--max-height: 80px !default;
+$ibo-input-select-icon--menu--icon--max-width: 45px !default;
+$ibo-input-select-icon--menu--icon--margin-right: 10px !default;
+
+.ibo-input-select-icon{
+ >img{
+ max-height: 100%;
+ max-width: 100%;
+ padding-right: $ibo-input-select-icon--icon--padding-right;
+ }
+}
+
+.ibo-input-select-icon--menu {
+ position: absolute;
+ z-index: $ibo-input-select-icon--menu--z-index;
+ max-height: $ibo-input-select-icon--menu--max-height;
+ overflow-x: hidden;
+ overflow-y: auto;
+ @extend .ibo-popover-menu;
+ @extend .ibo-is-opened;
+ flex-wrap: nowrap;
+}
+
+.ibo-input-select-icon--menu--item {
+ @extend .ibo-popover-menu--item;
+
+ > * {
+ width: 100%;
+ white-space: nowrap;
+ overflow-x: hidden;
+ text-overflow: ellipsis;
+
+ > .ibo-input-select-icon--menu--icon {
+ max-width: $ibo-input-select-icon--menu--icon--max-height;
+ max-height: $ibo-input-select-icon--menu--icon--max-width;
+ margin-right: $ibo-input-select-icon--menu--icon--margin-right;
+ }
+ }
+}
diff --git a/css/backoffice/components/input/_input-textarea.scss b/css/backoffice/components/input/_input-textarea.scss
new file mode 100644
index 000000000..b50d4d30a
--- /dev/null
+++ b/css/backoffice/components/input/_input-textarea.scss
@@ -0,0 +1,5 @@
+$ibo-input-text-area--min-height: 4rem !default;
+
+.ibo-input-text-area{
+ min-height: $ibo-input-text-area--min-height;
+}
\ No newline at end of file
diff --git a/css/backoffice/layout/_all.scss b/css/backoffice/layout/_all.scss
index ccd51e0a8..bf935712e 100644
--- a/css/backoffice/layout/_all.scss
+++ b/css/backoffice/layout/_all.scss
@@ -23,7 +23,7 @@
@import "tab-container/tab";
@import "multi-column/multi-column";
@import "multi-column/column";
-@import "dashboard/dashboard";
+@import "dashboard/all";
@import "wizard-container/wizard-container";
@import "object-details";
@import "activity-panel/activity-panel";
diff --git a/css/backoffice/layout/dashboard/_all.scss b/css/backoffice/layout/dashboard/_all.scss
new file mode 100644
index 000000000..763057787
--- /dev/null
+++ b/css/backoffice/layout/dashboard/_all.scss
@@ -0,0 +1,20 @@
+/*!
+ * Copyright (C) 2013-2020 Combodo SARL
+ *
+ * This file is part of iTop.
+ *
+ * iTop is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * iTop is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ */
+
+@import "dashboard";
+@import "dashboard-editor";
\ No newline at end of file
diff --git a/css/backoffice/layout/dashboard/_dashboard-editor.scss b/css/backoffice/layout/dashboard/_dashboard-editor.scss
new file mode 100644
index 000000000..d3767d8ec
--- /dev/null
+++ b/css/backoffice/layout/dashboard/_dashboard-editor.scss
@@ -0,0 +1,104 @@
+$ibo-dashboard-editor--pane-padding: 16px 30px 16px 15px !default;
+
+$ibo-dashlet--icon--height: 34px !default;
+$ibo-dashlet--icon--width: $ibo-dashlet--icon--height !default;
+$ibo-dashlet--icon--margin: 2px 5px !default;
+
+$ibo-dashboard--properties--title--padding-bottom: 2rem !default;
+
+$ibo-dashboard--properties--layout-list--padding-bottom: 12px !default;
+
+$ibo-dashboard--properties--layout-list--button--margin: 0 15px 0 5px !default;
+
+$ibo-dashboard-editor--padding: 0 !default;
+
+$ibo-dashboard-editor--dashboard--border-right: solid 1px $ibo-color-grey-200 !default;
+$ibo-dashboard-editor--dashboard--padding: 16px 15px 16px 30px !default;
+
+$ibo-dashlet--delete--top: 7px !default;
+$ibo-dashlet--delete--right: 9px !default;
+$ibo-dashlet--delete--padding: 2px 6px !default;
+$ibo-dashlet--delete--z-index: 21 !default;
+
+
+.ibo-dashboard-editor--pane{
+ flex-grow: 1;
+ padding: $ibo-dashboard-editor--pane-padding;
+ overflow: auto;
+}
+
+.ibo-dashlet--icon{
+ display: inline-block;
+ height: $ibo-dashlet--icon--height;
+ width: $ibo-dashlet--icon--width;
+ margin: $ibo-dashlet--icon--margin;
+ cursor: grab;
+ &:active{
+ cursor: move;
+ }
+}
+.ibo-dashboard--properties,
+.ibo-dashboard--available-dashlets,
+.ibo-dashlet--properties{
+ display: flex;
+ flex-direction: column;
+ padding-bottom: 20px;
+ table{
+ width: 100%;
+ text-align: left;
+ td{
+ margin-bottom: 14px;
+ .ibo-field{
+ @extend %ibo-font-ral-med-100;
+ }
+ }
+ }
+}
+.ibo-dashboard--properties--title{
+ padding-bottom: $ibo-dashboard--properties--title--padding-bottom;
+ @extend %ibo-font-ral-med-250;
+}
+.ibo-dashboard--properties--subtitle,
+.ibo-dashboard--available-dashlet--title,
+.ibo-dashlet--properties--title{
+ @extend .ibo-fieldset-legend;
+ @extend %ibo-font-ral-med-150;
+}
+
+.ibo-dashboard--properties--layout-list {
+ display: flex;
+ justify-content: center;
+ padding-bottom: $ibo-dashboard--properties--layout-list--padding-bottom;
+ > .ui-button {
+ display: inline-block;
+ height: auto;
+ margin: $ibo-dashboard--properties--layout-list--button--margin;
+ }
+}
+.ibo-dashboard--available-dashlets--list{
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+}
+
+#dashboard_editor{
+ display: flex;
+ flex-direction: row;
+ padding: $ibo-dashboard-editor--padding;
+ > .itop-dashboard{
+ resize: horizontal;
+ overflow: scroll;
+ border-right: $ibo-dashboard-editor--dashboard--border-right;
+ padding: $ibo-dashboard-editor--dashboard--padding;
+ }
+}
+.ibo-dashlet--delete{
+ position: absolute;
+ top: $ibo-dashlet--delete--top;
+ right: $ibo-dashlet--delete--right;
+ padding: $ibo-dashlet--delete--padding;
+ z-index: $ibo-dashlet--delete--z-index;
+ @extend .ibo-button;
+ @extend .ibo-is-alternative;
+ @extend .ibo-is-danger;
+}
\ No newline at end of file
diff --git a/css/backoffice/vendors/_jqueryui.scss b/css/backoffice/vendors/_jqueryui.scss
index 8cbea762b..5f4735192 100644
--- a/css/backoffice/vendors/_jqueryui.scss
+++ b/css/backoffice/vendors/_jqueryui.scss
@@ -54,7 +54,7 @@ $ibo-input-date--ui-datepicker-header--border-radius: 4px !default;
float: left;
margin: .1em 0;
white-space: nowrap;
- width: 90%;
+ width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
@@ -252,6 +252,12 @@ $ibo-input-date--ui-datepicker-header--border-radius: 4px !default;
top: -5px;
}
+// Layout
+
+.ui-layout-pane {
+ overflow: auto;
+}
+
// Date picker
.ui-datepicker{
@@ -471,4 +477,42 @@ $ibo-input-date--ui-datepicker-header--border-radius: 4px !default;
border-left-width: 1px;
}
}
+}
+
+// Helper
+
+.ui-helper-hidden {
+ display: none;
+}
+.ui-helper-reset {
+ margin: 0;
+ padding: 0;
+ // border: 0;
+ outline: 0;
+ line-height: 1.3;
+ text-decoration: none;
+ font-size: 100%;
+ list-style: none;
+}
+.ui-helper-clearfix {
+ &:before {
+ content: "";
+ display: table;
+ border-collapse: collapse;
+ }
+ &:after {
+ content: "";
+ display: table;
+ border-collapse: collapse;
+ clear: both;
+ }
+}
+.ui-helper-zfix {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ opacity: 0;
+ filter: Alpha(Opacity=0);
}
\ No newline at end of file
diff --git a/images/dashlets/icons8-badge-48.png b/images/dashlets/icons8-badge-48.png
new file mode 100644
index 000000000..820a781ba
Binary files /dev/null and b/images/dashlets/icons8-badge-48.png differ
diff --git a/images/dashlets/icons8-bar-chart-48.png b/images/dashlets/icons8-bar-chart-48.png
new file mode 100644
index 000000000..89812df5c
Binary files /dev/null and b/images/dashlets/icons8-bar-chart-48.png differ
diff --git a/images/dashlets/icons8-header-1-48.png b/images/dashlets/icons8-header-1-48.png
new file mode 100644
index 000000000..bb4cfce8f
Binary files /dev/null and b/images/dashlets/icons8-header-1-48.png differ
diff --git a/images/dashlets/icons8-header-48.png b/images/dashlets/icons8-header-48.png
new file mode 100644
index 000000000..e46cbea9c
Binary files /dev/null and b/images/dashlets/icons8-header-48.png differ
diff --git a/images/dashlets/icons8-header-altered-48.png b/images/dashlets/icons8-header-altered-48.png
new file mode 100644
index 000000000..f67b9c374
Binary files /dev/null and b/images/dashlets/icons8-header-altered-48.png differ
diff --git a/images/dashlets/icons8-list-48.png b/images/dashlets/icons8-list-48.png
new file mode 100644
index 000000000..d2b808b34
Binary files /dev/null and b/images/dashlets/icons8-list-48.png differ
diff --git a/images/dashlets/icons8-pie-chart-48.png b/images/dashlets/icons8-pie-chart-48.png
new file mode 100644
index 000000000..47d4bdff0
Binary files /dev/null and b/images/dashlets/icons8-pie-chart-48.png differ
diff --git a/images/dashlets/icons8-text-box-48.png b/images/dashlets/icons8-text-box-48.png
new file mode 100644
index 000000000..2e3f3a5c1
Binary files /dev/null and b/images/dashlets/icons8-text-box-48.png differ
diff --git a/images/dashlets/icons8-transaction-list-48.png b/images/dashlets/icons8-transaction-list-48.png
new file mode 100644
index 000000000..3496ec0c8
Binary files /dev/null and b/images/dashlets/icons8-transaction-list-48.png differ
diff --git a/js/dashlet.js b/js/dashlet.js
index 46d1b9e25..511e87ade 100644
--- a/js/dashlet.js
+++ b/js/dashlet.js
@@ -30,7 +30,7 @@ $(function()
{
var me = this;
- this.closeBox = $('
');
+ this.closeBox = $('
').append(' ');
this.closeBox
.click(function() { me._remove_dashlet(); })
.prependTo(this.element);
diff --git a/js/icon_select.js b/js/icon_select.js
index e06a47444..51bc3c4f6 100644
--- a/js/icon_select.js
+++ b/js/icon_select.js
@@ -44,7 +44,7 @@ $(function()
}
this.oImg = $(' ');
this.oLabel = $(''+sLabel+' ');
- this.oButton = $('
');
+ this.oButton = $('
');
this.oButton.prepend(this.oLabel).prepend(this.oImg);
this.oButton.click(function(event, ui) {
//me._cleanAllMenus();
@@ -105,10 +105,10 @@ $(function()
me._cleanAllMenus();
});
var oMenu =
- $('