diff --git a/filefield.css b/filefield.css index fcd42fc9298683f4b7e5f209af63ce4dd2a7e55d..ac2ecf27ce35f8d741921b84fec714ba6a11023f 100644 --- a/filefield.css +++ b/filefield.css @@ -2,34 +2,12 @@ * Overall styles */ -.filefield-icon img { - display: inline; -} - -/** - * Clear the filefield-icon float, or any other floats - * that custom widgets might have inserted but not cleared. - * Stolen from "How To Clear Floats Without Structural Markup", - * http://www.positioniseverything.net/easyclearing.html - */ -.filefield-item:after, .filefield-file-edit:after { - content: ""; - display: block; - height: 0; - clear: both; - visibility: hidden; -} -/* Hides from IE-mac \*/ -* html .filefield-item, .filefield-file-edit {height: 1%;} -/* End hide from IE-mac */ - -/* End overall styles */ /** * Formatter styles */ -.filefield-item .filefield-icon { +.filefield-icon { float: left; margin-right: 0.4em; } @@ -39,15 +17,33 @@ /** * General widget form styles (applicable to all widgets) */ +.filefield-row { +} + +.filefield-row .filefield-info { + float : left; + padding-right: 1em; +} -.filefield-file-edit-flags { - float: right; - text-align: right; - margin-bottom: -4px; /* The "List" checkbox has too much bottom margin */ +.filefield-row .filefield-edit { + float : left; + width: 70%; } + + +.filefield-row .filefield-description { + width: 70%; +} + + +.filefield-row .filefield-list { + float : right; +} + + .filefield-file-edit-widget { - width: 90%; + float: left; } /* Only applies to single-value fields, for which we provide our own table. */ @@ -85,7 +81,7 @@ /* The text field is made unnecessarily long by node.css - shorten it */ .filefield-generic-edit .form-text { - width: 100%; + width: 99%; } .filefield-generic-edit .description { white-space: normal; diff --git a/filefield.module b/filefield.module index c9ae93653ac265d0f535db8b4b2b4fc92b6f561b..ef852511e897184ec78af68e1f46a50ee46cabc7 100644 --- a/filefield.module +++ b/filefield.module @@ -29,6 +29,8 @@ function filefield_init() { // file hooks and callbacks. module_load_include('inc', 'filefield', 'filefield_file'); + + drupal_add_css(drupal_get_path('module', 'filefield') .'/filefield.css'); } /** @@ -97,6 +99,11 @@ function filefield_theme() { 'arguments' => array('element' => NULL), 'file' => 'filefield_widget.inc', ), + 'filefield_row' => array( + 'arguments' => array('element' => NULL), + 'file' => 'filefield_widget.inc', + ), + 'filefield_formatter_filefield_default' => array( 'arguments' => array('element' => NULL), diff --git a/filefield_widget.inc b/filefield_widget.inc index 0bada5c1b2f6ed8d8cc89045de64552ffa6cd03d..c90c794a01ad94e4e73ab14f89dfd3d417f08033 100644 --- a/filefield_widget.inc +++ b/filefield_widget.inc @@ -34,7 +34,7 @@ function filefield_widget_process($element, $edit, &$form_state, $form) { //dsm('imagefield_widget_process'); //dsm($element); //dsm($form_state); - + $element['#theme'] = 'filefield_row'; $file = $element['#value']; $delta = $element['#delta']; $field_name = $element['#field_name']; @@ -58,6 +58,7 @@ function filefield_widget_process($element, $edit, &$form_state, $form) { '#type' => 'checkbox', '#title' => t('List'), '#default_value' => $file['list'], + '#attributes' => array('class' => 'filefield-list'), ); $element['data'] = array( @@ -199,10 +200,24 @@ function _filefield_widget_validate($element, &$form_state) { /** * FormAPI theme function. Theme the output of an image field. */ -function theme_filefield_widget(&$element) { +function theme_filefield_widget($element) { return $element['#children']; } +function theme_filefield_row($element) { + return '
'. + '
'. + '
'. drupal_render($element['preview']) . '
'. + //'
filesize: 32Kb
'. + //'
mimetype: text/patch
'. + '
' . + '
'. drupal_render($element['list']) . '
' . + '
'. drupal_render($element['description']) . '
' . + '
'. drupal_render($element) .'
'. + '
'. + ''; +} /**