public function get_city_links($shortcode)
 {
     $defaults = array('city_list' => 'combinedActiveMLS', 'mls' => '', 'use_columns' => 0, 'number_columns' => 4, 'styles' => 1);
     $approved_mls = \IDX\Widgets\Impress_City_Links_Widget::mls_options($defaults);
     $city_list_options = \IDX\Widgets\Impress_City_Links_Widget::city_list_options($defaults);
     $output = '';
     // MLS
     $output .= "<div class=\"idx-modal-shortcode-field\" data-shortcode=\"{$shortcode}\">";
     $output .= "<label for\"mls\">MLS to use for city links</label>";
     $output .= "<select id=\"mls\" data-short-name=\"mls\">";
     $output .= $approved_mls;
     $output .= "</select>";
     $output .= "</div>";
     // City List
     $output .= "<div class=\"idx-modal-shortcode-field\" data-shortcode=\"{$shortcode}\">";
     $output .= "<label for\"city-list\">Select a city list</label>";
     $output .= "<select id=\"city-list\" data-short-name=\"city_list\">";
     $output .= $city_list_options;
     $output .= "</select>";
     $output .= "</div>";
     // Use Columns
     $output .= "<div class=\"idx-modal-shortcode-field checkbox\" data-shortcode=\"{$shortcode}\">";
     $output .= "<input type=\"checkbox\" id=\"use-columns\" data-short-name=\"use_columns\">";
     $output .= "<label for\"use-columns\">Split links into columns?</label>";
     $output .= "</div>";
     // Number of Columns
     $output .= "<div class=\"idx-modal-shortcode-field\" data-shortcode=\"{$shortcode}\">";
     $output .= "<label for\"number-columns\">Number of columns</label>";
     $output .= "<select id=\"number-columns\" data-short-name=\"number_columns\">";
     $output .= "<option value=\"2\">2</option>";
     $output .= "<option value=\"3\">3</option>";
     $output .= "<option value=\"4\" selected=\"selected\">4</option>";
     $output .= "</select>";
     $output .= "</div>";
     // Default Styles
     $output .= "<div class=\"idx-modal-shortcode-field checkbox\" data-shortcode=\"{$shortcode}\">";
     $output .= "<input type=\"checkbox\" id=\"styles\" data-short-name=\"styles\" checked>";
     $output .= "<label for\"styles\">Default Styles?</label>";
     $output .= "</div>";
     $output .= "<p>Don't have any city lists? Go create some in your <a href=\"http://middleware.idxbroker.com/mgmt/citycountyziplists.php\" target=\"_blank\">IDX dashboard.</a></p>";
     // Styles and Scripts for Preview
     $output .= "<script>(function(){";
     //empty url array so styles can be disabled and enabled as expected
     $output .= "styleSheetUrls = [];";
     $output .= "addStyleSheet(\"" . plugins_url('../assets/css/widgets/impress-city-links.css', dirname(__FILE__)) . "\", \"#styles\");";
     $output .= "return previewTabButton.addEventListener('click', function(){refreshStyles('#styles')});";
     $output .= "})();</script>";
     return $output;
 }
 public function city_links_shortcode($atts = array())
 {
     extract(shortcode_atts(array('city_list' => 'combinedActiveMLS', 'mls' => 'a000', 'use_columns' => 1, 'number_columns' => 4, 'styles' => 1), $atts));
     if (!empty($styles)) {
         wp_enqueue_style('impress-city-links', plugins_url('../assets/css/widgets/impress-city-links.css', dirname(__FILE__)));
     }
     $city_links = "<div class=\"impress-city-links\">";
     $city_links .= \IDX\Widgets\Impress_City_Links_Widget::city_list_links($city_list, $mls, $use_columns, $number_columns);
     $city_links .= "</div>";
     if (false == $city_links) {
         return 'City list ID or MLS ID not found';
     }
     $city_links .= '<style>.impress-city-list-links ul {margin-left: 0;}</style>';
     return $city_links;
 }