function get_rendered_member_selectors() { $object_members = array(); $objectId = 0; if (get_id()) { $object = Objects::findObject(get_id()); $object_type_id = $object->manager()->getObjectTypeId(); $object_members = $object->getMemberIds(); $objectId = get_id(); } else { $object_type_id = array_var($_GET, 'objtypeid'); if (array_var($_GET, 'members')) { $object_members = explode(',', array_var($_GET, 'members')); } } if (count($object_members) == 0) { $object_members = active_context_members(false); } $genid = array_var($_GET, 'genid'); $listeners = array(); //ob_start — Turn on output buffering //no output is sent from the script (other than headers), instead the output is stored in an internal buffer. ob_start(); //get skipped dimensions for this view $view_name = array_var($_GET, 'view_name'); $dimensions_to_show = explode(",", user_config_option($view_name . "_view_dimensions_combos")); $dimensions_to_skip = array_diff(get_user_dimensions_ids(), $dimensions_to_show); render_member_selectors($object_type_id, $genid, $object_members, array('listeners' => $listeners), $dimensions_to_skip, null, false); ajx_current("empty"); //Gets the current buffer contents and delete current output buffer. //ob_get_clean() essentially executes both ob_get_contents() and ob_end_clean(). ajx_extra_data(array("htmlToAdd" => ob_get_clean())); ajx_extra_data(array("objectId" => $objectId)); }
/** * @param unknown_type $content_object_type_id * @param unknown_type $genid * @param unknown_type $selected_members * @param unknown_type $options * @param unknown_type $skipped_dimensions * @param unknown_type $simulate_required */ function render_dimension_trees($content_object_type_id, $genid = null, $selected_members = null, $options = array(), $skipped_dimensions = null, $simulate_required = null) { if (is_numeric($content_object_type_id)) { if (is_null($genid)) $genid = gen_id(); $user_dimensions = get_user_dimensions_ids(); // User allowed dimensions $dimensions = array() ; if ( $all_dimensions = Dimensions::getAllowedDimensions($content_object_type_id) ) { // Diemsions for this content type foreach ($all_dimensions as $dimension){ // A kind of intersection... if ( isset($user_dimensions[$dimension['dimension_id']] ) ){ if( $dimension_options = json_decode($dimension['dimension_options'])){ if (isset($dimension_options->useLangs) && $dimension_options->useLangs ) { $dimension['dimension_name'] = lang($dimension['dimension_code']); } } $dimensions[] = $dimension ; } } } $object_is_new = is_null($selected_members); if ($dimensions!= null && count($dimensions)) { if (is_null($selected_members) && array_var($options, 'select_current_context')) { $context = active_context(); $selected_members = array(); foreach ($context as $selection) { if ($selection instanceof Member) $selected_members[] = $selection->getId(); } } $selected_members_json = json_encode($selected_members); $component_id = "$genid-member-chooser-panel-$content_object_type_id" ; if (isset($options['layout']) && in_array($options['layout'], array('horizontal', 'column'))) { $layout = $options['layout']; } else { //$layout = count($dimensions) > 5 ? "horizontal" : "column"; $layout = "column"; } ?> <?php if (!$object_is_new) : ?> <input id='<?php echo $genid; ?>trees_not_loaded' name='trees_not_loaded' type='hidden' value="1"></input> <?php endif;?> <input id='<?php echo $genid; ?>members' name='members' type='hidden' value="<?php echo str_replace('"', "'", $selected_members_json); ?>"></input> <div id='<?php echo $component_id ?>-container' class="member-chooser-container" ></div> <script> var memberChooserPanel = new og.MemberChooserPanel({ renderTo: '<?php echo $component_id ?>-container', id: '<?php echo $component_id ?>', selectedMembers: <?php echo $selected_members_json?>, layout: '<?php echo $layout; ?>' }) ; <?php foreach ($dimensions as $dimension) : $dimension_id = $dimension['dimension_id']; if (is_array($skipped_dimensions) && in_array($dimension_id, $skipped_dimensions)) continue; if ( is_array(array_var($options, 'allowedDimensions')) && array_search($dimension_id, $options['allowedDimensions']) === false ){ continue; } if (!$dimension['is_manageable']) continue; $is_required = $dimension['is_required']; $dimension_name = $dimension['dimension_name'] ; if ($is_required) $dimension_name.= " *" ; if (is_array($simulate_required) && in_array($dimension_id, $simulate_required)) $is_required = true; if (!isset($id)) $id = gen_id(); ?> var config = { title: '<?php echo $dimension_name ?>', dimensionId: <?php echo $dimension_id ?>, objectTypeId: <?php echo $content_object_type_id ?>, required: <?php echo $is_required ?>, reloadDimensions: <?php echo json_encode( DimensionMemberAssociations::instance()->getDimensionsToReload($dimension_id) ) ; ?>, isMultiple: <?php echo $dimension['is_multiple'] ?>, selModel: <?php echo ($dimension['is_multiple'])? 'new Ext.tree.MultiSelectionModel()': 'new Ext.tree.DefaultSelectionModel()'?> }; <?php if( isset ($options['allowedMemberTypes'])) : ?> config.allowedMemberTypes = <?php echo json_encode($options['allowedMemberTypes']) ?> ; <?php endif; ?> <?php if( isset ($options['collapsible'])) : ?> config.collapsible = <?php echo (int)$options['collapsible'] ?> ; <?php endif; ?> <?php if( isset ($options['collapsed'])) : ?> config.collapsed = <?php echo (int) $options['collapsed'] ?> ; <?php endif; ?> config.listeners = { 'tree rendered': function(tree) { if (!tree.ownerCt.rendered_trees) tree.ownerCt.rendered_trees = 0; tree.ownerCt.rendered_trees++; if (tree.ownerCt.rendered_trees == tree.ownerCt.items.length) tree.ownerCt.fireEvent('all trees rendered', tree.ownerCt); } }; var tree = new og.MemberChooserTree ( config ); memberChooserPanel.add(tree); <?php endforeach; ?> og.can_submit_members = false; memberChooserPanel.on('all trees rendered', function(panel) { og.can_submit_members = true; var trees_to_reload = []; panel.items.each(function(item, index, length) { var checked = item.getLastChecked(); if (checked != 0 && item.filterOnChange) trees_to_reload.push(item); }); if (trees_to_reload.length > 0) { for (var i=0; i<trees_to_reload.length; i++) { trees_to_reload[i].dont_update_form = true; tree = trees_to_reload[i]; setTimeout(function() { tree.dont_update_form = false; }, 2500); } for (var i=1; i<trees_to_reload.length; i++) { var next = trees_to_reload[i]; trees_to_reload[i-1].on('all trees updated', function(){ next.fireEvent('checkchange', next.getNodeById(next.getLastChecked()), true); next.expand(); }); } var t = trees_to_reload[0]; t.fireEvent('checkchange', t.getNodeById(t.getLastChecked()), true); t.expand(); } }); memberChooserPanel.doLayout(); </script> <?php } } }
function render_member_selectors($content_object_type_id, $genid = null, $selected_member_ids = null, $options = array(), $skipped_dimensions = null, $simulate_required = null) { if (is_numeric($content_object_type_id)) { if (is_null($genid)) $genid = gen_id(); $user_dimensions = get_user_dimensions_ids(); // User allowed dimensions $dimensions = array(); // Diemsions for this content type if ( $all_dimensions = Dimensions::getAllowedDimensions($content_object_type_id) ) { foreach ($all_dimensions as $dimension){ if ( isset($user_dimensions[$dimension['dimension_id']] ) ){ if( $dimension_options = json_decode($dimension['dimension_options'])){ if (isset($dimension_options->useLangs) && $dimension_options->useLangs ) { $dimension['dimension_name'] = lang($dimension['dimension_code']); } } $dimensions[] = $dimension; } } } if ($dimensions != null && count($dimensions)) { if (is_null($selected_member_ids) && array_var($options, 'select_current_context')) { $context = active_context(); $selected_member_ids = array(); foreach ($context as $selection) { if ($selection instanceof Member) $selected_member_ids[] = $selection->getId(); } } if (is_null($selected_member_ids)) $selected_member_ids = array(); // Set view variables $selected_members = count($selected_member_ids) > 0 ? Members::findAll(array('conditions' => 'id IN ('.implode(',', $selected_member_ids).')')) : array(); $selected_members_json = "[".implode(',', $selected_member_ids)."]"; $component_id = "$genid-member-selectors-panel-$content_object_type_id"; $object_is_new = is_null($selected_members); $listeners = array_var($options, 'listeners', array()); $allowed_member_type_ids = array_var($options, 'allowedMemberTypes', null); $initial_selected_members = $selected_members; if (count($initial_selected_members) == 0) { $selected_context_member_ids = active_context_members(false); if (count($selected_context_member_ids) > 0) { $initial_selected_members = Members::findAll(array('conditions' => 'id IN ('.implode(',', $selected_context_member_ids).')')); } } $tmp = array(); foreach ($initial_selected_members as $ism) { if ($ism->getDimension()->getIsManageable()) $tmp[] = $ism; } $initial_selected_members = $tmp; // Render view include get_template_path("components/multiple_dimension_selector", "dimension"); } } }
function render_member_selectors($content_object_type_id, $genid = null, $selected_member_ids = null, $options = array(), $skipped_dimensions = null, $simulate_required = null, $default_view = true) { if (is_numeric($content_object_type_id)) { if (is_null($genid)) { $genid = gen_id(); } $user_dimensions = get_user_dimensions_ids(); // User allowed dimensions $dimensions = array(); // Diemsions for this content type if ($all_dimensions = Dimensions::getAllowedDimensions($content_object_type_id)) { foreach ($all_dimensions as $dimension) { if (isset($user_dimensions[$dimension['dimension_id']])) { $custom_name = DimensionOptions::getOptionValue($dimension['dimension_id'], 'custom_dimension_name'); $dimension['dimension_name'] = $custom_name && trim($custom_name) != "" ? $custom_name : lang($dimension['dimension_code']); $dimensions[] = $dimension; } } } if ($dimensions != null && count($dimensions)) { if (is_null($selected_member_ids) && array_var($options, 'select_current_context')) { $context = active_context(); $selected_member_ids = array(); foreach ($context as $selection) { if ($selection instanceof Member) { $selected_member_ids[] = $selection->getId(); } } } if (is_null($selected_member_ids)) { $selected_member_ids = array(); } $skipped_dimensions_cond = ""; if (is_array($skipped_dimensions) && count($skipped_dimensions) > 0) { $skipped_dimensions_cond = " AND dimension_id NOT IN (" . implode(',', $skipped_dimensions) . ")"; } // Set view variables $manageable_conds = ' AND dimension_id IN (SELECT id from ' . TABLE_PREFIX . 'dimensions WHERE is_manageable=1)' . $skipped_dimensions_cond; $selected_members = count($selected_member_ids) > 0 ? Members::findAll(array('conditions' => 'id IN (' . implode(',', $selected_member_ids) . ') ' . $manageable_conds)) : array(); $selected_member_ids = array(); foreach ($selected_members as $sm) { $selected_member_ids[] = $sm->getId(); } $selected_members_json = "[" . implode(',', $selected_member_ids) . "]"; $component_id = "{$genid}-member-selectors-panel-{$content_object_type_id}"; $object_is_new = is_null($selected_members); $listeners = array_var($options, 'listeners', array()); $allowed_member_type_ids = array_var($options, 'allowedMemberTypes', null); $initial_selected_members = $selected_members; if (count($initial_selected_members) == 0) { $selected_context_member_ids = active_context_members(false); if (count($selected_context_member_ids) > 0) { $initial_selected_members = Members::findAll(array('conditions' => 'id IN (' . implode(',', $selected_context_member_ids) . ')')); } } $tmp = array(); foreach ($initial_selected_members as $ism) { if ($ism->getDimension()->getIsManageable()) { $tmp[] = $ism; } } $initial_selected_members = $tmp; // Render view include get_template_path("components/multiple_dimension_selector", "dimension"); } } }
TMTimespanAddNew" class="TMTimespanAddNew" <?php echo $draw_inputs ? "" : 'style="display:none;"'; ?> > <input type="hidden" id="<?php echo $genid; ?> tsId" name="timeslot[id]" value=""/> <div style="padding:7px;"> <div class="context-body" style="float: left; margin-bottom: 5px;"> <?php //get skipped dimensions for this view $dimensions_to_show = explode(",", user_config_option("add_timeslot_view_dimensions_combos")); $dimensions_to_show = is_array($dimensions_to_show) ? array_filter($dimensions_to_show) : array(); $dimensions_to_skip = array_diff(get_user_dimensions_ids(), $dimensions_to_show); $listeners = array(); $listeners = array('on_selection_change' => 'ogTimeManager.renderUserCombo("' . $genid . '")'); if (!empty($dimensions_to_show)) { render_member_selectors(Timeslots::instance()->getObjectTypeId(), $genid, null, array('select_current_context' => true, 'listeners' => $listeners, 'horizontal' => true, 'width' => '270'), $dimensions_to_skip, null, true); } ?> </div> <div class="small-member-selector TMTimespanSelectorHeight" style="<?php echo can_manage_time(logged_user()) ? '' : 'display: none;'; ?> "> <?php echo label_tag(lang('user'));
'; og.config.use_milestones = <?php echo config_option('use_milestones') ? 'true' : 'false'; ?> ; og.config.show_notify_checkbox_in_quick_add = <?php echo user_config_option('show_notify_checkbox_in_quick_add') ? 'true' : 'false'; ?> ; og.config.tasks_show_description_on_time_forms = <?php echo user_config_option('tasksShowDescriptionOnTimeForms') ? 'true' : 'false'; ?> ; og.config.quick_add_task_combos = <?php $object = ""; $dimensions_user = get_user_dimensions_ids(); $dimensions_to_show = explode(",", user_config_option("quick_add_task_view_dimensions_combos")); $dimensions_to_skip = array_diff($dimensions_user, $dimensions_to_show); //sort combos function cmp($a, $b) { return $a < $b ? -1 : 1; } usort($dimensions_to_show, "cmp"); foreach ($dimensions_to_show as $key => $dimension_id) { if (in_array($dimension_id, $dimensions_to_skip)) { continue; } $dim = Dimensions::instance()->getDimensionById($dimension_id); if ($dim instanceof Dimension) { if ($key != 0) {