diff --git a/.travis.yml b/.travis.yml
index 88a5a983b..1d8421df7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,13 @@
language: node_js
node_js:
-- '5'
+- 'node'
sudo: false
before_install: npm install -g grunt-cli
before_script: grunt build --verbose
deploy:
provider: releases
api_key:
- secure: RH6f8GbwwkXZvoxOS88NhOhEAfFHL52wQ9cadmzPTCnqNNVeC5GhAvwoNvBTobZhB+Jt0W9oVQt2WTnAomxC9cqh07fSqLBk8I8UpuhRkmL+AZPwnquDxD9Bi6yNAgwd5IQfMqP251Qlzfwe7ffL42yAsjGfJOoliZRvfQyKQho=
+ secure: PbeHwM34muUp/D+g9gbpBj/ABYtKRmPkgRpvSMl8zxFw/slFEoepA25komkh4QO1VGV5xGtUiIz8F6Rg+uhgWiid0F+GAxDjVc9NAUAeK9ONzKpo9H5f7JJrESBnEp06R6CVR/hVPN5v2UlKUJd2MoRYHKTM/GlnCY8/L+0j0bU=
file: dist/viewer.zip
on:
tags: true
diff --git a/README.md b/README.md
index 4e1417eb2..5ccfd054d 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# CMV The Configurable Map Viewer
-[](https://docs.cmv.io/) [](https://gitter.im/cmv/cmv-app?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://travis-ci.org/cmv/cmv-app) [](https://greenkeeper.io/)
+[](https://docs.cmv.io/) [](https://gitter.im/cmv/cmv-app?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://travis-ci.org/cmv/cmv-app) [](https://greenkeeper.io/)
## Introduction
[CMV](https://cmv.io/) is a community-supported open source mapping framework. CMV works with the [Esri JavaScript API](https://developers.arcgis.com/javascript/jsapi/3/), [ArcGIS Server](https://www.esri.com/software/arcgis/arcgisserver), [ArcGIS Online](https://arcgis.com/) and more.
@@ -47,7 +47,7 @@ A [resource proxy](https://github.com/Esri/resource-proxy) may be required to ac
## Documentation:
Use the [documentation](https://docs.cmv.io/) for getting started and guidance on configuring your application. The initial documentation is sparse. Please help make it better by contributing over at the [cmv documentation repo](https://github.com/cmv/cmv-docs).
-[](https://docs.cmv.io/)
+[](https://docs.cmv.io/)
## Community
We have a [gitter.im chat room](https://gitter.im/cmv/cmv-app). Come on by if you have questions. The community is very active and helpful.
diff --git a/package.json b/package.json
index a83a5b61f..6a9a15cb3 100644
--- a/package.json
+++ b/package.json
@@ -1,31 +1,31 @@
{
"name": "ConfigurableMapViewerCMV",
- "version": "2.0.0-beta.1",
+ "version": "2.0.0-beta.2",
"author": "cmv.io - https://github.com/cmv/",
"license": "MIT",
"year": "2017",
"homepage": "https://cmv.io/",
"repository": "https://github.com/cmv/cmv-app/",
"dependencies": {
- "babel-eslint": "~7.1.1",
+ "babel-eslint": "~7.2.0",
"csslint": "1.0.x",
- "eslint": "~3.17.0",
+ "eslint": "~3.19.0",
"grunt": "1.0.x",
- "grunt-contrib-clean": "1.0.x",
+ "grunt-contrib-clean": "~1.1.0",
"grunt-contrib-compress": "~1.4.1",
"grunt-contrib-connect": "1.0.x",
"grunt-contrib-copy": "1.0.x",
"grunt-contrib-csslint": "~2.0.x",
- "grunt-contrib-cssmin": "~2.0.0",
- "grunt-contrib-uglify": "~2.2.0",
+ "grunt-contrib-cssmin": "~2.2.0",
+ "grunt-contrib-uglify": "~3.0.0",
"grunt-contrib-watch": "1.0.x",
"grunt-eslint": "19.0.x",
- "grunt-newer": "1.2.x",
+ "grunt-newer": "~1.3.0",
"grunt-open": "0.2.x",
"grunt-postcss": "0.8.x",
"body-parser": "~1.17.0",
"proxypage": "*"
},
- "engine": "node >= 4",
+ "engine": "node >= 6",
"dojoBuild": "package.js"
}
diff --git a/viewer/css/cmv-theme-overrides.css b/viewer/css/cmv-theme-overrides.css
index 55219bc4a..00401a31e 100644
--- a/viewer/css/cmv-theme-overrides.css
+++ b/viewer/css/cmv-theme-overrides.css
@@ -3,13 +3,13 @@
}
.cmv .dijitTitlePane {
- margin-bottom: 2px;
background-color: #FFF;
+ margin-bottom: 2px;
}
.cmv .dijitTitlePaneTitle {
- color: #666;
background-color: #F5F5F5;
+ color: #666;
}
.cmv .dijitTitlePaneTitleOpen {
@@ -25,13 +25,6 @@
outline: none !important;
}
-/* icons for the sidebar */
-.cmv .dijitTitlePane .dijitTitlePaneTitle .titlePaneIcon {
- margin: 0 0 0 8px;
- padding-top: 2px;
-}
-/* end custom icons */
-
/* esri popup window overrides */
.cmv .esriPopup .sizer {
@@ -41,32 +34,38 @@
.cmv .esriPopup .esriPopupWrapper {
background-color: #FFFFFF;
}
+
.cmv .esriPopup .attachmentsSection div {
font-weight: bold;
}
+
.cmv .esriPopup .contentPane table.attrTable {
- width: 100%;
border-collapse: collapse;
+ width: 100%;
}
+
.cmv .esriPopup .contentPane table.attrTable td {
padding: 2px;
}
+
.cmv .esriPopup .contentPane table.attrTable td.attrName {
- text-align: right;
- font-weight: bold;
color: #333333;
- width: 40%;
+ font-weight: bold;
padding-right: 5px;
+ text-align: right;
+ width: 40%;
}
+
.cmv .esriPopup .contentPane table.attrTable td.attrValue {
width: 60%;
}
+
.cmv .esriPopup .contentPane table.attrTable tr {
- vertical-align: top;
border-bottom: 1px solid rgb(221, 221, 221);
+ vertical-align: top;
}
.cmv .esriPopup .contentPane table.attrTable tr:nth-child(odd) {
- background-color: none;
+ background-color: transparent;
}
.cmv .esriPopup .contentPane table.attrTable tr:nth-child(even) {
background-color: rgb(238, 238, 238);
@@ -79,24 +78,23 @@
.cmv .esriPopupMobile {
z-index: 999;
}
-.cmv .esriMobileNavigationBar {
- background-color: #666666;
- background: url("../images/linen.jpg") repeat-x scroll left top transparent;
- color: #FFFFFF;
-}
+
+.cmv .esriMobileNavigationBar,
.cmv .esriPopupMobile .titlePane {
- background-color: #666666;
background: url("../images/linen.jpg") repeat-x scroll left top transparent;
+ background-color: #666666;
color: #FFFFFF;
}
+
.cmv .esriPopupMobile .pointer.bottom{
- background:url("../images/pointertop.png");
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-o-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
+
+.cmv .esriPopupMobile .pointer.bottom,
.cmv .esriPopupMobile .pointer.top {
background:url("../images/pointertop.png");
}
@@ -117,11 +115,12 @@
background-repeat: repeat-x;
border: 1px solid #BBB;
border-bottom: 1px solid #A8A8A8;
- padding: 0px 12px;
color: #000;
letter-spacing: 0;
+ padding: 0 12px;
text-transform: none;
}
+
.cmv .simpleDirections .esriStopsGetDirections:before {
content: '\f277';
font-family: 'FontAwesome';
@@ -156,9 +155,9 @@
background-image: -ms-linear-gradient(bottom, #fff 0%, #e6e6e6 100%);
background-image: linear-gradient(bottom, #fff 0%, #e6e6e6 100%);
background-repeat: repeat-x;
- box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
- border-top-color: #444;
border-color: #666;
+ border-top-color: #444;
+ box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
-webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
}
@@ -185,11 +184,11 @@
}
.flat .dijitTabContainerTop-tabs .dijitTabChecked:before {
- height: 3px;
background-color: #666;
- top: -1px;
+ height: 3px;
left: -1px;
right: -1px;
+ top: -1px;
}
.flat .dijitTitlePaneTitle {
@@ -209,20 +208,56 @@
border-top: none;
}
+.flat .dijitButton .dijitButtonNode .dijitIcon.fa,
+.flat .dijitDropDownButton .dijitButtonNode .dijitIcon.fa,
+.flat .dijitComboButton .dijitButtonNode .dijitIcon.fa {
+ margin-top: 4px;
+}
+
+.flat .dijitButton .dijitButtonNode,
+.flat .dijitDropDownButton .dijitButtonNode,
+.flat .dijitComboButton .dijitButtonNode,
+.flat .dijitToggleButton .dijitButtonNode,
+.flat .dijitComboBox .dijitButtonNode,
+.flat .dijitSpinnerButtonContainer.dijitButtonNode,
+.flat .dijitSelect .dijitButtonNode {
+ background-color: #E6E6E6;
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #e6e6e6));
+ background-image: -webkit-linear-gradient(top, #fff 0%, #e6e6e6 100%);
+ background-image: -moz-linear-gradient(top, #fff 0%, #e6e6e6 100%);
+ background-image: -o-linear-gradient(top, #fff 0%, #e6e6e6 100%);
+ background-image: -ms-linear-gradient(top, #fff 0%, #e6e6e6 100%);
+ background-image: linear-gradient(top, #fff 0%, #e6e6e6 100%);
+ background-repeat: repeat-x;
+ border-bottom-color: #A8A8A8;
+ border-color: #BBB;
+ padding: 4px 12px;
+}
+
+.flat .dijitComboBox .dijitArrowButton,
+.flat .dijitSelect .dijitArrowButton {
+ padding: 4px;
+}
+
+.flat .dijitSpinner .dijitSpinnerButtonContainer {
+ padding: 0;
+}
+
.flat .dijitButtonHover .dijitButtonNode,
.flat .dijitDropDownButtonHover .dijitButtonNode,
.flat .dijitComboButton .dijitButtonNodeHover,
.flat .dijitComboButton .dijitDownArrowButtonHover,
.flat .dijitToggleButtonHover .dijitButtonNode,
.flat .dijitDropDownButtonActive .dijitButtonNode {
- background-position: 0 -15px;
- text-decoration: none;
- transition: background-position 0.1s linear;
- -moz-transition: background-position 0.1s linear;
- -ms-transition: background-position 0.1s linear;
- -o-transition: background-position 0.1s linear;
- -webkit-transition: background-position 0.1s linear;
+ background-position: 0 -15px;
+ text-decoration: none;
+ transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -ms-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ -webkit-transition: background-position 0.1s linear;
}
+
.flat .dijitButtonActive .dijitButtonNode,
.flat .dijitComboButton .dijitButtonNodeActive,
.flat .dijitToggleButtonActive .dijitButtonNode,
@@ -235,11 +270,12 @@
background-image: -ms-linear-gradient(bottom, #fff 0%, #e6e6e6 100%);
background-image: linear-gradient(bottom, #fff 0%, #e6e6e6 100%);
background-repeat: repeat-x;
- box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
- border-top-color: #444;
border-color: #666;
+ border-top-color: #444;
-webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
+ box-shadow: inset 0 2px 4px rgba(0,0,0,0.4), 0 1px 1px rgba(0,0,0,0.2);
}
+
.flat .dijitButtonDisabled .dijitButtonNode,
.flat .dijitDropDownButtonDisabled .dijitButtonNode,
.flat .dijitComboButtonDisabled .dijitButtonNode,
@@ -247,24 +283,25 @@
.flat .dijitComboBoxDisabled .dijitButtonNode,
.flat .dijitSpinnerDisabled .dijitButtonNode,
.flat .dijitSelectDisabled .dijitButtonNode {
- background-image: none;
- box-shadow: none;
- cursor: not-allowed;
- filter: alpha(opacity=65);
- opacity: 0.65;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65);
- -webkit-box-shadow: none;
+ background-image: none;
+ -webkit-box-shadow:none;
+ box-shadow: none;
+ cursor: not-allowed;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65);
+ filter: alpha(opacity=65);
+ opacity: 0.65;
}
.flat .success .dijitButtonNode {
background: #409843;
- color: #FFF;
border-color: #39883c;
+ color: #FFF;
}
+
.flat .danger .dijitButtonNode {
background: #e32d29;
- color: #FFF;
border-color: #d4201b;
+ color: #FFF;
}
.flat .dijitTextBoxHover,
@@ -283,4 +320,4 @@
background-color: #999;
}
-/* end flat theme */
+/* end flat theme */
\ No newline at end of file
diff --git a/viewer/css/main.css b/viewer/css/main.css
index abf36af1f..29ddbce38 100644
--- a/viewer/css/main.css
+++ b/viewer/css/main.css
@@ -97,6 +97,31 @@ body, html {
overflow: hidden;
background: url("../images/noisy_grid.png") #fff;
}
+.cmv-widget {
+ position:absolute;
+ z-index:40;
+}
+.cmv-widget-mapinfo {
+ bottom: 0;
+ left: 0;
+}
+.cmv-widget-basemaps {
+ right: 20px;
+ top: 20px;
+}
+.cmv-widget-growler {
+ right: 20px;
+ top: 60px;
+ width: 250px;
+}
+.cmv-widgets-left {
+ left: 19px;
+ top: 87px;
+}
+.cmv-widget-geocoder {
+ left: 64px;
+ top: 20px;
+}
.panetop {
border-top: 1px solid #B5BCC7;
}
diff --git a/viewer/index.html b/viewer/index.html
index 6dbebc88c..687153790 100644
--- a/viewer/index.html
+++ b/viewer/index.html
@@ -11,7 +11,7 @@