TicketDescriptionTemplates版本 10版本 11 间的差异


忽略:
时间戳:
2022-01-17T13:06:37+08:00 (3年 前)
作者:
huxy
评论:

改进模板,添加灵魂五问

图例:

未修改
增加
删除
修改
  • TicketDescriptionTemplates

    v10 v11  
    5252        width: 0%;
    5353    }
    54     .textarea-toolbar {
    55         margin-top: 0.3em;
    56         margin-left: 0.2em;
    57         border: solid #d7d7d7;
    58         border-width: 1px 1px 1px 0;
    59         height: 18px;
    60         width: 52px;
    61     }
    62     .textarea-toolbar :link, .textarea-toolbar :visited {
    63         background: transparent url(raw-attachment/wiki/TicketDescriptionTemplates/toolbar.png) no-repeat;
    64         border: 1px solid #fff;
    65         border-left-color: #d7d7d7;
    66         cursor: default;
     54    .input-title {
    6755        display: block;
    68         float: left;
    69         width: 24px;
    70         height: 16px;
    71        }
    72     .textarea-toolbar :link:hover, .textarea-toolbar :visited:hover {
    73         ckground-color: transparent;
    74         border: 1px solid #fb2;
    75     }
    76     .textarea-toolbar a#em { background-position: 0 0 }
    77     .textarea-toolbar a#strong { background-position: 0 -16px }
     56        margin-top: 1em;
     57        margin-bottom: -0.8em;
     58        font-weight: bold;
     59    }
     60    .format-help {
     61        float: right;
     62    }
    7863</style>
    7964<script type="text/javascript">
     
    203188            var panel_info = JSON.parse(description_panel);
    204189            $(".panel-row label").each(function(index, element) {
    205                 var text_element = $(element).parent().next("td").find("input:text")[0];
    206                 if (text_element == undefined) {
    207                     text_element = $(element).parent().next("td").find("textarea")[0];
    208                 }
     190                var text_element = $(element).parent("td").find("input:text")[0];
     191                if (text_element == undefined)
     192                    text_element = $(element).parent("td").find("textarea")[0];
     193                if (text_element == undefined)
     194                    text_element = $(element).parent("th").next("td").find("input:text")[0];
     195                if (text_element == undefined)
     196                    text_element = $(element).parent("th").next("td").find("textarea")[0];
    209197                if ($(text_element).attr("class") != undefined && $(text_element).attr("class").match(/date-picker/) != null)
    210198                    $(text_element).datepicker("setDate", panel_info[index]);
     
    214202        }
    215203
    216         function addToolbarButton(toolbar, id, title, click_fn) {
    217             var a = document.createElement("a");
    218             a.href = "#";
    219             a.id = id;
    220             a.title = title;
    221             a.onclick = function() {
    222                 if ($(toolbar.target_textarea).prop("disabled") === false &&
    223                     $(toolbar.target_textarea).prop("readonly") === false) {
    224                     try { click_fn() } catch (e) {}
    225                 }
    226                 return false;
    227             };
    228             a.tabIndex = 400;
    229             toolbar.appendChild(a);
    230         }
    231 
    232         function encloseSelection(textarea, prefix, suffix) {
    233             textarea.focus();
    234             var start, end, sel, scrollPos, subst;
    235             if (document.selection != undefined) {
    236                 sel = document.selection.createRange().text;
    237             } else if (textarea.setSelectionRange != undefined) {
    238                 start = textarea.selectionStart;
    239                 end = textarea.selectionEnd;
    240                 scrollPos = textarea.scrollTop;
    241                 sel = textarea.value.substring(start, end);
    242             }
    243             if (sel.match(/ $/)) {
    244                 sel = sel.substring(0, sel.length - 1);
    245                 suffix = suffix + " ";
    246             }
    247             subst = prefix + sel + suffix;
    248             if (document.selection != undefined) {
    249                 var range = document.selection.createRange().text = subst;
    250                 textarea.caretPos -= suffix.length;
    251             } else if (textarea.setSelectionRange != undefined) {
    252                 textarea.value = textarea.value.substring(0, start) + subst + textarea.value.substring(end);
    253                 if (sel) {
    254                     textarea.setSelectionRange(start + subst.length, start + subst.length);
    255                 } else {
    256                     textarea.setSelectionRange(start + prefix.length, start + prefix.length);
    257                 }
    258                 textarea.scrollTop = scrollPos;
    259             }
    260         }
    261 
    262204        $("textarea.toolbar").each(function(index, element) {
    263             if ($(element).prev('div.textarea-toolbar').length == 0) {
    264                 $(element).before('<div class="textarea-toolbar"></div>');
    265                 var toolbar = $(element).prev('div.textarea-toolbar').get(0);
    266                 toolbar.target_textarea = element;
    267                 addToolbarButton(toolbar, "strong", "插入 C 代码块", function() {encloseSelection(element, "\n{{{#!c\n", "\n}}}\n");});
    268                 addToolbarButton(toolbar, "em", "插入 C++ 代码块", function() {encloseSelection(element, "\n{{{#!cpp\n", "\n}}}\n");});
    269             }
     205            addWikiFormattingToolbar(element);
     206            $(element).closest("fieldset").prepend('<span class="format-help">更多格式请参看<a target="_blank" href="wiki/WikiFormatting">Wiki格式</a></sapn>');
    270207        });
    271208    }
     
    278215        var exchange_tags = []
    279216        $(".panel-row").each(function(index, element) {
    280             var labels = $(element).find("th label");
     217            var labels = $(element).find("th label, td label");
    281218            var row_data = [];
    282219            var title = $(element).attr("title");
     
    284221
    285222            if (labels.length == 1) {
    286                 var value = $(element).find("td").children("input:text").val();
     223                var value = $(element).find("td input:text").val();
    287224                if (value == undefined) {
    288                     value = $(element).find("td").children("textarea").val();
     225                    value = $(element).find("td textarea").val();
    289226                }
    290                 if (title == "出错日志")
     227                if (title == "出错信息")
    291228                    description += "{{{\n" + value + "\n}}}\n";
    292229                else
     
    333270<table id="panel">
    334271    <tbody>
    335         <tr title="问题描述" class="panel-row">
    336             <th><label>问题描述 <span class="required-field-label">*</span>:</label></th>
    337             <td colspan="5"><textarea class="required-field toolbar"></textarea></td>
    338         </tr>
    339         <tr title="问题场景" class="panel-row">
    340             <th><label>问题场景 <span class="required-field-label">*</span>:</label></th>
    341             <td colspan="5"><textarea class="required-field toolbar"></textarea></td>
    342         </tr>
    343         <tr title="复现步骤" class="panel-row">
    344             <th><label>复现步骤 <span class="required-field-label">*</span>:</label></th>
    345             <td colspan="5"><textarea class="required-field toolbar"></textarea></td>
    346         </tr>
    347         <tr title="出错日志" class="panel-row">
    348             <th><label>出错日志:</label></th>
    349             <td colspan="5"><textarea></textarea></td>
    350         </tr>
    351         <tr title="初步定位" class="panel-row">
    352             <th><label>初步定位:</label></th>
    353             <td colspan="5"><textarea class="toolbar"></textarea></td>
     272        <tr title="您的问题或疑问" class="panel-row">
     273            <th></th>
     274            <td colspan="5">
     275                <label class="input-title">您的问题或疑问 <span class="required-field-label">*</span>:</label>
     276                <fieldset><div><textarea class="required-field toolbar"></textarea></div></fieldset>
     277            </td>
     278        </tr>
     279        <tr title="您期望的结果" class="panel-row">
     280            <th></th>
     281            <td colspan="5">
     282                <label class="input-title">您期望的结果 <span class="required-field-label">*</span>:</label>
     283                <fieldset><div><textarea class="required-field toolbar"></textarea></div></fieldset>
     284            </td>
     285        </tr>
     286        <tr title="您想到的初步解决方案" class="panel-row">
     287            <th></th>
     288            <td colspan="5">
     289                <label class="input-title">您想到的初步解决方案 <span class="required-field-label">*</span>:</label>
     290                <fieldset><div><textarea class="required-field toolbar"></textarea></div></fieldset>
     291            </td>
     292        </tr>
     293        <tr title="请告诉我们如何重现该问题" class="panel-row">
     294            <th></th>
     295            <td colspan="5">
     296                <label class="input-title">请告诉我们如何重现该问题 <span class="required-field-label">*</span>:</label>
     297                <fieldset><div><textarea class="required-field toolbar"></textarea></div></fieldset>
     298            </td>
     299        </tr>
     300        <tr title="出错信息" class="panel-row">
     301            <th></th>
     302            <td colspan="5">
     303                <label class="input-title">出错信息:</label>
     304                <fieldset><div><textarea></textarea></div></fieldset>
     305            </td>
     306        </tr>
     307        <tr title="请告诉我们有关您的环境的详细信息" class="panel-row">
     308            <th></th>
     309            <td colspan="5">
     310                <label class="input-title">请告诉我们有关您的环境的详细信息 <span class="required-field-label">*</span>:</label>
     311                <fieldset><div><textarea class="required-field toolbar"></textarea></div></fieldset>
     312            </td>
    354313        </tr>
    355314        <tr title="问题处理时间段" class="panel-row">