[explore-v2] Fix edit datasource link for druid datasources (#1982)

* only add imgSrc key if choices contain an imgSrc

* handle table and druid edit links for datasource drop down

* fix linting
diff --git a/superset/assets/javascripts/explorev2/components/SelectField.jsx b/superset/assets/javascripts/explorev2/components/SelectField.jsx
index dded102..bbf8124 100644
--- a/superset/assets/javascripts/explorev2/components/SelectField.jsx
+++ b/superset/assets/javascripts/explorev2/components/SelectField.jsx
@@ -43,15 +43,13 @@
   }
   getOptions() {
     const options = this.props.choices.map((c) => {
-      let label = c[0];
-      if (c.length > 1) {
-        label = c[1];
-      }
-      return {
+      const label = c.length > 1 ? c[1] : c[0];
+      const newOptions = {
         value: c[0],
         label,
-        imgSrc: c[2],
       };
+      if (c[2]) newOptions.imgSrc = c[2];
+      return newOptions;
     });
     if (this.props.freeForm) {
       // For FreeFormSelect, insert value into options if not exist
diff --git a/superset/assets/javascripts/explorev2/stores/fields.js b/superset/assets/javascripts/explorev2/stores/fields.js
index b447a98..621f610 100644
--- a/superset/assets/javascripts/explorev2/stores/fields.js
+++ b/superset/assets/javascripts/explorev2/stores/fields.js
@@ -26,15 +26,20 @@
   ['%H:%M:%S', '%H:%M:%S | 01:32:10'],
 ];
 
+const MAP_DATASOURCE_TYPE_TO_EDIT_URL = {
+  table: '/tablemodelview/edit',
+  druid: '/druiddatasourcemodelview/edit',
+};
+
 export const fields = {
   datasource: {
     type: 'SelectField',
     label: 'Datasource',
     clearable: false,
     default: null,
-    editUrl: '/tablemodelview/edit',
     mapStateToProps: (state) => ({
       choices: state.datasources || [],
+      editUrl: MAP_DATASOURCE_TYPE_TO_EDIT_URL[state.datasource_type],
     }),
     description: '',
   },