function artifactCreateView($session_ser, $group_id, $group_artifact_id, $name, $status, $assignee, $moddaterange, $sort_col, $sort_ord, $extra_fields, $opendaterange, $closedaterange) { continue_session($session_ser); $grp =& group_get_object($group_id); if (!$grp || !is_object($grp)) { return new soap_fault('', 'artifactCreateView', 'Could Not Get Group', 'Could Not Get Group'); } elseif ($grp->isError()) { return new soap_fault('', 'artifactCreateView', $grp->getErrorMessage(), $grp->getErrorMessage()); } $at = new ArtifactType($grp, $group_artifact_id); if (!$at || !is_object($at)) { return new soap_fault('', 'artifactCreateView', 'Could Not Get ArtifactType', 'Could Not Get ArtifactType'); } elseif ($at->isError()) { return new soap_fault('', 'artifactCreateView', $at->getErrorMessage(), $at->getErrorMessage()); } //rearrange the extra fields $aef = $at->getExtraFields(); $extra_fields = arrangeExtraFields($extra_fields, $aef); $query = new ArtifactQuery($at); if (!$query->create($name, $status, $assignee, $moddaterange, $sort_col, $sort_ord, $extra_fields, $opendaterange, $closedaterange)) { return new soap_fault('', 'artifactCreateView', $query->getErrorMessage(), $query->getErrorMessage()); } return $query->getID(); }
/** * setup - sets up limits and sorts before you call getTasks(). * * @param int The offset - number of rows to skip. * @param string The column to sort on. * @param string The way to order - ASC or DESC. * @param int The max number of rows to return. * @param string Whether to set these prefs into the user_prefs table - use "custom". * @param int Include this param if you want to limit to a certain assignee. * @param int Include this param if you want to limit to a particular status. * @param array Array of extra fields & elements to limit the query to. */ function setup($offset, $order_col, $sort, $max_rows, $set, $_assigned_to, $_status, $_extra_fields = array()) { //echo "<br />offset: $offset| order: $order|max_rows: $max_rows|_assigned_to: $_assigned_to|_status: $_status"; if (!$offset || $offset < 0) { $this->offset = 0; } else { $this->offset = $offset; } if (session_loggedin()) { $u =& session_get_user(); } if (!is_array($_extra_fields)) { $_extra_fields = array(); } if (!$set) { /* if no set is passed in, see if a preference was set if no preference or not logged in, use open set */ if (session_loggedin()) { $default_query = $u->getPreference('art_query' . $this->ArtifactType->getID()); $this->defaultquery = $default_query; if ($default_query) { $aq = new ArtifactQuery($this->ArtifactType, $default_query); $_extra_fields = $aq->getExtraFields(); $order_col = $aq->getSortCol(); $sort = $aq->getSortOrd(); $_assigned_to = $aq->getAssignee(); $_status = $aq->getStatus(); $this->moddaterange = $aq->getModDateRange(); $this->opendaterange = $aq->getOpenDateRange(); $this->closedaterange = $aq->getCloseDateRange(); } else { $custom_pref = $u->getPreference('art_cust' . $this->ArtifactType->getID()); if ($custom_pref) { //$_assigned_to.'|'.$_status.'|'.$_order_col.'|'.$_sort_ord.'|'.$_changed.'|'.serialize($_extra_fields); $pref_arr = explode('|', $custom_pref); $_assigned_to = $pref_arr[0]; $_status = $pref_arr[1]; $order_col = $pref_arr[2]; $sort = $pref_arr[3]; $_changed = $pref_arr[4]; if ($this->ArtifactType->usesCustomStatuses()) { $_extra_fields = unserialize($pref_arr[5]); } else { $_status = $pref_arr[1]; } $set = 'custom'; } else { //default to open $_assigned_to = 0; $_status = 1; $_changed = 0; } } } else { //default to open $_assigned_to = 0; $_status = 1; $_changed = 0; } } // // validate the column names and sort order passed in from user // before saving it to prefs // if ($order_col == 'artifact_id' || $order_col == 'summary' || $order_col == 'open_date' || $order_col == 'close_date' || $order_col == 'assigned_to' || $order_col == 'submitted_by' || $order_col == 'priority') { $_order_col = $order_col; if ($sort == 'ASC' || $sort == 'DESC') { $_sort_ord = $sort; } else { $_sort_ord = 'ASC'; } } else { $_order_col = 'artifact_id'; $_sort_ord = 'ASC'; } if ($set == 'custom') { if (session_loggedin()) { /* if this custom set is different than the stored one, reset preference */ if (is_array($_assigned_to)) { $_assigned_to = ''; } $aux_extra_fields = array(); if (is_array($_extra_fields)) { //print_r($_extra_fields); $keys = array_keys($_extra_fields); foreach ($keys as $key) { if ($_extra_fields[$key] != 'Array') { $aux_extra_fields[$key] = $_extra_fields[$key]; } } } $extra_pref = ''; if (count($aux_extra_fields) > 0) { $extra_pref = '|' . serialize($aux_extra_fields); } $pref_ = $_assigned_to . '|' . $_status . '|' . $_order_col . '|' . $_sort_ord . '|' . $_changed . $extra_pref; if ($pref_ != $u->getPreference('art_cust' . $this->ArtifactType->getID())) { $u->setPreference('art_cust' . $this->ArtifactType->getID(), $pref_); } $default_query = $u->getPreference('art_query' . $this->ArtifactType->getID()); if ($default_query) { $u->deletePreference('art_query' . $this->ArtifactType->getID()); } } $_changed = 0; } $this->sort = $_sort_ord; $this->order_col = $_order_col; $this->status = $_status; if ($_assigned_to != 'Array') { $this->assigned_to = $_assigned_to; } $this->extra_fields = $_extra_fields; $this->setChangedFrom($_changed); // if $max_rows == 0 it means we want all the rows if (is_null($max_rows) || $max_rows < 0) { $max_rows = 50; } if (isset($default_query)) { $this->max_rows = 0; } else { $this->max_rows = $max_rows; } }