fMessaging::create('affected', "/graphs.php", $line->getAlias()); fMessaging::create('success', "/graphs.php", 'The Line ' . $line->getAlias() . ' was successfully created'); fURL::redirect($graph_url); } catch (fExpectedException $e) { fMessaging::create('error', fURL::get(), $e->getMessage()); } } include VIEW_PATH . '/add_edit_line.php'; } elseif ('clone' == $action) { $line_to_clone = new Line($line_id); $graph_id = $line_to_clone->getGraphId(); $graph = new Graph($graph_id); if (fRequest::isPost()) { try { fRequest::validateCSRFToken(fRequest::get('token')); Line::cloneLine($line_id); $graph_url = Graph::makeUrl('edit', $graph); fMessaging::create('affected', $graph_url, $line_to_clone->getAlias()); fMessaging::create('success', $graph_url, 'The Line ' . $line_to_clone->getAlias() . ' was successfully cloned'); fURL::redirect($graph_url); } catch (fExpectedException $e) { fMessaging::create('error', fURL::get(), $e->getMessage()); } } $dashboard = new Dashboard($graph->getDashboardId()); $dashboard_id = $graph->getDashboardId(); $lines = Line::findAll($graph_id); include VIEW_PATH . '/add_edit_graph.php'; } elseif ('reorder' == $action) { $drag_order = fRequest::get('drag_order'); $error = false;
public static function cloneGraph($graph_id, $dashboard_id = NULL) { $graph_to_clone = new Graph($graph_id); if (empty($dashboard_id)) { $dashboard_id = $graph_to_clone->getDashboardId(); } $graph = new Graph(); $clone_name = 'Clone of ' . $graph_to_clone->getName(); // If it's too long, we truncate if (strlen($clone_name) > 255) { $clone_name = substr($clone_name, 0, 255); } $graph->setName($clone_name); $graph->setArea($graph_to_clone->getArea()); $graph->setVtitle($graph_to_clone->getVtitle()); $graph->setDescription($graph_to_clone->getDescription()); $graph->setDashboardId($dashboard_id); $graph->setWeight($graph_to_clone->getWeight()); $graph->setTimeValue($graph_to_clone->getTimeValue()); $graph->setUnit($graph_to_clone->getUnit()); $graph->setCustomOpts($graph_to_clone->getCustomOpts()); $graph->setStartsAtMidnight($graph_to_clone->getStartsAtMidnight()); $graph->store(); // Clone of the lines $lines = Line::findAll($graph_id); foreach ($lines as $line_to_clone) { Line::cloneLine($line_to_clone->getLineId(), TRUE, $graph->getGraphId()); } }