diff --git a/web/client/components/TOC/TOC.jsx b/web/client/components/TOC/TOC.jsx
index c404dc1df2..70d6a6c00e 100644
--- a/web/client/components/TOC/TOC.jsx
+++ b/web/client/components/TOC/TOC.jsx
@@ -8,8 +8,8 @@
var React = require('react');
var Sortable = require('react-sortable-items');
-
-var TOC = React.createClass({
+require('./css/toc.css');
+const TOC = React.createClass({
propTypes: {
filter: React.PropTypes.func,
nodes: React.PropTypes.array,
diff --git a/web/client/components/TOC/css/toc.css b/web/client/components/TOC/css/toc.css
new file mode 100644
index 0000000000..952847a259
--- /dev/null
+++ b/web/client/components/TOC/css/toc.css
@@ -0,0 +1,31 @@
+.Sortable {
+ position: relative;
+ display: block;
+ overflow: visible;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.SortableItem {
+ cursor: -webkit-grab; cursor:-moz-grab; cursor: grab;
+}
+
+.SortableItem.is-dragging {
+ cursor: move;
+ position: absolute;
+ z-index: 1688;
+ background-color: rgba(218, 218, 218, 0.8);;
+ border: 1px dashed #8E8E8E;
+ border-radius: 5px;
+ box-shadow: 4px 4px 9px rgba(0, 0, 0, 0.28);
+}
+
+.SortableItem.is-placeholder {
+ border: 1px dashed #8E8E8E;
+ border-radius: 5px;
+}
+
+.SortableItem.is-undraggable {
+ cursor: not-allowed;
+}
diff --git a/web/client/components/TOC/fragments/SettingsModal.jsx b/web/client/components/TOC/fragments/SettingsModal.jsx
index e74da2f912..9a64b01bad 100644
--- a/web/client/components/TOC/fragments/SettingsModal.jsx
+++ b/web/client/components/TOC/fragments/SettingsModal.jsx
@@ -9,7 +9,7 @@
const React = require('react');
const {Modal, Button, Glyphicon, Tabs, Tab} = require('react-bootstrap');
-require("./settingsModal.css");
+require("./css/settingsModal.css");
const Dialog = require('../../misc/Dialog');
const ConfirmButton = require('../../buttons/ConfirmButton');
diff --git a/web/client/components/TOC/fragments/css/groupchildren.css b/web/client/components/TOC/fragments/css/groupchildren.css
index 2c27c492ff..ce9db5d71f 100644
--- a/web/client/components/TOC/fragments/css/groupchildren.css
+++ b/web/client/components/TOC/fragments/css/groupchildren.css
@@ -1,3 +1,35 @@
.toc-group-children {
margin-left: 15px;
}
+
+.Sortable {
+ position: relative;
+ display: block;
+ overflow: visible;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.SortableItem {
+ cursor: -webkit-grab; cursor:-moz-grab; cursor: grab;
+}
+
+.SortableItem.is-dragging {
+ cursor: move;
+ position: absolute;
+ z-index: 1688;
+ background-color: rgba(218, 218, 218, 0.8);;
+ border: 1px dashed #8E8E8E;
+ border-radius: 5px;
+ box-shadow: 4px 4px 9px rgba(0, 0, 0, 0.28);
+}
+
+.SortableItem.is-placeholder {
+ border: 1px dashed #8E8E8E;
+ border-radius: 5px;
+}
+
+.SortableItem.is-undraggable {
+ cursor: not-allowed;
+}
diff --git a/web/client/components/TOC/fragments/settingsModal.css b/web/client/components/TOC/fragments/css/settingsModal.css
similarity index 77%
rename from web/client/components/TOC/fragments/settingsModal.css
rename to web/client/components/TOC/fragments/css/settingsModal.css
index 124f178da4..a9eba0fdbd 100644
--- a/web/client/components/TOC/fragments/settingsModal.css
+++ b/web/client/components/TOC/fragments/css/settingsModal.css
@@ -274,3 +274,71 @@
.noUi-marker-vertical.noUi-marker-large {
width: 15px;
}
+
+
+
+#mapstore-layer-settings {
+ min-width: 400px;
+}
+
+#mapstore-layer-settings .noUi-background {
+ background:#CCC;
+}
+
+#mapstore-layer-settings .noUi-horizontal {
+ height: 2px;
+ width: 260px;
+ margin:auto;
+}
+#mapstore-layer-settings .noUi-target {
+ position: relative;
+ direction: ltr;
+}
+
+#mapstore-layer-settings .noUi-base {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ z-index: 1;
+}
+
+#mapstore-layer-settings .noUi-horizontal .noUi-handle {
+ width: 23px;
+ height: 23px;
+ top: -10px;
+}
+
+#mapstore-layer-settings .noUi-handle {
+ background: #078AA3;
+ cursor: default;
+ border-radius:50px;
+}
+
+#mapstore-layer-settings .noUi-handle {
+ position: relative;
+ z-index: 1;
+}
+#mapstore-layer-settings .noUi-target, .noUi-target * {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -ms-touch-action: none;
+ touch-action: none;
+ -ms-user-select: none;
+ -moz-user-select: none;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+#mapstore-layer-settings .noUi-target {
+ position: relative;
+ direction: ltr;
+}
+
+#mapstore-layer-settings .noUi-target {
+ width: 94%;
+ margin-bottom: 10px;
+}
+
+#mapstore-layer-settings .noUi-handle:before, #mapstore-layer-settings .noUi-handle:after {
+ background: none;
+}
diff --git a/web/client/components/buttons/InfoButton.jsx b/web/client/components/buttons/InfoButton.jsx
index e7228e4714..f8526585b4 100644
--- a/web/client/components/buttons/InfoButton.jsx
+++ b/web/client/components/buttons/InfoButton.jsx
@@ -12,7 +12,7 @@ var Button = BootstrapReact.Button;
var Glyphicon = BootstrapReact.Glyphicon;
var ImageButton = require('./ImageButton');
const Dialog = require('../misc/Dialog');
-
+require('./css/infoButton.css');
const assign = require('object-assign');
/**
* A button to show a simple information window.
@@ -29,7 +29,7 @@ const assign = require('object-assign');
*
* Note: the button will not be never empty, it will show at least the text (default or custom)
*/
-var InfoButton = React.createClass({
+const InfoButton = React.createClass({
propTypes: {
id: React.PropTypes.string,
image: React.PropTypes.string,
diff --git a/web/client/components/buttons/css/infoButton.css b/web/client/components/buttons/css/infoButton.css
new file mode 100644
index 0000000000..039ab257fa
--- /dev/null
+++ b/web/client/components/buttons/css/infoButton.css
@@ -0,0 +1,6 @@
+#mapstore-about {
+ position: fixed;
+ top: 0;
+ left: calc(50% - 500px);
+ width: 500px;
+}
diff --git a/web/client/components/data/identify/Identify.jsx b/web/client/components/data/identify/Identify.jsx
index 210311f539..e5faae0e43 100644
--- a/web/client/components/data/identify/Identify.jsx
+++ b/web/client/components/data/identify/Identify.jsx
@@ -9,6 +9,8 @@
const React = require('react');
const {Panel, Glyphicon} = require('react-bootstrap');
+require('./css/identify.css');
+
const Draggable = require('react-draggable');
const MapInfoUtils = require('../../../utils/MapInfoUtils');
diff --git a/web/client/components/data/identify/SwipeHeader.jsx b/web/client/components/data/identify/SwipeHeader.jsx
index dbd0a50b17..90275cf912 100644
--- a/web/client/components/data/identify/SwipeHeader.jsx
+++ b/web/client/components/data/identify/SwipeHeader.jsx
@@ -9,6 +9,7 @@
const React = require('react');
const {Glyphicon, Button} = require('react-bootstrap');
+require('./css/swipeHeader.css');
const SwipeHeader = React.createClass({
propTypes: {
diff --git a/web/client/components/data/identify/css/identify.css b/web/client/components/data/identify/css/identify.css
new file mode 100644
index 0000000000..de96abc89e
--- /dev/null
+++ b/web/client/components/data/identify/css/identify.css
@@ -0,0 +1,45 @@
+
+#mapstore-identify-revgeocoder {
+ min-height: 40px;
+ margin-bottom: 10px;
+ border-bottom: solid 1px #BBB;
+}
+
+
+#mapstore-getfeatureinfo {
+ max-width: 100%;
+}
+
+@media (min-width: 500px) {
+ #mapstore-getfeatureinfo {
+ min-width: 500px !important;
+ }
+}
+
+#mapstore-getfeatureinfo .swipeable-view .panel-heading {
+ background-color: white;
+ border: none;
+ height: 60px;
+ padding: 0;
+}
+
+#mapstore-getfeatureinfo .swipeable-view .panel {
+ border: none;
+}
+
+#mapstore-getfeatureinfo .modal-body .panel-body {
+ padding: 0;
+}
+
+#mapstore-getfeatureinfo .swipeable-view .panel-heading .swipe-header-left-button {
+ right: 55px;
+ top: 0;
+}
+
+#mapstore-getfeatureinfo .swipeable-view .panel-heading .swipe-header-right-button {
+ top: 0;
+}
+
+#mapstore-getfeatureinfo .swipeable-view .panel-title {
+ font-weight: bold;
+}
diff --git a/web/client/components/data/identify/css/swipeHeader.css b/web/client/components/data/identify/css/swipeHeader.css
new file mode 100644
index 0000000000..78461de21b
--- /dev/null
+++ b/web/client/components/data/identify/css/swipeHeader.css
@@ -0,0 +1,14 @@
+
+.swipe-header-left-button {
+ float: none !important;
+ right: 45px;
+ top: 4px;
+ position: absolute;
+}
+
+.swipe-header-right-button {
+ float: none !important;
+ position: absolute;
+ top: 4px;
+ right: 5px;
+}
diff --git a/web/client/components/help/help.css b/web/client/components/help/help.css
index b95a957c1f..cb3f132d47 100644
--- a/web/client/components/help/help.css
+++ b/web/client/components/help/help.css
@@ -31,3 +31,34 @@
top: 10px;
z-index: 100000
}
+
+
+.btn .badge {
+ position: absolute;
+ top: -10px;
+ left: -10px;
+}
+
+.themed .btn .badge {
+ top: -35px;
+ left: -50px;
+}
+
+.badge {
+ cursor: pointer;
+}
+
+#helpbadge-scaleBox {
+ left: 0 !important;
+ background-color: #078aa3;
+ color: #ffffff;
+}
+
+#mapstore-navbar #helpbadge-search-help {
+ position: absolute;
+ left: -10px;
+ bottom: -8px;
+ z-index: 1;
+ background-color: #078aa3;
+ color: #ffffff;
+}
diff --git a/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx b/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx
index 59ba778f9b..6a03ffa27e 100644
--- a/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx
+++ b/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx
@@ -9,7 +9,8 @@
const React = require('react');
const {Button, Col, Grid, Row, Image, Glyphicon, Table, Panel} = require('react-bootstrap');
const {DateFormat} = require('../../I18N/I18N');
-require("./style.css");
+require("./css/snapshot.css");
+
const ConfigUtils = require('../../../utils/ConfigUtils');
const shotingImg = require('./shoting.gif');
const notAvailable = require('./not-available.png');
diff --git a/web/client/components/mapcontrols/Snapshot/SnapshotQueue.jsx b/web/client/components/mapcontrols/Snapshot/SnapshotQueue.jsx
index 3b5ab00188..a1bf27cfc1 100644
--- a/web/client/components/mapcontrols/Snapshot/SnapshotQueue.jsx
+++ b/web/client/components/mapcontrols/Snapshot/SnapshotQueue.jsx
@@ -8,7 +8,7 @@
const React = require('react');
-require("./style.css");
+require("./css/snapshot.css");
let SnapshotSupport;
diff --git a/web/client/components/mapcontrols/Snapshot/style.css b/web/client/components/mapcontrols/Snapshot/css/snapshot.css
similarity index 52%
rename from web/client/components/mapcontrols/Snapshot/style.css
rename to web/client/components/mapcontrols/Snapshot/css/snapshot.css
index 99b5434848..36a4909ae9 100644
--- a/web/client/components/mapcontrols/Snapshot/style.css
+++ b/web/client/components/mapcontrols/Snapshot/css/snapshot.css
@@ -5,3 +5,9 @@
list-style:none;
padding-left:0;
}
+
+#mapstore-snapshot-panel {
+ position: absolute;
+ right: 200px;
+ min-width: 725px;
+}
diff --git a/web/client/components/mapcontrols/locate/LocateBtn.jsx b/web/client/components/mapcontrols/locate/LocateBtn.jsx
index a183402a24..c86505cc1d 100644
--- a/web/client/components/mapcontrols/locate/LocateBtn.jsx
+++ b/web/client/components/mapcontrols/locate/LocateBtn.jsx
@@ -9,11 +9,11 @@
var React = require('react');
var {Button, Glyphicon, OverlayTrigger, Tooltip} = require('react-bootstrap');
const defaultIcon = require('../../misc/spinners/InlineSpinner/img/spinner.gif');
-
+require('./css/locate.css');
let checkingGeoLocation = false;
let geoLocationAllowed = false;
-var LocateBtn = React.createClass({
+const LocateBtn = React.createClass({
propTypes: {
id: React.PropTypes.string,
btnConfig: React.PropTypes.object,
diff --git a/web/client/components/mapcontrols/locate/css/locate.css b/web/client/components/mapcontrols/locate/css/locate.css
new file mode 100644
index 0000000000..febeb133ed
--- /dev/null
+++ b/web/client/components/mapcontrols/locate/css/locate.css
@@ -0,0 +1,3 @@
+#navigationBar #locate-btn {
+ position: static;
+}
diff --git a/web/client/components/mapcontrols/mouseposition/mousePosition.css b/web/client/components/mapcontrols/mouseposition/mousePosition.css
index 6ca8d78a9f..322e6a7979 100644
--- a/web/client/components/mapcontrols/mouseposition/mousePosition.css
+++ b/web/client/components/mapcontrols/mouseposition/mousePosition.css
@@ -29,3 +29,71 @@
#mapstore-mouseposition h5 {
display: inline-block;
}
+
+
+#mapstore-mousepositionsettings .form-group {
+ margin-bottom: 0 !important;
+}
+
+#mapstore-mousepositionsettings select, #mapstore-mousepositionsettings button {
+ width: 60% !important;
+ float: right;
+ height: 35px;
+}
+
+#mapstore-mousepositionsettings label {
+ width: 100% !important;
+}
+
+
+#mapstore-mouseposition .label-info {
+ white-space: normal !important;
+ color: black !important;
+ font-size: 110%;
+ padding: 0 !important;
+}
+
+#mapstore-mouseposition {
+ bottom: 5px !important;
+ right: 264px !important;
+ top: auto !important;
+ margin: 0 !important;
+ text-shadow: none !important;
+ background-color: white !important;
+ width: 160px !important;
+ height: 46px !important;
+ padding-left: 5px;
+ padding-top: 2px;
+}
+
+#mapstore-mouseposition h5 {
+ margin-top: 5px !important;
+}
+
+.mouseposition-separator {
+ display: block;
+}
+
+#mapstore-mouseposition-mobile {
+ bottom: 25px;
+ right: 30px;
+ z-index: 10;
+ position: absolute;
+ text-shadow: -1px -1px 1px #000, 1px -1px 1px #000, -1px 1px 1px #000, 1px 1px 1px #000;
+ }
+
+#mapstore-mouseposition-mobile .label {
+ display: inline-block;
+ max-width: 280px;
+ min-width: 200px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+#mapstore-mouseposition-mobile .label-info {
+ background-color:rgba(91,192,222,0);
+ color: white;
+ font-size: 90%;
+}
diff --git a/web/client/components/misc/spinners/GlobalSpinner/GlobalSpinner.jsx b/web/client/components/misc/spinners/GlobalSpinner/GlobalSpinner.jsx
index 5179a8279e..4aff0b587a 100644
--- a/web/client/components/misc/spinners/GlobalSpinner/GlobalSpinner.jsx
+++ b/web/client/components/misc/spinners/GlobalSpinner/GlobalSpinner.jsx
@@ -7,6 +7,7 @@
*/
const React = require('react');
const Spinner = require('react-spinkit');
+require('./css/GlobalSpinner.css');
const GlobalSpinner = React.createClass({
propTypes: {
diff --git a/web/client/components/misc/spinners/GlobalSpinner/css/GlobalSpinner.css b/web/client/components/misc/spinners/GlobalSpinner/css/GlobalSpinner.css
new file mode 100644
index 0000000000..02544671b1
--- /dev/null
+++ b/web/client/components/misc/spinners/GlobalSpinner/css/GlobalSpinner.css
@@ -0,0 +1,6 @@
+#mapstore-globalspinner {
+ margin: 0 !important;
+ width: 40px !important;
+ position:static !important;
+ border-radius: 0 !important;
+}
diff --git a/web/client/components/security/css/security.css b/web/client/components/security/css/security.css
new file mode 100644
index 0000000000..b35deaec57
--- /dev/null
+++ b/web/client/components/security/css/security.css
@@ -0,0 +1,6 @@
+#mapstore-login-panel {
+ width: 300px;
+}
+#mapstore-login-panel button {
+ float: right !important;
+}
diff --git a/web/client/components/security/modals/LoginModal.jsx b/web/client/components/security/modals/LoginModal.jsx
index 841cbae86e..5300deb6d7 100644
--- a/web/client/components/security/modals/LoginModal.jsx
+++ b/web/client/components/security/modals/LoginModal.jsx
@@ -13,6 +13,7 @@ const Message = require('../../../components/I18N/Message');
const Dialog = require('../../misc/Dialog');
const LocaleUtils = require('../../../utils/LocaleUtils');
+require('../css/security.css');
const assign = require('object-assign');
/**
diff --git a/web/client/components/share/SharePanel.jsx b/web/client/components/share/SharePanel.jsx
index 39b0d8eaf4..febdb23df4 100644
--- a/web/client/components/share/SharePanel.jsx
+++ b/web/client/components/share/SharePanel.jsx
@@ -62,7 +62,7 @@ let SharePanel = React.createClass({
-