Skip to content
Snippets Groups Projects
Commit d8cf23ea authored by Peter Rotich's avatar Peter Rotich
Browse files

Load sample organization with custom data/fields

Make the organization page happy!
parent 41ccaf26
No related branches found
No related tags found
No related merge requests found
...@@ -47,26 +47,30 @@ class Internationalization { ...@@ -47,26 +47,30 @@ class Internationalization {
function loadDefaultData() { function loadDefaultData() {
# notrans -- do not translate the contents of this array # notrans -- do not translate the contents of this array
$models = array( $models = array(
'department.yaml' => 'Dept', 'department.yaml' => 'Dept::create',
'sla.yaml' => 'SLA', 'sla.yaml' => 'SLA::create',
'form.yaml' => 'DynamicForm', 'form.yaml' => 'DynamicForm::create',
// Note that department, sla, and forms are required for // Note that department, sla, and forms are required for
// help_topic // help_topic
'help_topic.yaml' => 'Topic', 'help_topic.yaml' => 'Topic::create',
'filter.yaml' => 'Filter', 'filter.yaml' => 'Filter::create',
'team.yaml' => 'Team', 'team.yaml' => 'Team::create',
// Organization
'organization.yaml' => 'Organization::__create',
// Note that group requires department // Note that group requires department
'group.yaml' => 'Group', 'group.yaml' => 'Group::create',
'file.yaml' => 'AttachmentFile', 'file.yaml' => 'AttachmentFile::create',
); );
$errors = array(); $errors = array();
foreach ($models as $yaml=>$m) foreach ($models as $yaml=>$m) {
if ($objects = $this->getTemplate($yaml)->getData()) if ($objects = $this->getTemplate($yaml)->getData()) {
foreach ($objects as $o) foreach ($objects as $o) {
// Model::create($o) if ($m && is_callable($m))
call_user_func_array( @call_user_func_array($m, array($o, &$errors));
array($m, 'create'), array($o, &$errors)); }
}
}
// Priorities // Priorities
$priorities = $this->getTemplate('priority.yaml')->getData(); $priorities = $this->getTemplate('priority.yaml')->getData();
......
...@@ -102,7 +102,7 @@ class Organization extends OrganizationModel { ...@@ -102,7 +102,7 @@ class Organization extends OrganizationModel {
function addDynamicData($data) { function addDynamicData($data) {
$of = OrganizationForm::getInstance($this->id); $of = OrganizationForm::getInstance($this->id, true);
foreach ($of->getFields() as $f) foreach ($of->getFields() as $f)
if (isset($data[$f->get('name')])) if (isset($data[$f->get('name')]))
$of->setAnswer($f->get('name'), $data[$f->get('name')]); $of->setAnswer($f->get('name'), $data[$f->get('name')]);
...@@ -116,7 +116,7 @@ class Organization extends OrganizationModel { ...@@ -116,7 +116,7 @@ class Organization extends OrganizationModel {
if (!isset($this->_entries)) { if (!isset($this->_entries)) {
$this->_entries = DynamicFormEntry::forOrganization($this->id)->all(); $this->_entries = DynamicFormEntry::forOrganization($this->id)->all();
if (!$this->_entries) { if (!$this->_entries) {
$g = OrganizationForm::getInstance($this->id); $g = OrganizationForm::getInstance($this->id, true);
$g->save(); $g->save();
$this->_entries[] = $g; $this->_entries[] = $g;
} }
...@@ -321,6 +321,19 @@ class Organization extends OrganizationModel { ...@@ -321,6 +321,19 @@ class Organization extends OrganizationModel {
return $valid ? self::fromVars($form->getClean()) : null; return $valid ? self::fromVars($form->getClean()) : null;
} }
// Custom create called by installer/upgrader to load initial data
static function __create($ht, &$error=false) {
$ht['created'] = new SqlFunction('NOW');
$org = Organization::create($ht);
// Add dynamic data (if any)
if ($ht['fields']) {
$org->save(true);
$org->addDynamicData($ht['fields']);
}
return $org;
}
} }
class OrganizationForm extends DynamicForm { class OrganizationForm extends DynamicForm {
...@@ -343,8 +356,8 @@ class OrganizationForm extends DynamicForm { ...@@ -343,8 +356,8 @@ class OrganizationForm extends DynamicForm {
return static::$form; return static::$form;
} }
static function getInstance($object_id=0) { static function getInstance($object_id=0, $new=false) {
if (!isset(static::$instance)) if ($new || !isset(static::$instance))
static::$instance = static::getDefaultForm()->instanciate(); static::$instance = static::getDefaultForm()->instanciate();
static::$instance->object_type = 'O'; static::$instance->object_type = 'O';
...@@ -368,7 +381,13 @@ class OrganizationForm extends DynamicForm { ...@@ -368,7 +381,13 @@ class OrganizationForm extends DynamicForm {
} }
} }
$o =static::objects(); if (!$form || !($o=static::objects()))
return false;
// Create sample organization.
if (($orgs = $i18n->getTemplate('organization.yaml')->getData()))
foreach($orgs as $org)
Organization::__create($org);
return $o[0]; return $o[0];
} }
......
#
# Initial organizations defined for the system.
#
# Fields:
# name - Descriptive name for the organization
# fields - custom fields
#
---
- name: osTicket
fields:
address:|
420 Desoto Street
Alexandria, LA 71301
phone: (318) 290-3674
website: http://osticket.com
notes: >
Not only do we develop the software, we also use it to manage
support for osTicket. Let us help you quickly implement and leverage
the full potential of osTicket's features and functionality. Contact
us for professional support or visit our website for documentation
and community support.
...@@ -9,7 +9,7 @@ jQuery(function() { ...@@ -9,7 +9,7 @@ jQuery(function() {
var tip_box = $('<div>').addClass('tip_box'); var tip_box = $('<div>').addClass('tip_box');
var tip_shadow = $('<div>').addClass('tip_shadow'); var tip_shadow = $('<div>').addClass('tip_shadow');
var tip_content = $('<div>').addClass('tip_content').load(url, function() { var tip_content = $('<div>').addClass('tip_content').load(url, function() {
tip_content.prepend('<a href="#" class="tip_close">x</a>'); tip_content.prepend('<a href="#" class="tip_close"><i class="icon-remove-circle"></i></a>');
}); });
var the_tip = tip_box.append(tip_arrow).append(tip_content).prepend(tip_shadow); var the_tip = tip_box.append(tip_arrow).append(tip_content).prepend(tip_shadow);
......
...@@ -259,7 +259,14 @@ class Installer extends SetupWizard { ...@@ -259,7 +259,14 @@ class Installer extends SetupWizard {
$errors = array(); $errors = array();
$ticket_vars = $i18n->getTemplate('templates/ticket/installed.yaml') $ticket_vars = $i18n->getTemplate('templates/ticket/installed.yaml')
->getData(); ->getData();
$tid = Ticket::create($ticket_vars, $errors, 'api', false, false); $ticket = Ticket::create($ticket_vars, $errors, 'api', false, false);
if ($ticket
&& ($org = Organization::objects()->order_by('id')->one())) {
$user=User::lookup($ticket->getOwnerId());
$user->setOrganization($org);
}
//TODO: create another personalized ticket and assign to admin?? //TODO: create another personalized ticket and assign to admin??
......
...@@ -100,8 +100,10 @@ switch(strtolower($_SESSION['ost_installer']['s'])) { ...@@ -100,8 +100,10 @@ switch(strtolower($_SESSION['ost_installer']['s'])) {
break; break;
case 'done': case 'done':
$inc='install-done.inc.php'; $inc='install-done.inc.php';
if(!$installer->config_exists()) if (!$installer->config_exists())
$inc='install-prereq.inc.php'; $inc='install-prereq.inc.php';
else // Clear installer session
$_SESSION['ost_installer'] = array();
break; break;
default: default:
//Fail IF any of the old config files exists. //Fail IF any of the old config files exists.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment