On 24 November 2015 at 13:26, Barros Pena, Belen < [email protected]> wrote:
> On 23/11/2015 11:41, "[email protected] on behalf of > Michael Wood" <[email protected] on behalf of > [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. 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]> > >--- > > .../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] > >https://lists.yoctoproject.org/listinfo/toaster > > -- > _______________________________________________ > toaster mailing list > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
