xref: /OK3568_Linux_fs/yocto/bitbake/lib/toaster/toastergui/static/js/layerBtn.js (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun"use strict";
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunfunction layerBtnsInit() {
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun  /* Remove any current bindings to avoid duplicated binds */
6*4882a593Smuzhiyun  $(".layerbtn").unbind('click');
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun  $(".layerbtn").click(function (){
9*4882a593Smuzhiyun    var layerObj = $(this).data("layer");
10*4882a593Smuzhiyun    var add = ($(this).data('directive') === "add");
11*4882a593Smuzhiyun    var thisBtn = $(this);
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun    libtoaster.addRmLayer(layerObj, add, function (layerDepsList){
14*4882a593Smuzhiyun      libtoaster.showChangeNotification(libtoaster.makeLayerAddRmAlertMsg(layerObj, layerDepsList, add));
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun      /* In-cell notification */
17*4882a593Smuzhiyun      var notification = $('<div id="temp-inline-notify" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner"></div>');
18*4882a593Smuzhiyun      thisBtn.parent().append(notification);
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun      if (add){
21*4882a593Smuzhiyun        if (layerDepsList.length > 0)
22*4882a593Smuzhiyun          notification.text(String(layerDepsList.length + 1) + " layers added");
23*4882a593Smuzhiyun        else
24*4882a593Smuzhiyun          notification.text("1 layer added");
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun        var layerBtnsFadeOut = $();
27*4882a593Smuzhiyun        var layerExistsBtnFadeIn = $();
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun        layerBtnsFadeOut = layerBtnsFadeOut.add(".layer-add-" + layerObj.id);
30*4882a593Smuzhiyun        layerExistsBtnFadeIn = layerExistsBtnFadeIn.add(".layer-exists-" + layerObj.id);
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun        for (var i in layerDepsList){
33*4882a593Smuzhiyun          layerBtnsFadeOut = layerBtnsFadeOut.add(".layer-add-" + layerDepsList[i].id);
34*4882a593Smuzhiyun          layerExistsBtnFadeIn = layerExistsBtnFadeIn.add(".layer-exists-" + layerDepsList[i].id);
35*4882a593Smuzhiyun        }
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun        layerBtnsFadeOut.fadeOut().promise().done(function(){
38*4882a593Smuzhiyun          notification.fadeIn().delay(500).fadeOut(function(){
39*4882a593Smuzhiyun            /* Fade in the buttons */
40*4882a593Smuzhiyun            layerExistsBtnFadeIn.fadeIn();
41*4882a593Smuzhiyun            notification.remove();
42*4882a593Smuzhiyun          });
43*4882a593Smuzhiyun        });
44*4882a593Smuzhiyun      } else {
45*4882a593Smuzhiyun        notification.text("1 layer removed");
46*4882a593Smuzhiyun        /* Deleting a layer we only hanlde the one button */
47*4882a593Smuzhiyun        thisBtn.fadeOut(function(){
48*4882a593Smuzhiyun          notification.fadeIn().delay(500).fadeOut(function(){
49*4882a593Smuzhiyun            $(".layer-add-" + layerObj.id).fadeIn();
50*4882a593Smuzhiyun            notification.remove();
51*4882a593Smuzhiyun          });
52*4882a593Smuzhiyun        });
53*4882a593Smuzhiyun      }
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun    });
56*4882a593Smuzhiyun  });
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun  $("td .build-recipe-btn").unbind('click');
59*4882a593Smuzhiyun  $("td .build-recipe-btn").click(function(e){
60*4882a593Smuzhiyun    e.preventDefault();
61*4882a593Smuzhiyun    var recipe = $(this).data('recipe-name');
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun    libtoaster.startABuild(null, recipe,
64*4882a593Smuzhiyun      function(){
65*4882a593Smuzhiyun        /* Success */
66*4882a593Smuzhiyun        window.location.replace(libtoaster.ctx.projectBuildsUrl);
67*4882a593Smuzhiyun      });
68*4882a593Smuzhiyun  });
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun  $("td .set-default-recipe-btn").unbind('click');
71*4882a593Smuzhiyun  $("td .set-default-recipe-btn").click(function(e){
72*4882a593Smuzhiyun    e.preventDefault();
73*4882a593Smuzhiyun    var recipe = $(this).data('recipe-name');
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun    libtoaster.setDefaultImage(null, recipe,
76*4882a593Smuzhiyun      function(){
77*4882a593Smuzhiyun        /* Success */
78*4882a593Smuzhiyun        window.location.replace(libtoaster.ctx.projectSpecificPageUrl);
79*4882a593Smuzhiyun      });
80*4882a593Smuzhiyun  });
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun  $(".customise-btn").unbind('click');
84*4882a593Smuzhiyun  $(".customise-btn").click(function(e){
85*4882a593Smuzhiyun    e.preventDefault();
86*4882a593Smuzhiyun    var imgCustomModal = $("#new-custom-image-modal");
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun    if (imgCustomModal.length == 0)
89*4882a593Smuzhiyun      throw("Modal new-custom-image not found");
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun    var recipe = {id: $(this).data('recipe'), name: null}
92*4882a593Smuzhiyun    newCustomImageModalSetRecipes([recipe]);
93*4882a593Smuzhiyun    imgCustomModal.modal('show');
94*4882a593Smuzhiyun  });
95*4882a593Smuzhiyun}
96