All of lore.kernel.org
 help / color / mirror / Atom feed
* [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
@ 2015-11-23 11:41 Michael Wood
  2015-11-24 13:26 ` Barros Pena, Belen
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Wood @ 2015-11-23 11:41 UTC (permalink / raw)
  To: toaster

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]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
 .../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#var-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



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-23 11:41 [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES Michael Wood
@ 2015-11-24 13:26 ` Barros Pena, Belen
  2015-11-26 14:28   ` Smith, Elliot
  0 siblings, 1 reply; 7+ messages in thread
From: Barros Pena, Belen @ 2015-11-24 13:26 UTC (permalink / raw)
  To: Wood, Michael G, toaster@yoctoproject.org

On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org on behalf of
Michael Wood" <toaster-bounces@yoctoproject.org on behalf of
michael.g.wood@intel.com> 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.

From my perspective, this is good to go.

Thanks!

Belén

>
>Signed-off-by: Michael Wood <michael.g.wood@intel.com>
>---
> .../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
>toaster@yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-24 13:26 ` Barros Pena, Belen
@ 2015-11-26 14:28   ` Smith, Elliot
  2015-11-26 15:00     ` Barros Pena, Belen
  2015-11-26 16:05     ` Michael Wood
  0 siblings, 2 replies; 7+ messages in thread
From: Smith, Elliot @ 2015-11-26 14:28 UTC (permalink / raw)
  To: Barros Pena, Belen; +Cc: toaster@yoctoproject.org

[-- Attachment #1: Type: text/plain, Size: 10125 bytes --]

On 24 November 2015 at 13:26, Barros Pena, Belen <
belen.barros.pena@intel.com> wrote:

> On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org on behalf of
> Michael Wood" <toaster-bounces@yoctoproject.org on behalf of
> michael.g.wood@intel.com> 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 <michael.g.wood@intel.com>
> >---
> > .../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
> >toaster@yoctoproject.org
> >https://lists.yoctoproject.org/listinfo/toaster
>
> --
> _______________________________________________
> toaster mailing list
> toaster@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>



-- 
Elliot Smith
Software Engineer
Intel Open Source Technology Centre

[-- Attachment #2: Type: text/html, Size: 14831 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-26 14:28   ` Smith, Elliot
@ 2015-11-26 15:00     ` Barros Pena, Belen
  2015-11-26 16:05     ` Michael Wood
  1 sibling, 0 replies; 7+ messages in thread
From: Barros Pena, Belen @ 2015-11-26 15:00 UTC (permalink / raw)
  To: Smith, Elliot; +Cc: toaster@yoctoproject.org



On 26/11/2015 14:28, "Smith, Elliot" <elliot.smith@intel.com> wrote:

>On 24 November 2015 at 13:26, Barros Pena, Belen
><belen.barros.pena@intel.com> wrote:
>
>On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org on behalf of
>Michael Wood" <toaster-bounces@yoctoproject.org on behalf of
>michael.g.wood@intel.com> 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.

Heh, well spotted. Didn't think of this one :/

>
>
>Perhaps a button to set the list back to the defaults, or to remove any
>invalid types ("cleanup")?

This would be a possible solution, but it seems a bit clunky when you just
want to remove an extra 's' from an image type that you typed by mistake.

>
>
>Alternatively, add the user's custom image type to the checkbox list; if
>they uncheck it, is disappears from the list.

This was the initial solution, but having it disappearing from the list
when you unchecked it is not the behaviour you expect from checkboxes, and
it does feel quite weird. A solution would be to store the value you type
in the free text field somewhere, so that it appears back there when you
click the 'change' button and you can edit it.

I know we cannot store the value in the database (the list of image types
is currently hardcoded in views.py), but maybe it's enough to store it for
the session. You are bound to realise quite soon if you typed something
wrong.

Michael: is this possible?

Thanks!

Belén

>
>
>Elliot
> 
>
>
From my perspective, this is good to go.
>
>Thanks!
>
>Belén
>
>>
>>Signed-off-by: Michael Wood <michael.g.wood@intel.com>
>>---
>> .../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#v
>>a
>>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
>>toaster@yoctoproject.org
>>https://lists.yoctoproject.org/listinfo/toaster
>
>--
>_______________________________________________
>toaster mailing list
>toaster@yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster
>
>
>
>
>
>
>
>
>
>-- 
>Elliot Smith
>Software Engineer
>Intel Open Source Technology Centre
>
>
>
>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-26 14:28   ` Smith, Elliot
  2015-11-26 15:00     ` Barros Pena, Belen
@ 2015-11-26 16:05     ` Michael Wood
  2015-11-26 16:18       ` Barros Pena, Belen
  1 sibling, 1 reply; 7+ messages in thread
From: Michael Wood @ 2015-11-26 16:05 UTC (permalink / raw)
  To: Smith, Elliot, Barros Pena, Belen; +Cc: toaster@yoctoproject.org

On 26/11/15 14:28, Smith, Elliot wrote:
> On 24 November 2015 at 13:26, Barros Pena, Belen 
> <belen.barros.pena@intel.com <mailto:belen.barros.pena@intel.com>> wrote:
>
>     On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org
>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>     Michael Wood" <toaster-bounces@yoctoproject.org
>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>     michael.g.wood@intel.com <mailto:michael.g.wood@intel.com>> 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'.

>
> 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 <michael.g.wood@intel.com
>     <mailto:michael.g.wood@intel.com>>
>     >---
>     > .../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
>     >toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>     >https://lists.yoctoproject.org/listinfo/toaster
>
>     --
>     _______________________________________________
>     toaster mailing list
>     toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>     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.
>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-26 16:05     ` Michael Wood
@ 2015-11-26 16:18       ` Barros Pena, Belen
  2015-12-15 13:08         ` Barros Pena, Belen
  0 siblings, 1 reply; 7+ messages in thread
From: Barros Pena, Belen @ 2015-11-26 16:18 UTC (permalink / raw)
  To: Wood, Michael G, Smith, Elliot; +Cc: toaster@yoctoproject.org



On 26/11/2015 16:05, "Michael Wood" <michael.g.wood@intel.com> wrote:

>On 26/11/15 14:28, Smith, Elliot wrote:
>> On 24 November 2015 at 13:26, Barros Pena, Belen
>> <belen.barros.pena@intel.com <mailto:belen.barros.pena@intel.com>>
>>wrote:
>>
>>     On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org
>>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>>     Michael Wood" <toaster-bounces@yoctoproject.org
>>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>>     michael.g.wood@intel.com <mailto:michael.g.wood@intel.com>> 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 <michael.g.wood@intel.com
>>     <mailto:michael.g.wood@intel.com>>
>>     >---
>>     > .../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
>>     >toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>>     >https://lists.yoctoproject.org/listinfo/toaster
>>
>>     --
>>     _______________________________________________
>>     toaster mailing list
>>     toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>>     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.
>>
>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES
  2015-11-26 16:18       ` Barros Pena, Belen
@ 2015-12-15 13:08         ` Barros Pena, Belen
  0 siblings, 0 replies; 7+ messages in thread
From: Barros Pena, Belen @ 2015-12-15 13:08 UTC (permalink / raw)
  To: Wood, Michael G, Smith, Elliot; +Cc: toaster@yoctoproject.org

Sorry for the huge delay on this. A new design now attached to the
Bugzilla entry

https://bugzilla.yoctoproject.org/show_bug.cgi?id=7828

Let me know what you think.

Belén

On 26/11/2015 16:18, "toaster-bounces@yoctoproject.org on behalf of Barros
Pena, Belen" <toaster-bounces@yoctoproject.org on behalf of
belen.barros.pena@intel.com> wrote:

>
>
>On 26/11/2015 16:05, "Michael Wood" <michael.g.wood@intel.com> wrote:
>
>>On 26/11/15 14:28, Smith, Elliot wrote:
>>> On 24 November 2015 at 13:26, Barros Pena, Belen
>>> <belen.barros.pena@intel.com <mailto:belen.barros.pena@intel.com>>
>>>wrote:
>>>
>>>     On 23/11/2015 11:41, "toaster-bounces@yoctoproject.org
>>>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>>>     Michael Wood" <toaster-bounces@yoctoproject.org
>>>     <mailto:toaster-bounces@yoctoproject.org> on behalf of
>>>     michael.g.wood@intel.com <mailto:michael.g.wood@intel.com>> 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 <michael.g.wood@intel.com
>>>     <mailto:michael.g.wood@intel.com>>
>>>     >---
>>>     > .../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
>>>     >toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>>>     >https://lists.yoctoproject.org/listinfo/toaster
>>>
>>>     --
>>>     _______________________________________________
>>>     toaster mailing list
>>>     toaster@yoctoproject.org <mailto:toaster@yoctoproject.org>
>>>     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
>toaster@yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-12-15 13:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-23 11:41 [[PATCH v2]] toaster: projectconf Add feature for free form IMAGE_FSTYPES Michael Wood
2015-11-24 13:26 ` Barros Pena, Belen
2015-11-26 14:28   ` Smith, Elliot
2015-11-26 15:00     ` Barros Pena, Belen
2015-11-26 16:05     ` Michael Wood
2015-11-26 16:18       ` Barros Pena, Belen
2015-12-15 13:08         ` Barros Pena, Belen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.