@section('forum-script') tinymce.init({ selector: "#post", plugins: "textcolor link hr image emoticons table preview fullscreen print searchreplace visualblocks code", toolbar1: "undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image", toolbar2: "forecolor backcolor emoticons", image_advtab: true, forced_root_block : '' }); self.allUsers = ko.observableArray([]); self.selectedUsers = ko.observableArray([]); self.selectedUser = ko.observable(); <?php if (isset($topic)) { $added_users = ForumTopicAddedUser::where('topic_id', $topic->id)->get(); } ?> @foreach(Character::activeCharacters()->get() as $c) var userObject = {id: "{{$c->owner->id}}", name: "{{$c->owner->username}}"}; self.allUsers.push(userObject); @if(isset($added_users) && $added_users->filter(function($item) use ($c) { return $item->user_id == $c->owner->id; })->first()) self.selectedUsers.push(userObject); @endif @endforeach self.availableUsers = ko.computed(function() { var out = []; for(var i = 0; i < self.allUsers().length; i++) { var item = self.allUsers()[i]; if(self.selectedUsers().indexOf(item) == -1) out.push(item);
function postTopic() { if (!Auth::check()) { return Redirect::to("/forums"); } $topic_id = Input::get("topic_id"); if (isset($topic_id)) { //Edit logic $topic = ForumTopic::find(Input::get("topic_id")); $post = $topic->firstPost; $user = Auth::user(); if (!$user->canAccessTopic($topic_id)) { return "Access denied."; } if ($post->posted_by == $user->id || $user->isStoryteller()) { $body = ForumPost::replaceSpecialTerms(Input::get("body")); $post->body = $body; $post->save(); $topic->title = Input::get("title"); $topic->save(); //Save an edit record $posted_by = Input::get("post-as"); $poster = User::find($posted_by); if (!$poster) { $poster = Auth::user(); } $edit = new ForumEdit(); $edit->post_id = $post->id; $edit->user_id = $poster->id; $edit->save(); ForumTopicAddedUser::where('topic_id', $topic_id)->delete(); $addedUsersRaw = Input::get("added-users"); if (strlen(trim($addedUsersRaw)) > 0) { $addedUsers = explode(",", $addedUsersRaw); foreach ($addedUsers as $au) { $new_au = new ForumTopicAddedUser(); $new_au->topic_id = $topic->id; $new_au->user_id = $au; $new_au->save(); } } return Redirect::to('/forums/topic/' . $post->topic->id); } else { return "Post does not belong to user"; } } else { $user = Auth::user(); $forum_id = Input::get("forum_id"); $title = Input::get("title"); $body = Input::get("body"); if (!$user->canAccessForum($forum_id)) { return "Access denied."; } if ($forum_id == null || $title == null || $body == null) { //Validate. return "failed."; } else { $forum = Forum::find($forum_id); $permission = PermissionDefinition::find($forum->topic_permission); if (!$forum->topic_permission || Auth::user()->hasPermission($permission->name) || Auth::user()->isStoryteller()) { $posted_by = Input::get("post-as"); $body = ForumPost::replaceSpecialTerms($body); $topic = $forum->post($title, $body, User::find($posted_by)); $addedUsersRaw = Input::get("added-users"); if (strlen(trim($addedUsersRaw)) > 0) { $addedUsers = explode(",", $addedUsersRaw); foreach ($addedUsers as $au) { $new_au = new ForumTopicAddedUser(); $new_au->topic_id = $topic->id; $new_au->user_id = $au; $new_au->save(); } } //Check for @mentions. $this->alertMentions($posted_by, $body, $topic); if ($topic) { return Redirect::to('/forums/topic/' . $topic->id); } else { return "No access."; } } else { return 'No write permission'; } } } }