sokil/task-stock-bundle

此软件包已被 废弃 并不再维护。作者建议使用 sokil/task-tracker-bundle 软件包代替。

任务跟踪器

0.2.5 2016-11-29 22:39 UTC

This package is auto-updated.

Last update: 2022-02-01 13:00:53 UTC


README

Total Downloads Daily Downloads

任务跟踪器包

安装

将依赖项添加到composer

composer.phar reequire sokil/task-stock-bundle

配置

此包依赖于其他包,这些包也需要配置。如果您尚未使用它们,请配置它们

基本包配置

  1. 将包添加到AppKernel
<?php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            new Sokil\TaskStockBundle\TaskStockBundle(),
        );
    }
}
  1. ./app/config/parameters.yml.dist 中定义所需的参数
# email server parameters
notification.from_email.address: ~
notification.from_email.sender_name: ~
  1. 在文件 ./app/config/security.yml 中定义角色层次结构中的角色
security:
    role_hierarchy:
        ROLE_TASK_VIEWER:           [ROLE_USER]
        ROLE_TASK_MANAGER:          [ROLE_TASK_VIEWER]
        ROLE_TASK_PROJECT_VIEWER:   [ROLE_USER]
        ROLE_TASK_PROJECT_MANAGER:  [ROLE_TASK_PROJECT_VIEWER]
  1. ./app/console/routing.yml 中注册路由
task_stock:
    resource: "@TaskStockBundle/Resources/config/routing.yml"
  1. 此包使用assetic,因此需要在assetic配置中注册它并进行一些配置
assetic:
    bundles:
        - TaskStockBundle
    variables:
        locale: [uk, en, de. fr]
        env: [dev,prod]

参数 variables 将一些变量传递到资产中,这些变量将用于构建资产路径。

配置SPA

此包使用 FrontendBundle 来构建前端,因此配置SPA,并添加一些依赖项到它

{% import "@FrontendBundle/Resources/views/macro.html.twig" as frontend %}
{% import "@TaskStockBundle/Resources/views/Spa/macro.html.twig" as taskSpa %}

{{ frontend.commonCssResources() }}
{{ frontend.commonJsResources() }}
{{ frontend.spaJsResources() }}

{{ taskSpa.cssResources() }}
{{ taskSpa.jsResources() }}

<script type="text/javascript">
    (function() {
        // app options
        var options = {{ applicationData|json_encode|raw }};
        // router
        options.router = new Marionette.AppRouter();
        var taskStockRouter = new TaskStockRouter();
        options.router.processAppRoutes(taskStockRouter, taskStockRouter.routes);
        // container
        options.container = new Container(_.extend(
            {},
            TaskStockServiceDefinition
        ));
        // requirejs
        options.requireJs = [
            TaskStockRequireJsConfig
        ];
        // start app
        window.app = new Application(options);
        window.app.start();
    })();
</script>

配置文件存储

此包使用 FileStorageBundle 来处理文件上传。

您需要配置一些文件系统来处理上传,例如 task_stock.attachments。将其添加到您的 ./app/config/config.yml

knp_gaufrette:
    factories:
        - "%kernel.root_dir%/../vendor/sokil/file-storage-bundle/src/Resources/config/adapter_factories.xml"
    adapters:
        task_stock.attachments:
            internal:
                pathStrategy:
                    name: chunkpath
                    options:
                        chunksNumber: 2
                        chunkSize: 3
                        preserveExtension: false
                        baseDir: "%kernel.root_dir%/files/task_attach"
    filesystems:
        task_stock.attachments:
            adapter: task_stock.attachments

然后将此文件系统添加到包的配置中,在 ./app/config/config.yml

task_stock:
   attachments_filesystem: "task_stock.attachments"

配置任务状态

任务属于某些类别:例如 BugEnhancementFeatureDesign 等。不同类别的任务可能有不同的状态流程。错误可能的状态有 NewIn ProgressTestResolved,而 Design 可能的状态有 NewPrototypingDrawingMarkupResolved。这些状态组合称为 Schema。类别为 Design 的任务可能与 Drawing schema 相关,而类别为 BugFeature 的任务可能与 Development schema 相关。

将schema配置添加到您的 ./app/config/config.yaml

taskStock:
   stateConfig:
      - id: 0
        name: Development
        states:
          new:
            label: task_status_new
            initial: true
            transitions:
              to_in_progress:
                resultingState: in_progress
                label: task_transiotion_open
                icon: glyphicon glyphicon-play
              to_rejected:
                resultingState: rejected
                label: task_transiotion_reject
                icon: glyphicon glyphicon-ban-circle
          in_progress:
            label: task_status_in_progress
            transitions:
              to_resolved:
                resultingState: resolved
                   label: task_transiotion_resolve
                   icon: glyphicon glyphicon-ok
                 to_rejected:
                   resultingState: rejected
                   label: task_transiotion_reject
                   icon: glyphicon glyphicon-ban-circle
             rejected:
               label: task_status_rejected
               transitions:
                 to_in_progress:
                   resultingState: in_progress
                   label: task_transiotion_reopen
                   icon: glyphicon glyphicon-repeat
             resolved:
               label: task_status_resolved
               transitions:
                 to_in_progress:
                   resultingState: in_progress
                   label: task_transiotion_reopen
                   icon: glyphicon glyphicon-repeat