Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
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;
}