Exemplo n.º 1
0
?>
  </ul>
  </div>
</div>
<script type="text/javascript">
  function remove_post_confirm(post_id, pool_id) {
    if (!$("del-mode") || !$("del-mode").checked) {
      return true
    }

    Pool.remove_post(post_id, pool_id)
    return false
  }

  Post.register_resp(<?php 
echo to_json(Post::batch_api_data($posts));
?>
);
</script>
<?php 
echo render_partial('post/hover');
?>

<div id="paginator">
  <?php 
paginator();
?>

  <div style="display: none;" id="info">When delete mode is enabled, clicking on a thumbnail will remove the post from this pool.</div>
</div>
<?php 
Exemplo n.º 2
0
<div id="post-view">
  <?php 
if (!$this->post) {
    ?>
    <h2><?php 
    echo $this->t('.empty');
    ?>
</h2>
  <?php 
} else {
    ?>
    <?php 
    if ($this->post->can_be_seen_by(current_user())) {
        ?>
      <script type="text/javascript">Post.register_resp(<?php 
        echo json_encode(Post::batch_api_data(array($this->post)));
        ?>
);</script>
    <?php 
    }
    ?>

    <?php 
    echo $this->partial('post/show_partials/status_notices', array('pools' => $this->pools));
    ?>

    <div class="sidebar">
      <?php 
    echo $this->partial('search');
    ?>
      <?php 
Exemplo n.º 3
0
 public function removePost()
 {
     $pool = Pool::find($this->params()->pool_id);
     $post = Post::find($this->params()->post_id);
     if ($this->request()->isPost()) {
         try {
             $pool->remove_post($this->params()->post_id, array('user' => current_user()));
         } catch (Exception $e) {
             if ($e->getMessage() == 'Access Denied') {
                 $this->access_denied();
             }
         }
         $api_data = Post::batch_api_data(array($post));
         $this->response()->headers()->add("X-Post-Id", $this->params()->post_id);
         $this->respond_to_success("Post removed", array('post#show', 'id' => $this->params()->post_id), array('api' => $api_data));
     }
 }
Exemplo n.º 4
0
required_params('id');
auto_set_params('reason');
if (!($post = Post::find(Request::$params->id))) {
    exit_with_status(404);
}
if (!empty(Request::$params->unflag)) {
    # Allow the user who flagged a post to unflag it.
    #
    # posts
    # "approve" is used both to mean "unflag post" and "approve pending post".
    if ($post->status != "flagged") {
        respond_to_error("Can only unflag flagged posts", array("#show", 'id' => Request::$params->id));
    }
    if (!User::is('>=40') and User::$current->id != $post->flag_detail->user_id) {
        access_denied();
    }
    $post->approve(User::$current->id);
    $message = "Post approved";
} else {
    if ($post->status != "active") {
        respond_to_error("Can only flag active posts", array("#show", 'id' => Request::$params->id));
    }
    $post->flag(Request::$params->reason, User::$current->id);
    $message = "Post flagged";
}
# Reload the post to pull in post.flag_reason.
$post->reload();
if (Request::$format == "json" || Request::$format == "xml") {
    $api_data = Post::batch_api_data(array($post));
}
respond_to_success($message, array("#show", 'id' => Request::$params->id), array('api' => $api_data));
Exemplo n.º 5
0
    $p = Post::find($post_id);
    $ids[] = $p->id;
    # If an entry has only an ID, it was just included in the list to receive changes to
    # a post without changing it (for example, to receive the parent's data after reparenting
    # a post under it).
    if (empty($post)) {
        continue;
    }
    $old_parent_id = $p->parent_id;
    Post::filter_api_changes($post);
    if ($p->update_attributes(array_merge($post, array('updater_user_id' => $user_id, 'updater_ip_addr' => Request::$remote_ip)))) {
        // post.merge(:updater_user_id => user_id, :updater_ip_addr => request.remote_ip))
        # Reload the post to send the new status back; not all changes will be reflected in
        # @post due to after_save changes.
        // $p->reload();
    }
    if ($p->parent_id != $old_parent_id) {
        $p->parent_id && ($ids[] = $p->parent_id);
        $old_parent_id && ($ids[] = $old_parent_id);
    }
}
# Updates to one post may affect others, so only generate the return list after we've already
# updated everything.
# TODO: need better SQL functions.
$ids = implode(', ', $ids);
$posts = Post::find_all(array('conditions' => array("id IN ({$ids})")));
$api_data = Post::batch_api_data($posts);
$url = !empty(Request::$params->url) ? Request::$params->url : '#index';
// $url = Request::$params->url;
// $url = {:action => "index"} if not url
respond_to_success("Posts updated", $url, array('api' => $api_data));
Exemplo n.º 6
0
?>
  </ul>
  </div>
</div>
<script type="text/javascript">
  function remove_post_confirm(post_id, pool_id) {
    if (!$("del-mode") || !$("del-mode").checked) {
      return true
    }

    Pool.remove_post(post_id, pool_id)
    return false
  }

  Post.register_resp(<?php 
echo json_encode(Post::batch_api_data($this->posts->members()));
?>
);
</script>
<?php 
echo $this->partial("post/hover");
?>

<div id="paginator">
  <?php 
echo $this->willPaginate($this->posts, ['class' => "no-browser-link"]);
?>

  <div style="display: none;" id="info"><?php 
echo $this->t('.delete_mode_info');
?>
Exemplo n.º 7
0
    <div id="post-view">
<?php 
if (empty($post->id)) {
    ?>
      <h2>Nobody here but us chickens!</h2>
<?php 
} else {
    if ($post->can_be_seen_by()) {
        ?>
      <script type="text/javascript"> Post.register_resp(<?php 
        echo to_json(Post::batch_api_data(array($post)));
        ?>
); </script>
<?php 
    }
    ?>

<?php 
    render_partial("post/show_partials/status_notices", 'pools');
    ?>
      <div class="sidebar">
<?php 
    render_partial("search");
    render_partial("tags");
    render_partial("post/show_partials/statistics_panel");
    render_partial("post/show_partials/options_panel");
    render_partial("post/show_partials/related_posts_panel");
    ?>

      </div>
      <div class="content" id="right-col">
Exemplo n.º 8
0
 public function undelete()
 {
     $post = Post::where(['id' => $this->params()->id])->first();
     if (!$post) {
         $this->respond_to_error("Post not found", ['#show', 'id' => $this->params()->id]);
         return;
     }
     $post->undelete();
     $affected_posts = [$post];
     if ($post->parent_id) {
         $affected_posts[] = $post->get_parent();
     }
     if ($this->params()->format == "json" || $this->params()->format == "xml") {
         $api_data = Post::batch_api_data($affected_posts);
     } else {
         $api_data = [];
     }
     $this->respond_to_success("Post was undeleted", ['#show', 'id' => $this->params()->id], ['api' => $api_data]);
 }
Exemplo n.º 9
0
    }
    // @preload = @preload.delete_if { |post| not post.can_be_seen_by?(@current_user) }
}
if ($from_api and isset(Request::$params->api_version) && Request::$params->api_version == "2" and Request::$format != "json") {
    respond_to_error("V2 API is JSON-only", array(), array('status' => 424));
}
// @posts.replace(results)
$posts = $results;
unset($results);
switch (Request::$format) {
    case 'json':
        if (empty(Request::$params->api_version) || Request::$params->api_version != "2") {
            render('json', to_json(array_map(function ($p) {
                return $p->api_attributes();
            }, (array) $posts)));
            return;
        }
        $api_data = Post::batch_api_data($posts, array('exclude_tags' => !empty(Request::$params->include_tags) ? false : true, 'exclude_votes' => !empty(Request::$params->include_votes) ? false : true, 'exclude_pools' => !empty(Request::$params->include_pools) ? false : true));
        render('json', to_json($api_data));
        break;
    case 'xml':
        ActionView::$layout = false;
        return;
        break;
}
if (!empty($split_tags)) {
    $tags = Tag::parse_query($tags);
} else {
    $tags['include'] = Tag::count_by_period(gmd_math('sub', '1D'), gmd(), array('limit' => 25, 'exclude_types' => CONFIG::$exclude_from_tag_sidebar));
}
calc_pages();
Exemplo n.º 10
0
<?php

required_params('id');
$post = Post::find(Request::$params->id);
$post->undelete();
$affected_posts = array($post);
if ($post->parent_id) {
    $affected_posts[] = $post->get_parent();
}
if (Request::$format == "json" || Request::$format == "xml") {
    $api_data = Post::batch_api_data($affected_posts);
} else {
    $api_data = array();
}
respond_to_success("Post was undeleted", array('#show', array('id' => Request::$params->id), array('api' => $api_data)));