public function getDetail($id)
 {
     $_id = new MongoId($id);
     $history = History::where('historyObject._id', $_id)->where('historyObjectType', 'asset')->orderBy('historyTimestamp', 'desc')->orderBy('historySequence', 'desc')->get();
     $diffs = array();
     foreach ($history as $h) {
         $h->date = date('Y-m-d H:i:s', $h->historyTimestamp->sec);
         $diffs[$h->date][$h->historySequence] = $h->historyObject;
     }
     $history = History::where('historyObject._id', $_id)->where('historyObjectType', 'asset')->where('historySequence', 0)->orderBy('historyTimestamp', 'desc')->get();
     $tab_data = array();
     foreach ($history as $h) {
         $apv_status = Assets::getApprovalStatus($h->approvalTicket);
         if ($apv_status == 'pending') {
             $bt_apv = '<span class="btn btn-info change-approval ' . $h->approvalTicket . '" data-id="' . $h->approvalTicket . '" >' . $apv_status . '</span>';
         } else {
             if ($apv_status == 'verified') {
                 $bt_apv = '<span class="btn btn-success" >' . $apv_status . '</span>';
             } else {
                 $bt_apv = '';
             }
         }
         $d = date('Y-m-d H:i:s', $h->historyTimestamp->sec);
         $tab_data[] = array($d, $h->historyAction, $h->historyObject['itemDescription'], $h->historyAction == 'new' ? 'NA' : $this->objdiff($diffs[$d]), $bt_apv);
     }
     $header = array('Modified', 'Event', 'Name', 'Diff', 'Approval');
     $attr = array('class' => 'table', 'id' => 'transTab', 'style' => 'width:100%;', 'border' => '0');
     $t = new HtmlTable($tab_data, $attr, $header);
     $itemtable = $t->build();
     $asset = Asset::find($id);
     Breadcrumbs::addCrumb('Ad Assets', URL::to(strtolower($this->controller_name)));
     Breadcrumbs::addCrumb('Detail', URL::to(strtolower($this->controller_name) . '/detail/' . $asset->_id));
     Breadcrumbs::addCrumb($asset->SKU, URL::to(strtolower($this->controller_name)));
     return View::make('history.table')->with('a', $asset)->with('title', 'Asset Detail ' . $asset->itemDescription)->with('table', $itemtable);
 }
Example #2
0
 /**
  * Configure asset warping for a default Zing! CMS installation.
  * This sets up:
  *  * sources for CMS uploaded assets and thumbs
  *  * an 'original' profile that leaves files unaltered
  *  * a 'system-default' profile that constrains images to 640x640
  *  * a 'system-thumbnail' profile that constrains images to 50x50
  */
 public function defaults()
 {
     $this->source('asset', '/^\\d+$/', function ($id) {
         $asset = \Asset::find($id);
         return $asset->get_file_blob();
     });
     $this->source('thumb', '/^\\d+$/', function ($id) {
         $asset = \Asset::find($id);
         $blob = $asset->get_thumb_blob();
         if (!$blob && $asset->is_web_safe_image()) {
             $blob = $asset->get_file_blob();
         }
         return $blob;
     });
     $this->profile('original', function ($blob) {
     })->title('Original');
     $this->image_profile('system-default', function ($image) {
         $image->constrain(640, 640);
     })->hide();
     $this->image_profile('system-thumbnail', function ($image) {
         $image->constrain(50, 50);
     })->hide();
 }
Example #3
0
 public function delete($id)
 {
     $wantsJson = Request::wantsJson();
     $asset = Asset::find($id);
     if ($asset == null) {
         return $wantsJson ? Response::json(['errors' => 'No asset found', 'status' => 404, 'id' => $id]) : Redirect::back()->with(['errors' => 'No asset found', 'status' => 404]);
     }
     if (Schema::hasTable('assetables')) {
         $total = 0;
         $assetables = DB::table('assetables')->where('asset_id', $id)->get();
         if ($assetables) {
             $item = null;
             foreach ($assetables as $as) {
                 $as_type = $as->assetable_type;
                 $as_id = $as->assetable_id;
                 $item = $as_type::find($as_id);
                 if ($item) {
                     $item->assets()->detach($asset);
                     $total = $item->assets->count();
                 }
             }
         }
     }
     $asset->delete();
     return $wantsJson ? Response::json(['notice' => 'Asset deleted', 'status' => 200, 'id' => $id]) : Redirect::back()->with(['error' => 'Asset deleted', 'status' => 200, 'id' => $id]);
 }
Example #4
0
 public function approve()
 {
     //check the users group
     $authorizers = Sentry::findGroupByName('Authorizers');
     $admins = Sentry::findGroupByName('Admin');
     //DLN authorizers
     if (Sentry::getUser()->inGroup($authorizers)) {
         $this->request_code = 1;
         $this->save();
         return array('success' => 1, 'message' => 'Request Approved', 'type' => $this->type);
     } elseif (Sentry::getUser()->inGroup($admins)) {
         //get all license types for request
         $lcnsNames = $this->licenseTypes()->lists('name');
         //get available license seats for each license type
         $that = $this;
         $toAdd = [];
         if ($this->type == 'license') {
             //TODO:: remove and place in seperate method - this will need to be used to update a request
             foreach ($lcnsNames as $lcnsName) {
                 $lcnsSeat = DB::table('licenses')->join('license_types', 'licenses.type_id', '=', 'license_types.id')->join('license_seats', 'licenses.id', '=', 'license_seats.license_id')->orwhere(function ($query) use($lcnsName, $that) {
                     $query->where('license_types.name', '=', $lcnsName)->where('licenses.role_id', $that->role_id)->whereNull('license_seats.assigned_to');
                 })->first();
                 //if seats available add it to array for later processing, else return with error message
                 if ($lcnsSeat) {
                     $toAdd[$lcnsName] = $lcnsSeat;
                 } else {
                     $messageKey = str_replace(' ', '', strtolower($lcnsName));
                     $error = Lang::get('request.message_no_lcns.' . $lcnsName);
                     return array('success' => 0, 'message' => $error);
                 }
             }
             foreach ($toAdd as $key => $lcnsSeat) {
                 if ($key == 'SABA Publisher') {
                     //create computer name as an asset if it doesnt exist
                     if ($obj = DB::table('assets')->where('serial', $this->pc_name)->first(array('id'))) {
                         $asset = Asset::find($obj->id);
                     } else {
                         $asset = new Asset();
                         $asset->name = "DWAN PC";
                         $asset->serial = $this->pc_name;
                         $asset->asset_tag = $this->pc_name;
                         $asset->model_id = 7;
                         //TODO: Remove this hard coding for model id
                         $asset->status_id = 1;
                         $asset->assigned_to = $this->account->id;
                     }
                     $asset->role_id = $this->role_id;
                     $asset->save();
                     License::checkOutToAsset($lcnsSeat->id, $asset->id);
                 }
                 //checkout to account the request has been made for
                 License::checkOutToAccount($lcnsSeat->id, $this->account_id);
             }
         } elseif ($this->type == 'checkin') {
             //clear license fields
             $seat = LicenseSeat::find($this->license_id);
             $seat->checkIn();
         }
         //detach requested licenses
         $this->licenseTypes()->detach();
         $type = $this->type;
         //marked as closed
         $this->delete();
         return array('success' => 1, 'message' => 'Request Approved', 'type' => $type);
     }
 }
Example #5
0
 /**
  * Query to sync form scores with gradebook
  *
  * @param      obj   $course
  * @param      array $member_id
  * @return     void
  */
 public function syncGrades($course, $member_id = null)
 {
     if (!is_null($member_id) && !empty($member_id)) {
         if (!is_array($member_id)) {
             $member_id = (array) $member_id;
         }
     } else {
         // Pull all section members
         $members = $course->offering()->section()->members(array('student' => 1));
         $member_id = array();
         // Get member id's for refresh filter
         foreach ($members as $member) {
             $member_id[] = $member->get('id');
         }
     }
     if (count($member_id) == 0) {
         return;
     }
     // Get the assets
     $asset = new Asset($this->_db);
     $assets = $asset->find(array('w' => array('course_id' => $course->get('id'), 'section_id' => $course->offering()->section()->get('id'), 'offering_id' => $course->offering()->get('id'), 'asset_type' => 'form')));
     // Query for existing data
     $query = "SELECT * FROM `#__courses_grade_book` WHERE `member_id` IN (" . implode(',', $member_id) . ") AND `scope` IN ('asset')";
     $this->_db->setQuery($query);
     $results = $this->_db->loadObjectList();
     $existing_grades = array();
     foreach ($results as $r) {
         $existing_grades[$r->member_id . '.' . $r->scope_id] = array('id' => $r->id, 'score' => $r->score);
     }
     $inserts = array();
     $updates = array();
     $deletes = array();
     if (count($assets) > 0) {
         foreach ($assets as $asset) {
             // Add null values for unpublished forms that may have already been taken
             if ($asset->state != 1) {
                 $deletes[] = $asset->id;
                 continue;
             }
             $crumb = false;
             // Check for result for given student on form
             $crumb = $asset->url;
             if (!$crumb || strlen($crumb) != 20 || $asset->state != 1) {
                 // Break foreach, this is not a valid form!
                 continue;
             }
             include_once dirname(__DIR__) . DS . 'models' . DS . 'formDeployment.php';
             $dep = \Components\Courses\Models\PdfFormDeployment::fromCrumb($crumb, $course->offering()->section()->get('id'));
             $results = $dep->getResults('member_id', $member_id);
             switch ($dep->getState()) {
                 // Form isn't available yet
                 case 'pending':
                     // Null value
                     foreach ($member_id as $u) {
                         $key = $u . '.' . $asset->id;
                         if (!array_key_exists($key, $existing_grades)) {
                             $inserts[] = "('{$u}', NULL, 'asset', '{$asset->id}', NULL)";
                         } else {
                             if (!is_null($existing_grades[$key]['score'])) {
                                 $updates[] = "UPDATE `#__courses_grade_book` SET `score` = NULL WHERE `id` = '" . $existing_grades[$key]['id'] . "'";
                             }
                         }
                     }
                     break;
                     // Form availability has expired - students either get a 0, or their score (no nulls)
                 // Form availability has expired - students either get a 0, or their score (no nulls)
                 case 'expired':
                     foreach ($member_id as $u) {
                         $score = isset($results[$u]['score']) ? $results[$u]['score'] : '0.00';
                         $finished = isset($results[$u]['finished']) ? '\'' . $results[$u]['finished'] . '\'' : 'NULL';
                         $key = $u . '.' . $asset->id;
                         if (!array_key_exists($key, $existing_grades)) {
                             $inserts[] = "('{$u}', '{$score}', 'asset', '{$asset->id}', {$finished})";
                         } else {
                             if ($existing_grades[$key]['score'] != $score) {
                                 $updates[] = "UPDATE `#__courses_grade_book` SET `score` = '{$score}', `score_recorded` = {$finished} WHERE `id` = '" . $existing_grades[$key]['id'] . "'";
                             }
                         }
                     }
                     break;
                     // Form is still active - students either get their score, or a null
                 // Form is still active - students either get their score, or a null
                 case 'active':
                     foreach ($member_id as $u) {
                         $resp = $dep->getRespondent($u);
                         // Form is active and they have completed it!
                         if ($resp->getEndTime() && $resp->getEndTime() != '') {
                             $score = isset($results[$u]['score']) ? '\'' . $results[$u]['score'] . '\'' : 'NULL';
                             $key = $u . '.' . $asset->id;
                             if (!array_key_exists($key, $existing_grades)) {
                                 $inserts[] = "('{$u}', {$score}, 'asset', '{$asset->id}', '" . $results[$u]['finished'] . "')";
                             } else {
                                 if ($existing_grades[$key]['score'] != $score) {
                                     $updates[] = "UPDATE `#__courses_grade_book` SET `score` = {$score}, `score_recorded` = '" . $results[$u]['finished'] . "' WHERE `id` = '" . $existing_grades[$key]['id'] . "'";
                                 }
                             }
                         } else {
                             $key = $u . '.' . $asset->id;
                             if (!array_key_exists($key, $existing_grades)) {
                                 $inserts[] = "('{$u}', NULL, 'asset', '{$asset->id}', NULL)";
                             } else {
                                 if (!is_null($existing_grades[$key]['score'])) {
                                     $updates[] = "UPDATE `#__courses_grade_book` SET `score` = NULL, `score_recorded` = NULL WHERE `id` = '" . $existing_grades[$key]['id'] . "'";
                                 }
                             }
                         }
                     }
                     break;
             }
         }
         // Build query and run
         if (count($inserts) > 0) {
             $query = "INSERT INTO `#__courses_grade_book` (`member_id`, `score`, `scope`, `scope_id`, `score_recorded`) VALUES\n";
             $query .= implode(",\n", $inserts);
             $this->_db->setQuery($query);
             $this->_db->query();
         }
         if (count($updates) > 0) {
             foreach ($updates as $update) {
                 $query = $update;
                 $this->_db->setQuery($query);
                 $this->_db->query();
             }
         }
         if (count($deletes) > 0) {
             $query = "DELETE FROM `#__courses_grade_book` WHERE `scope` = 'asset' AND `scope_id` IN (" . implode(',', $deletes) . ")";
             $this->_db->setQuery($query);
             $this->_db->query();
         }
     }
 }
 public function dispAsset($data)
 {
     if ($data['assetType'] == 'location') {
         return 'location';
     } else {
         if ($data['assetType'] == 'rack') {
             return 'rack';
         } else {
             $asset = Asset::find($data['assetId']);
             return isset($asset->SKU) ? $asset->SKU : '';
         }
     }
 }
 public function postEdit($id, $data = null)
 {
     if (isset($data['useImage']) && $data['useImage'] == 'linked') {
         $this->validator = array('itemDescription' => 'required', 'extImageURL' => 'required');
     } else {
         $this->validator = array('itemDescription' => 'required');
     }
     $hobj = Asset::find($id)->toArray();
     $hobj['_id'] = new MongoId($id);
     $hdata['historyTimestamp'] = new MongoDate();
     $hdata['historyAction'] = 'update';
     $hdata['historySequence'] = 0;
     $hdata['historyObjectType'] = 'asset';
     $hdata['historyObject'] = $hobj;
     History::insert($hdata);
     return parent::postEdit($id, $data);
 }
Example #8
0
 public function populateDashboard($roleId)
 {
     //get asset info
     $allAssets = DB::table('models')->join('assets', 'assets.model_id', '=', 'models.id')->orwhere(function ($query) use($roleId) {
         $query->where('assets.role_id', $roleId);
         $query->where('assets.deleted_at', NULL);
     })->get();
     $assets = array();
     //populate assets array
     foreach ($allAssets as $key => $asset) {
         $modelObj = Asset::find($asset->id);
         if ($modelObj->assigneduser) {
             $location = $modelObj->assetloc->name;
         } elseif ($modelObj->defaultLoc) {
             $location = $modelObj->defaultLoc->name;
         } else {
             $location = null;
         }
         $assets[$key] = new \stdClass();
         $assets[$key]->model = $asset->name;
         $assets[$key]->assetTag = $asset->asset_tag;
         $assets[$key]->numOfLcns = $modelObj->licenseSeatsCount();
         $assets[$key]->location = $location;
     }
     return $assets;
 }
Example #9
0
 public function assetName($data)
 {
     $asset = Asset::find($data['assetId']);
     if ($asset) {
         return '<a href="' . URL::to('asset/detail/' . $data['assetId']) . '" >' . $asset->SKU . '</a>';
     } else {
         return '-';
     }
 }
Example #10
0
     Route::put('themes/{id}', ['uses' => 'core\\controllers\\AdminController@updateTheme']);
     Route::get('themes/{id}/edit', ['uses' => 'core\\controllers\\AdminController@editTheme']);
 });
 // --------------------------------------------------------------------------
 // Assets
 // --------------------------------------------------------------------------
 Route::group(['prefix' => 'images'], function () {
     Route::get('/', ['uses' => 'core\\controllers\\AssetsController@index']);
     Route::get('{id}/{size?}', ['uses' => 'core\\controllers\\AssetsController@resize']);
 });
 // ------------------------------------------------------------------------
 Route::get('assets/upload/modal', function () {
     return View::make('slate::admin.assets.upload-modal');
 });
 Route::get('assets/{id}/edit', function ($id) {
     return View::make('slate::admin.assets.edit-modal', ['asset' => Asset::find($id)]);
 });
 Route::post('assets/upload', ['uses' => 'core\\controllers\\AssetsController@upload']);
 Route::put('assets/{id}', ['uses' => 'core\\controllers\\AssetsController@edit']);
 // --------------------------------------------------------------------------
 // Home
 // --------------------------------------------------------------------------
 Route::get('/', function () {
     return View::make('slate::site.index');
 });
 // --------------------------------------------------------------------------
 // Register | Login
 // --------------------------------------------------------------------------
 Route::get('register', ['uses' => 'core\\controllers\\UsersController@register']);
 Route::get('login', ['uses' => 'core\\controllers\\UsersController@login']);
 // --------------------------------------------------------------------------
 /**
  * postEdit
  *
  * @param null $assetMaintenanceId
  *
  * @return mixed
  * @author  Vincent Sposato <*****@*****.**>
  * @version v1.0
  */
 public function postEdit($assetMaintenanceId = null)
 {
     // get the POST data
     $new = Input::all();
     // Check if the asset maintenance exists
     if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
         // Redirect to the asset maintenance management page
         return Redirect::to('admin/asset_maintenances')->with('error', Lang::get('admin/asset_maintenances/message.not_found'));
     } else {
         if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
             return static::getInsufficientPermissionsRedirect();
         }
     }
     // attempt validation
     if ($assetMaintenance->validate($new)) {
         if (e(Input::get('supplier_id')) == '') {
             $assetMaintenance->supplier_id = null;
         } else {
             $assetMaintenance->supplier_id = e(Input::get('supplier_id'));
         }
         if (e(Input::get('is_warranty')) == '') {
             $assetMaintenance->is_warranty = 0;
         } else {
             $assetMaintenance->is_warranty = e(Input::get('is_warranty'));
         }
         if (e(Input::get('cost')) == '') {
             $assetMaintenance->cost = '';
         } else {
             $assetMaintenance->cost = ParseFloat(e(Input::get('cost')));
         }
         if (e(Input::get('notes')) == '') {
             $assetMaintenance->notes = null;
         } else {
             $assetMaintenance->notes = e(Input::get('notes'));
         }
         $asset = Asset::find(e(Input::get('asset_id')));
         if (!Company::isCurrentUserHasAccess($asset)) {
             return static::getInsufficientPermissionsRedirect();
         }
         // Save the asset maintenance data
         $assetMaintenance->asset_id = e(Input::get('asset_id'));
         $assetMaintenance->asset_maintenance_type = e(Input::get('asset_maintenance_type'));
         $assetMaintenance->title = e(Input::get('title'));
         $assetMaintenance->start_date = e(Input::get('start_date'));
         $assetMaintenance->completion_date = e(Input::get('completion_date'));
         if ($assetMaintenance->completion_date == "" || $assetMaintenance->completion_date == "0000-00-00") {
             $assetMaintenance->completion_date = null;
             if ($assetMaintenance->asset_maintenance_time !== 0 || !is_null($assetMaintenance->asset_maintenance_time)) {
                 $assetMaintenance->asset_maintenance_time = null;
             }
         }
         if ($assetMaintenance->completion_date !== "" && $assetMaintenance->completion_date !== "0000-00-00" && $assetMaintenance->start_date !== "" && $assetMaintenance->start_date !== "0000-00-00") {
             $startDate = Carbon::parse($assetMaintenance->start_date);
             $completionDate = Carbon::parse($assetMaintenance->completion_date);
             $assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
         }
         // Was the asset maintenance created?
         if ($assetMaintenance->save()) {
             // Redirect to the new asset maintenance page
             return Redirect::to("admin/asset_maintenances")->with('success', Lang::get('admin/asset_maintenances/message.create.success'));
         }
     } else {
         // failure
         $errors = $assetMaintenance->errors();
         return Redirect::back()->withInput()->withErrors($errors);
     }
     // Redirect to the improvement create page
     return Redirect::to('admin/asset_maintenances/edit')->with('error', Lang::get('admin/asset_maintenances/message.create.error'))->with('assetMaintenance', $assetMaintenance);
 }
 public function destroy($id)
 {
     try {
         //get the asset to be deleted
         $deleteAsset = Asset::find($id);
         //soft delete the asset
         $deleteAsset->active = 0;
         $deleteAsset->save();
         //return the deleted asset
         return $deleteAsset->toJSON();
     } catch (Exception $e) {
         return json_encode('{"error":{"text":' . $e->getMessage() . '}}');
     }
 }
Example #13
0
    // ------------------------------------------------------------------------
    // Users Roles & Permissions CMS
    // ------------------------------------------------------------------------
    Route::get('users', function () {
        return View::make('admin.index', ['users' => User::orderBy('created_at', 'DESC')->paginate(12), 'active_link' => 'users']);
    });
    Route::get('users/{id}', function ($id) {
        return View::make('admin.edituser', ['user' => User::find($id), 'active_link' => 'users']);
    });
    // edit a profile (*** ADMIN ONLY ***)
    Route::get('users/{id}/roles/edit', function ($id) {
        $user = User::find($id);
        if (Auth::user()->hasRole('Admin')) {
            return View::make('admin.roles.edit-user-roles', ['user' => $user, 'active_link' => 'index']);
        }
        return 'You do not have permissions to do this...';
    });
    Route::resource('roles', 'RolesController');
    Route::resource('permissions', 'PermissionsController');
    Route::put('users/{id}', ['uses' => 'UsersController@editUserRoles']);
    // admin only (master)
    Route::get('assets', function () {
        return View::make('admin.assets.index');
    });
    Route::get('assets/upload', function () {
        return View::make('admin.assets.upload-popup');
    });
    Route::get('assets/{id}/edit', function ($id) {
        return View::make('admin.assets.edit-popup', ['asset' => Asset::find($id)]);
    });
});