Ticket #3778: custom-order-profile-options-REV1.diff
| File custom-order-profile-options-REV1.diff, 8.2 KB (added by , 14 years ago) |
|---|
-
bp-xprofile/bp-xprofile-classes.php
737 737 738 738 <div id="<?php echo $type; ?>" class="options-box" style="<?php echo $class; ?> margin-left: 15px;"> 739 739 <h4><?php _e( 'Please enter options for this Field:', 'buddypress' ); ?></h4> 740 <p><label for="sort_order_<?php echo $type; ?>"><?php _e( ' Order By:', 'buddypress' ); ?></label>740 <p><label for="sort_order_<?php echo $type; ?>"><?php _e( 'Sort Order:', 'buddypress' ); ?></label> 741 741 <select name="sort_order_<?php echo $type; ?>" id="sort_order_<?php echo $type; ?>" > 742 <option value=" default" <?php if ( 'default' == $this->order_by ) {?> selected="selected"<?php } ?> ><?php _e( 'Order Entered', 'buddypress' ); ?></option>743 <option value="asc" <?php if ( 'asc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( ' Name -Ascending', 'buddypress' ); ?></option>744 <option value="desc" <?php if ( 'desc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( ' Name -Descending', 'buddypress' ); ?></option>742 <option value="custom" <?php if ( 'custom' == $this->order_by ) {?> selected="selected"<?php } ?> ><?php _e( 'Custom', 'buddypress' ); ?></option> 743 <option value="asc" <?php if ( 'asc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Ascending', 'buddypress' ); ?></option> 744 <option value="desc" <?php if ( 'desc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Descending', 'buddypress' ); ?></option> 745 745 </select> 746 746 747 747 <?php if ( !$options = $this->get_children( true ) ) { … … 765 765 if ( 'multiselectbox' == $type || 'checkbox' == $type ) 766 766 $default_name = '[' . $j . ']'; ?> 767 767 768 <p><?php _e( 'Option', 'buddypress' ); ?> <?php echo $j; ?>: 769 <input type="text" name="<?php echo $type; ?>_option[<?php echo $j; ?>]" id="<?php echo $type; ?>_option<?php echo $j; ?>" value="<?php echo stripslashes( esc_attr( $options[$i]->name ) ); ?>" /> 770 <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" <?php if ( (int) $options[$i]->is_default_option ) {?> checked="checked"<?php } ?> " value="<?php echo $j; ?>" /> <?php _e( 'Default Value', 'buddypress' ); ?> 771 772 <?php if ( $j != 1 && $options[$i]->id != -1 ) : ?> 773 774 <a href="admin.php?page=bp-profile-setup&mode=delete_option&option_id=<?php echo $options[$i]->id ?>" class="ajax-option-delete" id="delete-<?php echo $options[$i]->id; ?>">[x]</a> 775 776 <?php endif; ?> 777 768 <p class="sortable"> 769 <span> Ξ </span> 770 <input type="text" name="<?php echo $type; ?>_option[<?php echo $j; ?>]" id="<?php echo $type; ?>_option<?php echo $j; ?>" value="<?php echo stripslashes( esc_attr( $options[$i]->name ) ); ?>" /> 771 <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" <?php if ( (int) $options[$i]->is_default_option ) {?> checked="checked"<?php } ?> " value="<?php echo $j; ?>" /> 772 <span><?php _e( 'Default Value', 'buddypress' ); ?></span> 773 <a href="admin.php?page=bp-profile-setup&mode=delete_option&option_id=<?php echo $options[$i]->id ?>" class="ajax-option-delete" id="delete-<?php echo $options[$i]->id; ?>">[x]</a> 778 774 </p> 779 775 780 776 <?php } /* end for */ ?> … … 786 782 if ( 'multiselectbox' == $type || 'checkbox' == $type ) 787 783 $default_name = '[1]'; ?> 788 784 789 <p><?php _e( 'Option', 'buddypress' ); ?> 1: <input type="text" name="<?php echo $type; ?>_option[1]" id="<?php echo $type; ?>_option1" /> 790 <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" id="isDefault_<?php echo $type; ?>_option" value="1" /> <?php _e( 'Default Value', 'buddypress' ); ?> 791 <input type="hidden" name="<?php echo $type; ?>_option_number" id="<?php echo $type; ?>_option_number" value="2" /> 785 <p class="sortable"> 786 <span> Ξ </span> 787 <input type="text" name="<?php echo $type; ?>_option[1]" id="<?php echo $type; ?>_option1" /> 788 <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" id="isDefault_<?php echo $type; ?>_option" value="1" /> 789 <span><?php _e( 'Default Value', 'buddypress' ); ?></span> 790 <input type="hidden" name="<?php echo $type; ?>_option_number" id="<?php echo $type; ?>_option_number" value="2" /> 791 </p> 792 792 793 793 <?php } /* end if */ ?> 794 794 -
bp-xprofile/admin/js/admin.dev.js
3 3 var theId = document.getElementById(forWhat + '_option_number').value; 4 4 var newDiv = document.createElement('p'); 5 5 var newOption = document.createElement('input'); 6 var label = document.createElement( 'label' );7 var txt = document.createTextNode( " Option " + theId + ":" );6 var span = document.createElement( 'span' ); 7 var txt = document.createTextNode( "\u00A0\u039E\u00A0" ); 8 8 var isDefault = document.createElement( 'input' ); 9 var label1 = document.createElement( 'label' );9 var span1 = document.createElement( 'span' ); 10 10 var txt1 = document.createTextNode( " Default Value " ); 11 11 12 12 newDiv.setAttribute('id', forWhat + '_div' + theId); 13 newDiv.setAttribute('class', 'sortable'); 13 14 14 15 newOption.setAttribute( 'type', 'text' ); 15 16 newOption.setAttribute( 'name', forWhat + '_option[' + theId + ']' ); 16 17 newOption.setAttribute( 'id', forWhat + '_option' + theId ); 17 18 18 label.setAttribute( 'for', forWhat + '_option' + theId ); 19 label.appendChild( txt ); 19 span.appendChild( txt ); 20 20 21 21 if ( forWhat == 'checkbox' || forWhat == 'multiselectbox' ) { 22 22 isDefault.setAttribute( 'type', 'checkbox' ); … … 28 28 29 29 isDefault.setAttribute( 'value', theId ); 30 30 31 label1.appendChild( txt1 ); 32 label1.setAttribute( 'for', 'isDefault_' + forWhat + '_option[]' ); 31 span1.appendChild( txt1 ); 33 32 34 33 var toDelete = document.createElement( 'a' ); 35 34 var toDeleteText = document.createTextNode( '[x]' ); … … 38 37 toDelete.setAttribute( 'class', 'delete' ); 39 38 toDelete.appendChild( toDeleteText ); 40 39 41 newDiv.appendChild( label);40 newDiv.appendChild( span ); 42 41 newDiv.appendChild( newOption ); 43 42 newDiv.appendChild( document.createTextNode( " " ) ); 44 43 newDiv.appendChild( isDefault ); 45 newDiv.appendChild( label1 );44 newDiv.appendChild( span1 ); 46 45 newDiv.appendChild( toDelete ); 47 46 holder.appendChild( newDiv ); 48 47 48 // re-initialize the sorable ui 49 enableSortableFieldOptions( forWhat ); 49 50 50 51 theId++; 51 52 … … 85 86 return ui; 86 87 }; 87 88 88 // Set up deleting options ajax 89 function enableSortableFieldOptions( forWhat ) { 90 if ( jQuery( '#' + forWhat + ' p.sortable' ).length > 1 ) { 91 jQuery( '.options-box' ).sortable( { 92 items: 'p.sortable', 93 tolerance: 'pointer', 94 axis: 'y', 95 handle: 'span' 96 }); 97 98 jQuery( '.sortable span' ).css( 'cursor', 'move' ); 99 } 100 } 101 102 function destroySortableFieldOptions() { 103 jQuery( '.options-box' ).sortable( 'destroy' ); 104 jQuery( '.sortable span' ).css( 'cursor', 'default' ); 105 } 106 89 107 jQuery( document ).ready( function() { 90 108 109 // Set up deleting options ajax 91 110 jQuery( 'a.ajax-option-delete' ).click( 92 111 function() { 93 112 var theId = this.id.split( '-' ); … … 103 122 } 104 123 ); 105 124 125 // 126 jQuery( '[id^="sort_order_"]' ).change(function() { 127 if ( jQuery( this ).val() != 'custom' ) { 128 destroySortableFieldOptions(); 129 } else { 130 enableSortableFieldOptions( jQuery('#fieldtype :selected').val() ); 131 } 132 }); 133 106 134 // Show object if JS is enabled 107 135 jQuery( 'ul#field-group-tabs' ).show(); 108 136 … … 150 178 // Change cursor to move if JS is enabled 151 179 .css( 'cursor', 'move' ); 152 180 181 // Allow reordering of field options 182 enableSortableFieldOptions( jQuery('#fieldtype :selected').val() ); 183 153 184 // tabs init with a custom tab template and an "add" callback filling in the content 154 185 var $tab_items; 155 186 var $tabs = jQuery( '#tabs' ).tabs();
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)