public function acceptChanges(Character $character)
 {
     if ($character->in_review) {
         $character->approved_version = $character->latestVersion()->version;
         $character->in_review = false;
         //Inactivate all other characters this player owns.
         if (!$character->owner->isStoryteller()) {
             $was_active = $character->active;
             foreach (Character::where('user_id', $character->owner->id)->get() as $c) {
                 $c->active = false;
                 $c->save();
             }
             $character->active = true;
             if (!$was_active) {
                 //This is a new character
                 $character->owner->sendMessage(null, "New Character Accepted", "The Storytellers have accepted your character \"" . $character->name . "\"." . " Any of your characters that were previously active have been inactivated." . " You have been granted access to your new clan's forum, and access to your old" . " clan forum has been revoked. If you have any questions, please post in the " . " \"General Messages\" forum.");
                 $character->approved_at = new DateTime();
                 $xp_cost = $character->getExperienceCost(1);
                 $character->experience -= 10 - $xp_cost;
                 Cache::forget("character-experience-{$character->id}");
                 $character->save();
             } else {
                 $character->owner->sendMessage(null, "Changes to " . $character->name . " Accepted", "The Storytellers have accepted your changes to \"" . $character->name . "\"." . " You can now access your character and make further changes as necessary.");
             }
         }
         $character->save();
     }
     Cache::forget('forum-listing-' . $character->owner->id);
     return Redirect::to($_SERVER['HTTP_REFERER']);
 }
示例#2
0
 public function saveCharacter()
 {
     $user = Auth::user();
     if ($user) {
         // Make sure we have a name.
         if (strlen(trim(Input::get("sheet.name"))) == 0) {
             return Response::json(["success" => false, "mode" => 2, "message" => "Characters must have a name."]);
         }
         $character = Character::find(Input::get('characterId'));
         if ($character) {
             if (Character::where('id', Input::get('characterId'))->first()->user_id != $user->id && !$user->isStoryteller()) {
                 return Response::json(array("success" => false, "mode" => 0, "message" => "Unauthorized"));
             }
         }
         try {
             DB::beginTransaction();
             $version = $this->save();
             $character = $version->character;
             if (Input::get("review") && !($character->getOptionValue("Ignore Validation") || $user->isStoryteller())) {
                 $character->verify($character->approved_version + 1, $character->approved_version == 0);
             }
             DB::commit();
         } catch (Exception $e) {
             DB::rollback();
             if (get_class($e) == "CharacterValidationException") {
                 return Response::json(array("success" => false, "mode" => 2, "message" => $e->getMessage()));
             }
             return Response::json(array("success" => false, "mode" => 0, "message" => $e->getMessage() . "[" . $e->getFile() . "\$" . $e->getLine() . "]"));
         }
         if (Input::get("review")) {
             if ($user->isStoryteller()) {
                 $character->approved_version = $version->version;
                 $character->in_review = false;
                 if (!$character->is_active) {
                     $character->approved_at = new DateTime();
                 }
                 $character->save();
             } else {
                 //41 = Character Changes
                 $character->in_review = true;
                 $character->save();
                 $topic = ($version->isNewCharacter() ? "New Character " : "Character Changes to ") . "\"" . $character->name . "\" from " . $user->username;
                 $versionNumber = $version->version;
                 Forum::find(41)->post($topic, "[[change/{$character->id}/{$versionNumber}]]");
             }
         }
         return Response::json(["success" => true, "mode" => 0, "message" => Input::get("review") ? "In review queue." : "Saved successfully."]);
     } else {
         return Response::json(array("success" => false, "message" => "Unable to validate user."));
     }
 }
			type: 'post',
			data: {
				characterId: self.promptDeleteId()
			},
			success: function(data) {
				document.location = "/dashboard/characters";
			}
		});
	}
	
	

@stop
@section('storyteller-content')
<?php 
$request = ["all" => Character::where('id', '>', 0), "complete" => Character::where(array('is_npc' => false, 'in_review' => false, 'active' => true))->where('approved_version', '>', 0), "changed" => Character::where(array('is_npc' => false, 'in_review' => true, 'active' => true))->where('approved_version', '>', 0), "new" => Character::where(array('is_npc' => false, 'in_review' => true, 'active' => false)), "npcs" => Character::where(array('is_npc' => true)), "npcs-active" => Character::where(array('is_npc' => true, 'active' => true))];
?>
<div id="delete-modal" class="reveal-modal" data-reveal aria-labelledby="deleteModalTitle" aria-hidden="true" role="dialog">
  <h2 id="deleteModalTitle">Delete <span data-bind="text: promptDeleteName"></span>?</h2>
  <p>Are you sure you wish to delete <span data-bind="text: promptDeleteName"></span>? <b>This cannot be undone.</b></p>
  <p>Type this character's name into the box below to confirm the delete.</p>
  <input type="text" data-bind="textInput: $root.promptDeleteField, valueUpdate: afterkeydown" placeholder="Confirm..." />
  <hr>
  <button class="button alert small" data-bind="click: completeDelete, css: {'disabled': !canDelete() }">Delete</button>
  <a class="close-reveal-modal" aria-label="Close">&#215;</a>
</div>

<div class="row left">
	<dl class="sub-nav">
	  <dt>Filter:</dt>
	  <dd class="{{$filter == 'all' ? 'active' : ''}}">
示例#4
0
 public function activeCharacter()
 {
     return Character::where(["user_id" => $this->id, "active" => true])->first();
 }
示例#5
0
 public static function activeNPCs()
 {
     return Character::where(['is_npc' => true, 'active' => true]);
 }