public function pre_render(cs_form $form) { if ($this->pre_rendered == TRUE) { return; } $id = $this->get_html_id(); if ($this->get_level() == 0) { $this->add_js(preg_replace("/\\s+/", " ", str_replace("\n", "", "" . "\$('#{$id}','#{$form->get_id()}').data('output', \$('#{$id}-output'));\n \$('#{$id}','#{$form->get_id()}').nestable({group: {$this->group}, maxDepth: {$this->maxDepth} }).on('change', function(e){\n var list = e.length ? e : \$(e.target),\n output = list.data('output');\n if (window.JSON) {\n output.val(window.JSON.stringify(list.nestable('serialize')));\n } else {\n output.val('JSON browser support required for this.');\n }\n }).trigger('change');"))); if (!cs_nestable::$_css_rendered) { $this->add_css(' .dd { position: relative; display: block; margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 20px; } .dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; } .dd-list .dd-list { padding-left: 30px; } .dd-collapsed .dd-list { display: none; } .dd-item,.dd-empty,.dd-placeholder { display: block; position: relative; margin: 0; padding: 0; min-height: 20px; font-size: 13px; line-height: 20px; } .dd-handle { display: block; margin: 5px 0; padding: 5px 10px; color: #333; text-decoration: none; font-weight: bold; border: 1px solid #ccc; background: #fafafa; background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%); background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%); background: linear-gradient(top, #fafafa 0%, #eee 100%); -webkit-border-radius: 3px; border-radius: 3px; box-sizing: border-box; -moz-box-sizing: border-box; } .dd-handle:hover { color: #2ea8e5; background: #fff; } .dd-item > button { display: block; position: relative; cursor: pointer; z-index: 20; float: left; width: 25px; height: 20px; margin: 5px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: transparent; font-size: 12px; line-height: 1; text-align: center; font-weight: bold; } .dd-item > button:before { content: \'+\'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0; } .dd-item > button[data-action="collapse"]:before { content: \'-\'; } .dd-placeholder, .dd-empty { margin: 5px 0; padding: 0; min-height: 30px; background: #f2fbff; border: 1px dashed #b6bcbf; box-sizing: border-box; -moz-box-sizing: border-box; } .dd-empty { border: 1px dashed #bbb; min-height: 100px; background-color: #e5e5e5; background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); background-image: -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); background-size: 60px 60px; background-position: 0 0, 30px 30px; } .dd-dragel { position: absolute; pointer-events: none; z-index: 9999; } .dd-dragel > .dd-panel > .dd-item .dd-handle { margin-top: 0; } .dd-dragel .dd-handle { -webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); } .dd-panel{ position: relative; } .dd-content { display: block; min-height: 30px; margin: 5px 0; padding: 5px 10px 5px 40px; color: #333; text-decoration: none; font-weight: bold; border: 1px solid #ccc; background: #fafafa; background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%); background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%); background: linear-gradient(top, #fafafa 0%, #eee 100%); -webkit-border-radius: 3px; border-radius: 3px; box-sizing: border-box; -moz-box-sizing: border-box; } .dd-content:hover { color: #2ea8e5; background: #fff; } .dd-dragel > .dd-item > .dd-panel > .dd-content { margin: 0; } .dd-item > button { margin-left: 30px; } .dd-handle { position: absolute; margin: 0; left: 0; top: 0; cursor: pointer; width: 30px; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 1px solid #aaa; background: #ddd; background: -webkit-linear-gradient(top, #ddd 0%, #bbb 100%); background: -moz-linear-gradient(top, #ddd 0%, #bbb 100%); background: linear-gradient(top, #ddd 0%, #bbb 100%); border-top-right-radius: 0; border-bottom-right-radius: 0; height: 100%; } .dd-handle:before { content: \'≡\'; display: block; position: absolute; left: 0; top: 3px; width: 100%; text-align: center; text-indent: 0; color: #fff; font-size: 20px; font-weight: normal; } .dd-handle:hover { background: #ddd; } '); cs_nestable::$_css_rendered = TRUE; } } parent::pre_render($form); }
function locationsform(cs_form $form, &$form_state) { /* google.maps.MapTypeId.HYBRID google.maps.MapTypeId.ROADMAP google.maps.MapTypeId.SATELLITE google.maps.MapTypeId.TERRAIN */ $form->add_field('location', array('title' => 'GeoLocation', 'type' => 'geolocation'))->add_field('map', array('title' => 'MapLocation', 'type' => 'gmaplocation', 'scrollwheel' => TRUE, 'zoom' => 15, 'mapheight' => '400px', 'default_value' => array('latitude' => 45.434332, 'longitude' => 12.33844), 'maptype' => 'google.maps.MapTypeId.TERRAIN', 'with_current_location' => TRUE))->add_field('decode', array('title' => 'GeoDecode', 'type' => 'gmaplocation', 'with_geocode' => TRUE, 'lat_lon_type' => 'textfield', 'zoom' => 15, 'default_value' => array('latitude' => 51.48257659999999, 'longitude' => -0.0076589)))->add_field('decode_nomap', array('title' => 'GeoDecode No Map', 'type' => 'gmaplocation', 'with_geocode' => TRUE, 'with_map' => FALSE, 'lat_lon_type' => 'textfield', 'default_value' => array('latitude' => 51.48257659999999, 'longitude' => -0.0076589)))->add_field('submit', array('type' => 'submit')); return $form; }