diff options
| -rw-r--r-- | bitbake/lib/toaster/toastergui/templates/projectconf.html | 111 |
1 files changed, 70 insertions, 41 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/projectconf.html b/bitbake/lib/toaster/toastergui/templates/projectconf.html index 27a898b657..c007859385 100644 --- a/bitbake/lib/toaster/toastergui/templates/projectconf.html +++ b/bitbake/lib/toaster/toastergui/templates/projectconf.html | |||
| @@ -62,12 +62,16 @@ | |||
| 62 | <span id="image_fstypes">{{fstypes}}</span> | 62 | <span id="image_fstypes">{{fstypes}}</span> |
| 63 | <i class="icon-pencil" id="change-image_fstypes-icon"></i> | 63 | <i class="icon-pencil" id="change-image_fstypes-icon"></i> |
| 64 | <form id="change-image_fstypes-form" style="display:none;"> | 64 | <form id="change-image_fstypes-form" style="display:none;"> |
| 65 | <div class="input-append" id="validate-image_fstypes"> | ||
| 66 | <input type="text" class="input-xlarge" id="new-imagefs_types"> | ||
| 67 | <button id="apply-change-image_fstypes" type="button" class="btn">Save</button> | ||
| 68 | <button id="cancel-change-image_fstypes" type="button" class="btn btn-link">Cancel</button> | ||
| 69 | </div> | ||
| 70 | </br><span class="help-block error" style="display:none;" id="hintError-image-fs_type">A valid image type cannot include underscores.</span> | ||
| 71 | <p>Choose from known image types</p> | ||
| 65 | <input id="filter-image_fstypes" type="text" placeholder="Search image types" class="span4"> | 72 | <input id="filter-image_fstypes" type="text" placeholder="Search image types" class="span4"> |
| 66 | <div id="all-image_fstypes" class="scrolling"> | 73 | <div id="all-image_fstypes" class="scrolling"> |
| 67 | </div> | 74 | </div> |
| 68 | <span class="help-block" id="fstypes-error-message">You must select at least one image type</span> | ||
| 69 | <button id="apply-change-image_fstypes" type="button" class="btn">Save</button> | ||
| 70 | <button id="cancel-change-image_fstypes" type="button" class="btn btn-link">Cancel</button> | ||
| 71 | </form> | 75 | </form> |
| 72 | </dd> | 76 | </dd> |
| 73 | {% endif %} | 77 | {% endif %} |
| @@ -322,22 +326,6 @@ | |||
| 322 | return true; | 326 | return true; |
| 323 | } | 327 | } |
| 324 | 328 | ||
| 325 | // Test to insure at least one FS Type is checked | ||
| 326 | function enableFsTypesSave() { | ||
| 327 | var any_checked = 0; | ||
| 328 | $(".fs-checkbox-fstypes:checked").each(function(){ | ||
| 329 | any_checked = 1; | ||
| 330 | }); | ||
| 331 | if ( 0 == any_checked ) { | ||
| 332 | $("#apply-change-image_fstypes").attr("disabled","disabled"); | ||
| 333 | $('#fstypes-error-message').show(); | ||
| 334 | } | ||
| 335 | else { | ||
| 336 | $("#apply-change-image_fstypes").removeAttr("disabled"); | ||
| 337 | $('#fstypes-error-message').hide(); | ||
| 338 | } | ||
| 339 | } | ||
| 340 | |||
| 341 | // Preset or reset the Package Class checkbox labels | 329 | // Preset or reset the Package Class checkbox labels |
| 342 | function updatePackageClassCheckboxes() { | 330 | function updatePackageClassCheckboxes() { |
| 343 | $('#package_class_1, #package_class_2').hide(); | 331 | $('#package_class_1, #package_class_2').hide(); |
| @@ -603,6 +591,46 @@ | |||
| 603 | {% if fstypes_defined %} | 591 | {% if fstypes_defined %} |
| 604 | // change IMAGE_FSTYPES variable | 592 | // change IMAGE_FSTYPES variable |
| 605 | 593 | ||
| 594 | // get value of fstypes and add to the textbox | ||
| 595 | $("#new-imagefs_types").val("{{fstypes}}"); | ||
| 596 | |||
| 597 | // If value of new-imagefs_types is empty disable save button | ||
| 598 | $("#new-imagefs_types").on("input", function() { | ||
| 599 | $(this).val($(this).val().replace(/\s+/g,' ')); | ||
| 600 | if ($(this).val().length === 0) { | ||
| 601 | //$('#apply-change-image_fstypes').prop('disabled', true); | ||
| 602 | $('#apply-change-image_fstypes').attr("disabled", "disabled"); | ||
| 603 | } else { | ||
| 604 | //$('#apply-change-image_fstypes').prop('disabled', false); | ||
| 605 | $('#apply-change-image_fstypes').removeAttr("disabled"); | ||
| 606 | } | ||
| 607 | |||
| 608 | /*If user types imagefs do the action on checkboxes. | ||
| 609 | Lets say if an imagefstype typed by user and the same | ||
| 610 | imagefs is unchecked in the checkbox, then checkbox needs | ||
| 611 | to get checked. Similarly when user deletes imagefs from | ||
| 612 | textbox the checkbox which is checked gets unchecked. | ||
| 613 | */ | ||
| 614 | $('#all-image_fstypes input').each(function(){ | ||
| 615 | var imagefs_userval = $('#new-imagefs_types').val(); | ||
| 616 | if( imagefs_userval.indexOf($(this).val()) > -1) { | ||
| 617 | $(this).prop('checked', true); | ||
| 618 | } else { | ||
| 619 | $(this).prop('checked', false); | ||
| 620 | } | ||
| 621 | }); | ||
| 622 | |||
| 623 | // Validate underscore in image fs types | ||
| 624 | if ($(this).val().indexOf('_') > -1) { | ||
| 625 | $('#validate-image_fstypes').addClass('control-group error'); | ||
| 626 | $('#hintError-image-fs_type').show(); | ||
| 627 | $("#apply-change-image_fstypes").prop("disabled", true); | ||
| 628 | } else { | ||
| 629 | $('#validate-image_fstypes').removeClass('control-group error'); | ||
| 630 | $('#hintError-image-fs_type').hide(); | ||
| 631 | } | ||
| 632 | }); | ||
| 633 | |||
| 606 | $('#change-image_fstypes-icon').click(function() { | 634 | $('#change-image_fstypes-icon').click(function() { |
| 607 | $('#change-image_fstypes-icon, #image_fstypes').hide(); | 635 | $('#change-image_fstypes-icon, #image_fstypes').hide(); |
| 608 | $("#change-image_fstypes-form").slideDown(); | 636 | $("#change-image_fstypes-form").slideDown(); |
| @@ -630,19 +658,33 @@ | |||
| 630 | document.getElementById("all-image_fstypes").innerHTML = html; | 658 | document.getElementById("all-image_fstypes").innerHTML = html; |
| 631 | $('#no-match-fstypes').hide(); | 659 | $('#no-match-fstypes').hide(); |
| 632 | 660 | ||
| 633 | // Watch elements to disable Save when none are checked | ||
| 634 | $(".fs-checkbox-fstypes").each(function(){ | ||
| 635 | $(this).click(function() { | ||
| 636 | enableFsTypesSave(); | ||
| 637 | }); | ||
| 638 | }); | ||
| 639 | |||
| 640 | // clear the previous filter values and warning messages | 661 | // clear the previous filter values and warning messages |
| 641 | $("input#filter-image_fstypes").val(""); | 662 | $("input#filter-image_fstypes").val(""); |
| 642 | $('#fstypes-error-message').hide(); | 663 | }); |
| 664 | |||
| 665 | // When checkbox is checked/unchecked kindly update the text | ||
| 666 | $(document).on("change", "#all-image_fstypes :checkbox", function() { | ||
| 667 | var imagefs = $(this); | ||
| 668 | var imagefs_obj = $('#new-imagefs_types'); | ||
| 669 | var imagefs_userval = imagefs_obj.val(); | ||
| 670 | if ($(this).is(':checked')) { | ||
| 671 | if (imagefs_userval.indexOf($(imagefs).val()) === -1) { | ||
| 672 | imagefs_obj.val(imagefs_userval + " " + $(imagefs).val()); | ||
| 673 | } | ||
| 674 | } else { | ||
| 675 | if (imagefs_userval.indexOf($(imagefs).val()) > -1) { | ||
| 676 | imagefs_obj.val(imagefs_userval.replace($(imagefs).val(), '').trim()); | ||
| 677 | } | ||
| 678 | } | ||
| 679 | if ($('#new-imagefs_types').val().length === 0) { | ||
| 680 | $("#apply-change-image_fstypes").prop("disabled", true); | ||
| 681 | } else { | ||
| 682 | $("#apply-change-image_fstypes").prop("disabled", false); | ||
| 683 | } | ||
| 643 | }); | 684 | }); |
| 644 | 685 | ||
| 645 | $('#cancel-change-image_fstypes').click(function(){ | 686 | $('#cancel-change-image_fstypes').click(function(){ |
| 687 | $("#new-imagefs_types").val("{{fstypes}}"); | ||
| 646 | $("#change-image_fstypes-form").slideUp(function() { | 688 | $("#change-image_fstypes-form").slideUp(function() { |
| 647 | $('#image_fstypes, #change-image_fstypes-icon').show(); | 689 | $('#image_fstypes, #change-image_fstypes-icon').show(); |
| 648 | }); | 690 | }); |
| @@ -670,20 +712,7 @@ | |||
| 670 | }); | 712 | }); |
| 671 | 713 | ||
| 672 | $('#apply-change-image_fstypes').click(function(){ | 714 | $('#apply-change-image_fstypes').click(function(){ |
| 673 | // extract the selected fstypes and sort them | 715 | var fstypes = $('#new-imagefs_types').val(); |
| 674 | var fstypes_array = []; | ||
| 675 | var checkboxes = document.getElementsByClassName('fs-checkbox-fstypes'); | ||
| 676 | $(".fs-checkbox-fstypes:checked").each(function(){ | ||
| 677 | fstypes_array.push($(this).val()); | ||
| 678 | }); | ||
| 679 | fstypes_array.sort(); | ||
| 680 | |||
| 681 | // now make a string of them | ||
| 682 | var fstypes = ''; | ||
| 683 | for (var i = 0, length = fstypes_array.length; i < length; i++) { | ||
| 684 | fstypes += fstypes_array[i] + ' '; | ||
| 685 | } | ||
| 686 | fstypes = fstypes.trim(); | ||
| 687 | 716 | ||
| 688 | postEditAjaxRequest({"configvarChange" : 'IMAGE_FSTYPES:'+fstypes}); | 717 | postEditAjaxRequest({"configvarChange" : 'IMAGE_FSTYPES:'+fstypes}); |
| 689 | $('#image_fstypes').text(fstypes); | 718 | $('#image_fstypes').text(fstypes); |
