hokui/hokui.net

View on GitHub
client/page/study/subject/document/new.jade

Summary

Maintainability
Test Coverage
p
    a(ui-sref="^") 一覧に戻る
form.form.row(role="form" name="docUpload" ng-submit="performUpload(docUpload.$valid)" novalidate)
    .panel
        .panel__head
            h4.panel__head__title
                span.text-secondary {{subject.title_ja}}
                | の
                span.text-secondary {{definition.label}}
                | をアップロード
        .panel__body
            .form__group
                label.form__label(for="docUploadClassYear")
                    | 学年
                    |  
                    span.text-accent *必須
                div
                    input.form__control(
                        type="number"
                        name="class_year"
                        ng-model="newDoc.class_year"
                        required
                        ng-change="errors.class_year = null"
                        id="docUploadClassYear"
                        max="{{maxClassYear}}"
                        force-invalid="errors.class_year"
                        placeholder="「{{93}}」など数字のみ入力してください。")
                    div(ng-show="docUpload.class_year.$dirty")
                        .form__error(ng-show="docUpload.class_year.$error.required") 入力必須項目です
                        .form__error(ng-show="docUpload.class_year.$error.number") 数値を入力してください。
                        .form__error(ng-show="docUpload.class_year.$error.max")
                            | 現在の一年生が{{maxClassYear}}期です。それより上の学年を入力してください。
                    div
                        .form__error(ng-if="!!errors.class_year" ng-repeat="error in errors.class_year") {{error}}

            .form__group
                label.form__label(for="docUploadComments")
                    | 説明
                    |  
                    span.text-secondary *任意
                div
                    input.form__control(
                        type="text"
                        name="comments"
                        ng-model="newDoc.comments"
                        ng-change="errors.comments = null"
                        id="docUploadComments"
                        force-invalid="errors.comments"
                        placeholder="資料に関する説明などあれば入力してください。")
                    div
                        .form__error(ng-if="!!errors.comments" ng-repeat="error in errors.comments") {{error}}

            div(ui-view="codeEditor")

            .form__group
                label.form__label(for="docUploadComments")
                    | ファイル
                    |  
                    span.text-accent *必須

                .panel
                    .panel__body
                        ul(ng-show="files.length > 0")
                            li(ng-repeat="file in files")
                                | {{file.name}} ({{file.size | bytes}})

                        p.text-muted(ng-if="files.length < 1") ファイルが選択されていません。
                        p(ng-if="files.length > 0") {{files.length}}ファイル選択されています。

                        .droparea.clickable(
                            name="files"
                            force-invalid="files.length < 1 || file_md5"
                            ng-file-select
                            ng-file-drop
                            ng-model="files"
                            ng-file-change="fileChanged($files)"
                            class="drop-box"
                            drag-over-class="dragover")
                                | クリックしてファイルを選択
                                br
                                | or
                                br
                                | ファイルをドロップ
                        div(ng-no-file-drop) File Drag/Drop is not supported for this browser
                div(ng-show="errors" ng-repeat="(errorName, error) in errors")
                    .form__error(ng-repeat="message in error")
                        span(bind-model="message === 'has already been taken'" 
                             bind-true="'すでに全く同一のファイルがアップロードされています'" 
                             bind-false="message")
        .panel__foot.row
            button.btn.btn--block.btn--primary(type="submit" ng-disabled="docUpload.$invalid || errors") {{uploadButtonLabel(docUpload.$valid)}}