/**
* Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
* Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
- * Copyright 2013-2016, Franck Villaume - TrivialDev
+ * Copyright 2013-2017, Franck Villaume - TrivialDev
*
* This file is a part of Fusionforge.
*
if (!$success) {
$success = db_error();
db_rollback();
- exit_error(sprintf(_('DB Error: %s'), $success), 'widgets');
+ exit_error(_('DB Error')._(': ').$success, 'widgets');
}
db_commit();
}
if (!$success) {
$success = db_error();
db_rollback();
- exit_error(sprintf(_('DB Error: %s'), $success), 'widgets');
+ exit_error(_('DB Error')._(': ').$success, 'widgets');
}
db_commit();
}
if (!$success) {
$success = db_error();
db_rollback();
- exit_error(sprintf(_('DB Error: %s'), $success), 'widgets');
+ exit_error(_('DB Error')._(': ').$success, 'widgets');
}
db_commit();
}
+ /**
+ * createLayoutForTrackerFromArray
+ *
+ * Create a specific layout for a new tracker, based on an descriptive array.
+ * The descriptive array is generated by getLayout function.
+ *
+ * @param int $owner_id the id of the newly created tracker
+ * @param array $layoutDescArr the descriptive array.
+ */
+ function createLayoutForTrackerFromArray($owner_id, $layoutDescArr) {
+ return true;
+ }
+
/**
* createDefaultLayoutForProject
*
WHERE owner_type = $2
AND owner_id = $3
";
- if (db_query_params($sql,array($group_id, self::OWNER_TYPE_GROUP,$template_id))) {
+ if (db_query_params($sql, array($group_id, self::OWNER_TYPE_GROUP, $template_id))) {
$sql = "SELECT layout_id, column_id, name, rank, is_minimized, is_removed, display_preferences, content_id
FROM layouts_contents
WHERE owner_type = $1
AND owner_id = $2
";
- if ($req = db_query_params($sql,array( self::OWNER_TYPE_GROUP,$template_id))) {
+ if ($req = db_query_params($sql, array(self::OWNER_TYPE_GROUP, $template_id))) {
while($data = db_fetch_array($req)) {
$w = Widget::getInstance($data['name']);
if ($w) {
$sql = "INSERT INTO layouts_contents(owner_id, owner_type, content_id, layout_id, column_id, name, rank, is_minimized, is_removed, display_preferences)
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);
";
- db_query_params($sql, array($group_id , self::OWNER_TYPE_GROUP , $content_id , $data['layout_id'] , $data['column_id'] , $data['name'] , $data['rank'] , $data['is_minimized'] , $data['is_removed'] , $data['display_preferences'] ));
+ db_query_params($sql, array($group_id, self::OWNER_TYPE_GROUP, $content_id, $data['layout_id'], $data['column_id'], $data['name'], $data['rank'], $data['is_minimized'], $data['is_removed'], $data['display_preferences']));
echo db_error();
}
}
echo db_error();
}
+ /**
+ * createLayoutForProjectFromArray
+ *
+ * Create a specific layout for a new project, based on an descriptive array.
+ * The descriptive array is generated by getLayout function.
+ *
+ * @param int $group_id the id of the newly created project
+ * @param array $layoutDescArr the descriptive array.
+ */
+ function createLayoutForProjectFromArray($group_id, $layoutDescArr) {
+ if (isset($layoutDescArr['rows']) && is_array($layoutDescArr['rows'])) {
+ $pm = ProjectManager::instance();
+ $project = $pm->getProject($group_id);
+ db_query_params('DELETE FROM layouts_contents WHERE owner_id = $1 AND owner_type = $2', array($group_id, self::OWNER_TYPE_GROUP));
+ db_query_params('DELETE FROM owner_layouts WHERE owner_id = $1 AND owner_type = $2', array($group_id, self::OWNER_TYPE_GROUP));
+ $sql = "INSERT INTO layouts(name, description, scope) VALUES ('custom', '', 'P')";
+ if ($res = db_query_params($sql, array())) {
+ if ($new_layout_id = db_insertid($res, 'layouts', 'id')) {
+ $sql = 'INSERT INTO owner_layouts(layout_id, is_default, owner_id, owner_type) VALUES ($1, $2, $3, $4)';
+ if (db_query_params($sql, array($new_layout_id, 1, $group_id, self::OWNER_TYPE_GROUP))) {
+ //Create rows & columns
+ foreach($layoutDescArr['rows'] as $cols) {
+ $sql = "INSERT INTO layouts_rows(layout_id, rank) VALUES ($1, $2)";
+ if ($res = db_query_params($sql, array($new_layout_id, $cols['rank']))) {
+ if ($row_id = db_insertid($res,'layouts_rows', 'id')) {
+ foreach($cols['columns'] as $column) {
+ $sql = "INSERT INTO layouts_rows_columns(layout_row_id, width) VALUES ($1, $2)";
+ db_query_params($sql, array($row_id, $column['width']));
+ $column_id = db_insertid($res,'layouts_rows_columns', 'id');
+ foreach ($column['contents'] as $new_widget) {
+ $sql = "INSERT INTO layouts_contents (owner_id, owner_type, content_id, layout_id, column_id, name, rank, is_minimized, is_removed, display_preferences)
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10);
+ ";
+ db_query_params($sql, array($group_id, self::OWNER_TYPE_GROUP, $new_widget['content']['content_id'], $new_layout_id, $column_id, $new_widget['content']['id'], 0, $new_widget['is_minimized'], 0, $new_widget['display_preferences']));
+ echo db_error();
+ }
+ }
+ }
+ }
+ }
+ } else {
+ return false;
+ }
+ }
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
/**
* displayAvailableWidgets - Display all widgets that the user can add to the layout
*
}
//If the structure contains at least one column, create a new layout
if (count($rows)) {
- $sql = "INSERT INTO layouts(name, description, scope)
- VALUES ('custom', '', 'P')";
+ $sql = "INSERT INTO layouts(name, description, scope) VALUES ('custom', '', 'P')";
if ($res = db_query_params($sql, array())) {
if ($new_layout_id = db_insertid($res, 'layouts', 'id')) {
//Create rows & columns
$rank = 0;
foreach($rows as $cols) {
- $sql = "INSERT INTO layouts_rows(layout_id, rank)
- VALUES ($1,$2)";
+ $sql = "INSERT INTO layouts_rows(layout_id, rank) VALUES ($1, $2)";
if ($res = db_query_params($sql, array($new_layout_id, $rank++))) {
if ($row_id = db_insertid($res,'layouts_rows', 'id')) {
foreach($cols as $width) {
- $sql = "INSERT INTO layouts_rows_columns(layout_row_id, width)
- VALUES ($1,$2)";
+ $sql = "INSERT INTO layouts_rows_columns(layout_row_id, width) VALUES ($1, $2)";
db_query_params($sql, array($row_id, $width));
}
}
if ($old_scope != 'S') {
$structure = $this->_retrieveStructureOfLayout($old_layout_id);
foreach($structure['rows'] as $row) {
- $sql = "DELETE FROM layouts_rows
- WHERE id = $1";
+ $sql = "DELETE FROM layouts_rows WHERE id = $1";
db_query_params($sql, array($row['id']));
- $sql = "DELETE FROM layouts_rows_columns
- WHERE layout_row_id = $1";
+ $sql = "DELETE FROM layouts_rows_columns WHERE layout_row_id = $1";
db_query_params($sql, array($row['id']));
}
- $sql = "DELETE FROM layouts
- WHERE id = $1";
+ $sql = "DELETE FROM layouts WHERE id = $1";
db_query_params($sql, array($old_layout_id));
}
}
return $categ;
}
+
/**
* addWidget
*
if (db_numrows($res) && !$widget->isUnique() && db_result($res, 0, 'column_id') == 0) {
//search for rank
$sql = "SELECT min(rank) - 1 AS rank FROM layouts_contents WHERE owner_type =$1 AND owner_id = $2 AND layout_id = $3 AND column_id = $4 ";
- $res = db_query_params($sql,array($owner_type, $owner_id, $layout_id,$column_id));
+ $res = db_query_params($sql, array($owner_type, $owner_id, $layout_id, $column_id));
echo db_error();
$rank = db_result($res, 0, 'rank');
AND owner_id = $4
AND name = $5
AND layout_id = $6";
- db_query_params($sql,array($column_id,$rank,$owner_type, $owner_id,$name, $layout_id));
+ db_query_params($sql, array($column_id, $rank,$owner_type, $owner_id,$name, $layout_id));
echo db_error();
} else {
//Insert
LEFT JOIN layouts_contents AS R2 USING ( owner_type, owner_id, layout_id, column_id )
ORDER BY rank ASC
LIMIT 1";
- db_query_params($sql,array($name,$content_id,$owner_type,$owner_id,$layout_id,$column_id));
+ db_query_params($sql, array($name, $content_id, $owner_type, $owner_id, $layout_id, $column_id));
echo db_error();
}
$this->feedback();
*/
function removeWidget($owner_id, $owner_type, $layout_id, $name, $instance_id, &$widget) {
$sql = "DELETE FROM layouts_contents WHERE owner_type =$1 AND owner_id = $2 AND layout_id = $3 AND name = $4 AND content_id = $5";
- db_query_params($sql,array($owner_type,$owner_id,$layout_id,$name,$instance_id));
+ db_query_params($sql, array($owner_type, $owner_id, $layout_id, $name, $instance_id));
if (!db_error()) {
$widget->destroy($instance_id);
}
*/
function mimizeWidget($owner_id, $owner_type, $layout_id, $name, $instance_id) {
$sql = "UPDATE layouts_contents SET is_minimized = 1 WHERE owner_type = $1 AND owner_id = $2 AND layout_id = $3 AND name = $4 AND content_id = $5";
- db_query_params($sql,array($owner_type,$owner_id,$layout_id,$name,$instance_id));
+ db_query_params($sql, array($owner_type, $owner_id, $layout_id, $name, $instance_id));
echo db_error();
}
*/
function maximizeWidget($owner_id, $owner_type, $layout_id, $name, $instance_id) {
$sql = "UPDATE layouts_contents SET is_minimized = 0 WHERE owner_type =$1 AND owner_id =$2 AND layout_id = $3 AND name = $4 AND content_id = $5";
- db_query_params($sql,array($owner_type,$owner_id,$layout_id,$name,$instance_id));
+ db_query_params($sql, array($owner_type, $owner_id, $layout_id, $name, $instance_id));
echo db_error();
}
*/
function displayWidgetPreferences($owner_id, $owner_type, $layout_id, $name, $instance_id) {
$sql = "UPDATE layouts_contents SET display_preferences = 1, is_minimized = 0 WHERE owner_type = $1 AND owner_id = $2 AND layout_id = $3 AND name = $4 AND content_id = $5";
- db_query_params($sql,array($owner_type,$owner_id,$layout_id,$name,$instance_id));
+ db_query_params($sql, array($owner_type, $owner_id, $layout_id, $name, $instance_id));
echo db_error();
}
*/
function hideWidgetPreferences($owner_id, $owner_type, $layout_id, $name, $instance_id) {
$sql = "UPDATE layouts_contents SET display_preferences = 0 WHERE owner_type = $1 AND owner_id = $2 AND layout_id = $3 AND name = $4 AND content_id = $5";
- db_query_params($sql,array($owner_type,$owner_id,$layout_id,$name,$instance_id));
+ db_query_params($sql, array($owner_type, $owner_id, $layout_id, $name, $instance_id));
echo db_error();
}
//Compute differences
$originals = array();
$sql = "SELECT * FROM layouts_contents WHERE owner_type = $1 AND owner_id = $2 AND column_id = $3 ORDER BY rank";
- $res = db_query_params($sql,array($owner_type, $owner_id, $column_id));
+ $res = db_query_params($sql, array($owner_type, $owner_id, $column_id));
echo db_error();
while($data = db_fetch_array($res)) {
$originals[] = array($data['content_id'], $data['name']);
WHERE owner_type = $1
AND owner_id = $2
AND column_id = $3". $_and;
- db_query_params($sql,array($owner_type, $owner_id, $column_id));
+ db_query_params($sql, array($owner_type, $owner_id, $column_id));
echo db_error();
}
WHERE owner_type = $2
AND owner_id = $3' . $_and ."
AND layout_id = $4";
- db_query_params($sql,array($column_id,$owner_type,$owner_id,$layout_id));
+ db_query_params($sql, array($column_id, $owner_type, $owner_id, $layout_id));
echo db_error();
}
$values = array();
foreach($names as $name) {
$sql = 'UPDATE layouts_contents SET rank = $1 WHERE owner_type =$2 AND owner_id = $3 AND column_id = $4 AND name = $5 AND content_id = $6';
- db_query_params($sql, array($rank++,$owner_type,$owner_id,$column_id,$name[1],$name[0]));
+ db_query_params($sql, array($rank++, $owner_type, $owner_id, $column_id, $name[1], $name[0]));
echo db_error();
}
}
while ($data = db_fetch_array($req_rows)) {
$row = new WidgetLayout_Row($data['id'], $data['rank']);
$sql = 'SELECT * FROM layouts_rows_columns WHERE layout_row_id = $1';
- $req_cols = db_query_params($sql,array($row->id));
+ $req_cols = db_query_params($sql, array($row->id));
while ($data = db_fetch_array($req_cols)) {
$col = new WidgetLayout_Row_Column($data['id'], $data['width']);
$sql = "SELECT * FROM layouts_contents WHERE owner_type = $1 AND owner_id = $2 AND column_id = $3 ORDER BY rank";
- $req_content = db_query_params($sql,array($owner_type, $owner_id, $col->id));
+ $req_content = db_query_params($sql, array($owner_type, $owner_id, $col->id));
while ($data = db_fetch_array($req_content)) {
$c = Widget::getInstance($data['name']);
if ($c && $c->isAvailable()) {