portal – DijitalTurk https://dijitalturk.com/veysel Dijital Paylaşımlar Tue, 30 Mar 2021 12:47:30 +0000 tr hourly 1 Tablı Widget yapısı oluşturma. https://dijitalturk.com/veysel/tabli-widget-yapisi-olusturma/ https://dijitalturk.com/veysel/tabli-widget-yapisi-olusturma/#respond Sat, 23 Mar 2019 10:09:35 +0000 http://dijitalturk.com/veysel/?p=1166 Navigasyon ekranında formu section yapısı ile tablı olarak dizayn ettiğimiz zaman Servicenow’un OOB widgetları bu tablı yapıyı render edemiyor ve

The post Tablı Widget yapısı oluşturma. appeared first on DijitalTurk.

]]>
Navigasyon ekranında formu section yapısı ile tablı olarak dizayn ettiğimiz zaman Servicenow’un OOB widgetları bu tablı yapıyı render edemiyor ve fieldları alt alta listelerek okunması zor bir yapı karşımıza çıkartıyor. Yapacağımız 3 adımlı geliştirme sonrasında widget’ımız tablı özellik kazanmış olacak.

Nevigasyon ekranı tablı yapısı:

OOB widget tablı yapı görünümü:

Geliştirme sonrası tablı Widget görünümü:

 

 

Bu sounu aşmak için 3 adımdan oluşan bir geliştirme yapmamız yeterli.

  1. adım UI Script oluşturuyoruz.
(function() {
  angular.module('myTabbedFormFilters', []).filter('titledFormSectionFilter', function() {
    return function(input) {
      var output = [];
      console.log('JMM: input.length: '+ input.length);
      for (var i = 0; i < input.length; i++) {
        if (input[i].captionDisplay.length > 0) {
          console.log('JMM: captionDisplay:' + input[i].captionDisplay);
          output.push(input[i]);
        }	

      }
      return output;
    };
  }).filter('currentFormSectionFilter', function() {
    return function(input, startingCaptionDisplay) {
      var output = [];
      var include = false;
      for (var i = 0; i < input.length; i++) {
        if (input[i].captionDisplay == startingCaptionDisplay) {
          include = true;
          output.push(input[i]);
        } else if((include)&&(input[i].captionDisplay == '')){
          output.push(input[i]);
        } else {
          include = false;
        }
      }
      return output;
    };
  });
  
})();

2. adım

Widget’ın içine bir ng-template tanımlıyoruz. adı: “smse-tabbed-sp-model-xml” olacak.

<div>
  <uib-tabset active="active" justified="true">
  <uib-tab index="$index+1" ng-repeat="titleContainer in containers | titledFormSectionFilter" heading="{{titleContainer.captionDisplay}}">
    <fieldset ng-repeat="container in containers | currentFormSectionFilter : titleContainer.captionDisplay" ng-show="isContainerVisible(container)" ng-init="$last ? execItemScripts() : null">
      <legend class="h4" ng-if="(container.caption || container.captionDisplay)">{{container.captionDisplay || container.caption}}</legend>
      <div class="row">
        <div ng-repeat="column in container.columns" class="col-md-{{12 / container.columns.length }}">
          <div ng-switch="f.type" ng-repeat="f in column.fields" id="{{getVarID(f)}}" ng-class="{'form-inline': isInlineForm === true }">
            <div ng-switch-when="label" ng-if="formModel._fields[f.name]" ng-show="formModel._fields[f.name].visible">
              <label ng-bind-html="::f.label"></label>
              <span ng-if="::formModel._fields[f.name].instructions" ng-bind-html="::formModel._fields[f.name].instructions"></span>
              <p ng-if="::formModel._fields[f.name].help_text" title="{{::formModel._fields[f.name].help_tag}}" class="help-block" ng-bind-html="::formModel._fields[f.name].help_text"></p>
              <hr class="sp_label_hr"></hr>
            </div>
            <sp-form-field ng-switch-when="field" ng-if="formModel._fields[f.name]" form-model="formModel" field="formModel._fields[f.name]" glide-form="getGlideForm()" ng-show="formModel._fields[f.name].visible"></sp-form-field>
            <sp-variable-layout ng-switch-when="container" ng-init="containers=[f]"></sp-variable-layout>
            <sp-variable-layout ng-switch-when="checkbox_container" ng-init="containers=f.containers"></sp-variable-layout>
            <sp-widget ng-switch-when="formatter" ng-if="formModel._formatters[f.id].widgetInstance" widget="formModel._formatters[f.id].widgetInstance" page="{g_form: getGlideForm()}"></sp-widget>
            <hr ng-switch-when="break"></hr>
          </div>
        </div>
      </div>
    </fieldset>
  </uib-tab>
  </uib-tabset>
</div>

3. adım olarak widget’ın Body kısmıda <!–form–> alanını aşağıdaki kod ile değiştiriyoruz.

<div>
     <sp-model form_model="data.f" mandatory="mandatory" template-url="smse-tabbed-sp-model-xml"></sp-model>
   </div>

 

The post Tablı Widget yapısı oluşturma. appeared first on DijitalTurk.

]]>
https://dijitalturk.com/veysel/tabli-widget-yapisi-olusturma/feed/ 0
Servicenow portal’da rapor sayfası oluşturma https://dijitalturk.com/veysel/servicenow-portalda-rapor-sayfasi-olusturma/ https://dijitalturk.com/veysel/servicenow-portalda-rapor-sayfasi-olusturma/#respond Mon, 24 Dec 2018 07:18:35 +0000 http://dijitalturk.com/veysel/?p=1104 Servicenow portal’de bir dashboard-rapor sayfası hazırlamak isterseniz öncelikle ilgili raporları navigasyon sayfasında hazırlayıp “Publish” etmiş olmanız gerekir. Sonrasında Servicnow’da bu

The post Servicenow portal’da rapor sayfası oluşturma appeared first on DijitalTurk.

]]>
Servicenow portal’de bir dashboard-rapor sayfası hazırlamak isterseniz öncelikle ilgili raporları navigasyon sayfasında hazırlayıp “Publish” etmiş olmanız gerekir.

Sonrasında Servicnow’da bu raporların görüneceği ana sayfanızı hazırladıktan sonra aşağıdaki kodlara benzer bir yapıda html alana sahip bir widget hazırlamanız ve bu sayfaya eklemeniz yeterli olacaktır.

<div class="col-lg-4">
    <iframe class="embed-responsive-item" 
            ng-src="sys_report_display.do?sysparm_report_id=01a8f532df01110068c37a0d3df2635a" 
            height="500px" 
            width="100%" 
            frameborder="0" 
            scrolling="no" 
            allowfullscreen>
    </iframe>
  </div>
  <div class="col-lg-4">
    <iframe class="embed-responsive-item" 
            ng-src="sys_report_display.do?sysparm_report_id=01a8f532df01110068c37a0d3df2635a" 
            height="500px" 
            width="100%" 
            frameborder="0" 
            scrolling="no" 
            allowfullscreen>
    </iframe>
  </div>
  <div class="col-lg-4">
    <iframe class="embed-responsive-item" 
            ng-src="sys_report_display.do?sysparm_report_id=01a8f532df01110068c37a0d3df2635a" 
            height="500px" 
            width="100%" 
            frameborder="0" 
            scrolling="no" 
            allowfullscreen>
    </iframe>  
  </div>

  <!--<a href="?id={{portal.homepage_dv}}" class="btn btn-default btn-lg m m-b-0">Back to Home</a>-->

Aşağıda kırmızı ile işaretli sys_id önceden hazırlayıp “publish” ettiğiniz raporunuzun sys_id’si olmalıdır.

report_id=01a8f532df01110068c37a0d3df2635a  

 

The post Servicenow portal’da rapor sayfası oluşturma appeared first on DijitalTurk.

]]>
https://dijitalturk.com/veysel/servicenow-portalda-rapor-sayfasi-olusturma/feed/ 0
Son kullanıcı çözüm onaylama widget https://dijitalturk.com/veysel/son-kullanici-cozum-onaylama-widget/ https://dijitalturk.com/veysel/son-kullanici-cozum-onaylama-widget/#respond Mon, 05 Mar 2018 12:48:30 +0000 http://dijitalturk.com/veysel/?p=962 Portal tarafında son kullanıcıya açılan incident’ı onaylayıp onaylamadığı ile ilgili bir widget yapmak isterseniz aşağıdaki gibi yapılandırabilirsiniz. Body HTML template

The post Son kullanıcı çözüm onaylama widget appeared first on DijitalTurk.

]]>
Portal tarafında son kullanıcıya açılan incident’ı onaylayıp onaylamadığı ile ilgili bir widget yapmak isterseniz aşağıdaki gibi yapılandırabilirsiniz.

Body HTML template

<div align="center" class="text-center">
<div class="col-lg-6">
<button type="button" ng-click="c.onay()" class="btn btn-success">Çözümü onaylıyorum.</button>
  </div>
  <div class="col-lg-6">
<button type="button" ng-click="c.red()" class="btn btn-danger">Çözümü onaylamıyorum.</button>
  </div>
  
  
</div>

 

 

Server script

  var sysID = $sp.getParameter("sys_id");
  var table = $sp.getParameter("table");

          if( input.action == 'onay' ) {

          //gs.addInfoMessage( 'onaylanacak: ' + sysID + ' ' + table );

           //Update +
          var q= "sys_id=" + sysID; 
          var gr= new GlideRecord(table); 
          gr.addEncodedQuery(q); 
          gr.query(); 
                  while(gr.next()) {


                      if( (gr.sys_id==sysID) && (gr.state==6) ) {
                          
                         gr.state=7;
                         gr.update();
                        gs.addInfoMessage( 'Çağrınız onayınız ile kapatılmıştır. ' );
                           } else {
                             gs.addInfoMessage( 'Çağrınız henüz çözülmemiş. ' );
                           }
                          //if

                  } //while
                    //Update -

          }
          //if onay


//--------------------------

          if( input.action == 'red' ) {

          //gs.addInfoMessage( 'onaylanacak: ' + sysID + ' ' + table );

           //Update +
          var q= "sys_id=" + sysID; 
          var gr= new GlideRecord(table); 
          gr.addEncodedQuery(q); 
          gr.query(); 

                  while(gr.next()) {


                      if( (gr.sys_id==sysID) && (gr.state==6) ) {
                          
                         gr.state=4;
                        gr.work_notes='Çağrı sahibi uygulanan çözümü onaylamamıştır.'
                         gr.update();
                        gs.addInfoMessage( 'Çağrınız yeniden açılmıştır. ' );
                           } else {
                             gs.addInfoMessage( 'Çağrınız henüz çözülmemiş. ' );
                           }
                          //if

                  } //while
                    //Update -

          }
          //if onay

 

Client controller

function($scope, $timeout) {
  
  
  var c = this;
  
//
  c.onay = function onay() {
    c.data.action = "onay";
    c.server.update().then(function(){
           
  });		
  
  }
  //func onay

   c.red = function red() {

    c.data.action = "red";
    c.server.update().then(function(){
               
  });	
  
  
  }
  //func red
  
}

 

The post Son kullanıcı çözüm onaylama widget appeared first on DijitalTurk.

]]>
https://dijitalturk.com/veysel/son-kullanici-cozum-onaylama-widget/feed/ 0
Iphone Bootstrap modal aktifliği sorunu https://dijitalturk.com/veysel/iphone-bootstrap-modal-aktifligi-sorunu/ https://dijitalturk.com/veysel/iphone-bootstrap-modal-aktifligi-sorunu/#respond Tue, 30 Jan 2018 14:12:10 +0000 http://dijitalturk.com/veysel/?p=949 Servicenow portal uygulamasında Bootstrap modal componenti ile çalıştığınızda Iphone cihazlarda modal görülmeme sorunu yaşabilirsiniz. Bu aşamada Modal’ınıza bu kod ile data-backdrop="false"

The post Iphone Bootstrap modal aktifliği sorunu appeared first on DijitalTurk.

]]>
Servicenow portal uygulamasında Bootstrap modal componenti ile çalıştığınızda Iphone cihazlarda modal görülmeme sorunu yaşabilirsiniz.

Bu aşamada Modal’ınıza bu kod ile data-backdrop="false"

 

aşağıdaki şekilde başlamanız gerekir.

<div class="modal fade" id="createModal" data-backdrop="false">

 

The post Iphone Bootstrap modal aktifliği sorunu appeared first on DijitalTurk.

]]>
https://dijitalturk.com/veysel/iphone-bootstrap-modal-aktifligi-sorunu/feed/ 0
Service-Now Client Script to Server Script via Widget https://dijitalturk.com/veysel/service-now-client-script-to-server-script-via-widget/ https://dijitalturk.com/veysel/service-now-client-script-to-server-script-via-widget/#respond Mon, 22 Jan 2018 13:07:53 +0000 http://dijitalturk.com/veysel/?p=946 Servicenow Portal modülünde widget kullanırken Client Script tarafında bir datayı alıp Server Script tarafına tansfer ederken aşağıdaki örneği kullanabilirsiniz. URL

The post Service-Now Client Script to Server Script via Widget appeared first on DijitalTurk.

]]>
Servicenow Portal modülünde widget kullanırken Client Script tarafında bir datayı alıp Server Script tarafına tansfer ederken aşağıdaki örneği kullanabilirsiniz.

URL de sc parametresini alıp server tarafına aktarıyoruz.

Client Script tarafı:

function($scope, $timeout) {
  
  
  var c = this;
  
//
  function Parametre(name) {
   return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\+/g, '%20')) || null;
  }
  //alert(Parametre('aid'));
  if ( Parametre('sc') != null ) {
    c.data.sc=Parametre('sc');
    c.data.action = "sorgula";
    c.server.update().then(function(){
      //c.data.action = undefined;
      //c.data.sc = "";
               
  });
  
  }
  //if	
//	
  
}

Server Side:

if( input.action == 'sorgula' ) {
//gs.addInfoMessage( 'KATALOG: ' + input.sc + ' action: ' + input.action );
var katalog=input.sc;


 data.formlar = [];
 data.kategoriler = [];

GetirCategory(katalog);
  
}
//if sorgulaysa

 

The post Service-Now Client Script to Server Script via Widget appeared first on DijitalTurk.

]]>
https://dijitalturk.com/veysel/service-now-client-script-to-server-script-via-widget/feed/ 0