On 26/11/2015 16:05, "Michael Wood" <[email protected]> wrote:
>On 26/11/15 14:28, Smith, Elliot wrote: >> On 24 November 2015 at 13:26, Barros Pena, Belen >> <[email protected] <mailto:[email protected]>> >>wrote: >> >> On 23/11/2015 11:41, "[email protected] >> <mailto:[email protected]> on behalf of >> Michael Wood" <[email protected] >> <mailto:[email protected]> on behalf of >> [email protected] <mailto:[email protected]>> wrote: >> >> >Add feature to the projectconf page to allow free form input of >> >IMAGE_FSTYPES. Sometimes a recipe can provide an IMAGE_FSTYPE that >> >isn't in the normal image_types class. So would need to be >>specified >> >manually. >> > >> >[YOCTO #7828] >> >> This seems to address all the issues from v1. Getting rid the >>'already >> selected' error message by not duplicating any values works well. >> >> >> It works correctly, but there is one issue: if you enter an invalid >> string as the image type (e.g. btrfss) and want to correct it, there's >> no way to delete it from the list. > >To remove custom added values, you just have to click edit and then >press 'Save'. The fact that Elliot couldn't work it out I think tells us something. We shouldn't leave it that way :/ > >> >> Perhaps a button to set the list back to the defaults, or to remove >> any invalid types ("cleanup")? >> >> Alternatively, add the user's custom image type to the checkbox list; >> if they uncheck it, is disappears from the list. >> >> Elliot >> >> >> From my perspective, this is good to go. >> >> Thanks! >> >> Belén >> >> > >> >Signed-off-by: Michael Wood <[email protected] >> <mailto:[email protected]>> >> >--- >> > .../toaster/toastergui/templates/projectconf.html | 128 >> >+++++++++++++++------ >> > 1 file changed, 95 insertions(+), 33 deletions(-) >> > >> >diff --git >> a/bitbake/lib/toaster/toastergui/templates/projectconf.html >> >b/bitbake/lib/toaster/toastergui/templates/projectconf.html >> >index 30fd03e..13f9c66 100644 >> >--- a/bitbake/lib/toaster/toastergui/templates/projectconf.html >> >+++ b/bitbake/lib/toaster/toastergui/templates/projectconf.html >> >@@ -36,18 +36,36 @@ >> > <span class="js-config-var-name >> >js-config-var-managed-name">IMAGE_FSTYPES</span> >> > <i class="icon-question-sign get-help" >> title="Formats of >> >root file system images that you want to have created <br /><a >> >>>href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html# >>>va >> >r-IMAGE_FSTYPES' target='_blank'>Read more in the manual</a>"></i> >> > </dt> >> >- <dd class="lead"> >> >- <span id="image_fstypes">{{fstypes}}</span> >> >- <i class="icon-pencil" >> >id="change-image_fstypes-icon"></i> >> >- <form id="change-image_fstypes-form" >> >style="display:none;"> >> >- <input id="filter-image_fstypes" type="text" >> >placeholder="Search image types" class="span4"> >> >- <div id="all-image_fstypes" class="scrolling"> >> >+ <dd style="margin-bottom: 20px"> >> >+ <span id="image_fstypes" >> class="lead">{{fstypes}}</span> >> >+ <i class="icon-pencil" >> id="change-image_fstypes-icon"></i> >> >+ <form id="change-image_fstypes-form" >> style="display:none;"> >> >+ <label>Choose from known image types</label> >> >+ <input id="filter-image_fstypes" type="text" >> >placeholder="Search known image types" class="span4"> >> >+ <div id="all-image_fstypes" class="scrolling"> >> >+ </div> >> >+ <div class="input-append"> >> >+ <span class="control-group" >> >id="fstypes-control-validation"> >> >+ <label>Enter your own image types >> >+ <i data-original-title="You can enter >> more than >> >one image type, separated by a space" class="icon-question-sign >> get-help" >> >title=""></i> >> >+ </label> >> >+ <input type="text" >> id="new-image-fstype-input"> >> >+ >> >+ </span> >> > </div> >> >- <span class="help-block" >> >id="fstypes-error-message">You must select at least one image >> type</span> >> >- <button id="apply-change-image_fstypes" >> >type="button" class="btn">Save</button> >> >- <button id="cancel-change-image_fstypes" >> >type="button" class="btn btn-link">Cancel</button> >> >- </form> >> >- </dd> >> >+ <p style="display:none" class="error" >> >id="fstypes-error-message"> >> >+ You must select at least one image type. >> <br /> >> >+ Choose from the list of known ones or type >> your >> >own. >> >+ </p> >> >+ <p style="display:none" class="error" >> >id="invalid-chars-in-fstype-msg"> >> >+ A valid image type cannot include >>underscores. >> >+ </p> >> >+ <div> >> >+ <button id="apply-change-image_fstypes" >> >type="button" class="btn">Save</button> >> >+ <button id="cancel-change-image_fstypes" >> >type="button" class="btn btn-link">Cancel</button> >> >+ </div> >> >+ </form> >> >+ </dd> >> > {% endif %} >> > >> > {% if image_install_append_defined %} >> >@@ -305,20 +323,41 @@ >> > return true; >> > } >> > >> >- // Test to insure at least one FS Type is checked >> >+ var fsTypesInput = $("#new-image-fstype-input"); >> >+ var invalidCharsMsg = $("#invalid-chars-in-fstype-msg"); >> >+ var fsTypesControl = $("#fstypes-control-validation"); >> >+ var noFsType = $('#fstypes-error-message'); >> >+ var fsTypesApplyBtn = $("#apply-change-image_fstypes"); >> >+ >> >+ /* Validation of fstypes */ >> > function enableFsTypesSave() { >> >- var any_checked = 0; >> >- $(".fs-checkbox-fstypes:checked").each(function(){ >> >- any_checked = 1; >> >- }); >> >- if ( 0 == any_checked ) { >> >- >> >$("#apply-change-image_fstypes").attr("disabled","disabled"); >> >- $('#fstypes-error-message').show(); >> >- } >> >- else { >> >- $("#apply-change-image_fstypes").removeAttr("disabled"); >> >- $('#fstypes-error-message').hide(); >> >- } >> >+ var valid_input = false; >> >+ var valid_checkboxes = false; >> >+ var anyChecked = >>$(".fs-checkbox-fstypes:checked").length; >> >+ >> >+ /* No underscores allowed */ >> >+ if (fsTypesInput.val().match(/\_/)) { >> >+ invalidCharsMsg.show(); >> >+ fsTypesControl.addClass("error"); >> >+ valid_input = false; >> >+ } else { >> >+ fsTypesControl.removeClass("error"); >> >+ invalidCharsMsg.hide(); >> >+ valid_input = true; >> >+ } >> >+ >> >+ if (!anyChecked && !fsTypesInput.val()){ >> >+ noFsType.show(); >> >+ valid_checkboxes = false; >> >+ } else { >> >+ noFsType.hide(); >> >+ valid_checkboxes = true; >> >+ } >> >+ >> >+ if (valid_checkboxes == false || valid_input == false) >> >+ fsTypesApplyBtn.attr("disabled","disabled"); >> >+ else >> >+ fsTypesApplyBtn.removeAttr("disabled"); >> > } >> > >> > // Preset or reset the Package Class checkbox labels >> >@@ -597,17 +636,37 @@ >> > } >> > }); >> > >> >- $('#apply-change-image_fstypes').click(function(){ >> >- // extract the selected fstypes and sort them >> >- var fstypes_array = []; >> >- var checkboxes = >> >document.getElementsByClassName('fs-checkbox-fstypes'); >> >- $(".fs-checkbox-fstypes:checked").each(function(){ >> >- fstypes_array.push($(this).val()); >> >- }); >> >- fstypes_array.sort(); >> >+ fsTypesInput.on('input', function(){ >> >+ enableFsTypesSave(); >> >+ }); >> >+ >> >+ fsTypesApplyBtn.click(function(e){ >> >+ e.preventDefault(); >> >+ >> >+ var fstypes = ''; >> >+ // extract the selected fstypes and sort them >> >+ var fstypes_array = []; >> >+ var checkboxes = >> >document.getElementsByClassName('fs-checkbox-fstypes'); >> >+ $(".fs-checkbox-fstypes:checked").each(function(){ >> >+ fstypes_array.push($(this).val()); >> >+ }); >> >+ fstypes_array.sort(); >> >+ >> >+ /* If we have a value in our enter own image type >> input >> >and it >> >+ * isn't already selected add it to the fstypes >>value >> >+ */ >> >+ if (fsTypesInput.val()){ >> >+ var inputFsTypes = fsTypesInput.val().split(" "); >> >+ >> >+ for (var type in inputFsTypes){ >> >+ if >> (fstypes_array.indexOf(inputFsTypes[type].trim()) >> >=== -1) >> >+ { >> >+ fstypes += inputFsTypes[type]+' '; >> >+ } >> >+ } >> >+ } >> > >> > // now make a string of them >> >- var fstypes = ''; >> > for (var i = 0, length = fstypes_array.length; i < >> >length; i++) { >> > fstypes += fstypes_array[i] + ' '; >> > } >> >@@ -620,6 +679,9 @@ >> > $("#change-image_fstypes-form").slideUp(function() { >> > $('#image_fstypes, >> >#change-image_fstypes-icon').show(); >> > }); >> >+ >> >+ >> >+ fsTypesInput.val(""); >> > }); >> > {% endif %} >> > >> >-- >> >2.5.0 >> > >> >-- >> >_______________________________________________ >> >toaster mailing list >> >[email protected] <mailto:[email protected]> >> >https://lists.yoctoproject.org/listinfo/toaster >> >> -- >> _______________________________________________ >> toaster mailing list >> [email protected] <mailto:[email protected]> >> https://lists.yoctoproject.org/listinfo/toaster >> >> >> >> >> -- >> Elliot Smith >> Software Engineer >> Intel Open Source Technology Centre >> >> --------------------------------------------------------------------- >> Intel Corporation (UK) Limited >> Registered No. 1134945 (England) >> Registered Office: Pipers Way, Swindon SN3 1RJ >> VAT No: 860 2173 47 >> >> This e-mail and any attachments may contain confidential material for >> the sole use of the intended recipient(s). Any review or distribution >> by others is strictly prohibited. If you are not the intended >> recipient, please contact the sender and delete all copies. >> > -- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
