summaryrefslogtreecommitdiffstats
path: root/examples/app/view
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2016-10-22 00:29:30 -0400
committerMalf Furious <m@lfurio.us>2016-10-22 00:29:30 -0400
commited99654d2e139a847a63e9295bf976d17462ee34 (patch)
tree23ab0c9d3b813da85e08d4008dbf98b7f0c9fd01 /examples/app/view
parent9d0ff6546fb03489bbd127aeec6ee161e204a139 (diff)
downloadscrott-ed99654d2e139a847a63e9295bf976d17462ee34.tar.gz
scrott-ed99654d2e139a847a63e9295bf976d17462ee34.zip
Deprecate application code
Setup to perform an iteration of development focused on a simpler implementation and eliminating redundancy in design.
Diffstat (limited to 'examples/app/view')
-rw-r--r--examples/app/view/auth/default.view.php127
-rw-r--r--examples/app/view/common/foot.view.php19
-rw-r--r--examples/app/view/common/group.setting.modal.view.php96
-rw-r--r--examples/app/view/common/head.view.php26
-rw-r--r--examples/app/view/common/newgroup.modal.view.php49
-rw-r--r--examples/app/view/common/ownership.setting.modal.view.php35
-rw-r--r--examples/app/view/common/permissions.setting.modal.view.php82
-rw-r--r--examples/app/view/common/setting.modal.view.php346
-rw-r--r--examples/app/view/common/topp.view.php83
-rw-r--r--examples/app/view/dashboard/default.view.php27
-rw-r--r--examples/app/view/deleteacct/default.view.php51
-rw-r--r--examples/app/view/except/default.view.php47
-rw-r--r--examples/app/view/master/foot.view.php29
-rw-r--r--examples/app/view/master/head.view.php23
-rw-r--r--examples/app/view/master/topp.view.php62
-rw-r--r--examples/app/view/obj/group.view.php43
-rw-r--r--examples/app/view/sysconf/default.view.php138
-rw-r--r--examples/app/view/sysconf/group.modal.view.php49
-rw-r--r--examples/app/view/sysconf/issue.modal.view.php52
-rw-r--r--examples/app/view/sysconf/message.modal.view.php55
-rw-r--r--examples/app/view/sysconf/pad.modal.view.php68
-rw-r--r--examples/app/view/sysconf/stage.modal.view.php52
-rw-r--r--examples/app/view/sysconf/user.modal.view.php48
23 files changed, 1607 insertions, 0 deletions
diff --git a/examples/app/view/auth/default.view.php b/examples/app/view/auth/default.view.php
new file mode 100644
index 0000000..9d4c9b4
--- /dev/null
+++ b/examples/app/view/auth/default.view.php
@@ -0,0 +1,127 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/common/head.view.php"; ?>
+ <title>Scrott - Not logged in</title>
+ </head>
+
+ <body>
+ <?php include "view/common/topp.view.php"; ?>
+
+ <div class="container">
+ <?php if (isset($mod->noaccounts)) { ?>
+ <div class="jumbotron">
+ <h1>Almost there....</h1>
+ <p class="text-center">Scrott's configuration is working, but no user accounts exist.<br />Use the form below to signup as an admin.</p>
+ <h5 class="text-center">It is presumed that you are the administrator for this Scrott install.<br />There is a security risk involved with exposing this page to the public!</h5>
+ </div>
+ <?php } ?>
+
+ <div class="tab-content">
+ <div class="tab-pane fade <?=$mod->activeTab['login']?>" id="loginTab">
+ <div class="row">
+ <div class="col-md-4"></div>
+
+ <div class="col-md-4">
+ <div class="panel panel-default">
+ <div class="panel-body text-center">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="login" />
+ <h1>Login</h1>
+
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" name="input[username]" class="form-control" required="true" autofocus />
+ </div>
+
+ <div class="form-group">
+ <label>Password</label>
+ <input type="password" name="input[password]" class="form-control" />
+ </div>
+
+ <div class="btn-group pull-right">
+ <?php if ($mod->tabSwap) { ?>
+ <a href="#signupTab" class="btn btn-default" aria-controls="signup" data-toggle="tab">
+ Signup <span class="glyphicon glyphicon-user"></span>
+ </a>
+ <?php } ?>
+
+ <button type="submit" class="btn btn-success">
+ Login <span class="glyphicon glyphicon-log-in"></span>
+ </button>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-md-4"></div>
+ </div>
+ </div>
+
+ <div class="tab-pane fade <?=$mod->activeTab['signup']?>" id="signupTab">
+ <div class="row">
+ <div class="col-md-3"></div>
+
+ <div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="signup" />
+ <h1 class="text-center">Signup for Scrott</h1>
+
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" name="input[username]" class="form-control" required="true" maxlength="50" />
+ </div>
+
+ <div class="form-group">
+ <label>Password</label>
+ <input type="password" name="input[password]" class="form-control" />
+ </div>
+
+ <div class="form-group">
+ <label>Confirm Password</label>
+ <input type="password" name="input[cPassword]" class="form-control" />
+ </div>
+
+ <div class="btn-group pull-right">
+ <?php if ($mod->tabSwap) { ?>
+ <a href="#loginTab" class="btn btn-default" aria-controls="login" data-toggle="tab">
+ Cancel <span class="glyphicon glyphicon-remove"></span>
+ </a>
+ <?php } ?>
+
+ <button type="submit" class="btn btn-success">
+ Signup <span class="glyphicon glyphicon-user"></span>
+ </button>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-md-3"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <?php include "view/common/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/common/foot.view.php b/examples/app/view/common/foot.view.php
new file mode 100644
index 0000000..977ac04
--- /dev/null
+++ b/examples/app/view/common/foot.view.php
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php include "view/master/foot.view.php"; ?>
diff --git a/examples/app/view/common/group.setting.modal.view.php b/examples/app/view/common/group.setting.modal.view.php
new file mode 100644
index 0000000..d0e11ca
--- /dev/null
+++ b/examples/app/view/common/group.setting.modal.view.php
@@ -0,0 +1,96 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php require_once "view/common/permissions.setting.modal.view.php"; ?>
+
+<div class="tab-pane fade <?=$mod->getSettingModalTabDispClasses()?>" id="settGroupTab">
+ <p>&nbsp;</p>
+
+ <form method="post" action="<?=$mod->ap()?>" enctype="multipart/form-data">
+ <input type="hidden" name="input[action]" value="common-setting-group" />
+ <input type="hidden" name="input[guid]" value="<?=$mod->group->guid?>" />
+
+ <div class="row">
+ <div class="col-md-8">
+ <div class="form-group">
+ <label>Group name</label>
+ <input type="text" name="input[name]" class="form-control" value="<?=$mod->group->name?>" required="true" maxlength="50" <?=($mod->group->canModify($mod->getCurrentUser()) ? "" : "disabled")?> />
+ </div>
+ </div>
+
+ <div class="col-md-4 text-center">
+ <img src="<?=$mod->group->getHeadImage()?>" alt="<?=$mod->group->name?>" class="img-circle" height="100" />
+
+ <?php if ($mod->group->canModify($mod->getCurrentUser())) { ?>
+ <br />
+ <br />
+ <button type="button" class="btn btn-default btn-xs" data-toggle="collapse" data-target="#inputGroupImageCollapse">
+ <span class="glyphicon glyphicon-camera"></span> Upload new image
+ </button>
+ <br />
+ <button type="submit" name="input[rmImage]" class="btn btn-danger btn-xs" onclick="return assertConfirm()">
+ <span class="glyphicon glyphicon-remove"></span> Remove image
+ </button>
+ <?php } ?>
+ </div>
+ </div>
+
+ <div class="collapse" id="inputGroupImageCollapse">
+ <div class="form-group">
+ <label>Group Image</label>
+ <input type="file" name="attachment" />
+ </div>
+ </div>
+
+ <?php common_setting_permissions($mod, $mod->group); ?>
+
+ <?php if ($mod->group->canModify($mod->getCurrentUser())) { ?>
+ <p>&nbsp;</p>
+ <button type="submit" class="btn btn-success pull-right">Save</button>
+ <?php } ?>
+ </form>
+
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+
+ <div class="btn-toolbar pull-right">
+ <?php if ($mod->group->canModifyMembers($mod->getCurrentUser())) { ?>
+ <div class="btn-group">
+ <a href="<?=$mod->group->getURL()?>/members" class="btn btn-primary btn-xs">
+ <span class="glyphicon glyphicon-user"></span> Manage Members
+ </a>
+ </div>
+ <?php } ?>
+
+ <?php if ($mod->group->isOwner($mod->getCurrentUser())) { ?>
+ <div class="btn-group">
+ <a href="<?=$mod->group->getURL()?>/transfer" class="btn btn-danger btn-xs">
+ <span class="glyphicon glyphicon-new-window"></span> Transfer Ownership
+ </a>
+ </div>
+
+ <div class="btn-group">
+ <a href="<?=$mod->group->getURL()?>/delete" class="btn btn-danger btn-xs">
+ <span class="glyphicon glyphicon-trash"></span> Delete Group
+ </a>
+ </div>
+ <?php } ?>
+ </div>
+
+ <p>&nbsp;</p>
+</div>
diff --git a/examples/app/view/common/head.view.php b/examples/app/view/common/head.view.php
new file mode 100644
index 0000000..76880a6
--- /dev/null
+++ b/examples/app/view/common/head.view.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php include "view/master/head.view.php"; ?>
+
+<style type="text/css">
+ body
+ {
+ padding-top: 70px;
+ }
+</style>
diff --git a/examples/app/view/common/newgroup.modal.view.php b/examples/app/view/common/newgroup.modal.view.php
new file mode 100644
index 0000000..3dd631c
--- /dev/null
+++ b/examples/app/view/common/newgroup.modal.view.php
@@ -0,0 +1,49 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="newgroupModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog modal-sm" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title"><span class="glyphicon glyphicon-th"></span> Create new Group</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="common-group-add" />
+ <div class="form-group">
+ <label>Group Name</label>
+ <input type="text" name="input[name]" class="form-control" required="true" maxlength="50" />
+ </div>
+
+ <button type="submit" class="btn btn-success pull-right">
+ <span class="glyphicon glyphicon-plus"></span> Add
+ </button>
+ </form>
+
+ <p>&nbsp;</p>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/common/ownership.setting.modal.view.php b/examples/app/view/common/ownership.setting.modal.view.php
new file mode 100644
index 0000000..3f7c382
--- /dev/null
+++ b/examples/app/view/common/ownership.setting.modal.view.php
@@ -0,0 +1,35 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php function common_setting_ownership($mod, $obj) { ?>
+ <?php if ($obj->isOwner($mod->getCurrentUser())) { ?>
+ <label class="text-danger">Change Owner</label>
+ <div class="checkbox">
+ <label data-toggle="collapse" data-target="#inputGroupOwnerCollapse">
+ <input type="checkbox" name="input[setOwner]" value="1" /> Transfer Ownership
+ </label>
+ </div>
+
+ <div class="collapse" id="inputGroupOwnerCollapse">
+ <div class="form-group has-error">
+ <label class="control-label">Owner Username</label>
+ <input type="text" name="input[newOwner]" class="form-control" value="<?=$obj->getOwner()->name?>" />
+ </div>
+ </div>
+ <?php } ?>
+<?php } ?>
diff --git a/examples/app/view/common/permissions.setting.modal.view.php b/examples/app/view/common/permissions.setting.modal.view.php
new file mode 100644
index 0000000..55e4157
--- /dev/null
+++ b/examples/app/view/common/permissions.setting.modal.view.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php function common_setting_permissions($mod, $obj) { ?>
+ <?php if ($obj->canModifyPermissions($mod->getCurrentUser())) { ?>
+ <label>Permissions</label>
+ <div class="row">
+ <div class="col-md-6">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm0]" value="1" <?=($obj->perms & 0x100 ? "checked" : "")?> /> Members can modify
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm1]" value="1" <?=($obj->perms & 0x080 ? "checked" : "")?> /> Members can modify members
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm2]" value="1" <?=($obj->perms & 0x040 ? "checked" : "")?> /> Members can access children
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm3]" value="1" <?=($obj->perms & 0x020 ? "checked" : "")?> /> Members can create children
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm4]" value="1" <?=($obj->perms & 0x010 ? "checked" : "")?> /> Members can modify children
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm5]" value="1" <?=($obj->perms & 0x008 ? "checked" : "")?> /> Members can modify children's members
+ </label>
+ </div>
+ </div>
+
+ <div class="col-md-6">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm6]" value="1" <?=($obj->perms & 0x004 ? "checked" : "")?> /> Public can access
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm7]" value="1" <?=($obj->perms & 0x002 ? "checked" : "")?> /> Public can access children
+ </label>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[perm8]" value="1" <?=($obj->perms & 0x001 ? "checked" : "")?> /> Public can create children
+ </label>
+ </div>
+ </div>
+ </div>
+ <?php } ?>
+<?php } ?>
diff --git a/examples/app/view/common/setting.modal.view.php b/examples/app/view/common/setting.modal.view.php
new file mode 100644
index 0000000..2217805
--- /dev/null
+++ b/examples/app/view/common/setting.modal.view.php
@@ -0,0 +1,346 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="settingModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title"><span class="glyphicon glyphicon-cog"></span> Settings</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <ul class="nav nav-tabs" role="tablist">
+ <?php if ($mod->common_settingShowTab['group']) { ?>
+ <li class="<?=$mod->getSettingModalTabActiveClass()?>"><a href="#settGroupTab" aria-controls="settGroupTab" data-toggle="tab">
+ <span class="glyphicon glyphicon-th"></span> <?=$mod->group->name?>
+ </a></li>
+ <?php } ?>
+
+ <li class="<?=$mod->getSettingModalTabActiveClass()?>"><a href="#settUserTab" aria-controls="settUserTab" data-toggle="tab">
+ <span class="glyphicon glyphicon-user"></span> <?=$mod->getCurrentUser()->getDisplayName()?>
+ </a></li>
+
+ <?php if ($mod->getCurrentUser()->admin == 1) { ?>
+ <li><a href="#settAdminTab" aria-controls="settAdminTab" data-toggle="tab"><span class="glyphicon glyphicon-sunglasses"></span> Admin</a></li>
+ <li><a href="#settUsersTab" aria-controls="settUsersTab" data-toggle="tab"><span class="glyphicon glyphicon-th"></span> All Users</a></li>
+ <?php } ?>
+ </ul>
+
+ <div class="tab-content">
+ <?php if ($mod->common_settingShowTab['group']) { ?>
+ <?php include "view/common/group.setting.modal.view.php"; ?>
+ <?php } ?>
+
+ <div class="tab-pane fade <?=$mod->getSettingModalTabDispClasses()?>" id="settUserTab">
+ <p>&nbsp;</p>
+
+ <form method="post" action="<?=$mod->ap()?>" enctype="multipart/form-data">
+ <input type="hidden" name="input[action]" value="common-setting-user" />
+
+ <div class="row">
+ <div class="col-md-8">
+ <?php if ($mod->getCurrentUser()->admin == 1) { ?>
+ <p class="pull-right"><span class="glyphicon glyphicon-sunglasses"></span> <?=$mod->getCurrentUser()->getDisplayName()?> is a Scrott Administrator</p>
+ <?php } ?>
+
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" class="form-control" value="<?=$mod->getCurrentUser()->name?>" disabled />
+ </div>
+
+ <div class="checkbox">
+ <label data-toggle="collapse" data-target="#inputUserPasswdCollapse">
+ <input type="checkbox" name="input[setPasswd]" value="1" /> Change Password
+ </label>
+ </div>
+ </div>
+
+ <div class="col-md-4 text-center">
+ <img src="<?=$mod->getCurrentUser()->getHeadImage()?>" alt="<?=$mod->getCurrentUser()->getDisplayName()?>" class="img-circle" height="100" />
+ <br />
+ <br />
+ <button type="button" class="btn btn-default btn-xs" data-toggle="collapse" data-target="#inputUserImageCollapse">
+ <span class="glyphicon glyphicon-camera"></span> Upload new image
+ </button>
+ <br />
+ <button type="submit" name="input[rmImage]" class="btn btn-danger btn-xs" onclick="return assertConfirm()">
+ <span class="glyphicon glyphicon-remove"></span> Remove image
+ </button>
+ </div>
+ </div>
+
+ <div class="collapse" id="inputUserImageCollapse">
+ <div class="form-group">
+ <label>User Image</label>
+ <input type="file" name="attachment" />
+ </div>
+ </div>
+
+ <div class="collapse" id="inputUserPasswdCollapse">
+ <div class="form-group">
+ <label>Current Password</label>
+ <input type="password" name="input[curPasswd]" class="form-control" />
+ </div>
+
+ <div class="form-group">
+ <label>New Password</label>
+ <input type="password" name="input[newPasswd]" class="form-control" />
+ </div>
+
+ <div class="form-group">
+ <label>Confirm Password</label>
+ <input type="password" name="input[confPasswd]" class="form-control" />
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label>Alias</label>
+ <input type="text" name="input[alias]" class="form-control" value="<?=$mod->getCurrentUser()->alias?>" maxlength="50" />
+ </div>
+
+ <div class="form-group">
+ <label>Email</label>
+ <input type="text" name="input[email]" class="form-control" value="<?=$mod->getCurrentUser()->email?>" maxlength="50" />
+ </div>
+
+ <?php if ($mod->getCurrentUser()->email != "" && $mod->getCurrentUser()->emailConf == 0) { ?>
+ <div class="form-group has-warning">
+ <label class="control-label">Email Confirmation Key</label>
+ <input type="text" name="input[emailConfKey]" class="form-control" />
+ <span class="help-block">You have not yet confirmed ownership of your saved email address</span>
+ </div>
+ <?php } ?>
+
+ <button type="submit" class="btn btn-success pull-right">Save</button>
+ </form>
+
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+
+ <a href="<?=$mod->ar()?>/deleteaccount" class="btn btn-danger btn-xs pull-right"><span class="glyphicon glyphicon-trash"></span> Delete Account</a>
+
+ <p>&nbsp;</p>
+ </div>
+
+ <?php if ($mod->getCurrentUser()->admin == 1) { ?>
+ <div class="tab-pane fade" id="settAdminTab">
+ <p>&nbsp;</p>
+
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="common-setting-admin" />
+ <div class="form-group">
+ <label>HTTP(S)</label>
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="force" <?=$mod->common_settingAdminSettSSLChecked['force']?> <?=$mod->common_settingAdminSettSSLDisabled?> />
+ Always Force SSL
+ </label>
+ </div>
+
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="neither" <?=$mod->common_settingAdminSettSSLChecked['neither']?> <?=$mod->common_settingAdminSettSSLDisabled?> />
+ Neither
+ </label>
+ </div>
+
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="forbid" <?=$mod->common_settingAdminSettSSLChecked['forbid']?> <?=$mod->common_settingAdminSettSSLDisabled?> />
+ Always Forbid SSL
+ </label>
+ </div>
+ </div>
+
+ <label>Access</label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[allowPublicSignup]" value="1" <?=$mod->common_settingAdminAllowPublicSignupChecked?> /> Allow anyone to create an account
+ </label>
+ </div>
+
+ <button type="submit" class="btn btn-success pull-right">Save</button>
+ </form>
+
+ <p>&nbsp;</p>
+ </div>
+
+ <div class="tab-pane fade" id="settUsersTab">
+ <p>&nbsp;</p>
+
+ <div class="panel-group" id="common-setting-allusers">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">
+ <a href="#common-setting-allusers-add-collapse" data-toggle="collapse" data-parent="#common-setting-allusers" aria-expanded="false">
+ <span class="glyphicon glyphicon-plus"></span> Add New User
+ </a>
+ </h4>
+ </div>
+
+ <div class="panel-collapse collapse" id="common-setting-allusers-add-collapse">
+ <div class="panel-body">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="common-setting-allusers-adduser" />
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" name="input[username]" class="form-control" required="true" maxlength="50" />
+ </div>
+
+ <div class="form-group">
+ <label>Password</label>
+ <input type="password" name="input[password]" class="form-control" />
+ </div>
+
+ <div class="form-group">
+ <label>Confirm Password</label>
+ <input type="password" name="input[cPassword]" class="form-control" />
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[admin]" value="1" /> Administrator
+ </label>
+ </div>
+
+ <div class="form-group">
+ <label>Alias</label>
+ <input type="text" name="input[alias]" class="form-control" maxlength="50" />
+ </div>
+
+ <div class="form-group">
+ <label>Email</label>
+ <input type="text" name="input[email]" class="form-control" maxlength="50" />
+ </div>
+
+ <button type="submit" class="btn btn-success pull-right">Add</button>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <?php foreach ($mod->common_settingAllUsers as $user) { ?>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">
+ <a href="#common-setting-allusers-<?=$user->guid?>-collapse" data-toggle="collapse" data-parent="#common-setting-allusers" aria-expanded="false">
+ <span class="<?=$user->getGlyphicon()?>"></span> <?=$user->name?> <?=($user->alias != "" ? "(" . $user->alias . ")" : "")?>
+ </a>
+ </h4>
+ </div>
+
+ <div class="panel-collapse collapse" id="common-setting-allusers-<?=$user->guid?>-collapse">
+ <div class="panel-body">
+ <form method="post" action="<?=$mod->ap()?>" enctype="multipart/form-data">
+ <input type="hidden" name="input[action]" value="common-setting-allusers-edituser" />
+ <input type="hidden" name="input[guid]" value="<?=$user->guid?>" />
+
+ <div class="row">
+ <div class="col-md-8">
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" class="form-control" value="<?=$user->name?>" disabled />
+ </div>
+
+ <div class="checkbox">
+ <label data-toggle="collapse" data-target="#input<?=$user->guid?>PasswdCollapse">
+ <input type="checkbox" name="input[setPasswd]" value="1" /> Change Password
+ </label>
+ </div>
+ </div>
+
+ <div class="col-md-4 text-center">
+ <img src="<?=$user->getHeadImage()?>" alt="<?=$user->getDisplayName()?>" class="img-circle" height="100" />
+ <br />
+ <br />
+ <button type="button" class="btn btn-default btn-xs" data-toggle="collapse" data-target="#input<?=$user->guid?>ImageCollapse">
+ <span class="glyphicon glyphicon-camera"></span> Upload new image
+ </button>
+ <br />
+ <button type="submit" name="input[rmImage]" class="btn btn-danger btn-xs" onclick="return assertConfirm()">
+ <span class="glyphicon glyphicon-remove"></span> Remove image
+ </button>
+ </div>
+ </div>
+
+ <div class="collapse" id="input<?=$user->guid?>ImageCollapse">
+ <div class="form-group">
+ <label>User Image</label>
+ <input type="file" name="attachment" />
+ </div>
+ </div>
+
+ <div class="collapse" id="input<?=$user->guid?>PasswdCollapse">
+ <div class="form-group">
+ <label>New Password</label>
+ <input type="password" name="input[newPasswd]" class="form-control" />
+ </div>
+
+ <div class="form-group">
+ <label>Confirm Password</label>
+ <input type="password" name="input[confPasswd]" class="form-control" />
+ </div>
+ </div>
+
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="input[admin]" value="1" <?=($user->admin ? "checked" : "")?>> Administrator
+ </label>
+ </div>
+
+ <div class="form-group">
+ <label>Alias</label>
+ <input type="text" name="input[alias]" class="form-control" maxlength="50" value="<?=$user->alias?>" />
+ </div>
+
+ <div class="form-group">
+ <label>Email</label>
+ <input type="text" name="input[email]" class="form-control" maxlength="50" value="<?=$user->email?>" />
+ </div>
+
+ <button type="submit" class="btn btn-success pull-right">Save</button>
+ </form>
+
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="common-setting-allusers-deluser" />
+ <input type="hidden" name="input[guid]" value="<?=$user->guid?>" />
+ <button type="submit" class="btn btn-danger btn-xs pull-right" onclick="return assertConfirm()">
+ <span class="glyphicon glyphicon-trash"></span> Delete Account
+ </button>
+ </form>
+ </div>
+ </div>
+ </div>
+ <?php } ?>
+ </div>
+ </div>
+ <?php } ?>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/common/topp.view.php b/examples/app/view/common/topp.view.php
new file mode 100644
index 0000000..d9e0df0
--- /dev/null
+++ b/examples/app/view/common/topp.view.php
@@ -0,0 +1,83 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php include "view/master/topp.view.php"; ?>
+
+<?php if ($mod->getCurrentUser()) { ?>
+ <?php include "view/common/setting.modal.view.php"; ?>
+ <?php include "view/common/newgroup.modal.view.php"; ?>
+<?php } ?>
+
+<nav class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container-fluid">
+
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#scrottnav" aria-expanded="false">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+
+ <a href="<?=$mod->ar()?>/" class="navbar-brand"><span class="glyphicon glyphicon-pencil"></span> Scrott</a>
+ </div>
+
+ <div class="collapse navbar-collapse" id="scrottnav">
+ <?php if (!$mod->getCurrentUser()) { ?>
+ <p class="navbar-text navbar-right"><i>Not Logged In&nbsp;</i></p>
+ <?php } else { ?>
+ <ul class="nav navbar-nav">
+ <li><a href="<?=$mod->ap()?>"><span class="glyphicon glyphicon-refresh"></span></a></li>
+
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
+ <?=(isset($mod->obj) ? $mod->obj->name : "<i>Dashboard</i>")?> <span class="caret"></span>
+ </a>
+
+ <ul class="dropdown-menu">
+ <?php foreach ($mod->getCurrentUser()->getGroups() as $group) { ?>
+ <li><a href="<?=$mod->ar()?>/<?=$group->guid?>"><?=$group->name?></a></li>
+ <?php } ?>
+ </ul>
+ </li>
+
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
+ <span class="glyphicon glyphicon-plus"></span> <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu">
+ <li><a href="#" data-toggle="modal" data-target="#newgroupModal">New Group</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <ul class="nav navbar-nav navbar-right">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
+ <span class="<?=$mod->getCurrentUser()->getGlyphicon()?>"></span> <?=$mod->getCurrentUser()->getDisplayName()?> <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu">
+ <li><a href="#" data-toggle="modal" data-target="#settingModal">Settings</a></li>
+ <li><a href="<?=$mod->ar()?>/logout">Log out</a></li>
+ </ul>
+ </li>
+ </ul>
+ <?php } ?>
+ </div>
+
+ </div>
+</nav>
diff --git a/examples/app/view/dashboard/default.view.php b/examples/app/view/dashboard/default.view.php
new file mode 100644
index 0000000..caf78da
--- /dev/null
+++ b/examples/app/view/dashboard/default.view.php
@@ -0,0 +1,27 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/common/head.view.php"; ?>
+ <title>Scrott - Dashboard</title>
+ </head>
+
+ <body>
+ <?php include "view/common/topp.view.php"; ?>
+ <?php include "view/common/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/deleteacct/default.view.php b/examples/app/view/deleteacct/default.view.php
new file mode 100644
index 0000000..852a37e
--- /dev/null
+++ b/examples/app/view/deleteacct/default.view.php
@@ -0,0 +1,51 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/common/head.view.php"; ?>
+ <title>Scrott - Delete user account</title>
+ </head>
+
+ <body>
+ <?php include "view/common/topp.view.php"; ?>
+
+ <div class="container">
+ <div class="panel panel-danger">
+ <div class="panel-heading">Warning: Deleting your user account!</div>
+
+ <div class="panel-body text-center">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="delete" />
+ <h1>Are you sure?!</h1>
+ <h4>Please confirm you want to delete your Scrott account. Type your current password in the box below and click the confirm button</h4>
+
+ <div class="form-group">
+ <label>Password</label>
+ <input type="password" name="input[password]" class="form-control" autofocus />
+ </div>
+
+ <button type="submit" class="btn btn-danger btn-lg">
+ <span class="glyphicon glyphicon-trash"></span> Confirm Delete Account
+ </button>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <?php include "view/common/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/except/default.view.php b/examples/app/view/except/default.view.php
new file mode 100644
index 0000000..01cf123
--- /dev/null
+++ b/examples/app/view/except/default.view.php
@@ -0,0 +1,47 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/master/head.view.php"; ?>
+ <title>Scrott - Application Exception</title>
+
+ <style type="text/css">
+ body { padding-top: 50px; }
+ </style>
+ </head>
+
+ <body>
+ <?php include "view/master/topp.view.php"; ?>
+
+ <div class="container">
+ <div class="jumbotron text-center">
+ <h1>Scrott derped</h1>
+ <h5>System internals reported this:</h5>
+
+ <div class="well well-sm text-danger">
+ <h3><?=$mod->message?></h3>
+ </div>
+
+ <a href="<?=$mod->ar()?>/" class="btn btn-primary btn-lg">
+ <span class="glyphicon glyphicon-pencil"></span> Go to Scrott Dashboard
+ </a>
+ </div>
+ </div>
+
+ <?php include "view/master/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/master/foot.view.php b/examples/app/view/master/foot.view.php
new file mode 100644
index 0000000..6279b05
--- /dev/null
+++ b/examples/app/view/master/foot.view.php
@@ -0,0 +1,29 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<script type="text/javascript" src="<?=$mod->ar()?>/assets/js/jquery.min.js"></script>
+<script type="text/javascript" src="<?=$mod->ar()?>/assets/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="<?=$mod->ar()?>/assets/js/scrott.js"></script>
+
+<?php if ($mod->isError() || $mod->isWarning() || $mod->isNotice()) { ?>
+ <script type="text/javascript">
+ $(window).load(function() {
+ $("#noticeModal").modal("show");
+ });
+ </script>
+<?php } ?>
diff --git a/examples/app/view/master/head.view.php b/examples/app/view/master/head.view.php
new file mode 100644
index 0000000..3e4e110
--- /dev/null
+++ b/examples/app/view/master/head.view.php
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<meta charset="utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+
+<link rel="stylesheet" type="text/css" href="<?=$mod->ar()?>/assets/css/bootstrap.min.css" />
diff --git a/examples/app/view/master/topp.view.php b/examples/app/view/master/topp.view.php
new file mode 100644
index 0000000..9a0b0fe
--- /dev/null
+++ b/examples/app/view/master/topp.view.php
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<?php if ($mod->isError() || $mod->isWarning() || $mod->isNotice()) { ?>
+ <div id="noticeModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+
+ <div class="modal-body alert <?=$mod->getNoticeModalAlertClass()?>" style="margin: 0;">
+ <h1 class="text-center"><span class="<?=$mod->getNoticeModalGlyphicon()?>"></span></h1>
+ <h5 class="text-center">Something Happened</h5>
+
+ <?php if ($mod->isError()) { ?>
+ <p>
+ <?php foreach ($mod->errorlist as $err) { ?>
+ <span class="label label-danger">Error</span> <?=$err?><br />
+ <?php } ?>
+ </p>
+ <?php } ?>
+
+ <?php if ($mod->isWarning()) { ?>
+ <p>
+ <?php foreach ($mod->warninglist as $warn) { ?>
+ <span class="label label-warning">Warning</span> <?=$warn?><br />
+ <?php } ?>
+ </p>
+ <?php } ?>
+
+ <?php if ($mod->isNotice()) { ?>
+ <p>
+ <?php foreach ($mod->noticelist as $note) { ?>
+ <span class="label label-info">Notice</span> <?=$note?><br />
+ <?php } ?>
+ </p>
+ <?php } ?>
+
+ <div class="text-center">
+ <button type="button" class="btn btn-default" data-dismiss="modal">
+ <span class="glyphicon glyphicon-ok"></span> Got it
+ </button>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+<?php } ?>
diff --git a/examples/app/view/obj/group.view.php b/examples/app/view/obj/group.view.php
new file mode 100644
index 0000000..dde4df1
--- /dev/null
+++ b/examples/app/view/obj/group.view.php
@@ -0,0 +1,43 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/common/head.view.php"; ?>
+ <title>Scrott - <?=$mod->group->name?></title>
+ </head>
+
+ <body>
+ <?php include "view/common/topp.view.php"; ?>
+
+ <div class="container">
+ <div class="well well-lg">
+ <h1><?=$mod->group->name?></h1>
+ <img src="<?=$mod->owner->getHeadImage()?>" alt="<?=$mod->owner->getDisplayName()?>" class="img-circle" height="50" />
+
+ <?php if (count($mod->members)) { ?>
+ <span class="glyphicon glyphicon-plus"></span>
+ <?php } ?>
+
+ <?php foreach ($mod->members as $member) { ?>
+ <img src="<?=$member->getHeadImage()?>" alt="<?=$member->getDisplayName()?>" class="img-circle" height="50" />
+ <?php } ?>
+ </div>
+ </div>
+
+ <?php include "view/common/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/sysconf/default.view.php b/examples/app/view/sysconf/default.view.php
new file mode 100644
index 0000000..90e5441
--- /dev/null
+++ b/examples/app/view/sysconf/default.view.php
@@ -0,0 +1,138 @@
+<!--
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+-->
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <?php include "view/master/head.view.php"; ?>
+ <title>Scrott - System-level configuration missing</title>
+
+ <style type="text/css">
+ body { padding-top: 50px; }
+ a { color: inherit; }
+ </style>
+ </head>
+
+ <body>
+ <?php include "view/master/topp.view.php"; ?>
+
+ <?php include "view/sysconf/user.modal.view.php"; ?>
+ <?php include "view/sysconf/group.modal.view.php"; ?>
+ <?php include "view/sysconf/pad.modal.view.php"; ?>
+ <?php include "view/sysconf/stage.modal.view.php"; ?>
+ <?php include "view/sysconf/issue.modal.view.php"; ?>
+ <?php include "view/sysconf/message.modal.view.php"; ?>
+
+ <div class="container">
+ <div class="jumbotron">
+ <h2 class="text-center">
+ <a href="#" data-toggle="modal" data-target="#userModal"><span class="glyphicon glyphicon-user"></span></a>&nbsp;&nbsp;&nbsp;
+ <a href="#" data-toggle="modal" data-target="#groupModal"><span class="glyphicon glyphicon-th"></span></a>&nbsp;&nbsp;&nbsp;
+ <a href="#" data-toggle="modal" data-target="#padModal"><span class="glyphicon glyphicon-edit"></span></a>&nbsp;&nbsp;&nbsp;
+ <a href="#" data-toggle="modal" data-target="#stageModal"><span class="glyphicon glyphicon-tasks"></span></a>&nbsp;&nbsp;&nbsp;
+ <a href="#" data-toggle="modal" data-target="#issueModal"><span class="glyphicon glyphicon-inbox"></span></a>&nbsp;&nbsp;&nbsp;
+ <a href="#" data-toggle="modal" data-target="#messageModal"><span class="glyphicon glyphicon-envelope"></span></a>
+ </h2>
+
+ <h1 class="text-center">Welcome to Scrott!</h1>
+ <hr />
+
+ <p class="text-center">You're seeing this page because the file "scrott.conf.php" is missing.<br />Please fill out the form below to create a config automatically!</p>
+ <p class="text-center">Click the icons above to learn more about core Scrott features and constructs!</p>
+ <hr />
+
+ <p class="text-center">This form will initialize Scrott's system-level configuration.<br />These are things the app needs before it can begin functioning at all!</p>
+ <h5 class="text-center">It is presumed that you are the administrator for this Scrott install.<br />There is a security risk involved with exposing this page to the public!</h5>
+
+ <div class="row">
+ <div class="col-md-2"></div>
+
+ <div class="col-md-8">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <form method="post" action="<?=$mod->ap()?>">
+ <input type="hidden" name="input[action]" value="save" />
+ <legend>Database Connection</legend>
+ <div class="form-group">
+ <label>Engine</label>
+ <input type="text" class="form-control" value="Mysql" disabled />
+ </div>
+
+ <div class="form-group">
+ <label>Server Address</label>
+ <input type="text" name="input[dbAddress]" class="form-control" placeholder="localhost" required="true" />
+ </div>
+
+ <div class="form-group">
+ <label>Database Name</label>
+ <input type="text" name="input[dbName]" class="form-control" placeholder="db_scrott" required="true" />
+ </div>
+
+ <div class="form-group">
+ <label>Username</label>
+ <input type="text" name="input[dbUser]" class="form-control" placeholder="root" required="true" />
+ </div>
+
+ <div class="form-group">
+ <label>Password</label>
+ <input type="password" name="input[dbPass]" class="form-control" />
+ </div>
+
+ <legend>Application Installation</legend>
+ <div class="form-group">
+ <label>Install Location</label>
+ <input type="text" class="form-control" value="<?=$mod->ar()?>/" disabled />
+ <h6 class="pull-right">Detected from location of files in web document root</h6>
+ </div>
+
+ <legend>Settings</legend>
+ <div class="form-group">
+ <label>HTTP(S)</label>
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="force" />
+ Always Force SSL
+ </label>
+ </div>
+
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="neither" checked />
+ Neither (Application can override)
+ </label>
+ </div>
+
+ <div class="radio">
+ <label>
+ <input type="radio" name="input[settSSL]" value="forbid" />
+ Always Forbid SSL
+ </label>
+ </div>
+ </div>
+
+ <button type="submit" class="btn btn-primary pull-right">Use these settings</button>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-md-2"></div>
+ </div>
+ </div>
+ </div>
+
+ <?php include "view/master/foot.view.php"; ?>
+ </body>
+</html>
diff --git a/examples/app/view/sysconf/group.modal.view.php b/examples/app/view/sysconf/group.modal.view.php
new file mode 100644
index 0000000..c0641d9
--- /dev/null
+++ b/examples/app/view/sysconf/group.modal.view.php
@@ -0,0 +1,49 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="groupModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">User Groups</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>Groups make sharing objects and collaborating easier. Instead of creating your
+ own pad and adding each of your team members to it individualy, create a
+ group-owned pad. With the appropriate permissions set, all group members will be
+ able to use the pad. This also solves issues where a shared pad is owned by a
+ single user whose account gets closed. Instead pads and other objects are safe as
+ long as the group exists. Groups are owned and managed by a single user, who must
+ stick around or transfer ownership for the group to continue functioning.</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/sysconf/issue.modal.view.php b/examples/app/view/sysconf/issue.modal.view.php
new file mode 100644
index 0000000..694dd47
--- /dev/null
+++ b/examples/app/view/sysconf/issue.modal.view.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="issueModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">Issues</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>Issues represent work. This work could be anything from a software project's bug
+ needing fixed or a new feature to implement to a record of needing to order more
+ celing panels for the new home office build. Work is done by someone, for someone,
+ and this is reflected in Scrott's internal data structures. Every issues has a
+ distinct owner (someone requesting work be done) and assignee (someone who needs to
+ do the work). If others are interested in the work or have valuable input on the
+ work, they may be included (cc'd) on the issue to receive updates on it or to be able
+ to post their own updates. Scrott tracks issues using pads which are representative
+ of a high-level project or some similar effort. So related issues are tracked
+ together.</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/sysconf/message.modal.view.php b/examples/app/view/sysconf/message.modal.view.php
new file mode 100644
index 0000000..14cca2d
--- /dev/null
+++ b/examples/app/view/sysconf/message.modal.view.php
@@ -0,0 +1,55 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="messageModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">Messages</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>Although Scrott is formost an issue-tracking tool, it can also be a useful
+ communication tool for team and client relationships. Scrott includes a lightweight
+ messaging system that is aparent:</p>
+ <ul>
+ <li>In pads: where users can start new general discussion threads and post
+ replys</li>
+ <li>In issues: where users can post comments or updates on work status</li>
+ <li>In general: where users can send other users direct private messages</li>
+ </ul>
+ <p>With email integration, Scrott also allows communication with non-scrott user
+ clients or owners of issues.</p>
+ <p>Scrott's built-in logging system utilizes this messaging framework and is used
+ by object owners and site administrators to monitor usage and activity on Scrott</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/sysconf/pad.modal.view.php b/examples/app/view/sysconf/pad.modal.view.php
new file mode 100644
index 0000000..2fbf26b
--- /dev/null
+++ b/examples/app/view/sysconf/pad.modal.view.php
@@ -0,0 +1,68 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="padModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">Pads</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>Use pads to track tasks, issues, bugs, client tickets, etc. Within Scrott, these
+ are collectively referred to as 'issues'. Use a pad to track your progress on a
+ project's completion, to manage user issues for a help-desk, to keep a shopping list,
+ bucket list, lists to track your progress on a television series (or series you'd
+ like to start), or books to read, or anything inbetween.</p>
+
+ <p>In addition to issue tracking, pads enable users to communicate with one another.
+ Each pad consists of a lightweight message board (forum) and users can also post
+ messages directly to issues if they are relevant. With email integration, even
+ non-scrott users may be clued in to the progress of their open issues. Pads even
+ allow for message threads to be converted (elevated) to a new open issue if need be.
+ (for example: Imagine you started a thread to discuss a potential new website design.
+ Once your team had arrived at something the majority liked, the thread can be elevated
+ to a new issue (preserving all messaging history), assigned to one of the team
+ members, and tracked just like all of your other issues.)</p>
+
+ <p>If you would like to allow the public to open issues in your pad (ie: if your pad
+ is allowing bug reports/feature requests from users of your project or if your pad
+ is the issue tracker for a help-desk), you can enable an issue portal for your pad.
+ A portal is a page accessible to the public where anonymous internet users (with a
+ verified email address) may submit new issues to your pad. Their email address
+ becomes the issue owner so the requester is still able to receive updates on the
+ issue as well as respond with their own messages.</p>
+
+ <p>Pads can be used by a single user or many; and pads can be owned by a user or a
+ user group</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/sysconf/stage.modal.view.php b/examples/app/view/sysconf/stage.modal.view.php
new file mode 100644
index 0000000..11e517f
--- /dev/null
+++ b/examples/app/view/sysconf/stage.modal.view.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="stageModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">Pad Stages</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>The issue-tracking aspect of pads is divided up using pad stages. A stage is
+ representative of the level of completion or high-level status of an issue. For
+ example, a pad may have an initial stage named "To Do", an intermediate stage named
+ "In Progress", and another stage "In Review". Stages form a sequence in practice.
+ When the appropriate amount of work has been done on an issue, it is advanced to the
+ next stage in the pipeline. This allows other pad members and the issue's owner to
+ at a glance get an idea of the high-level progress of the issue.</p>
+
+ <p>Once an issue is closed, it is removed from this stage pipeline, but retained in
+ the pad itself for archival purposes and for generating reports.</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/examples/app/view/sysconf/user.modal.view.php b/examples/app/view/sysconf/user.modal.view.php
new file mode 100644
index 0000000..034dc04
--- /dev/null
+++ b/examples/app/view/sysconf/user.modal.view.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+?>
+
+<div id="userModal" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ </button>
+
+ <h4 class="modal-title">User Accounts</h4>
+
+ </div>
+
+ <div class="modal-body">
+ <p>Scrott implements a very flexible permissions and access-control system. It all
+ starts with users' accounts. Users can create and maintain objects and share them
+ with other users if they choose. This is done with a mechanism similar to unix
+ file permission modes. Scrott objects form a hierarchy, so permissions from 'higher'
+ objects will cascade down. This means that a non-trusted user may control an issue
+ in your pad, but have no access to the pad itself.</p>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">
+ Close
+ </button>
+ </div>
+ </div>
+ </div>
+</div>