Page tree
Skip to end of metadata
Go to start of metadata

Wstęp

Szablony zgłoszeń oraz artykułów do bazy wiedzy tworzy się w postaci plików ascx(okna modalne) lub aspx. W systemie Helpdesk jeden szablon jest zawarty w jednym pliku aspx.

Najczęściej wykorzystywanym szablonem do tworzenia nowych stron jest CreateIssue_incydent_z_logowaniem_modal.ascx (jest najbardziej rozbudowany, zawiera wszystkie możliwe pola, które można wykorzystać na formatce dla nowego zgłoszenia). Szablony stron opisujących nowe zgłoszenia oraz artykuły do bazy wiedzy dostępne są w miejscu instalacji systemu ...LOGHelpdesk\Views\Workflow\Templates\Modal.

Przykład kodu szablonu:

Przykład kodu szablonu
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Helpdesk.DAL.DTO.IssueWorkflowData>" %>
<%@ Import Namespace="Helpdesk.Log.Messages" %>
<%@ Import Namespace="Helpdesk.Extensions" %>


<% Html.BeginWorkflowModalForm(); %>
<div id="workflow-form" class="workflow-form workflow-row">
    <div class="workflow-column">
        <%= Html.ValidationSummary() %>
        <div class="section">
            <div class="form-field lg">
                <%= Html.TextBoxFor(m => m.Subject, new { placeholder = Resources.SubjectTip }) %>
            </div>
        </div>
<span class="section-description">* - pole wymagane</span>
        <dl class="form-field">
            <dt><%= Html.ModalLabelFor(m => m.Notifier) %> *</dt>
            <dd><%= Html.ModalEditorFor(m => m.Notifier) %></dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.LabelFor(m => m.Category) %> *</dt>
            <dd>
                <%= Html.HiddenFor(m => m.Type.Id, new { id = "workflow_Type_id" }) %>
                <%= Html.DisplayFor(m => m.Category, new { parentFieldname = "workflow_Type_id", id = "workflow_Category_dir" }) %>
            </dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.LabelFor(m => m.SubCategory) %> *</dt>
            <dd><%= Html.EditorFor(m => m.SubCategory, new { parentFieldname = "workflow_Category_dir", id = "workflow_SubCategory_dir" }) %></dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.LabelFor(m => m.Position) %></dt>
            <dd><%= Html.EditorFor(m => m.Position, new { parentFieldname = "workflow_SubCategory_dir", id = "workflow_Position_dir" }) %></dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.ModalLabelFor(m => m.Urgency) %></dt>
            <dd><%= Html.ModalEditorFor(m => m.Urgency) %></dd>
        </dl>
        <span class="section-description">W poniższym polu możesz dodatkowo wybrać zasób, którego dotyczy problem</span>
        <dl class="form-field addon-btn">
            <dt><%= Html.LabelFor(m => m.Resources) %></dt>
            <dd>
                <%= Html.HiddenFor(m => m.CreatedFrom.ClientIp) %>
                <%= Html.HiddenFor(m => m.CreatedFrom.ComputerName) %>
                <%= Html.EditorFor(m => m.Resources, new { type = "RelatedResource", id = "workflow_ResourcesAssets", notifierId = Html.ModalIdFor(x=>x.Notifier) }) %>
            </dd>
        </dl>
        <% if (Html.PermitFor("First-line", "Second-line", "Operators", "Administrators")) { %>
                    <h6>Poniższe pola widoczne tylko dla Operatora IT</h6>
        <dl class="form-field">
            <dt><%= Html.ModalLabelFor(m => m.IssueDate) %></dt>
            <dd><%= Html.ModalEditorFor(m => m.IssueDate) %></dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.ModalLabelFor(m => m.IssueMode) %></dt>
            <dd><%= Html.ModalEditorFor(m => m.IssueMode) %></dd>
        </dl>
        <dl class="form-field">
            <dt><%= Html.ModalLabelFor(m => m.Impact) %></dt>
            <dd><%= Html.ModalEditorFor(m => m.Impact) %></dd>
        </dl>
        <dl class="form-field">
            <dt></dt>
            <dd>
                <%= Html.CheckBoxFor(m => m.IsSolvedWhilePhoneCall, new { id = "workflow_IsSolvedWhilePhoneCall" }) %> 
                <%= Html.LabelFor(m => m.IsSolvedWhilePhoneCall, new { @for = "workflow_IsSolvedWhilePhoneCall" }) %>
            </dd>
        </dl>
        <% } %>
    </div>
    <div class="workflow-column">
        <div class="section">
            <h6><%= Resources.Content %></h6>
            <div class="form-field">
                <%= Html.ModalTinyMCE(m => m.ContentHtml, height: 200) %>
            </div>
        </div>
        <% if (Html.IsAuthorized<IssuesController>(c => c.Uploader(null))) { %>
            <div class="section">
                <h6><%= Resources.Attachments %></h6>
                <span class="section-description"><%= Resources.AttachmentsTip %></span>
                <%= Html.ModalUploader() %>
            </div>
        <% } %>
        <div class="section separator">
            <h6><%= Resources.Keywords %></h6>
            <span class="section-description"><%= Resources.KeywordsTip %></span>
            <%= Html.ModalEditorFor(m => m.Keywords, "Tags") %>
        </div>
    </div>
</div>
<% Html.EndForm(); %>

<script type="text/javascript">
    qdesk.workflow.ajax.loaded({
        title: "<%= Html.GetWorkflowActionName() %>",
        width: "90%",
        saveButton: {
            text: "<%= Resources.Save %>",
        },
        cancelButton: {
            text: "<%= Resources.Cancel %>"
        }
    });

    $(document).bind("inplaceEditor.doneTemplate", function (e) {
        var el = document.getElementById("workflow-form")
        if (!el || el.dataset.init)
            return;
        el.dataset.init = true;

        var creationDate = new Date('<%= Model.CreationDate.ToString("o") %>');
        var issueDateId = '<%= Html.ModalIdFor(m=>m.IssueDate) %>';

        $("#" + issueDateId)
            .datetimepicker({
                maxDate: creationDate, //wspierane przez datepicker
                maxDateTime: creationDate, //wspierane przez timepicker
                showSecond: true,
                timeFormat: 'hh:mm:ss'
            });

        $('#workflow_AddWorkCost').click(function() {
            var btn = $(this);
            var span = btn.parent();
            var beak = span.parent();
            var well = beak.next();
            if (btn.hasClass('active')) {
                btn.removeClass('active');
                span.removeClass('active');
                beak.removeClass('btn-beak');
                well.addClass('display-none');
            } else {
                btn.addClass('active');
                span.addClass('active');
                beak.addClass('btn-beak');
                well.removeClass('display-none');
            }
        });
        <% if (Model.NewWorkCost.IsFilled()) { %>
            $('#workflow_AddWorkCost').click();
        <% } %>
    });
</script>

Każde pole widoczne na formatce zgłoszenia opisywane jest przez jeden blok kodu. Poniższy przykład odpowiedzialny jest za wyświetlanie pola Wpływ na formatce dodawania nowego zgłoszenia, np. typu Incydent:

Pole Wpływ
<dl class="form-field">
     <dt><%= Html.ModalLabelFor(m => m.Impact) %></dt>
     <dd><%= Html.ModalEditorFor(m => m.Impact) %></dd>
</dl>

gdzie:

  • Html.ModalLabelFor(m => m.nazwa_pola) - oznacza dokładną nazwę etykiety jaka jest wyświetlana dla danego pola (w tym wypadku Wpływ, czyli Impact)
  • Html.ModalEditorFor(m => m.nazwa_pola) - oznacza sposób wyświetlania danego pola. Możliwie są dwie opcje: pole odblokowane lub zablokowane do edycji

Nazewnictwo

Przed modyfikacją wybranego pola należy sprawdzić na podstawie listy pól do zgłoszeń jaką nazwę słownikową w Helpdesk posiada, np. Wpływ(Wpływ = Impact).

Wymagany restart

W celu zaczytania zmian w pliku należy wykonać restart IIS'a.

Zmiana nazwy etykiety pola

W celu zmiany nazwy wybranego pola należy odszukać w kodzie sekcje odpowiedzialną za to pole (za przykład posłuży nam pole Pilność, czyli zgodnie z listą pól do zgłoszenia - Urgency):

<dl class="form-field">
    <dt><%= Html.ModalLabelFor(m => m.Urgency) %></dt>
    <dd><%= Html.ModalEditorFor(m => m.Urgency) %></dd>
</dl>

 

Jeśli chcemy zamienić nazwę etykiety Pilność na formatce słowem Ważność należy w tym miejscu zmodyfikować kod na:

<dl class="form-field">
	<dt><%= Html.Label("Ważność") %></dt>
	<dd><%= Html.ModalEditorFor(m => m.Urgency) %></dd>
</dl>

Po zmianie, podczas dodawania zgłoszenia szablon wygląda jak na poniższym zrzucie:


Uwaga:

Etykieta pola zmieniana jest tylko na interfejsie. Nie zmienia się właściwa nazwa słownika. W celu zmiany nazwy kolumny na liście zgłoszeń należy taką modyfikację przeprowadzić zgodnie z instrukcją

Blokada edycji pola

Niektóre pola na formatce zgłoszenia są zablokowane do edycji, inne z kolei można uzupełnić wcześniej zdefiniowanymi wartościami słownikowymi. Sposób wyświetlania danego pola określają dwa parametry:

  • ModalEditorFor - pole z możliwością edycji
  • ModalDisplayFor - pole zablokowane do edycji

W przypadku gdy chcemy zmienić sposób wyświetlania pola Pilność (domyślnie jest to pole z możliwością edycji) należy w tym miejscu zmodyfikować wpis ModalEditorFor (pole edytowalne) na DisplayFor (pole bez możliwości edycji dla użytkownika):

<dl class="form-field">
    <dt><%= Html.ModalLabelFor(m => m.Urgency) %></dt>
    <dd><%= Html.DisplayFor(m => m.Urgency) %></dd>
</dl>

Po zmianie, podczas dodawania zgłoszenia, szablon wygląda jak na poniższym zrzucie (pole Pilność jest nieedytowalne):

Automatyczne uzupełnianie pola o daną wartość

Usuwania pola

Podobnie jak powyższe zmiany również w łatwy sposób możemy usunąć poszczególne pola z formatki zgłoszenia. Wystarczy że zakomentujemy odpowiedni blok kodu.

Uwaga: W celu zakomentowania/wyłączenia danego typu zgłoszenia należy umieścić odpowiednią sekcja kodu w poniższych znacznikach:

<!--

-->

Poniższy blok kodu został zakomentowany w celu usunięcia pola Pilność z formatki dodawania zgłoszenia:

<!--<dl class="form-field">
     <dt><%= Html.ModalLabelFor(m => m.Urgency) %></dt>
     <dd><%= Html.ModalEditorFor(m => m.Urgency) %></dd>
</dl>-->

Po zmianie, podczas dodawania zgłoszenia szablon nie będzie zawierał pola Pilność:

Warunkowa widoczność

Inaczej niż w przypadku modyfikacji warunkowej widoczności powyższa modyfikacja ma zastosowanie dla wszystkich użytkowników, niezależnie od grupy.

Zmiany w szablonach widoku zgłoszenia

Analogiczne modyfikacje jak w szablonie CreateIssue_incydent_z_logowaniem_modal.ascx należy wykonać także dla szablonów odpowiedzialnych za widok pokazywania zgłoszeń.

1. ShowServiceRequest.aspx (lokalizacja w katalogu: ...\LOGHelpdesk\Views\Issues) - zmiana dotycząca usuwania pola z podglądu zgłoszenia na zasadzie zakomentowania odpowiedniego bloku kodu. Dla pól zależnych: Kategoria, Podkategoria i Pozycja zmiany nanosimy w pliku SubDictionaries.ascx (lokalizacja w katalogu: ...\LOGHelpdesk\DisplayTemplates)

2. RenameIssueData.ascx (lokalizacja w katalogu: ...\LOGHelpdesk\Views\Shared) - zmiana dotycząca modyfikacji etykiety pola na podglądzie zgłoszenia.

Zmian odbywa się na podstawie wartości podanej dla parametru name: Twoja_Nazwa'. Jeśli chcemy zamienić nazwę etykiety Pilność w widoku zgłoszenia słowem Ważność należy w tej sekcji dodać poniższa linię kodu:

qdesk.fieldsToRename = [
			
			{ field: '<%= Html.NameFor(i => i.Urgency) %>', name: 'Ważność' }

		];

Po zmianie, widok szczegółów zgłoszenia wygląda jak na poniższym zrzucie:

Aktywne edytory inplace

Edycja pól jest warunkowana licencjonowanym uprawnieniemZgłoszenia -> Edytuj.



Status AKTUALNY

Dotyczy wersji: 2.x - 6.x

Poziom wiedzy ZAAWANSOWANY

Spis dokumentu

Powiązane

Found 10 search result(s) for pola.

Page: Pola opisujące zasoby (LOG System)
... którym możemy opisać dany zasób: 20181025 082013Komputer.png Powyższy przykład pokazuje pola dostępne podczas dodawania/edycji zasobu rodzaju Komputer w którym np ... 2.x 6.x Poziom wiedzy Spis dokumentu Powiązane zasoby
Dec 17, 2018
Labels: pola, zasoby
Page: Walidacja na pola w Helpdesk (LOG System)
... 2.x 6.x Poziom wiedzy Spis dokumentu Powiązane walidacja pola helpdesk formatka zgłoszenia
Dec 27, 2018
Labels: pola, walidacja, zgłoszenia, formatka, helpdesk
Page: Zmiana domyślnych podpowiadanych wartości pola "typ zasobów" (LOG System)
... Założenia Należy przejść do perspektywy Konfiguracja > Zasoby > Standardowe wartości pola 'typ zasobu': 20181116 153133LOG System 6.1.50 RC.png Zostaną wyświetlone domyślnie ...
Dec 27, 2018
Labels: wartości, zasoby, zmiana
Page: Kopiowanie zawartości dowolnego pola do Schowka (LOG System)
... Założenia System dostarcza funkcję kopiowania zawartości pola do schowka.  Należy zaznaczyć interesujące nas pole. Kliknąć prawym przyciskiem ...
Dec 21, 2018
Labels: kopiowanie, schowek, nawigacja
Page: Edycja pól opisujących zgłoszenie (LOG System)
... mogę wykonać na udostępnionym dokumencie2.pngspowoduje przejście w tryb edycji pola Priorytet: image2018121393318.png Tryb edycji pola możemy zakończyć zapisując zmiany za pomocą ikonyJakie czynności mogę wykonać
Dec 18, 2018
Labels: pola, katalog_usług, nawigacja
Page: Definiowanie własnych pól w zasobach (LOG System)
... wiesz jak dodać Informacje dodatkowe do głównego widoku kolumn zobacz : Pola opisujące zasoby https://dokumentacja.logsystem.pl/pages/viewpage.action?pageId=35258428 20181026 104236LOG System 6.0.114.png W celu ... 2.x 6.x Poziom wiedzy Spis dokumentu Powiązane zasoby
Dec 17, 2018
Labels: pola, zasoby
Page: Zdefiniowanie nazwy pól dodatkowych opisujących zasoby (LOG System)
... pól dodatkowych opisujących zasoby należy przejść do zakładki Konfiguracja > Definiowanie pola zasobów: 20181119 090146LOG System 6.1.50 RC.png Po zdefiniowaniu nazw efekt
Dec 27, 2018
Labels: pola, konfiguracja, dodawanie, zasoby
Page: Lista pól dla zgłoszeń Helpdesk (LOG System)
... wersji: 2.x 6.x Poziom wiedzy Spis dokumentu Powiązane pola helpdesk
Dec 27, 2018
Labels: pola, helpdesk
Page: Lista dostępnych pól dla bazy wiedzy (LOG System)
... pól dostępnych dla bazy wiedzy (KB) dla Helpdesk: Pole Nazwa pola Rodzaj pola Komentarz KbId Id wpisu bazy wiedzy numer Unikalne pole generowane ... wersji: 2.x 6.x Poziom wiedzy Spis dokumentu Powiązane
Dec 27, 2018
Labels: pola, helpdesk
Page: Automatyczne uzupełnianie domyślnych wartość pól (LOG System)
... pole na stronie. Rozbudowana sekcja o powyższą linię kodu dla pola Pilność spowoduje automatyczne wypełnienie tego pola wartością słownikowa o identyfikatorze c16dff218ac94cef8c9cafe70b1f0e36, czyli Normalna 20181213 094358Window.png W ...
Apr 05, 2019
Labels: pola, workflow, helpdsk, automatyzacja